SLAM을 SLAM답게 만드는 건 무엇일까?: 내맘대로 SLAM 정의하기

Giseop Kim
9 min readApr 19, 2020

--

SLAM 은 무엇인가?

라는 질문을 자주 생각해본다. 그리고 시릴님 책에 있는 요 그림을 참 좋아한다.

이 정의에 따르자면 SLAM은 mapping 과 localization의 교집합이며, 또한 path planning 과의 융합을 위한 영역으로 느껴진다. 근데 이 정의는 한 그림으로 그리기엔 멋있지만 SLAM을 이해했다고 말하기엔 피상적이라 느껴왔다.

아래 정의들은 내가 거쳐 온 생각들이다.

초보단계

  • 동시적 위치추정 및 지도작성,
  • ⇒ 이란 건 번역에 지나지 않기 때문에 그다지 슬램을 이해하는데 도움이 되진 않아왔다.. 그 말이 수학적으로, 코드적으로 어떤 걸 의미하는지 별로 감을 잡을 수 없었다. 코드를 실제로 읽어야겠다고 생각함.

초보단계2

  • SLAM은 멀뷰인가? 리프로젝션하고... 트라이앵귤레이션하고... 뎁스를 확률적으로 잘 예측한다면 SLAM을 잘 할 수 있겠구나.
  • ⇒ 이 내용은 카메라 센서를 위한 프론트엔드 공부에 해당하기 때문에 코끼리의 코만 보고 코끼리를 이해했다고 생각한 시기. 사실 LiDAR로 SLAM을 입문했기 때문에 이 부분을 잘 몰라도 되긴 됐었다.

실습 하고 코드 읽은 단계 (예: ORB SLAM 돌려보기, LOAM 돌려보기)

  • SLAM은 state 들의 (robot pose와 landmark) joint estimation 이구나 (MAP problem).
  • 그걸 filtering으로 풀 수도 있고 optimization 으로도 풀 수 있구나.
  • ⇒ 요즘 고민은 그게 다인가? 그럼 computer vision 사람들이 푸는 sfm 문제와 크게 다르지 않은데.. SLAM을 SLAM 답게 만드는 건 무엇일까? SLAM engineer 를 SLAM engineer 답게 만드는 건 무엇일까?

SLAM을 SLAM 답게 만드는 건 무엇일까?

아래는 내맘대로의 정의.

SLAM 을 아래 요소들의 복합적 구성요소로 정의해보았다.

  1. (Multiple) Sensor (fusion) -based
  2. (Real-time) State estimation of Bayes network
  3. with Robust data-association
  4. for Robot mission

괄호친 것들은 SLAM을 더욱 SLAM 답게 만들어주는 것들이지만, 막상 논문을 보다보면 꼭 필수는 아닐 수도 있는 것이라 생각된다.

하나씩 조금 더 설명을 덧붙여 보자.

  1. (Multiple) Sensor (fusion) -based
  • SLAM은 여타 컴퓨터비전 태스크와는 사람보다는 로봇에게 더욱 필요한 것이라 생각된다. 그래서인지 위에 언급한 2-4 의 달성에 도움이 된다면 어떤 센서든 차용하고, 융합하기를 꺼리지 않는 것이 (모바일) 로보틱스의 분위기인 거 같고, 그런 분위기가 좋다.
  • 센서를 추가한다는 건 비용을 증가시키고 컨스트레인트를 하나 해제하는 거에 가깝기 때문에 (사실은 어떤 이슈가 오히려 튀어나와서 아닐수도있지만) 이 자체로는 논문이 되기 어려운 것 같다ㅡ그래서 이 쪽 경험이 많이 없는데 이 쪽 경험을 좀 더 보완해보고 싶음. 실제로는 어떤 한 센서로 제약을 줄이는 것보다 여러 센서를 융합해 더 많은 일을 할 수 있는 게 더 멋있다 생각됨. 카메라도 좋지만 LiDAR, Radar, IMU 융합 연구를 하나 해보고싶다.
  • 암튼 Multi sensor calibration (특히 online, non-overlapping sensors의 경우) 도 그래서 SLAM에 있어서 참 멋있고 매력적인 연구주제이다.

2. (Real-time) State estimation of bayes network

  • SLAM을 SLAM 답게 만드는 건 SLAM의 태생에 있다 생각함. 그 태생적 유산을 하나만 남긴다면 바로 bayes network 라고 말하고 싶다. X*, L* = argmax P(X, L | Z, U) 는 그 태생적 가정에 의해 해체되고 단순화된다. 그렇게 수식을 변형해나가는게 SLAM의 아름다움처럼 느껴짐. 그래서 두꺼운 Probabilisitc robotics 책에서 SLAM을 baye net 으로 구성하고 beleif 식을 recursive 하게 유도하는 부분만 읽어도 아주 큰 부분을 이해한 것이라 생각된다. bayes net 을 factor graph 로 바꾸고 factor들의 곱으로 된 loss function에 대한 optimization 을 풀자는 식으로 발전해온 것도 참 멋있는 부분.
  • state 라 말하면 robot 의 ego pose 와 map 의 landmark pose 들을 모두 아우르는 표현이기 때문에 또한 state estimation 이라는 단어로 SLAM을 정의하는게 멋있다. 굳이 localization 과 mapping 을 분리하여 말할 필요가 없는 것.
  • 또 estimation 이라 말하면 filtering 이니 optimization 이니 하는 개념을 포괄할 수 있기 때문에 또 더 원론적인 단어라 생각된다. 암튼 그래서 바풋님의 state estimation for robotics 책을 갠적으로 스룬님의 prob robotics 보다 좋아함...
  • 아무튼 이 부분이 실제로 SLAM을 공부하는 데 있어서 가장 많은 자료들이 있기도 있고, 가장 많은 시간이 소요되는 부분인 듯하다. probabilistic robotics, lie algebra, iSAM, … 등 논문을 보다보면 등장하는 많은 부분들이 여기에 해당한다고 생각함.

3. with Robust data-association

  • SLAM의 태생적인 graph 구조를 푸는 것과는 별개로 graph 자체가 잘못 구성되면 결국 잘못된 답으로 유도되기 때문에, robust 한 data association 역시 SLAM의 큰 구성요소라 생각된다.
  • Data association은 아주 국소적 스케일 (e.g., finding point correspondence, object tracking) 에서 이루어 질수도 있고, 그 중간적 스케일 (e.g., probabilistic Data Association for Semantic SLAM), 혹은 개념적 공간에서 (e.g., loop detection (place-to-place association)) 이루어질 수 도 있기 때문에 일반적인 용어라 생각되어 마음에 든다.
  • Data association 의 robustness 는 프론트엔드에서 그 역할을 짊어질 수도 있고, 백엔드에서 그 역할을 짊어질 수도 있는데 그 둘다를 이해해야 하는 것도 SLAM 엔지니어가 멋있게 느껴지는 이유였다. 최근에는 프론트엔드에서 로버스트한 scan context 와 백엔드에서 로버스트한 DCS 를 통합하기도 했다 (https://github.com/irapkaist/SC-LeGO-LOAM). 한 부분이 100% 퍼펙트할 수 없으므로 서로 도와야 한다고 생각.
  • 최근 딥러닝과의 융합이 기대되고 많은 시도가 이루어지고 (이루어질 수 있다고 생각되고) 있는 부분이기도 한듯. Superpoint 나 Visual Odometry Revisited: What Should Be Learnt?, Deep Closest Point 같은 시도들이 나오는게 참 좋다. 아직 딥러닝을 잘 몰라 구경만 하고 있는데 하나 해보고싶은 포션이기도 하다.

4. for Robot mission

  • 결국 1-3의 과정을 잘 하려는 이유는 4에 있다고 생각된다. 이 부분이 SLAM을 SLAM답게 만드는, 만들 수 있는 가장 큰 부분이라 생각됨.
  • 그 mission 이 정교한 map 제작에 있는 경우 이 로봇은 정확도에 목적을 두고 1-3을 꾸려나가야 하고, 때로는 offline 처리가 허락되기도 하는 것 같다. 따라서 SLAM을 real-time 에 국한할 필요가 크게 있나 싶은 요즘이다ㅡ원래 real-time이란 application-dependent 한 것이니까 (또 수중로봇의 경우 한 번의 퍼셉션 이후 컨트롤 까지 충분한 수초에 수분 정도의 시간이 주어질 수도 있다고 하는 등).
  • 그 mission 이 빠르고 융통성 있는 goal point 도착에 있는 경우 이 로봇은 앞의 정교하고 숙고하던 로봇과 달리 정밀한 맵을 만들지 않아도 될 수도 있고, 앞의 로봇이 만든 맵을 그저 이용하기만 해도 될 수도 있고, 네비게이션에 충분한 정도의 SLAM 정확도만 얻어도 될 수도 있다고 생각함.
  • 또한 어떤 로봇은 같은 지역을 오랫동안 매핑하는 미션을 가지고 있을 수도 있고, 어떤 로봇은 다른 로봇들과 잘 팀을 이루어 어떤 미션을 해야하는 미션을 가지고 있을 수도 있다. 이 부분에 대한 연구는 이제 막 시작처럼 느껴진다. 그런 면에서 SLAM은 혹자가 말하듯 연구가 다 된 분야이긴 하지만 여전히 할 게 많은 분야이고 여전히 매력적인 분야라고 하고 싶다. 그리고 실제 밖으로 나가면 책에서 이야기했던 것들이 안되는 것도 역시 SLAM을 여전히 매력적으로 만드는 요소다 (...)
  • 그래서인지 1cm accuracy 를 더 올리는 odometry benchmark 연구를 하는게 요즘인데 그쪽엔 흥미를 잃고 ... 차라리 어떻게 현재 적당히 디벨롭된 SLAM기술을 planning 에 잘 융합할까, 아니면 1-3 중 다른 포션에서 어떤 부분을 보완해야 근본적으로 빈 부분을 메꿀 수 있을까 이 생각을 하게 된다. 100에 1.03 을 곱하려는 시도 보다 때론 100에 다른 10을 더하는 게 쉬울수도 있고, 더 유효하지 않나... A급 SLAM 엔지니어의 기본은 주어진 로봇 미션이 무엇인지 잘 이해하고, 적합한 SLAM 기법을 적절한 수준에서 차용할 수 있는게 아닐까? 암튼 생각은 이런데 여전히 경험이 적어서 뭘 차근차근 더 해봐야할까 싶다.

다른 사람들의 의견도 궁금하다.

SLAM을 SLAM답게 만드는 건 무엇일까?

암튼 다음주제 뭐하지 라고 계속 외치다가 (…) 대충 분류해보았고, 어떤 연구주제든 위 4가지 부분 중 한가지에 (혹은 여러가지) 속할 수 있다고 생각된다. 다음 연구는 어떤 영역에서 해야할지.. ?_?

SLAM은 무엇이다

어디서 본 얘긴데, 말타는 법을 다 배운 다음에는 말 타는 법을 잊어야 한다고 했던가. SLAM을 다시 정성적이고 인문학적으로 이야기하자면 이렇게 말하고 싶다. SLAM은 Spatial AI이다. 앤드류 데이비슨 교수님이 밀고 계시는 용어인데 나도 그 용어의 fan 이 되었다. SLAM의 모든 것은 결국 우리 주변 환경을 잘 이해하려는 시도라고 말할 수 있을 것이다. 그 지점에 이르면 이 논문은 SLAM논문이다 아니다 라는 논쟁은 모두 무의미해질 것 같다. 결과적으로 로봇이 공간을 이해하기 위해 필요한 것들에 대한 것이라면 어떤 일이든 다양한 분야의 사람들과 만나고 싶다.

끝!

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Giseop Kim
Giseop Kim

Written by Giseop Kim

Ph.D. candidate, KAIST. Studying robot mapping and Spatial AI.

Responses (1)

Write a response