2.2 Kinematics of Rotation

  • The motion of a rigid body about a center of rotation (a body-fixed reference point) is characterized at each point in time by an axis of rotation and a rate of rotation

  • According to Euler’s theorem of rotations, we can go from one orientation of a rigid body to another in a single rotation

    • Rotations are not commutative in general, i.e., the order of rotations matter
    • However the combination of any number of rotations in some order can be represented by a single rotation
  • Orientations are specified by the rotations it takes to reach that orientation from some reference orientation.

Let $q$ by the path describing the motion of the body and $M(q(t))$ be the rotation that takes the body from a reference orientation to the orientation specified by $q(t)$. Let $\vec{\xi_\alpha}(t)$ be some vector in the body-frame (to some constituent particle) in orientation given by $q(t)$, and $\vec{\xi’_\alpha}$ be the same body-frame vector in the reference orientation, then:

$$ \vec{\xi}_\alpha(t) = \mathscr{M}(q(t)) \vec{\xi'}_\alpha\tag{2.11} $$

To find the kinetic energy, we need to combine the contributions of all the constituent particles, aka, the velocities of the particles.

$$ \vec{\xi}_\alpha(t) = \mathscr{M}(q(t)) \vec{\xi'}_\alpha = M(t)\vec{\xi'}_\alpha\tag{2.12} $$

where $M = \mathscr{M} \circ q$. Taking the time derivative:

$$ D\vec{\xi}_\alpha(t) = DM(t)\vec{\xi'}_\alpha\tag{2.13} $$

By inverting Eq. 2.12, we can write $\vec{\xi’}_{\alpha}$ in terms of $\vec{\xi}_{\alpha}$,

$$ D\vec{\xi}_\alpha(t) = DM(t)(M(t))^{-1}\vec{\xi}_\alpha(t)\tag{2.13} $$

Since $M(t)$ is a rotation represented by an orthogonal matrix $\mathbf{M}(t)$, with the property, $(\mathbf{M}(t))^{-1}$ = $(\mathbf{M}(t))^{\intercal}$. Therefore, $\mathbf{M}(t)(\mathbf{M}(t))^{\intercal}$ = $\mathbf{I}$ and hence $D(\mathbf{M}\mathbf{M}^\intercal) = \mathbf{0}$.

$$ \mathbf{0} = D(\mathbf{M}\mathbf{M}^\intercal) = D(\mathbf{M})\mathbf{M}^\intercal + \mathbf{M}D \mathbf{M}^\intercal\tag{2.15} $$

Note: $(AB)^\intercal = B^\intercal A^\intercal => (D\mathbf{M}\mathbf{M}^\intercal)^\intercal = (\mathbf{M}^\intercal)^\intercal D\mathbf{M}^\intercal = \mathbf{M}D \mathbf{M}^\intercal$

$$ D(\mathbf{M})\mathbf{M}^\intercal = -\mathbf{M}D \mathbf{M}^\intercal = -(D\mathbf{M}\mathbf{M}^\intercal)^\intercal\tag{2.16} $$

This shows that $D(\mathbf{M})\mathbf{M}^\intercal$ is anti-symmetric. If $\mathbf{u}$ has the components $(x, y, z) $, all anti-symmetric 3x3 matrices have the following form:

$$ \mathscr{A}(\mathbf{u}) = \begin{pmatrix}0 &-z& y\\ z &0 &-x\\-y &x &0\end{pmatrix}\\ $$

Multuplying this matrix by a vector is equivalent to a cross-product by the vector $\vec{u}$ (and $\mathbf{u}$ is the matrix representation of $\vec{u}$. The inverse of the function $\mathscr{A}$ is one that extracts the components of $\mathbf{u}$ from a given skew-symmetric matrix.

Note: $\mathscr{A}^{-1}$ is not the inverse of the skew-symmetric matrix. Rather, this is a function that by definition, extracts the components of $\vec{u}$ from a skew-symmetric matrix.

So the matrix multiplication $D\mathbf{M}\mathbf{M}^\intercal$ can be interpreted as a cross-product with a vector that we can call $\vec{\omega}$ which is the angular velocity vector. Therefore,

$$ \boldsymbol{\omega} = \mathscr{A}^{-1}(D \mathbf{M} \mathbf{M}^\intercal) \tag{2.18} $$

Therefore the differential equations of the constituent particles can be written as:

$$ D \vec{\xi}_\alpha(t) = \vec{\omega}(t) \times \vec{\xi}_\alpha(t)\tag{2.19} $$

This shows that the velocity o the constituent particles are perpendicular to their position vectors and proportional to the rate of rotation and distance from the instantaneous center:

$$ \dot{\vec{\xi}}_\alpha = \vec{\omega} \times \vec{\xi}_\alpha\tag{2.20} $$

The components, $\boldsymbol{\omega}‘$ of the angular velocity vector in the body frame are $\boldsymbol{\omega}’ = \mathbf{M}^\intercal \boldsymbol{\omega}$, or

$$ \boldsymbol{\omega}' = \mathbf{M}^\intercal \mathscr{A}^{-1}(D \mathbf{M} \mathbf{M}^\intercal) \tag{2.21} $$

Note: Need to figure out why it is $\mathbf{M}^\intercal$ and not $\mathbf{M}$ in Eq. 2.21. Is this not a “rotation” of the vector? Question posted at: https://physics.stackexchange.com/questions/734684/angular-velocity-in-body-frame-vs-inertial-frame

This is a kinematic relationship that is valid for any path and can be used to obtain the components of angular velocity given the configuration and velocity at any time.

Implementation of angular velocity functions

(defn M-of-q->omega-of-t [M-of-q]
    (fn [q]
        (fn [t]
          (let [M-on-path (compose M-of-q q)
                omega-cross t]
             (* ((D M-on-path) t)
               (transpose (M-on-path t)))
          (rigid/antisymmetric->column-matrix (omega-cross t)))
)))

;; `omega-cross` produces the matrix representation of cross product "omega x"
;; antisymmetric->column-matrix corresponds to A^{-1} and extracts vector components from
;; a skew symmetric matrix


;; This function gives components of omega in body-fixed axes
(defn M-of-q->omega-body-of-t [M-of-q]
    (fn [q]
        (fn [t]
          (* (transpose (M-of-q (q t)))
             (((M-of-q->omega-of-t M-of-q) q) t)))))


;; We use Gamma-bar to convert these functions of path to functions of local tuple

(defn M->omega [M-of-q]
  (Gamma-bar
    (M-of-q->omega-of-t M-of-q)))

(defn M->omega-body [M-of-q]
  (Gamma-bar
    (M-of-q->omega-body-of-t M-of-q)))
 
:ok
:ok

These procedures will return angular velocities as a function of state (aka local tuple)

← Back to workbook