본문 바로가기
Autonomous Vehicle/Paper reading & summary

OPEN Source SLAM : 1 일차 SLAM의 종류 알아보기

by kim.jeff 2021. 2. 23.

 


 

OPEN Source SLAM : 1 일차 SLAM의 종류 알아보기

 

Several Open-Source SLAM algorithms : day 1 sort of SLAM

 


SLAM이란?

SLAM(Simultaneous localization and mapping), 동시적 위치추정 및 지도작성은 로봇공학 등에서 사용하는 개념으로, 임의 공간에서 이동하면서 주변을 탐색할 수 있는 로봇에 대해, 그 공간의 지도 및 현재 위치를 추정하는 문제이다[1].

 

로봇공학 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 로봇공학(robotics, 로봇학)은 로봇에 관한 과학이자 기술학으로, 컴퓨터 과학과 컴퓨터 공학의 접점(interface)에서 이루어지는 여러 학제간의 연구 영역이다. 로봇

ko.wikipedia.org

ko.wikipedia.org/wiki/SLAM

 

SLAM - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전.

ko.wikipedia.org

 

SLAM의 종류

  동시 다발적 위치추정 및 지도작성 알고리즘은 카메라 영상 데이터나 LiDAR 데이터를 기반으로 이뤄진다. 하지만 각각의 슬램 알고리즘마다 그 뼈대를 이루는것에 있어서 차이가 있는데, 다양한 알고리즘들이 어떠한 뼈대를 기반으로 만들어졌는지 알아보면서 SLAM에 대한 전반적인 흐름을 알아보도록 하자.

 

1. Graph Based

  그래프 기반 알고리즘의 주요 알고리즘은 RTAB-MAP (Real-Time Appearance-Based Mapping)이다. 한국어로 번역하게 되면 실시간 외관 기반 맵핑 알고리즘인데, 외관을 카메라나 LiDAR를 이용하여 감지하고 그 특징점을 기반으로 매핑을 진행하는 알고리즘이다.

 

2. Filter Based

  필터 기반의 알고리즘에서 쓰이는 확장칼만필터 그리고 파티클필터와 같은 필터들은 각각의 특징을 가진다.

 

  먼저 칼만필터(Kalman filter)는 노이즈가 포함되어있는 측정 데이터를 바탕으로 선형적인 상태를 추정하는 재귀 필터로, 루돌프 칼만이 개발하였다[2]. 과거의 측정된 데이터를 기반으로 현재 상태 변수의 결합 분포를 추정한다. 알고리즘은 예측과 업데이트의 두단계로 이뤄진다. 예측단계에서는 현재 상태변수의 값과 정확도를 예측한다. 현재 상태 변수의 값이 측정된 이후, 업데이트 단계가 시작된다. 업데이트 단계에서는 이전에 추정한 상태변수를 기반으로 예측한 측정치와 실제 측정치의 차이를 반영하여 현재의 상태변수를 업데이트한다. 그것을 응용하여 개선된 필터가 EKF 즉 확장 칼만필터(Extended Kalman Filter)인데, 본 필터는 비선형 시스템을 기반으로 동작한다. 본 필터를 기반으로 만들어진 slam 알고리즘은 EKF SLAM 이라고 불린다[3]. 로보틱스 학문에서는 ekf를 응용하여 만들어진 ekf slam이 1990년대에서 2000년대까지 주류를 이뤘고 가우시안 분포의 노이즈 추정 방식을 사용함에 있어 불확실성에 대한 대비가 상대적으로 약했기 때문에 불확실성에 강한 Fast slam이 개발되곤 점차 모습을 숨기게 되었다. 

 

  둘쨰로 파티클필터는 SMC(Sequential Monte Carlo)라고도 부르는데 통계적인 방식으로 미래의 데이터를 예측한다. 본 알고리즘의 특징은 다음과 같다. 파티클 필터는 파티클들을 이용한다. 본 파티클은 샘플 데이터라고도 부르는데, 노이즈가 껴있는 랜덤한 데이터가 주어진 경우 posterior distribution을 나타낸다. 하지만 이런 방법들은 높은 차원의 시스템을 적용할 때 잘 수행되지 않는다. 

 

  파티클필터는 대력적인 통계적 방식으로 예측을 업데이트 한다. 분포로부터 얻어진 샘플들은 파티클들의 세트로 구성되어진다. 각각의 파티클들은 경향성을 가지게 되는데, 각각의 파티클에 할당된다[4]. 추가적인 설명은 참고문헌을 참고하기바란다.

 

3. Vision Based

   영상 기반의 SLAM들은 기존 라이다를 이용하여 거리를 측정하고 측정된 데이터를 기반으로 맵핑을 수행하며 Localization 및 Pose 추정을 하였지만, 단안 혹은 양안 카메라를 이용하여 거리값을 추출하고 추출된 거리값을 기반으로 SLAM을 수행하는 알고리즘이라 볼 수 있다. 

 

4. Deep-Learning Based

  합성곱 신경망을 이용하여 깊이를 추정하는 알고리즘을 응용하여 SLAM을 수행하는 알고리즘이다. 기존 거리값을 추출하는 방식이 삼각측량법을 기반한 특징점 비교를 통한 추출 방식이었지만, 딥러닝을 이용하여 거리값을 추출한다는 특징을 가진다. 단안 카메라의 단점인 거리값 추출에 있어서 약점을 딥러닝을 통해서 정확하고 밀도있는 단안 복원이 수행된다.

 

 

  2d laser scan 1d sonar rnage readings Features/Landmarks Range-only Sensors Relative poses
Occupancy Grid rbpf SLAM
ICP SLAM
rbpf SLAM      
Point maps rbpf SLAM
ICP SLAM
       
Landmark map     ekf slam
Srba
Bundle
adjustment
Ro SLAM  
Graph of pose constraints         Graph SLAM
srba

표1. 입력 및 지도 표현에 따른 SLAM 표

 

서울 인왕산에서 담은 풍경

 


 

 

<참고문헌>

[1] 위키백과, SLAM , 2021.02.19

(ko.wikipedia.org/wiki/SLAM)

[2] 위키백과, 칼만 필터, 2021.02.19 (ko.wikipedia.org/wiki/%EC%B9%BC%EB%A7%8C_%ED%95%84%ED%84%B0)

[3] WIKIPEDIA, EKF SLAM, 2021.02.19 (en.wikipedia.org/wiki/EKF_SLAM)

[4] WIKIPEDIA, particle filter, 2021.02.19 (en.wikipedia.org/wiki/Particle_filter)

[5] 위키백과, 칼만 필터, 2021.02.19 (ko.wikipedia.org/wiki/%EC%B9%BC%EB%A7%8C_%ED%95%84%ED%84%B0)

[6] 도정찬님의 파워포인트 SLAM의 개요

[7] RTAB-Map as an opensource lidar and visual simultaneous localization and mapping library for large scale and long term online operation, Mathhieu Labbe, 2018