下文内容参考了《视觉 SLAM 十四讲》。
SLAM 中的位姿(旋转矩阵
R
∈
S
O
(
3
)
\boldsymbol{R} \in SO(3)
R∈SO(3) 或变换矩阵
T
∈
S
E
(
3
)
\boldsymbol{T} \in SE(3)
T∈SE(3))构成李群,其对乘法封闭,但对加法不封闭。两个旋转矩阵相加不再是有效的旋转矩阵,无法直接通过加法定义导数。李代数求导(尤其是扰动模型
)是 SLAM 位姿优化的数学基础,解决了旋转矩阵的不可加性问题,提升了计算效率。
1. BCH 公式与近似形式
Baker-Campbell-Hausdorff(BCH) 公式在李群与李代数理论中具有重要地位。设
A
,
B
\boldsymbol{A}, \boldsymbol{B}
A,B 为李代数中的元素,其指数映射
exp
(
A
)
,
exp
(
B
)
\exp(\boldsymbol{A}), \exp(\boldsymbol{B})
exp(A),exp(B) 的乘积可表示为:
exp
(
A
)
exp
(
B
)
=
exp
(
C
)
\exp(\boldsymbol{A}) \exp(\boldsymbol{B}) = \exp(\boldsymbol{C})
exp(A)exp(B)=exp(C)其中,
[
,
]
[,]
[,] 为李括号,且
C
=
ln
(
exp
(
A
)
exp
(
B
)
)
=
A
+
B
+
1
2
[
A
,
B
]
+
1
12
[
A
,
[
A
,
B
]
]
−
1
12
[
B
,
[
A
,
B
]
]
+
⋯
\boldsymbol{C} = \ln(\exp(\boldsymbol{A}) \exp(\boldsymbol{B})) = \boldsymbol{A} + \boldsymbol{B} + \dfrac{1}{2}[\boldsymbol{A}, \boldsymbol{B}] + \dfrac{1}{12}[\boldsymbol{A}, [\boldsymbol{A}, \boldsymbol{B}]] - \dfrac{1}{12}[\boldsymbol{B}, [\boldsymbol{A}, \boldsymbol{B}]] + \cdots
C=ln(exp(A)exp(B))=A+B+21[A,B]+121[A,[A,B]]−121[B,[A,B]]+⋯
BCH 的线性近似表达如下:
ln
(
exp
(
ϕ
1
∧
)
exp
(
ϕ
2
∧
)
)
∨
≈
{
J
l
(
ϕ
2
)
−
1
ϕ
1
+
ϕ
2
当
ϕ
1
为小量
J
r
(
ϕ
1
)
−
1
ϕ
2
+
ϕ
1
当
ϕ
2
为小量
\ln(\exp(\boldsymbol{\phi}_1^{\wedge}) \exp(\boldsymbol{\phi}_2^{\wedge}))^{\vee} \approx \begin{cases} \boldsymbol{J}_l(\boldsymbol{\phi}_2)^{-1} \boldsymbol{\phi}_1 + \boldsymbol{\phi}_2 \quad 当 \ \boldsymbol{\phi}_1 \ 为小量 \\ \\ \boldsymbol{J}_r(\boldsymbol{\phi}_1)^{-1} \boldsymbol{\phi}_2 + \boldsymbol{\phi}_1 \quad 当 \ \boldsymbol{\phi}_2 \ 为小量 \end{cases}
ln(exp(ϕ1∧)exp(ϕ2∧))∨≈⎩
⎨
⎧Jl(ϕ2)−1ϕ1+ϕ2当 ϕ1 为小量Jr(ϕ1)−1ϕ2+ϕ1当 ϕ2 为小量其中:
- J l ( ϕ ) = sin θ θ I + ( 1 − sin θ θ ) a a T + 1 − cos θ θ a ∧ \boldsymbol{J}_l(\boldsymbol{\phi}) = \dfrac{\sin \theta}{\theta} \boldsymbol{I} + (1 - \dfrac{\sin \theta}{\theta}) \boldsymbol{a} \boldsymbol{a}^T + \dfrac{1 - \cos \theta}{\theta} \boldsymbol{a}^{\wedge} Jl(ϕ)=θsinθI+(1−θsinθ)aaT+θ1−cosθa∧, J l ( ϕ ) − 1 = θ 2 cot θ 2 I + ( 1 − θ 2 cot θ 2 ) a a T − θ 2 a ∧ \boldsymbol{J}_l(\boldsymbol{\phi})^{-1} = \dfrac{\theta}{2} \cot \dfrac{\theta}{2} \boldsymbol{I} + (1- \dfrac{\theta}{2} \cot \dfrac{\theta}{2}) \boldsymbol{a} \boldsymbol{a}^T - \dfrac{\theta}{2}\boldsymbol{a}^{\wedge} Jl(ϕ)−1=2θcot2θI+(1−2θcot2θ)aaT−2θa∧
- J r ( ϕ ) = J l ( − ϕ ) \boldsymbol{J}_r(\boldsymbol{\phi}) = \boldsymbol{J}_l(-\boldsymbol{\phi}) Jr(ϕ)=Jl(−ϕ)
假设存在旋转矩阵
R
\boldsymbol{R}
R,对应的李代数为
ϕ
\boldsymbol{\phi}
ϕ。对
R
\boldsymbol{R}
R 左乘一个微小旋转
Δ
R
\boldsymbol{\Delta R}
ΔR,对应的李代数为
Δ
ϕ
\boldsymbol{\Delta \phi}
Δϕ。在李群上有
Δ
R
R
\boldsymbol{\Delta R} \ \boldsymbol{R}
ΔR R,而在李代数上,根据 BCH 近似,为
J
l
−
1
(
ϕ
)
Δ
ϕ
+
ϕ
\boldsymbol{J}_l^{-1}(\boldsymbol{\phi}) \Delta \boldsymbol{\phi} + \boldsymbol{\phi}
Jl−1(ϕ)Δϕ+ϕ,从而有:
exp
(
Δ
ϕ
∧
)
exp
(
ϕ
∧
)
=
exp
(
(
J
l
−
1
(
ϕ
)
Δ
ϕ
+
ϕ
)
∧
)
\exp(\Delta \boldsymbol{\phi}^{\wedge}) \exp(\boldsymbol{\phi}^{\wedge}) = \exp((\boldsymbol{J}_l^{-1}(\boldsymbol{\phi}) \Delta \boldsymbol{\phi} + \boldsymbol{\phi})^{\wedge})
exp(Δϕ∧)exp(ϕ∧)=exp((Jl−1(ϕ)Δϕ+ϕ)∧)右乘
R
Δ
R
\boldsymbol{R} \boldsymbol{\Delta R}
RΔR 的话,则有:
exp
(
ϕ
∧
)
exp
(
Δ
ϕ
∧
)
=
exp
(
(
J
r
−
1
(
ϕ
)
Δ
ϕ
+
ϕ
)
∧
)
\exp(\boldsymbol{\phi}^{\wedge}) \exp(\Delta \boldsymbol{\phi}^{\wedge}) = \exp((\boldsymbol{J}_r^{-1}(\boldsymbol{\phi}) \Delta \boldsymbol{\phi} + \boldsymbol{\phi})^{\wedge})
exp(ϕ∧)exp(Δϕ∧)=exp((Jr−1(ϕ)Δϕ+ϕ)∧)反之,如果我们对李代数中的一个
ϕ
\boldsymbol{\phi}
ϕ 加上
Δ
ϕ
\Delta \boldsymbol{\phi}
Δϕ,则有:
exp
(
(
ϕ
+
Δ
ϕ
)
∧
)
=
{
exp
(
(
ϕ
+
J
l
−
1
(
ϕ
)
J
l
(
ϕ
)
Δ
ϕ
)
∧
)
=
exp
(
(
J
l
(
ϕ
)
Δ
ϕ
)
∧
)
exp
(
ϕ
∧
)
exp
(
(
ϕ
+
J
r
−
1
(
ϕ
)
J
r
(
ϕ
)
Δ
ϕ
)
∧
)
=
exp
(
ϕ
∧
)
exp
(
(
J
r
(
ϕ
)
Δ
ϕ
)
∧
)
\exp((\boldsymbol{\phi} + \Delta \boldsymbol{\phi})^{\wedge}) = \begin{cases} \exp((\boldsymbol{\phi} + \boldsymbol{J}_l^{-1}(\boldsymbol{\phi}) \boldsymbol{J}_l(\boldsymbol{\phi}) \Delta \boldsymbol{\phi})^{\wedge}) = \exp((\boldsymbol{J}_l(\boldsymbol{\phi}) \Delta \boldsymbol{\phi})^{\wedge}) \exp(\boldsymbol{\phi}^{\wedge}) \\ \\ \exp((\boldsymbol{\phi} + \boldsymbol{J}_r^{-1}(\boldsymbol{\phi}) \boldsymbol{J}_r(\boldsymbol{\phi}) \Delta \boldsymbol{\phi})^{\wedge}) = \exp(\boldsymbol{\phi}^{\wedge}) \exp((\boldsymbol{J}_r(\boldsymbol{\phi}) \Delta \boldsymbol{\phi})^{\wedge}) \end{cases}
exp((ϕ+Δϕ)∧)=⎩
⎨
⎧exp((ϕ+Jl−1(ϕ)Jl(ϕ)Δϕ)∧)=exp((Jl(ϕ)Δϕ)∧)exp(ϕ∧)exp((ϕ+Jr−1(ϕ)Jr(ϕ)Δϕ)∧)=exp(ϕ∧)exp((Jr(ϕ)Δϕ)∧)同理,对于
S
E
(
3
)
SE(3)
SE(3),也有类似的 BCH 近似:
{
exp
(
Δ
ξ
∧
)
exp
(
ξ
∧
)
=
exp
(
(
J
l
−
1
(
ξ
)
Δ
ξ
+
ξ
)
∧
)
exp
(
ξ
∧
)
exp
(
Δ
ξ
∧
)
=
exp
(
(
J
r
−
1
(
ξ
)
Δ
ξ
+
ξ
)
∧
)
\begin{cases} \exp(\Delta \boldsymbol{\xi}^{\wedge}) \exp(\boldsymbol{\xi}^{\wedge}) = \exp((\boldsymbol{J}_l^{-1}(\boldsymbol{\xi}) \Delta \boldsymbol{\xi} + \boldsymbol{\xi})^{\wedge}) \\ \\ \exp(\boldsymbol{\xi}^{\wedge}) \exp(\Delta \boldsymbol{\xi}^{\wedge}) = \exp((\boldsymbol{J}_r^{-1}(\boldsymbol{\xi}) \Delta \boldsymbol{\xi} + \boldsymbol{\xi})^{\wedge}) \end{cases}
⎩
⎨
⎧exp(Δξ∧)exp(ξ∧)=exp((Jl−1(ξ)Δξ+ξ)∧)exp(ξ∧)exp(Δξ∧)=exp((Jr−1(ξ)Δξ+ξ)∧)
2. 李代数求导
在 SLAM 问题中,我们常需计算目标函数关于位姿变换矩阵 T ∈ S E ( 3 ) \boldsymbol{T} \in SE(3) T∈SE(3)(或其旋转部分 R ∈ S O ( 3 ) \boldsymbol{R} \in SO(3) R∈SO(3))的导数。然而, S O ( 3 ) SO(3) SO(3) 群和 S E ( 3 ) SE(3) SE(3) 群是光滑流形而非向量空间,不具有线性运算(加法和数乘)的封闭性,因此不能直接在其上定义普通意义上的导数。若将 T \boldsymbol{T} T 视为普通矩阵进行微分操作,则必须施加严格的约束以确保结果仍在群中。相反,李代数 s o ( 3 ) so(3) so(3) 和 s e ( 3 ) se(3) se(3) 作为向量空间,具有良好的加法运算和标量乘法结构。这使得将目标函数的导数转化为定义在李代数(即切空间)上的导数运算成为可能。因此,利用李代数建立求导框架是解决该问题的有效方法。
我们对一个空间点
p
\boldsymbol{p}
p 进行旋转
R
\boldsymbol{R}
R (对应李代数
ϕ
\boldsymbol{\phi}
ϕ)得到
R
p
\boldsymbol{R} \boldsymbol{p}
Rp,则旋转后的坐标
R
p
\boldsymbol{R} \boldsymbol{p}
Rp 相对于旋转矩阵
R
\boldsymbol{R}
R 的导数为:
∂
R
p
∂
R
=
∂
exp
(
ϕ
∧
)
p
∂
ϕ
\dfrac{\partial{\boldsymbol{R} \boldsymbol{p}}}{\partial{\boldsymbol{R}}} = \dfrac{\partial{\exp(\boldsymbol{\phi}^{\wedge}) \boldsymbol{p}}}{\partial{\boldsymbol{\phi}}}
∂R∂Rp=∂ϕ∂exp(ϕ∧)p按照导数的定义有:
∂
(
exp
(
ϕ
∧
)
p
)
∂
ϕ
=
lim
δ
ϕ
→
0
exp
(
(
ϕ
+
δ
ϕ
)
∧
)
p
−
exp
(
ϕ
∧
)
p
δ
ϕ
=
lim
δ
ϕ
→
0
exp
(
(
J
l
δ
ϕ
)
∧
)
exp
(
ϕ
∧
)
p
−
exp
(
ϕ
∧
)
p
δ
ϕ
=
lim
δ
ϕ
→
0
(
I
+
(
J
l
δ
ϕ
)
∧
)
exp
(
ϕ
∧
)
p
−
exp
(
ϕ
∧
)
p
δ
ϕ
=
lim
δ
ϕ
→
0
(
J
l
δ
ϕ
)
∧
exp
(
ϕ
∧
)
p
δ
ϕ
=
lim
δ
ϕ
→
0
−
(
exp
(
ϕ
∧
)
p
)
∧
J
l
δ
ϕ
δ
ϕ
=
−
(
R
p
)
∧
J
l
\begin{align*} \dfrac{\partial \left( \exp(\phi^\wedge) \boldsymbol{p} \right)}{\partial \phi} &= \lim_{\delta \phi \to 0} \dfrac{\exp((\phi + \delta \phi)^\wedge) \boldsymbol{p} - \exp(\phi^\wedge) \boldsymbol{p}}{\delta \phi} \\ &= \lim_{\delta \phi \to 0} \dfrac{\exp((\boldsymbol{J}_l \delta \phi)^\wedge) \exp(\phi^\wedge) \boldsymbol{p} - \exp(\phi^\wedge) \boldsymbol{p}}{\delta \phi} \\ &= \lim_{\delta \phi \to 0} \dfrac{(\boldsymbol{I} + (\boldsymbol{J}_l \delta \phi)^\wedge) \exp(\phi^\wedge) \boldsymbol{p} - \exp(\phi^\wedge) \boldsymbol{p}}{\delta \phi} \\ &= \lim_{\delta \phi \to 0} \dfrac{(\boldsymbol{J}_l \delta \phi)^\wedge \exp(\phi^\wedge) \boldsymbol{p}}{\delta \phi} \\ &= \lim_{\delta \phi \to 0} \dfrac{-(\exp(\phi^\wedge) \boldsymbol{p})^\wedge \boldsymbol{J}_l \delta \phi}{\delta \phi} = -(\boldsymbol{R} \boldsymbol{p})^\wedge \boldsymbol{J}_l \end{align*}
∂ϕ∂(exp(ϕ∧)p)=δϕ→0limδϕexp((ϕ+δϕ)∧)p−exp(ϕ∧)p=δϕ→0limδϕexp((Jlδϕ)∧)exp(ϕ∧)p−exp(ϕ∧)p=δϕ→0limδϕ(I+(Jlδϕ)∧)exp(ϕ∧)p−exp(ϕ∧)p=δϕ→0limδϕ(Jlδϕ)∧exp(ϕ∧)p=δϕ→0limδϕ−(exp(ϕ∧)p)∧Jlδϕ=−(Rp)∧Jl上述推导中,用到了如下公式:
- 对 exp ( ( J l δ ϕ ) ∧ ) \exp((\boldsymbol{J}_l \delta \phi)^\wedge) exp((Jlδϕ)∧) 进行一阶泰勒展开: exp ( ( J l δ ϕ ) ∧ ) ≈ I + ( J l δ ϕ ) ∧ \exp((\boldsymbol{J}_l \delta \phi)^\wedge) \approx \boldsymbol{I} + (\boldsymbol{J}_l \delta \phi)^\wedge exp((Jlδϕ)∧)≈I+(Jlδϕ)∧
- 关于 ( J l δ ϕ ) ∧ exp ( ϕ ∧ ) p = − ( exp ( ϕ ∧ ) p ) ∧ J l δ ϕ (\boldsymbol{J}_l \delta \phi)^\wedge \exp(\phi^\wedge) \boldsymbol{p} = -(\exp(\phi^\wedge) \boldsymbol{p})^\wedge \boldsymbol{J}_l \delta \phi (Jlδϕ)∧exp(ϕ∧)p=−(exp(ϕ∧)p)∧Jlδϕ 的证明。对于两个向量 a \boldsymbol{a} a 和 b \boldsymbol{b} b,则有 a × b = a ∧ b \boldsymbol{a} \times \boldsymbol{b} = \boldsymbol{a}^{\wedge} \boldsymbol{b} a×b=a∧b。又因为 a × b = − b × a \boldsymbol{a} \times \boldsymbol{b} = -\boldsymbol{b} \times \boldsymbol{a} a×b=−b×a,所以有 a × b = − b × a = − b ∧ a \boldsymbol{a} \times \boldsymbol{b} = -\boldsymbol{b} \times \boldsymbol{a} = -\boldsymbol{b}^{\wedge} \boldsymbol{a} a×b=−b×a=−b∧a,令 a = J l δ ϕ \boldsymbol{a} = \boldsymbol{J}_l \delta \phi a=Jlδϕ, b = exp ( ϕ ∧ ) p \boldsymbol{b} = \exp(\phi^\wedge) \boldsymbol{p} b=exp(ϕ∧)p 即可证明
上述推导使用的是
J
l
\boldsymbol{J}_l
Jl,也可以使用
J
r
\boldsymbol{J}_r
Jr,推导如下:
∂
(
exp
(
ϕ
∧
)
p
)
∂
ϕ
=
lim
δ
ϕ
→
0
exp
(
(
ϕ
+
δ
ϕ
)
∧
)
p
−
exp
(
ϕ
∧
)
p
δ
ϕ
=
lim
δ
ϕ
→
0
exp
(
ϕ
∧
)
exp
(
(
J
r
δ
ϕ
)
∧
)
p
−
exp
(
ϕ
∧
)
p
δ
ϕ
=
lim
δ
ϕ
→
0
exp
(
ϕ
∧
)
(
I
+
(
J
r
δ
ϕ
)
∧
)
p
−
exp
(
ϕ
∧
)
p
δ
ϕ
=
lim
δ
ϕ
→
0
exp
(
ϕ
∧
)
(
J
r
δ
ϕ
)
∧
p
δ
ϕ
=
lim
δ
ϕ
→
0
−
exp
(
ϕ
∧
)
p
∧
J
r
δ
ϕ
δ
ϕ
=
−
R
p
∧
J
r
\begin{align*} \dfrac{\partial \left( \exp(\phi^\wedge) \boldsymbol{p} \right)}{\partial \phi} &= \lim_{\delta \phi \to 0} \dfrac{\exp((\phi + \delta \phi)^\wedge) \boldsymbol{p} - \exp(\phi^\wedge) \boldsymbol{p}}{\delta \phi} \\ &= \lim_{\delta \phi \to 0} \dfrac{\exp(\phi^\wedge) \exp((\boldsymbol{J}_r \delta \phi)^\wedge) \boldsymbol{p} - \exp(\phi^\wedge) \boldsymbol{p}}{\delta \phi} \\ &= \lim_{\delta \phi \to 0} \dfrac{\exp(\phi^\wedge) (\boldsymbol{I} + (\boldsymbol{J}_r \delta \phi)^\wedge) \boldsymbol{p} - \exp(\phi^\wedge) \boldsymbol{p}}{\delta \phi} \\ &= \lim_{\delta \phi \to 0} \dfrac{\exp(\phi^\wedge) (\boldsymbol{J}_r \delta \phi)^\wedge \boldsymbol{p}}{\delta \phi} \\ &= \lim_{\delta \phi \to 0} \dfrac{-\exp(\phi^\wedge) \boldsymbol{p}^\wedge \boldsymbol{J}_r \delta \phi}{\delta \phi} = -\boldsymbol{R} \boldsymbol{p}^\wedge \boldsymbol{J}_r \end{align*}
∂ϕ∂(exp(ϕ∧)p)=δϕ→0limδϕexp((ϕ+δϕ)∧)p−exp(ϕ∧)p=δϕ→0limδϕexp(ϕ∧)exp((Jrδϕ)∧)p−exp(ϕ∧)p=δϕ→0limδϕexp(ϕ∧)(I+(Jrδϕ)∧)p−exp(ϕ∧)p=δϕ→0limδϕexp(ϕ∧)(Jrδϕ)∧p=δϕ→0limδϕ−exp(ϕ∧)p∧Jrδϕ=−Rp∧Jr因此,旋转后的点相对于李代数的导数为:
∂
R
p
∂
ϕ
=
{
−
(
R
p
)
∧
J
l
−
R
p
∧
J
r
\dfrac{\partial{\boldsymbol{R} \boldsymbol{p}}}{\partial{\boldsymbol{\phi}}} = \begin{cases} -(\boldsymbol{R} \boldsymbol{p})^\wedge \boldsymbol{J}_l \\ \\ -\boldsymbol{R} \boldsymbol{p}^\wedge \boldsymbol{J}_r \end{cases}
∂ϕ∂Rp=⎩
⎨
⎧−(Rp)∧Jl−Rp∧Jr由于直接计算
J
l
\boldsymbol{J}_l
Jl 和
J
r
\boldsymbol{J}_r
Jr 较为复杂, 因此在 实际应用中,我们通常避免直接计算它们,而是采用扰动模型来计算导数。
3. 扰动模型
3.1. SO(3)
我们对
R
\boldsymbol{R}
R 添加一次左扰动
Δ
R
\Delta \boldsymbol{R}
ΔR(对应李代数
φ
\boldsymbol{\varphi}
φ),然后对
φ
\boldsymbol{\varphi}
φ 进行求导,即有:
∂
(
R
p
)
∂
φ
=
lim
φ
→
0
exp
(
φ
∧
)
exp
(
ϕ
∧
)
p
−
exp
(
ϕ
∧
)
p
φ
=
lim
φ
→
0
(
I
+
φ
∧
)
exp
(
ϕ
∧
)
p
−
exp
(
ϕ
∧
)
p
φ
=
lim
φ
→
0
φ
∧
R
p
φ
=
lim
φ
→
0
−
(
R
p
)
∧
φ
φ
=
−
(
R
p
)
∧
\begin{align*} \frac{\partial (\boldsymbol{R} \boldsymbol{p})}{\partial \varphi} &= \lim_{\varphi \to 0} \frac{\exp(\varphi^\wedge) \exp(\phi^\wedge) \boldsymbol{p} - \exp(\phi^\wedge) \boldsymbol{p}}{\varphi} = \lim_{\varphi \to 0} \frac{(\boldsymbol{I} + \varphi^\wedge) \exp(\phi^\wedge) \boldsymbol{p} - \exp(\phi^\wedge) \boldsymbol{p}}{\varphi} \\ &= \lim_{\varphi \to 0} \frac{\varphi^\wedge \boldsymbol{R} \boldsymbol{p}}{\varphi} = \lim_{\varphi \to 0} \frac{-(\boldsymbol{R} \boldsymbol{p})^\wedge \varphi}{\varphi} = -(\boldsymbol{R} \boldsymbol{p})^\wedge \end{align*}
∂φ∂(Rp)=φ→0limφexp(φ∧)exp(ϕ∧)p−exp(ϕ∧)p=φ→0limφ(I+φ∧)exp(ϕ∧)p−exp(ϕ∧)p=φ→0limφφ∧Rp=φ→0limφ−(Rp)∧φ=−(Rp)∧如果添加右扰动
Δ
R
\Delta \boldsymbol{R}
ΔR(对应李代数
φ
\boldsymbol{\varphi}
φ),则有:
∂
(
R
p
)
∂
φ
=
lim
φ
→
0
exp
(
ϕ
∧
)
exp
(
φ
∧
)
p
−
exp
(
ϕ
∧
)
p
φ
=
lim
φ
→
0
exp
(
ϕ
∧
)
(
I
+
φ
∧
)
p
−
exp
(
ϕ
∧
)
p
φ
=
lim
φ
→
0
R
φ
∧
p
φ
=
lim
φ
→
0
−
R
p
∧
φ
φ
=
−
R
p
∧
\begin{align*} \frac{\partial (\boldsymbol{R} \boldsymbol{p})}{\partial \varphi} &= \lim_{\varphi \to 0} \frac{\exp(\phi^\wedge) \exp(\varphi^\wedge) \boldsymbol{p} - \exp(\phi^\wedge) \boldsymbol{p}}{\varphi} = \lim_{\varphi \to 0} \frac{\exp(\phi^\wedge) (\boldsymbol{I} + \varphi^\wedge) \boldsymbol{p} - \exp(\phi^\wedge) \boldsymbol{p}}{\varphi} \\ &= \lim_{\varphi \to 0} \frac{\boldsymbol{R} \varphi^\wedge \boldsymbol{p}}{\varphi} = \lim_{\varphi \to 0} \frac{-\boldsymbol{R} \boldsymbol{p}^\wedge \varphi}{\varphi} = -\boldsymbol{R} \boldsymbol{p}^\wedge \end{align*}
∂φ∂(Rp)=φ→0limφexp(ϕ∧)exp(φ∧)p−exp(ϕ∧)p=φ→0limφexp(ϕ∧)(I+φ∧)p−exp(ϕ∧)p=φ→0limφRφ∧p=φ→0limφ−Rp∧φ=−Rp∧注意到:
−
(
R
p
)
∧
≠
−
R
p
∧
-(\boldsymbol{R} \boldsymbol{p})^\wedge ≠ -\boldsymbol{R} \boldsymbol{p}^\wedge
−(Rp)∧=−Rp∧,而是满足如下关系:
(
R
p
)
∧
=
R
p
∧
R
T
(\boldsymbol{R} \boldsymbol{p})^\wedge = \boldsymbol{R} \boldsymbol{p}^\wedge \boldsymbol{R}^T
(Rp)∧=Rp∧RT证明如下:
参考博客:多视图几何:本质矩阵与基础矩阵,对于任意旋转矩阵
R
\boldsymbol{R}
R 和向量
a
\boldsymbol{a}
a 和
b
\boldsymbol{b}
b,我们有:
R
(
a
×
b
)
=
(
R
a
)
×
(
R
b
)
\boldsymbol{R}(\mathbf{a} \times \mathbf{b}) = (\boldsymbol{R} \mathbf{a}) \times (\boldsymbol{R}\mathbf{b})
R(a×b)=(Ra)×(Rb)对任意向量
v
\boldsymbol{v}
v,可得:
- 左边: ( R p ) ∧ v = ( R p ) × v (\boldsymbol{R} \boldsymbol{p})^\wedge \boldsymbol{v} = (\boldsymbol{R} \boldsymbol{p}) \times \boldsymbol{v} (Rp)∧v=(Rp)×v
- 右边: R p ∧ R T v = R ( p × ( R T v ) ) = ( R p ) × ( R R T v ) = ( R p ) × v \boldsymbol{R} \boldsymbol{p}^\wedge \boldsymbol{R}^T \boldsymbol{v} = \boldsymbol{R} (\boldsymbol{p} \times (\boldsymbol{R}^T \boldsymbol{v})) = (\boldsymbol{R} \boldsymbol{p}) \times (\boldsymbol{R} \boldsymbol{R}^T \boldsymbol{v}) = (\boldsymbol{R} \boldsymbol{p}) \times \boldsymbol{v} Rp∧RTv=R(p×(RTv))=(Rp)×(RRTv)=(Rp)×v
证毕。
3.2. SE(3)
对一个空间点
p
\boldsymbol{p}
p 进行旋转
T
\boldsymbol{T}
T (对应李代数
ξ
\boldsymbol{\xi}
ξ)得到
T
p
\boldsymbol{T} \boldsymbol{p}
Tp(
p
\boldsymbol{p}
p 为齐次坐标),给
T
\boldsymbol{T}
T 左乘一个扰动
Δ
T
=
exp
(
δ
ξ
)
\Delta \boldsymbol{T} =\exp(\delta \boldsymbol{\xi})
ΔT=exp(δξ),且有
δ
ξ
=
[
δ
ρ
,
δ
ϕ
]
T
\delta \boldsymbol{\xi} = [\delta \boldsymbol{\rho}, \delta \boldsymbol{\phi}]^T
δξ=[δρ,δϕ]T,不妨设
p
=
[
p
′
1
]
\boldsymbol{p} = \begin{bmatrix} \boldsymbol{p}^{\prime} \\ 1 \end{bmatrix}
p=[p′1],那么:
∂
(
T
p
)
∂
δ
ξ
=
lim
δ
ξ
→
0
exp
(
δ
ξ
∧
)
exp
(
ξ
∧
)
p
−
exp
(
ξ
∧
)
p
δ
ξ
=
lim
δ
ξ
→
0
(
I
+
δ
ξ
∧
)
exp
(
ξ
∧
)
p
−
exp
(
ξ
∧
)
p
δ
ξ
=
lim
δ
ξ
→
0
δ
ξ
∧
exp
(
ξ
∧
)
p
δ
ξ
=
lim
δ
ξ
→
0
[
δ
ϕ
∧
δ
ρ
0
T
0
]
[
R
p
′
+
t
1
]
δ
ξ
=
lim
δ
ξ
→
0
[
δ
ϕ
∧
(
R
p
′
+
t
)
+
δ
ρ
0
T
]
[
δ
ρ
,
δ
ϕ
]
T
=
[
I
−
(
R
p
′
+
t
)
∧
0
T
0
T
]
≜
(
T
p
)
⊙
\begin{align*} \frac{\partial (\boldsymbol{T} \boldsymbol{p})}{\partial \delta \boldsymbol{\xi}} &= \lim_{\delta \boldsymbol{\xi} \to 0} \frac{\exp(\delta \boldsymbol{\xi}^\wedge) \exp(\boldsymbol{\xi}^\wedge) \boldsymbol{p} - \exp(\boldsymbol{\xi}^\wedge) \boldsymbol{p}}{\delta \boldsymbol{\xi}} = \lim_{\delta \boldsymbol{\xi} \to 0} \frac{(\boldsymbol{I} + \delta \boldsymbol{\xi}^\wedge) \exp(\boldsymbol{\xi}^\wedge) \boldsymbol{p} - \exp(\boldsymbol{\xi}^\wedge) \boldsymbol{p}}{\delta \boldsymbol{\xi}} \\ &= \lim_{\delta \boldsymbol{\xi} \to 0} \frac{\delta \boldsymbol{\xi}^\wedge \exp(\boldsymbol{\xi}^\wedge) \boldsymbol{p}}{\delta \boldsymbol{\xi}} = \lim_{\delta \boldsymbol{\xi} \to 0} \frac{\begin{bmatrix} \delta \boldsymbol{\phi}^\wedge & \delta \boldsymbol{\rho} \\ \boldsymbol{0}^T & 0 \end{bmatrix} \begin{bmatrix} \boldsymbol{R} \boldsymbol{p}^{\prime} + \boldsymbol{t} \\ 1 \end{bmatrix}}{\delta \boldsymbol{\xi}} = \lim_{\delta \boldsymbol{\xi} \to 0} \frac{\begin{bmatrix} \delta \boldsymbol{\phi}^\wedge (\boldsymbol{R} \boldsymbol{p}^{\prime} + \boldsymbol{t}) + \delta \boldsymbol{\rho} \\ \boldsymbol{0}^T \end{bmatrix}}{\begin{bmatrix} \delta \boldsymbol{\rho}, \delta \boldsymbol{\phi} \end{bmatrix}^T} \\ &= \begin{bmatrix} \boldsymbol{I} & -(\boldsymbol{R} \boldsymbol{p}^{\prime} + \boldsymbol{t})^\wedge \\ \boldsymbol{0}^T & \boldsymbol{0}^T \end{bmatrix} \triangleq (\boldsymbol{T} \boldsymbol{p})^\odot \end{align*}
∂δξ∂(Tp)=δξ→0limδξexp(δξ∧)exp(ξ∧)p−exp(ξ∧)p=δξ→0limδξ(I+δξ∧)exp(ξ∧)p−exp(ξ∧)p=δξ→0limδξδξ∧exp(ξ∧)p=δξ→0limδξ[δϕ∧0Tδρ0][Rp′+t1]=δξ→0lim[δρ,δϕ]T[δϕ∧(Rp′+t)+δρ0T]=[I0T−(Rp′+t)∧0T]≜(Tp)⊙其中,
⊙
\odot
⊙ 为新定义的运算符。
关于上述推导过程的说明:
- δ ξ ∧ exp ( ξ ∧ ) p = δ [ ϕ ∧ ρ 0 T 0 ] [ R t 0 T 1 ] p = [ δ ϕ ∧ δ ρ 0 T 0 ] [ R p ′ + t 1 ] \delta \boldsymbol{\xi}^\wedge \exp(\boldsymbol{\xi}^\wedge) \boldsymbol{p} = \delta \begin{bmatrix} \boldsymbol{\phi}^\wedge & \boldsymbol{\rho} \\ \boldsymbol{0}^T & 0 \end{bmatrix} \begin{bmatrix} \boldsymbol{R} & \boldsymbol{t} \\ \boldsymbol{0}^T & 1 \end{bmatrix} \boldsymbol{p} = \begin{bmatrix} \delta \boldsymbol{\phi}^\wedge & \delta \boldsymbol{\rho} \\ \boldsymbol{0}^T & 0 \end{bmatrix} \begin{bmatrix} \boldsymbol{R} \boldsymbol{p}^{\prime} + \boldsymbol{t} \\ 1 \end{bmatrix} δξ∧exp(ξ∧)p=δ[ϕ∧0Tρ0][R0Tt1]p=[δϕ∧0Tδρ0][Rp′+t1]
- 根据矩阵求导,我们有:
d
[
a
b
]
d
[
x
y
]
=
(
d
[
a
,
b
]
T
d
[
x
y
]
)
T
=
[
d
a
d
x
d
b
d
x
d
a
d
y
d
b
d
y
]
T
=
[
d
a
d
x
d
a
d
y
d
b
d
x
d
b
d
y
]
\dfrac{\mathrm{d} \begin{bmatrix} a \\ b \end{bmatrix}}{\mathrm{d} \begin{bmatrix} x \\ y \end{bmatrix}} = \left( \dfrac{\mathrm{d} [a, b]^T}{\mathrm{d} \begin{bmatrix} x \\ y \end{bmatrix}} \right)^T = \begin{bmatrix} \dfrac{\mathrm{d}a}{\mathrm{d}x} & \dfrac{\mathrm{d}b}{\mathrm{d}x} \\ \\ \dfrac{\mathrm{d}a}{\mathrm{d}y} & \dfrac{\mathrm{d}b}{\mathrm{d}y} \end{bmatrix}^T = \begin{bmatrix} \dfrac{\mathrm{d}a}{\mathrm{d}x} & \dfrac{\mathrm{d}a}{\mathrm{d}y} \\ \\ \dfrac{\mathrm{d}b}{\mathrm{d}x} & \dfrac{\mathrm{d}b}{\mathrm{d}y} \end{bmatrix}
d[xy]d[ab]=
d[xy]d[a,b]T
T=
dxdadydadxdbdydb
T=
dxdadxdbdydadydb
所以:
lim δ ξ → 0 [ δ ϕ ∧ ( R p ′ + t ) + δ ρ 0 T ] [ δ ρ , δ ϕ ] T = [ ∂ ( δ ϕ ∧ ( R p ′ + t ) + δ ρ ) ∂ δ ρ ∂ ( δ ϕ ∧ ( R p ′ + t ) + δ ρ ) ∂ δ ϕ 0 T 0 T ] \begin{align*} \lim_{\delta \boldsymbol{\xi} \to 0} \dfrac{\begin{bmatrix} \delta \boldsymbol{\phi}^\wedge (\boldsymbol{R} \boldsymbol{p}^{\prime} + \boldsymbol{t}) + \delta \boldsymbol{\rho} \\ \boldsymbol{0}^T \end{bmatrix}}{\begin{bmatrix} \delta \boldsymbol{\rho}, \delta \boldsymbol{\phi} \end{bmatrix}^T} = \begin{bmatrix} \dfrac{\partial{(\delta \boldsymbol{\phi}^\wedge (\boldsymbol{R} \boldsymbol{p}^{\prime} + \boldsymbol{t}) + \delta \boldsymbol{\rho})}}{\partial{\delta \boldsymbol{\rho}}} & \dfrac{\partial{(\delta \boldsymbol{\phi}^\wedge (\boldsymbol{R} \boldsymbol{p}^{\prime} + \boldsymbol{t}) + \delta \boldsymbol{\rho})}}{\partial{\delta \boldsymbol{\phi}}} \\ \\ \boldsymbol{0}^T & \boldsymbol{0}^T \end{bmatrix} \end{align*} δξ→0lim[δρ,δϕ]T[δϕ∧(Rp′+t)+δρ0T]= ∂δρ∂(δϕ∧(Rp′+t)+δρ)0T∂δϕ∂(δϕ∧(Rp′+t)+δρ)0T 注意到: ∂ ( δ ϕ ∧ ( R p ′ + t ) + δ ρ ) ∂ δ ρ = I \dfrac{\partial{(\delta \boldsymbol{\phi}^\wedge (\boldsymbol{R} \boldsymbol{p}^{\prime} + \boldsymbol{t}) + \delta \boldsymbol{\rho})}}{\partial{\delta \boldsymbol{\rho}}} = \boldsymbol{I} ∂δρ∂(δϕ∧(Rp′+t)+δρ)=I,而 ∂ ( δ ϕ ∧ ( R p ′ + t ) + δ ρ ) ∂ δ ϕ \dfrac{\partial{(\delta \boldsymbol{\phi}^\wedge (\boldsymbol{R} \boldsymbol{p}^{\prime} + \boldsymbol{t}) + \delta \boldsymbol{\rho})}}{\partial{\delta \boldsymbol{\phi}}} ∂δϕ∂(δϕ∧(Rp′+t)+δρ) 的计算方式如下:
∂ ( δ ϕ ∧ ( R p ′ + t ) + δ ρ ) ∂ δ ϕ = ∂ ( δ ϕ ∧ ( R p ′ + t ) ) ∂ δ ϕ = ∂ ( − ( R p ′ + t ) ∧ δ ϕ ) ∂ δ ϕ = − ( R p ′ + t ) ∧ \dfrac{\partial{(\delta \boldsymbol{\phi}^\wedge (\boldsymbol{R} \boldsymbol{p}^{\prime} + \boldsymbol{t}) + \delta \boldsymbol{\rho})}}{\partial{\delta \boldsymbol{\phi}}} = \dfrac{\partial{(\delta \boldsymbol{\phi}^\wedge (\boldsymbol{R} \boldsymbol{p}^{\prime} + \boldsymbol{t}))}}{\partial{\delta \boldsymbol{\phi}}} = \dfrac{\partial{(-(\boldsymbol{R} \boldsymbol{p}^{\prime} + \boldsymbol{t})^{\wedge} \delta \boldsymbol{\phi})}}{\partial{\delta \boldsymbol{\phi}}} = -(\boldsymbol{R} \boldsymbol{p}^{\prime} + \boldsymbol{t})^{\wedge} ∂δϕ∂(δϕ∧(Rp′+t)+δρ)=∂δϕ∂(δϕ∧(Rp′+t))=∂δϕ∂(−(Rp′+t)∧δϕ)=−(Rp′+t)∧
添加右扰动的计算过程如下:
∂
(
T
p
)
∂
δ
ξ
=
lim
δ
ξ
→
0
exp
(
ξ
∧
)
exp
(
δ
ξ
∧
)
p
−
exp
(
ξ
∧
)
p
δ
ξ
=
lim
δ
ξ
→
0
exp
(
ξ
∧
)
(
I
+
δ
ξ
∧
)
p
−
exp
(
ξ
∧
)
p
δ
ξ
=
lim
δ
ξ
→
0
exp
(
ξ
∧
)
δ
ξ
∧
p
δ
ξ
=
lim
δ
ξ
→
0
[
R
t
0
T
1
]
[
δ
ϕ
∧
δ
ρ
0
T
0
]
[
p
′
1
]
δ
ξ
=
lim
δ
ξ
→
0
[
R
δ
ϕ
∧
p
+
R
δ
ρ
0
T
]
[
δ
ρ
,
δ
ϕ
]
T
=
[
∂
(
R
δ
ϕ
∧
p
+
R
δ
ρ
)
∂
δ
ρ
∂
(
R
δ
ϕ
∧
p
+
R
δ
ρ
)
∂
δ
ϕ
0
T
0
T
]
=
[
R
−
R
p
∧
0
T
0
T
]
\begin{align*} \frac{\partial (\boldsymbol{T} \boldsymbol{p})}{\partial \delta \boldsymbol{\xi}} &= \lim_{\delta \boldsymbol{\xi} \to 0} \frac{\exp(\boldsymbol{\xi}^\wedge) \exp(\delta \boldsymbol{\xi}^\wedge) \boldsymbol{p} - \exp(\boldsymbol{\xi}^\wedge) \boldsymbol{p}}{\delta \boldsymbol{\xi}} = \lim_{\delta \boldsymbol{\xi} \to 0} \frac{\exp(\boldsymbol{\xi}^\wedge) (\boldsymbol{I} + \delta \boldsymbol{\xi}^\wedge) \boldsymbol{p} - \exp(\boldsymbol{\xi}^\wedge) \boldsymbol{p}}{\delta \boldsymbol{\xi}} \\ &= \lim_{\delta \boldsymbol{\xi} \to 0} \frac{\exp(\boldsymbol{\xi}^\wedge) \delta \boldsymbol{\xi}^\wedge \boldsymbol{p}}{\delta \boldsymbol{\xi}} = \lim_{\delta \boldsymbol{\xi} \to 0} \frac{\begin{bmatrix} \boldsymbol{R} & \boldsymbol{t} \\ \boldsymbol{0}^T & 1 \end{bmatrix} \begin{bmatrix} \delta \boldsymbol{\phi}^\wedge & \delta \boldsymbol{\rho} \\ \boldsymbol{0}^T & 0 \end{bmatrix} \begin{bmatrix} \boldsymbol{p}^{\prime} \\ 1 \end{bmatrix}}{\delta \boldsymbol{\xi}} = \lim_{\delta \boldsymbol{\xi} \to 0} \frac{\begin{bmatrix} \boldsymbol{R} \delta \boldsymbol{\phi}^{\wedge} \boldsymbol{p + \boldsymbol{R} \delta \boldsymbol{\rho}} \\ \boldsymbol{0}^T \end{bmatrix}}{\begin{bmatrix} \delta \boldsymbol{\rho}, \delta \boldsymbol{\phi} \end{bmatrix}^T} \\ &= \begin{bmatrix} \dfrac{\partial{(\boldsymbol{R} \delta \boldsymbol{\phi}^{\wedge} \boldsymbol{p + \boldsymbol{R} \delta \boldsymbol{\rho}})}}{\partial{\delta \boldsymbol{\rho}}} & \dfrac{\partial{(\boldsymbol{R} \delta \boldsymbol{\phi}^{\wedge} \boldsymbol{p + \boldsymbol{R} \delta \boldsymbol{\rho}})}}{\partial{\delta \boldsymbol{\phi}}} \\ \\ \boldsymbol{0}^T & \boldsymbol{0}^T \end{bmatrix} = \begin{bmatrix} \boldsymbol{R} & -\boldsymbol{R}\boldsymbol{p}^{\wedge} \\ \boldsymbol{0}^T & \boldsymbol{0}^T \end{bmatrix} \end{align*}
∂δξ∂(Tp)=δξ→0limδξexp(ξ∧)exp(δξ∧)p−exp(ξ∧)p=δξ→0limδξexp(ξ∧)(I+δξ∧)p−exp(ξ∧)p=δξ→0limδξexp(ξ∧)δξ∧p=δξ→0limδξ[R0Tt1][δϕ∧0Tδρ0][p′1]=δξ→0lim[δρ,δϕ]T[Rδϕ∧p+Rδρ0T]=
∂δρ∂(Rδϕ∧p+Rδρ)0T∂δϕ∂(Rδϕ∧p+Rδρ)0T
=[R0T−Rp∧0T]上述推导中应用了下面的等式:
- ∂ ( R δ ϕ ∧ p + R δ ρ ) ∂ δ ρ = ∂ R δ ρ ∂ δ ρ = R \dfrac{\partial{(\boldsymbol{R} \delta \boldsymbol{\phi}^{\wedge} \boldsymbol{p + \boldsymbol{R} \delta \boldsymbol{\rho}})}}{\partial{\delta \boldsymbol{\rho}}} = \dfrac{\partial{\boldsymbol{R} \delta \boldsymbol{\rho}}}{\partial{\delta \boldsymbol{\rho}}} = \boldsymbol{R} ∂δρ∂(Rδϕ∧p+Rδρ)=∂δρ∂Rδρ=R
- ∂ ( R δ ϕ ∧ p + R δ ρ ) ∂ δ ϕ = ∂ ( R δ ϕ ∧ p ) ∂ δ ϕ = ∂ ( − R p ∧ δ ϕ ) ∂ δ ϕ = − R p ∧ \dfrac{\partial{(\boldsymbol{R} \delta \boldsymbol{\phi}^{\wedge} \boldsymbol{p + \boldsymbol{R} \delta \boldsymbol{\rho}})}}{\partial{\delta \boldsymbol{\phi}}} = \dfrac{\partial{(\boldsymbol{R} \delta \boldsymbol{\phi}^{\wedge} \boldsymbol{p})}}{\partial{\delta \boldsymbol{\phi}}} = \dfrac{\partial{(-\boldsymbol{R}\boldsymbol{p}^{\wedge} \delta \boldsymbol{\phi})}}{\partial{\delta \boldsymbol{\phi}}} = -\boldsymbol{R}\boldsymbol{p}^{\wedge} ∂δϕ∂(Rδϕ∧p+Rδρ)=∂δϕ∂(Rδϕ∧p)=∂δϕ∂(−Rp∧δϕ)=−Rp∧