Content
    Planar rigid-body motions

Homogeneous Transformation Matrices

Planar rigid-body motions

A planar rigid body motion is defined as:

T=[Rp01]=[r11r12p1r21r22p2001]=[cosθsinθp1sinθcosθp2001]SE(2)T = \begin{bmatrix} R & p \\ 0 & 1 \\ \end{bmatrix} = \begin{bmatrix} r_{11}& r_{12} & p_1 \\ r_{21}& r_{22} & p_2 \\ 0 & 0 & 1 \\ \end{bmatrix} = \begin{bmatrix} \cos \theta & -\sin \theta & p_1\\ \sin \theta & \cos \theta & p_2 \\ 0 & 0 & 1 \\ \end{bmatrix} \in SE(2)

Where:

  • TSE(2)T \in SE(2): A 3×33 \times 3 real matrix representig a rigid body motion in R2\mathbb{R}^2
  • RSO(2)R \in SO(2): Rotational part of the motion (Rotation matrix)
  • pR2p \in \mathbb{R}^2: Linear displacement of the motion (and roation axis)
  • θ[0,π)\theta \in [0,\pi): Rotation angle

The set of all planar homogeneous transforamtion matrices is called special Euclidean group SE(2)SE(2)

Spacial rigid-body motions

A homogeneous transformation matrix (or rigid body motion) TT in R3\mathbb{R}^3 is defined as:

T=(R,p)=[Rp01]=[r11r12r13p1r21r22r23p2r31r32r33p30001]SE(3)T = (R, p) = \begin{bmatrix} R & p \\ 0 & 1 \\ \end{bmatrix} = \begin{bmatrix} r_{11}& r_{12} & r_{13} & p_1 \\ r_{21}& r_{22} & r_{23} & p_2 \\ r_{31}& r_{32} & r_{33} & p_3 \\ 0 & 0 & 0 & 1 \\ \end{bmatrix} \in SE(3)

Where:

  • TSE(3)T \in SE(3): A 4×44 \times 4 real matrix representig a rigid body motion in R3\mathbb{R}^3
  • RSO(3)R \in SO(3): Rotational part of the motion (Rotation matrix)
  • pR3p \in \mathbb{R}^3: Linear displacement of the motion (and rotation axis)

The set of all spacial homogeneous transformation matices is called the special Euclidian group SE(3)SE(3)

Multiplication with a Vector

Sometimes it’s useful to calculate Rx+pRx + p (where xR3x \in \mathbb{R}^3 and (R,p)=T(R,p) = T).

We then need to append a 11 to xx to make it a 4×14 \times 1 vector.

T[x1]=[Rp01][x1]=[Rx+p1]T \begin{bmatrix} x \\ 1 \end{bmatrix} = \begin{bmatrix} R & p \\ 0 & 1 \end{bmatrix} \begin{bmatrix} x \\ 1 \end{bmatrix} = \begin{bmatrix} Rx + p \\ 1 \end{bmatrix}

Where

  • [xT1]T[x^T 1]^T: homogeneous coordinates representation of xx
  • TSE(3)T \in SE(3): homogenous transformation
Tx=Rx+pTx = Rx + p

Properties of Transformation Matrices

These properties hold for SE(2)SE(2) and SE(3)SE(3).

  • Inverse:

    • T1=[Rp01]1=[RTRTp01]SE(n)T^{-1} = \begin{bmatrix} R & p \\ 0 & 1 \\ \end{bmatrix}^{-1} = \begin{bmatrix} R^T & -R^Tp \\ 0 & 1 \\ \end{bmatrix} \in SE(n)
  • Closure: T1T2SE(n)T_1 T_2 \in SE(n)

  • Associative (T1T2)T3=T1(T2T3)(T_1 T_2) T_3 = T_1 (T_2 T_3)

  • Not commutative: T1T2T2T1T_1 T_2 \neq T_2 T_1

  • Composition Rule for Rotations (Combining by matrix multiplication): Tac=TabTbcT_{ac} = T_{ab} T_{bc} (subscript cancellation)

  • T=(R,p)SE(3)T = (R, p) \in SE(3) transforms a point xR3x \in \mathbb{R}^3 to TxTx

    • TT preserves distances: TxTy=xy\left\| T_x - T_y \right\| = \left\| x - y \right\|
      • a=aTa\left\| a \right\| = \sqrt{a^Ta}: standard Euclidian norm in R3\mathbb{R}^3
    • TT preserves angles: <TxTz,TyTz>=<xz,yz>\left< T_x - T_z, T_y - T_z\right> = \left< x - z, y - z\right> for all zR3z \in \mathbb{R}^3
      • <a,b>=aTb\left< a, b\right> = a^Tb: standard Euclidian inner product in R3\mathbb{R}^3

Uses of Transformation Matrices

There are three uses for a transformation matrix:

  • To represent a configuration (position and orientation) of a rigid body
  • To change the reference frame in which a vector or a frame is represented (operator for passive rotation)
  • To displace a vector or a frame (operator for active rotation)

Representing a Configuration

Any frame can be expressed relative to any other frame.

Tsa=(Rsa,psa)T_{sa} = (R_{sa}, p_{sa}) represents the configuration of frame aa relative to frame ss.

Changing the reference Frame of a Vector or Frame

Changing the reference frame of a vector or a frame is analogous to rotation matirces using the subscript cancellation rule:

TabTbc=TaTc=TacT_{ab} T_{bc} = T_{a\not{b}} T_{\not{b}c} = T_{ac}
Tabvb=Tav=vaT_{ab} v_b = T_{a\not{b}} v_{\not{b}} = v_a

Displace a Frame or Vector

A displacement (rotation and translaation) of a frame or a vector can be seen as a translation along a vector pp (Trans(p)Trans(p)) and a rotation around the axis ω^\hat{\omega} with angle θ\theta (Rot(ω^,θ)Rot(\hat{\omega}, \theta)).

T=Trans(p)Rot(ω^,θ)T = Trans(p)Rot(\hat{\omega}, \theta)

With:

Trans(p)=[100px010py001pz0001]Trans(p) = \begin{bmatrix} 1 & 0 & 0 & p_x \\ 0 & 1 & 0 & p_y \\ 0 & 0 & 1 & p_z \\ 0 & 0 & 0 & 1 \end{bmatrix}
Rot(ω^,θ)=[0e[ω^]θ000001]Rot(\hat{\omega}, \theta) = \begin{bmatrix} & & & 0 \\ & e^{[\hat{\omega}]\theta} & & 0 \\ & & & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}
Space-Frame Transformation

When a frame TsbT_{sb} is premultiplied by a transformation matrix TT the vectors pp and ω^\hat{\omega} are interpreted in the coordinate system of the {s}\{s\} frame (first subscript of TsbT_{sb}):

Tsb=TTsb=Trans(p)Rot(ω^,θ)TsbT_{sb'} = TT_{sb} = Trans(p)Rot(\hat{\omega}, \theta)T_{sb}

The order of the operations is:

  1. rotation (this will cause the origin of {b}\{b\} to move if it is not coincident with the origin of {s}\{s\})
  2. translation
Body-Frame Transformation

When the frame TsbT_{sb} is postmultiplied by a transformation matrix TT the vectors pp and ω^\hat{\omega} are interpreted in the coordinate system of the {b}\{b\} frame (second subscript of TsbT_{sb}):

Tsb=TsbT=TsbTrans(p)Rot(ω^,θ)T_{sb''} = T_{sb}T = T_{sb}Trans(p)Rot(\hat{\omega}, \theta)

The order of the operations is:

  1. translation
  2. rotation (this does not move the origin of the frame)

Literature

Notes taken from:

Modern Robotics: Mechanics, Planning, and Control by Kevin M. Lynch and Frank C. Park, Cambridge University Press, 2017



  • Category

  • Mathematics

  • Tags

  • Robotics

  • Created

  • 12. December 2020


  • Modified

  • 3. June 2023