VIO -- 移动窗口中的边缘化和舒尔补(1)

这几天研究了移动窗口中的边缘化原理,这里做简单的记录。

首先要知道VIO中为什么要使用移动窗口,在物体移动的过程中,周围的环境是不断变化的,这样,导致不断有新的测量和观测数据进入整个的优化过程中,导致随着时间的流逝,计算量越来越大,不利于实时的slam构图,所以会考虑设定一个移动窗口,保证在一定的帧数中进行优化。这样就涉及到加入窗口和移除窗口的操作。那边缘化和舒尔补作用在哪呢?答案就是做移除操作的时候。

我们知道SLAM的优化都使用最小二乘。这里回顾下线性和非线性系统下的最小二乘表示。

在线性系统下的手推:

将上面的公式提升成矩阵表示,

简化后:

我们看到在线性系统可以直接通过牛顿法进行优化获取最优点,但是在非线性系统,直接通过牛顿法求解,会非常困难。这时候就要考虑数值优化的方法。

非线性手推:

逻辑如下:

这里我们只考虑了标量的情况,一般都是在概率的情况下进行计算,所以最终会和之前线性系统一样,有一个 [公式] 。也就是这个 [公式] 

这个 [公式] 就是信息矩阵,也是协方差矩阵的逆。这个协方差代表的是所有待优化的变量之间的关系矩阵。

这里就引出了为什么需要边缘化,我们不能简单的通过删除窗口中最早的那个变量,这样会丢失许多信息数据,也就是之前的非线性线性推导中出现的信息矩阵所包含的数据信息。接下来我们详细看下边缘化和舒尔补是如果删除优化变量的同时保存住删除的变量对整个优化系统相关信息的。