对无迹卡尔曼滤波(UKF)和粒子滤波(PF)的理解
对无迹卡尔曼滤波(UKF)的总结:
EKF通过在工作点附近进行一阶泰勒展开来线性化非线性的运动方程和观测方程。这样的线性近似在高度非线性的情况下存在较大误差。而UKF换了一个线性化的思路。1)选取2n+1个点(sigma点),n为状态向量的维度。为每个sigma点分配权重。2)用采样的点计算出下一状态的均值和方差。公式如下所示:
μy=∑iWig(Xi)Σy=∑iWi(g(Xi)−μy)(g(Xi)−μy)T\begin{array}{l}{\boldsymbol{\mu}_{y}=\sum_{i} W_{i} \mathbf{g}\left(\mathbf{X}_{i}\right)} \\ {\Sigma_{y}=\sum_{i} W_{i}\left(\mathbf{g}\left(\mathbf{X}_{i}\right)-\boldsymbol{\mu}_{y}\right)\left(\mathbf{g}\left(\mathbf{X}_{i}\right)-\boldsymbol{\mu}_{y}\right)^{T}}\end{array} μy=∑iWig(Xi)Σy=∑iWi(g(Xi)−μy)(g(Xi)−μy)T
Xi\mathbf{X}_{i}Xi为采样点,WiW_{i}Wi为权重值,μy\mu_{y}μy为计算出的状态量均值,Σy\Sigma_{y}Σy为对应的方差。
3)后续的操作就与KF是一致的了。
UKF用选取的有限个采样点去近似预测和测量状态量的高斯分布。这样的近似方法使UKF无需计算雅克比矩阵。相对于EKF的单点线性化,UKF的近似误差会更小一点。
主要的操作是
1)如何选取采样点?
2)如何给采样点分配权重?
示例代码:
UKF-C++
参考网址:
概率机器人——扩展卡尔曼滤波、无迹卡尔曼滤波
无迹卡尔曼滤波-1 这篇文章讲述了EKF误差产生的原因。
无迹卡尔曼滤波-2
再谈EKF与UKF——先验线性化与后验线性化
对粒子滤波(PF)的总结:
UKF用少数点来近似状态分布。但它依然在卡尔曼滤波对系统的线性、高斯假设下。当系统的线性程度很差的时候,卡尔曼滤波的效果也不会太好。而且卡尔曼滤波很难实现全局定位。所以它主要用于位置追踪。粒子滤波属于无参数滤波,它没有具体的得到后验结果的函数,其思路是用粒子集近似系统状态的分布。所以它可以近似任何系统状态分布。这样的特性也为它处理全局定位和机器人绑架问题奠定了基础。
粒子滤波的主要步骤如下:
1.用运动模型更新粒子集的预测状态。
2.用观测模型计算每个粒子的权重。
3.重采样粒子,使粒子集向权重大的粒子靠拢。
4.用粒子集的均值状态量来表征机器人的状态。
其中决定粒子滤波性能的关键步骤就是重采样。所以重采样的策略需要慎重考究。
参考网址:
概率机器人——粒子滤波
关注公众号《首飞》回复“机器人”获取精心推荐的C/C++,Python,Docker,Qt,ROS1/2,机器人学等机器人行业常用技术资料。
对无迹卡尔曼滤波(UKF)和粒子滤波(PF)的理解相关推荐
- 无迹卡尔曼滤波UKF—目标跟踪中的应用(算法部分)
无迹卡尔曼滤波UKF-目标跟踪中的应用(算法部分) 原创不易,路过的各位大佬请点个赞 机动目标跟踪/非线性滤波/传感器融合/导航等探讨代码联系WX: ZB823618313 仿真部分见博客: [无迹卡 ...
- 无迹卡尔曼滤波UKF—目标跟踪中的应用(仿真部分)
无迹卡尔曼滤波UKF-目标跟踪中的应用(仿真部分) 原创不易,路过的各位大佬请点个赞 机动目标跟踪/非线性滤波/传感器融合/导航等探讨联系WX: ZB823618313 算法部分见博客: [无迹卡尔曼 ...
- 无迹卡尔曼滤波UKF和容积卡尔曼滤波CKF进行锂电池SOC估计的C语言版本实现,和matlab版本一样包含定参和FFRLS两种情况
(C语言版)无迹卡尔曼滤波UKF和容积卡尔曼滤波CKF进行锂电池SOC估计的C语言版本实现,和matlab版本一样包含定参和FFRLS两种情况,已在VS2019和Ubuntu 20.04.4版本中运行 ...
- 无迹卡尔曼滤波UKF和容积卡尔曼滤波CKF进行锂电池SOC估计的C语言版本实现
无迹卡尔曼滤波UKF和容积卡尔曼滤波CKF进行锂电池SOC估计的C语言版本实现,和matlab版本一样包含定参和FFRLS两种情况 (C语言版)无迹卡尔曼滤波UKF和容积卡尔曼滤波CKF进行锂电池SO ...
- (C语言版)无迹卡尔曼滤波UKF和容积卡尔曼滤波CKF进行锂电池SOC估计的C语言版本实现
(C语言版)无迹卡尔曼滤波UKF和容积卡尔曼滤波CKF进行锂电池SOC估计的C语言版本实现,和matlab版本一样包含定参和FFRLS两种情况,已在VS2019和Ubuntu 20.04.4版本中运行 ...
- 双通道粒子滤波(PF)原理详解
1.粒子滤波是动态系统非线性非高斯的情况 2.粒子滤波无法像卡尔曼滤波求得解析解,需要用蒙特卡洛采样 3.采取重要性采样方法近似计算也无法直接求解粒子滤波问题 4.序列重要性采样得到t时刻与t-1时刻 ...
- 粒子滤波 PF(Particle filter)算法
代码的路 粒子滤波器方法通常用于视觉跟踪.从统计角度来看,它是一种顺序蒙特卡罗重要抽样方法,用于根据观测序列估计动态系统的潜状态变量. 粒子滤波步骤: 初始状态:用大量粒子模拟X(t),粒子在空间内均 ...
- ukf实测信号的预测 matlab,无迹卡尔曼滤波(UKF)在参数估计应用中迭代停滞问题
本帖最后由 华仔zju 于 2017-3-23 16:40 编辑 最近项目上在利用卡尔曼滤波进行模型参数估计,编写的EKF程序运行良好,后来看到论文提及UKF效果会比EKF更好,便想着使用UKF试一试 ...
- 滤波笔记三:无迹卡尔曼滤波(UKF)
参考资料: 无迹卡尔曼滤波(UKF)超详细解释_咸鱼.m的博客-CSDN博客_ukf https://github.com/rlabbe/Kalman-and-Bayesian-Filters-in- ...
最新文章
- mysql损坏表修复
- python语言入门自学-自学编程的6种方法,自学Python
- docker pull mysql
- Hacking techniques automation
- 【数据结构与算法】计数、基数、桶 O(n) 不基于比较
- php 随机在文章中添加锚文本_锚文本对网站SEO优化有什么帮助?
- bgp状态idle什么原因_当bgp的邻居状态机处于什么状态是,标志着与邻居的tcp连接已经正常建立...
- ftp 425 Can't open data connection. 的解决方案
- centos 7.2 安装 mysql_liunx centos7.2系统上如何安装和配置mysql数据库
- 如何更高效地学习3D视觉?
- 综合富贵论坛,富贵网,新老富贵的简单解释
- 训练集和测试集的产生方法
- F检验临界值表(Frideman检验表)
- ppt背景图片怎么更换应用到全部
- PYTHON-音视频合并方法
- 数据挖掘-贡献度分析
- mysql 复制frm_通过拷贝frm myd myi opt文件来实现mysql的备份和还原
- QlikView 笔记(二) 常用数字函数
- 解决IE浏览器打印iframe页面时字体等样式缩小的问题
- 分散染料对涤纶织物染色步骤