文章目录
- 旋转矩阵<->角轴对应于李群<->李代数
-
R
˙
=
ω
^
R
\dot R =\hat ωR
R˙=ω^R中的
ω
\omega
ω指的是角轴的速度,即单位旋转轴*角速率
*Adjoint Map对应速度(线速度,角速度)之间的齐次映射
1 旋转*叉乘
1.1 旋转矩阵的导数
根据旋转矩阵的性质:
R
R
T
=
I
RR^T=I
RRT=I,对两侧进行求导可得:
R
˙
R
T
=
−
R
R
˙
T
\dot{R} R^{\rm T}=-R\dot R^{\rm T}
R˙RT=−RR˙T
从而可知,
R
˙
R
T
\dot R R^T
R˙RT为一个反对称对阵,则存在向量
ω
ω
ω,使得
R
R
˙
T
=
ω
^
R \dot R^T=\hat ω
RR˙T=ω^
ω
^
=
[
0
−
ω
z
ω
y
ω
z
0
−
ω
x
−
ω
y
ω
x
0
]
\hat \omega =\left[ \begin{array}{ccc} 0&-ω_z&ω_y\\ ω_z&0&-ω_x\\ -ω_y&ω_x&0 \end{array} \right]
ω^=
0ωz−ωy−ωz0ωxωy−ωx0
即:
R
˙
=
ω
^
R
\dot R =\hat ωR
R˙=ω^R
1.2 物理意义
设空间一个点
S
(
t
)
S(t)
S(t),其绕空间某个轴旋转,设其在t时刻的旋转轴为
ω
(
t
)
/
‖
ω
(
t
)
‖
ω(t)/‖ω(t)‖
ω(t)/‖ω(t)‖,其旋转角速度为
‖
ω
‖
‖ω‖
‖ω‖,则我们可知该点对应的线速率为:
S
˙
(
t
)
=
ω
(
t
)
×
S
(
t
)
=
ω
^
(
t
)
⋅
S
(
t
)
\dot S (t)=ω(t)×S(t)=\hat ω(t) \cdot S(t)
S˙(t)=ω(t)×S(t)=ω^(t)⋅S(t)
以此,我们便可理解旋转与轴角速率及叉乘之间的关系
1.3 实例
空间两个坐标系,W和B坐标系。W坐标系固定。
设B坐标系下有一点P与坐标系B固定,设其在B坐标系下坐标为:
S
B
S_B
SB(固定),其在W坐标系下坐标为:
S
W
(
t
)
S_W (t)
SW(t),设:
S
W
(
t
)
=
R
(
t
)
∗
S
B
+
p
(
t
)
S_W (t)=R(t)*S_B+p(t)
SW(t)=R(t)∗SB+p(t)
对其进行求导:
S
˙
W
(
t
)
=
ω
^
(
t
)
⋅
R
(
t
)
⋅
S
B
+
p
˙
(
t
)
=
ω
^
(
t
)
⋅
(
S
W
(
t
)
−
p
(
t
)
)
+
p
˙
(
t
)
\dot S_W(t)=\hat ω(t)\cdot R(t)\cdot S_B+\dot p(t)=\hat ω(t)\cdot (S_W(t)-p(t))+\dot p(t)
S˙W(t)=ω^(t)⋅R(t)⋅SB+p˙(t)=ω^(t)⋅(SW(t)−p(t))+p˙(t)
=
ω
^
(
t
)
⋅
S
W
(
t
)
−
ω
^
(
t
)
⋅
p
(
t
)
+
p
˙
(
t
)
=\hat ω(t)\cdot S_W(t)-\hat ω(t)\cdot p(t)+\dot p(t)
=ω^(t)⋅SW(t)−ω^(t)⋅p(t)+p˙(t)
从上式可以看出,
ω ω ω对应B坐标系在W坐标系下的旋转角速度, ω × S W ( t ) ω×S_W (t) ω×SW(t)即为由旋转引起的P点在W坐标系下的线速度。
− ω ^ ( t ) p ˙ ( t ) + p ^ ( t ) -\hat ω(t)\dot p(t)+\hat p (t) −ω^(t)p˙(t)+p^(t)对应点P的线速度
注意: ω ω ω为W坐标系下的向量表示。
可进一步写成:
S
˙
W
(
t
)
=
ω
^
(
t
)
⋅
S
W
(
t
)
+
v
(
t
)
\dot S_W (t)=\hatω(t)\cdot S_W(t)+v(t)
S˙W(t)=ω^(t)⋅SW(t)+v(t)
本实例:B坐标系起始与W重合,t时刻B坐标系以
ω
(
t
)
=
[
0
,
0
,
ω
(
t
)
]
ω(t)=[0,0,ω(t)]
ω(t)=[0,0,ω(t)]角速度进行旋转,即B坐标系绕z轴,以
ω
(
t
)
ω(t)
ω(t)为角速度进行旋转。
设B坐标系的旋转角为
θ
(
t
)
θ(t)
θ(t),即
θ
˙
(
t
)
=
ω
(
t
)
\dot θ(t)=ω(t)
θ˙(t)=ω(t)
ω ˆ \omega \^{} ωˆ 在本文中与 ω ^ \hat \omega ω^同义
通过此实例,我们可以看出 ω ( t ) ω(t) ω(t)对应的旋转物理意义。
进一步我们了解到 ω ( t ) ω(t) ω(t)与则是角轴表示的角速度,从而了解角轴的叉乘几何特性。
1.4 角轴与反对称矩阵
每个轴的旋转均对应一个反对称矩阵,即将旋转同时分布在各个轴上,设如下一组:
G
x
=
[
0
0
0
0
0
−
1
0
1
0
]
,
G
y
=
[
0
0
1
0
0
0
−
1
0
0
]
G
z
=
[
0
−
1
0
1
0
0
0
0
0
]
G_x =\left[ \begin{array}{ccc} 0&0&0\\0&0&-1\\0&1&0 \end{array} \right], G_y =\left[ \begin{array}{ccc} 0&0&1\\0&0&0\\-1&0&0 \end{array} \right] G_z =\left[ \begin{array}{ccc} 0&-1&0\\1&0&0\\0&0&0 \end{array} \right]
Gx=
0000010−10
,Gy=
00−1000100
Gz=
010−100000
设角轴:
θ
=
[
θ
x
,
θ
y
,
θ
z
]
T
θ=[θ_x,θ_y,θ_z]^T
θ=[θx,θy,θz]T
R
=
θ
x
G
x
+
θ
y
G
y
+
θ
z
G
z
R=θ_x G_x+θ_y G_y+θ_z G_z
R=θxGx+θyGy+θzGz
Tips:
由此我们可以知道,角轴与欧拉角之间的小联系,当前两个旋转轴的旋转角度较小时,欧拉角 ≈ ≈ ≈轴角。
2 SO3 与so3
由于旋转矩阵与角轴之间的关系,对应了李群与李代数之间的关系,设计旋转矩阵对应的李代数为其对应的角轴。
2.1 so3 2 SO3
在我们知道:
R
˙
=
ω
^
R
\dot R=\hatωR
R˙=ω^R,便可知R可表达成e指数的形式:
R
(
t
)
=
e
x
p
(
[
∫
ω
(
t
)
]
ˆ
)
=
e
x
p
(
θ
^
(
t
)
)
R(t)=exp([∫ω(t)]\^{})=exp(\hat θ(t))
R(t)=exp([∫ω(t)]ˆ)=exp(θ^(t))
即我们设计使得
R
R
R与角轴
θ
θ
θ对应。可知,由于三角函数的周期性,因此旋转矩阵到角轴是一对多的映射。由此可知,旋转矩阵对应李群SO3,而角轴表示对应李代数,其向量方向与旋转矩阵的切方向一致。
R
=
exp
(
θ
^
)
=
∑
n
=
0
∞
1
n
!
θ
^
n
↔
R=\exp\left(\hat{\theta}\right)=\sum_{n=0}^{\infty}\frac{1}{n!}\hat{\theta}^{n_{\leftrightarrow}}
R=exp(θ^)=n=0∑∞n!1θ^n↔
R
=
exp
(
θ
^
)
=
I
+
∑
n
=
1
∞
1
n
!
θ
^
n
=
I
+
∑
n
=
0
∞
1
(
2
n
+
1
)
!
θ
^
2
n
+
1
+
∑
n
=
0
∞
1
(
2
n
+
2
)
!
θ
^
2
n
+
2
=
I
+
(
∑
n
=
0
∞
(
−
1
)
n
∥
θ
∥
2
n
(
2
n
+
1
)
!
)
θ
^
+
(
∑
n
=
0
∞
(
−
1
)
n
∥
θ
∥
2
n
(
2
n
+
2
)
!
)
θ
^
2
=
I
+
(
sin
∥
θ
∥
∥
θ
∥
)
θ
^
+
(
1
−
cos
∥
θ
∥
∥
θ
∥
2
)
θ
^
2
=
I
3
∗
3
+
(
sin
∥
θ
∥
∥
θ
∥
)
θ
^
+
(
1
−
cos
∥
θ
∥
∥
θ
∥
2
)
(
−
∥
θ
∥
2
I
3
∗
3
+
θ
θ
T
)
=
c
o
s
∥
θ
∥
I
3
∗
3
+
(
sin
∥
θ
∥
∥
θ
∥
)
θ
^
+
(
1
−
c
o
s
∥
θ
∥
∥
θ
∥
2
)
θ
θ
T
\begin{aligned} R&=\exp(\hat{\boldsymbol{\theta}})=I+\sum_{n=1}^\infty\frac1{n!}\hat{\boldsymbol{\theta}}^n=I+\sum_{n=0}^\infty\frac1{(2n+1)!}\hat{\boldsymbol{\theta}}^{2n+1}+\sum_{n=0}^\infty\frac1{(2n+2)!}\hat{\boldsymbol{\theta}}^{2n+2} \\ &=I+\left(\sum_{n=0}^\infty\frac{(-1)^n\|\theta\|^{2n}}{(2n+1)!}\right)\hat{\theta}+\left(\sum_{n=0}^\infty\frac{(-1)^n\|\theta\|^{2n}}{(2n+2)!}\right)\hat{\theta}^2 \\ &=I+\left(\frac{\sin\|\boldsymbol{\theta}\|}{\|\boldsymbol{\theta}\|}\right)\hat{\boldsymbol{\theta}}+\left(\frac{1-\cos\|\boldsymbol{\theta}\|}{\|\boldsymbol{\theta}\|^2}\right)\hat{\boldsymbol{\theta}}^2 \\ &=I_{3*3}+\left(\frac{\sin\lVert\boldsymbol{\theta}\rVert}{\lVert\boldsymbol{\theta}\rVert}\right)\widehat{\boldsymbol{\theta}}+\left(\frac{1-\cos\lVert\boldsymbol{\theta}\rVert}{\lVert\boldsymbol{\theta}\rVert^2}\right)\left(-\lVert\boldsymbol{\theta}\rVert^2I_{3*3}+\boldsymbol{\theta}\boldsymbol{\theta}^\mathbf{T}\right) \\ &=cos\|\boldsymbol{\theta}\|\boldsymbol{I}_{3*3}+\left(\frac{\sin\|\boldsymbol{\theta}\|}{\|\boldsymbol{\theta}\|}\right)\widehat{\boldsymbol{\theta}}+\left(\frac{1-cos\|\boldsymbol{\theta}\|}{\|\boldsymbol{\theta}\|^2}\right)\boldsymbol{\theta}\boldsymbol{\theta}^{\rm T} \end{aligned}
R=exp(θ^)=I+n=1∑∞n!1θ^n=I+n=0∑∞(2n+1)!1θ^2n+1+n=0∑∞(2n+2)!1θ^2n+2=I+(n=0∑∞(2n+1)!(−1)n∥θ∥2n)θ^+(n=0∑∞(2n+2)!(−1)n∥θ∥2n)θ^2=I+(∥θ∥sin∥θ∥)θ^+(∥θ∥21−cos∥θ∥)θ^2=I3∗3+(∥θ∥sin∥θ∥)θ
+(∥θ∥21−cos∥θ∥)(−∥θ∥2I3∗3+θθT)=cos∥θ∥I3∗3+(∥θ∥sin∥θ∥)θ
+(∥θ∥21−cos∥θ∥)θθT
2.2 SO3 2 so3
θ ^ = log ( R ) = ∑ n = 1 ∞ ( − 1 ) n − 1 n ( R − I ) n \hat{\theta}=\log(R)=\sum_{n=1}^\infty\frac{(-1)^{n-1}}n(R-\mathbf{I})^n θ^=log(R)=n=1∑∞n(−1)n−1(R−I)n
一对多的解算,其可以简化为旋转矩阵到角轴的计算:
3 SE3 与se3
设SE3的变换矩阵
T
T
T
T
(
t
)
=
[
R
(
t
)
p
(
t
)
0
1
]
T(t) =\left[ \begin{array}{ccc} R(t)&p(t)\\0&1 \end{array} \right]
T(t)=[R(t)0p(t)1]
同样,我们构造
T
˙
=
A
T
\dot T=AT
T˙=AT的形式,从而使得
T
=
e
x
p
(
A
)
T=exp(A)
T=exp(A)成立。
T
˙
(
t
)
=
[
R
˙
(
t
)
p
˙
(
t
)
0
1
]
=
[
ω
^
(
t
)
R
(
t
)
p
˙
(
t
)
0
1
]
\dot T(t) =\left[ \begin{array}{ccc} \dot R(t)&\dot p(t)\\0&1 \end{array} \right] =\left[ \begin{array}{ccc} \hat ω(t)R(t)&\dot p(t)\\0&1 \end{array} \right]
T˙(t)=[R˙(t)0p˙(t)1]=[ω^(t)R(t)0p˙(t)1]
T
˙
(
t
)
T
−
1
(
t
)
=
[
ω
^
(
t
)
−
ω
^
(
t
)
⋅
p
(
t
)
+
p
˙
(
t
)
0
0
]
=
A
4
∗
4
\dot T(t) T^{-1} (t) =\left[ \begin{array}{ccc} \hat ω(t)&-\hat ω(t) \cdot p(t)+\dot p(t)\\0&0 \end{array} \right]=A_{4*4}
T˙(t)T−1(t)=[ω^(t)0−ω^(t)⋅p(t)+p˙(t)0]=A4∗4
对比1.3节的公式:
S
˙
W
(
t
)
=
ω
^
(
t
)
⋅
S
W
(
t
)
−
ω
^
(
t
)
⋅
p
(
t
)
+
p
˙
(
t
)
=
ω
^
(
t
)
⋅
S
W
(
t
)
+
v
(
t
)
\dot S_W (t)=\hat ω(t) \cdot S_W(t)-\hat ω(t)\cdot p(t)+\dot p(t)=\hat ω(t)\cdot S_W (t)+v(t)
S˙W(t)=ω^(t)⋅SW(t)−ω^(t)⋅p(t)+p˙(t)=ω^(t)⋅SW(t)+v(t)
佐证:
ω ω ω对应B坐标系在W坐标系下的旋转角速度。
v ( t ) v(t) v(t)对应W坐标系下线速度。
3.1 se3 2 SE3:
se3 对应的
A
A
A阵为4*4的矩阵,加入偏移数据后,不再是一个反对称矩阵。我们设T阵对应的李代数为
ξ
ξ
ξ,其对应的李代数矩阵[ξ]表示为:
A
=
[
ξ
]
=
[
θ
^
ρ
0
0
]
A=[ξ]=\left[ \begin{array}{ccc} \hatθ&ρ\\0&0 \end{array} \right]
A=[ξ]=[θ^0ρ0]
同样求e指数:
exp
(
A
)
=
∑
n
=
0
∞
1
n
!
A
n
=
[
∑
n
=
0
∞
1
n
!
(
θ
^
)
n
∑
n
=
0
∞
1
(
n
+
1
)
!
(
θ
^
)
n
ρ
]
=
[
exp
(
θ
^
)
J
L
(
θ
)
ρ
0
1
]
J
L
(
θ
)
=
∑
n
=
0
∞
1
(
n
+
1
)
!
(
θ
^
)
n
=
I
3
×
3
+
(
1
−
cos
∥
θ
∥
∥
θ
∥
2
)
θ
^
+
(
∥
θ
∥
−
sin
∥
θ
∥
∥
θ
∥
3
)
θ
^
2
\begin{aligned}\exp(A)&=\sum_{n=0}^\infty\frac1{n!}A^n=\left[\sum_{n=0}^\infty\frac1{n!}(\hat{\boldsymbol{\theta}})^n\sum_{n=0}^\infty\frac1{(n+1)!}(\widehat{\boldsymbol{\theta}})^n\rho\right]\\&=\begin{bmatrix}\exp(\widehat{\boldsymbol{\theta}})&J_L(\boldsymbol{\theta})\rho\\0&1\end{bmatrix}\\J_L(\boldsymbol{\theta})&=\sum_{n=0}^\infty\frac1{(n+1)!}(\widehat{\boldsymbol{\theta}})^n=I_{3\times3}+\left(\frac{1-\cos\lVert\theta\rVert}{\lVert\theta\rVert^2}\right) \widehat{\boldsymbol{\theta}}+\left(\frac{\lVert\boldsymbol{\theta}\rVert-\sin\lVert\boldsymbol{\theta}\rVert}{\lVert\boldsymbol{\theta}\rVert^3}\right)\widehat{\boldsymbol{\theta}}^2\end{aligned}
exp(A)JL(θ)=n=0∑∞n!1An=[n=0∑∞n!1(θ^)nn=0∑∞(n+1)!1(θ
)nρ]=[exp(θ
)0JL(θ)ρ1]=n=0∑∞(n+1)!1(θ
)n=I3×3+(∥θ∥21−cos∥θ∥)θ
+(∥θ∥3∥θ∥−sin∥θ∥)θ
2
note:
R
(
θ
)
=
I
3
×
3
+
θ
∧
J
L
(
θ
)
R(\boldsymbol{\theta})=I_{3\times3}+\boldsymbol{\theta}^\wedge J_L(\boldsymbol{\theta})
R(θ)=I3×3+θ∧JL(θ)
3.2 SE3 2 se3
其中:
J
L
−
1
J_L^{-1}
JL−1可由以下公式得到:
J
L
−
1
=
I
3
×
3
−
1
2
θ
^
+
1
−
∥
θ
∥
cos
∥
θ
/
2
∥
2
sin
∥
θ
/
2
∥
∗
∥
θ
∥
2
∗
θ
^
2
J_L^{-1}=I_{3\times3}-\frac12\widehat{\boldsymbol{\theta}}+\frac{1-\lVert\theta\rVert\cos\lVert\theta/2\rVert}{2\sin\lVert\theta/2\rVert*\lVert\theta\rVert^2}*\widehat{\boldsymbol{\theta}}^2
JL−1=I3×3−21θ
+2sin∥θ/2∥∗∥θ∥21−∥θ∥cos∥θ/2∥∗θ
2
此外,注意:不成立
一个常用性质:
https://natanaso.github.io/ece276a2019/ref/ECE276A_12_SE3.pdf
https://vnav.mit.edu/material/04-05-LieGroups-notes.pdf
4 SIM3 与sim3
SIM3与sim3之间的exp指数映射方式有多种:
- 第一种:
https://qiita.com/shinsumicco/items/a2a00a3942caf2c88ecb
[Trajectory Alignment and Evaluation in SLAM: Horn’s Method vs Alignment on the Manifold]
设一个sim3,
δ
δ
δ,其对应的
A
A
A阵
A
=
[
δ
]
=
[
θ
^
+
σ
I
3
∗
3
ρ
0
3
T
0
]
A=[δ]=\left[\begin{array}{ccc} \hat θ+σI_{3*3}&ρ\\0_3^T&0 \end{array}\right]
A=[δ]=[θ^+σI3∗303Tρ0]
e
x
p
(
A
)
=
e
x
p
(
[
δ
]
)
=
[
e
x
p
(
σ
)
e
x
p
(
θ
^
)
W
ρ
0
1
]
exp(A)=exp([δ])=\left[\begin{array}{}exp(σ)exp(\hat θ)&Wρ\\0&1\end{array}\right]
exp(A)=exp([δ])=[exp(σ)exp(θ^)0Wρ1]
- 第二种:
https://ethaneade.com/latex2html/lie/node29.html
δ δ δ对应的A阵 A = [ δ ] = [ θ ^ ρ 0 − σ ] A=[δ]=\left[\begin{array}{}\hat θ&ρ\\0&-σ\end{array}\right] A=[δ]=[θ^0ρ−σ]
e
x
p
(
A
)
=
e
x
p
(
[
δ
]
)
=
[
e
x
p
(
θ
^
)
W
ρ
0
e
x
p
(
−
σ
)
)
]
exp(A)=exp([δ])=\left[\begin{array}{}exp(\hatθ)&Wρ\\0&exp(-σ) )\end{array}\right]
exp(A)=exp([δ])=[exp(θ^)0Wρexp(−σ))]
具体W不给出,请与链接中查看
5 Adjoint repression & Map
https://dellaert.github.io/20S-8803MM/Readings/3D-Adjoints-note.pdf
Adjoint repression可以用于速度层面的直接线性映射。
根据上文:
S
˙
w
(
t
)
=
ω
^
(
t
)
⋅
S
W
(
t
)
+
v
(
t
)
\dot S_w (t)=\hatω(t)\cdot S_W(t)+v(t)
S˙w(t)=ω^(t)⋅SW(t)+v(t)
写成齐次形式:
其中,
V
w
=
[
ω
(
t
)
v
(
t
)
]
6
∗
1
V_w=\left[\begin{array}{}ω(t)\\v(t) \end{array}\right]_{6*1}
Vw=[ω(t)v(t)]6∗1
根据
S
W
(
t
)
=
R
(
t
)
⋅
S
B
+
p
(
t
)
S_W(t)=R(t)\cdot S_B+p(t)
SW(t)=R(t)⋅SB+p(t)计算
P
˙
B
\dot P_B
P˙B与
P
B
P_B
PB之间的映射
齐次:
代入
P
˙
W
=
V
W
P
W
\dot P_W=V_W P_W
P˙W=VWPW得:
T
B
W
P
˙
B
=
V
W
T
B
W
P
B
⟹
P
˙
B
=
(
T
B
W
)
−
1
V
^
W
T
B
W
P
B
T_B^W \dot P_B=V_W T_B^W P_B⟹\dot P_B=(T_B^W)^{-1} \hat V_W T_B^W P_B
TBWP˙B=VWTBWPB⟹P˙B=(TBW)−1V^WTBWPB
从而可知:
V
^
B
=
(
T
B
W
)
−
1
V
^
W
T
B
W
=
T
W
B
V
^
W
(
T
W
B
)
−
1
\hat V_B=(T_B^W )^{-1} \hat V_W T_B^W=T_W^B \hat V_W(T_W^B )^{-1}
V^B=(TBW)−1V^WTBW=TWBV^W(TWB)−1
以上便是Adjoint Map,可见Adjoint Map是将速度之间的映射
我们可以从
V
˙
B
\dot V_B
V˙B与
V
˙
W
\dot V_W
V˙W之间的关系中,找到
V
W
V_W
VW与
V
B
V_B
VB之间的映射。
V
W
V_W
VW与
V
B
V_B
VB为6维向量,而
V
^
B
\hat V_B
V^B与
V
^
W
\hat V_W
V^W为4*4的向量构成的方阵。
令:
根据叉乘的反交换律和
可得:
从而根据:
可得:
从而引出伴随表示,使伴随表示也符合李群的性质。SE3为4*4的矩阵,而伴随矩阵为6*6的李群矩阵,
设伴随李代数:
令:
ξ
=
[
θ
ρ
]
,
T
(
ξ
)
=
[
R
p
0
1
]
\boldsymbol{\xi}=\begin{bmatrix}\boldsymbol{\theta}\\\boldsymbol{\rho}\end{bmatrix}, T(\boldsymbol{\xi}) =\left[ \begin{array}{ccc} R&\boldsymbol{p}\\0&1 \end{array} \right]
ξ=[θρ],T(ξ)=[R0p1]
对应A阵:
A
=
a
d
(
ξ
)
=
ξ
⋏
=
[
θ
ρ
]
⋏
=
[
θ
∧
0
ρ
∧
θ
∧
]
∈
R
6
×
6
,
ρ
,
θ
∈
R
3
.
A=ad(\boldsymbol{\xi})=\boldsymbol{\xi}^\curlywedge=\begin{bmatrix}\boldsymbol{\theta}\\\boldsymbol{\rho}\end{bmatrix}^\curlywedge=\begin{bmatrix}\boldsymbol{\theta}^\wedge&\boldsymbol{0}\\\boldsymbol{\rho}^\wedge&\boldsymbol{\theta}^\wedge\end{bmatrix}\in\mathbb{R}^{6\times6},\quad\boldsymbol{\rho},\boldsymbol{\theta}\in\mathbb{R}^3.
A=ad(ξ)=ξ⋏=[θρ]⋏=[θ∧ρ∧0θ∧]∈R6×6,ρ,θ∈R3.
A
d
(
T
)
=
A
d
T
=
[
R
0
p
∧
R
R
]
=
exp
(
a
d
(
ξ
)
)
Ad(T)=Ad_{\rm T}=\left[ \begin{array}{ccc} R&0 \\\boldsymbol{p}^\wedge R&R \end{array} \right]=\exp(ad(\boldsymbol{\xi}))
Ad(T)=AdT=[Rp∧R0R]=exp(ad(ξ))
以上参考《State estimation for robotics》,为与上文保持一致,本文的伴随ad矩阵采取这样的结构,与书中有出入。
Sophus软件中李代数sim3结构排序是:先trans,后角度,最后scale,而本文中的说明均是角度在前,trans在后,因此与书中的伴随矩阵表示有出入。
证明:
T
T
0
T
T
=
exp
(
a
d
T
⋅
ξ
0
)
TT_0T^{\rm T}=\exp(ad_T \cdot \bm{\xi}_0)
TT0TT=exp(adT⋅ξ0)
T
T
0
T
0
−
1
=
[
R
p
0
1
]
[
R
0
p
0
0
1
]
[
R
0
T
−
R
T
p
0
1
]
=
[
R
R
0
R
P
0
+
p
0
1
]
[
R
0
T
−
R
T
p
0
1
]
=
[
R
R
0
R
T
−
R
R
0
R
T
p
+
R
p
0
+
p
0
1
]
\begin{aligned}TT_0T_0^{-1}&=\left[\begin{matrix}R&p\\0&1\end{matrix}\right]\left[\begin{matrix}R_0&p_0\\0&1\end{matrix}\right]\left[\begin{matrix}R_0^T&-R^Tp\\0&1\end{matrix}\right]\\&=\left[\begin{matrix}RR_0&RP_0+p\\0&1\end{matrix}\right]\left[\begin{matrix}R_0^T&-R^Tp\\0&1\end{matrix}\right]\\&=\left[\begin{matrix}RR_0R^T&-RR_0R^Tp+Rp_0+p\\0&1\end{matrix}\right]\end{aligned}
TT0T0−1=[R0p1][R00p01][R0T0−RTp1]=[RR00RP0+p1][R0T0−RTp1]=[RR0RT0−RR0RTp+Rp0+p1]
a d T : [ R p × R 0 R ] ξ 0 : [ θ 0 ρ 0 ] a d T = [ R p × R 0 12 ] [ θ 0 ρ 0 ] = [ R θ 0 p × R θ 0 + R ρ 0 ] exp ( a d T ξ 0 ) = [ R R 0 R T J R θ 0 ( p × R θ 0 + R ρ 0 ) 0 1 ] \begin{aligned}\mathrm{ad_T}&:\quad\begin{bmatrix}R&p_\times R\\0&R\end{bmatrix}\ \ \ \ \ \ \ {\bm\xi_0}:\begin{bmatrix}\bm\theta_0\\\bm\rho_0\end{bmatrix}\\ \mathrm{ad_T}&=\begin{bmatrix}R&p_\times R\\0&12\end{bmatrix}\begin{bmatrix}\bm\theta_0\\\bm\rho_0\end{bmatrix}=\begin{bmatrix}R\theta_0\\p_\times R\theta_{0}+R\rho_{0}\end{bmatrix}\\ \exp\left(\mathrm{ad_T}\bm\xi_0\right)&=\begin{bmatrix}RR_0R^{T}&J_{R\bm{\theta}_0}(p_\times R\theta_{0}+R\rho_{0})\\0&1\end{bmatrix}\end{aligned} adTadTexp(adTξ0):[R0p×RR] ξ0:[θ0ρ0]=[R0p×R12][θ0ρ0]=[Rθ0p×Rθ0+Rρ0]=[RR0RT0JRθ0(p×Rθ0+Rρ0)1]
即要证明:
−
R
R
0
R
T
p
+
R
p
0
+
p
=
J
R
θ
0
(
p
×
R
θ
0
+
R
ρ
0
)
-RR_0R^Tp+Rp_0+p=J_{R\bm{\theta}_0}(p_\times R\theta_{0}+R\rho_{0})
−RR0RTp+Rp0+p=JRθ0(p×Rθ0+Rρ0)
首先:
J
R
θ
=
1
(
n
+
1
)
!
∑
(
R
θ
^
)
n
=
1
(
n
+
1
)
!
∑
(
R
θ
^
R
^
T
)
n
=
1
(
n
+
1
)
!
R
(
∑
θ
^
n
)
⋅
R
T
J
θ
=
1
(
n
+
1
)
!
∑
θ
^
n
∴
J
R
θ
=
R
⋅
J
0
⋅
R
T
\begin{aligned}J_{R\theta}=\frac{1}{(n+1)!}\sum\left(\widehat{R\theta}\right)^{n}&=\frac{1}{(n+1)!}\sum\left(R\widehat{\theta}\widehat{R}^{T}\right)^{n}=\frac{1}{(n+1)!}R\left(\sum\widehat{\theta}^{n}\right)\cdot R^{T}\\J_{\theta}=\frac{1}{(n+1)!}\sum\hat{\theta}^{n}\\ \therefore J_{R\theta}=R\cdot J_{0}\cdot R^{T}\end{aligned}
JRθ=(n+1)!1∑(Rθ
)nJθ=(n+1)!1∑θ^n∴JRθ=R⋅J0⋅RT=(n+1)!1∑(Rθ
R
T)n=(n+1)!1R(∑θ
n)⋅RT
以及:
R
=
I
3
×
3
+
J
θ
^
R=I_{3\times3}+J\bm{\hat\theta}
R=I3×3+Jθ^
p
=
J
ρ
p=J\rho
p=Jρ
R
θ
^
R
T
=
R
θ
^
R\hat\theta R^T=R\hat\theta
Rθ^RT=Rθ^
因而:
−
R
R
0
R
T
p
+
R
p
0
+
p
=
−
R
(
1
+
J
θ
0
θ
^
0
)
R
T
p
+
R
p
0
+
p
=
−
p
−
R
J
θ
0
θ
^
0
R
T
p
+
R
J
θ
0
ρ
0
+
p
=
−
R
J
θ
0
θ
^
0
R
T
p
+
R
J
θ
0
ρ
0
=
−
R
J
θ
0
θ
^
0
p
+
R
J
θ
0
ρ
0
-RR_0R^Tp+Rp_0+p=-R(1+J_{\theta_0}\bm{\hat\theta}_0)R^Tp+Rp_0+p\\=-p-RJ_{\theta_0}\bm{\hat\theta}_0R^Tp+RJ_{\theta_0}\rho_0+p\\=-RJ_{\theta_0}\bm{\hat\theta}_0R^Tp+RJ_{\theta_0}\rho_0\\=-RJ_{\theta_0}\bm{\hat\theta}_0p+RJ_{\theta_0}\rho_0
−RR0RTp+Rp0+p=−R(1+Jθ0θ^0)RTp+Rp0+p=−p−RJθ0θ^0RTp+RJθ0ρ0+p=−RJθ0θ^0RTp+RJθ0ρ0=−RJθ0θ^0p+RJθ0ρ0
李括号(Lie Bracket)和伴随(adjoint representation)
设a,b为两个李代数元素, A和B为对应的李群表示:
A
=
a
^
,
B
=
b
^
A =\hat a, B = \hat b
A=a^,B=b^
exp
(
A
+
B
)
=
exp
(
a
^
+
b
^
)
=
exp
(
A
)
exp
(
B
)
exp
(
−
1
2
[
A
,
B
]
)
\begin{aligned}&\exp(A+B)=\exp(\hat a+\hat b)= \exp(A)\exp(B)\exp(-\frac12[A,B])\end{aligned}
exp(A+B)=exp(a^+b^)=exp(A)exp(B)exp(−21[A,B])
[]表示李括号
[
a
,
b
]
=
[
a
^
b
^
−
b
^
a
^
]
∨
[a,b]=[\hat a\hat b-\hat b \hat a]^\vee
[a,b]=[a^b^−b^a^]∨
[
A
,
B
]
=
A
B
−
B
A
[A,B]=AB-BA
[A,B]=AB−BA
note:李群 exp ( A + B ) = exp ( A ) exp ( B ) \exp(A+B) = \exp(A)\exp(B) exp(A+B)=exp(A)exp(B)性质不一定成立。
BCH展开公式:
e
A
e
B
=
exp
{
A
+
B
+
1
2
!
[
A
,
B
]
+
1
3
!
(
1
2
[
A
,
[
A
,
B
]
]
+
1
2
[
[
A
,
B
]
,
B
]
)
+
⋯
}
,
\begin{aligned}e^{A}e^{B}=\exp\{A+B+\frac{1}{2!}[A,B]+\frac{1}{3!}(\frac{1}{2}[A,[A,B]]+\frac{1}{2}[[A,B],B])+\cdots\},\end{aligned}
eAeB=exp{A+B+2!1[A,B]+3!1(21[A,[A,B]]+21[[A,B],B])+⋯},
即:
l
n
(
e
A
e
B
)
=
A
+
B
+
1
2
!
[
A
,
B
]
+
1
3
!
(
1
2
[
A
,
[
A
,
B
]
]
+
1
2
[
[
A
,
B
]
,
B
]
)
+
⋯
ln(e^{A}e^{B})=A+B+\frac{1}{2!}[A,B]+\frac{1}{3!}(\frac{1}{2}[A,[A,B]]+\frac{1}{2}[[A,B],B])+\cdots
ln(eAeB)=A+B+2!1[A,B]+3!1(21[A,[A,B]]+21[[A,B],B])+⋯
e A B e − A = B + [ A , B ] + 1 2 ! [ A , [ A , B ] ] + … , \begin{aligned}e^{A}Be^{-A}=B+[A,B]+\frac{1}{2!}[A,[A,B]]+\ldots,\end{aligned} eABe−A=B+[A,B]+2!1[A,[A,B]]+…,
对于李代数中的元素 ( a ) 和 ( b ),如果它们之间的对易子(李括号)为 (
[
a
,
b
]
[a, b]
[a,b]),那么这个对易子可以被表示为 (
a
d
a
(
b
)
ad_a(b)
ada(b) ),表示 ( b ) 在 ( a ) 的伴随表示下的像,即
a
d
a
b
=
[
a
,
b
]
=
[
A
B
−
B
A
]
∨
ad_ab =[a,b]=[AB-BA]^\vee
adab=[a,b]=[AB−BA]∨
设
a
=
[
θ
a
ρ
a
]
,
A
=
[
θ
a
∧
ρ
a
∧
0
0
]
\boldsymbol{a}=\begin{bmatrix}\boldsymbol{\theta}_a\\\boldsymbol{\rho}_a\end{bmatrix}, A =\left[ \begin{array}{ccc} \boldsymbol{\theta}_a^\wedge&\boldsymbol{\rho}_a^\wedge\\0&0 \end{array} \right]
a=[θaρa],A=[θa∧0ρa∧0]
b
=
[
θ
b
ρ
b
]
,
B
=
[
θ
b
∧
ρ
b
∧
0
0
]
\boldsymbol{b}=\begin{bmatrix}\boldsymbol{\theta}_b\\\boldsymbol{\rho}_b\end{bmatrix}, B =\left[ \begin{array}{ccc} \boldsymbol{\theta}_b^\wedge&\boldsymbol{\rho}_b^\wedge\\0&0 \end{array} \right]
b=[θbρb],B=[θb∧0ρb∧0]
a
d
a
=
[
θ
a
∧
0
ρ
a
∧
θ
a
∧
]
ad_a=\left[ \begin{array}{ccc} \boldsymbol{\theta}_a^\wedge&0\\\boldsymbol{\rho}_a^\wedge&\boldsymbol{\theta}_a^\wedge \end{array} \right]
ada=[θa∧ρa∧0θa∧]
Tips:
θ
a
∧
θ
b
∧
−
θ
b
∧
θ
a
∧
=
θ
a
∧
θ
b
=
−
θ
b
∧
θ
a
\boldsymbol{\theta}_a^\wedge\boldsymbol{\theta}_b^\wedge-\boldsymbol{\theta}_b^\wedge\boldsymbol{\theta}_a^\wedge=\boldsymbol{\theta}_a^\wedge\boldsymbol{\theta}_b=-\boldsymbol{\theta}_b^\wedge\boldsymbol{\theta}_a
θa∧θb∧−θb∧θa∧=θa∧θb=−θb∧θa