본문 바로가기

카테고리 없음

이동로봇의 FastSLAM

FastSLAM은 Particle Filter를 기반으로 동작합니다. FastSLAM은 랜드마크의 수가 수천개 이상 되었을 때 EKF-SLAM과 비교하여 장점이 있습니다. EKF-SLAM은 랜드마크 수의 제곱에 비례하여 계산 량이 증가하기 때문에 랜드마크의 수가 수백개 정도 되면 계산량이 상당히 많습니다. 하지만 FastSLAM에서는 계산량이 랜드마크 수와 선형으로 비례하여 증가하기 때문에 EKF-SLAM보다 그래도 좀 더 나은 편입니다.

 

FastSLAM에 대한 자세한 내용은 Sebastian Thrun 교수의 설명을 참고하시기 바랍니다: http://robots.stanford.edu/papers/montemerlo.fastslam-tr.html

 

아래는 FastSLAM의 수행절차를 정리한 문서입니다.

Fast SLAM v2(t 생략).pdf
0.27MB

 

아래는 FastSLAM을 구현한 예제 코드입니다.

mobile_robot_Fast_slam.zip
0.11MB

 

상기 소스코드를 컴파일 하여 실행하기 위해서는 이동로봇을 시뮬레이션 하는 시뮬레이터가 필요합니다. 이동로봇 시뮬레이터는 다음 링크를 참조하시기 바랍니다.

 

xxx - Mobile Robot Simulation 프로그램

 

시뮬레이터는 로봇의 전방에 있는 랜드마크를 인식하여 로봇과 랜드마크 간의 거리와 방향을 측정합니다. FastSLAM 클라이언트(FastSLAM을 구현한 예제 코드)는 시뮬레이터에 연결하여 인식된 랜드마크의 정보를 읽어와서 SLAM 알고리즘을 수행합니다.

 

다음 동영상에서 초록색 점은 랜드마크들입니다. 로봇이 랜드마크를 인식하면 밝은 초록색으로 바뀝니다. 파란색 로봇이 시뮬레이션상 실제 로봇의 위치이고 분홍색이 십자가가 FastSLAM으로 추정한 로봇의 위치입니다. 로봇이 주행하면서 랜드마크를 인식하게 되면 인식된 랜드마크 주변으로 파티클을 뿌리게 되는데, 이 파티클은 랜드마크 주변에 있는 파란색 점들입니다.