机器人学习--粒子滤波SLAM/MCL定位参考资料+学习经验
学习材料1:
《概率机器人学》 谷歌无人驾驶之父 Sebastian Thrun等人著作。
注释: 可能是本人智商有限,或者是移动机器人学领域的基础知识了解不多。 刚刚看这本书的时候,尤其吃力,胡乱翻了几页,根本看不进去,看的目光呆滞,食欲不振。
如果,同样遇到类似的情况,无法耐心静心全身心的从头到尾看完,那说明可能是因为 先验知识的不足,参考学习材料3:
学习方法建议: 假设学习这本书的读者,已经在Ubuntu OS中安装 ROS ,至少跑过 gmapping 或 cartographer等 基于激光雷达传感器的 SLAM建图软件。看到了效果,感性上大概知道怎么回事。然后想深入学习理论。
直接去啃英文论文当然是途径之一,但是如果没有先验知识支撑的话,估计也看不懂; 直接去读代码的话,如果不是代码小高手结合了解一点先验知识,估计还是看不懂。以上所有,大牛大神高手除外。
中文版的书:建议提前搞清楚,移动机器人导航的三个问题:建图、定位、slam(同时实现前两者) 以及路径规划等了解一下。
然后,头脑里记住一个概念,粒子滤波。贯穿 定位、建图 slam。
然后,看书的第一、二章,先把贝叶斯滤波以及概率方面的基础了解一下。搞清楚那个 预测 prediction 步骤 (运动模型 u ,用里程计);更新 correction/ updating/ innovation 步骤(观测模型引入,z,激光雷达) 的递归实现。
然后,别看卡尔曼滤波或者无迹卡尔曼滤波那些,方法以及过时了,而且深奥(没有相关先验知识的初学者而言),直接看第四章的信息滤波中的 粒子滤波,知道大概咋回事。
然后,看第五章的里程计运动模型,耐心的看一下闭式计算 和 采样计算的几个数学公式。(速度运动模型,是用于机器人未动之前 的概率运动规划用的)(里程计运动模型是用于预测机器人下一时刻位姿用的。slam和定位中用的多)
然后,看第六章机器人感知(也就是观测模型),整个内容都值得看看。
插播一下:第五章的 运动模型,就是用于滤波方法的 预测阶段; 第六章的感知模型或者观测模型,就是用于滤波方法的 更新阶段。至于是一个公式或者概率表达式,还是一堆粒子表示概率分布啥的,不重要,重要的先理解其 递归的精髓。
假如不知道什么是递归( 去看看 计算机专业的 核心专业课之一 《数据结构》或者 算法类似的书都有介绍)
然后,过滤掉第七章的 马尔可夫与高斯定位,先不要看,不要看,不要看; 直接看 第8章的 栅格与蒙特卡洛定位,重点是 MCL定位,以及其 各种改进版本, 合在一起是 AMCL。 (粒子滤波定位部分)
然后,看地图构建部分,占用栅格地图的构建 (构建地图部分)
然后,SLAM部分,过滤掉10-12章,直接看 第13章的 FastSLAM算法。大概看一下,有个概念和印象。
最后,去看一下 gmapping论文,以及它参考的 Raw Blackwellizaed啥的论文。
完事!
如果,这一遍下来,感觉不明显,那么就循环来个三五遍,绝对有所收获。 等真正有所感悟和认知的时候,可以把 这本天书的其他章节瞅一眼看看。
补充: 网上有很多说,别看滤波的SLAM,直接看图优化的SLAM,比如说 cartographer, 这个感觉有点太绝对了,毕竟,玩移动机器人的孩子们,不能吊死在 slam 这个技术上, 这些slam 也就机器人使用时 建个初始地图而已, 后期不还是定位、导航、路径规划,以及更高级的应用需求么。
学习材料2:
注释:如果以上天书,特别是中文翻译版 看的比较吃力的话,可以直接看英文版如下资料。
(中文版吃力的原因: 可能是英文原版翻译过程中很多不地道 或者错误部分。最简单的就是粒子滤波定位中的地图m,原版是加粗的,中文版小写,更奇葩的是循环变量居然也用m,,,而且中文版翻译有不少漏译或者错译,变量符号弄错的地方)
德国弗雷堡大学的 Cyrill Stachniss 和 Wolfram Burgard 两位教授,大咖的总结材料。
(前者是大名鼎鼎的 gmapping的作者之一; 后者也是激光slam和定位方面的大佬,和Sebastian Thrun (谷歌无人驾驶之父)合作的惊世骇俗的《概率机器人学》著作)
《Particle Filters for Robot Navigation》
该电子版材料,详细地讲述了 粒子滤波从贝叶斯滤波开始的推导。粒子滤波在定位、建图、SLAM以及主动探测中的有应用。(相当于把《概率机器人学》中关于粒子滤波的很多内容,单独提取出来,整理成系统的内容,比较值得一看)
学习材料3:
如果是对移动机器人领域了解太少的小白,可以参考这本书《自主移动机器人导论》,很经典的一本入门介绍书,涵盖 移动机器人的机械结构、定位、建图、slam、路径规划等多方向内容的介绍。
注释: 看完之后就知道 移动机器人领域该干啥了, 和传统的工业机械臂等 还是有很大的区别的。移动机器人中有路径规划,path planning; 工业机械臂的叫 运动规划 motion planning。
对于想做移动机器人 定位、建图、SLAM(声呐、激光等测距传感器的SLAM)方面的学习值得参考;很经典的书籍; 英文和中文版都有了 第二版; 部分内容和《概率机器人》有点交集,可以结合着一起看。:
下载链接:https://download.csdn.net/download/GGY1102/13255974
机器人学习--粒子滤波SLAM/MCL定位参考资料+学习经验相关推荐
- 机器人学习--粒子滤波及其在定位中的应用
前提基础,先看一下 贝叶斯滤波 和 蒙特卡洛方法 一.什么是粒子滤波? 这里有个基于粒子滤波的物体跟踪 案例说明: 参考:基于粒子滤波的物体跟踪 - yangyangcv - 博客园 如果还是看不懂 ...
- rbpf粒子滤波slam matlab程序_学习笔记(优达学城)- 车辆定位之粒子滤波器(整合版)...
1.代码传送门 首先,一如既往的,打开传送门! Fred159/CarND-Kidnapped-Vehicle-Projectgithub.com 代码, 很重要,但更重要的是从代码的行与行之间探索 ...
- 机器人学习--粒子滤波/MCL定位的理论基础(先验知识)
跨学科(未学过数理统计和滤波等课程)的研究人员看懂粒子滤波或MCL定位的理论 2019年剑桥大学一名教授 Simon Godsill 发表了一篇论文: Godsill S. Particle filt ...
- 机器人学习--粒子滤波定位-MATLAB仿真1
坐标系下,给定几个路标 landmarks,机器人行走路线是一个圆,60秒的行走时间,每秒更新一次结果,MATLAB仿真运动更新过程,以及结果的误差图显示. 代码: function [] = par ...
- 粒子滤波和蒙特卡洛定位
算法主要过程如下: 1.根据观测更新粒子权重 2.根据权重resample,也就是根据权重更新所有粒子位置,并使得所有粒子权重恢复到一样. 3.利用一个模型让所有粒子随着robot的移动而移动. 无公 ...
- 【目标定位】基于matlab粒子滤波的定位算法【含Matlab源码 2161期】
一.基于粒子滤波污染源定位简介 粒子滤波定位算法是目前最精准定位可移动物体的位置,由于水域的流动,工业固体废物污染源很可能随着水流移动位置,基于粒子滤波算法将污染物定位分为预测.测量以及重新采样可大大 ...
- 粒子滤波到底是怎么得到的?
一.前言 粒子滤波(particle filter)是一种常见的滤波算法,广泛应用于目标跟踪.移动机器人等领域.网络上有不少关于粒子滤波的资料,但大多是直接给出了粒子滤波的相关公式和证明,或较为直观上 ...
- 机器人学习--网友资料系列 激光SLAM建图、粒子滤波定位和位姿图优化
一.移动机器人自主导航的前提是在未知环境中先构建地图 (目前市内很多用的2D激光雷达,构建栅格地图,相当于立体空间中的某个水平面高度的切面) 一般用的是2D 激光SLAM算法 构建概率栅格占用地图: ...
- 粒子滤波用于机器人定位
粒子滤波用于机器人定位 0.引言 1.里程计 1.1.里程计模型 1.2.里程计运动模型 2.二维激光雷达的观测模型 2.1.光束模型 2.2.似然场模型 3.重采样 4.滤波结果 5.数据集 0.引 ...
最新文章
- 小程序多个echars_微信小程序中使用echarts以及踩坑总结
- 大数据小项目之电视收视率企业项目04--完全分布式搭建
- Kotlin-如何创建一个好用的协程作用域
- 前端学习(2602):什么是跨域请求和跨域请求数据数据的表现
- webservice 原理
- c++ amp vs2017 报错_opencv4教程-1 opencv的安装与调试Windows10+vs2017
- linux /proc文件系统(1)
- 如何更改 macOS Monterey 和 iPadOS 15 中的 Safari 选项卡外观?
- android mac 调试,Mac下使用Android studio真机调试
- 网络篇 使用Visio来画网络拓扑图01
- Excel·VBA自定义函数扩展VLOOKUP
- 自考计算机00051笔记,自考00051 管理系统中计算机应用自考笔记自考小抄.doc
- skiplist及Java实现
- PS暂存盘已满怎么办
- 介绍一个直接浏览微软知识库文章的工具
- 掌上聊app v1.5.5
- 使用SSH服务管理远程主机(RHEL8)
- oracle判断日期为月末,ORACLE查询月初和月底时间
- 赛门铁克未署名诺顿安全更新 防火墙警报引混乱
- C盘扩容,不需要相邻盘清空