卡尔曼滤波(Kalman filtering)基础
- 前言
- 一、SLAM问题的数学表述
- 系统模型
- 二、离散时间线性高斯系统批量式状态估计
- 1.最大后验估计(Maximum A Posteriori, MAP)
- 2.贝叶斯推断(Bayesian Inference)
- 三、离散时间线性高斯系统递归式平滑算法
- 1.平滑算法的引出——Cholesky解法
- 2.Rauch-Tung-Striebel平滑算法(RTS Smoother)
- 四、离散时间线性高斯系统的滤波算法
- 卡尔曼滤波(Kalman filtering)
- 总结
前言
参考书籍:
《视觉SLAM十四讲》
《机器人学中的状态估计》
知乎:如何通俗并尽可能详细地解释卡尔曼滤波?云羽落的回答 还需要一些高数、线性代数和概率论的基础。
本文主要是一些学习笔记与个人的总结,主要引用自上述的参考书籍中。
一、SLAM问题的数学表述
早期的SLAM问题是一个状态估计问题,被人们称为“空间状态不确定性估计”,正是如今的后端优化问题。这也反映了SLAM问题的本质:对运动主体自身和周围空间不确定的估计。为了解决这个问题,需要用到 状态估计 理论。而状态估计理论的经典代表就是以卡尔曼滤波为核心的 卡尔曼系列滤波器。
状态估计:通过初始状态、各时刻的观测数据、输入数据,估计系统的真实状态。
系统模型
运动主体携带各种传感器在未知环境中运动,主要由以下两个事情描述:
(假设为:考虑离散时间的线性时变系统)
- 运动方程:
- 观测方程:
除了以外,其他变量均为随机变量;各个时刻的噪声互不相关;称为转移矩阵;称为观测矩阵。
其中各个变量含义:
- 系统状态: ; 输入:
- 初始状态:
- 过程噪声:
- 测量: ; 测量噪声:
除系统模型之外,我们还知道:
带下帽子的变量称为先验,上帽子的称为后验。
- 初始状态,以及它的初始协方差矩阵。有时候不知道初始信息,必须在没初始信息的情况下进行推导.
- 输入量,通常来自控制器,是已知的;它的噪声协方差矩阵是.
- 观测数据是观测变量的一次实现(realization),它的协方差矩阵是.
二、离散时间线性高斯系统批量式状态估计
1.最大后验估计(Maximum A Posteriori, MAP)
MAP:已知输入和观测,求最大概率的状态
用贝叶斯公式重写目标函数:
在这里,需要把不带下标的变量定义为宏观变量:
由于各时刻观测、输入的噪声都是无关的,上面两个项可以因式分解:
同时,对目标函数两边取对数,对数是个单调映射,不影响最优解:
这时因子相乘变成了对数项相加。
高斯分布取对数之后有较好的形式:
舍掉那些与无关的项,定义:
于是目标函数变为求这个式的最小化:
这个问题就是常见的无约束最小二乘。
写成更紧凑的矩阵形式(提升形式):
把运动和观测写在一起:
提升形式的目标函数:它是个二次的,求其最小值,只要令自变量导数为零:
于是就解析地得到了最优解
- 这个解等价于经典的批量最小二乘法,也等价于固定区间平滑算法,或者也等价于伪逆
- 由于具有特殊的稀疏结构,这个问题也有特殊的解法,不需要暴力算矩阵求逆
2.贝叶斯推断(Bayesian Inference)
在线性高斯系统中,可以根据运动方程和观测方程显式写出状态变量分布的变化过程:
运动方程:
- k时刻状态更新:
- 提升形式:
其中
在上式中,右侧只有,故容易求得均值和协方差(为确定的输入量,是高斯,所以此处也是高斯分布的线性变换):
- 均值:
- 协方差:
所以,先验部分写作:
此处先验的意思为:仅考虑运动方程时的条件概率分布
观测模型:
- 单次观测:
- 提升形式:
其中
联合分布:
(由于已知时,的先验分布已经确定,所以的分布也可确定)
条件分布:
下面是已知联合分布,求条件分布。
联合=条件*边缘
由下列高斯推断:
- 联合分布:
- 条件分布:
- 边缘分布:
代入得:
SMW式:
故化简可得:
- 即均值
- 即后验协方差 .
进一步整理:
均值部分:
代入和,
得:
这里由于A为下三角矩阵,故A逆有特殊的形式:
得出一些结论:
- 按均值式:
- 定义:
- 得到:
与MAP结果一致。
线性高斯系统的最优估计显然有以下要求:
- 即要求可逆,
- 协方差矩阵的对称正定性要求:
三、离散时间线性高斯系统递归式平滑算法
1.平滑算法的引出——Cholesky解法
2.Rauch-Tung-Striebel平滑算法(RTS Smoother)
四、离散时间线性高斯系统的滤波算法
卡尔曼滤波(Kalman filtering)
总结
- 卡尔曼滤波器给出了线性高斯系统下最优线性无偏估计(Best Linear Unbiased Estimate, BLUE)
- 卡尔曼滤波器依赖于初始状态
- 卡尔曼滤波器即Rauch-Tung-Striebel平滑算法(RTS Smoother)的前向部分
- 在线性高斯系统中,最大后验估计(Maximum A Posteriori, MAP)和贝叶斯推断(Bayesian Inference)的结果等价于卡尔曼滤波器,原因是高斯分布的均值和模在同一点上
- 在非线性系统中,可以使用扩展卡尔曼滤波器(EKF),此时最大后验估计(Maximum A Posteriori, MAP)、贝叶斯推断(Bayesian Inference)、扩展卡尔曼滤波器(EKF)估计的结果均不一样
该处使用的url网络请求的数据。