tf2, static transforms and latching [closed]

asked 2018-07-12 07:55:25 -0500

Germanunkol gravatar image


I have a node which handles multiple objects and their transformations, some of which will frequently change and some others which may change infrequently (but don't have to).

The StaticTransformBroadcaster only latches the last static transform sent through /tf_static which means that most of my transforms won't arrive on new nodes (see also this ticket) when they are created. The workaround people have been proposing is to instead send a whole vector of all transforms. However, this means that every time one transform changes I would have to resend the entire vector, which I also don't want to do.

Are there good alternatives?

  • I could manually send all transforms to new nodes, but for this I would need a callback when a new subscriber to /tf or /tf_static would pop up, however, since I use TransformBroadcasters, I never manually generate a subscriber and thus have no callback. Also, this is the kind of thing which I thought tf should handle for me.
  • I could write rarely-changing Transforms into a List on the ParameterServer and broadcast the more frequent transforms regularly?
  • I could manually generate a publisher for each transform under different topics and remap them all to /tf_static? Is this even possible? Sounds like a lot of overhead...

I'd be greatful for a clean way to handle lots of infrequently changing transforms.

edit retag flag offensive reopen merge delete

Closed for the following reason question is not relevant or outdated by tfoote
close date 2019-06-12 03:14:42.333553


Without more information it's hard to suggest anything. You don't want to do the default workaround but don't explain why.Could you please make this more concrete. What is "lots"? What is "infrequent"? What are your resource limitations that you're trying to avoid? How many of each type do you have?

tfoote gravatar image tfoote  ( 2018-07-12 18:49:05 -0500 )edit