Skip to main content

FrameTransform

A transform between two reference frames in 3D space. The transform defines the position and orientation of a child frame within a parent frame. Translation moves the origin of the child frame relative to the parent origin. The rotation changes the orientiation of the child frame around its origin.

Examples:

  • With translation (x=1, y=0, z=0) and identity rotation (x=0, y=0, z=0, w=1), a point at (x=0, y=0, z=0) in the child frame maps to (x=1, y=0, z=0) in the parent frame.

  • With translation (x=1, y=2, z=0) and a 90-degree rotation around the z-axis (x=0, y=0, z=0.707, w=0.707), a point at (x=1, y=0, z=0) in the child frame maps to (x=-1, y=3, z=0) in the parent frame.

Panel support

FrameTransform is used in the 3D and Image panels.

Parent schema

FrameTransform appears in the FrameTransforms message schema.

Schema

fieldtypedescription
timestampTimestampTimestamp of transform
parent_frame_idstringName of the parent frame
child_frame_idstringName of the child frame
translationVector3Translation component of the transform, representing the position of the child frame's origin in the parent frame.
rotationQuaternionRotation component of the transform, representing the orientation of the child frame in the parent frame

Reference implementations

Foxglove schemas are framework-agnostic, and can be implemented using any supported message encoding:

encodingschema
ROS 1foxglove_msgs/FrameTransform
ROS 2foxglove_msgs/msg/FrameTransform
JSONfoxglove.FrameTransform
Protobuffoxglove.FrameTransform
FlatBuffersfoxglove.FrameTransform
OMG IDLfoxglove::FrameTransform

You must use the schema names specified above for Foxglove to recognize the schema.