简单总结一下滑窗里的FEJ操作

在sliding window filter中,随着帧的数量越来越多,只能在新来一帧之后,将老的(或者次新帧)给去掉,但是又不能直接扔掉,因为老的帧会对window中的帧产生约束,使他们不能只按照自己的约定来,因此需要按照marg的规则将老帧边缘化掉,这样会使老帧产生对window内帧的先验约束。也就是在新来一帧之后,本身应该优化11帧的,但是我为了控制计算量,非要把老的给去掉,无奈此时可以认为对老的帧已经优化的比较好了,可以不进行优化了,只留下先验信息。此先验信息是老帧和window中与老帧相关的帧之间的约束,可以认为是H_prior,也可以看作是JTJ,这里的J就是先验中的雅可比,他没办法更新,但是残差会一直变。

上面说了一堆废话,在滑窗中已经优化好了10帧之后,又来了一个新的帧,为了控制计算量我打算将最老的帧去掉,且必然不能直接丢掉,因为还有约束在里面,所以只能留下一个先验信息,下面我想先解读一下这个先验信息。

(图片来源于https://blog.csdn.net/heyijia0327/article/details/53707261

1. 先验信息里面到底是什么?

其实是在老的变量xm被marg掉之后,为了不破坏与其相关的变量xb的约束zm,所以对xb产生了一个先验约束,其实他是:

①条件概率

在贺博博客里说到,在他们之间的约束zm下的xb的概率,我们把这个过程近似看作一个高斯分布,也

就是xm与xb之间在zm约束下的正态分布(在VIO中将构建H阵的时候只提到了下面的信息矩阵,没有说均值的东西,所以目前来看对后面的那个没有上面概念),现在想求这个正态分布的均值和方差,可以利用极大似然估计对这两个量求一个估计值,刚好求出的信息矩阵就是schur补那个,也就完成了marg操作。

②高斯分布

此时是把先验看成一个高斯分布,且已知均值和方差。这里的分布只是xm和xb之间的约束,而且也是之前优化过了的,所以他们求出来的线性化点和雅可比是对xm和xb来说是最优的,现在把他们化作高斯分布加到新的约束中,为的是在优化新的约束时也要考虑到之前的最优值,不能把之前的最优值给带偏了。

③就是一堆数

说到这里,我们看到,所谓的先验信息,所谓的高斯分布,虽然里面蕴含了xb的最优值和其信息矩阵,虽然他提供了marg的银子,但他就是一堆数,解析式已经丢了,没有办法再对xb求雅可比了,所以没有办法对先验里面的雅可比进行更新,也就是说这里面的雅可比是固定的了,但是这些变量xb还会有别的约束,这些约束存在解析式,他们可以在新的约束下计算雅可比,计算增量,这也会导致xb的更新或者变化。所以这样来看,更新xb只能靠新的约束了,但这样真的可行吗?

2. 明显是不可行的。为什么?

①线性化点不一致导致零空间发生变化

第一种解释:先验信息中包含一个雅可比(线性化点),剩下的约束里面也有新的雅可比,如果这两个雅可比不是在同一个线性化点进行展开,那么xb的约束将发生变化,导致xb求解出错。因为xb本来就应该是和xm一起优化的,他们的模型就是那样,但是xm被marg掉了,xb的一些约束被固定了,如果别的约束还跟着变的话,xb的约束模型(所有的约束构成的关系)将在不同点被线性化,导致xb求解出错。

第二种解释:在xm还在的时候,xm和xb一起优化,在被marg的时候,他们得出了这些约束下的xb的最优值xb^;在新来帧加入后,(新来帧的约束会影响到xb吗?若没影响到,刚刚好,xb们还是他们自己的约束,也就是在xb^上继续优化,只是没有办法更新先验中的东西了;如果影响到了,就是对xb又增加了新的约束,还是会继续优化,还是没法更新先验的东西,所以这个问题没有什么意义),由于先验信息的加入(先验信息无法更新被marg掉的xb的约束的雅可比),会使xb发生变换,且这些变换只来自marg之后的约束,没有之前的约束(这种解释有点强求,加入先验信息后,xb的变是因为两个地方:先验的不变和剩下约束的变,所以不再做解释了)

②线性化点不一致时会加入伪信息,导致系统破坏

贺博博客里说到,在最小化cm+cr时,在marg变量xm时,对xb求导时是用的xb^值(也可以不是xb^,因为还没到xb^,所以可能是别的一个值,没关系的都),此时求导时雅可比等于某个值gt1,如果xb一直在改动的话,gt != gt1,所以就加入了伪造信息,博客里说的是在xb^处取gt=0,这样刚好是在最优值,这样才是刚刚marg掉时的状态,如果跟着更新雅可比的话,那么就引入了伪信息。这个好像跟第一个差不太多,都是要说明雅可比不一样的化会有问题

3. 怎么解决?

就是FEJ=first estimate jacobian,即在marg之后算出来的雅可比就不再变了,当然只是xb的雅可比不变,xr的管不着。

 

到此为止,我想我已经把理论(这里只是信息矩阵,不涉及b呢)弄的差不多了,后面有的话再补充吧。

 

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值