@b tf is a library for keeping track of coordinate frames. There are both C++ and Python bindings.
@section usage Common Usage
For most ROS use cases, the basic tf::Transformer library is not used directly.
There are two helper classes to provide sending and recieving of ROS transform
messages. tf::TransformBroadcaster and tf::TransformListener.
@subsection listener TransformListener
The tf::TransformListener class inherits from tf::Transformer to provide all the functionality of the
basic library. In addition, it provides methods to transform data ROS messages directly and
it automatically listens for transforms published on ROS.
@subsection message_filter MessageFilter
The tf::MessageFilter is the recommended method for receiving almost any sensor data from ROS.
Data in ROS can be published with respect to any known frame.
The tf::MessageFilter class makes it easy to use this data
by providing callbacks only when it is possible to transform it into your desired
The tf::MessageFilter class can subscribe to any ROS datatype that has a ROS Header.
@subsection broadcaster TransformBroadcaster
The tf::TransformBroadcaster class is the complement to the tf::TransformListener class. The broadcaster class provides a
simple API for broadcasting coordinate frame transforms to other ROS nodes.
@subsection send_transform send_transform
The send_transform command is the easiest way to report transforms for fixed offsets.
It is a simple command-line utility that repeatedly publishes the fixed-offset transform to ROS.
@subsection datatypes Data Types used in tf
- Quaternion typedef of btQuaternion
- Vector3 typedef of btVector3
- Point typedef of btVector3
- Transform typedef of btTransform
- Pose typedef of btTransform
-Stamped version of all of the above inherits from the data type and also has:
- ros::Time stamp_
- std::string frame_id_
- std::string child_frame_id_ (only used for Stamped<Transform> )
- There are analogous ROS messages in std_msgs to the Stamped data types.
- Time represented by ros::Time and ros::Duration in ros/time.h in roscpp