# Revision history [back]

A few things. Odom and the TF tree have nothing to do with message passing at all, they are used to define the geometric relationships of different parts of the robot and the world.

For the ROS navigation stack to work properly there should be a dynamic transform from odom to base_link (chassis in your case but base_link is the standard) this is usually provided by wheel odometry. There should also be a dynamic transform from map to odom which publishes corrections based on some type of absolute sensing such as SLAM or GPS. These two transforms combine to describe the location of the robot within a map.

When you say things don't work as they're supposed to, what exactly do you mean?

A few things. Odom and the TF tree have nothing to do with message passing at all, they are used to define the geometric relationships of different parts of the robot and the world.

For the ROS navigation stack to work properly there should be a dynamic transform from odom to base_link (chassis in your case but base_link is the standard) this is usually provided by wheel odometry. There should also be a dynamic transform from map to odom which publishes corrections based on some type of absolute sensing such as SLAM or GPS. These two transforms combine to describe the location of the robot within a map.

When you say things don't work as they're supposed to, what exactly do you mean?

UPDATE:

I had a close look at your TF tree and there is a big time difference between some of the most recent transforms. the odom to chassis transform is over 400 seconds old, as are the sensor frame transforms. The wheel transforms are current though. If you select the odom frame you can see that the wheel transforms are not picked up because their time stamps are over 5 minutes ahead.

Is gazebo publishing sim time? This looks like a problem with the time stamps of the transforms that are being published. Is Gazebo running on the same machine as RVIZ?