An introduction to rotations

We start with a discussion of a rotation for which the axis of rotation is fixed, and this example is used to introduce several of the key concepts. The example also serves to illuminate many of the generalizations that are required for characterizing more elaborate rotations.  To this end, our exposition then turns to proper-orthogonal tensors, and many of their interesting features are shown there. One of the intriguing aspects of rotation tensors is the vast range of representations. These include the Euler angle representation (dating to 1760), quaternionic representations dating to Gauss (1777-1855), Hamilton (1805-1865), and Rodrigues (1795-1851) in a controversial and contested series of discoveries, Cayley’s representation, and many others. The set of representations we discuss is far from exhaustive and we refer the reader to Shuster’s authoritative review [1] for several others.

Throughout this online resource, we employ a tensorial (dyadic) notation that is widely used in the continuum mechanics community. Its use for describing rotations can be traced to Gibbs (1839-1903) [2, 3]. This notation has many advantages, including transparency in the derivation of angular velocities and clarity in specifying the sets of basis vectors that a given rotation can be considered to transform. We strongly encourage those readers who are unfamiliar with tensors to review the background section on linear algebra where the tensor product \otimes of two or more vectors is defined and other tensor operations and properties are discussed.


Various representations of a rotation tensor

Dating to Leonhard Euler (1707-1783), we know that rotation tensors and proper-orthogonal tensors are synonymous, and we focus on his representation of a rotation in a form that Gibbs introduced more than a century after Euler’s seminal works. This form is then used to establish related parameterizations including the Euler angle parameterization, the Rodrigues representation, the Cayley representation, and the matrix exponential representation. Specifically, we discuss the following equivalent representations for a rotation tensor {\bf R} associated with a rotation about an axis {\bf r} through a counterclockwise angle of rotation \phi:

(1)   \begin{eqnarray*} {\bf R} \!\!\!\!\! &=& \!\!\!\!\! \sum_{i \, \, = \, 1}^3 \sum_{k \, \, = \, 1}^3 R_{ik}{\bf p}_i\otimes{\bf p}_k = \sum_{k \, \, = \, 1}^3 {\bf t}_k\otimes{\bf p}_k = \sum_{i \, \, = \, 1}^3 \sum_{k \, \, = \, 1}^3 R_{ik}{\bf t}_i\otimes{\bf t}_k \\[0.10in] &=& \!\!\!\!\! {\bf L}(\phi, \, {\bf r}) = \cos(\phi)({\bf I} - {\bf r}\otimes{\bf r}) - \sin(\phi)( \bepsilon {\bf r}) + {\bf r}\otimes{\bf r} \\[0.10in] &=& \!\!\!\!\! {\bf L}\left(\gamma^3, \, {\bf g}_3\right){\bf L}\left(\gamma^2, \, {\bf g}_2\right){\bf L}\left(\gamma^1, \, {\bf g}_1\right) \\[0.10in] &=& \!\!\!\!\! {\bf R}\left(q_0, \, {\bf q}\right) = \left(q^2_0 - {\bf q}\cdot{\bf q}\right){\bf I} + 2{\bf q}\otimes{\bf q} - 2q_0\left(\bepsilon{\bf q}\right) \\[0.10in] &=& \!\!\!\!\! {\bf R}_\textrm{Rodrigues}\left(\blambda\right) = \frac{1}{1 + \blambda\cdot\blambda} \left( (1 - \blambda\cdot\blambda){\bf I} + 2\blambda\otimes\blambda - 2(\bepsilon\blambda)\right) \hspace{1in} \scalebox{0.001}{\textrm{\textcolor{white}{.}}} \\[0.10in] &=& \!\!\!\!\! {\bf R}_\textrm{Cayley}\left(\bLambda\right) = \left({\bf I} - \bLambda\right)^{-1}\left({\bf I} + \bLambda\right) \\[0.10in] &=& \!\!\!\!\! \mbox{exp}\left( \bPhi\right) , \end{eqnarray*}

where \left\{{\bf p}_i\right\} denotes a fixed basis, \left\{{\bf t}_i\right\} is a basis that corotates with a rigid body, the axis of rotation is such that {\bf r} is a unit vector,

(2)   \begin{eqnarray*} && q_0 = \cos\left( \frac{\phi}{2} \right), \\ \\ \\ && {\bf q} = \sin\left( \frac{\phi}{2} \right){\bf r}, \end{eqnarray*}

and the Rodrigues vector \blambda, the skew-symmetric Rodrigues tensor \bLambda, and the skew-symmetric tensor \bPhi are

(3)   \begin{eqnarray*} && \blambda = \mbox{tan}\left(\frac{\phi}{2}\right){\bf r}, \\ \\[0.10in] && \bLambda = \mbox{skewt}\left(\blambda\right), \\ \\ && \bPhi = \mbox{skewt}\left(\phi {\bf r}\right). \end{eqnarray*}

It is possible in principle, but often tedious in practice, to transform between a particular representation of a rotation tensor in (1) to another.

A matrix representation of a rotation

Suppose a rotation tensor {\bf R} transforms a vector {\bf X} = \sum_{i \, \, = \, 1}^3 X_i {\bf p}_i into {\bf x} = \sum_{i \, \, = \, 1}^3 x_i {\bf p}_i, i.e., {\bf x} = {\bf R}{\bf X}. This transformation can be expressed using a matrix representation:

(4)   \begin{equation*} \underbrace{\left[ \begin{array}{c} x_1 \\ x_2 \\ x_3 \end{array} \right]}_{\mathsf{x}} = \underbrace{\left[ \begin{array}{c c c} R_{11} & R_{12} & R_{13} \\ R_{21} & R_{22} & R_{23} \\ R_{31} & R_{32} & R_{33} \end{array} \right]}_{\mathsf{R}} \underbrace{\left[ \begin{array}{c} X_1 \\ X_2 \\ X_3 \end{array} \right]}_{\mathsf{X}} . \end{equation*}

The matrix \mathsf{R} has a determinant equal to one and its inverse is its transpose: \mbox{det}\left(\mathsf{R}\right) = 1 and \mathsf{R}\mathsf{R}^T = \mathsf{I}, respectively. The identity (4) is known as the active (or alibi) description of a rotation [1, page 494]. In contrast, consider a vector {\bf y} = \sum_{k \, \, = \, 1}^3 y_k {\bf t}_k = \sum_{k \, \, = \, 1}^3 Y_k {\bf p}_k. As {\bf t}_i = {\bf R}{\bf p}_i, we find that

(5)   \begin{equation*} \underbrace{\left[ \begin{array}{c} y_1 \\ y_2 \\ y_3 \end{array} \right]}_{\mathsf{y}} = \underbrace{\left[ \begin{array}{c c c} R_{11} & R_{12} & R_{13} \\ R_{21} & R_{22} & R_{23} \\ R_{31} & R_{32} & R_{33} \end{array} \right]^T}_{\mathsf{R}^T} \underbrace{\left[ \begin{array}{c} Y_1 \\ Y_2 \\ Y_3 \end{array}\right]}_{\mathsf{Y}} . \end{equation*}

This type of identity arises when one set of measurements for a vector is made with respect to the corotational basis \left\{{\bf t}_i\right\} that corresponds to a frame attached to a rigid body and compared to the same vector measured in terms of the fixed basis \left\{{\bf p}_i\right\}. The identity (5) is associated with the passive (or alias) description of a rotation [1, page 494]. The presence of the transpose in (5) in contrast to (4) can often be the source of considerable confusion, particularly when expressions from two different sources are being compared.

Angular velocity vectors

The matrix form is convenient for algebraic manipulations, but one must exercise caution when using matrix representations to compute angular velocities. To this end, our developments of the angular velocity vectors \bomega_{\bf R} and \bomega_{0_{\bf R}} associated with a rotation feature the tensor representation of {\bf R}. Several well-known results are examined:

(6)   \begin{eqnarray*} \bomega_{\bf R} \!\!\!\!\! &=& \!\!\!\!\! \dot{\phi}{\bf r} + \sin(\phi)\dot{\bf r} + (1 - \cos(\phi)){\bf r}\times\dot{\bf r} \\[0.075in] &=& \!\!\!\!\! \dot{\gamma}^1{\bf g}_1 + \dot{\gamma}^2{\bf g}_2 + \dot{\gamma}^3{\bf g}_3 \\[0.075in] &=& \!\!\!\!\! 2 \left(q_0\dot{\bf q} - \dot{q}_0{\bf q} + {\bf q}\times\dot{\bf q} \right), \\ \\[0.10in] \bomega_{0_{\bf R}} \!\!\!\!\! &=& \!\!\!\!\! \dot{\phi}{\bf r} + \sin(\phi)\dot{\bf r} - (1 - \cos(\phi)){\bf r}\times\dot{\bf r} \\[0.075in] &=& \!\!\!\!\! 2 \left(q_0\dot{\bf q} - \dot{q}_0{\bf q} - {\bf q}\times\dot{\bf q} \right). \end{eqnarray*}


  1. Shuster, M. D., A survey of attitude representations, Journal of the Astronautical Sciences 41(4) 439–517 (1993).
  2. Gibbs, J. W., Elements of Vector Analysis, privately printed, New Haven, CT, pp. 1-36 (1881) and pp. 37-83 (1884). Reprinted in The Collected Works of J. Willard Gibbs, Vol. 2, Part 2, Yale University Press, New Haven (1948).
  3. Wilson, E. B., Vector Analysis: A Text-Book for the Use of Students of Mathematics and Physics. Founded upon the Lectures of J. Willard Gibbs, 7th printing, Yale University Press, New Haven, CT (1931).