Ask Your Question

problem with robot localization using amcl

asked 2015-05-01 15:16:17 -0600

Naman gravatar image

updated 2015-05-04 12:30:26 -0600

Hi all,

I have a mobile robot and I would like it to navigate in a room, I already have a map of the room. I am using wheel encoders for the odometry, robot_pose_ekf for fusing data from wheel encoders and IMU and to get the odom_combined -> base_footprint transformation. Then , I have amcl for localization and move_base is doing the planning. I am able to start everything smoothly and give the goal through RVIZ and the tf tree looks correct: image description

After I give the goal, robot starts moving towards it and on the way, its localization gets messed up. Once, it is close to the goal it starts rotating in a random manner which also messes up the localization of the robot. The problem is more common when it is near to the goal, it starts rotating randomly and gets lost. Also sometimes, I get the warning:

Clearing costmap to unstuck robot (3.000000m).  
Rotate recovery behavior started.

but I dont see the robot being stuck. I think there is some issue with amcl but I am not sure. I saved all the data in a bag file and ran it and made two videos for two different goal positions. In first two cases, the correct orientation should be pi/2 (south direction) and in the last case the robot should point right:
Video - 1
Video - 2
Video - 3
The parameters for amcl is shown below:


<node pkg="amcl" type="amcl" name="amcl" output="screen">

    <param name="odom_frame_id" value="odom_combined"/>
    <param name="base_frame_id" value="base_link"/>
    <param name="odom_model_type" value="diff"/>
    <param name="laser_model_type" value="likelihood_field"/>
    <param name="use_map_topic" value="true"/>
    <param name="odom_alpha5" value="0.1"/>
    <param name="transform_tolerance" value="0.2" />
    <param name="gui_publish_rate" value="10.0"/>
    <param name="laser_max_beams" value="30"/>
    <param name="min_particles" value="500"/>
    <param name="max_particles" value="5000"/>
    <param name="kld_err" value="0.05"/>
    <param name="kld_z" value="0.99"/>
    <param name="odom_alpha1" value="0.8"/>
    <param name="odom_alpha2" value="1.0"/>
    <param name="odom_alpha3" value="0.8"/>
    <param name="odom_alpha4" value="1.0"/>
    <param name="laser_z_hit" value="0.5"/>
    <param name="laser_z_short" value="0.05"/>
    <param name="laser_z_max" value="0.05"/>
    <param name="laser_z_rand" value="0.5"/>
    <param name="laser_sigma_hit" value="0.2"/>
    <param name="laser_lambda_short" value="0.1"/>
    <param name="laser_lambda_short" value="0.1"/>
    <param name="laser_likelihood_max_dist" value="2.0"/>
    <param name="update_min_d" value="0.1"/>
    <param name="update_min_a" value="0.2"/>
    <param name="resample_interval" value="0.5"/>
    <param name="transform_tolerance" value="0.1"/>
    <param name="recovery_alpha_slow" value="0.0"/>
    <param name="recovery_alpha_fast" value="0.0"/>

    <param name="initial_pose_x" value="1.30"/>
    <param name="initial_pose_y" value="2.0"/>
    <param name="initial_pose_a" value="1.57"/>


I am not able to figure out what exactly is causing such a behavior but it looks like its a very common problem. Therefore, I hope someone who has faced such issues before can help me out here. Let me know if you need any more information from me

Thanks in advance.
Naman Kumar

edit retag flag offensive close merge delete


what value do you have for yaw_goal_tolerance in your base_local_planner config file. If that's too small it will have a tendency to rotate around the goal as you described.

jseal gravatar image jseal  ( 2015-05-04 23:41:34 -0600 )edit

It is 0.2, I think its not too small.

Naman gravatar image Naman  ( 2015-05-05 07:11:42 -0600 )edit

That should be fine, have you tried running it without the amcl node and see if the behavior is the same?

jseal gravatar image jseal  ( 2015-05-05 17:03:29 -0600 )edit

2 Answers

Sort by ยป oldest newest most voted

answered 2016-06-28 15:57:48 -0600

pilleatus gravatar image

If you haven't done it already, you can try to find the failure with the Navigation Tuning Guide

edit flag offensive delete link more

answered 2016-06-12 02:39:38 -0600

asimay_y gravatar image

updated 2016-06-12 02:40:19 -0600

 <param name="use_map_topic" value="true"/>

is it should be false if you want to retrieve map from your prepared map?

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools



Asked: 2015-05-01 15:16:17 -0600

Seen: 2,296 times

Last updated: Jun 28 '16