新葡萄京官网8455 新能源 新葡萄棋牌SLAM算法解析

新葡萄棋牌SLAM算法解析



当你身处一个陌生的地方,要准确找到目的地和路线,十有八九会打开手机上的地图app,然后定位、输入目的地、规划路线、导航。

作者:黄建义     组别:研一

机器人也一样。当它们身处未知环境时,同样需要通过以上步骤才能做出正确的运动。只不过,机器人靠的不是手机地图
app,而是 SLAM技术。

【嵌牛导读】:SLAM(Simultaneous Localization and Mapping)
是业界公认视觉领域空间定位技术的前沿方向,中文译名为「同步定位与地图构建」,它主要用于解决机器人在未知环境运动时的定位和地图构建问题。

SLAM 全称 Simultaneous Localization and
Mapping,中文名曰「同步定位与地图构建」,主要用于解决机器人在未知环境运动时的定位和地图构建问题。这更像一个概念,而不是某种算法。它本身包含许多步骤,其中的每一个步骤均可以使用不同的算法实现。

嵌牛鼻子】:有人就曾打比方,若是手机离开了 WIFI
和数据网络,就像无人车和机器人,离开了 SLAM 一样。

机器人、无人车、无人机、AR,无所不能的 SLAM

【嵌牛正文】:目前科技发展速度飞快,想让用户在
AR/VR、机器人、无人机、无人驾驶领域体验加强,还是需要更多前沿技术做支持,SLAM
就是其中之一。实际上,有人就曾打比方,若是手机离开了 WIFI
和数据网络,就像无人车和机器人,离开了 SLAM 一样。

两年前,SLAM
最流行的应用场景还只是我们家里的扫地机器人。近几年,随着无人机、无人驾驶、服务机器人、仓储机器人以及
AR 的兴起,SLAM 作为其中核心技术的一种,正变得越来越重要。

        在 VR/AR 方面,根据 SLAM
得到地图和当前视角对叠加虚拟物体做相应渲染,这样做可以使得叠加的虚拟物体看起来比较真实,没有违和感。在无人机领域,可以使用
SLAM
构建局部地图,辅助无人机进行自主避障、规划路径。在无人驾驶方面,可以使用
SLAM
技术提供视觉里程计功能,然后跟其他的定位方式融合。机器人定位导航方面,SLAM
可以用于生成环境的地图。基于这个地图,机器人执行路径规划、自主探索、导航等任务。

新葡萄棋牌 1扫地机器人

        SLAM 技术的发展距今已有 30
余年的历史,涉及的技术领域众多。由于本身包含许多步骤,每一个步骤均可以使用不同算法实现,SLAM
技术也是机器人和计算机视觉领域的热门研究方向。

雷锋网的一篇报道曾引用 SLAM 技术发烧友 Guang Ling 的话,来强调 SLAM
技术的重要性:

        SLAM 的英文全程是 Simultaneous Localization and
Mapping,中文称作「同时定位与地图创建」。SLAM
试图解决这样的问题:一个机器人在未知的环境中运动,如何通过对环境的观测确定自身的运动轨迹,同时构建出环境的地图。SLAM
技术正是为了实现这个目标涉及到的诸多技术的总和。

一个机器人也好,无人汽车也好,其中最核心,最根本的问题有四个,定位技术、
跟踪技术、 路径规划技术(Path Planning),
还有就是控制技术(Controlling)。

        SLAM
技术涵盖的范围非常广,按照不同的传感器、应用场景、核心算法,SLAM
有很多种分类方法。按照传感器的不同,可以分为基于激光雷达的 2D/3D
SLAM、基于深度相机的 RGBD SLAM、基于视觉传感器的 visual SLAM(以下简称
vSLAM)、基于视觉传感器和惯性单元的 visual inertial odometry(以下简称
VIO)。

而这四个问题中的前三个,SLAM
都扮演了最核心的功能。打个比方,若是手机离开了 wifi
和数据网络,就像无人车和机器人,离开了 SLAM 一样。

        基于激光雷达的 2D SLAM 相对成熟,早在 2005 年,Sebastian Thrun
等人的经典著作《概率机器人学》将 2D SLAM
研究和总结得非常透彻,基本确定了激光雷达 SLAM 的框架。目前常用的 Grid
Mapping 方法也已经有 10 余年的历史。2016 年,Google 开源了激光雷达 SLAM
程序 Cartographer,可以融合 IMU 信息,统一处理 2D 与 3D SLAM 。目前 2D
SLAM 已经成功地应用于扫地机器人中。

也许有读者好奇,为什么无人车也非常依赖
SLAM?因为无人车被看作移动机器人的一种,也需要首先解决定位、避障和导航的问题。目前用在无人驾驶汽车上的
SLAM 主要是基于激光雷达传感器,后面会详细提到。

        基于深度相机的 RGBD SLAM 过去几年也发展迅速。自微软的 Kinect
推出以来,掀起了一波 RGBD SLAM
的研究热潮,短短几年时间内相继出现了几种重要算法,例如
KinectFusion、Kintinuous、Voxel Hashing、DynamicFusion 等。微软的
Hololens 应该集成了 RGBD
SLAM,在深度传感器可以工作的场合,它可以达到非常好的效果。

天上飞的的无人机同样需要 SLAM 来「添翼」。SLAM
能让无人机知道障碍物在哪里,进而实现自动避障的功能。

 
      视觉传感器包括单目相机、双目相机、鱼眼相机等。由于视觉传感器价格便宜,在室内室外均可以使用,因此
vSLAM 是研究的一大热点。早期的 vSLAM 如 monoSLAM
更多的是延续机器人领域的滤波方法。现在使用更多的是计算机视觉领域的优化方法,具体来说,是运动恢复结构(structure-from-motion)中的光束法平差(bundle
adjustment)。在 vSLAM
中,按照视觉特征的提取方式,又可以分为特征法、直接法。当前 vSLAM
的代表算法有 ORB-SLAM、SVO、DSO 等。

香港科技大学助理研究员徐枭涵曾在知乎上如此形容 SLAM 对无人机的重要性:

        视觉传感器对于无纹理的区域是没有办法工作的。惯性测量单元(IMU)通过内置的陀螺仪和加速度计可以测量角速度和加速度,进而推算相机的姿态,不过推算的姿态存在累计误差。视觉传感器和
IMU 存在很大的互补性,因此将二者测量信息进行融合的 VIO
也是一个研究热点。按照信息融合方式的不同,VIO
又可以分为基于滤波的方法、基于优化的方法。VIO 的代表算法有
EKF、MSCKF、preintegration、OKVIS 等。Google 的 Tango
平板就实现了效果不错 VIO。

所有的关于无人机的梦想都建立在 SLAM
之上,这是无人机能飞(具有定位,姿态确定以后)的时代以后,无人机最核心的技术。也是现代无人机和玩具的区别。

        总的来说,相比于基于激光雷达和基于深度相机的
SLAM,基于视觉传感器的 vSLAM 和 VIO
还不够成熟,操作比较难,通常需要融合其他传感器或者在一些受控的环境中使用。

无人车、无人机,都可以算作机器人的一种,依赖 SLAM
很好理解。但与机器人没什么关系的 AR 设备,其实也是 SLAM 的一个重要应用。

【转51cto】

新葡萄棋牌 2AR眼镜

如果没有 SLAM 加持,所有头戴眼镜就只是一个近眼投影设备。有了 SLAM,AR
眼镜才能知道自己的空间坐标和相对于室内各种障碍物的位置,同时识别出各种室内摆件的形状。这是
AR 设备人机交互的基础。

由于 AR 是将虚拟图像叠加在真实物体上,所以 SLAM
的应用讲究局部精度,要求避免出现漂移、抖动的现象,虚拟与真实才能完美地融合在一起。另外,AR
对帧率、硬件体积、计算量、功率、成本等问题都更敏感。

激光雷达、单目、双目、RGBD,SLAM 传感器的分类

实现 SLAM
的第一步,是选择传感器的形式和安装方式。传感器分为激光雷达和视觉两大类,视觉下面又分三小方向。

激光雷达

激光雷达能以很高精度测出机器人周围障碍点的角度和距离,而且速度快,计算量也不大,容易做成实时
SLAM。激光雷达一般用于扫描一个平面内的障碍物,适用于适用于平面运动的机器人(如无人车、扫地机器人)。

新葡萄棋牌 3激光雷达

许多行业分析师认为,激光雷达是实现全自动驾驶的关键传感器,其产品被以
Google、百度为代表的企业认可。

不过,激光雷达制造成本高,价格十分昂贵,比如 Google
无人车目前使用的激光传感器单个定制成本在8万美元左右,百度采购一台激光雷达也要
70 万人民币。

成本已然成为激光雷达普及最大的拦路虎。2016 年 8
月福特和百度一起投资了激光雷达厂商 Velodyne LiDAR 1.5
亿美元,目的就是帮助 Velodyne 降低激光传感器的成本。Velodyne
希望将激光雷达的价格降到 300 到 500 美元之间,以满足大众汽车市场。

视觉 SLAM

视觉 SLAM 是 21 世纪 SLAM 研究热点之一。CPU、GPU
处理速度的增长和硬件的提高,让许多以前被认为无法实时化的视觉算法,得以在
10 Hz 以上的速度运行。

按照摄像头的数量和种类分,视觉 SLAM 分 3
个子方向:单目、双目(或多目)、RGBD。此外,还有鱼眼、全景等特殊摄像头,但是都属于少数。

单目相机 SLAM 只需要一个普通的 2D 摄像头,成本优势大。但普通 2D
摄像头没法获取深度信息,它捕获的仅仅是一张 2D
图像。深度信息缺失有什么影响?引用知乎用户「半闲居士」的一个回答:

没有距离信息,我们不知道一个东西的远近——所以也不知道它的大小。它可能是一个近处但很小的东西,也可能是一个远处但很大的东西。只有一张图像时,你没法知道物体的实际大小(Scale)。

另一方面,单目相机也无法依靠一张图像获得图像中物体离自己的相对距离。

但这两个问题都有对应的解决办法。比如,通过借助 GPU 和 IMU(Inertial
Measurement
Unit,惯性测量器件)确定物体的大小,依靠运动中的三角测量,来求解相机运动并估计像素的空间位置。

双目 SLAM
消除了单目的很多麻烦。双目视觉和人眼类似,通过左右眼图像的差异来计算距离——也就是所谓的立体视觉(Stereo)。

但双目 SLAM 的计算量非常大,通常需要用到可编程门阵列
FPGA。而且其其深度量程也受双目的基线与分辨率限制。

新葡萄棋牌 4Kinect

RGBD SLAM
的传感器是深度摄像头,能直接记录深度信息。深度摄像头通过把光投射到物体表面,再测量反射的信息来计算距离,具体原理有两种:结构光或
Time-of-Flight。它比传统相机能够提供更丰富的信息,也不必像单目或双目那样费时费力地计算深度。Kinect
就是一种比较常见的深度摄像头。不过,现在多数 RGBD
相机还存在测量范围窄、噪声大、视野小等诸多问题。

总的来说,SLAM
的实现方法多种多样,应用场景也不断打开。但「由于产品和硬件高度差异化,而
SLAM
相关技术的整合和优化又很复杂,导致算法和软件高度碎片化,所以市场上目前还没有一套通用普适的解决方案,在短时间内也不会有」。

新葡萄棋牌 5

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图