多源融合之滤波对比

最近在看CSDN滤波方面的知识,但是很多都是激光雷达、视觉、信号处理等方面的大佬们总结的,我也做过卡尔曼滤波和粒子滤波。博主大地测量学与测量工程专业,主要做定位方面的内容,现在从我的学习过程来进行总结,也梳理一下相关思路。

融合的必要性

目前,定位技术众多,室外有GNSS,室内有UWB、WiFi、蓝牙等,桥接的还有惯性传感器,但是单一定位源无法满足高精度、高可靠的需要,更不要说在某些情况下面临着建筑物遮蔽、电磁信号异常等拒止环境导致GNSS、UWB等信号不可用。比如说室内环境中,PDR存在漂移,WiFi接收信号频率较低,地磁定位误匹配等等。按照测绘工程专业角度来说,只要是测量就存在误差,因此,需要利用多源传感器来保障定位精度及其可靠性,目前的融合手段包括图优化、滤波等手段,卡尔曼滤波自从20世纪60年代提出来一致沿用到现在,并且也进行了很多的改进。

总的来说,滤波融合的流程是根据前一历元的状态(x^k−1\hat x_{k-1}x^k−1​)及其协方差矩阵(P^k−1\hat P_{k-1}P^k−1​)预测当前时刻的状态(xkx_{k}xk​)及其协方差矩阵(PkP_{k}Pk​),利用其他传感器观测值来校正估计当前时刻的状态(x^k\hat x_{k}x^k​)及其协方差矩阵(P^k\hat P_{k}P^k​)。

规定说明

先验 状态更新得到的状态及其协方差矩阵
后验 量测更新得到的状态及其协方差矩阵

卡尔曼滤波

卡尔曼滤波过程假设动力学方程均为线性方程,满足“最小方差和最小”(和最小二乘一样)。本文将在过程噪声和量测噪声均为高斯白噪声的情况下推导卡尔曼滤波方程。

在利用滤波描述载体运动过程中,假设该系统为线性,分为状态方程和量测方程,分别为:

xk=Akx^k−1+wkx_k=A_k\hat x_{k-1}+w_kxk​=Ak​x^k−1​+wk​

zk=Hkxk+vkz_k=H_kx_k+v_kzk​=Hk​xk​+vk​

其中,AkA_kAk​和HkH_kHk​分别为k时刻状态转移矩阵和系数矩阵,wkw_kwk​和vkv_kvk​为过程噪声和量测噪声。
卡尔曼滤波状态更新过程(预测过程):

xk=Akx^k−1x_k=A_k\hat x_{k-1}xk​=Ak​x^k−1​;

Pk=AkP^k−1AkT+QkP_k=A_k\hat P_{k-1}A_k^T+Q_kPk​=Ak​P^k−1​AkT​+Qk​

其中,QkQ_kQk​是过程噪声的协方差矩阵。
卡尔曼滤波量测更新过程(融合过程):

Kk=PkHkT(HkPkHkT+Rk)−1K_k=P_kH_k^T(H_kP_kH_k^T+R_k)^{-1}Kk​=Pk​HkT​(Hk​Pk​HkT​+Rk​)−1

x^k=xk+Kk(Zk−Hkxk)\hat x_k=x_k+K_k(Z_k-H_kx_k)x^k​=xk​+Kk​(Zk​−Hk​xk​)

P^k=(I−KkHk)Pk\hat P_k=(I-K_kH_k)P_kP^k​=(I−Kk​Hk​)Pk​

其中,RkR_kRk​为观测噪声协方差矩阵,KkK_kKk​又叫做滤波增益矩阵,通过量测更新过程第2和3公式可以发现,在预测xkx_kxk​和PkP_kPk​之后,利用观测值对状态更新结果进行了修正,简而言之,就是将状态更新后的状态量向观测方程中的最优状态靠拢。

以GNSS/INS举例来阐述卡尔曼滤波过程。状态更新过程多为INS编排过程,矩阵QkQ_kQk​需要根据惯导器件参数确定,状态更新过程方程建立可以参考严恭敏老师的书《捷联惯导算法与组合导航原理》或是牛小骥老师和陈起金老师b站的研究生课程。观测方程即为GNSS定位原理,具体方程可以参考王坚老师《卫星定位原理与应用》,矩阵RkR_kRk​就是卫星定位过程中的随机矩阵。

相比于卡尔曼滤波,最小二乘缺少了状态更新过程,进而在量测更新过程中也被简化。也就是说,如果在卡尔曼滤波过程中更信任量测,进而导致状态更新权重为或接近0,那么卡尔曼滤波也就接近最小二乘(此处最小二乘并不是指图优化)。

前述中,卡尔曼滤波基于白噪声、线性方程进行优化,但是工程应用中主要为非线性情况,GNSS定位中也是用到了级数展开求系数矩阵HkH_kHk​。为了应对非线性情况,学者们提出了扩展卡尔曼滤波、无迹卡尔曼滤波等等,有色噪声也有学者进行研究,博主对这方面涉猎较少,不再扩展。

粒子滤波

粒子滤波是基于蒙特卡洛方法的贝叶斯滤波。蒙特卡洛方法是统计模拟方法(大量数据,利用频率逼近概率),贝叶斯滤波在贝叶斯法则(概率)基础上融合状态预测过程和量测更新过程(概率的融合),即最大后验概率。因此,粒子滤波非常适用于非线性较强情况下的状态估计。

假设有一个非线性系统,服从一阶马尔可夫模型,一阶马尔可夫模型指当前状态只与前一时刻状态有关,并假设当前观测值仅与当前时刻的装填有关,则该非线性状态方程和量测方程为:

xk=fk(xk−1,wk)x_k=f_k(x_{k-1},w_k)xk​=fk​(xk−1​,wk​)

zk=hk(xk,vk)z_k=h_k(x_k,v_k)zk​=hk​(xk​,vk​)

此时,不同于卡尔曼滤波上一时刻状态为p(xk−1∣z1:k−1)p(x_{k-1}|z_{1:k-1})p(xk−1​∣z1:k−1​)
状态更新方程

xk=fk(xk−1)x_k=f_k(x_{k-1})xk​=fk​(xk−1​)

p(xk∣z1:k−1)=p(xk,x1:k−1∣z1:k−1)=p(xk∣x1:k−1,z1:k−1)p(xk−1∣z1:k−1)=p(xk∣xk−1,z1:k−1)p(xk−1∣z1:k−1)\begin{aligned} p(x_k|z_{1:k-1}) &=p(x_k,x_{1:k-1}|z_{1:k-1}) \\ &=p(x_k|x_{1:k-1},z_{1:k-1})p(x_{k-1}|z_{1:k-1}) \\ &=p(x_k|x_{k-1},z_{1:k-1})p(x_{k-1}|z_{1:k-1}) \\ \end{aligned}p(xk​∣z1:k−1​)​=p(xk​,x1:k−1​∣z1:k−1​)=p(xk​∣x1:k−1​,z1:k−1​)p(xk−1​∣z1:k−1​)=p(xk​∣xk−1​,z1:k−1​)p(xk−1​∣z1:k−1​)​

可以看出,协方差矩阵变成了求概率,在量测更新过程中,协方差矩阵层面的融合也将变成概率层面的融合。
量测更新方程

p(xk∣z1:k)=p(zk∣xk,z1:k−1)p(xk∣z1:k−1)p(zk∣z1:k−1)=p(zk∣xk)p(xk∣z1:k−1)p(zk∣z1:k−1)\begin{aligned} p(x_{k}|z_{1:k})&=\cfrac {p(z_k|x_k,z_{1:k-1})p(x_k|z_{1:k-1})} {p(z_k|z_{1:k-1})}\\ &=\cfrac {p(z_k|x_k)p(x_k|z_{1:k-1})} {p(z_k|z_{1:k-1})}\\ \end{aligned}p(xk​∣z1:k​)​=p(zk​∣z1:k−1​)p(zk​∣xk​,z1:k−1​)p(xk​∣z1:k−1​)​=p(zk​∣z1:k−1​)p(zk​∣xk​)p(xk​∣z1:k−1​)​​

其中,p(zk∣z1:k−1)p(z_k|z_{1:k-1})p(zk​∣z1:k−1​)可以通过全概率公式得到

p(zk∣z1:k−1)=p(zk∣xk)p(xk∣y1:k−1)p(z_k|z_{1:k-1})=p(z_k|x_k)p(x_k|y_{1:k-1})p(zk​∣z1:k−1​)=p(zk​∣xk​)p(xk​∣y1:k−1​)

p(zk∣z1:k−1)p(z_k|z_{1:k-1})p(zk​∣z1:k−1​)也叫做归一化常数。
对比于卡尔曼滤波中的量测更新,粒子滤波量测更新比较简洁,只根据当前时刻观测值与状态对先验状态更新权重为p(xk∣z1:k)p(x_{k}|z_{1:k})p(xk​∣z1:k​)。粒子滤波在于用大量粒子逼近真实状态(蒙特卡洛),因此,上述状态更新以及量测更新仅为1个粒子的k时刻粒子滤波递推过程,要想得到最终后验估计,需要对所有粒子的位置进行平均。

接下来以PDR/地磁序列融合为例描述粒子滤波递推过程。
1)PDR开始前,在给定位置附近区域分布粒子N个,权重均为1N\cfrac 1NN1​;
2)PDR开始后,对N个已知位置粒子采用PDR进行位置更新;
3)利用粒子所在位置的指纹库地磁信息与实测地磁信息对比更新权重;
4)随步态递推步骤2)-3)。

卡尔曼滤波与粒子滤波关系

滤波的目的是估计状态的一阶矩(均值)和二阶矩(协方差矩阵/权重)。二者都采用序贯递推的方式进行状态估计,并且都有状态更新和量测更新两个阶段。

二者的本质区别在于,卡尔曼滤波依照“方差和最小”,粒子滤波遵循“最大后验概率”。其次,卡尔曼滤波主要目的在于解决高斯白噪声和线性问题,粒子滤波可以解决非线性问题。在多源融合定位领域中,卡尔曼滤波多用于融合GNSS/INS、WiFi-RTT/INS等,融合的绝对定位方法多为几何定位方法,如BLE的角度后方交会,GNSS、WiFi的距离后方交会。粒子滤波则多用于随机性较强的传感器融合,如PDR/指纹库定位,指纹库随机性较强,采用频率逼近概率进行最大后验估计。上述应用均为车载或行人导航定位。

卡尔曼滤波是一种确定性方法,粒子滤波是一种随机性方法,但是二者并不是完全对立的。
粒子滤波由于其随机性,在实际工程中有时会因为粒子滤波过于随机导致每次估计结果不一致,甚至会因为粒子退化和贫化问题导致滤波发散。有的学者利用卡尔曼滤波(扩展卡尔曼滤波、无迹卡尔曼滤波)估计后验协方差矩阵后,采用SVD分解、LU分解等方法将协方差矩阵转化为误差椭圆,在误差椭圆内分布粒子来限制粒子滤波的随机性。

参考文献

1、秦永元. 《卡尔曼滤波与组合导航原理》. 西北工业大学出版社。
2、严恭敏. 《捷联惯导算法与组合导航原理》. 西北工业大学出版社。
3、王坚. 《卫星定位原理与应用》. 测绘出版社。
4、黄小平. 《粒子滤波原理及应用》. 电子工业出版社。
5、牛小骥,陈起金. B站录播课程. https://www.bilibili.com/video/BV1na411Z7rQ/?spm_id_from=333.337.search-card.all.click.
6、《Magnetic-Based Indoor Localization Using Smartphone via a Fusion Algorithm》.

【多源融合】滤波融合之卡尔曼滤波与粒子滤波相关推荐

  1. 【SLAM基础入门】贝叶斯滤波、卡尔曼滤波、粒子滤波笔记(2)

    基于B站老王的贝叶斯滤波.卡尔曼滤波.粒子滤波 Bilibili 文章目录 第三部分:随机过程的贝叶斯滤波BF 第四部分:卡尔曼滤波KF 第三部分:随机过程的贝叶斯滤波BF 随机过程包含一系列随机变量 ...

  2. 【SLAM基础入门】贝叶斯滤波、卡尔曼滤波、粒子滤波笔记(1)

    贝叶斯滤波.卡尔曼滤波.粒子滤波 (https://www.bilibili.com/video/BV1HT4y1577g?spm_id_from=333.999.header_right.histo ...

  3. 卡尔曼滤波、扩展卡尔曼滤波、无迹卡尔曼滤波以及粒子滤波原理

    所有滤波问题其实都是求感兴趣的状态的后验概率分布,只是由于针对特定条件的不同,可通过求解递推贝叶斯公式获得后验概率的解析解(KF.EKF.UKF),也可通过大数统计平均求期望的方法来获得后验概率(PF ...

  4. 卡尔曼滤波和粒子滤波

    整篇转自:https://blog.csdn.net/zkl99999/article/details/46619771/ 转自http://blog.csdn.net/karen99/article ...

  5. 从卡尔曼滤波到粒子滤波 很详细,很明了。。

    转自http://blog.csdn.net/karen99/article/details/7771743 卡尔曼滤波本来是控制系统课上学的,当时就没学明白,也蒙混过关了,以为以后也不用再见到它了, ...

  6. 关于卡尔曼滤波和粒子滤波最直白的解释

    卡尔曼滤波本来是控制系统课上学的,当时就没学明白,也蒙混过关了,以为以后也不用再见到它了,可惜没这么容易,后来学计算机视觉和图像处理,发现用它的地方更多了,没办法的时候只好耐心学习和理解了.一直很想把 ...

  7. 卡尔曼滤波、粒子滤波【通俗解释】

    卡尔曼滤波本来是控制系统课上学的,当时就没学明白,也蒙混过关了,以为以后也不用再见到它了,可惜没这么容易,后来学计算机视觉和图像处理,发现用它的地方更多了,没办法的时候只好耐心学习和理解了.一直很想把 ...

  8. 蒙特卡洛粒子滤波定位算法_基于粒子滤波的TBD算法仿真—MATLAB仿真

    目标跟踪的最终目的是在最小的误差下确定目标的位置,而在无线传感器网络中要实现这个目的需要很多相关技术的支持,如定位技术.目标检测技术.估计技术.节能技术等.目标跟踪问题的求解有很多方法, 从算法的考虑 ...

  9. 【滤波】无迹卡尔曼滤波

    本文主要翻译自rlabbe/Kalman-and-Bayesian-Filters-in-Python的第10章节10-Unscented-Kalman-Filter(无迹卡尔曼滤波). %matpl ...

最新文章

  1. 鸿蒙与微信小程序,鸿蒙远程交互应用 vs 微信小程序远程交互应用
  2. spring 单例 获取多例的位_Spring 获取单例流程(一)
  3. 活动报名 | 第四范式AI与异构硬件优化最新成果分享
  4. r型聚类典型指标_六种GAN评估指标的综合评估实验,迈向定量评估GAN的重要一步...
  5. iphone如何分屏_苹果手机如何操作分屏 苹果手机录屏没有声音这么做轻松解决...
  6. 《C++游戏开发》笔记十四 平滑过渡的战争迷雾(二) 实现:真正的迷雾来了
  7. 大数据中心有什么作用
  8. 音乐制作:用FL Studio做电子音乐
  9. Halcon教程八:简单的语法介绍
  10. 摄像机标定之四大坐标系之间转换关系详解
  11. 病毒手动查杀(威金 q盗 熊猫烧香)
  12. 10款在线检查英语语法的网站
  13. 三体 读后思考-泰勒展开/维度打击/黑暗森林
  14. 禁止使用搜狗浏览器打开QQ邮箱,更换成其他邮箱
  15. 关于linux网络编程的项目,linux网络编程入门
  16. IDEA 没识别 resources(找不到 resources)
  17. 高德地图android 缓存,高德地图定位不刷新,感觉有缓存
  18. 安卓自定义计时器控件
  19. ROS noetic gazebo11车轮不显示的问题
  20. 顺序表 - 地址计算

热门文章

  1. Vue 使用 rem布局
  2. 2021北京交通大学计算机专硕初试经验分享
  3. 管家婆ERP V3问题
  4. 虚拟化硬件加速-vdpa
  5. 光环国际PMP:项目管理中如何与客户拉近关系
  6. .net关于高拍仪上传图片后的处理
  7. STM32学习笔记(三)端口复用与重映射(stm32c8t6)
  8. Hyperspace 炫酷太空隧道穿梭屏保
  9. ElasticSearch——常用网址
  10. McAfee迈克菲安全软件的垃圾性以及win10的脆弱性