처음에는 가장 익숙한 /odom
토픽을 사용하여 로봇 위치 정보를 얻으려고 했으나, 맵에 위치가 제대로 표시되지 않는 문제를 발견했다. 이를 해결하기 위해 여러가지 로봇의 위치를 제공해주는 토픽들을 찾아보기 시작했다.
다음 공식 문서에서 확인할 수 있다.
AMCL이 기본 프레임의 위치를 전역 프레임에 대해 추정하고, 이 정보를 이용해 오도메트리 프레임과 전역 프레임 사이의 변환을 게시하여 드리프트를 보정하는 방식으로 작동한다는 것을 설명하고있다.
/amcl_pose
는 로봇의 절대 위치를 나타낸다. amcl은 로봇의 기본 프레임(~base_frame_id)을 전역 프레임(~global_frame_id)과 비교하여 로봇의 절대적인 위치를 추정한다. 즉, 로봇의 현재 위치를 전역 좌표계에 대해 직접적으로 제공한다./odom
은 로봇의 상대 위치를 나타낸다. 이 토픽은 로봇의 odometry 프레임(~odom_frame_id)과 전역 프레임 간의 변환을 게시한다. 이는 로봇의 현재 위치와 이전 위치 간의 상대적인 변화를 나타내며, Dead Reckoning 방식으로 인해 누적 오차(드리프트)가 발생할 수 있다.What is the /odom topic? - ROS Answers: Open Source Q&A Forum
amcl_pose vs odom/pose - ROS Answers: Open Source Q&A Forum
: 로봇의 2D 위치와 자세를 추정하기위해 Particle filter를 사용하는 확률적 알고리즘