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.
Requires
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.
Path | Type | Description | Default | R |
/plugins/static-transforms/update-interval | float | Interval in seconds in which to update/assert the transforms. | 1.0 | |
/plugins/static-transforms/transforms/<tf>/frame | string | Parent frame ID | * | |
/plugins/static-transforms/transforms/<tf>/child_frame | string | Child frame ID, this is the ID of the frame you actually define | * | |
/plugins/static-transforms/transforms/<tf>/trans_x | float | Translation of child frame in X direction of parent frame (meters) | ||
/plugins/static-transforms/transforms/<tf>/trans_y | float | Translation of child frame in Y direction of parent frame (meters) | ||
/plugins/static-transforms/transforms/<tf>/trans_z | float | Translation of child frame in Z direction of parent frame (meters) | ||
/plugins/static-transforms/transforms/<tf>/rot_x | float | Rotation Quaternion X value | ||
/plugins/static-transforms/transforms/<tf>/rot_y | float | Rotation Quaternion Y value | ||
/plugins/static-transforms/transforms/<tf>/rot_z | float | Rotation Quaternion Z value | ||
/plugins/static-transforms/transforms/<tf>/rot_w | float | Rotation Quaternion W value | ||
/plugins/static-transforms/transforms/<tf>/rot_yaw | float | Rotation Euler angle around Z axis or parent frame | ||
/plugins/static-transforms/transforms/<tf>/rot_pitch | float | Rotation Euler angle around Y axis or parent frame | ||
/plugins/static-transforms/transforms/<tf>/rot_roll | float | Rotation 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.
Provides
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.