본문 바로가기
logistics

[SLAM] 몬테카를로 위치 추정(Monte Carlo Localization)이란?

by Jayson Jeong 2023. 6. 27.

몬테카를로 위치추정(MonteCarlo Localization, MCL)

몬테카를로 위치 추정(Monte Carlo Localization, 이하 MCL) 방법은 파티클 필터 기반의 위치 추정 알고리즘이다. 

MCL은 로봇이 위치할 가능성이 있는 모든 영역에서 로봇의 위치를 나타내는 샘플을 랜덤하게 추출하고, 각 샘플이 실제 로봇의 위치인지를 계산하는 과정을 거치게 된다. 따라서 추출한 샘플의 수는 MCL의 성능 및 수행시간과 직접적으로 연관이 있다. 샘플 수가 많으면 위치 정확도는 향상되고 위치추정 실패율은 감소되지만, 수행시간이 길어져 위치 갱신이 늦어진다. 따라서 MCL은 칼만필터 방법에 비해 수행시간이 오래 걸린다.

 

MCL은 거리센서의 정보를 받아 위치추정 알고리즘을 이용하여 추정위치를 갱신하는 과정을 반복적으로 수행하게 된다. 이 과정에서 로봇은 계속 이동하게 되므로 위치추정을 통해 갱신된 위치는 현재 로봇의 위치가 아니라 위치추정 알고리즘이 수행되기 시작할 때 위치에 해당하게 된다. 그런데 한 과정이 오래 걸려 위치 갱신이 늦어지면 갱신된 위치와 현재 로봇의 위치의 차이가 커지게 되어 로봇 위치추정의 실시간성을 저하시키게 된다.

이러한 이유로 MCL의 위치추정 정확도를 저하시키지 않는 전제 하에서 최소한의 샘플을 사용하여 수행시간을 감소시키는 것이 중요하다. 

 

MCL 알고리즘은 Sample Motion Model, Measurement Model, Resampling 3단계로 구분한다.

Sample Motion Model 과정은 이전 샘플링 타임에서 생성된 파티클들의 위치를 기준으로 현재 속도명령인 직진속도와 회전속도에 의해 파티클들의 위치를 예측하는 과정이다. 

Measurement Model 과정은 로봇의 현재 위치에서 수신된 센서정보와 지도정보를 이용하여 파티클에 대한 신뢰도를 계산한다. 이를 위해 센서 정보의 불확실성에 대한 확률밀도함수를 만들고, 실제 수신된 센서정보를 확률밀도함수에 대응시켜 신뢰도를 계산한다.

Resampling 과정은 파티클의 신뢰도를 기반으로 추정 파티클들을 선별하는 과정이다.

이러한 과정을 통해 매 샘플링마다 파티클들의 분포에 의해 로봇의 위치가 추정된다.

 

 

MCL의 수도코드

 

Reference.

양주호, 송재복. (2006). 효율적인 몬테카를로 위치추정을 위한 샘플 수의 감소. 제어로봇시스템학회 논문지, 12(5), 450-456.

허성식, 조성욱, 심현철. (2012). 무인항공기의 실내 항법을 위한 3차원 공간지도작성 및 몬테카를로 위치추정기법. 한국항공우주학회 학술발표회 초록집, (), 594-599.

고낙용, 서동진, 김광진, 김태균. (2007). ARM 코어를 이용한 MCL(Monte Carlo Localization) 모듈의 구현. 대한전자공학회 학술대회, (), 811-812.

고낙용, 김태균. (2009). MCL 알고리즘과 초음파 센서를 이용한 이동로봇 위치추정. 제어로봇시스템학회 합동학술대회 논문집, (), 50-53.