Rodrigues' rotation formula


In the theory of three-dimensional rotation, Rodrigues' rotation formula, named after Olinde Rodrigues, is an efficient algorithm for rotating a vector in space, given an axis and angle of rotation. By extension, this can be used to transform all three basis vectors to compute a rotation matrix in Rotation group SO|, the group of all rotation matrices, from an axis–angle representation. In other words, the Rodrigues' formula provides an algorithm to compute the exponential map from, the Lie algebra of, to without actually computing the full matrix exponential.

Statement

If is a vector in and is a unit vector describing an axis of rotation about which rotates by an angle according to the right hand rule, the Rodrigues formula for the rotated vector is
An alternative statement is to write the axis vector as a cross product of any two nonzero vectors and which define the plane of rotation, and the sense of the angle is measured away from and towards. Letting denote the angle between these vectors, the two angles and are not necessarily equal, but they are measured in the same sense. Then the unit axis vector can be written
This form may be more useful when two vectors defining a plane are involved. An example in physics is the Thomas precession which includes the rotation given by Rodrigues' formula, in terms of two non-collinear boost velocities, and the axis of rotation is perpendicular to their plane.

Derivation

Let be a unit vector defining a rotation axis, and let be any vector to rotate about by angle .
Using the dot and cross products, the vector can be decomposed into components parallel and perpendicular to the axis,
where the component parallel to is
called the vector projection of on, and the component perpendicular to is
called the vector rejection of from.
The vector can be viewed as a copy of rotated anticlockwise by 90° about, so their magnitudes are equal but directions are perpendicular. Likewise the vector a copy of rotated anticlockwise through about, so that and are equal in magnitude but in opposite directions. Expanding the vector triple product establishes the connection between the parallel and perpendicular components, for reference the formula is given any three vectors,,.
The component parallel to the axis will not change magnitude nor direction under the rotation,
only the perpendicular component will change direction but retain its magnitude, according to
and since and are parallel, their cross product is zero, so that
and it follows
This rotation is correct since the vectors and have the same length, and is rotated anticlockwise through about. An appropriate scaling of and using the trigonometric functions sine and cosine gives the rotated perpendicular component. The form of the rotated component is similar to the radial vector in 2D planar polar coordinates in the Cartesian basis
where, are unit vectors in their indicated directions.
Now the full rotated vector is
By substituting the definitions of and in the equation results in

Matrix notation

Representing and as column matrices, the cross product can be expressed as a matrix product
Letting denote the "cross-product matrix" for the unit vector,
the matrix equation is, symbolically,
for any vector..
Iterating the cross product on the right is equivalent to multiplying by the cross product matrix on the left, in particular
Moreover, since is a unit vector, has unit 2-norm. The previous rotation formula in matrix language is therefore
Note the coefficient of the leading term is now 1, in this notation: see the Lie-Group discussion below.
Factorizing the allows the compact expression
where
is the rotation matrix through an angle counterclockwise about the axis, and the identity matrix. This matrix is an element of the rotation group of, and is an element of the Lie algebra generating that Lie group.
In terms of the matrix exponential,
To see that the last identity holds, one notes that
characteristic of a one-parameter subgroup, i.e. exponential, and that the formulas match for infinitesimal.
For an alternative derivation based on this exponential relationship, see exponential map from to. For the inverse mapping, see log map from to.
Note that the Hodge dual of the rotation is just which allows the extraction of both the axis of rotation and the sine of the angle of the rotation from the rotation itself, with the usual ambiguity:
where. The above simple expression results from the fact that the Hodge dual of and are zero, and.