从零开始一起学习SLAM | SLAM有什么用?

2018 年 9 月 17 日 计算机视觉life

   点击上方蓝字关注我,置顶更快接收消息!

SLAM是 Simultaneous Localization And Mapping的 英文首字母组合,一般翻译为:同时定位与建图、同时定位与地图构建。


「同时定位与地图构建」这几个词,乍一听起来非常拗口,为了不在一开始就吓跑读者,我们先不对其进行专业的解释,用一个日常生活中形象的例子来进行说明。


初步认识SLAM

我们知道现在有不少家用的扫地机器人,可以代替人对室内进行自动清扫。早期的扫地机器人并不智能,它只是具有简单的避障功能,在室内随机游走,遇到障碍物就转弯,这样会导致有很多地方会漏掉,扫地效率非常低。


而现在随着SLAM技术在扫地机器人中的应用,现在的扫地机器人已经变的非常智能,可以通过自身的传感器对室内进行扫描建图,根据当前的定位进行Z字形规划清扫,还能实现自动回充、断点续扫等高级功能。


根据前面介绍,我们总结一下,要想真正实现智能的清扫,扫地机器人至少需要知道以下几件事情:


1、我在哪里?也就是扫地机器人在工作过程中要知道自己在房间的具体位置。对应的术语叫:定位(Localization)


2、我周围的环境是什么样子?也就是扫地机器人需要知道整个房间的地面结构信息。对应的术语叫:建图(Mapping)


3、我怎样到达指定地点(充电器)?当扫地机器人电量不足时,如何以最短的路径到达充电器所在位置进行自动充电。对应的术语叫:路径规划(Route Planning)。


有了以上的几个能力,扫地机器人就变的非常智能了,不再像无头苍蝇一样在室内乱跑,而是可以从任意位置出发,按照建立好的地图进行规划清扫。当然房间里的物品摆放也会发生变化,所以扫地机器人每次清扫也会根据当前的定位及扫描情况,在建好的地图基础上对进行更新。随着使用时间的增长,扫地机器人建立的地图会越来越准确,规划的清扫路线越来越高效,变的越来越智能。


看明白了上面的例子,我们给出SLAM的定义。SLAM是指当某种移动设备(如机器人、无人机、手机等)从一个未知环境里的未知地点出发,在运动过程中通过传感器(如激光雷达、摄像头等)观测定位自身位置、姿态、运动轨迹,再根据自身位置进行增量式的地图构建,从而达到同时定位和地图构建的目的。定位和建图是两个相辅相成的过程,地图可以提供更好的定位,而定位也可以进一步扩建地图。需要说明的是,上述扫地机器人例子中,定位和建图是SLAM的基本要求,而路径规划是在此基础上的高级功能,不属于SLAM的讨论范畴。


SLAM的应用

SLAM所使用的传感器主要分为激光雷达和视觉两大类。在SLAM研究史上,早期SLAM研究几乎全使用激光雷达作为传感器,其优点是精度高,解决方案相对成熟。但是缺点也非常明显,比如价格贵、体积大,信息少不够直观等。


视觉SLAM就是用摄像头作为主传感器,用拍摄的视频流作为输入来实现同时定位与建图。视觉SLAM广泛应用于AR、自动驾驶、智能机器人、无人机等前沿领域。我们知道SLAM的两大核心:定位和建图。下面分别进行说明。


1

定位相关应用

SLAM在自动驾驶中最主要的功能就是更加精确的确定汽车自身的位置(当然建图也很重要)。说到这里,很多人会有疑问:现在手机上的百度/高德/腾讯等地图类App就可以定位,为什么还需要SLAM来定位呢?


原因是这样的:目前地图类App在室外定位、导航方面确实做的很不错,而且衍生出很多基于地理位置的游戏、社交、生活类应用。不过现在的定位系统仍然存在以下两个主要问题。


1、地图类App背后使用的是GPS技术,但民用GPS最多也就达到几米的定位精度,驾车的读者应该深有体会:这些地图类App导航时并不知道当前车辆在哪个车道上。


2、GPS只能在室外使用。而在建筑物内、洞穴、海底等很多地方,GPS会失效。而往往这些地方对于定位的需求很强烈,要想解决GPS失效区域的定位,目前最有效的就是SLAM技术。


如下图所示是著名开源算法ORB-SLAM2使用架设在汽车上的摄像头进行定位的结果。从图中不难看出,算法非常清晰的展现了汽车当前所在的车道。


同样的,对于室内使用的自主移动机器人来说,定位也完全依赖SLAM技术。如下图是单目SLAM的过程。此外像京东,阿里这种大型的电商已经在自己的仓库配备了仓储机器人,也称AGV(Automated Guided Vehicle),可以根据建立的地图确定自身的位置,然后根据任务需求进行路径规划来搬运货物。


2

建图相关应用

比如使用手机上的单目摄像头可以对物体进行扫描,生成对应的三维模型。这称为小尺度下的三维建模。当然,也可以对较大尺度的场景进行三维重建,比如下图下就是Google project tango利用鱼眼摄像头对室外的大场景进行的三维重建。


最近几年,随着消费级RGB-D相机的普及,室内场景的三维重建也是一个非常热门的方向。利用重建的结果可以实现很多 功能,比如室内移动机器人可以根据重建结果判断障碍物距离、识别理解环境,进行导航;比如可以根据重建结果在家里玩增强现实游戏;还可以将二维图片和重建结果进行融合实现三维漫游等。


讨论

SFM(structure from motion)是一种和SLAM非常类似的算法,关于SFM和SLAM的异同,下面说法错误的是?


A. SFM和SLAM基本讨论的是同一问题,不过SFM最早来自计算机视觉领域,而SLAM则是来自于机器人领域。SFM的structure对应SLAM的mapping,SFM的camera pose对应SLAM的location。


B. SFM一般是离线处理,而SLAM更强调实时性,一般在线处理


C. SFM处理的图片一般没有要求,可以是不同时间不同相机拍摄的同一个场景,而SLAM一般要求是同一相机拍摄的序列图像或连续视频。


D. 目前SFM主要是要完成3D reconstuction,而SLAM主要是要完成localization。


E. SFM通常使用摄像机作为传感器,而SLAM在传感器选择方面,除了摄像机,通常还包括惯导、激光雷达等传感器。


F. 如果想要快速对自由女神像进行3D重建,在没有特殊硬件的情况下,最好的方式是选择SLAM。


欢迎留言讨论,或者进入知识星球「从零开始学习SLAM」(菜单栏回复 “星球” 了解详情)一起学习交流~

相关阅读

从零开始一起学习SLAM | 为什么要学SLAM?

从零开始一起学习SLAM | 学习SLAM到底需要学什么?

零基础小白,如何入门计算机视觉?

登录查看更多
18

相关内容

即时定位与地图构建(SLAM或Simultaneouslocalizationandmapping)是这样一种技术:使得机器人和自动驾驶汽车等设备能在未知环境(没有先验知识的前提下)建立地图,或者在已知环境(已给出该地图的先验知识)中能更新地图,并保证这些设备能在同时追踪它们的当前位置。
【开放书】SLAM 中的几何与学习方法,62页pdf
专知会员服务
107+阅读 · 2020年6月5日
【牛津大学&DeepMind】自监督学习教程,141页ppt
专知会员服务
177+阅读 · 2020年5月29日
3D目标检测进展综述
专知会员服务
185+阅读 · 2020年4月24日
Python数据分析:过去、现在和未来,52页ppt
专知会员服务
99+阅读 · 2020年3月9日
专知会员服务
84+阅读 · 2019年12月13日
【斯坦福&Google】面向机器人的机器学习,63页PPT
专知会员服务
23+阅读 · 2019年11月19日
如何从零开始系统化学习视觉SLAM?
计算机视觉life
21+阅读 · 2019年4月13日
【泡泡机器人】也来谈语义SLAM/语义地图
泡泡机器人SLAM
20+阅读 · 2019年3月12日
从零开始一起学习SLAM | 掌握g2o边的代码套路
计算机视觉life
5+阅读 · 2019年3月6日
从零开始一起学习SLAM | 给点云加个滤网
计算机视觉life
6+阅读 · 2018年12月18日
从零开始一起学习SLAM | 你好,点云
计算机视觉life
9+阅读 · 2018年11月26日
对比激光SLAM与视觉SLAM:谁会成为未来主流趋势?
人工智能学家
8+阅读 · 2018年11月13日
从零开始一起学习SLAM | 神奇的单应矩阵
计算机视觉life
9+阅读 · 2018年11月11日
从零开始一起学习SLAM | 学习SLAM到底需要学什么?
计算机视觉life
8+阅读 · 2018年9月9日
专栏|语义SLAM的重要性,你造吗?
智东西
7+阅读 · 2017年9月5日
SLAM初识
计算机视觉life
4+阅读 · 2017年6月4日
Real-time Scalable Dense Surfel Mapping
Arxiv
5+阅读 · 2019年9月10日
Monocular Plan View Networks for Autonomous Driving
Arxiv
5+阅读 · 2019年5月16日
Structure Aware SLAM using Quadrics and Planes
Arxiv
4+阅读 · 2018年8月13日
Arxiv
6+阅读 · 2018年2月8日
VIP会员
相关VIP内容
【开放书】SLAM 中的几何与学习方法,62页pdf
专知会员服务
107+阅读 · 2020年6月5日
【牛津大学&DeepMind】自监督学习教程,141页ppt
专知会员服务
177+阅读 · 2020年5月29日
3D目标检测进展综述
专知会员服务
185+阅读 · 2020年4月24日
Python数据分析:过去、现在和未来,52页ppt
专知会员服务
99+阅读 · 2020年3月9日
专知会员服务
84+阅读 · 2019年12月13日
【斯坦福&Google】面向机器人的机器学习,63页PPT
专知会员服务
23+阅读 · 2019年11月19日
相关资讯
如何从零开始系统化学习视觉SLAM?
计算机视觉life
21+阅读 · 2019年4月13日
【泡泡机器人】也来谈语义SLAM/语义地图
泡泡机器人SLAM
20+阅读 · 2019年3月12日
从零开始一起学习SLAM | 掌握g2o边的代码套路
计算机视觉life
5+阅读 · 2019年3月6日
从零开始一起学习SLAM | 给点云加个滤网
计算机视觉life
6+阅读 · 2018年12月18日
从零开始一起学习SLAM | 你好,点云
计算机视觉life
9+阅读 · 2018年11月26日
对比激光SLAM与视觉SLAM:谁会成为未来主流趋势?
人工智能学家
8+阅读 · 2018年11月13日
从零开始一起学习SLAM | 神奇的单应矩阵
计算机视觉life
9+阅读 · 2018年11月11日
从零开始一起学习SLAM | 学习SLAM到底需要学什么?
计算机视觉life
8+阅读 · 2018年9月9日
专栏|语义SLAM的重要性,你造吗?
智东西
7+阅读 · 2017年9月5日
SLAM初识
计算机视觉life
4+阅读 · 2017年6月4日
Top
微信扫码咨询专知VIP会员