AMCL converges to wrong pose and is unable to recover

asked 2018-08-04 08:23:22 -0600

Omer gravatar image


I am working with AMCL together with laser_scan_matcher (as odometry source) for my simulated laser-only based virtual robot. I have a prior map and want to do localization only, without updating the map. I always call the global_localization service and avoid providing an initial pose to AMCL.

In most of my experiments, AMCL does manage to converge to the correct pose. However, during long walks it diverges at some point (probably due to bad odometry from the laser_scan_matcher). Since at that point the particle cloud is already dense, AMCL will persist its wrong pose and won't recover.

I played a little with AMCL parameters but couldn't find something which helped. I'm basically after a parameter which tells AMCL at what rate to expand its particle cloud when sensorial information doesn't not correspond with the map.


edit retag flag offensive close merge delete



How did you vary AMCL parameters? Let's assume bad odometry of laser_scan_matcher causing the divergence. I would suggest to increase values of odom_alphaX. Raising these values means broadening the distribution of particles during propagation step of MCL algorithm. This may increase successful rate

chung gravatar image chung  ( 2018-08-05 03:28:55 -0600 )edit

Thanks chung, seems like it really helped! For future readers of this post, I'm putting here my previous values and the new ones: odom_alpha1: 0.005 -> 0.05 odom_alpha2: 0.005 -> 0.05 odom_alpha3: 0.010 -> 0.10 odom_alpha4: 0.005 -> 0.05 odom_alpha5: 0.003 -> 0.03 with odom_model_type=omni-corrected

Omer gravatar image Omer  ( 2018-08-05 14:47:46 -0600 )edit