본문 바로가기

카테고리 없음

도로의 자석을 이용한 무인운전차량의 위치인식

지난글에서 무인운전차량의 자율주행 소프트웨어에 대하여 소개드렸었습니다. 차량의 자율주행에서 가장 핵심이 되는 기술이 바로 위치인식 기술입니다. 로봇이 원하는 목적지로 움직이기 위해서는 자신의 위치를 아는 것이 필수입니다.

 

실외에서는 GPS가 있기때문에 위치인식이 쉬운 것 아니냐고 반문하시는 분들도 계시겠지만, 실제로 실내보다 실외가 위치인식이 까다롭습니다. 왜냐면 GPS의 정밀도가 떨어지기 때문입니다. 차량이 도로에서 자신의 위치를 몇 미터씩 틀리게 추정한다면 바로 사고로 이어지겠죠. 그러면 DGPS를 쓰면 되지않겠냐고 하시지만, 실제로 DGPS도 건물에 가리거나 하면 GPS와 마찬가지로 위치 점핑이 발생합니다. 또한 수km의 좁은 지역에서는  몇 개의 스테이션으로 해결이 가능하나  넓은 지역을 커버하기에는 답이 없습니다. 물론 가격도 비싸겠지요.

 

아주 간단한 방법으로 유도선을 매립하고 이를 추종하여 자율주행하는 방식이 있는데, 제 눈으로 직접 보지는 못했지만, 요즘 왠만한 골프장에서 운행되는 골프카트들은 길에 심어진 유도선을 따라 자율주행을 한다고 합니다. 유도선 방식은 공장내 AGV의 자율주행에도 주로 사용되는 역사가 꽤 되는 방식입니다. 근래에는 2tetthere사에서 유도선 대신 자석을 매립하는 방식으로 아부다비 마사다 시티에서 PRT 시스템을 성공적으로 설치 운행하였습니다. 다음 동영상을 참고해 보시기 바랍니다.

https://youtu.be/yStQBXuIopE

 

제가 이번에 설명드리는 방식도 바로 자석을 사용한 위치인식 방법입니다. 차량이 지나가는 길에는 듬성듬성 자석을 심어놓습니다. 그리고 차량의 하부에 장착된 자기장 감지 센서(홀센서를 일렬로 배열한 어레이 형태의 센서)를 사용하여 차량이 달리는 도중 자석이 감지된 위치를 찾게 됩니다. 그러면 차량을 기준으로 자석의 위치를 알게 되고 전역 좌표계에서 자석의 위치를 알고 있다면 차량의 위치를 계산가능하게 됩니다. 다음 사진은 실제로 도로에 구멍을 뚫어 자석을 매립하고 입구를 막은 사진입니다. 페인트로 따로 표시를 하지 않으면 아스팔트와 거의 구분이 되지 않습니다. 

 

 

 

다음 문서는 Extended Kalman Filter를 사용하여 차량의 이동량과 조향각으로부터 추정한 위치를 자석의 위치로 보정하는 방법에 대한 설명입니다:

EKF Localization(Hall Sensors Array).pdf
0.22MB

 

이에 대한 소스코드는 "골프카트의 자율주행 소프트웨어" 글에서 소스코드를 다운받은 후 KalmanFilter.h, KalmanFilter.cpp 파일을 참조하시면 됩니다.

 

시뮬레이션으로 실행되는 화면은 다음 동영상을 참고하시기 바랍니다. 시뮬레이션 시에 차량의 이동거리와 방향에 약간의 잡음을 섞었습니다. 노란색 차량이 차량의 true 위치이고 하늘색 차량이 Kalman filter로 추정한 위치입니다. 주황색 타원이 차량의 x,y 위치에 대한 공분산 입니다.