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

2023-12-13 03:36:28

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


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???ω3?0ω1??ω2??ω1?0? ?
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)?{SRn×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= ?100?001?0?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 aa,p=aA,q=aA?aA=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?=RBO?RAB?=RRAB?
  • Rotation a frame : R ′ A = R R A {R^{\prime}}_A=RR_A RA?=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} RA?=RRA??RAO?=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,qR3, ?[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} pp?R pA?=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 pB?=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 pB?=[QBA?]BRot(Bω^,θ)R pB??R pA?=[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?]TePAP?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?]=[ω ~0?v 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([ω ~0?v 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]=[ω ~0?v 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]=[ω ~0?v 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]tSE(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]0?R 1?]

  • Fact: Any T ∈ S E ( 3 ) T\in SE\left( 3 \right) TSE(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)?SR6[S]4×4?=[ω ~0?v 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) Vse(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?]=[ω ~0?v 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 ?O1?]=[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=SB
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?]SB=SA?SA=[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

文章来源:https://blog.csdn.net/LiongLoure/article/details/134869910
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。