SLAM의 뿌리를 찾아서

SLAM의 뿌리를 찾아서 ...

떠나봅시다.

NOTE: 이 글은 예전에 미디엄에 올린 <SLAM을 SLAM답게 만드는 건 무엇일까?: 내맘대로 SLAM 정의하기> 의 후속편 같은 느낌으로 적어보았습니다.

참고: <SLAM을 SLAM답게 만드는 건 무엇일까?: 내맘대로 SLAM 정의하기>
http://bit.ly/define-slam-myself-1

SLAM의 본질이 어디에 있는지 파악하고
하나씩 끝말잇기 하듯이
그 다음 뿌리를 향해 나아가봅시다.

레츠고 ...


1.

SLAM은 Estimation 이다.

  • 따라서 MLE, MAP 와 같은 이야기가 나온다.

  • 더 나아가 SLAM문제를 Gaussian noise 기반으로 probabilistic 하게 formulating 하는 건 거의 시초라고도 (이자 SLAM문제의 코어) 할 수 있다.

    • R. C. Smith and P. Cheeseman. On the representation and estimation of spatial uncertainty. IJRR. 1986.
    • Smith, Self, and Cheesemans, Estimating Uncertain Spatial Relationships in Robotics, 1990
    • filtering 으로 풀든 optimization으로 풀든 공통으로 해당되는 중요한 내용이다.

2.

SLAM은 State estimation 이다.

  • 여기서 state란 어떤 것이든 될 수 있지만, 통상적으로 우리는 알고싶은 것은 robot 과 world (map) 의 pose (즉, position + rotation) 이다.
    • 근데 state estimation 은 1. filtering 기반, 2. optimization 기반으로 나눌 수 있는데, 특히 이 글에서는 optimization기반의 SLAM의 뿌리에 대해 찾아가보자 ...
  • 물론 velocity, bias, semantic class 등 추론하고 싶은 어떤 것도 state가 될수는 있다 (사실 state라는 것은 수학적으로 확률변수-randome variable- 이기 때문에!).

3.

SLAM은 Optimization-based state estimation 이다.

  • iteratively 해를 구하는 것이 골자.
    • 특히 SLAM은 overdetermined system (measurement 수가 variable 수보다 많음) 이기 때문에 closed form으로 해를 구할 수 없어서 iterative optimization으로 답을 구해야 한다.
  • 그래서 기본적으로 SLAM공부에 있어 (computer vision과 마찬가지로) GN, LM 등이 빠질 수 없다.

4.

SLAM은 Nonlinear optimization-based state estimation 이다.

  • 센서데이터의 measurement model 이 주로 nonlinear 하기 때문
  • 따라서 linearize, Jacobian 등의 말이 많이 등장한다.
  • 이 정의와 같은 의미로 Factor graph-based SLAM 이다~ 라는 말도 자주 쓰인다.

5.

SLAM은 Sparse nonlinear optimization-based state estimation 이다.

  • SLAM에서는 하나의 measurement 에는 적은 수의 variable 만이 관여하기 때문.

    • 예를 들어, 아주 많은 수의 node들이 system에 있다고 하더라도 하나의 odometry measurement는 직전 node와 현재 node 만이 관여한다. 따라서 전체 measurement block들을 쌓은 Jacobian matrix 는 매우 sparse 해진다.
  • 또한, SLAM에서는 알고싶은 state (variable) 의 개수 보다 measurement 의 수가 훨씬 많기 때문에 더 sparse 해진다.

  • 따라서 sparsity 를 잘 이용하기 위해서 variable re-ordering 같은 이야기가 나온다. 여기 5번 항목까지가 Square-root SAM 논문의 내용이라고 봐도 무방하다.

    • Frank Dellaert, and Michael Kaess. "Square Root SAM: Simultaneous localization and mapping via square root information smoothing.", IJRR 2006

6.

SLAM은 sparse nonlinear optimization-based state estimation in an incremental setting   이다.

  • 센서데이터는 순차적으로 들어오기 때문에, 이전 계산 값을 이용해야 시간적으로 효율적이다.

  • 또한 SLAM은 nonlinear problem 이기 때문에 이전 계산 값을 이용해야 local minima 에 빠지는 것을 방지할 수 있어 성능적으로 효과적이다.

    • 여기까지가 isam1 의 내용이다 (08 TRO iSAM: Incremental smoothing and mapping)

7.

SLAM은 sparse nonlinear optimization-based state estimation in an incremental setting by connecting between graphical model and sparse linear algebra perspective   이다.

  • Squared Root SAM및 isam 까지는 실제 solver 는 선형대수적으로 풀었지만, Bayes tree기반의 isam2로 넘어올 수 있었던 것은 matrix 가 실제로 graphically 어떤 의미를 가지는 지를 (Kaess and Dellaert‬님께서) 이해하고 있었기 때문임.

  • Information matrix 는 그 의미가 사실 MRF이고, ... 이런 것에 대한 이야기들.

    • 여기까지가 isam2 의 내용이다 (12 IJRR iSAM2: Incremental Smoothing and Mapping Using the Bayes Tree). 또한 Factor Graphs for Robot Perception 책에서도 잘 서술되어 있다.

8.

SLAM은 sparse nonlinear optimization-based state estimation in an incremental setting by connecting between graphical model and sparse linear algebra perspective on a manifold space   이다.

  • SLAM에서 관심있는 state는 거의 pose인데 여기서 rotation 부분이 nonlinear 함. 따라서 해를 update 하는 공간을 manifold 로 삼을 필요가 있음.

9.

SLAM은 sparse nonlinear optimization-based state estimation in an incremental setting by connecting between graphical model and sparse linear algebra perspective on a manifold space by integrating multiple sensors’ data   이다.

  • front-end에 관한 이야기이다.
  • SLAM은 수중, 지하, 지상, 공중 등 다양한 환경에서 로봇이 활동(navigation)하는 것에 모두 관심사가 있음. 그런데 환경의 특성마다 적합한 센서가 다르고 (수중은 Sonar센서 등) 이들을 퓨전해야 할 필요가 있음.
    • 따라서 SLAM 엔지니어는 어떤 센서가 본인의 로봇이 활동하고자 하는 환경에 적합한지 이해하고, 선정하고, 융합할 수 있어야 함.
    • 특히 카메라 센서 기반의 SLAM을 하는경우 multiple-view geometry를 공부해야 하는데 그 이유가 여기 9번에 해당하는 내용.

10.

SLAM은 sparse nonlinear optimization-based state estimation in an incremental setting by connecting between graphical model and sparse linear algebra perspective on a manifold space by integrating multiple sensors’ data with robust data associations   이다.

  • front-end 에서는 data association (DA) 이 아닌 것이 없다. local feature matching 부터 loop detection 까지, 결국 모든 것이 이거랑 제일 가까운 애가 누구냐? 에 대답하는 문제.
  • 근데 이게 100% 정확할 수 없기 때문에 두 가지 방향에서의 노력이 요구된다.
    • 먼저 그럼에도 더 실수없이 잘 할 수 있도록 더 좋은 DA를 해야하고,
    • 두 번째로 DA에 실수가 있음에도 불구하고, solution이 망가지지 않도록 back-end에서 강건하게 막아줄 수 있어야 한다. MIT의 Luca Carlone 교수님이 이 분야에서 최근 많은 연구를 하고 있다.

11.

SLAM은 sparse nonlinear optimization-based state estimation in an incremental setting by connecting between graphical model and sparse linear algebra perspective on a manifold space by integrating multiple sensors’ data with robust data associations, for multiple robots   이다.

  • robot mission 이 결국 multi-robot 이 팀을 이루어 미션을 수행하는 경우가 많음.
  • 멀티 로봇의 경우, 또 communication, coordinate 등 다양한 것들이 고려되어야 함.

12. To be added (TBA) ...


대충 여기까지 와보았습니다.
깊고도 넓은 SLAM의 세계!
그럼 20000!

Giseop Kim
Giseop Kim
Assistant Professor

SLAM, 3D Reconstruction, Spatial AI, Physical AI