Ask Your Question

Some questions about AMCL

asked 2016-11-23 14:03:35 -0500

MINGLIBRIAN gravatar image

updated 2016-11-24 03:56:10 -0500

Procópio gravatar image


I am working on amcl recently, I have some questions about it. The tf tree is like the picture below.

image description

  1. I found in other questions that amcl receives information from tf between odom and base_link frames, then broadcast tf between map and odom frames after correcting to implement localization. I am not sure if I understand correctly.
  2. Suppose the coordinate of odom under map frame is (x1, y1), base_link under odom is (x2, y2). So if I understand correctly, the coordinate of base_link under map frame is (x, y), i.e. x=x1+x2, y=y1+y2. Is it right?
  3. What role does base_footprint frame play?


edit retag flag offensive close merge delete

2 Answers

Sort by » oldest newest most voted

answered 2016-11-23 21:49:13 -0500

DavidN gravatar image

updated 2016-11-23 21:49:48 -0500

First of all, it seems your picture about tf tree doesnt have amcl, so I'm not sure if the picture is related to the questions.

Next, following are my thoughts about your questions:

  1. You are right. AMCL keeps transform between map and odom. Some node will keep transform between odom and base_link. This node could use difference ways to calculate the transform: motor encoder, laser odometry, imu, fusion of different sensors, etc.
  2. Not always true. The reason is it depends on the rotational transform between odom and map. In your example, there is no information about the rotation, so we cant conclude easily. If the odom and map frame have same orientation (meaning no rotational transform between them), then you can conclude x=x1+x2, y=y1+y2.
  3. base_link frame represents the robot body. It varies from different type of robots.
edit flag offensive delete link more

answered 2016-11-23 21:28:56 -0500


  1. Yes, your understanding is correct.
  2. Sounds about right.
  3. The base_footprint is the projection of the base_link onto the ground plane and is co-planar with map and odom frames. The role of this frame is to bring the base_link to the same plane as map and odom when base_link is not co-planar with map and odom. If base_footprint frame does not exist and base_link is not co-planar with map and odom, when you visualize your world with rviz it seems that your robot is "sinking" in the ground.
edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools



Asked: 2016-11-23 14:03:35 -0500

Seen: 318 times

Last updated: Nov 24 '16