Transform Tree
Full TF tree visualization with coordinate frames and axes.
Rewire subscribes to /tf and /tf_static topics and builds the full transform tree
in the Rerun viewer.
What gets visualized
Transform3D— each transform in the tree as a 3D transformationCoordinateFrame— frame names with axes visualization
Both static and dynamic transforms are handled:
/tf_static— logged once as static data (persists across the timeline)/tf— logged per frame, updating in real time
The /tf_static topic uses transient-local QoS — the publisher sends each frame once and expects
late joiners to receive the cached sample. When several sources publish on /tf_static, raise the
history Rewire keeps per latched topic with --latched-depth <N> (or latched_history_depth in the
config file) so none of their frames are
missed. Rewire also replays these frames after a relay reconnect and whenever a viewer
joins the relay, so restarted and late-joining viewers still get a complete tree even after the
relay's history cap evicted the original messages.
Coordinate frames
Each frame in the TF tree appears as a named coordinate frame in Rerun's 3D viewport. Frames are hierarchical — child frames are positioned relative to their parent.
Combined with URDF
When both TF and URDF are available, Rewire:
- Loads the robot model from
/robot_description - Attaches it to the TF tree using frame IDs from the URDF joints
- The robot model moves in real time as TF transforms update
This gives you a fully articulated robot visualization with no extra setup.
Multi-robot TF
When multiple robots publish on namespaced /robot_description topics (e.g.,
/robot1/robot_description, /robot2/robot_description), Rewire prefixes all TF frame names
from each URDF with the topic namespace. This prevents frame name collisions — for example,
both robots can define a base_link frame without conflict (/robot1/base_link and
/robot2/base_link).
See URDF Loading — Multi-robot support for the prefix derivation rules.
