Rigid Body Motion

From MLSwiki
Revision as of 02:54, 22 July 2009 by Murray (Talk | contribs)

Jump to: navigation, search

A rigid motion of an object is a motion which preserves distance between points. The study of robot kinematics, dynamics, and control has at its heart the study of the motion of rigid objects. In this chapter, we provide a description of rigid body motion using the tools of linear algebra and screw theory.

Chapter Summary

The following are the key concepts covered in this chapter:

  1. 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.

  2. 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.

  3. 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>.

  4. 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>
  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. 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>).

Additional Information