0
$\begingroup$

Rosanswers logo

Hi

We are working with ROS doing SLAM navigation and most of the time it works great. However on about 30% of the startups we will get the error

[ WARN] [1542701239.688534922]: Timed out waiting for transform from base_link to map to become available before running costmap, tf error: Lookup would require extrapolation into the past.  Requested time 1542701227.313686000 but the earliest data is at time 1542701229.716825290, when looking up transform from frame [base_link] to frame [map]. canTransform returned after 0.1008 timeout was 0.1.

Since this is so close to the actual time window we just want to ignore this by changing the tolerance of this specific transform however we can't find where it is defined. (The exact missmatch in the transform will vary slightly between messages but always in the same neighborhood.)

Where in the configuration files can we change this? This is driving us insane since it means we need to stop out work and restart both the robot and the laptop in order to fix it.

Thanks in advance

Edit 1: added our costmap config This is running Gmapping together with navigation stack.

obstacle_range: 6.0 
raytrace_range: 8.5
footprint: [[0.3, -0.3],[-0.2, -0.3],[-0.2 ,0.3],[0.3,0.3],[0.4, 0]]
map_topic: map
subscribe_to_updates: true
observation_sources: laser_scan_sensor
laser_scan_sensor: {sensor_frame: laser_frame, data_type: LaserScan, topic: scan, marking: true, clearing: true}
global_frame: map
robot_base_frame: base_link
transform_tolerance: 1.0
always_send_full_costmap: true

This does not seem to affect the transform tolerance that we want to change, the rest of the parameters are read correctly.


Originally posted by sberg on ROS Answers with karma: 5 on 2018-11-20

Post score: 0


Original comments

Comment by gvdhoorn on 2018-11-20:
It would probably help if you could tell us which packages you are using. "SLAM" is a generic term.

Also: most of these things are run periodically, so a single WARN should not mean you'd have to restart everything.

Comment by sberg on 2018-11-20:
When it works its will throw these periodically, when it doesn't work it will throw these WARN constantly and never read any data.

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

If you are using the navigation stack you can use "transform_tolerance" in costmap_common_params.yaml file. For example:

global_frame: map
robot_base_frame: base_link

transform_tolerance: 1.0
...

You can always check the husky_navigation for reference.

Edit:
Also I noticed in the warning:

Requested time 1542701227.313686000 but the earliest data is at time 1542701229.716825290

looks like there is a difference of 2 seconds. Try setting the transform_tolerance to 3 seconds and see if there is any change


Originally posted by pavel92 with karma: 1655 on 2018-11-20

This answer was ACCEPTED on the original site

Post score: 0


Original comments

Comment by sberg on 2018-11-20:
Thanks Im gonna go ahead and close this. However im still clueless as to why this problem will only occur sometimes (even after a restart of the robot) but i think that is better asked in a separate question.

$\endgroup$

Your Answer

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