[足式机器人]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.1 Skew Symmetric Matrices
    • 1.2 Rotation Operation via Differential Equation
  • 1.3 Raotation Matrix as a Rotation Operator
  • 2. Rotation Operation in Different Frames
    • 2.1 Rotation Martix Properties
    • 2.2 Rotation Operation in Different Frames
  • 3. Rigid-Body Operation via Diffeential Equation
    • 3.1 SE(3)
    • 3.2 se(3)
  • 4. Homogeneous Transformation Matrix as Rigid-Body Operator
  • 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){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)=x0x(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= 100001010 =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=RpaA=[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=aAaA=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 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=RRARAO=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 pR q) 2=(R pR q)T[Q]T[Q](R pR q)= R pR 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 pR 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} ppR 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 pBR pA=[QBA]BRot(Bω^,θ)[QBA]R pAARot(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]TePAP1=PeAP1

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]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]0R 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=[ω ~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) 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]=[ω ~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 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=SASA=[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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/209412.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java第21章网络通信

网络程序设计基础 网络程序设计编写的是与其他计算机进行通信的程序。Java 已经将网络程序所需要的元素封 装成不同的类,用户只要创建这些类的对象,使用相应的方法,即使不具备有关的网络支持,也可 以编写出高质量的网络…

kennard-stone算法实现样本集划分(ks算法)

目录 一、 Kennard-Stone算法原理(KS算法) 二、Kennard-Stone算法作用 三、代码 四、对选出来的train样本使用T-SNE算法进行绘制 五、参考链接 一、 Kennard-Stone算法原理(KS算法) KS算法原理:把所有的样本都看…

测试学习笔记1:@SpringbootTest测试注解详解

SpringBootTest是一个用于在springboot应用程序中启动完整应用的测试环境注解。它主要用于集成测试,可以启动一个嵌入式的数据库,加载完整的spring上下文,并自动装配测试类的ApplicationContext。 以下是SpringBootTest的关键特性&#xff1a…

机器学习实验四:贝叶斯分类器

系列文章目录 机器学习实验一:线性回归机器学习实验二:决策树模型机器学习实验三:支持向量机模型机器学习实验四:贝叶斯分类器机器学习实验五:集成学习机器学习实验六:聚类 文章目录 系列文章目录一、实验…

47.0/超链接的使用(详细版)

目录 47.1 创建超链接的基本语法 47.2 路径 47.2.1 绝对路径 47.2.2 相对路径 47.2.3 相对路径和绝对路径举例 47.3 内部超链接的建立 47.4 外部超链接的建立 47.5 书签链接 47.6 target 属性 HTML 文件中最重要的应用之一就是超链接。正因为有了超链接,互联网 上的各种资源才…

自动抓取App数据

随着移动互联网的快速发展,App已经成为我们日常生活中必不可少的一部分。而App数据的抓取和分析对于开发者、运营者以及市场研究人员来说变得越来越重要。今天,我们要为大家介绍一种神奇的方法——自动抓取App数据,让你的数据分析更加高效&am…

实用案例 | 用 Binning Explorer 小程序创建评分卡题

这个案例展示如何运用 MATLAB 中自带的 Binning Explorer 小程序来创建信用评级中的评分卡。 用 Binning Explorer 对样本进行分箱操作, 创建图表来展示分箱信息,并将创建的对象”creditscorecard”导出。 然后利用 creditscorecard 对象,结合 Financi…

基于深度学习路径规划RRT*-训练图像预处理

基于深度学习路径规划RRT*-训练图像预处理 图像预处理说明 在基于采样的RRT算法对机器人进行路径规划时,由于采样点的随机性,会增加路径的搜索时间的路径的非最优性,所以基于神经网络的优势,利用深度学习进行RRT的随机采样&…

使用webstrom编写vue开启提示

1.语言服务器选择 2.文件类型–忽略的文件和文件夹,删去,node_modules,就可以点进去库了 3.禁用JSLint、TSLint 4.开启node辅助 5.如果是vite,开启自动读取,或手动指定 6.如果是Webpack,开启自动读取&#…

go-zero开发入门-API网关开发示例

开发一个 API 网关,代理 https://blog.csdn.net/Aquester/article/details/134856271 中的 RPC 服务。 网关完整源代码 // file: main.go package mainimport ("flag""fmt""github.com/zeromicro/go-zero/core/conf""github.c…

Git提交代码时出现: ‘LF will be replaced by CRLF the next time Git touches it‘

遇到的问题 windows平台进行 git add 时,控制台打印警告 问题分析 1. Dos/Windows平台默认换行符:回车(CR)换行(LF),即’\r\n’ 2. Mac/Linux平台默认换行符:换行(LF&…

小调查:你申请的流量卡,快递员派件时让你激活并充话费了吗?

说到这个问题,就要给大家普及一下流量卡的激活方式了,并不是所有的流量卡快递都需要快递激活并充话费,只有在套餐详情种明确标注快递激活的流量卡才会有这个要求,自主激活的流量卡则不需要的。 如图所示: 接下来&#…

网络规划的组成

网络规划是网络建设过程中非常重要的环节,同时也是一个系统性的过程。网络规划应该以需求为基础,同时考虑技术和工程的可行性。具体来说,网络规划包括网络需求分析、可行性分析和对现有网络的分析与描述。 1.网络需求分析在网络组建之前&…

已通过考试和认证注册以及后续计划表

已通过考试和认证注册以及后续计划表 软考 - 计算机技术与软件专业技术资格(水平)考试信息系统集成及服务项目管理人员工程类考试计划你关注的证书样子 软考 - 计算机技术与软件专业技术资格(水平)考试 高级 信息系统项目管理师&…

鸿蒙开发组件之Image

Image组件加载图片方式有三种: 1、网络地址加载 直接Image(xxxx),添加上图片的网络地址就可以了。注意:真机、模拟题调试需要申请"ohos.permission.INTERNET"权限 Image(https://xxxxxxx) 2、PixelMap格式加载像素图 Image(PixelMapObjec…

整数在内存中的存储

整数和浮点数在内存中的存储方式是不一样的,今天,我们来具体学习一下 文章目录 整数在内存中的存储浮点数在内存中的存储 整数在内存中的存储 我们在之前就已经了解过了整数有原码,反码,补码的形式,这三种方式都是二进…

php使用vue.js实现省市区三级联动

参考gpt 有问题问gpt 实现效果 现省市区三级联动的方法可以使用PHP结合AJAX异步请求来实现。下面是一个简单的示例代码&#xff1a; HTML部分&#xff1a; <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>省市区三级联动…

【vtkWidgetRepresentation】第七期 vtkImplicitPlaneRepresentation

很高兴在雪易的CSDN遇见你 前言 本文分享vtkImplicitPlaneRepresentation源码剖析&#xff0c;及相关的实例&#xff0c;该接口主要用于切割交互&#xff0c;希望对各位小伙伴有所帮助&#xff01; 感谢各位小伙伴的点赞关注&#xff0c;小易会继续努力分享&#xff0c;一起…

TCP Keepalive 和 HTTP Keep-Aliv

HTTP的Keep-Alive 在http1.0的版本中&#xff0c;它是基于请求-应答模型和TCP协议的&#xff0c;也就是在建立TCP连接后&#xff0c;客户端发送一次请求并且接收到响应后&#xff0c;就会立马断开TCP连接&#xff0c;称为HTTP短连接&#xff0c;这种方式比较耗费时间以及浪费资…

亚马逊运营推荐数仓项目实战

亚马逊运营推荐数仓项目实战 项目技术栈 HadoopSpark (Python)Scala SparkSQLSparkStreaming MongoDB Redis Kafka Flume ( SpringMVC vue) 1 项目介绍 1.1 项目系统架构 项目以推荐系统建设领域知名的经过修改过的中文亚马逊电商数据集作为依托&#xff0c;以某电商…