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

TF Error: Lookup would requrie extrapolation into the future

asked 2018-08-01 21:09:51 -0500

asabet gravatar image

updated 2018-08-02 13:00:56 -0500

jayess gravatar image

I'm running rtabmap on a jackal robot with bumblebee2 stereo camera on ros-kinetic. I get the following error when trying to view pointcloud2 topic in rviz:

Transform [sender=unknown_publisher] For frame [front_camera_optical]: No transform to fixed frame [map]. TF error: [Lookup would require extrapolation into the future. Requested time 1533228746.513341601 but the latest data is at time 1533228664.878277882, when looking up transform from frame [front_camera_optical] to frame [map]]

When I view the tf tree link text I see that i'm getting -0.086 sec old from the map broadcast by rtabmap.

edit retag flag offensive close merge delete

Comments

1

Can you please update your question with a copy and paste of the error instead of linking to an image? Text from images isn't searchable and people cannot copy and paste the text from it.

jayess gravatar image jayess  ( 2018-08-01 22:59:37 -0500 )edit

Thanks for the feedback! Any ideas on what the issue could be?

asabet gravatar image asabet  ( 2018-08-02 12:01:17 -0500 )edit
1

It's most likely a network problem. Take a look at that page and look for other solutions on this site, it's a pretty common problem that's been asked many times.

jayess gravatar image jayess  ( 2018-08-02 13:02:17 -0500 )edit
1

If you go through that page and try those solutions and are still having issues go ahead and please update your question.

jayess gravatar image jayess  ( 2018-08-02 13:03:12 -0500 )edit

2 Answers

Sort by ยป oldest newest most voted
3

answered 2018-08-02 13:10:55 -0500

Mark Rose gravatar image

This is often caused by either of the following issues:

  • Running nodes on more than one host when the host's clocks are not synchronized closely enough. You need to run NTP on each host, to synchronize their clocks with a network server, or set the times manually upon boot, or have one machine synch from another.
  • Mixing messages played back a bag file and "live" messages from running nodes.

(There are probably more ways to have this happen, but those two have been most common for me.)

ROS relies on each host keeping track of the current time. If you don't have a battery-backed-up clock you'll have to either have network connectivity for NTP or synchronize the clocks in some other way.

edit flag offensive delete link more
0

answered 2020-11-12 11:59:21 -0500

jin031214 gravatar image

updated 2020-12-08 18:22:32 -0500

jayess gravatar image

I know it's a bit late but I would like to share with everyone that I FIXED THE ISSUE!!!!

add the following lines to base_local_planner/src/goal_functions.cpp

#include <tf2_ros transform_listener="">

//on the top of transformGlobalPlan() and getGoalPose() try blocks    
tf2_ros::Buffer tfBuffer;    
tf2_ros::TransformListener tfListener(tfBuffer);

while(!tfBuffer.canTransform(your frames, ros::Time(), ros::Duration(1.0)));

I'M SO FREAKIN HAPPY THAT THIS IS WORKING!!!!!!

edit flag offensive delete link more

Question Tools

1 follower

Stats

Asked: 2018-08-01 21:09:51 -0500

Seen: 3,890 times

Last updated: Dec 08 '20