실외환경에서 골프카트 자율주행 실험을 하려면 먼저 주변환경에 대한 맵 빌딩이 필요합니다. 처음 2D 맵빌딩을 할 때 골프카트 전방에 2D 레이저 스캐너를 설치하고 이 데이터를 이어붙여 주변 환경에 대한 2D 맵빌딩을 시도하였습니다. 이전과 같이 ICP 알고리즘으로 데이터를 이어붙여 나가면 맵빌딩이 수월하게 될 것이라고 생각했었는데, 실외환경이란게 실내처럼 바닥, 벽, 천정같은 수평 혹은 수직인 구조물들이 아닌 자연 그대로의 언덕과 경사면, 나무 등에 의해 차량의 롤과 피치가 조금만 바뀌어도 맵의 모양이 많이 일그러지는 문제가 있었습니다. 결국 ICP 알고리즘으로 맵을 이어붙이는 것을 포기하고 Dead-reckoning 만으로 맵빌딩을 수행했지만, 차량 헤딩의 부정확성을 보상할 방법이 없었습니다. 그래서 사용한 센서가 KVH DSP3000(http://www.kvh.com/dsp3000) 1축 fiber optic gyro 센서였습니다. 생긴건 투박하지만 성능은 훌륭합니다. 홈페이지를 방문하시어 데이터시트를 참고해 보시기 바랍니다.
다음 동영상은 차량의 전방에 설치된 레이저 스캐너(Sick LMS151-10100)로 측정한 데이터를 아무런 처리 없이 차량의 Dead-reckoning에 따라 이어붙여서 만든 그리드맵 입니다. 물론 헤딩 값은 Fiber optic gyro 센서 데이터를 사용했습니다. 차량 운행시간은 1분도 안되는 것으로 기억합니다만, 그리드맵이 오른쪽이나 왼쪽으로 틀어지지 않고 정확히 이어붙여진 것을 볼 수 있습니다.
상기 동영상에서 보신바와 같이, 10여분 주행한 데이터로 맵빌딩을 수행하더라도 차량의 헤딩 방향으로의 오차는 사람 눈으로 식별하기 어려운 정도입니다. 물론 이동 거리에 대한 오차는 조금씩 발생합니다. 하지만 이동거리에 대한 오차도 바퀴 반지름을 정확히 캘리브레이션 한다면 상당히 줄일 수 있을 것으로 보입니다.