自动驾驶-自适应卡尔曼滤波AKF

自适应卡尔曼滤波(adaptive kalman filter)是指利用观测数据校验预测值完成更新的同时,判断系统本身特性是否发生动态变化,从而对模型参数和噪声特性进行估计和修正,以改进滤波设计、缩小滤波的实际误差。

KF

在这里插入图片描述
通过kalman理论认知,已知其预测更新的精度和准确性的保证都是基于协方差,通过设计的状态更新矩阵及伴随预测误差Q得到预测状态量和协方差x’,P’,从而基于观测值及伴随的观测误差R,对预测值进行矫正完成更新。

关于kalman滤波的解释说明,可以详见我的另一篇博客,这边主要说说AKF的区别。

想象一下这样一个场景,用radar和摄像头进行目标检测。由于场景变换,比如突然的光照变化,路面剧烈抖动,上下坡等原因,导致传感器的检测精度受到影响,由于kalman更新依赖测量精度R和预测精度Q,那么如果检测值出现偏差,而测量精度却没有任何变化,那么这个校验结果也必然不合理。

为了应对类似的问题,就引入了AKF,通过一些参量实现对Q,R调节,保证伴随协方差合理(P‘,Q,R,P都会因此受益,效果更准确)

AKF

关于自适应卡尔曼滤波,目前使用较多的一种方法是Sage-husa自适应滤波算法。下面针对该算法进行说明介绍。

AKF是一种思想,并不是明确的哪一种方法,实际可根据自身项目需求来进行更新计算的,并不一定要用状态量X中的数据。

现假设线性离散系统数学模型为:
在这里插入图片描述
X(k)系统状态向量,Φ(k,k-1)系统状态转移矩阵,Γ系统噪声矩阵,W(k)系统噪声向量
Z(k)系统观测向量,H(k)系统观测矩阵,V(k)量测噪声向量。

基于数学模型设计的sage-huse自适应滤波算法如下:
在这里插入图片描述
下面对上述部分进行说明:
(1)对应预测部分,对状态量X和伴随协方差P进行预测,得到X’和P’。
(2)为自适应卡尔曼滤波引入的一个超参数,调节更新参量dkb被称为遗忘因子,取值在0.95~0.99之间。
(3)对应更新部分的增益系数K求导部分,主要区别在于观测误差R基于dk调节,随着帧数k变化,R(k)->R(k-1),即观测误差R趋向稳定。
(4)对应更新部分的状态量更新部分。

下面针对AKF与KF区别进行细节说明:(个人理解,如有不同理解,感谢指教)
(1)部分,X作为一个后验估计,也就没有考虑偏差补偿u,但所设计系统预测误差作为P(k|k-1)等式右侧第二项累加到伴随误差P(k|k-1)中。>(2)部分,通过求导可发现dk 是一个随着迭代帧数k变化而单调递减的值,0<dk<1,也就是说sage-huse自适应是基于帧数自适应调节测量Q和观测R的。那么根据所设计系统不同,把b用相关参量表示,从而周期调节dk,当然,连带(3)部分中的R(k)更新方程也可以重新调整一下。这里的dk作为观测误差R的调节量,而预测误差Q一般不会被调动,代表的是所设计系统的迭代更新误差,除非在使用过程中,系统存在动态参量调节,不然预测误差是不应被调节的,避免导致系统震荡。
(3)部分,主要说明一下R(k),采取加权求和的形式,dk动态调节权重,
ps.通过博客可以知道增益系数K代表预测协方差P与总方差S比值,0.5<K<1,K越小预测越准确,越大表示预测误差越大,这里给K另一个称呼预测观测比,那么可以理解[I-H(k)K(k-1)]v(k)表示上帧观测预测模型与当帧差异误差,把这部分误差协方差+上帧伴随协方差P相加,作为R(k)更新第二项。
(4)部分,同kalman,就不说了。

以上。

  • 46
    点赞
  • 270
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
很抱歉,我无法提供代码。但是,你可以在相关的学术论文、教科书或者专业网站上找到自适应卡尔曼滤波AKF)的代码实现。AKF的代码实现通常使用编程语言(如MATLAB、Python等)来实现。你可以搜索相关的关键词,如"adaptive Kalman filter code"或者"AKF implementation"来找到相应的代码实例。同时,你也可以参考一些开源的滤波库,如Kalman Filter Toolbox for Matlab等,这些库通常包含了自适应卡尔曼滤波的实现代码。 #### 引用[.reference_title] - *1* [自动驾驶-自适应卡尔曼滤波AKF](https://blog.csdn.net/qq_42258099/article/details/102092792)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [一种应用在初始对准中的SVM自适应卡尔曼滤波方法与流程](https://blog.csdn.net/weixin_39536427/article/details/115811950)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [【笔记】自适应卡尔曼滤波 Adaptive Extended Kalman Filter](https://blog.csdn.net/zhoupian/article/details/125749340)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值