You're reading the documentation for an older, but still supported, version of ROS 2. For information on the latest version, please have a look at Iron.

tf2

Many of the tf2 tutorials are available for both C++ and Python. The tutorials are streamlined to complete either the C++ track or the Python track. If you want to learn both C++ and Python, you should go through the tutorials once for C++ and once for Python.

Workspace setup

If you have not yet created a workspace in which to complete the tutorials, follow this tutorial.

Learning tf2

  1. Introduction to tf2.

    This tutorial will give you a good idea of what tf2 can do for you. It shows off some of the tf2 power in a multi-robot example using turtlesim. This also introduces using tf2_echo, view_frames, and rviz.

  2. Writing a static broadcaster (Python) (C++).

    This tutorial teaches you how to broadcast static coordinate frames to tf2.

  3. Writing a broadcaster (Python) (C++).

    This tutorial teaches you how to broadcast the state of a robot to tf2.

  4. Writing a listener (Python) (C++).

    This tutorial teaches you how to use tf2 to get access to frame transformations.

  5. Adding a frame (Python) (C++).

    This tutorial teaches you how to add an extra fixed frame to tf2.

  6. Using time (Python) (C++).

    This tutorial teaches you to use the timeout in lookup_transform function to wait for a transform to be available on the tf2 tree.

  7. Traveling in time (Python) (C++).

    This tutorial teaches you about advanced time travel features of tf2.

Debugging tf2

  1. Quaternion fundamentals.

    This tutorial teaches you basics of quaternion usage in ROS 2.

  2. Debugging tf2 problems.

    This tutorial teaches you about a systematic approach for debugging tf2 related problems.

Using sensor messages with tf2

  1. Using stamped datatypes with tf2_ros::MessageFilter.

    This tutorial teaches you how to use tf2_ros::MessageFilter to process stamped datatypes.