ROS 2 REP-103 & REP-105 Compliant
Interactive ROS 2 TF2 Transform Tree & 3D Quaternions Studio
Inspect, simulate, and compute full 4×4 homogeneous transformation chains across dynamic robot coordinate frames. Perform real-time bi-directional conversions between Euler angles, Quaternions, Axis-Angle, and 3×3 Rotation Matrices with interactive 3D Canvas visualizer and SLERP interpolation.
🌳 Coordinate Frame DAG Visualizer
Click any frame to inspect, edit translation/rotation, or compute arbitrary frame-to-frame transform chains.
Active Selected: base_link
Parent: base_footprint
Total Frames in Tree: 8
🎲 3D Orientation & Gimbal Visualizer
Real-time perspective projection of active frame orientation with Euler gimbal rings. Drag mouse to orbit.
⚠️ GIMBAL LOCK DANGER (|Pitch| > 88°)
Convention: Tait-Bryan intrinsic Z-Y-X (Yaw → Pitch → Roll)
📐 Local Transformation Matrix T [4×4]
Local translation & orientation of
child relative to parent.Translation Vector t = [tx, ty, tz]ᵀ (meters):
Homogeneous Matrix T = [[R, t], [0, 1]]:
Cyan: Rotation R | Orange: Translation t
| 1.0000 | 0.0000 | 0.0000 | 0.0000 |
| 0.0000 | 1.0000 | 0.0000 | 0.0000 |
| 0.0000 | 0.0000 | 1.0000 | 0.0000 |
| 0.0000 | 0.0000 | 0.0000 | 1.0000 |
🔗 Chain Transformation Calculator
Compute the exact relative transform between any two arbitrary frames across the tree.
Symbolic Matrix Multiplication Chain:
T_map_laser = T_map_odom · T_odom_base · T_base_laser
Resulting Transform T_A_B:
Euclidean Dist: 0.00 m
| 1.0000 | 0.0000 | 0.0000 | 0.0000 |
| 0.0000 | 1.0000 | 0.0000 | 0.0000 |
| 0.0000 | 0.0000 | 1.0000 | 0.0000 |
| 0.0000 | 0.0000 | 0.0000 | 1.0000 |
Point Transform in Frame A → Projected into Frame B:
PB = [1.00, 0.00, 0.00]
🌀 Quaternion SLERP (Spherical Linear Interpolation) Studio
Smooth constant angular velocity interpolation along the 4D hypersphere (S³) geodesics without gimbal lock.
Start Orientation (q₁):
w:
x:
y:
z:
Target Orientation (q₂):
w:
x:
y:
z:
Interpolation Parameter t ∈ [0.0, 1.0]:
t = 0.50
Intermediate q(t) = [0.9239, 0.0000, 0.0000, 0.3827]
Angle to Target: 90.0°
💻 ROS 2 CLI & Code Generator
Production-grade ROS 2 static transform publisher commands, Python TransformBroadcaster, and C++ nodes.
Execute in terminal to broadcast this static transform in ROS 2 Humble / Iron / Jazzy:
ros2 run tf2_ros static_transform_publisher --x 0.22 --y 0 --z 0.15 --yaw 0 --pitch 0 --roll 0 --frame-id base_link --child-frame-id laser_frame
Or via Unit Quaternion format:
ros2 run tf2_ros static_transform_publisher --x 0.22 --y 0 --z 0.15 --qx 0 --qy 0 --qz 0 --qw 1 --frame-id base_link --child-frame-id laser_frame