视觉SLAM:滑动窗口

1.SLAM问题

1.1建模

考虑某个状态 \(\xi\),以及一次与该变量相关的观测 \(r_{i}\)。由于噪声存在,观测服从概率分布 \(p(r_{i}|\xi)\)。多个观测时,各个测量值相互独立,则多个测量 \(r = (r_{1}, ..., r_{n})^{T}\)构成的似然概率为:

如果知道机器人状态的先验信息 \(p(\xi)\),如GPS,码盘信息等,则由贝叶斯法则,有后验概率:


通过最大后验估计,获得系统状态的最优估计:

意为在当前的观测下,什么样的系统状态出现的概率最大。
分母跟状态量无关,舍弃取log。即:

如果观测服从多元高斯分布:

则有:

该问题可由最小二乘求解:

零均值的多元高斯分布概率为:\(p(x) = \frac{1}{Z}exp(-\frac{1}{2}x^{T}\Sigma^{-1}x)\)
其中\(\Sigma\)是协方差矩阵。\(\Sigma^{-1}\)为协方差矩阵的逆,即信息矩阵。

2.边缘化信息矩阵

使用滑动窗口不可避免的要移除掉变量,当移除变量的时候,之前与之不相关的变量,有可能变得相关,所以要对信息矩阵进行维护。
这里使用舒尔补来对信息矩阵进行边缘化处理。

2.1舒尔补的定义:

给定任意的矩阵块M,如下所示:


如果,矩阵块D是可逆的,则 \(A-BD^{-1}C\)称之为D关于M的舒尔补
如果。矩阵块A是可你的,则 \(D-CA^{-1}B\)称之为A关于M的舒尔补
2.2使用舒尔补来去除变量:

假如一个系统三个变量x1,x2,x3。其信息矩阵为:

视觉SLAM:滑动窗口_第1张图片

那么把x3去掉,也就是把蓝色部分去掉,利用舒尔补。
视觉SLAM:滑动窗口_第2张图片

则去掉后的信息矩阵为:
视觉SLAM:滑动窗口_第3张图片

3.滑动窗口算法

视觉SLAM:滑动窗口_第4张图片

上述最小二乘问题,对应的高斯牛顿求解为:
注意:这里的H反应的是求解的方差,而\(\Sigma^{-1}\)反应的是残差的方差
公式中的雅可比矩阵为:
视觉SLAM:滑动窗口_第5张图片

矩阵乘法公式可以写成连加:
视觉SLAM:滑动窗口_第6张图片
视觉SLAM:滑动窗口_第7张图片

使用边际概率移除变量\(\xi_{1}\),信息矩阵的变化过程:

视觉SLAM:滑动窗口_第8张图片

你可能感兴趣的:(python,数学建模,matlab,算法,机器学习)