Rotation vectors are a more compact way to describe rotation than the Rotation Matrix.

  • rotation matrices have 9 quantities, but a 3D rotation only has 3 DOFs. Similarly, the Transform Matrix expresses a 6DOF transformation with 16 quantities.
  • The rotation matrix and transformation matrix are very constrained by the fact that they must be an orthogonal matrix with determinant 1, making optimization/solution more difficult.

A rotation vector expresses rotation with only 3 quantities; its direction parallel with the axis of rotation, and the length is equal to the angle of rotation.

Consider a rotation represented by rotation matrix . If described by a rotation vector, assuming that the rotation axis is a unit-length vector and the angle is , then the vector can also describe this rotation. The conversion is given by the formula:

(Recall that the symbol denotes a skew-symmetric matrix).

The conversion from rotation matrix to a rotation vector can also be found. The angle can be found by taking the trace of both sides:

For the axis , since the rotation axis does not change after the rotation, we have:

Therefore, the axis is the eigenvector corresponding to the matrix ‘s eigenvalue . Solving this equation and normalizing it gives the axis of rotation.