SE(3) 上的李代数求导(推导过程)
变量基本形式
p p p 是一个三维向量 ,其齐次形式为
p = [ p 1 ] (0) p = \begin{bmatrix} p \\ 1 \end{bmatrix} \tag{0} p=[p1](0)T T T 是一个变换矩阵,其形式
T = [ R t 0 T 1 ] (1) T = \begin{bmatrix} R & t \\ 0^T & 1 \end{bmatrix} \tag{1} T=[R0Tt1](1)
ξ \xi ξ 是一六维向量 ,其形式为
ξ = [ ρ ϕ ] \xi = \begin{bmatrix} \rho \\ \phi \end{bmatrix} ξ=[ρϕ]
ξ ∧ \xi^\wedge ξ∧ 是 向量 ξ \xi ξ 的反对称矩阵,其形式
ξ ∧ = [ ϕ ∧ ρ 0 T 0 ] (3) \xi^\wedge = \begin{bmatrix} \phi^\wedge & \rho \\ 0^T & 0 \end{bmatrix} \tag{3} ξ∧=[ϕ∧0Tρ0](3)
exp ( ξ ∧ ) \exp (\xi^\wedge) exp(ξ∧) 是李代数 ξ \xi ξ 的指数映射,其形式为
exp ( ξ ∧ ) [ exp ( ϕ ∧ ) J ρ 0 T 1 ] (4) \exp(\xi^\wedge) \begin{bmatrix} \exp(\phi^\wedge) & J\rho \\ 0^T & 1 \end{bmatrix} \tag{4} exp(ξ∧)[exp(ϕ∧)0TJρ1](4)
前提假设
假设某空间点 p p p 经过一次变换 T T T (对应的李代数为 ξ \xi ξ ) 得到 T p = exp ( ξ ∧ ) p Tp = \exp (\xi^\wedge)p Tp=exp(ξ∧)p .
现在给 T T T 左乘一个扰动 Δ T = exp ( δ ξ ∧ ) \Delta T = \exp(\delta \xi^\wedge) ΔT=exp(δξ∧) ,设扰动项的李代数为 δ ξ = [ δ ρ ϕ ] \delta\xi=\begin{bmatrix}\delta\rho \\\ \phi\end{bmatrix} δξ=[δρ ϕ]
公式推导
∂ ( T p ) ∂ δ ξ = lim δ ξ → 0 exp ( δ ξ ∧ ) exp ( ξ ∧ ) p − exp ( ξ ∧ ) p δ ξ (5-1) \frac{\partial \ (Tp)}{\partial \ \delta\xi} = \lim_{\delta\xi\rightarrow 0}\frac{\exp(\delta \xi^\wedge)\exp( \xi^\wedge)p-\exp(\xi^\wedge)p}{\delta \xi}\tag{5-1} ∂ δξ∂ (Tp)=δξ→0limδξexp(δξ∧)exp(ξ∧)p−exp(ξ∧)p(5-1)
( 5 − 1 ) (5-1) (5−1) :根据导数的定义以及SE(3)的扰动定义(可以将这里的扰动理解为挪动一点点位置,等价于数学上的 + Δ x +\Delta x +Δx) ,具体形式参考《SLAM十四讲》公式,即下图
图
lim
δ
ξ
→
0
exp
(
δ
ξ
∧
)
exp
(
ξ
∧
)
p
−
exp
(
ξ
∧
)
p
δ
ξ
=
lim
δ
ξ
→
0
(
I
+
δ
ξ
∧
)
exp
(
ξ
∧
)
p
−
exp
(
ξ
∧
)
p
δ
ξ
(5-2)
\lim_{\delta\xi\rightarrow 0}\frac{\exp(\delta \xi^\wedge)\exp( \xi^\wedge)p-\exp(\xi^\wedge)p}{\delta \xi} \\\ =\lim_{\delta\xi\rightarrow 0}\frac{(I + \delta \xi^\wedge)\exp( \xi^\wedge)p-\exp(\xi^\wedge)p}{\delta \xi} \tag{5-2}
δξ→0limδξexp(δξ∧)exp(ξ∧)p−exp(ξ∧)p =δξ→0limδξ(I+δξ∧)exp(ξ∧)p−exp(ξ∧)p(5-2)
(
5
−
2
)
(5-2)
(5−2) :对
exp
(
δ
ξ
∧
)
\exp(\delta \xi^\wedge)
exp(δξ∧) 应用一阶泰勒展开即可,参考
e
x
≈
1
+
x
+
o
(
x
2
)
e^x \approx 1 + x + o(x^2)
ex≈1+x+o(x2)
lim
δ
ξ
→
0
(
I
+
δ
ξ
∧
)
exp
(
ξ
∧
)
p
−
exp
(
ξ
∧
)
p
δ
ξ
=
lim
δ
ξ
→
0
δ
ξ
∧
exp
(
ξ
∧
)
p
δ
ξ
(5-3)
\lim_{\delta\xi\rightarrow 0}\frac{(I + \delta \xi^\wedge)\exp( \xi^\wedge)p-\exp(\xi^\wedge)p}{\delta \xi}=\\ \lim_{\delta\xi\rightarrow 0}\frac{\delta \xi^\wedge\exp( \xi^\wedge)p}{\delta \xi} \tag{5-3}
δξ→0limδξ(I+δξ∧)exp(ξ∧)p−exp(ξ∧)p=δξ→0limδξδξ∧exp(ξ∧)p(5-3)
(
5
−
3
)
(5-3)
(5−3) :略(不解释)
lim
δ
ξ
→
0
δ
ξ
∧
exp
(
ξ
∧
)
p
δ
ξ
=
lim
δ
ξ
→
0
[
δ
ϕ
∧
δ
ρ
0
T
0
]
[
R
p
+
t
1
]
δ
ξ
=
lim
δ
ξ
→
0
[
δ
ϕ
∧
(
R
p
+
t
)
+
δ
ρ
0
]
δ
ξ
(5-4)
\lim_{\delta\xi\rightarrow 0}\frac{\delta \xi^\wedge\exp( \xi^\wedge)p}{\delta \xi}\\\ = \lim_{\delta\xi\rightarrow 0}\frac{ \begin{bmatrix} \delta\phi^\wedge & \delta\rho \\ 0^T & 0 \end{bmatrix} \begin{bmatrix} Rp+t \\ 1 \end{bmatrix} }{\delta \xi} \\ = \lim_{\delta\xi\rightarrow 0}\frac{ \begin{bmatrix} \delta\phi^\wedge(Rp+t)+\delta\rho\\ 0 \end{bmatrix} }{\delta \xi} \tag{5-4}
δξ→0limδξδξ∧exp(ξ∧)p =δξ→0limδξ[δϕ∧0Tδρ0][Rp+t1]=δξ→0limδξ[δϕ∧(Rp+t)+δρ0](5-4)
(
5
−
4
)
(5-4)
(5−4) :结合前提假设中的
T
p
=
exp
(
ξ
∧
)
p
Tp = \exp (\xi^\wedge)p
Tp=exp(ξ∧)p ,应用矩阵乘法即可得到
[
R
p
+
t
1
]
\begin{bmatrix} Rp+t \\ 1 \end{bmatrix}
[Rp+t1] ,
依据式
(
3
)
(3)
(3) 即可得到
[
δ
ϕ
∧
δ
ρ
0
T
0
]
\begin{bmatrix} \delta\phi^\wedge & \delta\rho \\ 0^T & 0 \end{bmatrix}
[δϕ∧0Tδρ0] ,将两矩阵相乘即可
lim
δ
ξ
→
0
[
δ
ϕ
∧
(
R
p
+
t
)
+
δ
ρ
0
]
δ
ξ
=
lim
δ
ξ
→
0
[
δ
ρ
−
(
R
p
+
t
)
∧
δ
ϕ
0
]
δ
ξ
(5-5)
\lim_{\delta\xi\rightarrow 0}\frac{ \begin{bmatrix} \delta\phi^\wedge(Rp+t)+\delta\rho\\ 0 \end{bmatrix} }{\delta \xi} \\ = \lim_{\delta\xi\rightarrow 0}\frac{ \begin{bmatrix} \delta\rho - (Rp+t)^\wedge\delta\phi\\ 0 \end{bmatrix} }{\delta \xi} \tag{5-5}
δξ→0limδξ[δϕ∧(Rp+t)+δρ0]=δξ→0limδξ[δρ−(Rp+t)∧δϕ0](5-5)
(
5
−
5
)
(5-5)
(5−5) :将 符号
∧
\wedge
∧ 看作 向量的
×
\times
× 积符号 ,将
×
\times
× 积符号前后交换位置后需要进行变号,也即
A
×
B
=
−
B
×
A
A\times B=-B \times A
A×B=−B×A
用定义法求解向量对向量求导
先来一个简单的例子: y = A x y=Ax y=Ax,其中 A A A为 n × m n×m n×m的矩阵。 x , y x,y x,y分别为 m , n m,n m,n维向量。需要求导 ∂ A x ∂ x \frac{∂Ax}{∂x} ∂x∂Ax , 根据定义,结果应该是一个 n × m n×m n×m 的矩阵.
先求矩阵的第
i
i
i 行和向量的内积对向量的第
j
j
j 分量求导,用定义法求解过程如下:
∂
A
i
x
∂
x
j
=
∂
A
i
j
x
j
∂
x
j
=
A
i
j
\frac{∂A_ix}{∂x_j}=\frac{∂A_{ij}x_j}{∂x_j}=A_{ij}
∂xj∂Aix=∂xj∂Aijxj=Aij
可见矩阵
A
A
A 的第
i
i
i 行和向量的内积对向量的第
j
j
j 分量求导的结果就是矩阵
A
A
A 的
(
i
,
j
)
(i,j)
(i,j)位置的值。
lim
δ
ξ
→
0
[
δ
ρ
−
(
R
p
+
t
)
∧
δ
ϕ
0
]
δ
ξ
=
lim
δ
ξ
→
0
[
δ
ρ
−
(
R
p
+
t
)
∧
δ
ϕ
0
]
δ
[
ρ
ϕ
]
=
[
I
−
(
R
p
+
t
)
∧
0
T
0
]
(5-6)
\lim_{\delta\xi\rightarrow 0}\frac{ \begin{bmatrix} \delta\rho - (Rp+t)^\wedge\delta\phi\\ 0 \end{bmatrix} }{\delta \xi}\\ = \lim_{\delta\xi\rightarrow 0}\frac{ \begin{bmatrix} \delta\rho - (Rp+t)^\wedge\delta\phi\\ 0 \end{bmatrix} }{\delta\begin{bmatrix} \rho \\ \phi \end{bmatrix}}\\ = \begin{bmatrix} I & -(Rp+t)^\wedge \\ 0^T & 0 \end{bmatrix} \tag{5-6}
δξ→0limδξ[δρ−(Rp+t)∧δϕ0]=δξ→0limδ[ρϕ][δρ−(Rp+t)∧δϕ0]=[I0T−(Rp+t)∧0](5-6)
(
5
−
6
)
(5-6)
(5−6) 根据上面提到的用 定义法求解向量对向量求导 即可得到结果。
[参考]:
- 机器学习中的矩阵向量求导(二) 矩阵向量求导之定义法
- 《SLAM十四讲》