Rodrigues' rotation formula
Rotation about an arbitrary axis is represented by a rotation matrix
, where $\mathbf{n} = [n_1, n_2, n_3]$ is an arbitrary axis of rotation and $\theta$ is a rotation angle
This representation is called
Rodrigues' rotation formula.
Proof
Let $C$ be a coodinate system whose origin is $O$, $P$ be an arbitray position,
$Q$ be the position obtained by rotating $P$
around an arbitrary axis $\mathbf{n}$ by a rotation angle $\theta$,
and $O'$ be the projected position of $P$ onto $\mathbf{n}$. (See figure below.)
Let $\mathbf{e}'_{x}$ be a unit vector parallel to $\overrightarrow{O'P}$,
and $\mathbf{e}'_{y}$ be a vector orthogonal to $\mathbf{e}'_{x}$ and $\mathbf{n}$.
$\{ \mathbf{e}'_{x}, \mathbf{e}'_{y}, \mathbf{n} \}$ is an orthonormal basis of the three dimensinonal space.
Since $\theta$ is the rotation angle between $ \overrightarrow{O'Q}$ and $\mathbf{e}'_{x}$ ,
$\overrightarrow{O'Q} $ can be represended as
The length of $\overrightarrow{O'Q}$ is equal to that of $\overrightarrow{O'P}$,
i.e.,
,
because $\overrightarrow{O'Q}$ is obtained by rotaion of $\overrightarrow{O'P}$ around $\mathbf{n}$.
Therefore, we have
By substituing $(1)$ into this equation, we have
As
,
$\overrightarrow{O'Q} $ can be written as
As stated above,
$O'$ is a projection of $P$ onto $\mathbf{n}$, i.e.,
Therefore we have
By substituing $(2)$ into this equation, we have
By substituing $(1)$ into this equation, we have
Substituing $(4)$ into this equation, we have
Here
because $\mathbf{n}$ is parallel to $\overrightarrow{OO'} $.
Therefore we have
As
, we have
Substituing $(4)$ into this equation,
we have
If we rewrite $\overrightarrow{OP}$ as $\mathbf{r}$ and $\overrightarrow{OQ}$ as $\mathbf{r}'$,
this equation is expressed as
This expression is called Rodrigues' rotation formula.
We will derive its matrix representation below.
We express the inner product in the second term of $(5)$ as
and $i$-th element of the cross product in the third term as
, where $\epsilon_{ijk}$ is Levi-Civita symboll defined as
The $i$-th element of the expression $(4)$
can be written as
Here,
using Kronecker delta
, $ \mathbf{r}_{i}$ can be written as
Therefore we have
By defining a matrix $R$ as
,
we see that
$ \mathbf{r}'$ is obtained by operating $R$ on vector $ \mathbf{r}$, i.e.,
Specifically, each element of R is
, and representing in the form of matrix,
This is the matrix version of Rodrigues' rotation formula,
which is used to represent a rotated position by a position before rotation.
Example: Rotaion around the third axis
If the rotation axis is the thrid axis, i.e.,
the rotation matrix, by using the above formula, is