MindMap Gallery 2D lidar slam 과 자동차 차선 추종 주행 기술을 결합한 hybrid slam
이 마인드 맵은 2D LiDAR SLAM과 자동차 차선 추종 주행 기술을 결합한 Hybrid SLAM 기술에 관한 내용을 다룹니다. 기술 소개, 최종 개발 목표, 연구 개발 과제 내용, 연구 개발 과제 추진 전략, 방법 및 추진 체계 등이 포함되어 있습니다. 이 그림은 자율 주행 자동차 및 로봇 기술 개발자, 연구자, 학생 및 관련 기업들에게 유용한 정보를 제공합니다. EdrawMind를 사용하여 이러한 마인드 맵을 작성하면 기술 개발에 관심 있는 사람들에게 유용한 정보를 시각적으로 제공할 수 있습니다.
Edited at 2023-11-08 13:51:162D lidar slam 과 자동차 차선 추종 주행 기술을 결합한 hybrid slam
기술 소개
- 완벽한 자율주행을 위해서는 3D 정보가 필요하다. 하지만 방대한 3D 데이터를 실시간으로 처리하여 자율주행을 구현하기에는 자율주행로봇의 상용화기술이 부족하다 (판매가능한 가격의 로봇 제작이 어려워짐). 과제에서는 2D SLAM기술과 비교적 적은 데이터가 필요한 Vision 기반 차선 추종 기술을 결합하여 2D 기반 정보에 부분적인 3D 데이터를 추가하여 자율주행의 성공률을 높이는 기술을 개발한다. 대부분의 공장이나 창고에서는 안전을 위하여 자동차 도로의 차선과 같은 경계선이 있으며, 이를 활용하여 2D SLAM의 자율주행 성공률을 높이는 기술개발이다.
최종 개발 목표
- 2D Lidar 센서와 카메라 센서를 결합하여 2D 정보에 부분적인 3D 정보를 추가하고, AI의 ML을 이용하여 Hybrid SLAM 자율주행을 구현한다.
연구 과제의 최종 목표
개발하고자 하는 기술의 내용을 개발결과물
hybrid slam
map building
바닥 라인 감지.. map 생성.
localization
양산대응 캘리브레이션 자동화
캘리브레이션 tool
Bird view
floor line detection
point cloud
최종목표 개발결과물의 용도 및 적용 분야를 구체적으로 작성
Top lidar ..
top lidar를 장착하기 어려운 케이스..
환경 변화가 많은 현장..
비싼 3D lidar
3D lidar 대체...
자동차 부품 공장... 예제..
amr 작업 공간에 이동형 대차가 다수 존재
해당 공간에서 주행을 하려면. 위와 같은 시스템이 필요하다..
선입선출할 물건이 담겨 있는 대차들... 서열대차...
서브 주제
성과 지표
map 생성 관련.
서브 주제
성능지표 및 측정방법
결과물의 성능지표
위치 정확도
방향 정확도
위치 반복 정밀도
방향 반복 정밀도
평가방법 및 평가환경
https://e-ks.kr/streamdocs/view/sd;streamdocsId=72059197920357387
연구 개발 과제의 단계별 목표
1차년도
single camera 기반 floor line detection
bird eye view 생성.
카메라 켈리브레이션.
getPerspectiveTransform
april tag를 이용한 src 및 dest point 추출 방법개발.
연구개발과제의 내용
PerspectiveTransform 획득
4개의 실제 좌표획득
image상의 4개의 좌표 획득
4개 이상의 april tag를 이용해 real 좌표와 image상의 좌표를 획득 한다.
zig 설계 및 제작
4개이상의 april tag를 바닥에 부착..
Amr에 zig를 고정해서 바닥에 부착된 april tag의 데이터 획득.
세부개발 내용별 수행 방법
opencv의 getPerspectiveTransform 기능을 활용하여 Perspective matrix구한다.
https://076923.github.io/posts/C-opencv4-22/
수행 과정 중 예측되는 장애 요소 및 그 해결 방안
서브 주제
계획된 실험과정
AMR에 창착한채로..april tag 데이터 획득
Line extraction
RANSAC Line Detection 알고리즘
Poly Line Detection 알고리즘
기타 알고리즘.
Line
시점
종점
기울기.
연구개발과제의 내용
https://thirarobotics.atlassian.net/wiki/spaces/CC2023/pages/85590429/camera+base+Line+Navigation
ransac 관련 이론 기입..
세부개발 내용별 수행 방법
컴퓨터 비전에서 일반적인 line 추출 기법에 대해 소개해 드리겠습니다. 컴퓨터 비전이란 영상, 비디오 또는 포인트 클라우드로부터 정보를 추출하는 일련의 기법입니다1. 영상에서 직선을 검출하는 방법 중 하나는 허프 변환 (Hough transform) 이라는 기법입니다. 허프 변환은 영상 분석이나 컴퓨터 비전에서 아주 많이 사용되는 특징 추출 기법이다. 이 기법의 목적은 도형의 매개변수 공간에서 투표 절차를 통해 영상 내의 도형을 찾는 것이다2. 허프 변환은 다음과 같은 과정으로 직선을 검출합니다. 에지 검출기를 사용하여 영상에서 에지 픽셀을 찾습니다. 각 에지 픽셀에 대해 가능한 모든 직선의 매개변수 (r, θ)를 계산합니다. r은 원점에서 직선까지의 거리이고, θ는 x축과 직선이 이루는 각도입니다. (r, θ) 공간에서 각 에지 픽셀이 표현하는 직선들을 투표합니다. 즉, 같은 직선을 표현하는 에지 픽셀들이 같은 (r, θ) 값을 가지게 됩니다. (r, θ) 공간에서 투표 수가 임계값 이상인 점들을 찾습니다. 이 점들은 영상에서 직선을 나타내는 매개변수입니다. 찾은 매개변수들을 사용하여 영상에서 직선을 그립니다. 허프 변환은 직선뿐만 아니라 원이나 타원, 일반적인 도형을 식별하는 데에도 확장될 수 있습니다. 예를 들어, 원형 허프 변환은 영상에서 원을 검출하는 기법입니다. 원의 매개변수는 (x, y, r)로 표현될 수 있습니다. x와 y는 원의 중심 좌표이고, r은 원의 반지름입니다. 원형 허프 변환은 다음과 같은 과정으로 원을 검출합니다. 에지 검출기를 사용하여 영상에서 에지 픽셀을 찾습니다. 각 에지 픽셀에 대해 가능한 모든 원의 매개변수 (x, y, r)를 계산합니다. 이때, r은 주어진 범위 내에서 변화시킵니다. (x, y, r) 공간에서 각 에지 픽셀이 표현하는 원들을 투표합니다. 즉, 같은 원을 표현하는 에지 픽셀들이 같은 (x, y, r) 값을 가지게 됩니다. (x, y, r) 공간에서 투표 수가 임계값 이상인 점들을 찾습니다. 이 점들은 영상에서 원을 나타내는 매개변수입니다. 찾은 매개변수들을 사용하여 영상에서 원을 그립니다. 허프 변환은 영상에서 직선이나 원과 같은 기하학적 도형을 검출하는 데에 유용한 기법입니다. 하지만 허프 변환에는 몇 가지 단점도 있습니다. 예를 들어, 허프 변환은 매개변수 공간의 크기와 해상도에 따라 계산량이 증가하고, 메모리 요구량이 많아집니다. 또한, 허프 변환은 노이즈에 민감하고, 임계값을 적절하게 설정해야 합니다. 이러한 단점을 극복하기 위해 허프 변환의 변형이나 개선된 기법들이 제안되었습니다. 예를 들어, 확률적 허프 변환 (Probabilistic Hough Transform)은 무작위로 선택된 에지 픽셀들만 사용하여 허프 변환을 수행하는 기법입니다. 이렇게 하면 계산량과 메모리 요구량을 줄일 수 있습니다. 또한, 에지 픽셀들의 방향 정보를 이용하여 허프 변환을 수행하는 방법도 있습니다. 이렇게 하면 노이즈에 강하고, 정확도를 높일 수 있습니다. 컴퓨터 비전에서 일반적인 line 추출 기법에 대해 간단히 소개해 드렸습니다. 허프 변환은 컴퓨터 비전의 기본적이면서도 중요한 기법입니다. 허프 변환을 이용하여 다양한 도형을 검출하고, 응용할 수 있습니다. 허프 변환에 대해 더 자세히 알고 싶으시면 다음의 링크들을 참고하시기 바랍니다. 영상 특징 추출 - 벨로그 컴퓨터 비전 - MATLAB & Simulink 컴퓨터비전태스크에대한병렬처리기술 - ETRI
수행 과정 중 예측되는 장애 요소 및 그 해결 방안
계획된 실험과정
Scan data or point cloud data extraction
연구개발과제의 내용
line data
start p
end p
기울기
line 데이터를 이용하여 scan data 추출
논문내용 기입..
line data를 이용하여 point cloud data추출
세부개발 내용별 수행 방법
수행 과정 중 예측되는 장애 요소 및 그 해결 방안
계획된 실험과정
map building
carto grapher를 이용한 맵빌딩.
scan data 사용
point cloud 사용.
Gmapping
연구개발과제의 내용
mapping에 대한 이론적 내용....
세부개발 내용별 수행 방법
**SLAM (Simultaneous Localization and Mapping)**은 자율주행 차량이나 로봇과 같은 이동 기기가 주변 환경을 탐색하면서 동시에 위치를 추정하고 지도를 작성하는 기술입니다. 이를 통해 기기는 미지의 환경에서 지도를 작성하고, 작성된 지도 안에서 자신의 위치를 추정할 수 있습니다. 자세한 설명을 드리겠습니다: 지도 작성: SLAM은 주변 환경에서 센서 데이터를 수집하여 지도를 작성합니다. 이 지도는 주변 장애물, 도로, 건물 등을 포함합니다. 지도 작성은 카메라, 레이저 거리 측정기, 라이다(Light Detection and Ranging)와 같은 센서를 사용하여 이루어집니다. 위치 추정: 작성된 지도를 기반으로 기기의 위치를 추정합니다. 이를 통해 기기는 자신이 어디에 있는지 알 수 있습니다. 위치 추정은 센서 데이터와 지도 정보를 결합하여 이루어집니다. 응용 사례: SLAM은 자율주행 차량뿐만 아니라 로봇 청소기, 무인 항공기, 드론, 가정용 로봇 등 다양한 분야에서 활용됩니다. 예를 들어 로봇 청소기는 SLAM을 사용하여 방 안에서 효율적으로 청소 경로를 계획하고 장애물을 피할 수 있습니다. 시각적 SLAM과 라이다 SLAM: 시각적 SLAM은 카메라와 기타 영상 센서를 사용하여 작동합니다. 비교적 저렴한 카메라를 사용하여 구현할 수 있습니다. 라이다 SLAM은 레이저 센서를 주로 사용하며, 정밀한 거리 측정이 가능합니다. SLAM은 현대 자동화 기술에서 중요한 역할을 하며, 지속적인 연구와 발전이 이루어지고 있습니다123.
matlab
https://kr.mathworks.com/discovery/slam.html
수행 과정 중 예측되는 장애 요소 및 그 해결 방안
계획된 실험과정
Localization test
amcl 혹은 기타 방법을 통한 위치 추정.
cartographer
연구개발과제의 내용
localization
세부개발 내용별 수행 방법
수행 과정 중 예측되는 장애 요소 및 그 해결 방안
계획된 실험과정
인증
2차년도 multi camera 기반 floor line detection
multi camera bird eye view 생성.
카메라 켈리브레이션.
getPerspectiveTransform
april tag를 이용한 src 및 dest point 추출 방법개발.
연구개발과제의 내용
원근 변환
**원근 변환(Perspective Transformation)**은 이미지의 기하학적 변형 중 하나로, 직선의 성질은 유지되지만 선의 평행성은 유지되지 않는 변환입니다. 이 변환은 주로 원근적인 효과를 적용하거나, 이미지에서 특정 영역을 왜곡하여 다른 시각으로 보이게 하는 데 사용됩니다. OpenCV에서 원근 변환 메트릭스를 자동으로 얻는 방법은 다음과 같습니다: 관심 영역의 모서리 4개 좌표를 지정합니다. 이 좌표는 입력 이미지에서 선택한 영역의 모서리입니다. 출력 이미지에서 해당 모서리의 좌표를 지정합니다. cv2.getPerspectiveTransform(src, dst) 함수를 사용하여 원근 변환 행렬을 계산합니다. 여기서 src는 입력 이미지에서 관심 영역의 모서리 좌표이고, dst는 출력 이미지에서 해당 모서리의 좌표입니다. 계산된 원근 변환 행렬을 cv2.warpPerspective(src, M, dsize) 함수에 적용하여 원근 변환된 이미지를 생성합니다. 여기서 src는 입력 이미지이고, M은 원근 변환 행렬입니다. 아래는 원근 변환을 수행하는 간단한 예제 코드입니다: import cv2 import numpy as np # 입력 이미지와 관심 영역의 모서리 좌표 src_points = np.float32([[x1, y1], [x2, y2], [x3, y3], [x4, y4]]) # 출력 이미지에서 해당 모서리의 좌표 dst_points = np.float32([[x1_new, y1_new], [x2_new, y2_new], [x3_new, y3_new], [x4_new, y4_new]]) # 원근 변환 행렬 계산 M = cv2.getPerspectiveTransform(src_points, dst_points) # 원근 변환된 이미지 생성 warped_image = cv2.warpPerspective(src_image, M, (output_width, output_height)) 이 코드에서 src_image는 입력 이미지, output_width와 output_height는 출력 이미지의 크기입니다. 원하는 관심 영역의 모서리 좌표를 적절히 설정하여 사용하시면 됩니다.123 원근 변환을 사용할 때 주의해야 할 점은 변환 행렬을 정확하게 계산하고, 올바른 좌표를 지정하는 것입니다. 또한 원근 변환은 이미지 왜곡을 일으킬 수 있으므로 신중하게 사용해야 합니다.
automatic calibration
**원근 변환(Perspective Transformation)**을 자동으로 수행하기 위해 자동 캘리브레이션(Automatic Calibration) 기법을 사용할 수 있습니다. 이 기법은 이미지에서 관심 영역의 모서리 좌표를 자동으로 추출하여 원근 변환 행렬을 계산합니다. 아래는 몇 가지 방법입니다: 마우스 클릭으로 좌표 지정: 사용자가 관심 영역의 모서리를 마우스로 클릭하여 좌표를 지정하는 방법입니다. 이후 이 좌표를 사용하여 원근 변환 행렬을 계산합니다12. 특정 패턴을 활용한 자동 캘리브레이션: 체스보드 패턴이나 다른 특정 패턴을 이미지에 배치하고, 해당 패턴의 모서리를 검출하여 원근 변환 행렬을 계산하는 방법입니다. OpenCV의 cv2.findChessboardCorners() 함수를 사용하여 체스보드 패턴의 모서리를 찾을 수 있습니다. 기계 학습 기반 방법: 머신러닝 기법을 사용하여 이미지에서 관심 영역의 모서리를 자동으로 추출하는 방법도 있습니다. 이 방법은 더 복잡하지만 정확도가 높을 수 있습니다. 자동 캘리브레이션을 사용하면 사용자의 개입 없이도 원근 변환 행렬을 계산할 수 있으며, 정확한 결과를 얻을 수 있습니다. 하지만 각 방법마다 장단점이 있으므로 상황에 맞게 선택하시면 됩니다.
세부개발 내용별 수행 방법
수행 과정 중 예측되는 장애 요소 및 그 해결 방안
계획된 실험과정
image stitching
각 카메라의 위치
Stiching 결과 평가 방법.
연구개발과제의 내용
이미지 합치기
4개의 카메라에서 얻은 Bird’s Eye View를 하나의 이미지로 통합하는 방법은 다양한 기술과 알고리즘을 활용할 수 있습니다. 여기서 몇 가지 방법을 소개해 드리겠습니다: 원근 변환 (Perspective Transformation): 각 카메라에서 얻은 이미지를 원근 변환하여 공통 평면으로 투영합니다. 각 카메라의 원근 변환 행렬을 계산하고, 이를 사용하여 이미지를 투영합니다. 투영된 이미지를 하나로 합쳐서 Bird’s Eye View를 생성합니다. 카메라 캘리브레이션 (Camera Calibration): 각 카메라의 내부 파라미터 (카메라의 초점 거리, 주요 지점 등)를 정확하게 측정합니다. 왜곡 보정을 통해 각 카메라의 이미지를 보정합니다. 보정된 이미지를 하나로 합쳐서 Bird’s Eye View를 생성합니다. 매핑 (Image Mapping): 각 카메라에서 얻은 이미지를 공통 좌표계로 매핑합니다. 이를 위해 각 카메라의 위치와 방향을 고려하여 이미지를 변환합니다. 변환된 이미지를 하나로 합쳐서 Bird’s Eye View를 생성합니다. 딥러닝 기반 방법: 신경망을 사용하여 각 카메라에서 얻은 이미지를 특성 벡터로 표현합니다. 특성 벡터를 결합하여 Bird’s Eye View를 생성합니다. 이 방법들은 각각 장단점이 있으며, 상황과 요구 사항에 따라 선택할 수 있습니다. Bird’s Eye View 생성에는 정확한 카메라 파라미터와 이미지 처리 기술이 필요하므로 신중하게 고려하시기 바랍니다.
세부개발 내용별 수행 방법
수행 과정 중 예측되는 장애 요소 및 그 해결 방안
계획된 실험과정
Line extraction 고도화
기존
image capture
rectfication
IPM
Line extraction
고도화
image capture
Line extraction
Line
시점
종점
기울기.
rectfication
IPM
Line regeneration
연구개발과제의 내용
스테레오 이미지에서 특징점을 뽑아 특징점의 좌표를 구하는 과정은 카메라 왜곡 보정과 특징점 추출 단계로 나눌 수 있습니다. 일반적으로는 먼저 왜곡 보정을 수행한 후 특징점을 찾습니다. 그러나 특정 상황에서는 특징점을 먼저 추출하고 해당 특징점만 왜곡 보정을 거치는 기법도 있습니다. 여러 가지 방법 중에서 두 가지 접근 방식을 설명해 드리겠습니다: 왜곡 보정 후 특징점 추출 (일반적인 방법): 카메라 캘리브레이션을 통해 카메라의 내부 파라미터와 왜곡 계수를 추정합니다. 이미지에서 특징점을 추출합니다 (예: SIFT, SURF, ORB 등). 추출한 특징점의 좌표를 왜곡 보정하여 실제 3D 공간의 좌표로 변환합니다. 특징점 먼저 추출 후 왜곡 보정 (역 방법): 이미지에서 특징점을 먼저 추출합니다. 추출한 특징점의 좌표를 사용하여 왜곡 보정을 수행합니다. 이후 왜곡 보정된 좌표를 실제 3D 공간의 좌표로 변환합니다. 역 방법은 특징점 추출에 더 중점을 두는 경우에 유용할 수 있습니다. 예를 들어, 특정 상황에서는 이미지에서 특정 물체의 특징점을 정확하게 추출해야 할 때가 있습니다. 그러나 왜곡 보정은 이미지의 왜곡을 보정하기 위해 필요한 단계이므로, 왜곡 보정을 먼저 수행하는 것이 일반적입니다. 실제 구현에서는 OpenCV를 사용하여 카메라 캘리브레이션과 특징점 추출을 수행할 수 있습니다. 특히 cv2.findChessboardCorners() 함수를 사용하여 체스보드 패턴의 모서리를 찾고, 이를 기반으로 왜곡 보정을 수행할 수 있습니다12.1
세부개발 내용별 수행 방법
수행 과정 중 예측되는 장애 요소 및 그 해결 방안
계획된 실험과정
카메라의 최적 위치 도출
최적의 기준.
캘리브레이션 기준
캘리브레이션 용이성.
Stitching 용이성.
캘리브레이션후 데이터 정확도.
line 데이터 기준
추출된 라인들의 총길이.
Simulator 기준..
연구개발과제의 내용
세부개발 내용별 수행 방법
수행 과정 중 예측되는 장애 요소 및 그 해결 방안
계획된 실험과정
2D + Floor LINE 통합 map building
cartographer
2개의 이종 센서의 데이터를 수신하여 하나의 맵을 생성하는 기술 개발.
연구개발과제의 내용
라이다 스캔을 사용하여 SLAM (동시적 위치추정 및 지도작성)을 구현하는 방법에 대해 알려드리겠습니다. SLAM은 자율주행 차량이나 로봇이 미지의 환경에서 동시에 위치를 추정하고 주변 환경에 대한 지도를 작성하는 기술입니다. 여러 가지 방법으로 SLAM을 구현할 수 있지만, 라이다 스캔을 사용하는 경우 다음과 같은 단계를 따를 수 있습니다: 데이터 수집: 서로 높이가 다른 두 개의 2D 라이다 스캔 데이터를 수집합니다. 스캔 정합: 라이다 스캔을 정합하여 하나의 지도로 통합합니다. 이 단계에서 스캔 간의 상대적인 위치를 추정합니다. 자세 그래프 최적화: 스캔 간의 자세를 그래프로 표현하고 최적화하여 위치 추정을 개선합니다. 맵 작성: 최적화된 자세 그래프를 사용하여 환경 맵을 작성합니다. 이러한 단계를 통해 서로 높이가 다른 두 개의 라이다 스캔 데이터를 효과적으로 활용하여 SLAM을 구현할 수 있습니다. 이때 라이다 스캔 데이터의 정확성과 자세 추정 알고리즘의 성능을 고려하여 최적화를 수행하면 좋습니다. 또한 루프 폐쇄 검출과 같은 추가 기능을 고려할 수도 있습니다. 이러한 단계를 프로그래밍 언어 또는 SLAM 라이브러리를 사용하여 구현할 수 있습니다.12
세부개발 내용별 수행 방법
수행 과정 중 예측되는 장애 요소 및 그 해결 방안
계획된 실험과정
인증
3차 년도
2D + Floor LINE 기반 Localizer
lidar base localizer
amcl
line base localizer
amcl
cartographer localization mode
EKF or paricle filter 기반. sensor fusion 개발.
lidar base pose
line base pose
odom
imu.
기타 source
연구개발과제의 내용
세부개발 내용별 수행 방법
수행 과정 중 예측되는 장애 요소 및 그 해결 방안
계획된 실험과정
상용화 tool 개발(외주)
calibartion GUI 개발.
사용 캘리브레이션 프로그램 설계
연구개발과제의 내용
세부개발 내용별 수행 방법
수행 과정 중 예측되는 장애 요소 및 그 해결 방안
계획된 실험과정
calibration back end 개선
연구개발과제의 내용
세부개발 내용별 수행 방법
수행 과정 중 예측되는 장애 요소 및 그 해결 방안
계획된 실험과정
calibaration GUI 개발
연구개발과제의 내용
세부개발 내용별 수행 방법
수행 과정 중 예측되는 장애 요소 및 그 해결 방안
계획된 실험과정
연동 테스트
연구개발과제의 내용
세부개발 내용별 수행 방법
수행 과정 중 예측되는 장애 요소 및 그 해결 방안
계획된 실험과정
mapbuilding GUI
사용 맵빌딩 프로그램 설계
연구개발과제의 내용
세부개발 내용별 수행 방법
수행 과정 중 예측되는 장애 요소 및 그 해결 방안
계획된 실험과정
mapbuilding back end 개선
연구개발과제의 내용
세부개발 내용별 수행 방법
수행 과정 중 예측되는 장애 요소 및 그 해결 방안
계획된 실험과정
mapbuilding GUI 개발
연구개발과제의 내용
세부개발 내용별 수행 방법
수행 과정 중 예측되는 장애 요소 및 그 해결 방안
계획된 실험과정
연동 테스트
연구개발과제의 내용
세부개발 내용별 수행 방법
수행 과정 중 예측되는 장애 요소 및 그 해결 방안
계획된 실험과정
인증
연구 개발 과제의 내용.
3. 연구개발과제의 추진전략·방법 및 추진체계
1) 연구개발과제의 추진전략·방법
1. 개발목표 달성을 위한 기술 개발 전략 계획
2. 수행 방법
3. 활용자원
4. 세부개발 내용별 수행 방법
5. 수행 과정 중 예측되는 장애 요소 및 그 해결 방안,
6. 계획된 실험과정