Robot get's lost all the time. How to Improve AMCL

Hello guys,

I am using a Turtlebot3 Burger on ROS2 Foxy and I am trying to navigate around a room.
The thing is that after like 4-5 navigation movements the robot is lost.

The room is small (about 12 m^2) and it has objects all around (curtains, furniture etc which might confuse the localization).
Additionally I didn’t want the robot to reach half of the room, so I painted half the map black for the keep-out mask.


What would you suggest to take a look at first to improve the AMCL ?

Thank you in advance,

Hi @NoN33d ,

It appears that the map that you have shared as an image is not complete, meaning, it is not a closed boundary. So that is one of the problems.

You do not have to make a keep out mask. The best thing you can do to avoid the curtains is to map the room without curtains and let the robot navigate with the curtains - that way local planner / controller will decide if there is curtain or not.

Have you tried using global_localization service? It will spread all particles around the workable area on the map initially and as the robot moves around, the robot will localize itself. The best way to localize the robot is to move staright for 10 seconds, do a 180 degree turn and move straight again for 10 seconds and then do another 180 degree turn. When this process completes, the robot should be properly localized.

To increase the chance of proper localization, use a good quantity of particles say 500-2500. And do not skip laser scan rays, use all rays. Also, increase laser scanner resolution if possible, that is make use of all the rays.

Have good odometry. If the robot is not localizing well, usually it is odometry and proximity sensors that cause the issue - when you have bad sensors - of low quality.

That’s all for now. Let me know if anything worked for you.


1 Like

This topic was automatically closed 5 days after the last reply. New replies are no longer allowed.