SLAM -- 具有偏差输入的卡尔曼滤波能观性理解

卡尔曼滤波的基本原理可以参考:

我们都知道卡尔曼滤波在噪声和量测噪声为不相关、零期望的白噪声,且是线性系统,初始时刻的状态估计是无偏的条件下,才能保持无偏的特性。而具有无偏特性的卡尔曼滤波算法是有解的,可以计算出最终的定位位置。也称可观的。

要理解可观性,我们需要先看看带有输入误差的卡尔曼滤波。

现实是存在很多非线性的运动,以及未知的测量和运动误差。这样一来传统的线性卡尔曼滤波就显得太过理想了。我们需要调整下它的实现:

假设运动观测模型如下:

预测: [公式]

观测: [公式]

标记*为后验

现在需要对这个模型考虑误差,先考虑未知的输入偏差U

带有误差的卡尔曼:

为了有效抑制偏差,我们必须知道偏差的精确值。但在大多数情况下,并不能得到偏差的精确值。因此,我们一边估计状态,一边估计偏差。将误差考虑进最后的输出,所以我们构建增广矩阵:

未知的输入偏差:

相应的运动观测方程调整:

现在要考虑的就是卡尔曼滤波对有偏差输入的模型能否收敛,也就是有没有唯一值。可观的意思就是有唯一解,无观就是误解或有无数解。具体的判断无观性的推导就不说了,比较复杂,只需要记住一个结论:

解存在唯一解的条件为:增广后的能观性矩阵满秩

设没有输入偏差的能观性矩阵

[公式]

有输入偏差的矩阵:

[公式]

rank(O) = N, rank(B')= U, 要想可观,必须满足rank(O') = N+U。

看个机器人学的课后习题加深下理解:

习题5.1:

A=1,B=1,C=1

[公式]

[公式]

[公式]

[公式]

[公式]

[公式]

可得增广系统可观测