RFID를 이용한 SLAM
로봇이 주변 환경을 인지하고 목적지로 이동하기 위해 다양한 방법들이 사용됩니다. 특히 RFID(Radio Frequency Identification) 시스템은 사물인식과 환경인식에 대한 새로운 접근 방향을 제시하는 것으로 기존의 인지 기술의 성능을 획기적으로 개선시켰습니다. 또한 RFID 시스템을 사용한 로봇의 위치인식과 주행 기술도 몇 건의 연구결과가 있습니다.
RFID 시스템을 이용한 로봇의 위치인식 방법으로 RFID 태그를 지면에 배치하고 태그의 위치를 로봇에 기록해 두었다가 로봇의 하부에 설치된 안테나가 태그를 인식하였을 때 태그의 위치로부터 로봇의 위치를 알아내는 방법이 일반적입니다. 이때 바퀴의 오도메터리 정보와 인식한 태그의 위치를 파티클 필터로 융합하여 로봇의 위치를 추정하게됩니다.
RFID 태그를 지면에 배치하였을 경우 사용자가 일일이 태그의 위치를 측정하여 기록하는 것은 쉬운 작업이 아닙니다. 그래서 이번에는 로봇의 위치와 태그의 위치를 SLAM (Simultaneously Localization and Mapping) 방법으로 동시에 추정하는 실험을 하였습니다.
RFID기반의 SLAM에서는 태그가 특정 영역 내에 들어오면 인식이 되고 영역을 벗어나면 인식이 되지 않는 on/off 적인 인식 특성으로 인식 확률이 가우시안 분포를 따르지 않기 때문에 이미 알려진 EKF SLAM이나 Fast SLAM방법을 적용할 수 없습니다. 그래서 이번에 개발한 방법은 중첩된 타원의 교집합 영역으로 태그의 존재 확률을 결정하는 방법입니다. 또한 로봇의 위치 추정에는 이미 다양하게 응용되는 파티클 필터를 사용하였습니다. 이 방법은 로봇과 태그의 확률 분포 연산에 컨볼루션 연산을 사용하지 않아 실시간으로 SLAM알고리즘 수행이 가능합니다. 하지만 태그의 존재 확률을 타원으로 표시하기 때문에 정확한 확률 분포를 표시할 수 없다는 문제점도 있습니다.
상세한 내용은 다음 문서를 참고하세요.
그리고 실험한 소스코드를 첨부합니다.
상기 소스코드를 실행하기 위해서는 이동로봇을 시뮬레이션 하는 시뮬레이터가 필요합니다. 이동로봇 시뮬레이터는 다음 링크를 참조하시기 바랍니다.
xxx - Mobile Robot Simulation 프로그램
실행 동영상을 한 번 보시기 바랍니다. 아래는 상기 동영상과 동일한 원본 동영상 파일입니다.
동영상에서 파란색 원은 실제(시뮬레이터에서 알고 있는) 로봇의 위치입니다. 그리고 파란색 점들은 파티클, 분홍색 십자가는 파티클의 중심(로봇의 추정된 위치), 빨간색 타원은 파티클의 공분산(추정된 로봇의 위치에 대한 공분산) 입니다. 로봇은 약간의 노이즈를 가지고 원을 돌도록 프로그램 되어 있습니다. 로봇이 이동하면서 RFID 태그를 발견할 때마다. 로봇의 위치를 갱신하고 RFID 태그의 위치(회색 타원으로 표시되는)또한 갱신합니다.