일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 찾다죽는줄
- QTcpServer
- 국토교통부
- object
- lua for windows
- file write
- 월세
- file read
- 엑스퍼트2주년
- lua setup
- 수도권주택공급
- meta table
- #부동산전자거래 #부동산전자계약 #부동산계약 #부동산전자계약방법 #부동산전자계약하는법 #부동산계약방법 #부동산중개수수료 #부동산중개수수료아끼기 #부동산복비아끼기
- TCP/IP
- file open
- 티몬삼겹살데이
- 프리미어 영상저장
- QT TCP
- 엑스퍼트생일축하해
- FILE TRANSFER
- 중소규모택지
- lua interpreter
- 프리미어 영상변환
- Lua
- C++ API
- C API
- #신혼부부 #결혼준비 #신혼부부희망타운신혼부부특별공급
- lua install
- 등록임대주택
- 청량리역한양수자인192
- Today
- Total
Value Creator의 IT(프로그래밍 / 전자제품)
SLAM 정리 본문
Simultaneous Localization and Mapping
반면 SLAM 기술을 적용한 로봇은 바퀴 회전수와 카메라 및 기타 이미징 센서에서 가져온 데이터 같은 정보를 사용하여 필요한 이동량을 파악할 수 있습니다. 이를 위치추정이라고 합니다. 또한 로봇은 카메라와 기타 센서를 동시에 사용하여 주변 환경의 장애물 지도를 생성하고 같은 구역을 또다시 청소하는 경우를 방지할 수 있습니다. 이를 지도 작성이라고 합니다.
SLAM은 창고에서 선반을 정렬하는 이동형 로봇의 길 찾기, 자율주행 차량의 빈 주차 공간 주차하기 또는 미지의 환경에서의 드론 조종을 통한 배송 등 다른 여러 응용 사례에서도 유용하게 사용할 수 있습니다
SLAM 구현에 사용되는 기술 요소에는 크게 두 가지 유형이 있습니다. 첫 번째 유형은 프론트엔드 처리를 포함하는 센서 신호 처리로서, 사용되는 센서에 대한 의존도가 높습니다. 두 번째 유형은 백엔드 처리를 포함하는 자세 그래프 최적화로서 센서에 구애받지 않습니다.
1. Visual SLAM
추후 사용
2. Lidar SLAM
레이저 센서에서 가져온 출력값은 보통 2D(x, y) 또는 3D(x, y, z) 포인트 클라우드 데이터입니다.
일반적으로 이동 정보는 포인트 클라우드 매칭을 통해 순차적으로 추정됩니다. 계산된 이동(주행 거리) 정보는 차량의 위치추정에 사용됩니다. 라이다 포인트 클라우드 매칭에는 ICP(Iterative Closest Point) 및 NDT(Normal Distributions Transform) 알고리즘이 사용됩니다. 2D 또는 3D 포인트 클라우드 지도는 그리드 지도 또는 복셀 지도로 표현할 수 있습니다.
한편, 밀도에 있어서 포인트 클라우드는 영상처럼 정교하지 않으며 매칭에 필요한 충분한 특징을 항상 제공하는 것도 아닙니다. 예를 들어 장애물이 거의 없는 장소에서는 포인트 클라우드 정렬이 어렵고, 이로 인해 차량 위치 추적이 실패할 수 있습니다. 게다가 포인트 클라우드 매칭에는 일반적으로 높은 수준의 처리 능력이 필요하고, 따라서 속도 개선을 위한 처리 최적화가 필요합니다. 이러한 문제 때문에 자율주행 차량의 위치추정에는 휠 주행거리 측정, GNSS(범지구 위성 항법 시스템) 및 IMU 데이터 등의 기타 측정 결과를 융합하는 작업이 수반될 수 있습니다. 창고의 로봇과 같은 응용 분야에서는 2D 라이다 SLAM 등이 흔히 사용되지만 UAV 및 자동 주차에는 3D 라이다 포인트 클라우드를 이용하는 SLAM이 사용될 수 있습니다.
SLAM에서 흔히 생기는 문제
SLAM이 몇몇 실제 응용 분야에 사용되고는 있지만, 몇 가지 기술적 문제로 인해 더 광범위한 용도로는 도입이 어려운 상황입니다. 다음 각각의 문제는 이를 타개할 수 있는 대응책이 있습니다.
1. 실제값과의 상당한 편차를 초래하는 위치추정 오차 누적
SLAM은 일부 오차 범위가 포함된 순차적 이동 정보를 추정합니다. 이 오차는 시간이 지나면서 누적되고, 따라서 실제값과는 상당한 편차가 발생합니다. 이렇게 되면 지도 데이터의 붕괴 또는 왜곡이 발생하여 후속 검색이 어려워집니다. 사각형 통로 주변을 주행하는 경우를 예로 들어 보겠습니다. 오류가 누적되면서 로봇의 출발점과 끝점이 더는 일치하지 않게 됩니다. 이는 루프 폐쇄 문제라고 합니다. 이와 같은 자세 추정 오류는 불가피한 문제입니다. 루프 폐쇄를 감지하고 누적된 오류를 정정하거나 상쇄하는 방법을 파악하는 것이 중요합니다.
2. 위치추정 실패 및 지도상 위치 상실
영상 및 포인트 클라우드 매핑 시 로봇의 이동 특성은 고려되지 않습니다. 경우에 따라서는 이러한 접근법으로 인해 불연속적인 위치추정값이 생성될 수 있습니다. 예를 들자면 1m/s로 이동하는 로봇이 갑자기 10m 앞으로 급속 이동하는 계산 결과가 표시되는 경우를 들 수 있습니다. 이러한 유형의 위치추정 실패 문제는 복원 알고리즘을 사용하거나 이동 모델과 다수의 센서를 융합하여 센서 데이터에 기반한 계산을 수행함으로써 방지할 수 있습니다.
이동 모델에 센서 융합을 사용하는 방법에는 여러 가지가 있습니다. 널리 사용되는 방법은 위치추정에 칼만 필터링을 사용하는 것입니다. 대부분의 차동 구동 로봇 및 사륜 차량은 일반적으로 비선형 이동 모델을 사용하므로, 확장 칼만 필터와 입자 필터(몬테카를로 위치추정)가 종종 사용됩니다. 때로는 무향 칼만 필터처럼 더 유연한 베이즈 필터를 사용할 수도 있습니다. 흔히 사용되는 몇 가지 센서를 꼽자면 AHRS(자세방위기준장치), INS(관성 항법 시스템), 가속도계 센서, 자이로 센서, 자기 센서 및 IMU와 같은 관성 측정 장치를 들 수 있습니다. 차량에 장착된 휠 인코더는 종종 주행거리 측정에 사용됩니다.
위치추정에 실패할 경우 복원을 위한 대응책은 이전에 갔던 장소의 표지물을 키프레임으로서 기억하는 것입니다. 표지물을 검색할 때는 고속 스캔이 가능한 방식으로 특징 추출 절차가 적용됩니다. 영상 특징에 기반한 방법에는 BoF(Bag of Features) 및 BoVW(Bag of Visual Words)가 있습니다. 최근에는 특징까지의 거리 비교에 딥러닝이 사용되고 있습니다.
3. 영상 처리, 포인트 클라우드 처리 및 최적화에 소요되는 높은 계산 비용
차량 하드웨어에 SLAM을 구현할 때는 계산 비용이 문제가 됩니다. 계산은 대개 제한된 처리 능력을 갖는 소형 저전력 임베디드 마이크로프로세서에서 수행됩니다. 정확한 위치추정을 위해서는 높은 빈도로 포인트 클라우드 매칭과 영상 처리를 실행하는 것이 매우 중요합니다. 게다가 루프 폐쇄와 같은 최적화 계산은 계산량이 높은 과정입니다. 문제는 그처럼 계산적 비용이 상당한 과정을 임베디드 마이크로컴퓨터에서 어떻게 실행하냐는 데 있습니다.
한 가지 대응책은 서로 다른 프로세스를 병렬로 실행하는 것입니다. 매칭의 전처리 과정인 특징 추출 같은 과정은 병렬화에 비교적 적합합니다. 멀티코어 CPU를 처리와 SIMD(Single Instruction Multiple Data) 계산, 임베디드 GPU에 이용하면 경우에 따라 속도를 더욱 향상할 수 있습니다. 또한 자세 그래프 최적화는 비교적 긴 주기에 걸쳐 수행될 수 있으므로 우선순위를 낮추고 일정한 간격으로 이 처리를 수행하는 것으로도 성능을 개선할 수 있습니다.
2D 및 3D 라이다 처리 및 스캔 매칭
3D 라이다 포인트 클라우드 처리
2D 및 3D 자세 그래프 생성
자세 그래프 최적화
rosbag 파일에서 라이다 데이터를 가져와 점유 그리드 생성
루프 폐쇄를 찾고 수정하며 경로 계획을 위해 지도를 점유 그리드로 내보내기
RRT 또는 Hybrid A Star 등의 경로 계획 알고리즘 구현
제어 명령 전송을 통한 계획된 경로 추종 및 장애물 회피
내비게이션 알고리즘