视觉 SLAM 十四讲 - 李代数求导与扰动模型


下文内容参考了《视觉 SLAM 十四讲》。

SLAM 中的位姿(旋转矩阵 R ∈ S O ( 3 ) \boldsymbol{R} \in SO(3) RSO(3) 或变换矩阵 T ∈ S E ( 3 ) \boldsymbol{T} \in SE(3) TSE(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+θ1cosθ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+(12θcot2θ)aaT2θ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} Jl1(ϕ)Δϕ+ϕ,从而有:
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((Jl1(ϕ)Δϕ+ϕ))右乘 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((Jr1(ϕ)Δϕ+ϕ))反之,如果我们对李代数中的一个 ϕ \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((ϕ+Jl1(ϕ)Jl(ϕ)Δϕ))=exp((Jl(ϕ)Δϕ))exp(ϕ)exp((ϕ+Jr1(ϕ)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((Jl1(ξ)Δξ+ξ))exp(ξ)exp(Δξ)=exp((Jr1(ξ)Δξ+ξ))

2. 李代数求导

在 SLAM 问题中,我们常需计算目标函数关于位姿变换矩阵 T ∈ S E ( 3 ) \boldsymbol{T} \in SE(3) TSE(3)(或其旋转部分 R ∈ S O ( 3 ) \boldsymbol{R} \in SO(3) RSO(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}}} RRp=ϕ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((ϕ+δϕ))pexp(ϕ)p=δϕ0limδϕexp((Jlδϕ))exp(ϕ)pexp(ϕ)p=δϕ0limδϕ(I+(Jlδϕ))exp(ϕ)pexp(ϕ)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=ab。又因为 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=ba,令 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((ϕ+δϕ))pexp(ϕ)p=δϕ0limδϕexp(ϕ)exp((Jrδϕ))pexp(ϕ)p=δϕ0limδϕexp(ϕ)(I+(Jrδϕ))pexp(ϕ)p=δϕ0limδϕexp(ϕ)(Jrδϕ)p=δϕ0limδϕexp(ϕ)pJrδϕ=RpJr因此,旋转后的点相对于李代数的导数为:
∂ 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)JlRpJr由于直接计算 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(ϕ)pexp(ϕ)p=φ0limφ(I+φ)exp(ϕ)pexp(ϕ)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(φ)pexp(ϕ)p=φ0limφexp(ϕ)(I+φ)pexp(ϕ)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)=RpRT证明如下:
参考博客:多视图几何:本质矩阵与基础矩阵,对于任意旋转矩阵 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} RpRTv=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=[p1],那么:
∂ ( 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(ξ)pexp(ξ)p=δξ0limδξ(I+δξ)exp(ξ)pexp(ξ)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(δξ)pexp(ξ)p=δξ0limδξexp(ξ)(I+δξ)pexp(ξ)p=δξ0limδξexp(ξ)δξp=δξ0limδξ[R0Tt1][δϕ0Tδρ0][p1]=δξ0lim[δρ,δϕ]T[Rδϕp+Rδρ0T]= δρ(Rδϕp+Rδρ)0Tδϕ(Rδϕp+Rδρ)0T =[R0TRp0T]上述推导中应用了下面的等式:

  • ∂ ( 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值