카테고리 없음

RANSAC과 EKF를 이용한 로봇의 위치인식

INTH 2023. 11. 6. 03:24

이전 글에서 RANSAC 알고리즘을 사용하여 레이저 스캐너에서 읽어들인 데이터로부터 선분을 추출하는 프로그램을 작성하였습니다. 이번에는 추출한 선분과 지도의 벽(선분)을 매칭한 후 EKF(Extended Kalman Filter)를 사용하여 로봇의 위치를 추정하도록 해 보겠습니다.

 

EKF 알고리즘은 다음 문서를 참고하세요.

EKF Localization(Scanning Laser).pdf
0.21MB

 

소스코드를 첨부합니다.

RANSAC_EKF.zip
0.11MB

 

아래 동영상을 보시면, 네 개의 벽으로 이루어진 방에 로봇이 있습니다. 네모난 파란색이 로봇이며 빨간색 점은 레이저 스캐너에서 측정한 점이고 파란색 선은 RANSAC 알고리즘으로 추출한 선분입니다. 배경의 좀 진한 회색 선이 벽입니다. 처음에는 로봇이 움직이지 않다가 오른쪽 벽에 처음으로 선분이 매칭됩니다. 이제 로봇은 오른쪽 변과의 상대적인 거리로부터 x 위치를 추정할 수 있습니다. 좀 더 지나면 아래쪽 벽에도 선분이 매칭됩니다. 이제 오른쪽과 아래쪽으로 매칭이 되기때문에 로봇의 x, y 위치와 방향을 추정할 수 있습니다. 이제 선분은 계속 벽에 붙어있으면서 로봇의 위치가 변함을 볼 수 있습니다.