tf tree becomes randomly disconnected
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.
What's the publish rate of your static publishers?
It's about 10Hz
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.
The publishers are at 10Hz, but what does "
rostopic hz /tf
" give?@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.
@jbohren I'm getting 90-100Hz from tf.
There are actually already multi-static publishers that have been written. I put this one together a few months ago: https://bitbucket.org/jbohren/lcsr_tf_tools and I remember finding another one somewhere else after that. This is also something that should be fixed with tf2.
@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...