卡尔曼滤波做轨迹预测

@#卡尔曼滤波应用(学习记录)
##应用领域
##核心公式
##参数设定TOC

卡尔曼滤波学习记录

最近在学习卡尔曼滤波算法,算法很经典,但是网上好多帖子看得一知半解的,应用到项目中时,参数都需要自己设定,并不能照搬照用。

应用领域

我学习卡尔曼滤波算法是为了做车辆的轨迹预测,感觉是比较成熟的应用了,但是没有找到现成的代码,无奈从头理解算法。
贴几个我看过的B站视频,也是我今天刚学习的,这里做一下学习记录。
1.这是很详细的推导视频:
https://www.bilibili.com/video/BV1jK4y1U78V/?spm_id_from=pageDriver&vd_source=d2aefa6907f76417511b1df9f42116db
2.这是简单推导+应用:
https://www.bilibili.com/video/BV1Rh41117MT?mid=99720970&p=1&share_from=ugc&share_medium=android&share_plat=android&share_session_id=88354ea1-4bf0-40f0-aeca-a03f679ee7f8&share_source=WEIXIN&share_tag=s_i×tamp=1658399523&unique_k=UoEV1PZ&vd_source=d2aefa6907f76417511b1df9f42116db
3.这里是针对到项目的应用,包含Matlab代码:
https://www.bilibili.com/video/BV1j44y177Gi/?spm_id_from=333.788.recommend_more_video.4&vd_source=d2aefa6907f76417511b1df9f42116db

核心公式

卡尔曼滤波做轨迹预测_第1张图片
从预测到更新共五个公式,这是卡尔曼滤波算法的核心内容,根据自己的项目内容嵌套进公式里就可以了,所以关键的是如何嵌套。

参数设定

对于任何项目,应用到卡尔曼算法时,需要明确三点:
1.状态变量是什么,就是你想要预测什么
2.状态转移方程,从k时刻到k+1时刻,状态变量是如何变化的
3.观测量是什么,就是你所采集到的数据
观测量和状态量可能不一致,比如对于运动的物体,状态量为(Px,Py,Vx,Vy),但实际观测时,只有位置量(Px,Py);这样也是可以的。
知道上述三点后,根据上述五个公式,我们需要明确有以下6个初始值:
1.K-1时刻的状态量X,这个初始值并不重要,后面会更新;
2.状态转移矩阵F,根据运动方程自己确定(第3个视频中有详细的解释)
3.Pk-1,初始化即可,初始值自行设定,后面会更新,比如设为单位阵;
4.观测矩阵H,根据状态变量和观测量确定,如果两个变量一致,H就是单位矩阵;
5.系统误差矩阵Q
6.观测误差矩阵R
Q和R是自己设定的超参数,一般为对角阵,Q和R的设定影响卡尔曼增益K,简单说就是影响最终预测值对状态方程或预测值的信任程度?我是这么理解的。
总结一下:对于一个项目,首先明确状态量、观测量;带入方程;需要初始化的参数有:Q、R、Xk-1、Pk-1;
带入后,Xk-1、Pk-1会自行更新;Q、R是超参数,需要手动修改

你可能感兴趣的:(卡尔曼滤波,车辆预测,轨迹预测,自动驾驶)