[足式机器人]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

Rigid-Body Operator in Different Frames

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

相关推荐
Lu_ffy-2 小时前
如何创建你的第一个 Telegram 机器人:一步步教程
机器人
EAI-Robotics5 小时前
机器人打包物品研究现状简述
机器人
肥猪猪爸5 小时前
使用卡尔曼滤波器估计pybullet中的机器人位置
数据结构·人工智能·python·算法·机器人·卡尔曼滤波·pybullet
清安无别事9 小时前
闲聊?泳池清洁机器人?
机器人
zhd15306915625ff9 小时前
库卡机器人维护需要注意哪些事项
安全·机器人·自动化
吃土少女古拉拉12 小时前
什么是计算机网络
计算机网络·学习笔记
宋1381027972013 小时前
Manus Xsens Metagloves虚拟现实手套
人工智能·机器人·vr·动作捕捉
禁默13 小时前
第六届机器人、智能控制与人工智能国际学术会议(RICAI 2024)
人工智能·机器人·智能控制
秀儿还能再秀1 天前
神经网络(系统性学习三):多层感知机(MLP)
神经网络·学习笔记·mlp·多层感知机
Robot2511 天前
Figure 02迎重大升级!!人形机器人独角兽[Figure AI]商业化加速
人工智能·机器人·微信公众平台