0
$\begingroup$

Rosanswers logo

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] [ERROR] [1318490257.416245746]: Extrapolation Error: , when looking up transform from frame [/base_link] to frame [/map] [ WARN] [1318490257.416288729]: Could not get robot pose, cancelling reconfiguration [ WARN] [1318490257.416421879]: Costmap2DROS transform timeout. Current time: 1318490257.4163, global_pose stamp: 1318489993.7026, tolerance: 0.3000 [ WARN] [1318490257.416457689]: Could not get robot pose, cancelling reconfiguration [ WARN] [1318490257.439388646]: Costmap2DROS transform timeout. Current time: 1318490257.4393, global_pose stamp: 1318489993.7026, tolerance: 0.3000

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


Originally posted by BlackManta on ROS Answers with karma: 56 on 2011-10-13

Post score: 0

$\endgroup$

2 Answers 2

0
$\begingroup$

Rosanswers logo

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.


Originally posted by Javier with karma: 408 on 2011-10-13

This answer was ACCEPTED on the original site

Post score: 0

$\endgroup$
0
$\begingroup$

Rosanswers logo

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

Originally posted by Lorenzo Riano with karma: 1342 on 2011-10-13

This answer was NOT ACCEPTED on the original site

Post score: 1

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.