Content
    Analogies

Comparison of Rotations and Rigid-Body Motions

Analogies

RotationsRigid-Body Motions
Rotation Matrix RRHomogeneous Tranformation Matrix TT
Rotation Axis ω^\hat\omegaScrew Axis SS
Angular Velocity ω=ω^θ˙\omega = \hat\omega \dot\thetaTwist V=Sθ˙V = S\dot\theta
Exponential Coordinates ω^θR3\hat\omega \theta \in \mathbb{R}^3Exponential Coordinates SθR6S\theta \in \mathbb{R}^6

Rotation Matrix and Homogeneous Translation Matrix

RotationsRigid-Body Motions
RSO(3)R \in SO(3)TSE(3)T \in SE(3)
SO(3)SO(3): 3×33 \times 3 matricesSE(3)SE(3): 4×44 \times 4 matrices
RTR=1R^TR = 1 and detR=1\det R =1T=[Rp01]T = \begin{bmatrix}R & p \\ 0 & 1 \end{bmatrix} where RSO(3)R \in SO(3), pR3p \in \mathbb{R}^3

Inverse

RotationsRigid-Body Motions
R1=RTR^{-1} = R^TT1[RTRTp01]T^{-1}\begin{bmatrix}R^T & -R^Tp \\ 0 & 1 \end{bmatrix}

Change of Coordinate Frame

RotationsRigid-Body Motions
matrixRaRc=RacR_{a\not{b}}R_{\not{b}c} = R_{ac}TaTc=TacT_{a\not{b}}T_{\not{b}c} = T_{ac}
vectorRap=paR_{a\not{b}}p_{\not{b}} = p_{a}Tap=paT_{a\not{b}}p_{\not{b}} = p_{a}

Rotating or Displacing a Frame

Rotating frame {b}\{b\}Displacing frame {b}\{b\}
R=Rot(ω^,θ)R = Rot(\hat\omega, \theta)T=[Rot(ω^,θ)p01]T=\begin{bmatrix} Rot(\hat\omega, \theta) & p \\ 0 & 1 \end{bmatrix}
Fixed Frame
  • ω^s=ω^\hat\omega_s = \hat\omega: Rotation axis defined in {s}\{s\} coordinates
  • pp: Translation vector defined in {s}\{s\} coordinates
Rotating frame {b}\{b\}Displacing frame {b}\{b\}
Rsb=RRsbR_{sb'} = RR_{sb}Tsb=TTsbT_{sb'} = TT_{sb}
rotate θ\theta about ω^s=ω^\hat\omega_s = \hat\omegarotate θ\theta about ω^s=ω^\hat\omega_s = \hat\omega (moves origin of {b}\{b\})
then translate pp in {s}\{s\}
Body Frame
  • ω^s=ω^\hat\omega_s = \hat\omega: Rotation axis defined in {s}\{s\} coordinates
  • pp: Translation vector defined in {s}\{s\} coordinates
Rotating frame {b}\{b\}Displacing frame {b}\{b\}
Rsb=RsbRR_{sb''} = R_{sb}RTsb=TsbTT_{sb''} = T_{sb}T
rotate θ\theta about ω^b=ω^\hat\omega_b = \hat\omegatranslate pp in {b}\{b\}
then rotate θ\theta about ω^\hat\omega in new body frame

Velocities

Axis

Unit Rotation Axis“Unit” Screw Axis
ω^R3\hat{\omega} \in \mathbb{R}^3S=(Sω,Sv)=[ωv]R6S = (S_\omega, S_v) = \begin{bmatrix} \omega \\ v\end{bmatrix} \in \mathbb{R}^6
ω^=1\| \hat{\omega} \| = 1either Sω=1\|S_\omega\| = 1
or Sω=0,Sv=1S_\omega = 0, \|S_v\| = 1

Screw axis {q,s^,h}\{q, \hat s, h\} with finite hh:

S=[ωv]=[s^s^×q+hs^]S = \begin{bmatrix} \omega \\ v \end{bmatrix} = \begin{bmatrix} \hat s \\ - \hat s \times q + h \hat s \end{bmatrix}

Angular Velocity and Twist

Rotations (angular velocity)Rigid-Body Motions (twist)
ω=ω^θ˙\omega = \hat{\omega} \dot{\theta}V=Sθ˙V = S \dot{\theta}
Matrix Representation of Angular Velocity and Twist
Rotations (angular velocity)Rigid-Body Motions (twist)
for ωR3\omega \in \mathbb{R}^3for V=[ωv]R6V = \begin{bmatrix} \omega \\ v\end{bmatrix} \in \mathbb{R}^6
[ω]=[0ω3ω2ω30ω1ω2ω10]so(3)[\omega] = \begin{bmatrix} 0 & -\omega_3 & \omega_2 \\ \omega_3 & 0 & -\omega_1 \\ -\omega_2 & \omega_1 & 0\end{bmatrix} \in so(3)[V]=[[ω]v00]se(3)[V] = \begin{bmatrix} [\omega] & v \\ 0 & 0 \end{bmatrix} \in se(3)
R˙R1=[ωs]\dot{R}R^{-1} = [\omega_s]T˙T1=[Vs]\dot{T}T^{-1} = [V_s]
R1R˙=[ωb]R^{-1}\dot{R} =[\omega_b]T1T˙=[Vb]T^{-1}\dot{T} = [V_b]
Idenities for Angular Velocities

With ω,xR3\omega, x \in \mathbb{R}^3 and RSO(3)R \in SO(3):

  • [ω]=[ω]T[\omega] = -[\omega]^T
  • [ω]x=[x]ω[\omega]x = -[x]\omega
  • [ω][x]=([x][ω])T[\omega][x] = ([x][\omega])^T
  • R[ω]RT=[Rω]R[\omega]R^T = [R\omega]

Adjoint Representation of a Homogeneous Translation Matrix

With a Homogeneous Translation Matrix T=[Rp01]T = \begin{bmatrix}R & p \\ 0 & 1 \end{bmatrix} where RSO(3)R \in SO(3), pR3p \in \mathbb{R}^3 the adjoint representation is:

[AdT]=[R0[p]RR]R6×6[Ad_T] = \begin{bmatrix} R & 0 \\ [p]R & R \end{bmatrix} \in \mathbb{R}^{6\times 6}
Identities for Adjoint Representation
  • [AdT]1=[AdT1][Ad_T]^{-1} = [Ad_{T^{-1}}]
  • [AdT1][AdT2]=[AdT1T2][Ad_{T_1}][Ad_{T_2}] = [Ad_{T_1T_2}]

Change of Coordinate Frame

RotationsRigid-Body Motions
ω^a=Raω^\hat{\omega}_a = R_{a\not{b}}\hat{\omega}_{\not{b}}Sa=[AdTa]SS_a = [Ad_{T_{a\not{b}}}]S_{\not{b}}
ωa=Raω\omega_a = R_{a\not{b}} \omega_{\not{b}}Va=[AdTa]VV_a = [Ad_{T_{a\not{b}}}]V_{\not{b}}

Exponential Coordinates

RotationsRigid-Body Motions
exponential coordinates forRSO(3)R \in SO(3)TSE(3)T \in SE(3)
areω^θR3\hat\omega\theta \in \mathbb{R}^3SθR6S\theta \in \mathbb{R}^6

Matrix Representation

RotationsRigid-Body Motions
[ω^]θso(3)[\hat{\omega}]\theta \in so(3)[S]θse(3)[S]\theta \in se(3)

Exponential and Logarithm

RotationsRigid-Body Motions
exponentialso(3)SO(3)so(3) \rightarrow SO(3)se(3)SE(3)se(3) \rightarrow SE(3)
logarithmSO(3)so(3)SO(3) \rightarrow so(3)SE(3)se(3)SE(3) \rightarrow se(3)
Exponential
RotationsRigid-Body Motions
[ω^]θso(3)RSO(3)[\hat\omega]\theta \in so(3) \rightarrow R \in SO(3)[S]θse(3)TSE(3)[S]\theta \in se(3) \rightarrow T \in SE(3)
R=Rot(ω^,θ)=e[ω^]θ=I+sinθ[ω^]+(1cosθ)[ω^]2R = Rot(\hat\omega, \theta) = e^{[\hat{\omega}]\theta} = I + \sin\theta[\hat\omega]+(1 - \cos\theta)[\hat\omega]^2T=e[S]θ=[e[ω]θ(Iθ+(1cosθ)[ω]+(θsinθ)[ω]2)v01]T = e^{[S]\theta} = \begin{bmatrix} e^{[\omega]\theta} & (I\theta + (1 - \cos \theta) [\omega] + (\theta - \sin \theta) [\omega]^2) v \\ 0 & 1 \end{bmatrix}
Logarithm
RotationsRigid-Body Motions
RSO(3)[ω^]θso(3)R \in SO(3) \rightarrow [\hat\omega]\theta \in so(3)TSE(3)[S]θse(3)T \in SE(3) \rightarrow [S]\theta \in se(3)
see here for algorithmsee here for algorithm

Change Coordinate frame for Moment and Wrench

  • Moment: ma=Rabmbm_a = R_{ab}m_b
  • Wrench: Fa=(ma,fa)=[AdTba]TFbF_a = (m_a, f_a) = [Ad_{T_{ba}}]^TF_b

Literature

Notes taken from:

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



  • Category

  • Mechanics

  • Tags

  • Robotics

  • Created

  • 5. January 2021


  • Modified

  • 3. June 2023