01提问

  卓老师,我想问一个关于卡尔曼滤波的问题,希望您能解答一下。之前我用的互补滤波效果也还好,但在用卡尔曼滤波的时候出现了一些问题:就是如何整定卡尔曼滤波的Q、R这两个参数,这两个参数分别是角度数据置信度与角速度数据置信度。我看别人用的这两个参数都非常小,比如别人Q都是零点零零几,而我用的时候发现Q零点几跟随效果很差,我把Q调到1跟随效果才差不多。但是Q和R不都是协方差吗,它们可以取到1及以上的值吗?即Q和R有没有取值范围,以及这两个参数整定方法是什么?还是我理解有问题,希望卓大或者车友可以解答一下。

02回复

  在智能车竞赛中,Kalman滤波算法常常被用来计算直立车模倾角和转动角速度。算法利用陀螺仪给出的转速度量和加速度传感器给出的倾角观测量完成计算。除了Kalman滤波器算法之外,还可以使用互补滤波器进行帮助计算。

  如果不考虑系统状态的时变性和系统噪声的时变性,上述两种方法本质上是相同的。

  下图显示了对于被测物体位置使用Kalman滤波算法来估计物体实际位置的示意图。

  通常情况下所使用的Kalman滤波器是离散时间系统形式的。我们真正想得到的物理量表示成系统状态中的某些分量。对于系统状态的估计(滤波结果)所使用的信息来源于两个方面,一个是对系统状态演变模型的了解,包括系统转移矩阵和输入控制矩阵,输入孔质量等,另一方面来自于对系统状态的观测量。

  但这两方面的信息都会有某种不确定性。通常使用系统噪声向量(W)和观测噪声向量(V)来表示。两个噪声大小分别使用它们各自的协方差矩阵来表示。系统噪声协方差矩阵使用Q,观测噪声的协方差矩阵使用R。

  下面是系统方程和观测方程表达式。虽然在表达式中包括了系统噪声w和转测噪声v,但在计算系统状态转移和系统观测量的时候并不考虑这两个噪声的影响。

  两个噪声的影响只是在卡尔曼滤波器离散迭代算法过程中使用到了两个噪声的协方差矩阵Q和R。分别用于计算系统状态估计误差的协方差矩阵P和卡尔曼滤波器增益K的大小。

  下面是传统线性卡尔曼滤波器的五个基本迭代公式。

  从上面公式来看,真正所要滤波得到的结果来自于公式(4)中的系统状态估计值x的某些分量,公式(4)的结果是由公式(1)所得到的状态预测值和来自观测量y计算得到的。其中卡尔曼滤波器增益K是在状态预测值和观测误差值之间做了一个折中。

  如果K很小,比如等于0,则滤波结果更加接近由系统状态估计值给出的递归结果;如果K很大,比如等于1,则滤波结果更加接近于观测值所反算出来的状态变量。

  K值是由公式(3)计算获得,其中的P值是通过公式(2)(5)进行计算,反映了Q的大小,因此K值的大小可以由如下形式示意:

  因此,K值至于Q,R的比值有关系,而与Q,R的绝对值没有关系。所以,在不同算法中,R, Q的取值根据反应的不同量纲,可以有很大的变化,但它们的比值会决定了滤波值应该更多来自于系统模型演化的信息,还是来自于观察信号信息。

03扩展说明

  在智能车竞赛中,使用Kalman滤波器将惯性传感器所得到的车体陀螺仪所反映的角速度和和加速度传感器所获得的倾斜角信息进行融合,获得直立车模倾角和转动角速度。

  此时,往往将系统状态x设定为车模需要观察的角度。系统输入量u为测量所得到的角速度;系统观察值设定为有加速度传感器给出的倾角。

  系统模型噪声w应该反映出陀螺仪测定角速度的随机误差和随着时间漂移的系统误差两部分。系统观测噪声v应该反映了加速度计输出量中在计算角度的近似误差和由于车模运动所产生的干扰噪声。

  如果Q大R小,造成K增加,则滤波结果中就会存在较大的由于车模运动所产生的噪声,俗称跟踪不好;如果Q小R大,造成K减小,则滤波结果会出现两种问题,第一就是从处置值收敛到正确值的过程较慢,需要等一个比较长的稳定时间。另一方面就是会受到陀螺仪本身零点漂移,产生比较大的输出零点误差。

  最终这两个参数的大小可以根据所选择的器件的实际性能(噪声,漂移等)通过实验观察的方式获得一个比较好的相对值。


卡尔曼滤波器中的Q,R相关推荐

  1. 雷达:卡尔曼滤波器中P,Q,R矩阵的设置(匀速直线运动模型)

    之前我在网上搜索有关卡尔曼滤波器中P,Q,R矩阵的设置,感觉讲述得比较笼统.又因为我要使用雷达目标跟踪方面使用卡尔曼滤波器,因此针对雷达中目标匀速运动的情况来说明一下P,Q,R矩阵的设置. 1.卡尔曼 ...

  2. 求教!卡尔曼滤波器Q和P矩阵初始怎么设置

    请问在使用卡尔曼滤波器时,Q和P矩阵初始值如何确定? 例如,我先生成小车的运动轨迹再用卡尔曼滤波器进行预测时.假设观测噪声为零均值.标准差为50m的高斯白噪声:加速度零均值.标准差为2米每秒方的高斯随 ...

  3. 第二十课.卡尔曼滤波器

    目录 卡尔曼滤波器的参数 滤波问题的解决方案 卡尔曼滤波的predict和update 基于正态分布得到解析结果 证明解析解存在 解析解计算 卡尔曼滤波器的参数 首先回顾卡尔曼滤波的概率图: 基于之前 ...

  4. 【数学和算法】初识卡尔曼滤波器(三)

    本文是观看B站视频教程所做的截图和笔记. 疑问: 1.观测矩阵H是单位矩阵吗?如果是的话,那么卡尔曼增益的两种写法都合理.那么他的作用是对XkX_kXk​向量进行变换为ZkZ_kZk​向量的各个维度对 ...

  5. 智慧交通day02-车流量检测实现04:卡尔曼滤波器

    1.背景介绍 卡尔曼滤波(Kalman)无论是在单目标还是多目标领域都是很常用的一种算法,我们将卡尔曼滤波看做一种运动模型,用来对目标的位置进行预测,并且利用预测结果对跟踪的目标进行修正,属于自动控制 ...

  6. 1. 简明误差卡尔曼滤波器(ESKF)及其推导过程

    文章目录 1. 简明误差卡尔曼滤波器(`ESKF`)及其推导过程 简介 `ESKF`基本过程及优点 `ESKF`参数含义 连续时间上的 `ESKF`状态方程 误差状态方程推导 误差状态的旋转项 误差状 ...

  7. 卡尔曼滤波器简介——多维卡尔曼滤波

    原文:多维卡尔曼滤波 (kalmanfilter.net) 目录 前言 基本背景 状态外推方程 示例 - 飞机 - 无控制输入 示例 - 带控制输入的飞机 示例 – 坠落物体 状态外推方程维度 线性时 ...

  8. 车流量检测实现:多目标追踪、卡尔曼滤波器、匈牙利算法、SORT/DeepSORT、yoloV3、虚拟线圈法、交并比IOU计算

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) CNN:RCNN.SPPNet.Fast RCNN.Faste ...

  9. 【滤波】多元卡尔曼滤波器

    %matplotlib inline #format the book import book_format book_format.set_style() 简介 我们现在准备研究和实现完整的.多元形 ...

最新文章

  1. eve战巡族伤害_新版本各族3级战巡资料【纯手打】
  2. R语言使用t.test函数计算两组独立数据的t检验(Independent t-test)
  3. Python 字典(Dictionary) copy()方法
  4. C++读写txt文件方式以及基于opencv的Mat数据类型读写txt文件
  5. phpmyadmin教程:使用phpmyadmin创建用户
  6. VC Studio 使用技巧大全
  7. 网页打印物理大小尺寸的单位换算
  8. 商业智能BI和报表的区别?
  9. 自已撸的一个小程序日历组件
  10. oracle查询数据库的函数,Oracle:树查询及有关函数
  11. 【转】onAttachedToWindow()在整个Activity生命周期的位置及使用
  12. 历年二级c语言考试真题及答案,历年全国计算机等级考试二级C语言笔试选择真题及答案...
  13. Vuejs2.0学习之二(Render函数,createElement,vm.$slots,函数化组件,模板编译,JSX)...
  14. 自动补全 (自定义)拼音分词器 搜索时注意事项
  15. html背景图片自动铺满屏幕,【CSS背景图片页面自适应充满屏幕】
  16. 电视剧《乡村爱情2》之演员表(ZT)
  17. SDOI2018 一轮培训划水祭
  18. 【Unity3d Shader】景深效果
  19. Java使用winrar压缩和解压缩文件
  20. simulink/stateflow官方案例之自动变速器

热门文章

  1. sublime text 2 c++编译 环境 问题小结
  2. Django学习笔记(5)---ForeignKey
  3. 网站DDOS***防护实战老男孩经验心得分享
  4. Bootstrap3 排版-缩略语
  5. Java Web整合开发(17) -- Struts 2.x 高级应用
  6. 容斥原理学习(Hdu 4135,Hdu 1796)
  7. subprocess 的 kill()/terminate() 问题
  8. 阿里巴巴总裁马云对雅虎员工的精彩演讲:爱迪生欺骗了世界!(转载)
  9. 玻璃质感_他的玻璃质感让人佩服的五体投地
  10. timer 公司内部用法