mail  mail@stemandmusic.in
    
call  +91-9818088802
Donate

Derivation of Rodrigues Rotation Formula and 3D Rotation Matrix

  1. The Rodrigues Rotation Formula is given as

    \(\vec{P_R}=(1-\cos \phi)(\vec{P}\cdot\hat{n})\hat{n} + \vec{P} \cos \phi + (\hat{n} \times \vec{P})\sin \phi\)   ...(1)

    where

    \(\vec{P} =\) Position Vector of a given Point

    \(\phi =\) Angle by which the Point given by Position Vector \(\vec{P}\) is Rotated

    \(\vec{P_R} =\) Position Vector of the Point after Rotation

    \(\hat{n} =\) Unit Vector representing the Arbitary Axis along which the Rotation takes place

    The following gives the Derivation of Rodrigues Rotation Formula

    Let's suppose the Position Vector \(\vec{P}\) of the given Point \(P\) is Perpendicular to the Axis of Rotation \(\hat{n}\) as given in Figure 1 below

    When Point \(P\) is Rotated by an Angle \(\phi\) its new Position Vector \(\vec{P_R}\) can be given as follows

    \(\vec{P_R}\)= Projection of \(\vec{P_R}\) on \(\vec{P}\) + Rejection of \(\vec{P_R}\) from \(\vec{P}\) \(= \vec{{P_R}_{||}} + \vec{{P_R}_{\perp}}\)   ...(2)

    Now, Projection of \(\vec{P_R}\) on \(\vec{P}\), \(\vec{{P_R}_{||}}\) is given as

    \(\vec{{P_R}_{||}} = {\Large \frac{\vec{P_R} \cdot \vec{P}}{|\vec{P}|}} \hat{P}\)   ...(3)

    But \(\vec{P_R} \cdot \vec{P} = |\vec{P_R}| |\vec{P}| \cos \phi \Rightarrow {\Large \frac{\vec{P_R} \cdot \vec{P}}{|\vec{P}|}} = |\vec{P_R}| \cos \phi \)   ...(4)

    Using equations (3) and (4) given above we get

    \(\vec{{P_R}_{||}}=|\vec{P_R}| \cos \phi \hat{P} = \hat{P}|\vec{P_R}| \cos \phi \)   ...(5)

    And since \(|\vec{P_R}|=|\vec{P}|\)

    \(\therefore \vec{{P_R}_{||}}=\hat{P} |\vec{P}| \cos \phi = \vec{P} \cos \phi\)   ...(6)

    Now, Rejection of \(\vec{P_R}\) from \(\vec{P}\), \(\vec{{P_R}_{\perp}}\) is given as

    \(\vec{{P_R}_{\perp}}=\vec{P_R} - {\Large \frac{\vec{P_R} \cdot \vec{P}}{|\vec{P}|}} \hat{P} = \vec{P_R} - {\Large\frac{\vec{P_R} \cdot \vec{P}}{{|\vec{P}|}^2}} \vec{P}\)

    \(\Rightarrow \vec{{P_R}_{\perp}}={\Large \frac{\vec{P_R} (\vec{P} \cdot \vec{P}) - \vec{P} (\vec{P_R} \cdot \vec{P}) }{{|\vec{P}|}^2}} = {\Large \frac{\vec{P} \times (\vec{P_R} \times \vec{P}) }{{|\vec{P}|}^2}}= {\Large \frac{(\vec{P} \times \vec{P_R}) \times \vec{P} }{{|\vec{P}|}^2}}\)

    \(\Rightarrow \vec{{P_R}_{\perp}}= {\Large \frac{(\vec{P} \times \vec{P_R})}{{|\vec{P}|}^2}} \times \vec{P} \)   ...(7)

    But \(\vec{P} \times \vec{P_R} = |\vec{P}| |\vec{P_R}| \sin \phi \hat{n} \)

    And since \(|\vec{P_R}|=|\vec{P}|\)

    \(\therefore \vec{P} \times \vec{P_R} = {|\vec{P}|}^2 \hat{n} \sin \phi \Rightarrow \hat{n} \sin \phi = {\Large \frac{(\vec{P} \times \vec{P_R})}{{|\vec{P}|}^2}}\)   ...(8)

    Using equations (7) and (8) given above we get

    \(\vec{{P_R}_{\perp}}= \hat{n} \sin \phi \times \vec{P}= (\hat{n} \times \vec{P})\sin \phi\)   ...(9)

    Now, using equations (2), (6) and (9) given above we get

    \(\vec{P_R}= \vec{{P_R}_{||}} + \vec{{P_R}_{\perp}} = \vec{P} \cos \phi + (\hat{n} \times \vec{P})\sin \phi\)   ...(10)

    The equation (10) above gives the Position Vector \(\vec{P_R}\) of the Point after Rotation when the Position Vector \(\vec{P}\) of the Point is Perpendicular to Axis of Rotation \(\hat{n}\)

    Now, Let's suppose the Position Vector \(\vec{P}\) of the given Point \(P\) is Not Perpendicular to the Axis of Rotation \(\hat{n}\) as given in Figure 2 below

    When Point \(P\) is Rotated by an Angle \(\phi\) its new Position Vector is given by \(\vec{P_R}\). Both Vectors \(\vec{P}\) and \(\vec{P_R}\) can be given in terms of their Projection on and Rejection from the Axis of Rotation \(\hat{n}\) as follows

    \(\vec{P}=\)Projection of \(\vec{P}\) on \(\hat{n}\) + Rejection of \(\vec{P}\) from \(\hat{n}\) \(= \vec{P_{||}} + \vec{P_{\perp}} \)   ...(11)

    \(\vec{P_R}=\)Projection of \(\vec{P_R}\) on \(\hat{n}\) + Rejection of \(\vec{P_R}\) from \(\hat{n}\) \(= \vec{{P_R}_{||}} + \vec{{P_R}_{\perp}}\)   ...(12)

    But since \(\vec{P_{||}}=\vec{{P_R}_{||}}\), using equations (11) and (12) above we get

    \(\vec{P_R}=\vec{P_{||}} + \vec{{P_R}_{\perp}}\)   ...(13)

    Now since \(\vec{P_{\perp}}\) is Perpendicular to \(\hat{n}\), \(\vec{{P_R}_{\perp}}\) can be calculated in terms of \(\vec{P_{\perp}}\) using equation (10) above as

    \(\vec{{P_R}_{\perp}}=\vec{P_{\perp}} \cos \phi + (\hat{n} \times \vec{P_{\perp}})\sin \phi\)   ...(14)

    Using equations (13) and (14) given above we get

    \(\vec{P_R}=\vec{P_{||}} + \vec{P_{\perp}} \cos \phi + (\hat{n} \times \vec{P_{\perp}})\sin \phi\)   ...(15)

    But \(\vec{P_{\perp}}= \vec{P} - \vec{P_{||}}\)    (\(\because \vec{P}= \vec{P_{||}} + \vec{P_{\perp}} \) )

    \(\therefore \vec{P_R}=\vec{P_{||}} + (\vec{P} - \vec{P_{||}}) \cos \phi + (\hat{n} \times (\vec{P} - \vec{P_{||}}) )\sin \phi =\vec{P_{||}} - \vec{P_{||}} \cos \phi + \vec{P} \cos \phi + (\hat{n} \times \vec{P} - \hat{n} \times\vec{P_{||}}) \sin \phi\)

    Now since \(\hat{n} \times \vec{P_{||}}=0\)

    \(\therefore \vec{P_R}= (1 - \cos \phi) \vec{P_{||}} + \vec{P} \cos \phi + (\hat{n} \times \vec{P}) \sin \phi = (1 - \cos \phi) (\vec{P} \cdot \hat{n})\hat{n} + \vec{P} \cos \phi + (\hat{n} \times \vec{P}) \sin \phi\)   ...(16)

    The equation (16) above gives the Position Vector \(\vec{P_R}\) after Rotation by Angle \(\phi\) along Axis given by \(\hat{n}\) for any Point having Initial Position Vector \(\vec{P}\), which is the Rodrigues Rotation Formula.
  2. The Rodrigues Rotation Formula can be used to Derive the 3D Rotation Matrix as follows

    The Rodrigues Rotation Formula given in equation (16) above can also be written in form of Matrices as follows

    \(\vec{P_R}=((1 - \cos \phi) \hat{n}\hat{n}^T + I \cos \phi + [\hat{n}]_x \sin\phi) \vec{P}\)   ...(17)

    where,

    \(\hat{n} = \begin{bmatrix}X \\ Y \\ Z\end{bmatrix}\)    \(I =\) Identity Matrix =\(\begin{bmatrix}1 & 0 & 0\\0 & 1 & 0\\0 & 0 & 1\end{bmatrix}\)

    \([\hat{n}]_x =\) Cross Product Matrix Representation of \(\hat{n}\) =\(\begin{bmatrix}0 & -Z & Y\\Z & 0 & -X\\-Y & X & 0\end{bmatrix}\)

    \(\vec{P}=\begin{bmatrix}P_x \\ P_y \\ P_z\end{bmatrix}\)    \(\vec{P_R}=\begin{bmatrix}{P_R}_x \\ {P_R}_y \\ {P_R}_z\end{bmatrix}\)

    Therefore, equation (17) can be written as

    \(\begin{bmatrix}{P_R}_x \\ {P_R}_y \\ {P_R}_z\end{bmatrix} =[(1 - \cos \phi) \begin{bmatrix}X \\ Y \\ Z\end{bmatrix}\begin{bmatrix}X & Y & Z\end{bmatrix} + \cos\phi \begin{bmatrix}1 & 0 & 0\\0 & 1 & 0\\0 & 0 & 1\end{bmatrix} + \sin\phi \begin{bmatrix}0 & -Z & Y\\Z & 0 & -X\\-Y & X & 0\end{bmatrix}] \begin{bmatrix}P_x \\ P_y \\ P_z\end{bmatrix}\)

    \(\Rightarrow \begin{bmatrix}{P_R}_x \\ {P_R}_y \\ {P_R}_z\end{bmatrix} =[(1 - \cos \phi) \begin{bmatrix}X^2 & XY & XZ \\ YX & Y^2 & YZ\\ZX & ZY & Z^2\end{bmatrix} + \cos\phi \begin{bmatrix}1 & 0 & 0\\0 & 1 & 0\\0 & 0 & 1\end{bmatrix} + \sin\phi \begin{bmatrix}0 & -Z & Y\\Z & 0 & -X\\-Y & X & 0\end{bmatrix}] \begin{bmatrix}P_x \\ P_y \\ P_z\end{bmatrix}\)   ...(18)

    Setting \(t= 1-\cos \phi\), \(c= \cos \phi\) and \(s= \sin \phi\) in equation (18) we get

    \(\begin{bmatrix}{P_R}_x \\ {P_R}_y \\ {P_R}_z\end{bmatrix} =[t \begin{bmatrix}X^2 & XY & XZ \\ YX & Y^2 & YZ\\ZX & ZY & Z^2\end{bmatrix} + c \begin{bmatrix}1 & 0 & 0\\0 & 1 & 0\\0 & 0 & 1\end{bmatrix} + s \begin{bmatrix}0 & -Z & Y\\Z & 0 & -X\\-Y & X & 0\end{bmatrix}] \begin{bmatrix}P_x \\ P_y \\ P_z\end{bmatrix}\)

    \(\Rightarrow \begin{bmatrix}{P_R}_x \\ {P_R}_y \\ {P_R}_z\end{bmatrix} =[\begin{bmatrix}tX^2 & tXY & tXZ \\ tYX & tY^2 & tYZ\\tZX & tZY & tZ^2\end{bmatrix} + \begin{bmatrix}c & 0 & 0\\0 & c & 0\\0 & 0 & c\end{bmatrix} + \begin{bmatrix}0 & -sZ & Y\\sZ & 0 & -sX\\-sY & sX & 0\end{bmatrix}] \begin{bmatrix}P_x \\ P_y \\ P_z\end{bmatrix}\)

    \(\Rightarrow \begin{bmatrix}{P_R}_x \\ {P_R}_y \\ {P_R}_z\end{bmatrix} =\begin{bmatrix}tX^2 + c & tXY -sZ & tXZ + sY \\ tYX + sZ & tY^2 +c & tYZ - sX\\tZX -sY & tZY + sX & tZ^2 + c\end{bmatrix}\begin{bmatrix}P_x \\ P_y \\ P_z\end{bmatrix}\)   ...(19)

    The \(3 \times 3\) Matrix given in equation (19) above is the 3D Rotation Matrix
© Invincible IDeAS. All Rights Reserved