Skip to main content
Engineering LibreTexts

9.4: Rate of Change of Euler Angles

  • Page ID
    47274
    • Franz S. Hover & Michael S. Triantafyllou
    • Massachusetts Institute of Technology via MIT OpenCourseWare
    \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)\(\newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    Only for the case of infinitesimal Euler angles is it true that the time rate of change of the Euler angles equals the body-referenced rotation rate. For example, with the sequence [yaw, pitch, roll], the Euler yaw angle (applied first) is definitely not about the final body yaw axis; the pitch and roll rotations moved the axis. An important part of any simulation is the evolution of the Euler angles. Since the physics determine rotation rate \(\vec{\omega}\), we seek a mapping of \(\vec{\omega} \rightarrow d \vec{E} / dt\).

    The idea is to consider small changes in each Euler angle, and determine the effects on the rotation vector. The first Euler angle undergoes two additional rotations, the second angle one rotation, and the final Euler angle no additional rotations:

    \begin{align} \vec{\omega} \, &= \, R(\psi) R(\theta) \begin{Bmatrix} 0 \\[4pt] 0 \\[4pt] d \phi / dt \end{Bmatrix} + R(\psi) \begin{Bmatrix} 0 \\[4pt] d \theta / dt \\[4pt] 0 \end{Bmatrix} + \begin{Bmatrix} d \psi / dt \\[4pt] 0 \\[4pt] 0 \end{Bmatrix} \\[4pt] \quad \nonumber \\[4pt] &= \, \begin{bmatrix} 1 & 0 & -\sin \theta \\[4pt] 0 & \cos \psi & \sin \psi \cos \theta \\[4pt] 0 & -\sin \psi & \cos \psi \cos \theta \end{bmatrix} \begin{Bmatrix} d \psi / dt \\[4pt] d \theta / dt \\[4pt] d \phi / dt \end{Bmatrix}. \end{align}

    Taking the inverse gives

    \begin{align} \dfrac{d \vec{E}}{dt} \, &= \, \begin{bmatrix} 1 & \sin \psi \tan \theta & \cos \psi \tan \theta \\[4pt] 0 & \cos \psi & -\sin \psi \\[4pt] 0 & \sin \psi / \cos \theta & \cos \psi / \cos \theta \end{bmatrix} \vec{\omega} \\[4pt] &= \, \Gamma (\vec{E}) \vec{\omega}. \end{align}Singularities exist in \(\Gamma\) at \(\theta = {\pi / 2, \, 3\pi / 2}\), because of the division by \(\cos \theta\), and hence this otherwise useful equation for propagating the angular orientation of a body fails when the vehicle rotates about the intermediate \(y\)-axis by ninety degrees. In applications where this is a real possibility, such as in orbiting satellites and robotic arms, quaternions provide a seamless mapping. For many vehicles, the singularity in pitch is acceptable, because a ninety-degree pitch angle is outside the normal operating condition.


    This page titled 9.4: Rate of Change of Euler Angles is shared under a CC BY-NC-SA 4.0 license and was authored, remixed, and/or curated by Franz S. Hover & Michael S. Triantafyllou (MIT OpenCourseWare) via source content that was edited to the style and standards of the LibreTexts platform; a detailed edit history is available upon request.