最近稍闲,稍微整理了一下以前的部分代码,虽然写得不够好,但是对于新手也许也有一定的分享价值。具体算法细节我就暂时不讲了,网上太多了。

所以分享这个我用JAVA写的一个模拟器。模拟定位和惯导(或者pdr)利用粒子滤波和卡尔曼滤波的可视化小demo,代码放在GitHub上了,如果觉得有用请点星星:-D.

先上一张运行图,其中图上的各种颜色点点标识不同的算法定位结果,和右边显示的颜色对应。未有说明的红色标识真实位置,后面的定位结果图都将以红色为参照标准:

为了方便对比,先看单独模拟INS(pdr)的效果部分(紫色点),把其他定位结果先隐藏。情况还是比较符合预期,INS刚开始比较准,然后慢慢出现偏差累积。

再来看看单独利用MLE(最大似然估计)的定位结果:其实MLE定位结果(黄色点)统计值是不错的,但是因为其跳动和不连续的特征,导致体验不好也就是很难看出是一条连续路径。

所以我们需要把两种方法的定位结果通过KF或者PF进行融合如下两张图所示,弥补互相的不足。这样连续性和精度上面都有提高。

在这一段模拟上面可以看到平均精度卡尔曼滤波最好,INS还在走向发散。这里的粒子滤波出现了比较严重的粒子退化现象,感兴趣的童鞋可以调整一下参数。

转载于:https://www.cnblogs.com/lesliexong/p/7461284.html

卡尔曼滤波/粒子滤波融合定位模拟器相关推荐

  1. 【目标定位】基于matlab粒子滤波的定位算法【含Matlab源码 2161期】

    一.基于粒子滤波污染源定位简介 粒子滤波定位算法是目前最精准定位可移动物体的位置,由于水域的流动,工业固体废物污染源很可能随着水流移动位置,基于粒子滤波算法将污染物定位分为预测.测量以及重新采样可大大 ...

  2. 蒙特卡洛粒子滤波定位算法_蒙特卡罗定位算法(基于粒子滤波的定位算法) ——原理、理解与仿真...

    1 算法原理 1.1 机器人定位问题 关于机器人定位,有三大问题,它们分别是: (1)"全局定位":指初始位置未知,机器人靠自身运动确定自己在地图中的位姿. (2)"位姿 ...

  3. 机器人学习--粒子滤波/MCL定位的理论基础(先验知识)

    跨学科(未学过数理统计和滤波等课程)的研究人员看懂粒子滤波或MCL定位的理论 2019年剑桥大学一名教授 Simon Godsill 发表了一篇论文: Godsill S. Particle filt ...

  4. 机器人学习--粒子滤波SLAM/MCL定位参考资料+学习经验

    学习材料1: <概率机器人学> 谷歌无人驾驶之父 Sebastian Thrun等人著作. 注释: 可能是本人智商有限,或者是移动机器人学领域的基础知识了解不多. 刚刚看这本书的时候,尤其 ...

  5. 机器人学习--粒子滤波及其在定位中的应用

    前提基础,先看一下 贝叶斯滤波  和 蒙特卡洛方法 一.什么是粒子滤波? 这里有个基于粒子滤波的物体跟踪 案例说明: 参考:基于粒子滤波的物体跟踪 - yangyangcv - 博客园 如果还是看不懂 ...

  6. 蒙特卡洛粒子滤波定位算法_定位算法 -- MCL蒙特卡洛(粒子)滤波

    之前的文章介绍过卡尔曼滤波算法进行定位,我们知道kalman算法适合用于线性的高斯分布的状态环境中,我们也介绍了EKF,来解决在非高斯和非线性环境下的机器人定位算法.但是他们在现实应用中存在计算量,内 ...

  7. 机器人学习--网友资料系列 激光SLAM建图、粒子滤波定位和位姿图优化

    一.移动机器人自主导航的前提是在未知环境中先构建地图 (目前市内很多用的2D激光雷达,构建栅格地图,相当于立体空间中的某个水平面高度的切面) 一般用的是2D 激光SLAM算法 构建概率栅格占用地图: ...

  8. 湖南工程学院计算机与通讯学院肖鹏,基于区间分析无迹粒子滤波的移动机器人SLAM方法...

    [摘要] In particle filter simultaneous localization and mapping method ( SLAM ) for mobile robots, lin ...

  9. 粒子滤波在图像跟踪领域的实践

    文章目录 前言 粒子滤波与卡尔曼滤波的介绍 卡尔曼滤波 粒子滤波 粒子滤波与卡尔曼滤波跟踪对比实验 小结 跋 前言 原文首发于微信公众号「3D视觉工坊」.     前两天在GitChat上总结了自己当 ...

最新文章

  1. xshell virt-manager RuntimeError: could not open display
  2. 自由自在讲述小资与冰淇淋的美丽生活
  3. ASP.NET使用log4Net日志组件教程(按日期与按日志大小切割)
  4. jzoj6305-最小值【线段树,dp,双端链表】
  5. 81-linux cluster : lvs
  6. Spring和依赖注入的价值
  7. jquery.form.js ajax提交上传文件
  8. KVM系列之硬件管理
  9. 三大主流前端框架介绍VUE 、React、Angular
  10. GitHub的Fork 是什么意思
  11. excel中去重计数_在Excel中计数
  12. 道场与世间修行的区别
  13. 短线交易的自我训练:盘感从何而来?
  14. javascript 中Object.entries
  15. 我是一个SDN交换机
  16. 无线路由器连接交换机
  17. ODB++数据解析三
  18. asp一句话html,asp常用的一句话木马大全
  19. 版本控制系统_繁星漫天_新浪博客
  20. C语言——查找(折半、分块、二叉排序、哈希法)

热门文章

  1. 笔记本连接手机热点并共享网络给台式机
  2. Leetcode 1144
  3. python 常见算法题
  4. 光纤接续为什么不建议一管多熔?
  5. UC浏览器电脑版来了:用了有快感?
  6. asp.net实现识别客户端浏览器或操作系统
  7. Airsim+UnrealEngine4 搭建无人车/无人机自动驾驶仿真环境
  8. TensorFlow 2.X获取Flops和参数量(parameters)的方法(2022年)
  9. 独享还是共享,你选择哪一种锁?(独享锁/共享锁)
  10. ​巴比特发布2020年数据报告:平台年度阅读量突破16亿,活跃作者超500名