Three-dimensional rotation operator

From Wikipedia, the free encyclopedia
Jump to: navigation, search
For other uses, see Rotation operator.

This article derives the main properties of rotations in 3-dimensional space.

The three Euler rotations are one way to bring a rigid body to any desired orientation by sequentially making rotations about axis' fixed relative to the object. However, this can also be achieved with one single rotation (Euler's rotation theorem). Using the concepts of linear algebra it is shown how this single rotation can be performed.

Mathematical formulation[edit]

Let

\hat e_1\ ,\ \hat e_2\ ,\ \hat e_3

be a coordinate system fixed in the body that through a change in orientation is brought to the new directions

\mathbf{A}\hat e_1\ ,\ \mathbf{A}\hat e_2\ ,\ \mathbf{A}\hat e_3.

Any vector

\bar x\ =x_1\hat e_1+x_2\hat e_2+x_3\hat e_3

rotating with the body is then brought to the new direction

\mathbf{A}\bar x\ =x_1\mathbf{A}\hat e_1+x_2\mathbf{A}\hat e_2+x_3\mathbf{A}\hat e_3

i.e. this is a linear operator

The matrix of this operator relative to the coordinate system

\hat e_1\ ,\ \hat e_2\ ,\ \hat e_3

is


\begin{bmatrix}
  A_{11} & A_{12} & A_{13} \\
  A_{21} & A_{22} & A_{23} \\
  A_{31} & A_{32} & A_{33} 
\end{bmatrix} =
\begin{bmatrix}
  \langle\hat e_1 | \mathbf{A}\hat e_1 \rangle & \langle\hat e_1 | \mathbf{A}\hat e_2 \rangle & \langle\hat e_1 | \mathbf{A}\hat e_3 \rangle \\
  \langle\hat e_2 | \mathbf{A}\hat e_1 \rangle & \langle\hat e_2 | \mathbf{A}\hat e_2 \rangle & \langle\hat e_2 | \mathbf{A}\hat e_3 \rangle \\
  \langle\hat e_3 | \mathbf{A}\hat e_1 \rangle & \langle\hat e_3 | \mathbf{A}\hat e_2 \rangle & \langle\hat e_3 | \mathbf{A}\hat e_3 \rangle 
\end{bmatrix}

As

 \sum_{k=1}^3 A_{ki}A_{kj}= \langle \mathbf{A}\hat e_i | \mathbf{A}\hat e_j \rangle
= \begin{cases}
0 & i\neq j, \\                                                                                1 & i = j,
\end{cases}

or equivalently in matrix notation


\begin{bmatrix}
  A_{11} & A_{12} & A_{13} \\
  A_{21} & A_{22} & A_{23} \\
  A_{31} & A_{32} & A_{33} 
\end{bmatrix}^T
\begin{bmatrix}
  A_{11} & A_{12} & A_{13} \\
  A_{21} & A_{22} & A_{23} \\
  A_{31} & A_{32} & A_{33} 
\end{bmatrix} =
\begin{bmatrix}
  1 & 0 & 0 \\
  0 & 1 & 0 \\
  0 & 0 & 1 
\end{bmatrix}

the matrix is orthogonal and as a "right hand" base vector system is re-orientated into another "right hand" system the determinant of this matrix has the value 1.

Rotation around an axis[edit]

Let

\hat e_1\ ,\ \hat e_2\ ,\ \hat e_3

be an orthogonal positively oriented base vector system in R^3.

The linear operator

"Rotation with the angle \theta around the axis defined by \hat e_3"

has the matrix representation


\begin{bmatrix}
  Y_1  \\
  Y_2  \\
  Y_3
\end{bmatrix}
=
\begin{bmatrix}
  \cos\theta & -\sin\theta & 0 \\
  \sin\theta &  \cos\theta & 0 \\
           0 &           0 & 1
\end{bmatrix}
\begin{bmatrix}
  X_1  \\
  X_2  \\
  X_3
\end{bmatrix}

relative to this basevector system.

This then means that a vector


\bar x=\begin{bmatrix}
  \hat e_1 & \hat e_2 & \hat e_3
\end{bmatrix}
\begin{bmatrix}
  X_1  \\
  X_2  \\
  X_3
\end{bmatrix}

is rotated to the vector


\bar y=\begin{bmatrix}
  \hat e_1 & \hat e_2 & \hat e_3
\end{bmatrix}
\begin{bmatrix}
  Y_1  \\
  Y_2  \\
  Y_3
\end{bmatrix}

by the linear operator.

The determinant of this matrix is


\det
\begin{bmatrix}
  \cos\theta  & -\sin\theta & 0\\
  \sin\theta  &  \cos\theta & 0\\
           0  &           0 & 1
\end{bmatrix}=1

and the characteristic polynomial is


\begin{align}
\det\begin{bmatrix}
  \cos\theta -\lambda  & -\sin\theta          & 0        \\
  \sin\theta           &  \cos\theta -\lambda & 0        \\
                     0 &                    0 & 1-\lambda
\end{bmatrix}
&=\big({(\cos\theta -\lambda)}^2 + {\sin\theta}^2 \big)(1-\lambda) \\
&=-\lambda^3+(2\ \cos\theta\ +\ 1)\ \lambda^2 - (2\ \cos\theta\ +\ 1)\ \lambda +1 \\
\end{align}

The matrix is symmetric if and only if \sin\theta=0, i.e. for \theta=0 and for \theta=\pi.

The case \theta=0 is the trivial case of an identity operator.

For the case \theta=\pi the characteristic polynomial is


-(\lambda-1){(\lambda +1)}^2

i.e. the rotation operator has the eigenvalues


\lambda=1 \quad \lambda=-1

The eigenspace corresponding to \lambda=1 is all vectors on the rotation axis, i.e. all vectors


\bar x  =\alpha \ \hat e_3 \quad -\infty <\alpha < \infty

The eigenspace corresponding to \lambda=-1 consists of all vectors orthogonal to the rotation axis, i.e. all vectors


\bar x  =\alpha \ \hat e_1 + \beta \ \hat e_2 \quad -\infty <\alpha < \infty \quad -\infty <\beta < \infty

For all other values of \theta the matrix is un-symmetric and as {\sin\theta}^2 > 0 there is only the eigenvalue \lambda=1 with the one-dimensional eigenspace of the vectors on the rotation axis:


\bar x  =\alpha \ \hat e_3 \quad -\infty <\alpha < \infty

The rotation matrix by angle \theta around a general axis of rotation 
\mathbf{k} = \left[\begin{array}{ccc}
k_1  \\
k_2 \\
k_3
\end{array}\right]
is given by Rodrigues' rotation formula.


  R = I \cos\theta + [\mathbf{k}]_\times \sin\theta + (1 - \cos\theta) \mathbf{k} \mathbf{k}^\mathsf{T}
,

where I is the identity matrix and [\mathbf{k}]_\times is the dual 2-form of \mathbf{k} or cross product matrix,

 [\mathbf{k}]_\times  = 
\left[\begin{array}{ccc}
0 & -k_3 & k_2 \\
k_3 & 0 & -k_1 \\
-k_2 & k_1 & 0
\end{array}\right]
.

Note that [\mathbf{k}]_\times satisfies [\mathbf{k}]_\times \mathbf{v} = \mathbf{k}\times\mathbf{v} for all \mathbf{v}.

The general case[edit]

The operator

"Rotation with the angle \theta around a specified axis"

discussed above is an orthogonal mapping and its matrix relative to any base vector system is therefore an orthogonal matrix . Furthermore its determinant has the value 1. A non-trivial fact is the opposite, i.e. that for any orthogonal linear mapping in R^3 having determinant = 1 there exist base vectors

\hat e_1\ ,\ \hat e_2\ ,\ \hat e_3

such that the matrix takes the "canonical form"


\begin{bmatrix}
\cos\theta & -\sin\theta & 0 \\
\sin\theta &  \cos\theta & 0 \\
           0 &           0 & 1\end{bmatrix}

for some value of \theta.

In fact, if a linear operator has the orthogonal matrix


\begin{bmatrix}
  A_{11} & A_{12} & A_{13} \\
  A_{21} & A_{22} & A_{23} \\
  A_{31} & A_{32} & A_{33} 
\end{bmatrix}

relative some base vector system

\hat f_1\ ,\ \hat f_2\ ,\ \hat f_3

and this matrix is symmetric, the "Symmetric operator theorem" valid in R^n (any dimension) applies saying

that it has n orthogonal eigenvectors. This means for the 3-dimensional case that there exists a coordinate system

\hat e_1\ ,\ \hat e_2\ ,\ \hat e_3

such that the matrix takes the form


\begin{bmatrix}
  B_{11} &     0 &     0 \\
      0  & B_{22} &    0 \\
      0  &     0 & B_{33} 
\end{bmatrix}

As it is an orthogonal matrix these diagonal elements B_{ii} are either 1 or −1. As the determinant is 1 these elements are either all 1 or one of the elements is 1 and the other two are −1.

In the first case it is the trivial identity operator corresponding to \theta=0.

In the second case it has the form


\begin{bmatrix}
     -1  &     0 &    0 \\
      0  &    -1 &    0 \\
      0  &     0 &    1 
\end{bmatrix}

if the basevectors are numbered such that the one with eigenvalue 1 has index 3. This matrix is then of the desired form for \theta=\pi.

If the matrix is un-symmetric, the vector


\bar E = \alpha_1\ \hat f_1 + \alpha_2\ \hat f_2 + \alpha_3\ \hat f_3

where

\alpha_1=\frac{A_{32}-A_{23} }{2}
\alpha_2=\frac{A_{13}-A_{31}}{2}
\alpha_3=\frac{A_{21}-A_{12}}{2}

is non-zero. This vector is an eigenvector with eigenvalue


\lambda=1

Setting


\hat e_3=\frac{\bar E}{|\bar E|}

and selecting any two orthogonal unit vectors in the plane orthogonal to \hat e_3:

\hat e_1\ ,\ \hat e_2

such that

\hat e_1\ ,\ \hat e_2,\ \hat e_3

form a positively oriented triple, the operator takes the desired form with

\cos \theta=\frac{A_{11}+A_{22}+A_{33}-1}{2}
\sin \theta=|\bar{E}|

The expressions above are in fact valid also for the case of a symmetric rotation operator corresponding to a rotation with \theta = 0 or \theta = \pi. But the difference is that for \theta = \pi the vector


\bar E = \alpha_1\ \hat f_1 + \alpha_2\ \hat f_2 + \alpha_3\ \hat f_3

is zero and of no use for finding the eigenspace of eigenvalue 1, i.e. the rotation axis.

Defining E_4 as \cos \theta the matrix for the rotation operator is


\frac{1-E_4}{{E_1}^2+{E_2}^2+{E_3}^2}
\begin{bmatrix}
E_1 E_1 & E_1 E_2 & E_1 E_3 \\
E_2 E_1 & E_2 E_2 & E_2 E_3 \\
E_3 E_1 & E_3 E_2 & E_3 E_3 
\end{bmatrix}
+
\begin{bmatrix}
E_4 & -E_3 &  E_2 \\
 E_3 &  E_4 & -E_1 \\
-E_2 &  E_1 &  E_4 
\end{bmatrix}

provided that


{E_1}^2+{E_2}^2+{E_3}^2 > 0

i.e. except for the cases \theta=0 (the identity operator) and \theta=\pi

Quaternions[edit]

Quaternions are defined similar to E_1\ ,\ E_2\ ,\ E_3\ ,\ E_4 with the difference that the half angle \frac{\theta}{2} is used instead of the full angle \theta.

This means that the first 3 components q_1\ ,\ q_2\ ,\ q_3\ are components of a vector defined from


q_1\ \hat{f_1}\ +\ q_2\ \hat{f_2}\ +\ \ q_3\ \hat{f_1}\ =\ \sin \frac{\theta}{2}\quad \hat{e_3}=\frac{\sin \frac{\theta}{2}}{\sin\theta}\quad \bar E

and that the fourth component is the scalar


q_4=\cos \frac{\theta}{2}

As the angle \theta defined from the canonical form is in the interval

0 \le \theta \le \pi

one would normally have that q_4 \ge 0. But a "dual" representation of a rotation with quaternions is used, i.e.

q_1\ ,\ q_2\ ,\ q_3\ ,\ q_4\

and

-q_1\ ,\ -q_2\ ,\ -q_3\ ,\ -q_4\

are two alternative representations of one and the same rotation.

The entities E_k are defined from the quaternions by

 E_1=2 q_4 q_1
 E_2=2 q_4 q_2
 E_3=2 q_4 q_3
 E_4={q_4}^2 -({q_1}^2+{q_2}^2+{q_3}^2)

Using quaternions the matrix of the rotation operator is

\begin{bmatrix}
2({q_1}^2+{q_4}^2)-1         &2({q_1}{q_2}-{q_3}{q_4})       &2({q_1}{q_3}+{q_2}{q_4})  \\
2({q_1}{q_2}+{q_3}{q_4})     &2({q_2}^2+{q_4}^2)-1           &2({q_2}{q_3}-{q_1}{q_4})  \\
2({q_1}{q_3}-{q_2}{q_4})     &2({q_2}{q_3}+{q_1}{q_4})       &2({q_3}^2+{q_4}^2)-1     \\
\end{bmatrix}

Numerical example[edit]

Consider the reorientation corresponding to the Euler angles 
\alpha=10^\circ \quad \beta=20^\circ \quad \gamma=30^\circ \quad 
relative a given base vector system

\hat f_1\ ,\ \hat f_2,\ \hat f_3

Corresponding matrix relative to this base vector system is (see Euler angles#Matrix orientation)


\begin{bmatrix}
  0.771281 & -0.633718 &  0.059391 \\
  0.613092 &  0.714610 & -0.336824 \\
  0.171010 &  0.296198 &  0.939693 
\end{bmatrix}

and the quaternion is


(0.171010,\ -0.030154,\ 0.336824,\ 0.925417)

The canonical form of this operator


\begin{bmatrix}
  \cos\theta  & -\sin\theta & 0\\
  \sin\theta  &  \cos\theta & 0\\
           0  &           0 & 1
\end{bmatrix}

with \theta=44.537^\circ is obtained with

\hat e_3=(0.451272,-0.079571,0.888832)

The quaternion relative to this new system is then


(0,\ 0,\ 0.378951,\ 0.925417) = (0,\ 0,\ \sin\frac{\theta}{2},\ \cos\frac{\theta}{2})

Instead of making the three Euler rotations

10^\circ,20^\circ,30^\circ

the same orientation can be reached with one single rotation of size 44.537^\circ around \hat e_3

References[edit]

  • Shilov, Georgi (1961), An Introduction to the Theory of Linear Spaces, Prentice-Hall, Library of Congress 61-13845 .