[SLAM] Odometry의 정의

공대생의 팁 2018. 11. 23. 15:58


 Odometry란 단어 그대로 주행기록계라는 의미로서 엔코더를 통한 회전수와 IMU(관성 측정 장비)로 기울기 등을 측정함으로서 움직이고 있는 사물의 위치를 측정하는 방법을 의미합니다.


 Odometry는 ROS에서 odom frame으로 구현되며 위에서 설명한 엔코더 혹은 IMU를 사용하여 위치를 추정할 수 있습니다. 부득이하게 Visual SLAM을 사용하여 위의 센서를 사용하지 못할 경우 카메라를 통해 관측한 값을 토대로 Odom을 추정하는 방법을 사용할 수도 있습니다.




 Odom frame을 설계함에 있에 일반적으로 위와 같은 구조로 Frame을 설계합니다. map 은 여러 개의 odom을 가질 수 있으나 odom은 단 하나의 map을 가질 수 있습니다. 즉 1 개의 map 위에 다수의 로봇이 존재할 경우 odom은 로봇의 개수 만큼 존재한다고 할 수 있겠습니다.


earth

 earth frame은 여러 대의 로봇들이 서로 다른 map 위에서 존재할 수 있도록 해줍니다. 로봇들이 한 빌딩의 각 층에 위치하여 서로 다른 map을 가지고 있을 경우 earth frame은 모든 map frame을 통해 각 층의 정보를 가질 수 있게 해줍니다.


map

 map frame은 world fixed frame으로서 earth frame에 고정된 프레임이라 할 수 있습니다.  odom frame이 움직일 때 drift가 발생하여 로봇의 위치가 미세하게 바뀌는 경우가 발생합니다. map frame은 연속적이지 않기 때문에 시뮬레이션을 돌릴 때 마치 로봇이 갑자기 순간이동 한 듯 움직이는 경우를 볼 수 있습니다. 이러한 단점이 있지만 map frame은 장기간 global reference에는 매우 유용한 frame입니다.


odom

 odom frame은 world fixed frame으로서 또한 earth frame에 고정된 프레임이라 할 수 있습니다. 로봇의 위치가 drift로 인해 odom frame이 장기간 global reference에서는 사용에 있어 의미가 없을 수 있으나 odom frame은 로봇의 위치를 연속적으로 나타낼 수 있어 로봇이 갑자기 순간이동을 하는 듯한 모습을 보이지 않고 부드럽게 움직일 수 있도록 해줍니다.

 즉 odom frame은 단기간 local reference에서 로봇의 위치를 정확하게 파악하는데는 매우 유용한 frame이라 할 수 있겠습니다.


base_link

 base_link frame은 로봇 자체의 위치를 나타내는 frame이라 할 수 있습니다. base_link frame의 위치를 odom 혹은 map frame을 사용하여 위치를 추정하는 방법으로 로봇의 위치를 파악할 수 있습니다.

300x250