[足式机器人]Part4 南科大高等机器人控制课 Ch03 Operator View of Rigid-Body Transformation

本文仅供学习使用
本文参考:
B站:CLEAR_LAB
笔者带更新-运动学
课程主讲教师:
Prof. Wei Zhang

南科大高等机器人控制课 Ch03 Operator View of Rigid-Body Transformation

  • [1. Rotation Operation via Differential Equation](#1. Rotation Operation via Differential Equation)
  • [1.1 Skew Symmetric Matrices](#1.1 Skew Symmetric Matrices)
    • [1.2 Rotation Operation via Differential Equation](#1.2 Rotation Operation via Differential Equation)
  • [1.3 Raotation Matrix as a Rotation Operator](#1.3 Raotation Matrix as a Rotation Operator)
  • [2. Rotation Operation in Different Frames](#2. Rotation Operation in Different Frames)
    • [2.1 Rotation Martix Properties](#2.1 Rotation Martix Properties)
    • [2.2 Rotation Operation in Different Frames](#2.2 Rotation Operation in Different Frames)
  • [3. Rigid-Body Operation via Diffeential Equation](#3. Rigid-Body Operation via Diffeential Equation)
    • [3.1 SE(3)](#3.1 SE(3))
    • [3.2 se(3)](#3.2 se(3))
  • [4. Homogeneous Transformation Matrix as Rigid-Body Operator](#4. Homogeneous Transformation Matrix as Rigid-Body Operator)
  • [5. Rigid-Body Operation of Screw Axis](#5. Rigid-Body Operation of Screw Axis)

1. Rotation Operation via Differential Equation

1.1 Skew Symmetric Matrices

Recall that cross product is a special linear transformation.

For any ω ⃗ ∈ R 3 \vec{\omega}\in \mathbb{R} ^3 ω ∈R3, there is a matrix ω ⃗ ~ ∈ R 3 × 3 \tilde{\vec{\omega}}\in \mathbb{R} ^{3\times 3} ω ~∈R3×3 such that ω ⃗ × R ⃗ = ω ⃗ ~ R ⃗ \vec{\omega}\times \vec{R}=\tilde{\vec{\omega}}\vec{R} ω ×R =ω ~R
ω ⃗ = [ ω 1 ω 2 ω 3 ] ⟷ ω ⃗ ~ = [ 0 − ω 3 ω 2 ω 3 0 − ω 1 − ω 2 ω 1 0 ] \vec{\omega}=\left[ \begin{array}{c} \omega _1\\ \omega _2\\ \omega _3\\ \end{array} \right] \longleftrightarrow \tilde{\vec{\omega}}=\left[ \begin{matrix} 0& -\omega _3& \omega _2\\ \omega _3& 0& -\omega _1\\ -\omega _2& \omega _1& 0\\ \end{matrix} \right] ω = ω1ω2ω3 ⟷ω ~= 0ω3−ω2−ω30ω1ω2−ω10

Note that a ⃗ ~ = − a ⃗ ~ T \tilde{\vec{a}}=-\tilde{\vec{a}}^{\mathrm{T}} a ~=−a ~T (called skew stmmetric )
ω ⃗ ~ \tilde{\vec{\omega}} ω ~ is called a skew-symmetric matrix representation of the vector ω ⃗ \vec{\omega} ω

The set of skew-symmetric matrices in : s o ( n ) ≜ { S ∈ R n × n : S T = − S } so\left( n \right) \triangleq \left\{ S\in \mathbb{R} ^{n\times n}:S^{\mathrm{T}}=-S \right\} so(n)≜{S∈Rn×n:ST=−S}

We are interested in case n = 2 , 3 n=2,3 n=2,3

Rotation matrix ∈ S O ( 3 ) { R T R = E , det ⁡ ( R ) = 1 } \in SO\left( 3 \right) \left\{ R^{\mathrm{T}}R=E,\det \left( R \right) =1 \right\} ∈SO(3){RTR=E,det(R)=1}

1.2 Rotation Operation via Differential Equation

  • Consider a point initially located at R ⃗ p 0 \vec{R}_{p_0} R p0 at time t = 0 t=0 t=0
  • Rotate the point with unit angular velocity ω ^ \hat{\omega} ω^. Assuming the rotation axis passing through the origin, the motion is describe by
    R ⃗ ˙ p ( t ) = ω ^ × R ⃗ p = ω ^ ~ R ⃗ p ( t ) , p ( 0 ) = p 0 \dot{\vec{R}}_p\left( t \right) =\hat{\omega}\times \vec{R}_p=\tilde{\hat{\omega}}\vec{R}_p\left( t \right) ,p\left( 0 \right) =p_0 R ˙p(t)=ω^×R p=ω^~R p(t),p(0)=p0
    linear velocity at time t t t, recall x ˙ = A x , x ( 0 ) = x 0 ⇒ x ( t ) = e A t x 0 \dot{x}=Ax,x\left( 0 \right) =x_0\Rightarrow x\left( t \right) =e^{At}x_0 x˙=Ax,x(0)=x0⇒x(t)=eAtx0
  • This is a linear ODE with solution : R ⃗ ˙ p ( t ) = ω ^ ~ R ⃗ p ( t ) ⇒ R ⃗ ˙ p ( t ) = e ω ^ ~ t R ⃗ p 0 \dot{\vec{R}}_p\left( t \right) =\tilde{\hat{\omega}}\vec{R}_p\left( t \right) \Rightarrow \dot{\vec{R}}p\left( t \right) =e^{\tilde{\hat{\omega}}t}\vec{R}{p_0} R ˙p(t)=ω^~R p(t)⇒R ˙p(t)=eω^~tR p0
  • After t = θ t=\theta t=θ, the point has been rotated by θ \theta θ degree. Note R ⃗ ˙ p ( θ ) = e ω ^ ~ θ R ⃗ p 0 \dot{\vec{R}}p\left( \theta \right) =e^{\tilde{\hat{\omega}}\theta}\vec{R}{p_0} R ˙p(θ)=eω^~θR p0, e ω ^ ~ θ e^{\tilde{\hat{\omega}}\theta} eω^~θ is rotation operator
  • R o t ( ω ^ , θ ) ≜ e ω ^ ~ θ \mathrm{Rot}\left( \hat{\omega},\theta \right) \triangleq e^{\tilde{\hat{\omega}}\theta} Rot(ω^,θ)≜eω^~θ can be viewed as a rotation operator that rotates a point about ω ^ \hat{\omega} ω^ through θ \theta θ degree

The discussion holds for any reference frame

1.3 Raotation Matrix as a Rotation Operator

  • Theorem: Every rotation matrix R R R can be written as R = R o t ( ω ^ , θ ) ≜ e ω ^ ~ θ ∈ S O ( 3 ) { R T R = E , det ⁡ ( R ) = 1 } R=\mathrm{Rot}\left( \hat{\omega},\theta \right) \triangleq e^{\tilde{\hat{\omega}}\theta}\in SO\left( 3 \right) \left\{ R^{\mathrm{T}}R=E,\det \left( R \right) =1 \right\} R=Rot(ω^,θ)≜eω^~θ∈SO(3){RTR=E,det(R)=1}, i.e. , it represents a rotation operation about ω ^ \hat{\omega} ω^ by θ \theta θ
  • We have seen how to use R R R to represent frame orientation and change of coordinate between different frames. They are quite different from the operator interpretation of R R R
  • To apply the rotation operation, all the vectors / matrices have to be expressed in the same refrence frame

For example, assume R = [ 1 0 0 0 0 − 1 0 1 0 ] = R o t ( x ^ , π 2 ) R=\left[ \begin{matrix} 1& 0& 0\\ 0& 0& -1\\ 0& 1& 0\\ \end{matrix} \right] =\mathrm{Rot}\left( \hat{x},\frac{\pi}{2} \right) R= 1000010−10 =Rot(x^,2π)

Consider a relation q = R p q=Rp q=Rp:

  • Change reference frame interpretation : two frames { A } , { B } \left\{ A \right\} ,\left\{ B \right\} {A},{B} , one physical Point a a a
    R R R : orientation of { B } \left\{ B \right\} {B} relative to { A } \left\{ A \right\} {A} : i.e. R = [ Q B A ] R=\left[ Q_{\mathrm{B}}^{A} \right] R=[QBA]
    then : p = a B , q = a A , q = R p ⇒ a A = [ Q B A ] a B p=a^B,q=a^A,q=Rp\Rightarrow a^A=\left[ Q_{\mathrm{B}}^{A} \right] a^B p=aB,q=aA,q=Rp⇒aA=[QBA]aB
  • Rotation operator interpretation : one frame and two points
    a → a ′ , p = a A , q = a ′ A ⇒ a ′ A = R a A a\rightarrow a^{\prime},p=a^A,q={a^{\prime}}^A\Rightarrow {a^{\prime}}^A=Ra^A a→a′,p=aA,q=a′A⇒a′A=RaA

Consider the frame operation:

  • Change of reference frame :
    Have one "frame object", two reference frames
    Frame object { A } \left\{ A \right\} {A}, orientation in { O } \left\{ O \right\} {O} , is R A O , R A B R_{\mathrm{A}}^{O},R_{\mathrm{A}}^{B} RAO,RAB, ⇒ R A O = R B O R A B = R R A B \Rightarrow R_{\mathrm{A}}^{O}=R_{\mathrm{B}}^{O}R_{\mathrm{A}}^{B}=RR_{\mathrm{A}}^{B} ⇒RAO=RBORAB=RRAB
  • Rotation a frame : R ′ A = R R A {R^{\prime}}A=RR_A R′A=RRA
    two frame objects, one refrence frame
    more precisely : R ′ A = R R A ⇒ R A ′ O = R R A O {R^{\prime}}A=RR_A\Rightarrow R{\mathrm{A}^{\prime}}^{O}=RR
    {\mathrm{A}}^{O} R′A=RRA⇒RA′O=RRAO

2. Rotation Operation in Different Frames

2.1 Rotation Martix Properties

Q \] \[ Q \] T = E \\left\[ Q \\right\] \\left\[ Q \\right\] \^{\\mathrm{T}}=E \[Q\]\[Q\]T=E \[ Q 1 \] \[ Q 2 \] ∈ S O ( 3 ) , i f    \[ Q 1 \] , \[ Q 2 \] ∈ S O ( 3 ) \\left\[ Q_1 \\right\] \\left\[ Q_2 \\right\] \\in SO\\left( 3 \\right) ,if\\,\\,\\left\[ Q_1 \\right\] ,\\left\[ Q_2 \\right\] \\in SO\\left( 3 \\right) \[Q1\]\[Q2\]∈SO(3),if\[Q1\],\[Q2\]∈SO(3): product of two rotation matrices is also a rotation matrix p , q ∈ R 3 , ∥ \[ Q \] R ⃗ p − \[ Q \] R ⃗ q ∥ 2 = ∥ \[ Q \] ( R ⃗ p − R ⃗ q ) ∥ 2 = ( R ⃗ p − R ⃗ q ) T \[ Q \] T \[ Q \] ( R ⃗ p − R ⃗ q ) = ∥ R ⃗ p − R ⃗ q ∥ 2 p,q\\in \\mathbb{R} \^3,\\left\\\| \\left\[ Q \\right\] \\vec{R}_p-\\left\[ Q \\right\] \\vec{R}_{\\mathrm{q}} \\right\\\| \^2=\\left\\\| \\left\[ Q \\right\] \\left( \\vec{R}_p-\\vec{R}_{\\mathrm{q}} \\right) \\right\\\| \^2=\\left( \\vec{R}_p-\\vec{R}_{\\mathrm{q}} \\right) \^{\\mathrm{T}}\\left\[ Q \\right\] \^{\\mathrm{T}}\\left\[ Q \\right\] \\left( \\vec{R}_p-\\vec{R}_{\\mathrm{q}} \\right) =\\left\\\| \\vec{R}_p-\\vec{R}_{\\mathrm{q}} \\right\\\| \^2 p,q∈R3, \[Q\]R p−\[Q\]R q 2= \[Q\](R p−R q) 2=(R p−R q)T\[Q\]T\[Q\](R p−R q)= R p−R q 2 ∥ R ⃗ p − R ⃗ q ∥ = ∥ \[ Q \] R ⃗ p − \[ Q \] R ⃗ q ∥ \\left\\\| \\vec{R}_p-\\vec{R}_{\\mathrm{q}} \\right\\\| =\\left\\\| \\left\[ Q \\right\] \\vec{R}_p-\\left\[ Q \\right\] \\vec{R}_{\\mathrm{q}} \\right\\\| R p−R q = \[Q\]R p−\[Q\]R q : rotation operator preserves distance \[ Q \] ( v ⃗ × w ⃗ ) = \[ Q \] v ⃗ × \[ Q \] w ⃗ \\left\[ Q \\right\] \\left( \\vec{v}\\times \\vec{w} \\right) =\\left\[ Q \\right\] \\vec{v}\\times \\left\[ Q \\right\] \\vec{w} \[Q\](v ×w )=\[Q\]v ×\[Q\]w \[ Q \] w ⃗ \~ \[ Q \] T = \[ Q \] w ⃗ \~ \\left\[ Q \\right\] \\tilde{\\vec{w}}\\left\[ Q \\right\] \^{\\mathrm{T}}=\\widetilde{\\left\[ Q \\right\] \\vec{w}} \[Q\]w \~\[Q\]T=\[Q\]w ------ important ### 2.2 Rotation Operation in Different Frames Consider two frames { A } \\left\\{ A \\right\\} {A} and { B } \\left\\{ B \\right\\} {B}, the actual numerical values of the operator R o t ( ω \^ , θ ) \\mathrm{Rot}\\left( \\hat{\\omega},\\theta \\right) Rot(ω\^,θ) depend on both the reference frame to repersent ω \^ \\hat{\\omega} ω\^ and the reference frame to represent the operator itself Consider a rotation axis ω \^ \\hat{\\omega} ω\^ (coordinate free vector), with { A } \\left\\{ A \\right\\} {A} - frame coordinate ω \^ A \\hat{\\omega}\^A ω\^A and { B } \\left\\{ B \\right\\} {B} - frame. We know ω ⃗ A = \[ Q B A \] ω ⃗ B \\vec{\\omega}\^A=\\left\[ Q_{\\mathrm{B}}\^{A} \\right\] \\vec{\\omega}\^B ω A=\[QBA\]ω B Let B R o t ( B ω \^ , θ ) \^B\\mathrm{Rot}\\left( \^B\\hat{\\omega},\\theta \\right) BRot(Bω\^,θ) and A R o t ( A ω \^ , θ ) \^A\\mathrm{Rot}\\left( \^A\\hat{\\omega},\\theta \\right) ARot(Aω\^,θ) be the two rotation matrices, representing the same rotation operatioon R o t ( ω \^ , θ ) \\mathrm{Rot}\\left( \\hat{\\omega},\\theta \\right) Rot(ω\^,θ) in frames { A } \\left\\{ A \\right\\} {A} and { B } \\left\\{ B \\right\\} {B} We have the relation : A R o t ( A ω \^ , θ ) = \[ Q B A \] B R o t ( B ω \^ , θ ) \[ Q A B \] \^A\\mathrm{Rot}\\left( \^A\\hat{\\omega},\\theta \\right) =\\left\[ Q_{\\mathrm{B}}\^{A} \\right\] \^B\\mathrm{Rot}\\left( \^B\\hat{\\omega},\\theta \\right) \\left\[ Q_{\\mathrm{A}}\^{B} \\right\] ARot(Aω\^,θ)=\[QBA\]BRot(Bω\^,θ)\[QAB

  • Approach 1 : two points p → p ′ ⇒ R ⃗ p ′ A = A R o t ( A ω ^ , θ ) R ⃗ p A p\rightarrow p^{\prime}\Rightarrow \vec{R}{\mathrm{p}^{\prime}}^{A}=^A\mathrm{Rot}\left( ^A\hat{\omega},\theta \right) \vec{R}{\mathrm{p}}^{A} p→p′⇒R p′A=ARot(Aω^,θ)R pA
    { B } \left\{ B \right\} {B} - frame : R ⃗ p ′ B = B R o t ( B ω ^ , θ ) R ⃗ p B \vec{R}{\mathrm{p}^{\prime}}^{B}=^B\mathrm{Rot}\left( ^B\hat{\omega},\theta \right) \vec{R}{\mathrm{p}}^{B} R p′B=BRot(Bω^,θ)R pB
    ⇒ [ Q B A ] R ⃗ p ′ B = [ Q B A ] B R o t ( B ω ^ , θ ) R ⃗ p B ⇒ R ⃗ p ′ A = [ Q B A ] B R o t ( B ω ^ , θ ) [ Q B A ] R ⃗ p A ⇒ A R o t ( A ω ^ , θ ) = [ Q B A ] B R o t ( B ω ^ , θ ) [ Q B A ] \Rightarrow \left[ Q_{\mathrm{B}}^{A} \right] \vec{R}{\mathrm{p}^{\prime}}^{B}=\left[ Q{\mathrm{B}}^{A} \right] ^B\mathrm{Rot}\left( ^B\hat{\omega},\theta \right) \vec{R}{\mathrm{p}}^{B}\Rightarrow \vec{R}{\mathrm{p}^{\prime}}^{A}=\left[ Q_{\mathrm{B}}^{A} \right] ^B\mathrm{Rot}\left( ^B\hat{\omega},\theta \right) \left[ Q_{\mathrm{B}}^{A} \right] \vec{R}{\mathrm{p}}^{A}\Rightarrow ^A\mathrm{Rot}\left( ^A\hat{\omega},\theta \right) =\left[ Q{\mathrm{B}}^{A} \right] ^B\mathrm{Rot}\left( ^B\hat{\omega},\theta \right) \left[ Q_{\mathrm{B}}^{A} \right] ⇒[QBA]R p′B=[QBA]BRot(Bω^,θ)R pB⇒R p′A=[QBA]BRot(Bω^,θ)[QBA]R pA⇒ARot(Aω^,θ)=[QBA]BRot(Bω^,θ)[QBA]

  • Approach 2 : for a ⃗ ∈ R 3 , a ⃗ ~ ∈ s o ( 3 ) , [ Q ] ∈ S O ( 3 ) \vec{a}\in \mathbb{R} ^3,\tilde{\vec{a}}\in so\left( 3 \right) ,\left[ Q \right] \in SO\left( 3 \right) a ∈R3,a ~∈so(3),[Q]∈SO(3)
    ⇒ [ Q ] a ⃗ ∈ R 3 , [ Q ] a ⃗ ~ = [ Q ] a ⃗ ~ [ Q ] T \Rightarrow \left[ Q \right] \vec{a}\in \mathbb{R} ^3,\widetilde{\left[ Q \right] \vec{a}}=\left[ Q \right] \tilde{\vec{a}}\left[ Q \right] ^{\mathrm{T}} ⇒[Q]a ∈R3,[Q]a =[Q]a ~[Q]T
    R o t ( ω ⃗ A , θ ) = e ω ⃗ ~ A θ = e [ Q B A ] ω ⃗ B ~ θ = e [ Q B A ] ω ⃗ ~ B [ Q B A ] T θ = [ Q B A ] e ω ⃗ ~ B θ [ Q B A ] T ← e P A P − 1 = P e A P − 1 Rot\left( \vec{\omega}^A,\theta \right) =e^{\tilde{\vec{\omega}}^A\theta}=e^{\widetilde{\left[ Q_{\mathrm{B}}^{A} \right] \vec{\omega}^B}\theta}=e^{\left[ Q_{\mathrm{B}}^{A} \right] \tilde{\vec{\omega}}^B\left[ Q_{\mathrm{B}}^{A} \right] ^{\mathrm{T}}\theta}=\left[ Q_{\mathrm{B}}^{A} \right] e^{\tilde{\vec{\omega}}^B\theta}\left[ Q_{\mathrm{B}}^{A} \right] ^{\mathrm{T}}\gets e^{PAP^{-1}}=Pe^AP^{-1} Rot(ω A,θ)=eω ~Aθ=e[QBA]ω B θ=e[QBA]ω ~B[QBA]Tθ=[QBA]eω ~Bθ[QBA]T←ePAP−1=PeAP−1

3. Rigid-Body Operation via Diffeential Equation

Recall: Every [ Q ] ∈ S O ( 3 ) \left[ Q \right] \in SO\left( 3 \right) [Q]∈SO(3) can be viewed as the state transition matrix associated with the rotation ODE(1). It maps the initial position to the current position(after the rotation motion)

  • p ⃗ ( θ ) = R o t ( ω ⃗ , θ ) p ⃗ 0 \vec{p}\left( \theta \right) =Rot\left( \vec{\omega},\theta \right) \vec{p}_0 p (θ)=Rot(ω ,θ)p 0 viewed as solution to p ⃗ ˙ ( t ) = ω ⃗ ~ p ⃗ ( t ) , p ⃗ ( 0 ) = p ⃗ 0 \dot{\vec{p}}\left( t \right) =\tilde{\vec{\omega}}\vec{p}\left( t \right) ,\vec{p}\left( 0 \right) =\vec{p}_0 p ˙(t)=ω ~p (t),p (0)=p 0 at t = θ t=\theta t=θ
  • The above relation requires that the rotation axis passes through the origin.

We can obtain similar ODE characterization for [ T ] ∈ S E ( 3 ) \left[ T \right] \in SE\left( 3 \right) [T]∈SE(3) , which will lead to exponential coordinate of SE(3)

Recall : Theorem (Chasles): Every rigid body motion can be realized by a screw motion

Consider a point p p p undergoes a screw motion with screw axis S \mathcal{S} S and unit speed ( θ ˙ = 1 \dot{\theta}=1 θ˙=1) . Let the cooresponding twist be V = θ ˙ S = ( ω ⃗ , v ⃗ ) \mathcal{V} =\dot{\theta}\mathcal{S} =\left( \vec{\omega},\vec{v} \right) V=θ˙S=(ω ,v ) . The motion can be described be the following ODE.
p ⃗ ˙ ( t ) = ω ⃗ × p ⃗ ( t ) + v ⃗ ⇒ [ p ⃗ ˙ ( t ) 0 ] = [ ω ⃗ ~ v ⃗ 0 0 ] [ p ⃗ ( t ) 1 ] \dot{\vec{p}}\left( t \right) =\vec{\omega}\times \vec{p}\left( t \right) +\vec{v}\Rightarrow \left[ \begin{array}{c} \dot{\vec{p}}\left( t \right)\\ 0\\ \end{array} \right] =\left[ \begin{matrix} \tilde{\vec{\omega}}& \vec{v}\\ 0& 0\\ \end{matrix} \right] \left[ \begin{array}{c} \vec{p}\left( t \right)\\ 1\\ \end{array} \right] p ˙(t)=ω ×p (t)+v ⇒[p ˙(t)0]=[ω ~0v 0][p (t)1]

Solution in homogeneous coordinate is :

p ⃗ ( t ) 1 \] = exp ⁡ ( \[ ω ⃗ \~ v ⃗ 0 0 \] t ) \[ p ⃗ ( 0 ) 1 \] \\left\[ \\begin{array}{c} \\vec{p}\\left( t \\right)\\\\ 1\\\\ \\end{array} \\right\] =\\exp \\left( \\left\[ \\begin{matrix} \\tilde{\\vec{\\omega}}\& \\vec{v}\\\\ 0\& 0\\\\ \\end{matrix} \\right\] t \\right) \\left\[ \\begin{array}{c} \\vec{p}\\left( 0 \\right)\\\\ 1\\\\ \\end{array} \\right\] \[p (t)1\]=exp(\[ω \~0v 0\]t)\[p (0)1

3.1 SE(3)

For any twist V = ( ω ⃗ , v ⃗ ) \mathcal{V} =\left( \vec{\omega},\vec{v} \right) V=(ω ,v ), let [ V ] \left[ \mathcal{V} \right] [V] be its matrix representation of twist V \mathcal{V} V

V \] = \[ ω ⃗ \~ v ⃗ 0 0 \] ∈ R 4 × 4 \\left\[ \\mathcal{V} \\right\] =\\left\[ \\begin{matrix} \\tilde{\\vec{\\omega}}\& \\vec{v}\\\\ 0\& 0\\\\ \\end{matrix} \\right\] \\in \\mathbb{R} \^{4\\times 4} \[V\]=\[ω \~0v 0\]∈R4×4 * The abve definition also applies to a screw axis S = ( ω ⃗ , v ⃗ ) , \[ S \] = \[ ω ⃗ \~ v ⃗ 0 0 \] \\mathcal{S} =\\left( \\vec{\\omega},\\vec{v} \\right) ,\\left\[ \\mathcal{S} \\right\] =\\left\[ \\begin{matrix} \\tilde{\\vec{\\omega}}\& \\vec{v}\\\\ 0\& 0\\\\ \\end{matrix} \\right\] S=(ω ,v ),\[S\]=\[ω \~0v 0

  • With this notation, the solution is [ p ⃗ ( t ) 1 ] = e [ S ] t [ p ⃗ ( 0 ) 1 ] \left[ \begin{array}{c} \vec{p}\left( t \right)\\ 1\\ \end{array} \right] =e^{\left[ \mathcal{S} \right] t}\left[ \begin{array}{c} \vec{p}\left( 0 \right)\\ 1\\ \end{array} \right] [p (t)1]=e[S]t[p (0)1]

  • Fact: e [ S ] t ∈ S E ( 3 ) e^{\left[ \mathcal{S} \right] t}\in SE\left( 3 \right) e[S]t∈SE(3) is always a valid homogeneous transformation matrix.

    T \] = e \[ S \] t = \[ \[ Q \] R ⃗ 0 1 \] \\left\[ T \\right\] =e\^{\\left\[ \\mathcal{S} \\right\] t}=\\left\[ \\begin{matrix} \\left\[ Q \\right\]\& \\vec{R}\\\\ 0\& 1\\\\ \\end{matrix} \\right\] \[T\]=e\[S\]t=\[\[Q\]0R 1

  • Fact: Any T ∈ S E ( 3 ) T\in SE\left( 3 \right) T∈SE(3) can be written as [ T ] = e [ S ] t \left[ T \right] =e^{\left[ \mathcal{S} \right] t} [T]=e[S]t, i.e. , it can be viewed as an operator that moves a point/frame along the screw axis S \mathcal{S} S at unit speed for time t t t

3.2 se(3)

∀ ω ⃗ ∈ R 3 → ω ⃗ ~ ∈ s o ( 3 ) → e ω ⃗ ~ θ ∈ S O ( 3 ) ∀ S ∈ R 6 → [ S ] ∣ 4 × 4 = [ ω ⃗ ~ v ⃗ 0 0 ] ∈ s e ( 3 ) → e [ S ] θ ∈ S E ( 3 ) \forall \vec{\omega}\in \mathbb{R} ^3\rightarrow \tilde{\vec{\omega}}\in so\left( 3 \right) \rightarrow e^{\tilde{\vec{\omega}}\theta}\in SO\left( 3 \right) \\ \forall \mathcal{S} \in \mathbb{R} ^6\rightarrow \left. \left[ \mathcal{S} \right] \right|_{4\times 4}=\left[ \begin{matrix} \tilde{\vec{\omega}}& \vec{v}\\ 0& 0\\ \end{matrix} \right] \in se\left( 3 \right) \rightarrow e^{\left[ \mathcal{S} \right] \theta}\in SE\left( 3 \right) ∀ω ∈R3→ω ~∈so(3)→eω ~θ∈SO(3)∀S∈R6→[S]∣4×4=[ω ~0v 0]∈se(3)→e[S]θ∈SE(3)

Similar to s o ( 3 ) so\left( 3 \right) so(3) , we can define s e ( 3 ) se\left( 3 \right) se(3) :
s e ( 3 ) = { ( ω ⃗ ~ , v ⃗ ) , ω ⃗ ~ ∈ s o ( 3 ) , v ⃗ ∈ R 3 } se\left( 3 \right) =\left\{ \left( \tilde{\vec{\omega}},\vec{v} \right) ,\tilde{\vec{\omega}}\in so\left( 3 \right) ,\vec{v}\in \mathbb{R} ^3 \right\} se(3)={(ω ~,v ),ω ~∈so(3),v ∈R3}

  • s e ( 3 ) se\left( 3 \right) se(3) contains all matrix representation of twists or equivalently all twists.
  • In some references, [ V ] \left[ \mathcal{V} \right] [V] is called a twist
  • Sometimes, we may abuse notation by writing V ∈ s e ( 3 ) \mathcal{V} \in se\left( 3 \right) V∈se(3)

4. Homogeneous Transformation Matrix as Rigid-Body Operator

  • ODE for rigid motion under V = ( ω ⃗ , v ⃗ ) \mathcal{V} =\left( \vec{\omega},\vec{v} \right) V=(ω ,v )
    p ⃗ ˙ = v ⃗ + ω ⃗ × p ⃗ ⇒ [ p ⃗ ˙ 0 ] = [ ω ⃗ ~ v ⃗ 0 0 ] [ p ⃗ 1 ] ⇒ [ p ⃗ ˙ 0 ] = e [ V ] t [ p ⃗ 1 ] \dot{\vec{p}}=\vec{v}+\vec{\omega}\times \vec{p}\Rightarrow \left[ \begin{array}{c} \dot{\vec{p}}\\ 0\\ \end{array} \right] =\left[ \begin{matrix} \tilde{\vec{\omega}}& \vec{v}\\ 0& 0\\ \end{matrix} \right] \left[ \begin{array}{c} \vec{p}\\ 1\\ \end{array} \right] \Rightarrow \left[ \begin{array}{c} \dot{\vec{p}}\\ 0\\ \end{array} \right] =e^{\left[ \mathcal{V} \right] t}\left[ \begin{array}{c} \vec{p}\\ 1\\ \end{array} \right] p ˙=v +ω ×p ⇒[p ˙0]=[ω ~0v 0][p 1]⇒[p ˙0]=e[V]t[p 1]

  • Consider "unit velocity" V = S \mathcal{V} =\mathcal{S} V=S, then time t t t means degree

    if not unit speed : V = θ ˙ S \mathcal{V} =\dot{\theta}\mathcal{S} V=θ˙S

  • p ⃗ ′ 1 \] = \[ T \] \[ p ⃗ 1 \] \\left\[ \\begin{array}{c} \\vec{p}\^{\\prime}\\\\ 1\\\\ \\end{array} \\right\] =\\left\[ T \\right\] \\left\[ \\begin{array}{c} \\vec{p}\\\\ 1\\\\ \\end{array} \\right\] \[p ′1\]=\[T\]\[p 1\] : "rotate" p ⃗ \\vec{p} p about screw axis S \\mathcal{S} S by θ \\theta θ degree \[ T \] = e \[ S \] θ \\left\[ T \\right\] =e\^{\\left\[ \\mathcal{S} \\right\] \\theta} \[T\]=e\[S\]θ, two points : \[ p ⃗ 1 \] → \[ p ⃗ ′ 1 \] \\left\[ \\begin{array}{c} \\vec{p}\\\\ 1\\\\ \\end{array} \\right\] \\rightarrow \\left\[ \\begin{array}{c} \\vec{p}\^{\\prime}\\\\ 1\\\\ \\end{array} \\right\] \[p 1\]→\[p ′1\] , more precisely : \[ p ⃗ O ′ 1 \] = \[ T O \] \[ p ⃗ O 1 \] \\left\[ \\begin{array}{c} {\\vec{p}\^O}\^{\\prime}\\\\ 1\\\\ \\end{array} \\right\] =\\left\[ T\^O \\right\] \\left\[ \\begin{array}{c} \\vec{p}\^O\\\\ 1\\\\ \\end{array} \\right\] \[p O′1\]=\[TO\]\[p O1

    For [ T ] ∈ S E ( 3 ) \left[ T \right] \in SE\left( 3 \right) [T]∈SE(3) config representative [ T B A ] \left[ T_{\mathrm{B}}^{A} \right] [TBA] : config of { B } \left\{ B \right\} {B} relative to { A } \left\{ A \right\} {A} ------ [ p ⃗ A 1 ] = [ T B A ] [ p ⃗ B 1 ] \left[ \begin{array}{c} \vec{p}^A\\ 1\\ \end{array} \right] =\left[ T_{\mathrm{B}}^{A} \right] \left[ \begin{array}{c} \vec{p}^B\\ 1\\ \end{array} \right] [p A1]=[TBA][p B1]------same physical point but two different frames

  • T \] \[ T A \] \\left\[ T \\right\] \\left\[ T_A \\right\] \[T\]\[TA\] : "rotate" { A } \\left\\{ A \\right\\} {A}-frame about S \\mathcal{S} S by θ \\theta θ degree

Expression of [ T ] \left[ T \right] [T] in another frame (other than { O } \left\{ O \right\} {O}):

T O \] ↔ \[ T B O \] − 1 \[ T O \] \[ T B O \] \\left\[ T\^O \\right\] \\leftrightarrow \\left\[ T_{\\mathrm{B}}\^{O} \\right\] \^{-1}\\left\[ T\^O \\right\] \\left\[ T_{\\mathrm{B}}\^{O} \\right\] \[TO\]↔\[TBO\]−1\[TO\]\[TBO

5. Rigid-Body Operation of Screw Axis

Consider an arbitrary screw axis S \mathcal{S} S , suppose the axis has gone through a rigid transformation [ T ] = ( [ Q ] , R ⃗ ) \left[ T \right] =\left( \left[ Q \right] ,\vec{R} \right) [T]=([Q],R ) and the resulting new screw axis is S ′ \mathcal{S} ^{\prime} S′ , then
S ′ = [ A d T ] S \mathcal{S} ^{\prime}=\left[ Ad_T \right] \mathcal{S} S′=[AdT]S

Let's work an arbitrary frame { A } \left\{ A \right\} {A} (rigidly attached to the screw axis)

Let { B } \left\{ B \right\} {B} be the frame obtained be apply [ T ] \left[ T \right] [T] operation

the coordinate of S \mathcal{S} S in { A } \left\{ A \right\} {A} is the same as the coordinate of S ′ \mathcal{S} ^{\prime} S′ in { B } \left\{ B \right\} {B} : S A = S ′ B \mathcal{S} ^A={\mathcal{S} ^{\prime}}^B SA=S′B

We also know [ T B ] = [ T ] [ T A ] , [ T ] = [ T B A ] \left[ T_B \right] =\left[ T \right] \left[ T_{\mathrm{A}} \right] ,\left[ T \right] =\left[ T_{\mathrm{B}}^{A} \right] [TB]=[T][TA],[T]=[TBA]

Multiply [ X B A ] \left[ X_{\mathrm{B}}^{A} \right] [XBA] : ⇒ [ X B A ] S A = [ X B A ] S ′ B = S ′ A ⇒ S ′ A = [ X B A ] S A \Rightarrow \left[ X_{\mathrm{B}}^{A} \right] \mathcal{S} ^A=\left[ X_{\mathrm{B}}^{A} \right] {\mathcal{S} ^{\prime}}^B={\mathcal{S} ^{\prime}}^A\Rightarrow {\mathcal{S} ^{\prime}}^A=\left[ X_{\mathrm{B}}^{A} \right] \mathcal{S} ^A ⇒[XBA]SA=[XBA]S′B=S′A⇒S′A=[XBA]SA

X B A \] = \[ \[ Q B A \] 0 R ⃗ \~ B A \[ Q B A \] \[ Q B A \] \] = \[ A d T \] \\left\[ X_{\\mathrm{B}}\^{A} \\right\] =\\left\[ \\begin{matrix} \\left\[ Q_{\\mathrm{B}}\^{A} \\right\]\& 0\\\\ \\tilde{\\vec{R}}_{\\mathrm{B}}\^{A}\\left\[ Q_{\\mathrm{B}}\^{A} \\right\]\& \\left\[ Q_{\\mathrm{B}}\^{A} \\right\]\\\\ \\end{matrix} \\right\] =\\left\[ Ad_T \\right\] \[XBA\]=\[\[QBA\]R \~BA\[QBA\]0\[QBA\]\]=\[AdT

1

2

3

4

5

6

7

8

9

相关推荐
向阳逐梦1 天前
ROS2 高级组件中的webots介绍
机器人
ModestCoder_1 天前
将一个新的机器人模型导入最新版isaacLab进行训练(以unitree H1_2为例)
android·java·机器人
跳跳糖炒酸奶1 天前
第四章、Isaacsim在GUI中构建机器人(2):组装一个简单的机器人
人工智能·python·算法·ubuntu·机器人
csssnxy1 天前
网红指路机器人的主要功能有哪些?
机器人
跳跳糖炒酸奶1 天前
第四章、Isaacsim在GUI中构建机器人(1): 添加简单对象
人工智能·python·ubuntu·机器人
扫地的小何尚1 天前
NVIDIA工业设施数字孪生中的机器人模拟
android·java·c++·链表·语言模型·机器人·gpu
硅谷秋水1 天前
MoLe-VLA:通过混合层实现的动态跳层视觉-语言-动作模型实现高效机器人操作
人工智能·深度学习·机器学习·计算机视觉·语言模型·机器人
OpenLoong 开源社区1 天前
技术视界 | 从哲学到技术:人形机器人感知导航的探索(下篇)
人工智能·机器人·开源社区·人形机器人·openloong
机器人之树小风1 天前
KUKA机器人零点校正工具EMD
经验分享·科技·机器人
Wnq100722 天前
智能巡检机器人在化工企业的应用研究
运维·计算机视觉·机器人·智能硬件·deepseek