感慨
虽然本人只是个小小码农,主攻java后台开发,但吾以为,学习技术,应当不分领域。
本文首先假设读者像我当初一样,是个对卡尔曼滤波望而生畏的小白。
参考链接
https://zhuanlan.zhihu.com/p/39912633
该链接是本人觉得描述得比较好理解的一篇文章了,从基础一步一步推进,推导出卡尔曼滤波的过程。
https://zh.wikipedia.org/wiki/卡尔曼滤波
该链接有很详尽的说明,不得不提,维基百科是个学习的好地方
公式
时间更新方程
状态更新方程
时间更新方程解读
为何要称它为时间更新方程,主要在于等式左边都是当前值,而右边变量则都是上一时刻值。故方程是随着时间在推进的。
方程的目标在于,预测一个当前值以及得到该预测值的误差。假设我们再知道测量值以及测量值的误差,那么就可以按照
进行融合,即
决定比例大小的因素就是误差,误差小更可信,占比会更大。
①式解读
本式子是一个预测模型的表示,通俗地翻译公式为:
其中的A和B矩阵用于转换关系的表示,并不影响理解。
一般来讲,有没有外力都无所谓的,甚至你采用的预测模型不够准确,也是可以应用卡尔曼滤波的,只要你的预测值不要与实际差个十万八千里即可
②式解读
翻译公式为:
首先搞清楚何为先验,何为后验。
举一个先验的例子,两个骰子,和为5的概率。共36种可能性,其中和为8有1+4,2+3,3+2,4+1四种,故概率为1/9。
举一个后验的例子,两个骰子,现在摇出5点,求一个是1另一个是4的概率。由上面列举可见,概率为1/2。
主要是①式两边求协方差得到的,其中使用到如下公式
状态更新方程解读
状态更新方程两边都是k量,目标是融合出一个最优估计值,同时求出其协方差。
③式解读
翻译公式为:
卡尔曼增益指明了预测值和测量值之间的以何种比例进行结果融合,这涉及两个高斯分布之间的融合,参考链接中有详细说明
④式解读(目标)
翻译公式为:
乍一看,好像哪里不对,加号右边的预测值比左边的预测值多了一个
,原因其实是最开始都带了
,从而两边都消掉了
,而加号右边的预测值携带的
无法被消掉,从而在公式上显得比较突兀,实际表达的意思和
是一致的。
本式子也是我们最关心的一个式子,该式子对外输出了最优估计值,而其他的式子,对外并不输出外部关心的信息。
⑤式解读
没得翻译,是通过对④式两边求协方差得来的。
总结
讲解卡尔曼滤波的文章有很多,小弟也只是初学,表达一下个人粗浅看法,纯属笔记。