Slam即时定位与地图构建

技术解释

同步定位与地图构建SLAMSimultaneous localization and mapping)是一种概念:希望机器人从未知环境的未知地点出发,在运动过程中通过重复观测到的地图特征(比如,墙角,柱子等)定位自身位置和姿态,再根据自身位置增量式的构建地图,从而达到同时定位和地图构建的目的。

使用情景

一个由德国达姆施塔特理工大学研发的机器人正使用激光成像探测与测距技术来给迷宫绘图。

上图的机器人描绘出的地图。

操作性定义

这里说的地图,是用来在环境中定位,以及描述当前环境以便于规划航线的一个概念;它通过记录以某种形式的感知获取的信息,用以和当前的感知结果相比较,以支撑对现实定位的评估。在定位评估方面,地图提供的帮助程度,与感知的精度和质量成反相关。地图通常反映了它被描绘出来的时刻的环境状态,所以它并不一定反映它被使用的时刻的环境状态。

在误差和噪音条件下,定位和地图构建技术上的复杂度不支持两者同时获得连续的解。即时定位与地图构建(SLAM)是这样一个概念:把两方面的进程都捆绑在一个循环之中,以此支持双方在各自进程中都求得连续解;不同进程中相互迭代的反馈对双方的连续解有改进作用。

地图构建,是研究如何把从一系列传感器收集到的信息,集成到一个一致性的模型上的问题。它可以被描述为第一核心问题这个世界长什么样?地图构建的核心部分是环境的表达方式以及传感器数据的解释。

与之相比,定位,是在地图上估测机器人的坐标和姿势形态的问题;换而言之,机器人需要回答这里的第二核心问题我在哪?典型的解包含以下两个方面:追踪——通常机器人的初始位置已知;全局定位——通常只给出很少,甚至不给出有关于起始位置环境特征的先验信息。

所以,同步定位与地图构建(SLAM)被定义为以下问题:在建立新地图模型或者改进已知地图的同时,在该地图模型上定位机器人。实际上,这两个核心问题如果分开解决,将毫无意义;必须同时求解。

在机器人能够根据一系列观测值回答“这个世界长什么样”之前,它需要知道的额外信息很多,比如以下:

  • 它自身的运动学特征,
  • 信息的自动获得需要什么样的品质,
  • 附加的支持观测值能从哪些源得到。在没有地图或者方向参考的前提下,对机器人的当前位置估测是一个复杂的任务。[1]这里的"位置"可以简单指代机器人的所处方位,也可以包括它的姿势形态。

技术上的问题

同步定位与地图构建(SLAM)可以被看做是一个鸡生蛋蛋生鸡的问题:完美的定位需要用到一个无偏差的地图;但这样的地图又需要精确的位置估测来描绘。这就是一个迭代数学问题解决策略的起始条件。作为对比,原子轨道模型可以被看做一个在不精确的观测条件下说明足够多的结果的经典方法。

再者,由于多个传感器对机器人的相对运动的辨别存在固有的不确定性,上一节提到的两个“核心问题”也不像看起来的那么简单。一般来说,由于技术环境中总会考虑噪声,所以SLAM方法要考虑的不只是数学上的紧凑解,也包括与那些和结果相关的物理概念的相互作用。

如果在地图构建的下一个迭代步骤中,测得的距离和方向有可预知的一系列不精确度——通常由传感器有限的的精确度和外加的环境噪声所引起,那么附加到地图上的所有特征都将会含有相应的误差。随着时间的推移和运动的变化,定位和地图构建的误差累计增加,将会对地图本身和机器人的定位、导航等能力的精度产生很大的扭曲。

有许多技术能补偿这些误差,比如那些能再现某些特征过去的值的方法(也就是说,图像匹配法或者环路闭合检测法),或者对现有的地图进行处理——以融合该特征在不同时间的不同值。此外还有一些用于SLAM统计学的技术可起到作用,包括卡尔曼滤波粒子滤波(实际上是一种蒙特卡罗方法)以及扫描匹配的数据范围。

地图构建

在机器人技术社区中,SLAM的地图构建通常指的是建立与环境几何一致的地图。而一般算法中建立的拓扑地图只反映了环境中的各点连接关系,并不能构建几何一致的地图。因此,这些拓扑算法不能被用于SLAM。

在实用中,SLAM通常要被剪裁至适应可获得的资源,于是可以看出它的目标不是完美,而是操作实用性。已经发布的SLAM方法已被应用于无人机无人潜艇行星探测车、最近大热的家政机器人、甚至人体内部。[2]

学界大致都认为,SLAM问题的“正在得到解决”是过去十年间机器人研究领域的最重大成果之一。[3] 该领域中仍有许多有待解决的难题,比如图像匹配和计算复杂度等方面的相关问题。

基于SLAM文献的最新研究进展中,有一条值得注意,就是对SLAM的概率论基础进行重新估测。这个充满了冒险家特质的方法大意如下:通过引入随机有限集的、多目标的贝叶斯滤波器,使得基于特征的SLAM算法获得卓越的性能,以此跳过对图像匹配的依赖;但作为代价,测量中的假警报率和漏检率都会被提升。[4] 这里面的算法是基于概率假设密度滤波的方法来改进的。[5]

传感

SLAM研究中经常使用许多不同型号的传感器来获得地图数据。这些数据带有统计独立的误差。[来源请求]这个统计独立是解决度量偏差和检测中的噪声的强制需求。简单来说,就是任何一个东西都很难测的准确。比如一根1米长的棍子,你第一次测量的时候可能是1.02米,第二次测量时1.05米,...。总之测量的时候多多少少都会有一些误差在里面,因此SLAM算法本身必须要有效的处理这些测量误差。

这些传感器可以是光学的,比如1D的(单波束)或者2D的(扫描)激光测距仪3D_Flash_LIDAR、2D或3D声呐传感器以及一个或多个2D摄像头。从2005年开始,使用可视化传感器(摄像头)对SLAM的研究(可视化SLAM)如火如荼地展开,因为从那时起摄像头开始普及(比如说手机普遍带有摄像头)。[6]

新近的方法使用了准光学的无线测距法,同时把三角测距法等几何方法应用于SLAM中,用以消除微弱无线信号对测量的影响。

一种为走路者设计的SLAM应用使用了一个装在鞋头的惯性测量单元作为主要传感器,该设计依赖于走路者能自动规避墙体这一假设。这个名为FootSLAM的设计可被用于自动建立建筑物的楼面布置图,从而方便建立该建筑的室内定位系统。[7]

定位

传感器的结果会作为定位算法的输入。由几何知识可知,对于n维的定位问题,任何传感输出必须包含至少一个多点定位和(n+1)个判别方程。为了算出结果,有关于在绝对或相对的循环和镜像坐标系统下得到的结果的先验知识也是必要的。

建模

以上结果对地图构建的贡献,可以在“2D建模并分别表示”或者在“3D建模并在2D上投影表示”中工作得一样出色。作为建模的一部分,机器人本身的运动学特征也要被考虑进去,用以提高在固有背景噪声下的传感精度。构建的动态模型需平衡不同传感器、不同局部误差模型给出来的贡献值,并最终包含一个基于地图本身的锐利的可视化描述,这包括机器人的位置和方向等云概率信息。地图构建就是这样一个动态模型的最终运算结果。

相关文献

有关于SLAM的一个开创性工作是以R.C. Smith和P. Cheeseman为代表,在1986年作出的对空间不确定性的估测的研究。[8][9]其他该领域的开拓工作由Hugh_F._Durrant-Whyte的研究团队在1990年代初所作出。[10]

参见

脚注资料

  1. ^ Definition according to OpenSLAM.org, a platform for SLAM researchers
  2. ^ Mountney, P.; Stoyanov, D. Davison, A. Yang, G-Z. Simultaneous Stereoscope Localization and Soft-Tissue Mapping for Minimal Invasive Surgery (PDF). MICCAI. 2006, 1: 347–354 [2010-07-30]. doi:10.1007/11866565_43.
  3. ^ Durrant-Whyte, H.; Bailey, T. Simultaneous Localization and Mapping (SLAM): Part I The Essential Algorithms (PDF). Robotics and Automation Magazine. 2006, 13 (2): 99–110 [2008-04-08]. doi:10.1109/MRA.2006.1638022.
  4. ^ J. Mullane, B.-N. Vo, M. D. Adams, and B.-T. Vo,. A random-finite-set approach to Bayesian SLAM, (PDF). IEEE Transactions on Robotics. 2011, 27 (2): 268–282. doi:10.1109/TRO.2010.2101370.
  5. ^ R. P. S. Mahler,. Statistical Multisource-Multitarget Information Fusion.. Artech House,. 2007.
  6. ^ Karlsson, N.; Di Bernardo, E.;Ostrowski, J;Goncalves, L.;Pirjanian, P.;Munich, M. The vSLAM Algorithm for Robust Localization and Mapping. Int. Conf. on Robotics and Automation (ICRA). 2005.
  7. ^ Robertson, P.; Angermann, M.;Krach B. Simultaneous Localization and Mapping for Pedestrians using only Foot-Mounted Inertial Sensors (PDF). Ubicomp 2009. Orlando, Florida, USA: ACM. 2009. doi:10.1145/1620545.1620560.
  8. ^ Smith, R.C.; Cheeseman, P. On the Representation and Estimation of Spatial Uncertainty (PDF). The International Journal of Robotics Research. 1986, 5 (4): 56–68 [2008-04-08]. doi:10.1177/027836498600500404.
  9. ^ Smith, R.C.; Self, M.;Cheeseman, P. Estimating Uncertain Spatial Relationships in Robotics (PDF). Proceedings of the Second Annual Conference on Uncertainty in Artificial Intelligence. UAI '86. University of Pennsylvania, Philadelphia, PA, USA: Elsevier: 435–461. 1986.
  10. ^ Leonard, J.J.; Durrant-whyte, H.F. Simultaneous map building and localization for an autonomous mobile robot. Intelligent Robots and Systems' 91.'Intelligence for Mechanical Systems, Proceedings IROS'91. IEEE/RSJ International Workshop on. 1991: 1442–1447 [2008-04-08]. doi:10.1109/IROS.1991.174711.

外部链接

本文版权归 维基百科,摘自:https://zh.wikipedia.org/wiki/%E5%8D%B3%E6%97%B6%E5%AE%9A%E4%BD%8D%E4%B8%8E%E5%9C%B0%E5%9B%BE%E6%9E%84%E5%BB%BA

Slam(即时定位与地图构建) 知识篇的更多相关文章

  1. 即时定位与地图构建SLAM(Simultaneous Localization and Mapping)

    SLAM 即时定位与地图构建SLAM(Simultaneous Localization and Mapping) 参考链接: 视觉SLAM漫谈,http://www.cnblogs.com/gaox ...

  2. 自主移动机器人同时定位与地图创建(SLAM)方法概述

    1.引言: 机器人的研究越来越多的得到关注和投入,随着计算机技术和人工智能的发展,智能自主移动机器人成为机器人领域的一个重要研究方向和研究热点.移动机器人的定位和地图创建是自主移动机器人领域的热点研究 ...

  3. ROS 八叉树地图构建 - 安装 octomap 和 octomap_server 建图包!

    项目要用到八叉树库 Octomap 来构建地图,这里记录下安装.可视化,并启用带颜色的 Octomap 的过程. 一.Apt 安装 Octomap 库 如果你不需要修改源码,可以直接安装编译好的 oc ...

  4. ROS 八叉树地图构建 - 使用 octomap_server 建图过程总结!

    构建语义地图时,最开始用的是 octomap_server,后面换成了 semantic_slam: octomap_generator,不过还是整理下之前的学习笔记. 一.增量构建八叉树地图步骤 为 ...

  5. iOS之定位与地图

    概览 现在很多社交.电商.团购应用都引入了地图和定位功能,似乎地图功能不再是地图应用 和导航应用所特有的.的确,有了地图和定位功能确实让我们的生活更加丰富多彩,极大的改变了我们的生活方式.例如你到了一 ...

  6. 【Java面试】基础知识篇

    [Java面试]基础知识篇 Java基础知识总结,主要包括数据类型,string类,集合,线程,时间,正则,流,jdk5--8各个版本的新特性,等等.不足的地方,欢迎大家补充.源码分享见个人公告.Ja ...

  7. 【Java面试】1、基础知识篇

    [Java面试]基础知识篇 Java基础知识总结,主要包括数据类型,string类,集合,线程,时间,正则,流,jdk5--8各个版本的新特性,等等.不足的地方,欢迎大家补充. 源码分享:https: ...

  8. ROS中利用V-rep进行地图构建仿真

    V-rep中显示激光扫描点  在VREP自带的场景中找到practicalPathPlanningDemo.ttt文件,删除场景中多余的物体只保留静态的地图.然后在Model browser→comp ...

  9. 百度地图总结第二篇--POI检索功能

    简单介绍: 眼下百度地图SDK所集成的检索服务包含:POI检索.公交信息查询.线路规划.地理编码.行政区边界数据检索.在线建议查询.短串分享(包含POI搜索结果分享.驾车/公交/骑行/步行路线规划分享 ...

随机推荐

  1. Java-使用二叉树实现快速排序-遁地龙卷风

    (-1)写在前面 在一次面试中被问及快速排序,回来后又看了一次以前做过的案例,说来惭愧,时至今日还需要读好长时间,才能明白自己代码的意思,主要是缺少注释和图解,深有感慨,决定好好记录一下. 之所以使用 ...

  2. Xdebug文档(六) 分析PHP脚本

    分析PHP脚本Xdebug内置分析器能让你找到脚本中的瓶颈并用额外的工具诸如KcacheGrind或WinCacheGrind工具可视化. 介绍 Xdebug分析器是分析PHP代码和判断瓶颈或确定代码 ...

  3. JS中用new创建对象与不用new创建对象区别:

    function classA() { console.log(this); var that = this == window ? {} : this; that.name = "clas ...

  4. jQuery基础_4

    dom对象就是jquery对象的数组组成部分jquery对象和dom对象的转化jquery对象-->dom对象$()[下标]dom对象-->jquery对象$(dom对象) jquery框 ...

  5. 深入了解 Authorize 和 AllowAnonymous

    深入了解 Authorize 和 AllowAnonymous Chapter 0 - Intro 最近做的一个项目的时候,自定义授权 Attribute 来区分用户权限,我的项目不太大,权限控制也不 ...

  6. SharePoint 2013 Designer系列之数据视图筛选

    在SharePoint中,我们经常需要对列表进行简单的筛选,这时,数据视图就有作用了,我们可以定制对于字段的筛选,来进行展示:特别的,筛选不同于搜索,并没有对于附件或者文档的全文检索,如果需要全文检索 ...

  7. IOS开发之----#import、#include和@class的区别

    1. 一般来说,导入objective c的头文件时用#import,包含c/c++头文件时用#include. 2. #import 确定一个文件只能被导入一次,这使你在递归包含中不会出现问题.&l ...

  8. Genymotion 解决虚拟镜像下载速度特别慢的问题

    Genymotion号称Android模拟器中运行最快的,但是服务器在国外,Android镜像下载起来那个速度就不想说了. Add new device后下载速度太慢了,容易失败   解决方法如下: ...

  9. B样条曲线曲面(附代码)

    1 B样条曲线 1.1 B样条曲线方程 B样条方法具有表示与设计自由型曲线曲面的强大功能,是形状数学描述的主流方法之一,另外B样条方法是目前工业产品几何定义国际标准——有理B样条方法 (NURBS)的 ...

  10. curl操作CouchDB

    couchdb 服务器地址: 127.0.0.1 端口:5984 添加数据库 连接到couchdb curl -X GET http://127.0.0.1:5984 {"couchdb&q ...