Ask Your Question

Revision history [back]

I used AMCL on a robot with Mecanum wheels, which have an enormous amount of slip. I used an IMU along with the laser_scan_matcher package in order to simulate the odom and then fed that to AMCL.

If you want to try with straight odometry, one thing you could try is increasing the covariance values in the odometry message. Covariance is a measure of uncertainty. If the uncertainty is high then AMCL should weigh the measurement less.

I used AMCL on a robot with Mecanum wheels, which have an enormous amount of slip. I used an IMU along with the laser_scan_matcher package in order to simulate the odom and then fed that to AMCL.

If you want to try with straight odometry, one thing you could try is increasing the covariance values in the odometry message. Covariance is a measure of uncertainty. If the uncertainty is high then AMCL should weigh the measurement less.

[EDIT] I did not know that AMCL doesn't use covariance, so I guess that's out.

In regards to laser_scan_matcher, yes and no. Yes, you are using the laser scans twice, but you are using them for different things. AMCL uses scan matching to compare the current laser scans against a map to try and determine the sensor's pose on that map. Laser_scan_matcher also uses scan matching, but between successive scans in order to determine the amount of translation and rotation there is between scans. This is then converted into a transform between a user specified fixed frame and base frame. TLDR: amcl uses scan matching to find pose on a map, laser_scan_matcher uses scan matching to find pose relative to its initial position.