rerun-io / cpp-example-ros2-bridge

An example implementation of a ROS 2 to Rerun bridge
Apache License 2.0
54 stars 5 forks source link

Improve tf handling and support multiple disconnected tf trees #2

Open roym899 opened 4 months ago

roym899 commented 4 months ago

Currently only one fully-connected tf tree is supported.

The tree parameter should be renamed to "trees" and optionally support multiple disconnected trees. These should be logged to tf/root1, tf/root2, etc. and marked as disconnected in Rerun.

The root for a given frame could be automatically resolved and the data logged to an entity path such as tf/root1/flattened-topic-name (this might require some mangling to avoid possible name clashes, e.g., odom might be a topic and an entity path following a root). There should be an option to disable the fixed frame behavior in which case the data would be logged into the tree as tf/root1/.../frame_of_data/flattened-topic-name.

Data without a frame, or a frame missing from the predefined tf tree should be logged separately to flattened-topic-name (or possibly to tf/frame_of_data/flattened-topic-name) and also be marked as disconnected.