ROBOTICS 101Concept explainer

Homogeneous Transforms and Transform Chains

A homogeneous transform packs a rotation and a translation into one matrix, so moving between frames becomes matrix multiplication. Chain several and you can carry a point from a camera on an arm all the way to the map.

The homogeneous transform

In 2D, a frame at position \((x, y)\) with heading \(\theta\) relative to another frame is written as one 3 by 3 matrix. A point gets an extra 1 so it can be multiplied:

$$T = \begin{bmatrix} \cos\theta & -\sin\theta & x \\ \sin\theta & \cos\theta & y \\ 0 & 0 & 1 \end{bmatrix} \qquad \begin{bmatrix} p_x \\ p_y \\ 1 \end{bmatrix}$$

Chaining

Writing \(T_{AB}\) for the pose of frame \(B\) in frame \(A\), a point seen by the camera reaches the world by multiplying down the chain:

$$\mathbf{p}_{\text{world}} = T_{\text{world,base}}\;T_{\text{base,arm}}\;T_{\text{arm,cam}}\;\mathbf{p}_{\text{cam}}$$

What to notice

Change the base heading and everything downstream swings with it, while the point's camera coordinates never change. The order of multiplication matters: each matrix is applied in the frame of the one before it. In 3D the same idea uses 4 by 4 matrices, and ROS 2 keeps a whole tree of them, called TF.