ROBOTICS 101Concept explainer

Axis-Angle and Rodrigues' Formula

Euler proved that every 3D rotation is a single turn about one axis. So any orientation can be written as a unit axis and an angle. Rodrigues' formula turns that pair into a rotation matrix.

Drag the 3D view to look from another angle.

Rodrigues' formula

For a unit axis \(\hat{\mathbf{k}}\) and an angle \(\theta\), a vector \(\mathbf{v}\) rotates to

$$\mathbf{v}' = \mathbf{v}\cos\theta + (\hat{\mathbf{k}} \times \mathbf{v})\sin\theta + \hat{\mathbf{k}}\,(\hat{\mathbf{k}}\cdot\mathbf{v})(1 - \cos\theta)$$

As a matrix, with \(K\) the cross-product matrix of \(\hat{\mathbf{k}}\):

$$R = I + \sin\theta\, K + (1 - \cos\theta)\, K^2, \qquad K = \begin{bmatrix} 0 & -k_z & k_y \\ k_z & 0 & -k_x \\ -k_y & k_x & 0 \end{bmatrix}$$

What to notice

The vector moves on a cone around the axis. The part of the vector along the axis never changes, and only the part perpendicular to it spins. Rotating by \(\theta\) about \(\hat{\mathbf{k}}\) is the same as rotating by \(-\theta\) about \(-\hat{\mathbf{k}}\), so each rotation has two axis-angle descriptions.

The product \(\theta\,\hat{\mathbf{k}}\) is called a rotation vector. It is what a gyroscope effectively measures over a short time, and it is the bridge to the Lie algebra of rotations.