S-PTAM
Pire 2017 · 논문
한 줄 요약 — S-PTAM은 PTAM의 병렬 추적-매핑 패러다임을 스테레오 카메라로 확장하여, 기선으로부터 얻는 미터 단위 스케일과 외관 기반 루프 클로저를 갖춘 완전하고 실시간이며 ROS로 공개된 스테레오 SLAM 시스템을 제공한다.
문제
단안 SLAM은 부트스트래핑 문제(지연되고 까다로운 맵 초기화), 스케일 모호성과 스케일 드리프트, 그리고 동적 물체와 빠른 움직임에서의 취약성으로 고통받는다. 스테레오는 이 모든 것을 해결한다: 단일 스테레오 뷰에서 깊이를 삼각측량하면 지연 없이 낮은 불확실성으로 점을 초기화할 수 있고, 실제 스케일도 복원된다 — “주변 작업 공간과 상호작용해야 하는 로봇에게는 필수적”이다. 부족했던 것은 실내, 실외, 동적 물체, 변화하는 조명, 큰 루프에서도 견고하며, 로보틱스 랩이 ROS를 통해 실제로 배치할 수 있는, 성숙하고 실시간인 특징 기반 스테레오 SLAM이었다. S-PTAM이 이 공백을 채운다.
방법 및 아키텍처
세 개의 스레드가 맵을 공유한다: 추적(tracking), 로컬 매핑(local mapping), 루프 클로징(loop closing). 전역 프레임은 첫 카메라 포즈에서 설정되며, 초기 맵은 첫 스테레오 쌍으로부터 삼각측량된다(부트스트래핑 없음).
- 특징: GFTT 코너를 이진 BRISK 디스크립터로 기술한다 — 논문의 KITTI에 대한 전면적인 검출기/디스크립터 평가에서 선택되었으며, 두 이미지에 대한 특징 추출은 두 개의 병렬 스레드에서 실행된다.
- 추적(프레임 단위): 예측된 절두체(frustum) 내부의 맵 포인트(휠 오도메트리 또는 감쇄하는 속도 모델에서 얻은 예측)가 투영되어 그리드 셀(공간 해싱) 내에서 해밍 거리로 특징과 매칭된다. 인근 키프레임의 공동 가시성 영역에 속한 점만 고려되며, 절두체 컬링과 45도 시야각 검사가 적용된다. 이어서 포즈는 재투영 오차에 대한 강인 가우스-뉴턴 방법으로 구한 상대 운동 을 이전 포즈와 합성하여 정련된다: 여기서 는 후버 비용이며 레벤버그-마쿼트(g2o)로 최소화되고, 는 투영 도함수를 포즈 도함수 와 연쇄한 것이다.
- 키프레임과 즉시 포인트 생성: 추적된 점의 수가 마지막 키프레임에서 추적된 점의 90% 미만으로 떨어지면 해당 프레임은 키프레임이 된다. 매칭되지 않은 스테레오 특징은 삼각측량되어 추적 스레드 내에서 즉시 맵에 삽입된다 — 이를 매핑 스레드로 미루는 PTAM과 달리, 큐가 혼잡할 때 추적을 잃을 위험이 없다.
- 로컬 매핑: 로컬 번들 조정은 대기 중인 최대 10개의 키프레임과 이미 정련된 인근 키프레임 및 그들이 보는 점들을 정련하며, 첫 키프레임(전역 프레임을 정의)을 고정한 채 포즈와 점에 대해 동일한 강인 재투영 오차 를 공동으로 최소화한다. 나쁜 점은 제거되고, 그래프를 강화하기 위해 새로운 점-키프레임 관측이 능동적으로 탐색된다.
- 루프 클로저: 키프레임은 이진 단어들의 가방(DBoW2, )으로 기술된다. 후보는 정규화된 유사도 점수 를 통과해야 하며, 여기서 는 범위의 L1 유사도다. 기하학적 검증은 3D-2D 대응에 대한 P3P RANSAC으로 실행되며(인라이어 80% 이상일 때만 루프를 수락), 이어서 완전한 PnP와 비선형 정련으로 상대 변환 을 얻는다. 보정은 이 변환을 슬러프(Slerp) 보간 가중치(루프 지점 근처에서 더 강함)로 루프를 따라 전파하고, 이어서 포즈 그래프 최적화(g2o)와 맵 포인트 보정이 이어진다 — 이때 “안전 매핑 윈도우”가 추적과 LBA를 계속 실행하게 하면서, 최종 맵 업데이트를 위해서만 잠깐 멈춘다.
실험 결과
KITTI (00–10)와 Indoor Level 7 S-Block 데이터셋에서, i7 @ 2.8 GHz와 16 GB RAM을 갖춘 노트북으로 실험:
- KITTI 벤치마크: 이동 오차 1.19% (ORB-SLAM2 스테레오 1.15%, S-LSD-SLAM 1.20%와 비교); 회전 오차 0.0025 deg/m — 세 방법 중 최고(ORB-SLAM2 0.0027, S-LSD-SLAM 0.0033).
- 루프 클로저: 기하학적 검증이 모든 루프 시퀀스(00, 02, 05, 06, 07, 09)에서 100% 정밀도로 거짓 양성을 거부했다. 약 4 km인 시퀀스 00 궤적 전체에서 최대 절대 위치 오차는 15 m 이하로 유지되었다.
- 실행 속도: 추적 스레드는 루프 클로저 오버헤드를 포함해도 약 18 Hz로 동작한다.
- Level 7 S-Block(바퀴형 로봇, 30분 이상의 오피스 루프): ORB-SLAM2와 비슷한 정확도를 보였으며, 같은 지역에서 유사한 오차 피크가 나타났다.
SLAM에서의 의미
S-PTAM은 PTAM 시대와 현대 스테레오 SLAM을 잇는 다리다: 추적/매핑 분리가 스테레오와 대규모 실외 궤적으로도 깨끗하게 확장됨을 보였고, 로보틱스 랩이 ROS를 통해 배치할 수 있는 루프 클로저를 갖춘 최초의 완전한 오픈소스 스테레오 SLAM 시스템 중 하나였다. ORB-SLAM2가 지배적인 특징 기반 기준이 되기 전 공통의 지상 로봇 베이스라인으로 쓰였으며, 추적 스레드에서의 즉시 포인트 생성과 안전 윈도우 루프 보정 같은 세부 사항은 여전히 유익한 엔지니어링 교훈으로 남아 있다.