SLAM...

Simultaneous Localization and Mapping의 약자이다.

CML, 즉 Concurrent Mapping and Localization이라고도 한다.


대부분의 로봇 시뮬레이션은 Map이 주어져 있을 때 로봇의 위치를 찾아내는 Localization, 혹은 로봇의 위치를 정확히 알 수 있을 때 Map을 만들어가는 Mapping이다.


SLAM이란 Map도 주어져 있지 않고 Map에서의 로봇의 위치도 알 수 없을 때 로봇이 주변 환경을 센서로 감지해가면서 Map을 만들고 그 Map에서의 자신의 위치까지 추정하는 작업을 가리킨다. Localization이나 Mapping 둘 중 한가지만 해도 계산량이 벅찬데, 두 가지를 한꺼번에 하는 SLAM은 상당히 오버헤드가 크다. 그래서 시중에 판매되는 청소로봇 같은 간단한 로봇에는 SLAM Level의 알고리즘이 구현되어 있지 않다고 한다. Random하게, 혹은 정해진 패턴에 따라 움직일 뿐이다.


최근에 개발된 알고리즘을 제외한다면 SLAM 알고리즘은 크게 다음과 같은 2가지로 나뉘어져 있다.

  • EKF-SLAM
  • FastSLAM


EKF-SLAM은 Extended Kalman Filter 알고리즘의 기본 전제인 Gaussian Noise Assumption을 그대로 사용하고 있다. 즉, 로봇의 State와 Map(보통 Feature-based)의 Landmark들을 Mean과 Covariance Matrix로 나타내고 Observation이 일어날 때 마다 그것들을 업데이트 시켜주는 방식이다. Covariance Matrix를 유지해야 하고, Matrix 연산이 일어나기 때문에 상당히 느리다. 그리고 Gaussian Assumption은 대부분의 경우 성립하지 않는다.


FastSLAM은 MonteCarlo Localization에도 사용되는 Particle Filtering 알고리즘을 기반으로 하고 있다(정확히는 Rao-Blackwellised Filter라고 한다). 여기서는 Linear Gaussian Assumption을 사용하지 않으므로 좀 더 일반적인 경우에 적용시킬 수 있다고 볼 수 있다. 각각의 Particle마다 Map과 Pose를 갖고 있고, Observation에 따라 현재 time step에 대해 Sampling을 한다. Sampling한 결과에 대해 Likelihood를 따져 본 다음, 가장 Weight가 높은 Particle을 다음 time step에서도 사용하는 것이다. 이것은 구현상의 이슈이고, 실제 FastSLAM알고리즘은 좀 더 깊이 봐야할 필요가 있다.




* 아래의 자료를 참고했습니다.

Simultaneous Localisation and Mapping(SLAM): Part I The Essential Algorithms, Hugh Durrant-Whyte, Fellow, IEEE, and Tim Bailey


Probabilistic Robotics, Sebastian Thrun, The MIT Press



다음 시간에는 EKF-SLAM에 대해 알아봅시다~

'Probabilistic Robotics' 카테고리의 다른 글

1. SLAM이 뭔가요  (0) 2012.06.05

댓글을 달아 주세요

1 

글 보관함

카운터

Total : 29,087 / Today : 3 / Yesterday : 14
get rsstistory!