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

Revision history [back]

click to hide/show revision 1
initial version

There are two places where the speed information in an odometry message is used:

navigation (move_base) uses the speed as the current speed of the robot, for computing the maximum commandable speed according to the acceleration limits. Setting a zero speed will confuse move_base and generally precent the local_planner from commanding the maximum velocity

A kalman filter (robot_pose_ekf, robot_localization) will usually use the velocity from the wheel encoders as one of the inputs to the kalman filter, which will integrate the velocity along with other measurements to produce an estimate of the robot's position. Again, using zeros here can cause the position estimates of your robot to be wrong.

If you can differentiate the wheel positions to produce a fairly clean, stable velocity estimate, that's probably more accurate than simply repeating the commanded velocity.

If there's a lot of noise in your differentiated wheel velocities, or if your wheel speed controller is not very accurate, using the calculated wheel velocities may cause the navigation controller to be unstable, and it may be wiser to repeat the commanded velocities.