在SLAM中非线性最小二乘问题利用舒尔补简化求解增量

高斯牛顿求解流程
有如下最小二乘系统,对应的模型如下所示:
在这里插入图片描述 ξ = a r g m i n ξ 1 2 ∑ i ∥ r i ∥ ∑ i 2 \xi = \underset{\xi}{argmin}{1\over 2}\sum_i\lVert r_i\rVert^2_{\sum_i} ξ=ξargmin21irii2对上式展开求导,令其导数为零,可得到 H x = b Hx=b Hx=b的形式,上式对应的高斯牛顿求解 normal equation: J ⊤ Σ − 1 J ⏟ H   o r   A δ ξ = − J ⊤ Σ − 1 r ⏟ b \underbrace{J^\topΣ^{-1}J}_{H \,or \,A}δξ=\underbrace{-J^\topΣ^{-1}r}_{b} HorA JΣ1Jδξ=b JΣ1r如果 H H H可逆,则可以直接求解 Δ x = − H − 1 b \Delta x=-H^{-1}b Δx=H1b,但其计算量较大。在另一篇关于舒尔补的博客中可以知道,舒尔补从概率上可以加速问题求解,利用SLAM问题的稀疏性。

例如某单目BA问题,其信息矩阵如下所使:
在这里插入图片描述 [ H p p H p l H l p H l l ] [ Δ x p ∗ Δ x l ∗ ] = [ − b p − b l ] \begin{bmatrix} H_{pp} & H_{pl} \\ H_{lp} & H_{ll} \\ \end{bmatrix} \begin{bmatrix} \Delta x^*_p \\\Delta x^*_l \\ \end{bmatrix} =\begin{bmatrix} -b_p\\-b_l \\ \end{bmatrix} [HppHlpHplHll][ΔxpΔxl]=[bpbl]其中 H p p H_{pp} Hpp代表相机pose之间的信息矩阵, H p l H_{pl} Hpl代表相机与路标点之间的信息矩阵, H l l H_{ll} Hll代表路标点之间的信息矩阵。
接下来利用如下舒尔补的操作,使上式信息矩阵变成下三角矩阵
[ I − B D − 1 0 I ] [ A B C D ] = [ A − B D − 1 C 0 C   D ] \begin{bmatrix} I &-BD^{-1} \\ 0&I\\ \end{bmatrix}\begin{bmatrix} A&B \\C&D\\ \end{bmatrix} = \begin{bmatrix} A-BD^{-1}C&0 \\C&\ D \\ \end{bmatrix} [I0BD1I][ACBD]=[ABD1CC0 D] [ I − H p l H l l − 1 0 I ] [ H p p H p l H l p H l l ] = [ H p p − H p l H l l − 1 H l p 0 H l p H l l ] \begin{bmatrix} I & -H_{pl}H^{-1}_{ll}\\ 0 & I\\ \end{bmatrix}\begin{bmatrix} H_{pp} & H_{pl} \\ H_{lp} & H_{ll} \\ \end{bmatrix} = \begin{bmatrix}H_{pp}-H_{pl}H_{ll}^{-1}H_{lp} & 0 \\ H_{lp} & H_{ll} \\ \end{bmatrix} [I0HplHll1I][HppHlpHplHll]=[HppHplHll1HlpHlp0Hll] ⇓ 带 入 到 信 息 矩 阵 中 \Downarrow 带入到信息矩阵中 [ I − H p l H l l − 1 0 I ] [ H p p H p l H l p H l l ] [ Δ x p ∗ Δ x l ∗ ] = [ I − H p l H l l − 1 0 I ] [ − b p − b l ] \begin{bmatrix} I & -H_{pl}H^{-1}_{ll}\\ 0 & I\\ \end{bmatrix}\begin{bmatrix} H_{pp} & H_{pl} \\ H_{lp} & H_{ll} \\ \end{bmatrix}\begin{bmatrix} \Delta x^*_p \\\Delta x^*_l \\ \end{bmatrix} =\begin{bmatrix} I & -H_{pl}H^{-1}_{ll}\\ 0 & I\\ \end{bmatrix}\begin{bmatrix} -b_p\\-b_l \\ \end{bmatrix} [I0HplHll1I][HppHlpHplHll][ΔxpΔxl]=[I0HplHll1I][bpbl]    ⟹    [ H p p − H p l H l l − 1 H l p 0 H l p H l l ] [ Δ x p ∗ Δ x l ∗ ] = [ I − H p l H l l − 1 0 I ] [ − b p − b l ] \implies \begin{bmatrix}H_{pp}-H_{pl}H_{ll}^{-1}H_{lp} & 0 \\ H_{lp} & H_{ll} \\ \end{bmatrix}\begin{bmatrix} \Delta x^*_p \\\Delta x^*_l \\ \end{bmatrix}=\begin{bmatrix} I & -H_{pl}H^{-1}_{ll}\\ 0 & I\\ \end{bmatrix}\begin{bmatrix} -b_p\\-b_l \\ \end{bmatrix} [HppHplHll1HlpHlp0Hll][ΔxpΔxl]=[I0HplHll1I][bpbl]从而得到: ( H p p − H p l H l l − 1 H l p ) Δ x p ∗ = − b p + H p l H l l − 1 b l (H_{pp}-H_{pl}H_{ll}^{-1}H_{lp}) \Delta x^*_p = -b_p+ H_{pl}H^{-1}_{ll}b_l (HppHplHll1Hlp)Δxp=bp+HplHll1bl求得 Δ x p ∗ \Delta x^*_p Δxp后再计算 Δ x l ∗ \Delta x^*_l Δxl H l l Δ x l ∗ = − b l − H p l ⊤ Δ x p ∗ H_{ll}\Delta x^*_l=-b_l-H^{\top}_{pl}\Delta x^*_p HllΔxl=blHplΔxp


在SLAM中整个solver流程可以总结为:
利用IMU构建残差,重投影误差构建姿态和路标点关系。
构建误差函数 r i j →    r_{ij}\to \; rij计算雅可比 J i j →    ( H + λ I ) δ x = b →    J_{ij}\to \;(H+\lambda I)δx=b \to\; Jij(H+λI)δx=b利用舒尔补简化求解 →    \to \; 求解出增量 Δ x \Delta x Δx作用到之前变量上,更新残差、更新雅可比,不断迭代。


但是在实际情况中,信息矩阵H并不满秩,可使用LM算法, H = H + λ I H=H+\lambda I H=H+λI,加阻尼因子使得系统满秩,但是求解的结果可能会往零空间变化。简单来说就是,在残差构建的过程中,得到的是相机pose与路标点landmark之间或者相机之间的相对关系,并没有建立与世界坐标系之间的绝对关系,因此可能因为第一帧的漂移导致整个系统发生漂移。

另一种方法是添加先验,增加系统的可观性。例如约束第一帧相机的pose被固定在 ( 0 , 0 , 0 ) (0,0,0) (0,0,0)原点,即先验信息。在g2o turorial中对第一个pose的信息矩阵加上单位阵, H [ 11 ] + = I H_{[11]}+=I H[11]+=I,存在 ( H [ 11 ] + I ) Δ x = b (H_{[11]}+I)\Delta x=b (H[11]+I)Δx=b,即 I Δ x = 0 I\Delta x=0 IΔx=0,使得第一帧的pose不动。但是尺度依然无法确定,常用的办法可以再固定一个landmark,也可以再固定一个相机pose,固定其相对的位移。

优化过程中处理 H 自由度的不同操作方式可参考博客对《On the comparison of gauge freedom handling in optimization-based visual-inertial state estimation》

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秃头队长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值