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

You need to add a new ros node that corrects for the odometry drift. Some people use the ros amcl package for this.

http://wiki.ros.org/amcl

amcl is a Global Localizer. It takes the laser scan and the map as input, and aligns multiple lidar scans to the map to determine the robot's current map pose. Then it publishes a new map->odom transform, which has the effect of correcting any drift in the odom->base_link frame. If I remember correctly, the standard ros amcl node does this calculation only once, so you'll need code to re-trigger the calculation after it finishes.

The reason you need both amcl and wheel-encoder-odom for robot pose is that amcl is slow - it can take more than 1 second for it to decide where the robot is currently.

You need to add a new ros node that corrects for the odometry drift. Some people use the ros amcl package for this.

http://wiki.ros.org/amcl

amcl is a Global Localizer. It takes the laser scan and the map as input, and aligns multiple lidar scans to the map to determine the robot's current map pose. Then it publishes a new map->odom transform, which has the effect of correcting any drift in the odom->base_link frame. transform. If I remember correctly, the standard ros amcl node does this calculation only once, so you'll need code to re-trigger the calculation after it finishes.

The reason you need both amcl and wheel-encoder-odom for robot pose is that amcl is slow - it can take more than 1 second for it to decide where the robot is currently.