Data Types
TF can be used either with the underlying Bullet transform types or with the transform types available in the geometry_msgs package. Since tf deals with coordinate frames, every datatype that tf uses needs to be stamped, i.e. extra information is added to the datatype to represent the name of the frame in which it lives and a timestamp. The timestamp typically represents the time at which the data was created/ last valid.
tf can directly operate on the following messages or Bullet datatypes:
Pose - tf can transform poses by using the tf::transformPose function. The transformPose function can operate on:
geometry_msgs/PoseStamped - A stamped representation of a pose expressed in a particular frame
tf::Stamped<tf::Pose> - A templated stamped representation of the underlying Bullet datatype btTransform.
Position - tf can transform positions (or points) using the tf::transformPoint function. The transformPoint function can operate on:
geometry_msgs/PointStamped - Represents a stamped point in 3D.
tf::Stamped<tf::Point> - A stamped version of the underlying Bullet datatype btVector3.
Rotation - tf can transform a rotation using the tf::transformQuaternion function. The transformQuaternion function can operate on:
geometry_msgs/QuaternionStamped - A stamped representation of a quaternion.
tf::Stamped<tf::Quaternion> - A stamped version of the underlying Bullet datatype btQuaternion.
Vector - tf can transform a free vector using the tf::transformVector function. The tranformVector function can operate on:
geometry_msgs/VectorStamped - A stamped representation of a free vector.
tf::Stamped<tf::Vector3> - A stamped version of the underlying Bullet datatype btVector.
PointCloud - tf can transform point clouds directly using the tf::transformPointCloud function. This function operates on:
sensor_msgs/PointCloud - A representation of a 3D point cloud.