首页 > Udacity机器人软件工程师课程笔记(三十五) - SLAM - 基于网格的FastSLAM

Udacity机器人软件工程师课程笔记(三十五) - SLAM - 基于网格的FastSLAM

一.SLAM介绍

即使定位和建图问题(simultaneous localization and mapping),一般简称为SLAM, 也称作(Concurrent Mapping and Localization, CML)。当机器人没有环境地图或者不清楚自身的位置时就会产生SLAM问题。机器人所具有的信息就只有历次测量值z1:tz_{1:t}z1:t和控制量u1:tu_{1:t}u1:t。 在SLAM问题中,机器人构建地图的同时确定自生相对于地图的位置。SLAM问题远比我们目前讨论过的问题困难的多。SLAM 问题比到目前为止讨论过的机器人领域的所有其他问题都要难解决得多。该问题比定位问题更困难,是因为地图是未知的,并且不得不沿着路径估计该地图。该问题也比给定位姿构建地图要困难,因为位姿是未知的,并且不得不沿路径估计姿态。

从概率学的角度来看,SLAM问题有两种主要的形式,它们具有同等重要的地位。其一称为在线SLAM问题online SLAM problem,它估计的是瞬时位姿以及地图的后验概率:

p(xt,m∣z1:t,u1:t)(1.1)p(x_t, m | z_{1:t}, u_{1:t}) ag{1.1}p(xt,mz1:t,u1:t)(1.1)

其中xtx_txt是时刻t的位姿,m则是地图,而z1:tz_{1:t}z1:tu1:tu_{1:t}u1:t分别是历次测量值和控制量。因为只包含了时刻t 的变最估计问题,该问题被称为在线SLAM 问题。在线SLAM 问题的许多算法是增量的。在这些算法中,过去的测量值和控制量一旦被处理即被丢弃。

第二种SLAM问题成为完全SLAM问题full SLAM problem。在完全SLAM中,我们尝试计算整个路径x1:tx_{1:t}x1:t以及地图的后验概率,而不仅仅是当前的位置xtx_txt,如图10.2所示。 p(x1:t,m∣z1:t,u1:t)(1.2)p(x_{1:t}, m | z_{1:t}, u_{1:t}) ag{1.2}p(x1:t,mz1:t,u1:t)(1.2) 在线和完全SLAM问题之间的细微差异在于,他们使用了不同类型的算法。特别的,在线SLAM问题是对完全SLAM问题的历史位姿的积分 p(xt,m∣z1:t,u1:t)=∫∫⋯∫p(x1:t,m∣z1:t,u1:t)dx1dx2⋯dxt−1(1.3)p(x_t, m | z_{1:t}, u_{1:t}) \ = int int cdots int p(x_{1:t}, m | z_{1:t}, u_{1:t}) dx_1 dx_2 cdots dx_{t-1} ag{1.3}p(xt,mz1:t,u1:t)=p(x1:t,mz1:t,u1:t)dx1dx2dxt1(1.3)



上图为在线SLAM 问题的图示模型(在线SLAM 的目标是估计机器人当前位姿和地图的后验)

上图为全SLAM 问题的图示模型(计算关千整个机器人路径和地图的联合后验)

SLAM 问题的第二个关键特点,与估计问题的本质有关。SLAM 问题拥有连

续和离散的要素。连续的估计问题涉及地图中物体的定位和机器人自身位姿变量。在基于特征的表示方式中,物体可能是地标,或者是由测距传感器探测到的某些部分。离散特性与一致性有关:当物体被检测到时, SLAM 算法推理该物体与之前被检测到的物体之间的联系。该推理过程是离散的:该物体要么与之前探测到的物体是同一个,要么不是。

有时,明确一致性变量是非常有用的,在线SLAM 后验由下式给定:

p(xt,m,ct∣z1:t,u1:t)(1.4)p(x_t, m, c_t | z_{1:t}, u_{1:t}) ag{1.4}p(xt,m,ctz1:t,u1:t)(1.4)

全SLAM 后验由下式给定:

p(x1:t,m,c1:t∣z1:t,u1:t)(1.5)p(x_{1:t}, m, c_{1:t} | z_{1:t}, u_{1:t}) ag{1.5}p(x1:t,m,c1:tz1:t,u1:t)(1.5)

在线后验由全后验对过去机器人位姿积分和对所有过去一致性求和得到:

p(xt,m,ct∣z1:t,u1:t)=∫∫⋯∫∑c1∑c2⋯∑ct−1p(x1:t,m,c1:t∣z1:t,u1:t)dx1dx2⋯dxt−1(1.6)p(x_t, m, c_t | z_{1:t}, u_{1:t}) \= int int cdots int sum_{c_1} sum_{c_2} cdots sum_{c_{t-1}} p(x_{1:t}, m, c_{1:t} | z_{1:t}, u_{1:t}) dx_1 dx_2 cdots dx_{t-1} ag{1.6}p(xt,m,ctz1:t,u1:t)=c1c2ct1

更多相关:

  • 公众号致力于分享点云处理,SLAM,三维视觉,高精地图相关的文章与技术,欢迎各位加入我们,一起每交流一起进步,有兴趣的可联系微信:920177957。本文来自点云PCL博主的分享,未经作者允许请勿转载,欢迎各位同学积极分享和交流。资源三维点云论文及相关应用分享【点云论文速读】基于激光雷达的里程计及3D点云地图中的定位方法3D目标检测...

  • Thanks to LOAM, A-LOAM, and LIO-SAM code authors. The major codes in this repository are borrowed from their efforts.代码:https://github.com/gisbi-kim/SC-A-LOAM编译:点云PCL本...

  • 文章:Inertial-Only Optimization for Visual-Inertial Initialization作者:Carlos Campos, Jose M.M. Montiel and Juan D. Tard ´ os´代码:https://github.com/bxh1/VIDO-SLAM.git编译:点云...

  • 点云PCL免费知识星球,点云论文速读。文章:Monocular Object and Plane SLAM in Structured Environments作者:Shichao Yang, Sebastian Scherer翻译:particle本文仅做学术分享,如有侵权,请联系删除。欢迎各位加入免费知识星球,获取PDF论文,欢...

  • 点云PCL免费知识星球,点云论文速读。文章:Persistent Map Saving for Visual Localization for Autonomous Vehicles: An ORB-SLAM 2 Extension作者:Felix Nobis∗, Odysseas Papanikolaou, Johannes Be...

  • 这是学习笔记的第 2103 篇文章 最近碰到了一个奇怪的权限问题,问题的背景是业务同学反馈在下班后,有一个数据表出现了阻塞,导致后续的业务流程都产生了拥堵,在对这个问题进行分析发现,业务同学所谓的拥堵,阻塞是数据库连接出了问题。当然我们进行了一些深入的沟通,对整个问题的情况有了一个更为清晰的了解。    6:30左右,业务同学发现...

  • 今天我将为大家介绍逻辑回归的含义并展示Pytorch实现逻辑回归的方法,先我们来看看一个问题。问题: 大家想必对MNIST数据集已经非常熟悉了吧?这个数据集被反复“咀嚼”,反复研究。今天我们将换个角度研究MNIST数据集。假设现在不使用卷积神经网络,又该使用什么方法来解决MNIST分类问题呢?一、观察数据 在开始分析数据问题之前,我...

  • 写在前面 最近公众号的活动让更多的人加入交流群,尝试提问更多的我问题,群主也在积极的招募更多的小伙伴与我一起分享,能够相互促进。 这里总结群友经常问,经常提的两个问题,并给出我的回答: (1)啥时候能出教程,能够讲解PCL中的各种功能? (2)如何解决大规模点云的问题呢?   以下给出正式的解答以及计划安排 问题1:对于...

  •   我刚刚开始接触PCL,懂的东西也很少,所以总是出现各种各样的问题,每次遇见问题的时候要查找各种各样的资料,很费时间。所以,今天我把我遇见的常见问题分享给大家,讲解的步骤尽量详细,让和我一样基础差的小伙伴能尽快进入到PCL点云库的学习中,希望能和大家进步。 运行环境:PCL-1.8.0-AllInOne-msvc2013-win...

  • 这篇博文中主要收集我开发过程中遇到的Makefile相关的问题, 以免自己日后再犯类似的错误. 今天就遇到一个很弱的问题, Makefile显示如下错误: 出现该问题是因为我写错了标注处的代码: $和()之间有空格了, 这里必须是$(), 不能有空格的...