References#

Lecture 11

ENPM605 – L11: Coordinate Frames, TF2, and Mobile Robot Control

Covers pose representation (position as a 3D vector, orientation via Euler angles and quaternions, gimbal lock, axis-angle conversion, quaternion composition and multiplication order), mobile robot control (Gazebo Harmonic simulation, RViz2 visualization, differential drive kinematics, cmd_vel and TwistStamped, odometry, proportional controllers for position and heading), coordinate frames (REP 105 standard frames, transforms, chaining), and TF2 (the transform tree, static and dynamic broadcasters, transform listeners, CLI tools, KDL frame composition).

Orientation and Quaternions
Robotics, Vision and Control (Corke)

Textbook: Pose and Orientation

Comprehensive coverage of spatial math for robotics: rotation matrices, Euler angles, quaternions, and homogeneous transforms.

https://link.springer.com/book/10.1007/978-3-031-07262-8
Modern Robotics (Lynch & Park)

Textbook: Kinematics and Dynamics

Open-access textbook covering rigid body motion, forward and inverse kinematics, and velocity kinematics.

http://hades.mech.northwestern.edu/index.php/Modern_Robotics
TF2 and Coordinate Frames
About TF2

ROS 2 Jazzy: TF2 Concepts

Conceptual overview of the transform library: frames, transforms, buffers, and the tree structure.

https://docs.ros.org/en/jazzy/Concepts/Intermediate/About-Tf2.html
Introduction to TF2

ROS 2 Jazzy: TF2 Tutorial

Hands-on introduction to TF2 with turtlesim, covering broadcasters, listeners, and frame inspection tools.

https://docs.ros.org/en/jazzy/Tutorials/Intermediate/Tf2/Introduction-To-Tf2.html
Writing a Static Broadcaster (Python)

ROS 2 Jazzy: Static TF

Tutorial for publishing a fixed transform between two frames using StaticTransformBroadcaster.

https://docs.ros.org/en/jazzy/Tutorials/Intermediate/Tf2/Writing-A-Tf2-Static-Broadcaster-Py.html
Writing a TF2 Broadcaster (Python)

ROS 2 Jazzy: Dynamic TF

Tutorial for publishing a time-varying transform using TransformBroadcaster.

https://docs.ros.org/en/jazzy/Tutorials/Intermediate/Tf2/Writing-A-Tf2-Broadcaster-Py.html
Writing a TF2 Listener (Python)

ROS 2 Jazzy: TF Listener

Tutorial for looking up transforms between frames using Buffer and TransformListener.

https://docs.ros.org/en/jazzy/Tutorials/Intermediate/Tf2/Writing-A-Tf2-Listener-Py.html
REP 105: Coordinate Frames

ROS Enhancement Proposal

Defines the standard coordinate frames for mobile platforms: world, map, odom, base_link, and base_footprint.

https://www.ros.org/reps/rep-0105.html
Mobile Robot Control
ROSbot ROS Repository

Husarion ROSbot ROS 2 Driver

The ROS 2 driver for both ROSbot 3 and ROSbot XL, including Gazebo simulation, URDF models, and hardware interfaces.

https://github.com/husarion/rosbot_ros
Gazebo Harmonic

Gazebo Sim Documentation

Official documentation for Gazebo Harmonic, the simulator paired with ROS 2 Jazzy.

https://gazebosim.org/docs/harmonic