Robotics StackExchange | Archived questions

How to eliminate AMCL particles using compass heading data?

After global_localization service called the initial particle is scattered everywhere with random heading. I have very good IMU compass say with 5 degrees error. My robot need to localize quickly so how to optimize particle filter by eliminating particles that differ more than 5 degrees from compass heading?

Asked by achmad_fathoni on 2018-07-10 19:58:35 UTC

Comments

Answers

You may be able to achieve this by setting the initial_pose_a and initial_cov_aa parameters described on the AMCL wiki page before starting the AMCL node. Obviously you'll need to choose a covariance (in radians) that corresponds to your compass's heading accuracy in order to generate the correct distribution of headings in the particle cloud.

Asked by ahendrix on 2018-07-10 20:08:40 UTC

Comments

Thank you for your answer. After few step from global_localization the particles start sticking together and make some groups. Often this group has different orientation to from another and only view match the compass heading. Can you give me a hint about how to filter the wrong particles groups?

Asked by achmad_fathoni on 2018-07-11 01:35:50 UTC

I am ask this following question because initial_pose_a and initial_cov_a seems only cover initial particles.

Asked by achmad_fathoni on 2018-07-11 01:37:09 UTC

I am not sure AMCL supports the general case of getting absolute heading from a sensor when doing online localization. I suggest you read the AMCL source code. You may need to modify the source code for AMCL if you want to filter particles by orientation during every update.

Asked by ahendrix on 2018-07-11 03:27:23 UTC