粒子滤波介绍

目录

粒子滤波的主要流程可以分为以下 5 个步骤:

粒子滤波(PF) vs. ESKF(误差状态卡尔曼滤波)

粒子滤波的主要流程可以分为以下 5 个步骤

  1. 初始化(Initialization)

    • 生成 N 个粒子,每个粒子代表 状态空间中的一个可能位置,并初始化权重。

    • 初始状态可能来自先验分布,或者均匀分布。

  2. 预测(Prediction, 运动更新)

    • 使用系统的运动模型(如卡尔曼运动模型、惯性导航)来 预测粒子的新状态

    • 由于运动不确定性,加入 随机噪声(如高斯噪声) 以模拟真实运动。

  3. 更新(Update, 观测更新)

    • 计算每个粒子的观测概率(即权重),权重表示粒子与观测数据的匹配程度,通常用误差大小来映射权重大小。

    • 权重越大,说明该粒子更可能代表真实状态。

  4. 重采样(Resampling)

    • 高权重粒子有更高的概率被保留,而低权重粒子可能被淘汰。

    • 采用 低方差重采样(Low Variance Resampling)多项式重采样(Multinomial Resampling)

  5. 估计(Estimate)

    • 计算最终的状态估计(通常使用加权均值)。

    • 进入下一轮循环,重复 预测 → 更新 → 重采样 过程


粒子滤波相比较于ESKF的优缺点:

机器人定位、自动驾驶、SLAM 等任务中,粒子滤波(Particle Filter, PF)误差状态卡尔曼滤波(Error-State Kalman Filter, ESKF) 是两种常见的状态估计算法。它们各有优缺点,适用于不同的应用场景。

1️⃣ 粒子滤波(PF)的特点

✅ 优点

  • 适用于非线性、非高斯系统

粒子滤波不假设系统是线性、高斯的,适用于高度非线性和非高斯噪声的环境。

  • 能够处理多模态分布

适用于存在多种可能状态的情况,例如多路径问题(机器人可能在多个位置)

  • 适用于全局定位(Global Localization)

可以在初始位置未知时进行全局搜索,而EKF 只能用于增量更新

  • 可以直接结合传感器数据

可以直接使用激光雷达(LiDAR)、视觉(Camera)、IMU 等传感器数据进行估计,而不需要严格的线性化处理。


❌ 缺点

  • 计算量大,实时性差

需要大量粒子来表示状态分布,计算复杂度 O(N)O(N)O(N) 较高,不适用于高频状态更新

  • 容易退化(Degeneracy)

若粒子数不足,可能会导致低权重粒子占比过高,降低滤波效果。

需要低方差重采样来缓解退化问题。

  • 难以调整粒子数

粒子数目要根据问题复杂度调整,过少会影响精度,过多会降低计算效率


2️⃣ 误差状态卡尔曼滤波(ESKF)的特点

✅ 优点

  • 计算效率高,适用于高频更新

计算复杂度 O(n2)O(n^2)O(n2),远低于粒子滤波的 O(N)O(N)O(N),适用于实时性要求高的应用(如自动驾驶)。

  • 状态维度较高时表现优异

适用于高维状态估计(如 IMU + 轮速 + GNSS 融合),不会因状态维度增加导致计算量急剧上升。

  • 误差建模更加精确

ESKF 采用误差状态方程,避免了直接估计全局状态的不稳定性,使得滤波更加稳定。

  • 适用于增量式定位(Incremental Localization)

适用于车辆 里程计(Odometry)+ IMU 的方案,例如惯性导航系统(INS)


❌ 缺点

  • 要求系统近似线性 & 高斯噪声

适用于 高斯噪声和小范围非线性系统,但对于强非线性、高噪声系统,效果较差。

  • 无法处理全局定位(Global Localization)

只能进行增量更新,无法全局搜索。

如果初始位置不准,可能会发散

  • 难以处理多模态分布

不能有效处理多种可能状态(如双重解),只能跟踪单个高斯分布的状态。


  • 3️⃣ 什么时候选择 PF vs. ESKF?

    需求选择 PF选择 ESKF
    非线性系统✅ 适用于强非线性❌ 仅适用于小范围非线性
    非高斯噪声✅ 适用❌ 不适用
    全局定位(Global Localization)✅ 适合(机器人初始化时位置未知)❌ 只能做局部跟踪
    计算资源受限❌ 计算量大✅ 计算效率高
    实时性(高频更新)❌ 更新较慢✅ 适用于高频 IMU+里程计
    状态维度较高(如IMU+LiDAR+GNSS融合)❌ 计算量过大✅ 适用于高维状态
    多模态分布(如多路径问题)✅ 适用于多种可能状态❌ 只能跟踪单个解

    4️⃣ 具体应用案例分析

    ✅ 适合使用 PF 的场景

  • 机器人全球定位(Global Localization)
  • 机器人不知道自己在哪,通过激光雷达、地图匹配来确定位置。
  • 需要遍历整个状态空间,因此使用粒子滤波。
  • 自动驾驶中的地图匹配(Map Matching)
  • 车辆可能有多条可能行驶路线,需要考虑多个假设,因此适合用 PF。
  • 激光雷达(LiDAR)+ 视觉(Camera)融合
  • LiDAR & Camera 数据通常具有非高斯噪声,适合用 PF 处理。

  • ✅ 适合使用 ESKF 的场景

  • 惯性导航(INS)+ GNSS 组合导航

    • IMU 数据是高频更新,EKF 计算效率更高,适用于高维状态估计。

    • 误差状态建模能够提高精度,适用于 IMU + GNSS + 轮速编码器 组合方案。


  • 5️⃣ 结论

  • 粒子滤波(PF):适用于全局定位、多模态分布、非高斯噪声系统,但计算量较大,适合低频更新。

  • 误差状态卡尔曼滤波(ESKF):适用于增量式定位、高维状态、高频 IMU 更新,计算效率高,但难以处理全局定位和多模态分布。

  • 🔹 一句话总结:

    • 如果已知初始位置,且需要高频更新,选 ESKF。

    • 如果初始位置未知,或可能有多个可能状态,选 PF。

    • 若计算资源有限,优先选 ESKF。

    • 如果非线性和非高斯问题较强,选 PF。

  • 车辆定位(基于里程计 + IMU)

    • 适用于 增量式定位(Incremental Localization)

    • ESKF 可以处理 IMU + 里程计(Odometry)+ GNSS 组合,提供高精度定位。

  • 自动驾驶的高精度定位(High-Precision Localization)

    • 如高精地图匹配(HD-Map Matching),基于 IMU + GNSS + 轮速。

    • 需要实时性高、精度高的滤波方法,ESKF 计算量低,适合用在自动驾驶场景。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/899889.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一场国际安全厂商的交流会议简记

今天参与了一场国际安全厂商A公司组织的交流会议 与会有国际TOP企业跨境企业 还有国内一些头部商业公司。 A公司很有意思介绍了自己是怎么做安全运营中心SOC的。 介绍了很多内容,包括他们自己的员工量/设备量/事件量/SOC中心人员量,其中人员量只有个位数…

Java面试黄金宝典30

1. 请详细列举 30 条常用 SQL 优化方法 定义 SQL 优化是指通过对 SQL 语句、数据库表结构、索引等进行调整和改进,以提高 SQL 查询的执行效率,减少系统资源消耗,提升数据库整体性能的一系列操作。 要点 从索引运用、查询语句结构优化、数据…

花洒洗澡完毕并关闭后过段时间会突然滴水的原因探究

洗澡完毕后的残留水 在洗澡的过程中,我们通常会使用到大量的水。这些水会通过花洒管子到达花洒顶喷流出。由于大顶喷花洒的喷头较大,关闭后里面的存水会更多。 气压失衡后的滴水 当花洒关闭后,内部的水管和花洒头中仍存有一定量的水。由于…

QSettings用法实战(相机配置文件的写入和读取)

很多情况,在做项目开发的时候,将参数独立出来是比较好的方法 例如:相机的曝光次数、曝光时长等参数,独立成ini文件,用户可以在外面修改即可生效,无需在动代码重新编译等工作 QSettings便可以实现该功能 内…

运维培训班之最佳选择(The best Choice for Operation and Maintenance Training Courses)

运维培训班之最佳选择 从面试官的角度聊聊培训班对运维的帮助,同时给培训班出身的运维一些建议~ 谈到运维(尤其是零基础非科班转行的运维)找工作,培训班是个不可回避的讨论热点。虽然本人也做过兼职运维培训老师,多少…

网络安全与防护策略

随着信息技术的飞速发展,互联网已成为现代社会不可或缺的一部分。从日常生活到企业运营,几乎所有活动都离不开网络。然而,网络的开放性和广泛性也使得网络安全问题愈发严峻。无论是个人数据泄露,还是大规模的网络攻击,…

LLM 分词器Tokenizer 如何从 0 到 1 训练出来

写在前面 大型语言模型(LLM)处理的是人类的自然语言,但计算机本质上只能理解数字。Tokenizer(分词器) 就是架在自然语言和计算机数字表示之间的一座至关重要的桥梁。它负责将我们输入的文本字符串分解成模型能够理解的最小单元——Token,并将这些 Token 转换成对应的数字…

【ArcGIS微课1000例】0142:如何从谷歌地球保存高清影像图片

文章目录 一、选取影像区域1. 搜索地图区域2. 导入矢量范围二、添加输出图层三、保存高清影像1. 地图选项2. 输出分辨率3. 保存图像四、注意事项一、选取影像区域 首先需要选取影像区域,可通过以下方式快速定位。 1. 搜索地图区域 在搜索框内输入关键词,例如青海湖,点击【…

Unity注册表修改分辨率:探索幕后设置与手动调控

Unity注册表修改分辨率:探索幕后设置与手动调控 在Unity开发中,调整分辨率和显示模式是开发过程中常见的需求,尤其是当我们打包并运行应用时,可能会遇到显示模式不符合预期的情况。Unity在首次运行时会自动保存这些设置&#xff…

外部流输入的 Layer

在 Android 的 SurfaceFlinger 体系中,外部流输入的 Layer 通常通过 Sideband Stream 或 BufferQueue 机制传递给 SurfaceFlinger,然后由 HWC(Hardware Composer)或 OpenGL ES 进行合成。 1. 什么是外部流输入的 Layer&#xff1f…

31-体测管理系统

介绍 技术: 基于 B/S 架构 SpringBootMySQLvueelementui 环境: Idea mysql maven jdk1.8 node 用户端功能 1.系统首页展示轮播图及公告信息 2.测试项目:展示可以参加测试的项目列表 3.公告信息:公告信息列表及详情 可进行点赞和收藏 4.在线留言 5.个人…

NVR接入录像回放平台EasyCVR视频系统守护舌尖上的安全,打造“明厨亮灶”云监管平台

一、方案背景 近年来,餐饮行业食品安全和卫生等问题频发,比如后厨卫生脏乱差等,持续引发关注,这些事情导致连锁反应,使其收益遭受损失。同时,给消费者造成了心理和生理上的伤害。 加强餐饮行业的监管成为…

Python办公自动化(3)对Excel的操作

1.读取excel文件 1.安装工具 终端下载读取excel文档的工具库: pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple xlrd 若对版本有特殊需求: 删除当前版本:pip3 uninstall xlrd 下载所需要的版本:pip3 install -i htt…

go语言:开发一个最简单的用户登录界面

1.用deepseek生成前端页面&#xff1a; 1.提问&#xff1a;请你用html帮我设计一个用户登录页面&#xff0c;要求特效采用科技感的背景渲染加粒子流动&#xff0c;用css、div、span标签&#xff0c;并给出最终合并后的代码。 生成的完整代码如下&#xff1a; <!DOCTYPE h…

blender二次元上色

前&#xff1a; 后&#xff1a;&#xff08;脸自己会发光) 参考&#xff1a;05-模型导入与材质整理_哔哩哔哩_bilibili

Mysql+Demo 获取当前日期时间的方式

记录一下使用Mysql获取当前日期时间的方式 获取当前完整的日期时间有常见的四种方式&#xff0c;获取得到的默认格式(mysql的格式标准)是 %Y-%m-%d %H:%i:%s其它格式 %Y-%m-%d %H:%i:%s.%f方式一&#xff1a;now()函数 select now();mysql> select now(); -------------…

C#核心学习(六)面向对象--封装(5)静态成员及静态构造函数和静态类 以及和常量的区别

目录 一、什么是静态的&#xff1f;什么是常量&#xff1f; 1. ​静态&#xff08;Static&#xff09;​ 2. ​常量&#xff08;const&#xff09;​ 二、类中的静态成员有什么用&#xff1f; 1. ​共享数据 2. ​工具方法与全局配置 3. ​单例模式 三、静态类和静态成…

FreeRTOS源码下载分享

FreeRTOS源码下载分享 官网下载太慢了&#xff0c;分享下FreeRTOSv202411 FreeRTOSv202411.00.zip 链接: https://pan.baidu.com/s/1P4sVS5WroYEl0WTlPD7GXg 提取码: g6aq

2025年win10使用dockerdesktop安装k8s

一、写作背景 百度了一圈&#xff0c; 要么教程老&#xff0c;很多操作步骤冗余&#xff0c; 要么跑不通&#xff0c;或者提供的链接失效等情况。 二、看前须知 1、安装过程使用的AI辅助&#xff0c; 因为参考的部分博客卡柱了。 2、如果操作过程中遇到卡顿&#xff0c; …

一段式端到端自动驾驶:UniAD:Planning-oriented Autonomous Driving

论文地址:https://arxiv.org/pdf/2212.10156 代码地址:https://github.com/OpenDriveLab/UniAD 1. 摘要 现代自动驾驶系统通常由一系列按顺序执行的模块任务构成,例如感知、预测和规划。为了完成多种任务并实现高级别的智能化,当前的方法要么为每个任务部署独立模型,要…