0

If we are merely describing rotations through a fixed axis through the origin, then it is enough to characterize angular displacements by an angle $\theta\in(-\pi, \pi]$. Real-life rotations are not restricted to rotations about a single axis, however, so we need something more general.

As we see on here, here and here, angular displacements in the general case can't be sensibly described by vectors such that vector addition works (unlike angular velocities).

So how do we properly describe angular displacements?

2 Answers2

1

$\def \b {\mathbf}$ the transformation matrix $~\b S~$ between the body fixed system and inertial system is depending on three Euler angles $~\phi_i~$ \begin{align*} &\b S=\b S(\phi_i)\quad, i=1..3\quad\text{with}~\b S^T\,\b S=\b I \end{align*}

from here you obtain the angular velocity $~\b\omega~$ (coordinate inertial system) \begin{align*} &\dot{\b{S}}=\left[ \begin {array}{ccc} 0&-\omega_{{3}}&\omega_{{2}} \\ \omega_{{3}}&0&-\omega_{{1}}\\ -\omega_{{2}}&\omega_{{1}}&0\end {array} \right] \b S\quad \Rightarrow \end{align*} \begin{align*} &\b\omega=\b J_R(\b\phi)\dot{\b{\phi}}\quad, \b\phi=\begin{bmatrix} {\phi}_1 \\ {\phi}_2\\ {\phi}_3 \\ \end{bmatrix}\tag 1 \end{align*}

from equation (1)

\begin{align*} &\dot{\b{\phi}}(t)=\left[\b J_R(\b\phi(t))\right]^{-1}\,\b\omega(t)\tag 2 \end{align*} thus the angles $~\b\phi(t)~$ is the solution of equation , (2), where $~\b\omega(t)~$ is the solution of the dynamic equation (Euler equation ).

Notice

that for any choice of the Euler angles you obtain singularity at one of the angle , this means that the inverse of the matrix $~\b J_R~$ doesn't exist


For a small angles $~\b\phi \ll~$

\begin{align*} &\b S\mapsto I+\left[ \begin {array}{ccc} 0&-\phi_{{2}}&\phi_{{2}} \\ \phi_{{2}}&0&-\phi_{{1}}\\ - \phi_{{2}}&\phi_{{1}}&0\end {array} \right] \end{align*}

in this case is the angular velocity $~\b\omega\Leftrightarrow\dot{\b{\phi}}$

Eli
  • 11,878
0

For this post, I will restrict to motions that are rotations about the origin only. The more general case of rigid body motion can be described by Chasles's theorem (see this post and this page), but this will be outside the scope of this post. Also, in this post, any time I say "continuous" I really mean "differentiable."

By "angular displacement," I mean "rotation" about the origin. There are many ways to describe angular displacements (quaternions, rotors, Euler angles, axis-angle representation, etc.). In this post, I will choose one particular formalism and stick with it, although the reader should be aware there are others, each with advantages and disadvantages. Other representations exist, so don't take this post as the final word on anything.

1. How Do We Describe Angular Displacements?

I will describe angular displacements by $3\times 3$ matrices (contrast this to translational displacements which are described by vectors). The defining properties of any rotation matrix $R$ is that $R^{T}R = I$ and $\det R = 1$. Together they form the special orthogonal group on $\mathbb{R}^{3}$: $$ \textrm{SO}(3) = \{ R\in\textrm{M}(3, \mathbb{R}) \,|\, R^{T}R=I,\, \det R = 1 \}. $$ Any rotation matrix $R$ acts on any point $\vec{r}\in\mathbb{R}^{3}$ by matrix multiplication: $\vec{r}\mapsto R\vec{r}$ where $\vec{r}$ is rewritten as a column vector.

If our rigid body consists of at least two points that are linearly independent, there is an angular displacement that uniquely determines the special orthogonal matrix $R$ that takes the body from one configuration to another configuration. This is because if we know the action of $R$ on two linearly independent points $\vec{r}_{1}, \vec{r}_{2}$, meaning if we know $R\vec{r}_{1}$ and $R\vec{r}_{2}$, then we can fully determine $R$. (The proof of this is left as an exercise to the reader.)

(If we're considering rotations about any point rather than just the origin, then we need the rigid body to consist of ≥ 3 non-colinear points to guarantee uniqueness, but again I'll keep the discussion to rotations about the origin.)

If our body consists of a single point particle, or mass distributed along a line going through the origin, then we don't have 2 linearly independent points, and thus the $R$ matrix describing the angular displacement is underdetermined. In such a case, we cannot uniquely determine $R$. See one example of this below.

Example. Suppose we have a point particle located $\vec{r} = (0, 0, 1)$ and then rotated to position $\vec{r}\,' = (0, 0, 1)$. In other words, it doesn't change position at all. This could have been done by the identity matrix (nothing happened), but there could also have been a rotation of the form $$ R = \begin{pmatrix} \cos\theta & -\sin\theta & 0 \\ \sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{pmatrix}, $$ i.e. any rotation about the $z$-axis.

2. From Angular Displacements to Angular Velocities (Part 1)

If we have a clear understanding of angular displacements, then we can provide a clear and unambiguous definition of angular velocities.

Suppose we have a continuously rotating rigid body whose angular displacements are given by a function $R(\cdot):\mathbb{R}\rightarrow\textrm{SO}(3)$. Just like how velocity is the derivative of position, we might expect angular velocity to be the derivative of our formulation of angular displacement. Let us see.

Example 1. Let $$ R_{z}(t) = \begin{pmatrix} \cos ct & -\sin ct & 0 \\ \sin ct & \cos ct & 0 \\ 0 & 0 & 1 \end{pmatrix}. $$ The derivative at $t=0$ is $$ R_{z}'(0) = \begin{pmatrix} 0 & -c & 0 \\ c & 0 & 0 \\ 0 & 0 & 0 \end{pmatrix}. $$

Example 2. Let $$ R_{x}(t) = \begin{pmatrix} 1 & 0 & 0 \\ 0 & \cos ct & -\sin ct \\ 0 & \sin ct & \cos ct \end{pmatrix}. $$ The derivative at $t=0$ is $$ R_{x}'(0) = \begin{pmatrix} 0 & 0 & 0 \\ 0 & 0 & -c \\ 0 & c & 0 \end{pmatrix}. $$

Example 3. Let $$ R_{y}(t) = \begin{pmatrix} \cos ct & 0 & \sin ct \\ 0 & 1 & 0 \\ -\sin ct & 0 & \cos ct \end{pmatrix}. $$ The derivative at $t=0$ is $$ R_{y}'(0) = \begin{pmatrix} 0 & 0 & c \\ 0 & 0 & 0 \\ -c & 0 & 0 \end{pmatrix}. $$

More generally, suppose $R(\cdot):\mathbb{R}\rightarrow\textrm{SO}(3)$ is any angular displacement over time such that $R(0) = I$ (this is important). By definition of special orthogonal matrices, we know $R(t)^{T}R(t) = I$ for all $t$. By differentiating and then noting that $R(0) = I$, one can deduce $R'(0)^{T} = -R'(0)$.

Therefore, we find that the time-derivative at $t=0$ of any time-varying angular displacement (starting from the identity matrix at $t=0$) is a skew-symmetric matrix. I won't show this, but it turns out the set of all these initial derivatives is exactly the set of all skew-symmetric matrices. We denote the set as $$ \mathfrak{so}(3) = \{ A\in\mathrm{M}(3, \mathbb{R}) \,|\, A^{T} = -A \}. $$ We say $\mathfrak{so}(3)$ (equipped with the operation of matrix addition $+$) is a Lie algebra of the Lie group $\textrm{SO}(3)$ (equipped with the operation of matrix multiplication $\cdot$).

3. From Angular Displacements to Angular Velocities (Part 2)

So for any $R(\cdot):\mathbb{R}\rightarrow\textrm{SO}(3)$ starting at $R(0) = I$, the time-derivative at $t=0$ is $$ R'(0) = \begin{pmatrix} 0 & -\omega_{3} & \omega_{2} \\ \omega_{3} & 0 & -\omega_{1} \\ -\omega_{2} & \omega_{1} & 0 \end{pmatrix} \in\mathfrak{so}(3). $$ What is the meaning of this? Turns out there is a pretty good meaning.

Given your rigid body that is being rotated, take any particle $\vec{r}(0) = (x, y, z)$ of the body at $t=0$. Then the particle of the body at any later time is given by $\vec{r}(t) = R(t)\vec{r}(0)$. Now take the time-derivative at $t=0$. We find $$ \dot{\vec{r}}(0) = R'(0)\vec{r}(0). $$ So we see this: the Lie algebra element, when acting on a position of a particle, gives the velocity of that particle due to the rotation happening at that time. When we write it out explicitly, we find

$$ R'(0)\vec{r}(0) = \begin{pmatrix} 0 & -\omega_{3} & \omega_{2} \\ \omega_{3} & 0 & -\omega_{1} \\ -\omega_{2} & \omega_{1} & 0 \end{pmatrix}\begin{pmatrix} x \\ y \\ z \end{pmatrix} = \begin{pmatrix} -\omega_{3}y + \omega_{2}z \\ \omega_{3}x - \omega_{1}z \\ -\omega_{2}x + \omega_{1}y \end{pmatrix}. $$

We see something wonderful here: once we make the identification $$ R'(0) = \begin{pmatrix} 0 & -\omega_{3} & \omega_{2} \\ \omega_{3} & 0 & -\omega_{1} \\ -\omega_{2} & \omega_{1} & 0 \end{pmatrix} \;\longleftrightarrow\; \vec{\omega}(0) = \begin{pmatrix} \omega_{1} \\ \omega_{2} \\ \omega_{3} \end{pmatrix}, $$ we find $$ \dot{\vec{r}}(0) = \vec{\omega}(0)\times\vec{r}(0). $$ This is a defining property of the angular velocity vector, so we've found that $\vec{\omega}(0)$ is precisely the angular velocity vector.

4. From Angular Displacements to Angular Velocities (Part 3)

So far we've assumed the time-varying angular displacement $R(\cdot):\mathbb{R}\rightarrow\textrm{SO}(3)$ satisfies $R(0) = I$ and taken time-derivatives at $t=0$ only. To generalize, we have to be careful.

We have $R(t)\vec{r}(0) = \vec{r}(t)$. By differentiating, $R'(t)\vec{r}(0) = \dot{\vec{r}}(t)$, but this isn't the desired relationship. We want a relationship between $\vec{r}(t)$ and $\dot{\vec{r}}(t)$, not between $\vec{r}(0)$ and $\dot{\vec{r}}(t)$. To correct for this, insert $R(t)^{-1}R(t)$ to obtain \begin{align} [R'(t)R(t)^{-1}][R(t)\vec{r}(0)] &= \dot{\vec{r}}(t), \\ [R'(t)R(t)^{-1}]\vec{r}(t) &= \dot{\vec{r}}(t). \end{align} Thus, the correct matrix that relates the position vector to the velocity vector during the continuous rotation is $R'(t)R(t)^{-1}$.

The matrix $T(s) = R(t+s)R(t)^{-1}$ is special orthogonal for all $s$ and satisfies $T(0) = I$, so then $T'(0) = R'(t)R(t)^{-1}\in\mathfrak{so}(3)$. Thus, $R'(t)R(t)^{-1}$ is skew-symmetric. We now identify \begin{align}\tag{$1$} R'(t)R(t)^{-1} = \begin{pmatrix} 0 & -\omega_{3}(t) & \omega_{2}(t) \\ \omega_{3}(t) & 0 & -\omega_{1}(t) \\ -\omega_{2}(t) & \omega_{1}(t) & 0 \end{pmatrix} \;\longleftrightarrow\; \vec{\omega}(t) = \begin{pmatrix} \omega_{1}(t) \\ \omega_{2}(t) \\ \omega_{3}(t) \end{pmatrix}. \end{align} This is the angular velocity vector, and accordingly we have $$ [R'(t)R(t)^{-1}]\vec{r}(t) = \vec{\omega}(t)\times\vec{r}(t) = \dot{\vec{r}}(t). $$

So finally, we have established how to go from $R(t)\in\textrm{SO}(3)$ to $R'(t)R(t)^{-1}\in\mathfrak{so}(3)$ to the angular velocity vector $\vec{\omega}(t)\in\mathbb{R}^{3}$.

5. From Angular Velocities to Angular Displacements (Part 1)

Given a continuous rotation $R(\cdot):\mathbb{R}\rightarrow\textrm{SO}(3)$, we've shown how to obtain the corresponding angular velocity vector $\vec{\omega}(t)$ via differentiation with a few extra steps. Can we go the opposite way?

(In the case of translational motion, we can go from the position vector to the velocity vector by differentiation, and we can go the opposite way by integration. What would be the analogous process of integration in the case of angular velocities and displacements?)

First, let us consider the case where we have a continuous rotation with a fixed angular velocity, i.e. the case where $\vec{\omega}$ doesn't depend on time. In that case, we convert $$ \vec{\omega} = \begin{pmatrix} \omega_{1} \\ \omega_{2} \\ \omega_{3} \end{pmatrix} \;\longleftrightarrow\; \Omega = \begin{pmatrix} 0 & -\omega_{3} & \omega_{2} \\ \omega_{3} & 0 & -\omega_{1} \\ -\omega_{2} & \omega_{1} & 0 \end{pmatrix}. $$ Then we look back to $(1)$ to find $\Omega = R'(t)R(t)^{-1}$. This gives us the differential equation $$ R'(t) = \Omega R(t), $$ and in matrix algebra this is known to have its solution given by the matrix exponential \begin{align}\tag{$2$} R(t) = e^{\Omega t}R(0). \end{align}

6. From Angular Velocities to Angular Displacements (Part 2)

Now what if we have the case where the angular velocity $\vec{\omega}(t)$ is itself changing in time? Then we convert $$ \vec{\omega}(t) = \begin{pmatrix} \omega_{1}(t) \\ \omega_{2}(t) \\ \omega_{3}(t) \end{pmatrix} \;\longleftrightarrow\; \Omega(t) = \begin{pmatrix} 0 & -\omega_{3}(t) & \omega_{2}(t) \\ \omega_{3}(t) & 0 & -\omega_{1}(t) \\ -\omega_{2}(t) & \omega_{1}(t) & 0 \end{pmatrix} $$ where now $\Omega(t)$ varies with time. Again, looking back at $(1)$, we find that we have to solve the differential equation $$ R'(t) = \Omega(t) R(t). $$ Unlike in the previous section, this requires us to use a time-ordered exponential. This is explained in this MSE page and this MSE page.

Two ways of numerically computing a solution are as follows:

  1. We can use the product \begin{align} R(t) &= (I + \tfrac{t}{N}\Omega(t\tfrac{N-1}{N}))(I + \tfrac{t}{N}\Omega(t\tfrac{N-2}{N}))\cdots (I + \tfrac{t}{N}\Omega(t\tfrac{1}{N}))(I + \tfrac{t}{N}\Omega(0))R(0) + O(\Delta t^{2}) \\ &= \prod_{j=0}^{N-1} (I + \tfrac{t}{N}\Omega(t\tfrac{j}{N}))\cdot R(0) + O(\Delta t), \end{align} where $N$ is a positive integer and $t$ is a positive real number, and better and better approximations to the solution are made as $N\rightarrow\infty$.
  2. We can expand the product out in a certain way so as to obtain the summation series \begin{align} R(t) = R(0) &+ \sum_{j=0}^{N-1} \Delta t\,\Omega(j\Delta t) \cdot R(0) \\ &+ \sum_{0\le j_{1}<j_{2}<N} \Delta t\,\Omega(j_{2}\Delta t)\cdot \Delta t\,\Omega(j_{1}\Delta t)\cdot R(0) \\ &+ \sum_{0\le j_{1}<j_{2}<j_{3}<N} \Delta t\,\Omega(j_{3}\Delta t)\cdot \Delta t\,\Omega(j_{2}\Delta t)\cdot \Delta t\,\Omega(j_{1}\Delta t)\cdot R(0) \\ &+ \cdots. \end{align} This is a series of nested Riemann-sums, so as we take $N\rightarrow\infty$ we obtain a series of nested integrals.