[足式机器人]Part4 南科大高等机器人控制课 Ch04 Exponential Coordinate of Rigid Body Configuration

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


1. Exponential Coordinate of SO(3) - rotation matrix

1.1 Towards Exponential Coordinate of SO(3)

Recall the polar coordinate system of the complex plane:

  • Every complex number z = x + y j = ρ e j ϕ z=x+yj=\rho e^{j\phi} z=x+yj=ρejϕ
  • Cartesian coordomaye ( x , y ) \left( x,y \right) (x,y) ↔ \leftrightarrow polar coorindate ( ρ , ϕ ) \left( \rho ,\phi \right) (ρ,ϕ)
  • For some applications, polar coordinate is preferred due to its geometric meaning

Consider a set M = { ( t , sin ⁡ ( 2 n π t ) ) : t ∈ ( 0 , 1 ) , n = 1 , 2 , 3 , ⋯   } M=\left\{ \left( t,\sin \left( 2n\pi t \right) \right) :t\in \left( 0,1 \right) ,n=1,2,3,\cdots \right\} M={(t,sin(2t)):t(0,1),n=1,2,3,}
在这里插入图片描述

1.2 Exponential Coordinate of SO(3)

Proposition [Exponential Coordinate ↔ \leftrightarrow SO(3)]

  • For any unit vector ω ^ ~ ∈ s o ( 3 ) \tilde{\hat{\omega}}\in so\left( 3 \right) ω^~so(3) and any θ ∈ R \theta \in \mathbb{R} θR ( ∥ ω ^ ∥ = 1 , e ω ⃗ ~ θ ∈ R 3 × 3 \left\| \hat{\omega} \right\| =1,e^{\tilde{\vec{\omega}}\theta}\in \mathbb{R} ^{3\times 3} ω^=1,eω ~θR3×3)
    e ω ⃗ ~ θ ∈ S O ( 3 ) e^{\tilde{\vec{\omega}}\theta}\in SO\left( 3 \right) eω ~θSO(3)
  • For any [ Q ] ∈ S O ( 3 ) \left[ Q \right] \in SO\left( 3 \right) [Q]SO(3), there exists ∥ ω ^ ∥ ∈ R 3 \left\| \hat{\omega} \right\| \in \mathbb{R} ^3 ω^R3 such that
    [ Q ] = e ω ⃗ ~ θ \left[ Q \right] =e^{\tilde{\vec{\omega}}\theta} [Q]=eω ~θ
    exp ⁡ : ω ⃗ ~ θ ∈ s o ( 3 ) → [ Q ] ∈ S O ( 3 ) log ⁡ : [ Q ] ∈ S O ( 3 ) → ω ⃗ ~ θ ∈ s o ( 3 ) \begin{array}{l} \exp :& \tilde{\vec{\omega}}\theta \in so\left( 3 \right)& \rightarrow& \left[ Q \right] \in SO\left( 3 \right)\\ \log :& \left[ Q \right] \in SO\left( 3 \right)& \rightarrow& \tilde{\vec{\omega}}\theta \in so\left( 3 \right)\\ \end{array} exp:log:ω ~θso(3)[Q]SO(3)[Q]SO(3)ω ~θso(3)
  • The vector ω ^ θ \hat{\omega}\theta ω^θ is called the exponential coordinate for [ Q ] \left[ Q \right] [Q]
  • The exponential coordinates are also called the canonical coordinates of the rotation group S O ( 3 ) SO\left( 3 \right) SO(3)

1.3 Rotation Matrix as Forward Exponential Map

  • Exponential Map : By definition
    e ω ^ ~ θ = E + θ ω ^ ~ + θ 2 2 ! ω ^ ~ 2 + θ 3 3 ! ω ^ ~ 3 + ⋯ e^{\tilde{\hat{\omega}}\theta}=E+\theta \tilde{\hat{\omega}}+\frac{\theta ^2}{2!}\tilde{\hat{\omega}}^2+\frac{\theta ^3}{3!}\tilde{\hat{\omega}}^3+\cdots eω^~θ=E+θω^~+2!θ2ω^~2+3!θ3ω^~3+
  • Rodrigues’ Formula : Given any unit vector ω ⃗ ~ ∈ s o ( 3 ) \tilde{\vec{\omega}}\in so\left( 3 \right) ω ~so(3) , we have
    e ω ^ ~ θ = E + ω ^ ~ sin ⁡ θ + ω ^ ~ 2 ( 1 − cos ⁡ θ ) e^{\tilde{\hat{\omega}}\theta}=E+\tilde{\hat{\omega}}\sin \theta +\tilde{\hat{\omega}}^2\left( 1-\cos \theta \right) eω^~θ=E+ω^~sinθ+ω^~2(1cosθ)

∥ ω ^ ∥ = 1 , ω ^ ~ = − ω ^ ~ T , ω ^ ~ 3 = − ω ^ ~ , ω ^ ~ 4 = − ω ^ ~ 2 \left\| \hat{\omega} \right\| =1,\tilde{\hat{\omega}}=-\tilde{\hat{\omega}}^{\mathrm{T}},\tilde{\hat{\omega}}^3=-\tilde{\hat{\omega}},\tilde{\hat{\omega}}^4=-\tilde{\hat{\omega}}^2 ω^=1,ω^~=ω^~T,ω^~3=ω^~,ω^~4=ω^~2
e ω ^ ~ θ = E + θ ω ^ ~ + θ 2 2 ! ω ^ ~ 2 + θ 3 3 ! ( − ω ^ ~ ) + θ 4 4 ! ( − ω ^ ~ 2 ) + ⋯ = E + ( θ − θ 3 3 ! + θ 5 5 ! + ⋯   ) ω ^ ~ + ( θ 2 2 ! − θ 4 4 ! + θ 6 6 ! + ⋯   ) ω ^ ~ 2 = E + sin ⁡ θ ω ^ ~ + ( 1 − cos ⁡ θ ) ω ^ ~ 2 e^{\tilde{\hat{\omega}}\theta}=E+\theta \tilde{\hat{\omega}}+\frac{\theta ^2}{2!}\tilde{\hat{\omega}}^2+\frac{\theta ^3}{3!}\left( -\tilde{\hat{\omega}} \right) +\frac{\theta ^4}{4!}\left( -\tilde{\hat{\omega}}^2 \right) +\cdots \\ =E+\left( \theta -\frac{\theta ^3}{3!}+\frac{\theta ^5}{5!}+\cdots \right) \tilde{\hat{\omega}}+\left( \frac{\theta ^2}{2!}-\frac{\theta ^4}{4!}+\frac{\theta ^6}{6!}+\cdots \right) \tilde{\hat{\omega}}^2 \\ =E+\sin \theta \tilde{\hat{\omega}}+\left( 1-\cos \theta \right) \tilde{\hat{\omega}}^2 eω^~θ=E+θω^~+2!θ2ω^~2+3!θ3(ω^~)+4!θ4(ω^~2)+=E+(θ3!θ3+5!θ5+)ω^~+(2!θ24!θ4+6!θ6+)ω^~2=E+sinθω^~+(1cosθ)ω^~2

1.4 Example of Forward Exponential Map

  • Rotation matrix R x ( θ ) R_x\left( \theta \right) Rx(θ) (corresponding to x ^ θ \hat{x}\theta x^θ)
    ω ^ = x ^ = [ 1 0 0 ] ⇒ ω ^ ~ = [ 0 0 0 0 0 − 1 0 1 0 ] \hat{\omega}=\hat{x}=\left[ \begin{array}{c} 1\\ 0\\ 0\\ \end{array} \right] \Rightarrow \tilde{\hat{\omega}}=\left[ \begin{matrix} 0& 0& 0\\ 0& 0& -1\\ 0& 1& 0\\ \end{matrix} \right] ω^=x^= 100 ω^~= 000001010
    R x ( θ ) = e ω ^ ~ θ = E + sin ⁡ θ [ 0 0 0 0 0 − 1 0 1 0 ] + ( 1 − cos ⁡ θ ) [ 0 0 0 0 0 − 1 0 1 0 ] 2 = [ 1 0 0 0 cos ⁡ θ − sin ⁡ θ 0 sin ⁡ θ cos ⁡ θ ] R_x\left( \theta \right) =e^{\tilde{\hat{\omega}}\theta}=E+\sin \theta \left[ \begin{matrix} 0& 0& 0\\ 0& 0& -1\\ 0& 1& 0\\ \end{matrix} \right] +\left( 1-\cos \theta \right) \left[ \begin{matrix} 0& 0& 0\\ 0& 0& -1\\ 0& 1& 0\\ \end{matrix} \right] ^2=\left[ \begin{matrix} 1& 0& 0\\ 0& \cos \theta& -\sin \theta\\ 0& \sin \theta& \cos \theta\\ \end{matrix} \right] Rx(θ)=eω^~θ=E+sinθ 000001010 +(1cosθ) 000001010 2= 1000cosθsinθ0sinθcosθ

  • Rotation matrix corresponding to ( 1 , 0 , 1 ) T \left( 1,0,1 \right) ^{\mathrm{T}} (1,0,1)T
    ω ^ = 1 2 [ 1 0 1 ] , θ = 2 \hat{\omega}=\frac{1}{\sqrt{2}}\left[ \begin{array}{c} 1\\ 0\\ 1\\ \end{array} \right] ,\theta =\sqrt{2} ω^=2 1 101 ,θ=2

1.5 Logarithm of Rotations

If [ Q ] = E \left[ Q \right] =E [Q]=E, then θ = 0 \theta =0 θ=0 and ω ^ \hat{\omega} ω^ is undefined
If t r ( [ Q ] ) = − 1 tr\left( \left[ Q \right] \right) =-1 tr([Q])=1, then θ = π \theta =\pi θ=π and set ω ^ \hat{\omega} ω^ equal to one of the following
1 2 ( 1 + q 33 ) [ q 13 q 23 1 + q 33 ] , 1 2 ( 1 + q 22 ) [ q 12 1 + q 22 q 32 ] , 1 2 ( 1 + q 11 ) [ 1 + q 11 q 21 q 31 ] \frac{1}{\sqrt{2\left( 1+q_{33} \right)}}\left[ \begin{array}{c} q_{13}\\ q_{23}\\ 1+q_{33}\\ \end{array} \right] ,\frac{1}{\sqrt{2\left( 1+q_{22} \right)}}\left[ \begin{array}{c} q_{12}\\ 1+q_{22}\\ q_{32}\\ \end{array} \right] ,\frac{1}{\sqrt{2\left( 1+q_{11} \right)}}\left[ \begin{array}{c} 1+q_{11}\\ q_{21}\\ q_{31}\\ \end{array} \right] 2(1+q33) 1 q13q231+q33 ,2(1+q22) 1 q121+q22q32 ,2(1+q11) 1 1+q11q21q31

Otherwise, θ = cos ⁡ − 1 ( 1 2 ( t r ( [ Q ] ) − 1 ) ) ∈ ( 0 , π ) \theta =\cos ^{-1}\left( \frac{1}{2}\left( tr\left( \left[ Q \right] \right) -1 \right) \right) \in \left( 0,\pi \right) θ=cos1(21(tr([Q])1))(0,π) and ω ^ ~ = 1 2 sin ⁡ θ ( [ Q ] − [ Q ] T ) \tilde{\hat{\omega}}=\frac{1}{2\sin \theta}\left( \left[ Q \right] -\left[ Q \right] ^{\mathrm{T}} \right) ω^~=2sinθ1([Q][Q]T)

2. Euler Angles and Euler-Like Parameterizations

2.1 Euler Angle Representation of Rotation

在这里插入图片描述

A common method of specifying a rotation matrix is through three independent quantities called Euler Angles.

Euler angle representation

  • Initially, frame { 0 } \left\{ 0 \right\} {0} coincides with frame { 1 } \left\{ 1 \right\} {1}
  • Rotate { 1 } \left\{ 1 \right\} {1} about z ^ 0 \hat{z}_0 z^0 by an angle α \alpha α, then rotate about y ^ a \hat{y}_a y^a axis by β \beta β, and then rotate about the z ^ b \hat{z}_b z^b axis by γ \gamma γ. This yields a net orientation [ Q 1 0 ] ( α , β , γ ) \left[ Q_{1}^{0} \right] \left( \alpha ,\beta ,\gamma \right) [Q10](α,β,γ) parameterized by the ZYZ angles ( α , β , γ ) \left( \alpha ,\beta ,\gamma \right) (α,β,γ)
    [ Q 1 0 ] ( α , β , γ ) = [ Q Z ] ( α ) [ Q Y ] ( β ) [ Q Z ] ( γ ) \left[ Q_{1}^{0} \right] \left( \alpha ,\beta ,\gamma \right) =\left[ Q_{\mathrm{Z}} \right] \left( \alpha \right) \left[ Q_{\mathrm{Y}} \right] \left( \beta \right) \left[ Q_{\mathrm{Z}} \right] \left( \gamma \right) [Q10](α,β,γ)=[QZ](α)[QY](β)[QZ](γ)

2.2 Other Euler-Like Parameterizations

Other types of Euler angle parameterization can be devised using different ordered sets of rotation axes

Common choices include:

  • ZYX Euler angles : also called Fick angles or yaw, pitch and roll angles
    在这里插入图片描述

  • YZX Euler angles(Helmholtz angles)

3. Exponential Coordinate of SE(3) - Homogeneous Transformation Matrix

3.1 Exponential Map of se(3) : From Twist to Rigid Motion

Theorem 1 [Exponential Map of se(3)] : For any V = ( ω ⃗ , v ⃗ ) \mathcal{V} =\left( \vec{\omega},\vec{v} \right) V=(ω ,v ) and θ ∈ R \theta \in \mathbb{R} θR, we have e [ V ] θ ∈ S E ( 3 ) e^{\left[ \mathcal{V} \right] \theta}\in SE\left( 3 \right) e[V]θSE(3)

  • Case 1 ω ⃗ = 0 \vec{\omega}=0 ω =0 : e [ V ] θ = [ E v ⃗ θ 0 1 ] e^{\left[ \mathcal{V} \right] \theta}=\left[ \begin{matrix} E& \vec{v}\theta\\ 0& 1\\ \end{matrix} \right] e[V]θ=[E0v θ1]
  • Csae 2 ω ⃗ ≠ 0 \vec{\omega}\ne 0 ω =0 : without loss of generality assume ∥ ω ⃗ ∥ = 1 \left\| \vec{\omega} \right\| =1 ω =1. Then:
    e [ V ] θ = [ e ω ^ ~ θ G ( θ ) v ⃗ 0 1 ] , G ( θ ) = E θ + ( 1 − cos ⁡ θ ) ω ^ ~ + ( θ − sin ⁡ θ ) ω ^ ~ 2 e^{\left[ \mathcal{V} \right] \theta}=\left[ \begin{matrix} e^{\tilde{\hat{\omega}}\theta}& G\left( \theta \right) \vec{v}\\ 0& 1\\ \end{matrix} \right] ,G\left( \theta \right) =E\theta +\left( 1-\cos \theta \right) \tilde{\hat{\omega}}+\left( \theta -\sin \theta \right) \tilde{\hat{\omega}}^2 e[V]θ=[eω^~θ0G(θ)v 1],G(θ)=+(1cosθ)ω^~+(θsinθ)ω^~2

V = [ ω ⃗ v ⃗ ] ∈ R 6 \mathcal{V} =\left[ \begin{array}{c} \vec{\omega}\\ \vec{v}\\ \end{array} \right] \in \mathbb{R} ^6 V=[ω v ]R6 , [ V ] = [ ω ⃗ ~ v ⃗ 0 1 ] ∈ R 4 × 4 \left[ \mathcal{V} \right] =\left[ \begin{matrix} \tilde{\vec{\omega}}& \vec{v}\\ 0& 1\\ \end{matrix} \right] \in \mathbb{R} ^{4\times 4} [V]=[ω ~0v 1]R4×4
e [ V ] θ ∈ S E ( 3 ) e^{\left[ \mathcal{V} \right] \theta}\in SE\left( 3 \right) e[V]θSE(3) , [ V ] ∈ s e ( 3 ) \left[ \mathcal{V} \right] \in se\left( 3 \right) [V]se(3)

3.2 Log of SE(3) : from Rigid-Body Motion to Twist

Theorem 2 [Log of SE(3)] : Given any [ T ] = ( [ Q ] , R ⃗ ) ∈ S E ( 3 ) \left[ T \right] =\left( \left[ Q \right] ,\vec{R} \right) \in SE\left( 3 \right) [T]=([Q],R )SE(3) , one can always find twist S = ( ω ⃗ , v ⃗ ) \mathcal{S} =\left( \vec{\omega},\vec{v} \right) S=(ω ,v ) and a scalar θ \theta θ such that
e [ S ] θ = [ T ] = [ [ Q ] R ⃗ 0 1 ] e^{\left[ \mathcal{S} \right] \theta}=\left[ T \right] =\left[ \begin{matrix} \left[ Q \right]& \vec{R}\\ 0& 1\\ \end{matrix} \right] e[S]θ=[T]=[[Q]0R 1]

Matrix Logarithm Algorithm :

  • If [ Q ] = E \left[ Q \right] =E [Q]=E , then set ω ⃗ = 0 \vec{\omega}=0 ω =0 , v ⃗ = R ⃗ / ∥ R ⃗ ∥ \vec{v}=\vec{R}/\left\| \vec{R} \right\| v =R / R , and θ = ∥ p ⃗ ∥ \theta =\left\| \vec{p} \right\| θ=p
  • Otherwise, use matrix logarithm on S O ( 3 ) SO\left( 3 \right) SO(3) to determine ω ⃗ \vec{\omega} ω and θ \theta θ from [ Q ] \left[ Q \right] [Q]. Then v ⃗ \vec{v} v is calculated as v ⃗ = G − 1 ( θ ) R ⃗ \vec{v}=G^{-1}\left( \theta \right) \vec{R} v =G1(θ)R , where:
    G − 1 ( θ ) = 1 θ E − 1 2 ω ^ ~ + ( 1 θ − 1 2 cos ⁡ θ 2 ) ω ^ ~ 2 G^{-1}\left( \theta \right) =\frac{1}{\theta}E-\frac{1}{2}\tilde{\hat{\omega}}+\left( \frac{1}{\theta}-\frac{1}{2}\cos \frac{\theta}{2} \right) \tilde{\hat{\omega}}^2 G1(θ)=θ1E21ω^~+(θ121cos2θ)ω^~2

3.3 Exponential Coordinates of Rigid Transformation

  • To sum up, screw axis S = ( ω ⃗ , v ⃗ ) = ( s ^ , R ⃗ q , h ) \mathcal{S} =\left( \vec{\omega},\vec{v} \right) =\left( \hat{s},\vec{R}_q,h \right) S=(ω ,v )=(s^,R q,h) can be expressed as a normalized twist ; its matrix representation is
    [ S ] = [ ω ⃗ ~ v ⃗ 0 0 ] ∈ s e ( 3 ) \left[ \mathcal{S} \right] =\left[ \begin{matrix} \tilde{\vec{\omega}}& \vec{v}\\ 0& 0\\ \end{matrix} \right] \in se\left( 3 \right) [S]=[ω ~0v 0]se(3)

  • A point started at R ⃗ p ( 0 ) \vec{R}_p\left( 0 \right) R p(0) at time zero, travel along screw axis S \mathcal{S} S at unit speed for time t t t will end uo at [ R ⃗ ˙ p 0 ] = [ S ] [ R ⃗ p 1 ] ⇒ [ R ⃗ p ( t ) 1 ] = e [ S ] t [ R ⃗ p ( 0 ) 1 ] \left[ \begin{array}{c} \dot{\vec{R}}_p\\ 0\\ \end{array} \right] =\left[ \mathcal{S} \right] \left[ \begin{array}{c} \vec{R}_p\\ 1\\ \end{array} \right] \Rightarrow \left[ \begin{array}{c} \vec{R}_p\left( t \right)\\ 1\\ \end{array} \right] =e^{\left[ \mathcal{S} \right] t}\left[ \begin{array}{c} \vec{R}_p\left( 0 \right)\\ 1\\ \end{array} \right] [R ˙p0]=[S][R p1][R p(t)1]=e[S]t[R p(0)1]

  • Given S \mathcal{S} S we can use Theorem 1 to compute e [ S ] t ∈ S E ( 3 ) e^{\left[ \mathcal{S} \right] t}\in SE\left( 3 \right) e[S]tSE(3)

  • Given [ T ] ∈ S E ( 3 ) \left[ T \right] \in SE\left( 3 \right) [T]SE(3) , we can use Theorem 2 to find S = ( ω ⃗ , v ⃗ ) \mathcal{S} =\left( \vec{\omega},\vec{v} \right) S=(ω ,v ) and θ \theta θ such that e [ S ] θ = [ T ] e^{\left[ \mathcal{S} \right] \theta}=\left[ T \right] e[S]θ=[T]

  • We call S θ \mathcal{S} \theta Sθ the Exponential Coordinates of the homogeneous transformation [ T ] ∈ S E ( 3 ) \left[ T \right] \in SE\left( 3 \right) [T]SE(3)

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LiongLoure

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值