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

tf tree becomes randomly disconnected

asked 2012-10-12 05:14:49 -0500

I've noticed when running a bunch of nodes that random transforms in my tf tree seem to disappear. I have two instances of openni.launch running, along with a bunch of other fairly CPU intensive stuff running. What happens is that once I have everything running, one or more of the transforms coming from a static_transform_publisher disappears. If I kill some of the nodes, those transforms will come back. It seems clear that this is related to CPU usage (I only see it when all cores of my i7 2600K are at 90%+ utilization).

I'm of course trying to get my CPU usage down, but is there anything else I should try? Would running the static_transform_publishers with higher scheduler priority make a difference? They don't seem to be consuming much CPU as it is.

edit retag flag offensive close merge delete


What's the publish rate of your static publishers?

Lorenz gravatar image Lorenz  ( 2012-10-12 05:32:34 -0500 )edit

It's about 10Hz

Dan Lazewatsky gravatar image Dan Lazewatsky  ( 2012-10-12 05:45:55 -0500 )edit

Interesting... Do you think the trees get disconnected in the listener or because the transforms are not sent? Maybe the problem is that you might have quite a lot of sockets, one between each client and each sender. I would try to send all transforms with one publisher, maybe it improves things.

Lorenz gravatar image Lorenz  ( 2012-10-12 05:51:08 -0500 )edit

The publishers are at 10Hz, but what does "rostopic hz /tf" give?

jbohren gravatar image jbohren  ( 2012-10-12 06:04:18 -0500 )edit

@Lorenz, interesting idea. It's hard to tell exactly what's going on without putting debug statements in the publishers. It wouldn't be too hard automate that with a tf publisher supernode that looks for static_transform_publishers, broadcasts their transforms and kills the individual publishers.

Dan Lazewatsky gravatar image Dan Lazewatsky  ( 2012-10-12 06:34:59 -0500 )edit

@jbohren I'm getting 90-100Hz from tf.

Dan Lazewatsky gravatar image Dan Lazewatsky  ( 2012-10-12 06:35:32 -0500 )edit

There are actually already multi-static publishers that have been written. I put this one together a few months ago: and I remember finding another one somewhere else after that. This is also something that should be fixed with tf2.

jbohren gravatar image jbohren  ( 2012-10-12 06:37:15 -0500 )edit

@Dan Lazewatsky I think @jbohren implemented something more awesome a few months ago, a static transform publisher that can publish more than one transform. I hope he can provide more infos...

Lorenz gravatar image Lorenz  ( 2012-10-12 06:37:36 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2012-10-15 08:40:14 -0500

@jbohren your multistatic publisher seems to be doing the trick. I'm also using your version of kinect_frames.launch (in my own fork of openni.launch so I can use it with 1.8.3).

edit flag offensive delete link more

Question Tools


Asked: 2012-10-12 05:14:49 -0500

Seen: 401 times

Last updated: Oct 12 '12