# Reference frames of Odometry Message

Hi All,

I'm just learning ROS and would like to ask your help to clarify something I'm totally confused by. In this tutorial the nav_msgs/Odometry message is explained as follows:

The pose in this message corresponds to the estimated position of the robot in the odometric frame [....] The twist in this message corresponds to the robot's velocity in the child frame, normally the coordinate frame of the mobile base [....]

The robot's velocity in the mobile base frame should be always zero, shouldn't it? (Because the pose of the robot in the mobile base frame is constant.) I think I fundamentally misunderstand the concept. Could someone please explain why it is a good idea to use different reference frames for pose and twist? I thought the Odometry message was used to describe the robot's position and velocity (both linear and angular) in the odom frame, but this doesn't seem to be the case.

Thank you, -Tamás

edit retag close merge delete

Sort by » oldest newest most voted

There is already a similar question question regarding this.

It can be a bit confusing, but according to the convention (it was maybe in REP 105) and the nav_msgs/Odometry message description, the twist should be in the base_link. It actually makes sense to consider the twist locally. For example, lets say the robot is moving with 1m/s forward. A twist, with linear x=1m/s makes sense in this case regarding the base_link and the robots current velocity. Otherwise if it was in the parent (odom) frame then this simple movement would be represented with a combination of x and y regarding the robot's orientation in the odom frame.

more