RTAB-Map
Labbé 2019 · 논문
한 줄 요약 — RGB-D, 스테레오, LiDAR를 지원하는 메모리 관리 기반 다중 센서 오픈소스 SLAM 라이브러리로, 시간이 제한된 루프 클로저 탐지를 통해 대규모, 장기간, 다중 세션 운용을 가능하게 한다.
문제
장시간 SLAM은 계속 커지는 맵을 누적시키며, 저장된 모든 위치를 스캔하는 루프 클로저 검색은 그에 비례해 커져 결국 실시간 제약을 위반하게 된다. 수 시간, 수 일, 또는 다중 세션에 걸쳐 운용되는 로봇의 경우 루프 클로저는 탐사 기간과 무관하게 제한된 시간 내에 실행되어야 한다. 별도로, 실제 로봇들은 다양한 센서 구성(실외에서는 스테레오, 실내에서는 RGB-D, 2D/3D LiDAR, 휠 오도메트리)을 갖추고 있지만, 대부분의 연구 시스템은 정확히 하나의 구성만 지원했고 카메라 전용 또는 LiDAR 전용 데이터셋으로만 평가되어, 시각-대-LiDAR 비교는 물론 실제 배치조차 어렵게 만들었다.
방법 및 아키텍처
RTAB-Map은 오도메트리를 외부의 교체 가능한 입력으로 취급하는 그래프 기반 SLAM 노드다. 맵은 그래프이며, 각 노드는 오도메트리 포즈, 압축된 원시 센서 데이터, 시각 단어(visual words), 로컬 점유 격자를 고정된 검출 속도로 저장한다; 링크(인접, 루프 클로저, 근접)는 그래프 최적화를 제약하는 강체 변환을 가진다.
- 교체 가능한 오도메트리 프론트엔드: 내장 시각 오도메트리는 Frame-To-Frame(F2F) 또는 Frame-To-Map(F2M) 방식으로 동작한다: GFTT 특징(BRIEF 디스크립터, F2M에는 최근접-이웃-거리-비율 매칭, F2F에는 광류 사용), 탐색 영역을 좁히는 등속도 운동 예측, PnP RANSAC 운동 추정, 이후 로컬 번들 조정을 수행한다; LiDAR 오도메트리는 libpointmatcher를 통해 Scan-To-Scan 또는 Scan-To-Map ICP(점-대-점 또는 점-대-평면)를 실행한다. 외부 소스(휠, VIO, ORB-SLAM2의 트래커, LOAM)도 동일한 방식으로 연결될 수 있으며, 여러 잔차를 하나의 추정치로 융합할 수 있다(교재식 표현):
- STM → WM → LTM 메모리 관리: 새 노드는 단기 기억(Short-Term Memory) 버퍼에 들어간 뒤 고정 크기의 작업 기억(Working Memory, WM)으로 이동한다; 루프 클로저 검색에는 WM만 참여하므로 검출 비용은 전체 맵 크기와 무관하게 이 된다. 리허설 메커니즘은 노드에 가중치를 부여하며(시각적으로 유사한 연속 노드는 해당 노드의 가중치를 증가시킴), 갱신 시간이 고정된 임계값을 초과하면 가장 오래되고 가중치가 낮은 WM 노드들이 장기 기억(Long-Term Memory, LTM)으로 이전되고, 루프 클로저가 발생하면 해당 위치의 그래프 인접 영역을 LTM에서 WM으로 다시 불러온다.
- 베이지안 외관 기반 루프 클로저: 특징들은 점진적으로 구축되는 bag-of-words 어휘로 양자화된다; tf-idf 우도가 현재 노드가 WM 내 어떤 위치를 재방문한 것인지 아니면 새로운 장소인지를 추정하는 베이즈 필터를 갱신한다. 가설이 임계값을 넘으면, 시각 오도메트리와 동일한 PnP 운동 추정으로 변환을 계산하고, 스캔이 있으면 ICP로 정제한다.
- 근접 탐지: 그래프상 가까운 노드들(탐색 깊이가 제한되어 복잡도가 한정됨)은 ICP 스캔 정합으로 매칭된다 — 이는 카메라가 루프를 닫을 수 없는 상황, 즉 복도를 거슬러 이동할 때 위치를 파악할 수 있게 한다.
- 루프 기각을 포함한 그래프 최적화: TORO, g2o, 또는 (기본값인) GTSAM이 포즈 그래프를 최적화한다; 최적화된 링크의 변환이 이동 분산에 설정된 배수 이상으로 변하면, 새로운 루프/근접 링크는 기각된다 — 오탐지 장소 인식에 대한 방어책이다.
- 실용적 출력 및 다중 세션: OctoMap, 2D 점유 격자, 포인트 클라우드 출력이 ROS 내비게이션 스택을 위해 직접 조립된다; 시작 시 새 세션은 자신만의 맵으로 시작하며, 과거 세션으로의 루프 클로저는 맵 간 변환을 계산하여 그래프를 병합한다.
실험 결과
Journal of Field Robotics 논문은 KITTI, TUM RGB-D, EuRoC, MIT Stata Center PR2 데이터셋에서 RTAB-Map의 시각 및 LiDAR 구성을 평가한다. KITTI(ATE, 단일 CPU 코어)에서: LiDAR S2S는 시퀀스 00에서 평균 오도메트리 시간 62 ms/프레임으로 1.0 m를 달성; 스테레오 F2M은 82 ms에 1.0 m; RTAB-Map 내부의 ORB-SLAM2 기반 오도메트리가 가장 정확한 시각 변형(11개 시퀀스 중 9개에서 최고 ATE, 11개 중 10개에서 최고 이동 오차)이지만 단일 코어에서 프레임당 100 ms를 초과한다. 고속도로 시퀀스 01은 모달리티 간 트레이드오프를 드러낸다: LiDAR 오도메트리는 심하게 표류하지만(기하가 희소한 스캔으로 인한 나쁜 피치, S2S 24.0 m) 스테레오 F2M은 먼 시각 특징을 이용해 4.7 m를 달성한다. KITTI 오도메트리 리더보드에서 RTAB-Map(F2M, 스테레오)은 이동 1.26% / 회전 0.0026 deg/m를 기록하며 — ORB-SLAM2(1.15% / 0.0027)와 LSD-SLAM(1.20% / 0.0033)에 근접하고, LOAM은 0.61%다. 원래의 IROS 2014 메모리 관리 논문은 수천 개 위치를 가진 맵에서도 프레임당 700 ms 이하의 일정한 루프 클로저 처리 시간을 보여주었으며, JFR 버전은 맵이 커지는 동안에도 온라인 운용을 실시간으로 유지하는 다중 세션 매핑과 메모리 관리를 시연한다(전체 연산 성능 연구는 논문 참조).
SLAM에서의 의미
RTAB-Map은 실제 로보틱스에서 가장 널리 배치된 SLAM 시스템 중 하나다: 시간 제한 루프 클로저, 거의 모든 일반적인 센서 구성에 대한 지원, 즉시 사용 가능한 ROS 통합이 결합되어, 비전문가도 최소한의 설정만으로 신뢰할 수 있는 매핑을 실행할 수 있게 한다. 연구용 프로토타입이 아니라 실제 로봇에서 견고하고 완전한 기능을 갖춘 SLAM 스택이 필요할 때 가장 먼저 찾게 되는 시스템이며, 그 메모리 관리 설계는 장기 SLAM 확장성에 대한 참조 접근법으로 남아 있다.
관련 문서
- RGBD-SLAM-V2
- Visual Place Recognition (VPR)
- Pose graph optimization
- ORB-SLAM2
- LOAM
- Robust pose-graph optimization — RTAB-Map의 기각 검정이 해결하는 것과 동일한 허위 루프 문제