이전 글에서 바닥의 패턴을 사용한 로봇의 위치인식 방법()에 대하여 다뤘습니다. 이번에는 바닥의 패턴이 좀 드물게 존재하는 곳에서도 위치인식이 잘 되도록 하기위해 바닥의 패턴에서 특징(feature)을 추출하는 방법을 개선해 보았습니다.
기존 방법에서는 바닥 이미지에서 일정한 간격의 격자 형태로 특징점 픽셀을 샘플링 하여 지도와 비교하였기때문에 바닥의 패턴이 복잡한 곳에서는 잘 되었습니다. 하지만 상기 사진과 같이 패턴이 좀 드문 곳에서는 잘 되지 않았습니다. 그래서 이번에는 바닥의 패턴 경계에서 특징점을 뽑아 와서 지도와 매칭 함으로 패턴의 경계가 좀 더 잘 매칭되도록 하였습니다.
특징점의 추출 방법에 대해서는 다음 문서를 참고하시기 바랍니다.
특징점 추출과 위치인식 시뮬레이션을 위해서는 다음 Visual C++ 2008로 짠 코드를 테스트해 보시기 바랍니다.
* 이 프로그램을 실행하기 위해서는 Mobile Robot Simulation 프로그램()이 필요합니다.
시뮬레이션에 사용한 지도는 다음 동영상에서 보시는 바와 같습니다. 이전 지도에 비해 패턴이 실제 복도나 로비의 패턴과 유사하도록 그렸습니다.
초록색 박스 - 카메라가 바라보는 영역
초록색 점들 - 파티클들의 위치
빨간색 점들 - 카메라 이미지에서 선택한 특징점들
빨간색 원 - 로봇의 ground true 위치
밝은 파란색 원 - 바닥의 패턴과 Particle Filter로 추정한 위치
어두운 파란색 원 - Dead-reckoning 위치