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.