ROS 2 TF2 Coordinate Transformation
1. Introduction to TF2
Coordinate systems are a fundamental concept in robotics. A complete robotic system often contains many coordinate systems. ROS provides a powerful tool to manage their relationships: TF2.
Reference: tf: The transform library | IEEE
2. Coordinate Systems in Robotics
In mobile robotics: - base_link represents the robot center - laser_link represents the radar position - odom represents odometry - map represents the global reference
These coordinate relationships can be fixed or dynamic. A reliable coordinate management system is essential.

Transformation consists of translation + rotation, represented using a 4×4 matrix. TF2 encapsulates all these calculations.
3. TF Command Line Operations
This section demonstrates turtle-following using TF2.
This demo is recommended to run inside a virtual machine.
3.1 Installing Required Packages
sudo apt install ros-${ROS_DISTRO}-turtle-tf2-py ros-humble-tf2-tools
sudo pip3 install transforms3d
sudo apt install ros-${ROS_DISTRO}-rqt-tf-tree

3.2 Starting the Demo
ros2 launch turtle_tf2_py turtle_tf2_demo.launch.py
ros2 run turtlesim turtle_teleop_key

3.3 Viewing the TF Tree
ros2 run rqt_tf_tree rqt_tf_tree

3.4 Querying Transform Information
ros2 run tf2_ros tf2_echo turtle2 turtle1

3.5 TF Visualization in RViz
rviz2
Set reference frame to world and add TF plugin.

4. Static Coordinate Transformation
A static transform defines fixed relations like sensor to base.
4.1 Publishing Static Transform
ros2 run tf2_ros static_transform_publisher 0 0 3 0 0 3.14 A B

4.2 Monitoring Static TF
ros2 run tf2_ros tf2_echo A B
4.3 Visualizing Static TF
rviz2

5. Case Introduction
You will: - Implement turtle-follow logic - Implement dynamic TF broadcaster - Implement coordinate monitoring - Apply PID for motion conversion
Advanced: - Time-based TF transformation
6. Turtle Follow Principle

Vectors represent direction and distance between turtles. TF continuously calculates transformations. Velocity is derived from these vectors.
7. Create TF Package
ros2 pkg create pkg_tf --build-type ament_python --dependencies rclpy --node-name turtle_tf_broadcaster
This generates a TF broadcaster node template.
Maintained by HemiHex
This documentation is maintained by HemiHex for ROS 2 TF2 workflows.