Lidar Odometry And Mapping (LOAM)은 6자유도 공간에서 2-axis LiDAR 센서가 생성하는 데이터를 이용해 로봇의 Odometry(오도메트리)와 Mapping(지도 작성)을 실시간으로 수행하는 SLAM 알고리즘이다.
SLAM은 동시 위치 추정 및 지도 작성 기술인데, 보통은 루프 클로저를 통해 전역 누적 오차를 보정한다. 하지만 루프 클로저는 계산 비용이 크고 실시간 처리에 부담이 있다.
LOAM은 이러한 문제를 해결하기 위해 LiDAR 기반의 오도메트리와 매핑을 병렬로 수행해, 짧은 시간 간격마다 오차를 보정함으로써 낮은 드리프트를 유지한다.
Odometry (오도메트리):
로봇이 이동하면서 자신의 위치와 자세를 추정하는 과정이다. LOAM은 LiDAR 스캔 데이터에서 추출한 특징점을 이용해, 짧은 시간 간격 동안의 미세한 이동(평행 이동, 회전 등)을 실시간으로 계산한다.
Mapping (지도 작성):
오도메트리로 추정된 위치 정보와 개별 LiDAR 스캔 데이터를 결합해, 3차원 점군(Point Cloud) 형태의 전역 지도를 생성한다.
Odometry와 Mapping의 결합:
빠르게 변화하는 국부적 오도메트리 정보와 누적된 스캔 데이터를 통한 정교한 지도 작성을 결합하여, 실시간으로 낮은 드리프트의 3D 맵을 생성한다.
루프 클로저란?
로봇이 이미 방문했던 장소를 재인식하는 과정을 말한다. 이를 통해 누적된 오차(드리프트)를 한 번에 보정해 전역 지도 일관성을 높인다.
일반적인 SLAM에서 루프 클로저 사용:
누적 오차를 보정한다. LOAM에서 루프 클로저 미사용:
오도메트리와 매핑을 병렬 처리해, 각 스캔마다 상대 이동을 계산하고 바로 지도에 반영하여 오차가 누적되지 않도록 한다. Front-end:
Back-end:
쉽게 말하면:
Front-end는 "실시간으로 빠르게 움직임을 계산하는 부분", Back-end는 "전체 경로의 오차를 보정하여 정교한 지도를 만드는 부분"이다.
재인식 문제:
로봇이 이전에 방문한 장소를 재인식하는 것은 환경 변화(날씨, 조명, 동적 장애물 등)나 관점의 차이 때문에 매우 어렵다.
데이터 양과 계산 복잡성:
전역 지도에 쌓인 데이터가 많아질수록, 현재 스캔과 저장된 모든 데이터 또는 대표 데이터와 매칭해야 하므로 계산 비용이 크게 증가한다.
오류 전파 위험:
잘못된 루프 클로저가 발생하면 전체 경로에 심각한 오류(드리프트 보정 오류)를 가져올 수 있어 매우 신중하게 처리해야 한다.
실시간 처리의 어려움:
루프 클로저는 전역 최적화 문제로, 과거의 모든 스캔 데이터를 고려해야 하므로 연산량이 기하급수적으로 증가하여 실시간 적용이 어렵다.
LOAM의 방식:
LOAM은 매 스캔마다 오도메트리와 매핑을 수행하여, 작은 단위로 오차를 보정한다. 이는 전체 경로에 대해 한 번에 최적화하는 루프 클로저와 비교했을 때, 계산량이 분산되어 실시간 처리에 유리하다.
실시간 처리 부담 비교:
LOAM은 LiDAR 센서의 뛰어난 정밀도를 활용해, 로봇이 이동하면서 실시간으로 오도메트리와 지도를 작성하는 강력한 SLAM 알고리즘이다.