ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange

# Relations between odom coordinate and map coordinate system when create a map？

I‘m using slam_gmapping to create a map.I can successfully created a map,but I don't know the relationship between odom coordinate and map coordinate.

In my opinion,both map and odom coordinate frame is fixed,but when I move my robot,the position of odom coordinate frame changed.!

I want to know why odom frame is changed and how to compute odom's value? Can anyone help me?

edit retag close merge delete

Sort by » oldest newest most voted

In an ideal world, odom and map will both be fixed and, when doing SLAM, at the same place. However, the world is not ideal. [citation needed]

When running SLAM (or any localization algorithm, for that matter), you account for errors in the odometry using the respective algorithm. In ROS, the typical way to do this is to adjust the map->odom transform. This allows you to publish the transform from odom->base_link from your robot and other nodes to access it.

So the transform odom->base_link is what the robot thinks it has traveled based on the (noisy and inaccurate) odometry, the transform map->odom is the correction of the noisy odometry provided by the localization algorithm, resulting in the robot pose in the world displayed by the map->odom->base_link transform.

more

Thanks for your answer! And,do you know the theory of map-->odom transform?

( 2016-04-29 03:25:15 -0500 )edit

What do you mean by "theory of map->odom transform"? This is the classical robot localization/SLAM problem... Note, though, that localization/SLAM actually estimates map->base_link and then you "subtract" odom->base_link to get map->odom as tf requires a tree structure...

( 2016-04-29 05:37:18 -0500 )edit