【自动驾驶】卡尔曼滤波直观理解、数学公式及代码理解

直观理解

你住在深圳,你的好朋友小明住在乌鲁木齐。有一天,小明打算来找你玩,你想预订一家五星级餐馆,在他到深圳的当天晚上和他一起吃晚饭。但是小明是一名户外运动爱好者,他偏偏选择走路来深圳,你打开地图发现卧槽,这走路得走好几十天。
在这里插入图片描述
然而五星级餐厅如果不提前几天预定好话,当天是没有位置的。所以你问小明,哪一天才能到?然而他却没有正面回复,而是告诉你他从乌鲁木齐市中心出发以及他的速度。
在这里插入图片描述
乌鲁木齐到深圳全程约4275.3公里,这样的话四天多就能到了!但是根据你对小明体能的了解,你觉得这个估算不太靠谱。而且他路上还会经过雪岭、草岭、荒漠、戈壁各种地形,还有各种天气的原因,他很难保证每天100公里的前进速度。
在这里插入图片描述
于是你想了个办法,你先假设小明速度每天100km,然后每天晚上让他发个定位,告诉你他的位置在哪,然后你可以根据他的定位更新他的数学模型,预测之后的位置。
在这里插入图片描述
但是有个新的问题,就是他的GPS定位不是很准,可能是有十几公里的偏差,因此你也不能完全相信他的定位。
在这里插入图片描述
最后你决定两手抓,既相信自己的建立的数学模型,同时也参考GPS的定位,综合两者的结论来预测小明的位置。

例如,出发后第1天,根据你的数学模型,小明此时应该已经到了达坂城古镇,然而根据他发来的GPS定位显示还没走出市区,今天只走了10km。显然,你认为今天GPS的可信度高于自己的数学模型。

因此你综合“自己的数学模型”和“GPS信息”,得到一个新的数学模型——你认为小明目前的真正位置应该在距离市中心15km的地方,他的速度为每天12km,因此他第二天的位置在距离市中心27km的地方(这些数字是随便取得,大家看一看数字的变化就好)

之后的第三天、第四天、第N天你都采用上面的方法,随着你不断修正自己的数学模型,你的预测也会越来越准确,上面就是卡尔曼滤波的思想。

 

数学公式

接下来我们认真看一下卡尔曼滤波的公式,分为Station prediction(状态估计)与Measurement update(测量更新)两部分:
在这里插入图片描述
 

Station prediction
(1)公式一

在状态估计阶段,我们要估计物体的状态有位置 p x p_x px和速度 v x v_x vx,因此状态 x x x可由向量的形式表示为:
在这里插入图片描述
若第N-1时刻的状态用 x x x表示(即估计前),第N时刻的状态用 x ′ x' x表示(即估计后),则 x ′ x' x可写作:

其中, F F F为状态转移矩阵,即表示第N时刻状态与第N-1时刻状态的关系:
在这里插入图片描述
这个很好理解,用高中物理知识就能明白,矩阵 F F F x x x相称后含义即为:

  1. 第N时刻的位置(即 x ′ x' x中的 p x p_x px)= 第N-1时刻的位置(即 x x x中的 p x p_x px)+ 第N-1时刻的速度(即 x x x中的 v x v_x vx)*时间间隔(即 F F F中的 Δ t \Delta t Δt);
  2. 第N时刻的速度(即 x ′ x' x中的 v x v_x vx)= 第N-1时刻的速度(即 x x x中的 v x v_x vx)(这里认为物体时匀速的)。

B B B输入增益矩阵, u u u表示输入向量, B ∗ u B*u Bu表示有外部力量对物体施加力的作用。

同时,由于物体运动过程中存在噪声,我们认为该过程噪声为一个均值为0,协方差矩阵为Q的正态分布。
在这里插入图片描述

所以最终得到第一个公式:
在这里插入图片描述
 

(2)公式二

P P P表示协方差矩阵,即表示状态的不确定性, F F F为上面中提到的状态转移矩阵, Q Q Q表示状态转移中的噪声(也就是上面的 v v

  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值