Rigid Body Motion
The following are the key concepts covered in this chapter:
-
Rotational motion of a rigid body is represented by an element of
the special orthogonal group
<amsmath> SO(3) = \{ R \in {\mathbb R}^{3 \times 3} \mid R^T R = I, \det R = 1 \}.
</amsmath>Other parameterizations of SO(3) include fixed and Euler angle sets, and unit quaternions.
- The configuration of a rigid body is
represented as an element <amsmath>g \in
\text{SE}(3)</amsmath>. An element <amsmath>g \in \text{SE}(3)</amsmath> may also be viewed as a mapping
<amsmath>g:{\mathbb R}^3 \to {\mathbb R}^3</amsmath> which preserves distances and angles between
points. In homogeneous coordinates, we write
<amsmath> g = \begin{bmatrix} R & p \\ 0 & 1 \end{bmatrix} \qquad \aligned R &\in SO(3) \\ p &\in {\mathbb R}^3. \endaligned
</amsmath>The same representation can also be used for a rigid body transformation between two coordinate frames.
- Rigid body transformations can be represented as the
exponentials of twists:
<amsmath> g = \exp(\widehat{\xi} \theta) \qquad \widehat{\xi} = \begin{bmatrix} \widehat{\omega} & v \\ 0 & 0 \end{bmatrix}, \quad \aligned \widehat{\omega} &\in so(3), \\ v &\in {\mathbb R}^3, \theta \in {\mathbb R}. \endaligned
</amsmath>The twist coordinates of <amsmath>\widehat{\xi}</amsmath> are <amsmath>\xi = (v,\omega) \in {\mathbb R}^6</amsmath>.
- A twist <amsmath>\xi = (v, \omega)</amsmath> is associated with a screw
motion having attributes
<amsmath> \alignedat 2 &\text{pitch:} &\qquad h &= \frac{\omega^T v}{\|\omega\|^2}; \\ &\text{axis:} &\qquad l &= \begin{cases} \{ \frac{\omega\times v}{\|\omega\|^2} + \lambda\omega:
\lambda \in{\mathbb R} \}, &\text{if $\omega\neq0$} \\ \{ 0 + \lambda v:\lambda \in {\mathbb R} \}, &\text{if $\omega=0$};
\end{cases} \\ &\text{magnitude:} &\qquad M &= \begin{cases} \|\omega\|, &\text{if $\omega\neq0$} \\ \| v \|, &\text{if $\omega = 0$}. \end{cases} \endalignedat
</amsmath>Conversely, given a screw we can write the associated twist. Two special cases are pure rotation about an axis <amsmath>l = \{q + \lambda \omega\}</amsmath> by an amount <amsmath>\theta</amsmath> and pure translation along an axis <amsmath>l = \{0 + \lambda v\}</amsmath>:
<amsmath> \xi = \begin{bmatrix} -\omega\times q \\ \omega \end{bmatrix} \theta \quad\!\text{(pure rotation)} \qquad \xi = \begin{bmatrix} v \\ 0 \end{bmatrix} \theta \quad\!\text{(pure translation)}.
</amsmath> - The velocity of a rigid motion <amsmath>g(t) \in \text{SE}(3)</amsmath> can be
specified in two ways. The spatial velocity,
<amsmath> \widehat{V}^s = \dot g g^{-1},
</amsmath>is a twist which gives the velocity of the rigid body as measured by an observer at the origin of the reference frame. The body velocity,
<amsmath> \widehat{V}^b = g^{-1} \dot g,
</amsmath>is the velocity of the object in the instantaneous body frame. These velocities are related by the adjoint transformation
<amsmath> V^s = \operatorname{Ad}_g V^b \qquad \operatorname{Ad}_g = \begin{bmatrix} R & \widehat{p}R \\ 0 & R \end{bmatrix},
</amsmath>which maps <amsmath>{\mathbb R}^6 \to {\mathbb R}^6</amsmath>. To transform velocities between coordinate frames, we use the relations
<amsmath> \aligned V_{ac}^s &= V_{ab}^s + \operatorname{Ad}_{g_{ab}} V_{bc}^s \\ V_{ac}^b &= \operatorname{Ad}_{g_{bc}^{-1}} V_{ab}^b + V_{bc}^b, \endaligned
</amsmath>where <amsmath>V_{ab}^s</amsmath> is the spatial velocity of coordinate frame <amsmath>B</amsmath> relative to frame <amsmath>A</amsmath> and <amsmath>V_{ab}^b</amsmath> is the body velocity.
- Wrenches are represented as a force, moment pair
<amsmath> F = (f, \tau) \in {\mathbb R}^6.
</amsmath>If <amsmath>B</amsmath> is a coordinate frame attached to a rigid body, then we write <amsmath>F_b = (f_b, \tau_b)</amsmath> for a wrench applied at the origin of <amsmath>B</amsmath>, with <amsmath>f_b</amsmath> and <amsmath>\tau_b</amsmath> specified with respect to the <amsmath>B</amsmath> coordinate frame. If <amsmath>C</amsmath> is a second coordinate frame, then we can write <amsmath>F_b</amsmath> as an equivalent wrench applied at <amsmath>C</amsmath>:
<amsmath> F_c = \operatorname{Ad}_{g_{bc}}^T F_b.
</amsmath>For a rigid body with configuration <amsmath>g_{ab}</amsmath>, <amsmath>F^s := F_a</amsmath> is called the spatial wrench and <amsmath>F^b := F_b</amsmath> is called the body wrench.
- A wrench <amsmath>F = (f, \tau)</amsmath> is associated with a screw having attributes
<amsmath> \alignedat 2 &\text{pitch:} &\qquad h &= \frac{f^T \tau}{\|f\|^2}; \\ &\text{axis:} &\qquad l &= \begin{cases} \{ \frac{f\times \tau}{\|f\|^2} + \lambda f:
\lambda \in{\mathbb R} \}, &\text{if $f\neq0$} \\ \{ 0 + \lambda \tau:\lambda \in {\mathbb R} \}, &\text{if $f=0$};
\end{cases} \\ &\text{magnitude:} &\qquad M &= \begin{cases} \|f\|, &\text{if $f\neq0$} \\ \| \tau \|, &\text{if $f = 0$}. \end{cases} \endalignedat
</amsmath>Conversely, given a screw we can write the associated wrench.
- A wrench <amsmath>F</amsmath> and a twist <amsmath>V</amsmath> are reciprocal if <amsmath>F \cdot V = 0</amsmath>.
Two screws <amsmath>S_1</amsmath> and <amsmath>S_2</amsmath> are reciprocal if the twist <amsmath>V_1</amsmath>
about <amsmath>S_1</amsmath> and the wrench <amsmath>F_2</amsmath> along <amsmath>S_2</amsmath> are reciprocal. The
reciprocal product between two screws is given by
<amsmath> S_1 \odot S_2 = V_1 \cdot F_2 = V_1 \odot V_2 = v_1 \cdot \omega_2 + v_2^T \omega_1
</amsmath>where <amsmath>V_i = (v_i, \omega_i)</amsmath> represents the twist associated with the screw <amsmath>S_i</amsmath>. Two screws are reciprocal if the reciprocal product between the screws is zero.
- A system of screws <amsmath>\{S_1, \dots, S_k\}</amsmath> describes the vector space of all linear combinations of the screws <amsmath>\{S_1, \dots, S_k\}</amsmath>. A reciprocal screw system is the set of all screws which are reciprocal to <amsmath>S_i</amsmath>. The dimensions of a screw system and its reciprocal system sum to 6 (in <amsmath>se(3)</amsmath>).