Hi all,
Not so long ago, I have overheard that some people had performance related problems with ROS, and that tf was responsible for a significant part of it. One of the main issues was that even for a one-time transform lookup, a full TfListener was implemented, resulting in substantial memory, cpu and network overhead.
A quick fix for that was to have a lookup_transform service. Because I prefer asynchronous processes, I coded a small tool that leveraged actionlib to achieve the same goal, only to recently discover that this was already implemented into tf2 in a nearly identical way.
In my frenzy though, I went further and implemented a tf streamer, with C++ and Python client interfaces. The basic idea is that for non-critical parts of the code, a single topic containing one or more transforms sent at a regular pace (~10Hz) would be enough. The stream server utilises an actionlib interface for the control API, and regular topics for the streaming of transforms.
Because it is quite small, I was thinking about maybe submitting it for integration into tf2. Before that, I'd like to ask around if something else already does that, or if it is worth submitting at all.
The code has not been published yet (company rules...), but I should be able to convince my managers to open-source it if some of you are interested.
Any thoughts?
Thanks,
Paul