CCM-SLAM

Schmuck & Chli 2019 · 논문

한 줄 요약 — CCM-SLAM은 고정 크기 로컬 맵을 가진 ORB-SLAM 기반 에이전트들이 키프레임을 서버로 스트리밍하고, 서버가 장소 인식, Sim(3) 맵 융합, 중복 제거, 전역 최적화를 수행하는 중앙집중식 협업 단안 SLAM 시스템이며 — 모든 로봇이 통신 장애를 겪어도 계속 비행할 수 있도록 설계되었다.

문제

단일 로봇 단안 SLAM은 커버리지가 제한적이고 드리프트에 취약하다. 로봇 팀은 더 빨리 지도를 만들고 서로의 드리프트를 서로 보정할 수 있지만 — 세 가지 문제가 함께 해결되어야만 그렇다: (1) 대역폭이 제한된 무선 링크를 통해 효율적으로 맵 데이터를 공유하기, (2) (초기 구성이 알려지지 않은) 서로 다른 로봇이 만든 맵을 하나의 일관된 추정값으로 병합하기, (3) 어떤 에이전트도 위험에 빠지지 않게 메시지 손실과 지연을 견뎌내기. 이를 어렵게 만드는 추가 제약: 소형 UAV의 온보드 컴퓨터는 성장하는 전역 맵을 감당할 수 없으므로, 모든 내비게이션에 중요한 작업을 온보드에 유지하면서도 아키텍처 자체가 클라이언트 측 자원을 제한해야 한다.

방법 및 아키텍처

에이전트 측. 각 로봇은 NN개 키프레임으로 잘려진 로컬 맵 LL(및 아직 확인되지 않은 키프레임의 버퍼 최대 B=NB=N개)을 가진 ORB-SLAM의 키프레임 기반 시각 오도메트리 프론트엔드를 실행한다 — 공동 가시성 그래프(공유하는 맵 점이 15개 이상이면 엣지, 가중치 = 공유 관측 수)로 연결된 키프레임과 맵 점. 잘라내기는 참조 키프레임 KFrefKF_{ref}와 가장 최근의 키프레임을 유지한다. 다른 에이전트가 만든 키프레임은 서버가 이를 보유하고 있는 것이 보장되므로 먼저 제거된다. 서버 링크가 끊어지면, 에이전트는 단순히 제한된 맵 윈도우를 가진 VO로 저하된다 — 자율성은 결코 위임되지 않는다.

서버 측. 서버 맵 스택은 에이전트별로 하나의(무제한) 맵을 보유하며, 에이전트별 핸들러가 통신, 맵 관리, 장소 인식 스레드를 실행한다. 각 핸들러는 에이전트의 로컬 프레임에서 서버 맵으로의 Sim(3)\mathrm{Sim}(3) 변환 LiSiMj={R,t,s}{}^{L_i}S_i^{M_j}=\{R,t,s\}를 저장한다(초기값은 항등원 — 전역 기준 프레임은 결코 가정되지 않는다). DBoW2 키프레임 데이터베이스는 두 종류의 질의를 지원한다: 맵 내 장소 인식(루프 클로저 → 전역 번들 조정)과 에이전트 간 맵 매칭. 매칭이 성립하면 맵 융합이 MmSMq{}^{M_m}S^{M_q}를 계산하고, 매칭된 맵 점 쌍을 새로운 에이전트 간 제약으로 병합하고, 전역 BA(g2o 레벤버그-마쿼트, 강한 엣지 w100w\geq100에 대한 필수 그래프 포즈 그래프 최적화가 선행됨)를 실행하고, 영향받은 각 핸들러의 변환을 LiSiMf=LiSiMq(MmSMq)1{}^{L_i}S_i^{M_f} = {}^{L_i}S_i^{M_q}\cdot\left({}^{M_m}S^{M_q}\right)^{-1}로 업데이트한다. 확률적 키프레임 거부 방식이 중복을 제거한다: 한 키프레임의 맵 점 중 θ%\theta\%가 다른 3개 이상의 키프레임에서 관측된다면, 이는 제거된다 — 대규모 임무에서 필수적이다.

통신 프로토콜(엔지니어링의 핵심). 모든 포즈는 상대 좌표로 교환된다 — 각 키프레임은 자신의 선행 키프레임과 공동 가시성 부모에 대한 상대 포즈로 인코딩된다 — 그래서 서버 맵이 최적화 중에 잠긴 상태에서 도착하는 데이터는 결과에 의해 암묵적으로 보정된다(절대 좌표는 루프 클로저 후 어긋날 것이다). 메시지는 새 데이터(2D 키포인트와 36바이트 ORB 디스크립터를 가진 완전한 키프레임, 1000개 특징에서 약 55 kB; 새 맵 점 약 200 B)와 업데이트(키프레임당 148 B, 맵 점당 52 B)를 구별한다 — 한 번만 전송 대 반복 전송 — 이로써 평균 트래픽이 약 10 MB/s에서 0.37 MB/s로 줄었다. 손실 처리는 낙관적이다: 서버는 처리된 키프레임 ID를 확인 응답하며, 공백이 생기면 재전송을 트리거한다. 서버는 (다른 에이전트의 경험일 수 있는) KFrefKF_{ref}와 가장 공동 가시적인 kk개의 키프레임으로 응답하여 에이전트의 로컬 맵을 보강한다.

실험 결과

하드웨어: 세 대의 UAV(인텔 NUC i7를 탑재한 AscTec Neo 두 대, 200 g 페이로드의 Atomboard를 탑재한 AscTec Hummingbird 한 대)와 노트북 서버가 표준 WiFi로 통신하며, EuRoC 머신홀 시퀀스와 저자들의 실외 Irchel 데이터셋(Leica 토탈 스테이션 실측값)에서 평가되었고, 보통 5회 실행에 대해 평균했다.

SLAM에서의 의미

CCM-SLAM은 C2TAM의 클라우드-SLAM 개념을 현대적인 ORB-SLAM 백본 위의 성숙한 오픈소스 시스템으로 발전시켰고, 이후 협업 시스템들이 비교하는 사실상의 기준이 되었다. 그 핵심 교훈들 — 아키텍처로 에이전트의 자원을 제한하기, 절대가 아닌 상대 포즈를 교환하기, 일회성 데이터를 업데이트와 분리하기, 네트워크 손실에도 로컬 자율성이 살아남도록 설계하기 — 는 이후의 거의 모든 다중 로봇 SLAM 연구로 이어졌다: 중앙집중식 쪽의 직접적인 후손인 COVINS와 maplab 2.0, 그리고 서버를 완전히 제거한 분산식 후속작(DOOR-SLAM, Kimera-Multi)이 그것이다.

관련 문서