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) 根据上面提到的用 定义法求解向量对向量求导 即可得到结果。