Rigid body motion in 2D and 3D
You will unify rotation representations and see why homogeneous coordinates are the standard bookkeeping trick in robotics, graphics, and vision calibration.
Figure
Planar rigid motion: rotate θ, then translate t
Learning objectives
- Parameterize planar rotation with one angle; describe the 2D rotation matrix.
- Name three 3D rotation parameterizations and one trade-off for each.
- Build a 4×4 homogeneous transform that combines rotation and translation.
Prerequisites
- Coordinate frames lesson.
- Comfort multiplying 3×3 matrices.
Step 1 — Planar rigid motion (SE(2))
A rigid body in the plane has three degrees of freedom: translation and rotation .
Rotation:
Transform a point in body frame to world:
Checkpoint: How many degrees of freedom in SE(2)?
Step 2 — SO(3): the space of 3D rotations
The set of valid 3D rotation matrices is SO(3) (“special orthogonal”).
- Matrix storage: 9 numbers with 6 constraints — redundant but easy to compose.
- Euler angles: 3 numbers but suffer gimbal lock in some conventions and can be ambiguous.
- Axis–angle / rotation vector: compact, useful for optimization and IMU integration.
- Unit quaternions: 4 numbers with 1 constraint, smooth interpolation (SLERP), no gimbal lock.
Figure
Four ways to store a 3D rotation
Exercise: When would you avoid Euler angles in estimation code?
Step 3 — Homogeneous transforms in SE(3)
Pack rotation and translation into one matrix:
( is the zero row under , then a in the bottom-right.)
A homogeneous point in frame maps to frame by multiplying by the transform from to (read direction per your software’s convention — always verify against a known pose).
Checkpoint: Why is the bottom row (0, 0, 0, 1) useful rather than storing R and t separately?
Step 4 — Inverting rigid transforms
The inverse of a rigid transform is:
Intuition: “undo translation in the rotated coordinates, then undo rotation.”
Exercise: Derive in words: why not just ?
Step 5 — Velocities preview (twists)
Rigid motion over time leads to angular velocity and linear velocity . In advanced courses, these are packaged as twists and mapped through Jacobians — the kinematics lessons next.
Check your understanding
- Why are unit quaternions preferred over Euler angles for integrating IMU orientation?
- What does imply physically?
- Compute about the axis and verify .
Lab-style stretch goal (optional)
Implement axis–angle → rotation matrix (Rodrigues) and test on random vectors: