# Homogeneous transformation matrix (8)

Kinematics & Universal Numerics
August 3, 2019

## The Rodrigues’s rotation formula.

In this blog we introduce the Rodrigues’s rotation formula. We will show in future that this useful formula connects the 3D rotation matrix to its matrix exponential form

 $\displaystyle{\mathbf{R}}=\exp(\theta{\mathbf{d}}_{\times}),$ (1)

where $({\mathbf{d}},\theta)$ is the axis-angle representation of the rotation matrix ${\mathbf{R}}$. But let’s not get ourselves too overwhelmed by this matrix-exponential concept for now. Please check out below one derivation of this famous formula among many other ways.

Recall in our last blog how we derive the rotation axis ${\mathbf{d}}$ by eliminating $c_{\theta}$: we take the difference ${\mathbf{R}}-{\mathbf{R}}^{T}$, where

 ${\mathbf{R}}={\mathbf{S}}_{0}\begin{bmatrix}c_{\theta}&-s_{\theta}\\ s_{\theta}&c_{\theta}\\ &&1\end{bmatrix}{\mathbf{S}}_{0}^{T},\qquad{\mathbf{d}}={\mathbf{S}}_{0}{% \mathbf{e}}_{1,3}=\begin{bmatrix}s_{\psi}&c_{\phi}c_{\psi}&s_{\phi}c_{\psi}\\ -c_{\psi}&c_{\phi}s_{\psi}&s_{\phi}s_{\psi}\\ &-s_{\phi}&c_{\phi}\end{bmatrix}\begin{bmatrix}0\\ 0\\ 1\end{bmatrix}.$

We may wonder what if we eliminate $s_{\theta}$? So we take the sum

 $\displaystyle{\mathbf{R}}+{\mathbf{R}}^{T}$ $\displaystyle={\mathbf{S}}_{0}\begin{bmatrix}c_{\theta}&-s_{\theta}\\ s_{\theta}&c_{\theta}\\ &&1\end{bmatrix}{\mathbf{S}}_{0}^{T}+{\mathbf{S}}_{0}\begin{bmatrix}c_{-\theta% }&-s_{-\theta}\\ s_{-\theta}&c_{-\theta}\\ &&1\end{bmatrix}{\mathbf{S}}_{0}^{T}$ $\displaystyle=2\cdot{\mathbf{S}}_{0}\begin{bmatrix}c_{\theta}&\\ &c_{\theta}\\ &&1\end{bmatrix}{\mathbf{S}}_{0}^{T}$ $\displaystyle=2{\mathbf{S}}_{0}{\mathbf{S}}_{0}^{T}+2{\mathbf{S}}_{0}\begin{% bmatrix}c_{\theta}-1&\\ &c_{\theta}-1\\ &&0\end{bmatrix}{\mathbf{S}}_{0}^{T}$ $\displaystyle=2{\mathbf{S}}_{0}{\mathbf{S}}_{0}^{T}+2(c_{\theta}-1)\cdot{% \mathbf{S}}_{0}\begin{bmatrix}1&\\ &1\\ &&0\end{bmatrix}{\mathbf{S}}_{0}^{T}$ $\displaystyle=2{\mathbf{I}}+2(c_{\theta}-1)\cdot{\mathbf{S}}_{0}({\mathbf{I}}-% {\mathbf{e}}_{1,3}{\mathbf{e}}_{1,3}^{T}){\mathbf{S}}_{0}^{T}$ $\displaystyle=2{\mathbf{I}}+2(c_{\theta}-1)\cdot\left({\mathbf{I}}-{\mathbf{S}% }_{0}{\mathbf{e}}_{1,3}({\mathbf{S}}_{0}{\mathbf{e}}_{1,3})^{T}\right)$ $\displaystyle=2{\mathbf{I}}+2(1-c_{\theta})({\mathbf{d}}{\mathbf{d}}^{T}-{% \mathbf{I}}).$ (2)

We introduced the operator “$(\cdot)_{\times}$” for a unit vector

 ${\mathbf{d}}=\begin{bmatrix}d_{x}\\ d_{y}\\ d_{z}\end{bmatrix}$

such that

 ${\mathbf{d}}_{\times}=\begin{bmatrix}&-d_{z}&d_{y}\\ d_{z}&&-d_{x}\\ -d_{y}&d_{x}\end{bmatrix}\quad\text{and thus}\quad{\mathbf{d}}\times{\mathbf{v% }}={\mathbf{d}}_{\times}{\mathbf{v}}\text{ for all {\mathbf{v}}.}$

The powers of this skew-symmetric matrix ${\mathbf{d}}_{\times}$ have some useful induction properties as follows:

 $\displaystyle{\mathbf{d}}_{\times}^{2}$ $\displaystyle=\begin{bmatrix}&-d_{z}&d_{y}\\ d_{z}&&-d_{x}\\ -d_{y}&d_{x}\end{bmatrix}\begin{bmatrix}&-d_{z}&d_{y}\\ d_{z}&&-d_{x}\\ -d_{y}&d_{x}\end{bmatrix}$ $\displaystyle=\begin{bmatrix}-d_{y}^{2}-d_{z}^{2}&d_{x}d_{y}&d_{x}d_{z}\\ d_{x}d_{y}&-d_{x}^{2}-d_{z}^{2}&d_{y}d_{z}\\ d_{x}d_{z}&d_{y}d_{z}&-d_{x}^{2}-d_{y}^{2}\end{bmatrix}$ $\displaystyle=-{\mathbf{I}}+{\mathbf{d}}{\mathbf{d}}^{T},$ $\displaystyle{\mathbf{d}}_{\times}^{3}$ $\displaystyle={\mathbf{d}}_{\times}({\mathbf{d}}_{\times}^{2})={\mathbf{d}}_{% \times}(-{\mathbf{I}}+{\mathbf{d}}{\mathbf{d}}^{T})$ $\displaystyle=-{\mathbf{d}}_{\times}+\cancel{({\mathbf{d}}_{\times}{\mathbf{d}% })}\ {\mathbf{0}}_{1\times 3}{\mathbf{d}}^{T}$ $\displaystyle=-{\mathbf{d}}_{\times},$ $\displaystyle{\mathbf{d}}_{\times}^{4}$ $\displaystyle={\mathbf{d}}_{\times}({\mathbf{d}}_{\times}^{3})=-{\mathbf{d}}_{% \times}^{2}={\mathbf{I}}-{\mathbf{d}}{\mathbf{d}}^{T},$ $\displaystyle{\mathbf{d}}_{\times}^{5}$ $\displaystyle={\mathbf{d}}_{\times}({\mathbf{d}}_{\times}^{4})={\mathbf{d}}_{% \times}({\mathbf{I}}-{\mathbf{d}}{\mathbf{d}}^{T})={\mathbf{d}}_{\times},$ $\displaystyle\cdots$ $\displaystyle{\mathbf{d}}_{\times}^{(i+4k)}$ $\displaystyle={\mathbf{d}}_{\times}^{i}\qquad i=1,2,3,4;\ k\in{\mathbb{N}}.$

Hence we can also write (2) as

 $\displaystyle{\mathbf{R}}+{\mathbf{R}}^{T}$ $\displaystyle=2{\mathbf{I}}+2(1-c_{\theta}){\mathbf{d}}_{\times}^{2}.$ (3)

Recall that we derived in the last blog

 $\displaystyle{\mathbf{R}}-{\mathbf{R}}^{T}=2s_{\theta}{\mathbf{d}}_{\times}.$

Combining this with (3), we finally have the Rodrigues’s rotation formula:

 $\displaystyle{\mathbf{R}}={\mathbf{I}}+s_{\theta}{\mathbf{d}}_{\times}+(1-c_{% \theta}){\mathbf{d}}_{\times}^{2}.$ (4)