This representation evolves from Euler's rotation theorem, which implies that any rotation or sequence of rotations of a rigid body in a three-dimensional space is equivalent to a pure rotation about a single fixed axis.
The axis angle representation is equivalent to the more concise rotation vector representation. In this case, both the axis and the angle are represented by a non-normalized vector codirectional with the axis whose magnitude is the rotation angle.
The axis angle representation is convenient when dealing with rigid body dynamics. It is useful to both characterize rotations, and also for converting between different representations of rigid body motion, such as homogeneous transformations and twists.
Say you are standing on the ground and you pick the direction of gravity to be the negative z direction. Then if you turn to your left, you will travel radians (or 90 degrees) about the z axis. In axis angle representation, this would be
This can be represented as a rotation vector with a magnitude of pointing in the z direction.
There are many ways to represent a rotation. It is useful to understand how different representation relate to one another, and how to convert between them.
The exponential map is used as a transformation from axis angle representation of rotations to rotation matrices.
Essentially, by using a Taylor expansion you can derive a closed form relationship between these two representations. Given an axis, having length 1, and an angle, , an equivalent rotation matrix is given by the following:
where R is a 3x3 rotation matrix and the hat operator gives the antisymmetric matrix equivalent of the cross product.
To retrieve the axis angle representation of a rotation matrix calculate the angle of rotation:
To transform from axis angle coordinates to quaternions use the following expression:
Given a unit quaternion, the axis angle coordinates can be extracted using the following: