Last modified 10 years ago Last modified on 04/11/11 12:06:18

Static Transforms Plugin

This plugin publishes static transforms in certain intervals. Static transforms are transformations from one coordinate frame to another which do not change at run-time, for instance a fixed offset from the robot's base to a laser sensor.

The transforms are given as a translation and a rotation. The former is given as 3D vector, the latter either as Quaternion or in Euler angles. If translation or rotation is not given it is assumed to be zero in all dimensions.


Config Values

Any number of static transforms can be configured. A transform defines the translation of a child coordinate frame within a parent coordinate frame. Translation is given as a 3D vector from the parent's to the child's frame origin. Rotation is given as either a Quaternion or in Euler angles with respect to the parent frame's axes, therefore determining the orientation of the child frame within the parent frame.

/plugins/static-transforms/update-intervalfloatInterval in seconds in which to update/assert the transforms.1.0
/plugins/static-transforms/transforms/<tf>/framestringParent frame ID*
/plugins/static-transforms/transforms/<tf>/child_framestringChild frame ID, this is the ID of the frame you actually define*
/plugins/static-transforms/transforms/<tf>/trans_xfloatTranslation of child frame in X direction of parent frame (meters)
/plugins/static-transforms/transforms/<tf>/trans_yfloatTranslation of child frame in Y direction of parent frame (meters)
/plugins/static-transforms/transforms/<tf>/trans_zfloatTranslation of child frame in Z direction of parent frame (meters)
/plugins/static-transforms/transforms/<tf>/rot_xfloatRotation Quaternion X value
/plugins/static-transforms/transforms/<tf>/rot_yfloatRotation Quaternion Y value
/plugins/static-transforms/transforms/<tf>/rot_zfloatRotation Quaternion Z value
/plugins/static-transforms/transforms/<tf>/rot_wfloatRotation Quaternion W value
/plugins/static-transforms/transforms/<tf>/rot_yawfloatRotation Euler angle around Z axis or parent frame
/plugins/static-transforms/transforms/<tf>/rot_pitchfloatRotation Euler angle around Y axis or parent frame
/plugins/static-transforms/transforms/<tf>/rot_rollfloatRotation Euler angle around X axis or parent frame

Replace "<tf>" with a name with is common and unique per transform.

Note that translation or rotation can be omitted and will be assumed to be zero then. Rotations can be given as either Quaternion or Euler angles, the former will be used if both are given and the second silently ignored. If you give a translation or rotation you need to fully specify it, i.e. it is not allowed to omit only the Y-part of the translation vector or the Yaw from the rotation.


BlackBoard Interfaces

  • TransformInterface::TF static: All static transforms are posted once per update interval to this interface.

Compilation and Runtime Requirements

  • Bullet Linear Math library (bullet-devel on Fedora)

Usage Instructions

Configure your static transforms, for example in the default configuration of your robot. Afterwards start Fawkes and load the plugin, transforms are immediately published. If you have enabled the ros and ros-tf? plugins, the transforms can be visualized using rviz.

If you do not see your transforms published using ROS tf or tf_monitor, or the transform listener cannot perform transformations, first check that the times of all involved systems are synchronized, for example using NTP.