Skip to content
This repository has been archived by the owner on Nov 13, 2017. It is now read-only.

"Self-filtering may fail" because of missing waitForTransform #465

Closed
mintar opened this issue May 31, 2014 · 6 comments
Closed

"Self-filtering may fail" because of missing waitForTransform #465

mintar opened this issue May 31, 2014 · 6 comments

Comments

@mintar
Copy link

mintar commented May 31, 2014

I keep sporadically getting errors like this when using the DepthImageOctomapUpdater:

Transform error: Lookup would require extrapolation into the future.  Requested time 1401446451.006236446 but the latest data is at time 1401446450.937553891, when looking up transform from frame [katana_motor2_lift_link] to frame [kinect_rgb_optical_frame]
[ERROR] [1401446451.007936297]: Transform cache was not updated. Self-filtering may fail.

This message originates from depth_image_octomap_updater.cpp:285. It looks to me as if there was a waitForTransform() missing in planning_scene_monitor.cpp:818: When lookupTransform() is called with the time stamp from the the DepthImage, sometimes the TF buffer for that time isn't filled yet (in this case, it is 0.07 seconds behind), thereby triggering a race condition.

The Katana arm I'm working with can only publish joint states at 25 Hz, so maybe that's why this race condition happens more frequently than with other robots.

@mintar
Copy link
Author

mintar commented May 31, 2014

BTW, I'm on Hydro on Precise, using the latest Moveit binary debs.

@davetcoleman
Copy link
Member

I always get that error too, with Baxter, and am interested in fixing it as
well.
On May 31, 2014 9:16 PM, "Martin Günther" notifications@github.com wrote:

BTW, I'm on Hydro on Precise, using the latest Moveit binary debs.


Reply to this email directly or view it on GitHub
#465 (comment)
.

@mintar
Copy link
Author

mintar commented Jun 1, 2014

It probably isn't hard to fix: as I wrote, all it needs is probably a few strategically placed waitForTransform()s in planning_scene_monitor. However, I'm out of office for the next couple of months, so I can't do it myself. Also, we should make sure that we don't build up a long queue of unprocessed messages when lots of waitForTransform()s time out in sequence (for example, if the TF publisher is on holiday for a long time). I guess we really only want to wait if we're not already more than 0.1 - 0.2 seconds behind "now" (and that delay should probably be a parameter). Still sounds like a doable pull request (wink).

@jbohren
Copy link
Contributor

jbohren commented Dec 10, 2014

See #540 for a fix

jbohren added a commit to jhu-lcsr-forks/moveit_ros that referenced this issue Dec 11, 2014
jbohren added a commit to jhu-lcsr-forks/moveit_ros that referenced this issue Dec 15, 2014
jbohren added a commit to jhu-lcsr-forks/moveit_ros that referenced this issue Dec 15, 2014
jbohren added a commit to jhu-lcsr-forks/moveit_ros that referenced this issue Feb 7, 2015
jbohren added a commit to jhu-lcsr-forks/moveit_ros that referenced this issue Feb 14, 2016
corot added a commit to corot/thorp that referenced this issue Feb 15, 2017
@arpit15
Copy link

arpit15 commented Apr 13, 2017

I am using Moveit in Indigo and ubuntu 14.04. I am still getting an error on similar lines.
[ERROR] [1492050356.981666496]: Transform error: Lookup would require extrapolation into the future. Requested time 1492050356.311039301 but the latest data is at time 1492050308.434982148, when looking up transform from frame [head] to frame [camera_rgb_optical_frame] [ERROR] [1492050356.981708685]: Transform cache was not updated. Self-filtering may fail.
I manually checked for the commits mentioned on this thread. All the changes are there in the moveit version I am using.
I am trying to use realsense_camera with the baxter_gripper.launch file. My yaml file is here and my baxter_moveit_sensor_manager.xml is here

@arpit15
Copy link

arpit15 commented Apr 13, 2017

The error was because of constant time difference between my system and baxter. I manually changed the time of my system to match that of baxter to fix the problem.

otamachan pushed a commit to otamachan/moveit_ros that referenced this issue Oct 22, 2017
* robot state display: fix segfault on topic change

loadRobotModel should be run in the update thread.
Calling it in the wrong thread leads to mysterious segfaults over here.

* robot state display: subscribe on enable / unsubscribe on disable

The display didn't connect in onEnable.
It only did after the user changed the topic name.

Also, disconnect onDisable. There's no need to keep listening to the topic
until the display is enabled again.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

5 participants