ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

AMCL fails ...randomly

asked 2011-10-13 18:51:41 -0600

BlackManta gravatar image

So I got amcl to work I set up a formal test and even got my video capture ready. I ran a dry run it worked. AMCL died (as mentioned) but it occurred at the end of the test so I figured it had something to do with the way my behaviors were terminating. However, the next day I set up the test and ran it amcl began crashing on me when I started.

*[ERROR] [1318490257.364240039]: Extrapolation Error: , when looking up transform from frame [/base_link] to frame [/map] Now I can tell from rviz that the robot is pretty well localized. (So its not like it thinks its on the other side of the map) I read somewhere that extrapolation error occurs when you have multiple clocks - I am running off one machine which has 7 cores. (Can I get a clock problem here?) I am not using simulation time.

I am assuming there is some parameter I can set to alleviate this error but I can't figure it out. I have raised my transform tolerance and that did not help. I have lowered my gui publication to 5 Hz.

I am using the amcl_diff.launch file provided in the amcl package - plus some minor modifications. I am using a balanced mode segway with a sick laser. I believe the odometry is good enough.

Here is my amcl_diff.launch file:

<launch> <node pkg="amcl" type="amcl" name="amcl" output="screen">   <!-- Publish scans from best pose at a max of 10 Hz -->   <param name="odom_model_type" value="diff"/>  <param name="odom_alpha5" value="0.1"/>   <param name="transform_tolerance" value="0.2" />   <param name="gui_publish_rate" value="5.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.2"/>   <param name="odom_alpha2" value="0.2"/>   <!-- translation std dev, m -->   <param name="odom_alpha3" value="0.8"/>   <param name="odom_alpha4" value="0.2"/>   <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_model_type" value="likelihood_field"/>   <!-- <param name="laser_model_type" value="beam"/> -->   <param name="laser_likelihood_max_dist" value="2.0"/>   <param name="update_min_d" value="0.2"/>   <param name="update_min_a" value="0.5"/>   <param name="odom_frame_id" value="odom"/>   <param name="resample_interval" value="1"/>   <param name="transform_tolerance" value="0.1"/>  <!--#THIS WAS .1 I CHANGED IT TO .5-->   <param name="recovery_alpha_slow" value="0.0"/>   <param name="recovery_alpha_fast" value="0.0"/> <!-- <param name="~/initial_pose_x" type="double" value="223.25" /> <param name="~/initial_pose_y" type="double" value="118.14"/> <param name="~/initial_pose_a" type="double" value="-0.22" />
--> </node> </launch>

Any help you can give would be greatly appreciated. A copy of my costmap files can be found here: Costmap files

Thanks in advanced, BM

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted

answered 2011-10-13 22:48:05 -0600

Current AMCL stop working when trying to do global localisation (see here). In my case, AMCL sometimes called the global localisation procedure while in normally working, entering an infinite loop and not publishing the transformation between the map and the robot (base_link).

I think this is what's happening to you.

edit flag offensive delete link more

answered 2011-10-13 23:25:11 -0600

The tf extrapolation error might happen when you are running packages on different computers and they are not synchronized.

You should check that the all the computers that run ROS nodes are synchronized with a common time server, and that the time difference is very low.

A useful command to check is:

ntpdate -d timeserver_address
edit flag offensive delete link more

Question Tools


Asked: 2011-10-13 18:51:41 -0600

Seen: 907 times

Last updated: Oct 13 '11