[足式机器人]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.3 Raotation Matrix as a Rotation Operator
- 2. Rotation Operation in Different Frames
- 3. Rigid-Body Operation via Diffeential Equation
- 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???ω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)?{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} Rp0?? 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)=ω^×Rp?=ω^~Rp?(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)=ω^~Rp?(t)?R˙p?(t)=eω^~tRp0??
- 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ω^~θRp0??, 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 a→a′,p=aA,q=a′A?a′A=RaAConsider 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 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]Rp??[Q]Rq?
?2=
?[Q](Rp??Rq?)
?2=(Rp??Rq?)T[Q]T[Q](Rp??Rq?)=
?Rp??Rq?
?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\| ?Rp??Rq? ?= ?[Q]Rp??[Q]Rq? ? : 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′?Rp′A?=ARot(Aω^,θ)RpA?
{ 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} Rp′B?=BRot(Bω^,θ)RpB?
? [ 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?]Rp′B?=[QBA?]BRot(Bω^,θ)RpB??Rp′A?=[QBA?]BRot(Bω^,θ)[QBA?]RpA??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?]=[ω~0?v0?][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?v0?]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?v0?]∈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?v0?]
-
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]0?R1?] -
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?=[ω~0?v0?]∈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?]=[ω~0?v0?][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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!