C2TAM

Riazuelo 2014 · 논문

한 줄 요약 — C2TAM (Cloud framework for Cooperative Tracking And Mapping)은 클라우드 기반 협업 단안 SLAM을 개척하여, 번들 조정, 재위치추정, 장소 인식, 맵 융합을 서버로 오프로드하는 한편 각 로봇은 온보드에 경량 실시간 추적만 유지한다.

문제

협업 단안 SLAM은 각 로봇이 자신의 포즈를 추적하면서 동시에 일관된 전역 맵을 유지해야 하는데 — 맵 측 비용(특히 번들 조정)은 경량 임베디드 플랫폼이 감당할 수 있는 수준을 크게 초과한다. 클라우드 컴퓨팅은 명백한 분업을 제공하지만, 성패를 좌우하는 질문을 제기한다: SLAM 문제를 나누어, 강한 실시간 제약을 갖는 부분이 네트워크 지연에 영향받지 않도록 할 수 있는가? C2TAM의 답: 카메라 속도의 추적만이 지연에 민감하다; 매핑, 대규모 재위치추정, 장소 인식, 맵 융합은 두 루프가 분리되어 있다면 표준 무선 연결의 지연을 모두 견딜 수 있다.

방법 및 아키텍처

네트워크로 늘어난 PTAM의 분할. PTAM의 추적/매핑 스레드 분리를 확장하여, 추적 클라이언트는 로봇에서 로컬로 캐시된 맵의 사본에 대해 실행되고, 매핑 서비스는 클라우드에서 3D 점과 키프레임으로 구성된 ll개의 맵 {M1,,Ml}\{M_1,\dots,M_l\}을(각 M={P1,,Pn,C1,,Cm}M=\{P_1,\dots,P_n,\,C_1,\dots,C_m\}) 보유하며 실행된다. 각 점은 다중 스케일 패치 디스크립터를 가지고, 각 키프레임은 “미니 이미지” 전역 디스크립터를 가진다 — 프레임을 40×30으로 서브샘플링하고, 가우스 필터를 적용하고, 평균을 정규화한 것이다: dc=Ic40×30g(σ)Ic40×30g(σ)d_c = I_c^{40\times30}\ast g(\sigma) - \overline{I_c^{40\times30}\ast g(\sigma)}.

클라우드 매핑 = 번들 조정. 서버는 모든 점 PiP_i와 키프레임 CjC_j에 대한 강인 재투영 오차를 최소화하여 최대 우도 맵을 계산한다:

(P^i,C^j)=argminPi,Cji=1nj=1mρ(Δzij/σ),Δzij=zijf(Pi,Cj,Kj)\left(\hat{P}_i,\hat{C}_j\right)=\arg\min_{P_i,C_j}\sum_{i=1}^{n}\sum_{j=1}^{m}\rho\left(\Delta z_i^j/\sigma\right),\qquad \Delta z_i^j = z_i^j - f(P_i,C_j,K_j)

여기서 ff는 투영 모델, σ\sigma는 중앙값 기반 잡음 추정, ρ\rho는 튜키 바이웨이트(biweight) 함수로, ξ>1|\xi|>1인 잔차를 0으로 만들어 이상값을 거부한다.

클라이언트 추적. 프레임 단위로: (1) 등속 포즈 예측; (2) 가장 조대한 스케일의 점들로부터 조대한 포즈, T^t=argminTtiρ(Δzi/σ)\hat{T}_t^{\ast}=\arg\min_{T_t}\sum_i \rho(\Delta z_i^{\ast}/\sigma^{\ast}); (3) 모든 스케일의 모든 맵 점에 대해 재최소화된 정밀 포즈 T^t\hat{T}_t. 맵 초기화는 PTAM의 수동 이동 의식을 클라이언트 상의 상호작용 다중 모델 필터로 대체하며, 시차가 충분해지면 처음 두 키프레임을 서버로 전송한다.

네트워크를 넘나드는 것. 트래커는 맵과 비교해 새로운 정보를 담고 있는 경우에만 새로운 원본 키프레임(640×480 RGB, 약 1 MB)을 업로드하며, 서버는 최적화된 3D 점을 스트리밍으로 돌려보낸다. 추적은 네트워크에 의해 결코 막히지 않는다: 캐시된(어쩌면 최적이 아닌) 맵으로 계속 실행되며 업데이트가 도착하는 대로 교체한다.

재위치추정, 장소 인식, 맵 융합 — 모두 클라우드 서비스. 추적 실패 후 재위치추정은 두 단계다: 미니 이미지 디스크립터 간 유클리드 거리로 가장 가까운 키프레임을 찾은 다음, 회전 보정 포즈 정련을 수행한다. 장소 인식은 새 사용자가 어느 맵에 있는지 인식하기 위해 저장된 모든 맵에 대해 동일한 탐색을 실행한다. 맵 융합은 새로 업로드된 MkM_k의 키프레임이 MqM_q의 키프레임과 매칭될 때 발동한다: 두 맵의 3D 점이 공통 키프레임에 투영되고, 대응 관계가 강체 변환을 주며, 맵이 합쳐지고 중복된 점이 삭제된다 — 이 모든 것이 클라이언트가 자신의 (최적이 아닐 수 있는) 맵으로 계속 추적하는 동안 서버 측에서 전적으로 일어난다.

실험 결과

모든 실험은 대학의 표준 WiFi로 640×480 RGB-D 카메라(SLAM에는 RGB만 사용, 깊이는 시각화용)를 사용해 실시간으로 실행되었다.

SLAM에서의 의미

C2TAM은 SLAM을 위한 클라우드-로보틱스 분업을 확립했다 — 무거운 최적화는 클라우드에서, 카메라 속도 추적은 엣지에서 — 그리고 두 루프가 비동기적으로 분리되어 있을 때 실제 네트워크 지연이 실시간 시각 SLAM과 양립 가능함을 입증했다. 저장된 맵의 재위치추정과 서버 측 맵 융합은 클라우드 서비스로서의 맵 재사용을 예견했다(이는 RoboEarth 프로젝트에서 성장했다). C2TAM은 CCM-SLAM의 직접적인 개념적 조상이며, CCM-SLAM은 동일한 아키텍처를 ORB-SLAM 백본 위에서 훨씬 대역폭을 아끼는 프로토콜(C2TAM의 원본 키프레임 이미지 대신 키포인트와 디스크립터)로 재구축했다.

관련 문서