tf aggregator to avoid many-to-many /tf connections?
I'm guessing lower latency is the reason for not pushing all tf messages through an aggregator node by default (though there could be a hybrid system where some nodes that need lower latency still subscribe to /tf
, but others like rviz would get aggregated output). I'm curious if anyone has considered or made a /tf_agg
that functions like /rosout_agg
?
I'm not sure I completely understand what you're describing. Afaik,
rosout_agg
is a topic where the collectiverosout
output of all nodes (for that master) is republished.tf
by default (as a topic) is bus-like, so already carries all messages.Having written that: something like tf2_web_republisher?
Additionally, if a node does not need / want to subscribe to
tf
(via aListener
fi), you could use atf2_ros::BufferServer
, which exposes an Action server interface. Or one of the alternative implementations, such as magazino/tf_service and peci1/tf2_server.The last one there specifically mentions:
Those look interesting, I'll have to to see if any actually publish to a new tf topic (it would be a trivial add except in case of wanting to throttle the aggregate output down- then there is a question of how to filter higher frequency data, just use most recent transform for the update period?). That last quote is exactly what I have in mind.
I think topic aggregation could be made message type generic, that node already exists- just a standard topic tools relay pointed at tf could be all I want- but still curious if anyone else has tried this out.