首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

什么是SLAM?

汽车学堂,www.auto-mooc.com

隶属清华大学苏州汽车研究院旗下清研车联

专注汽车新技术人才培养

为了解决机器人导航问题,它们需要一些地图的帮助。

就像人类一样,机器人不能总是依赖GPS,尤其是当它们在室内运行时。况且,GPS在室外如果达不到几英寸的精度,机器人也不能安全地移动。

相反,它们能够依靠SLAM(simultaneous localization and mapping,即时定位与地图构建)来观察和绘制周围环境。

使用SLAM,机器人可以随时构建自己的地图。通过传感器数据校准来构建导航地图,它们可以了解自己的位置。

听起来很简单,但它实际上是一个多阶段过程,包括使用多种非常适合GPU并行处理能力的算法来校准传感器数据。

自20世纪80年代以来,SLAM有很多种形式。本文将重点介绍其在NVIDIA Isaac中的机器人应用。

传感器数据校准

计算机将机器人的位置视为地图或时间线上的时间戳(Timestamp)。

机器人不断地对周围的传感器数据进行瞬间采集。对于深度图像测量,每秒可拍摄多达90次图像。对于用作精确范围测量的激光雷达图像,每秒可拍摄20次。

当机器人移动时,这些数据点有助于测量它相较于其先前位置的距离,以及它在地图上的位置。

运动估计

此外,车轮里程计(odometry)将机器人车轮的旋转纳为考量,可以帮助测量它行驶的距离。惯性测量单元(inertial measurement units)还用于测量速度和加速度,作为追踪机器人位置的方法。

所有这些传感器流都被纳入在传感器融合(sensor fusion)中,以更好地估计机器人的移动方式。

依赖于序列蒙特卡罗方法的卡尔曼滤波算法和粒子滤波算法,可用于融合这些传感器输入。

传感器数据配准

传感器数据配准,或数据点之间的测量,可以在两次测量之间或测量和地图之间进行。

使用NVIDIA Isaac SDK,开发人员可以通过“扫描到地图匹配”(scan-to-map matching)来定位机器人。SDK中还有一个来自NVIDIA研究人员的算法,称为HGMM(Hierarchical Gaussian Mixture Model,层次高斯混合模型)。它可以校准从不同视角拍摄的两个点云(空间中的大量数据点)。

通过使用连续的传感器数据流和运动估计,贝叶斯滤波器可以用数学的方法解决机器人所在的位置。

用于实时计算的GPU

上述映射计算每秒发生20-100次,具体取决于算法。如果没有NVIDIA GPU的处理能力,这将无法实时执行。Jetson AGX Xavier是机器人技术的理想选择,它在紧凑的封装中提供32 teraops GPU工作站般的性能。

校准点云或深度图像的大规模数字运算任务可以在NVIDIA GPU上完成,比使用CPU快20倍。

Jetson Nano也能为创客们提供巨大的性能飞跃。

用于定位的视觉里程计

视觉里程计(Visual odometry)使用视频作为唯一输入,以此来恢复机器人的位置和方向。

NVIDIA Isaac支持立体视觉里程计(两个摄像头),可实时工作以帮助引导位置,每秒至少拍摄30帧。它可用于由我们紧凑型Jetson超级计算模块驱动的所有产品。

使用Isaac标准的立体视觉里程计功能,机器人开发人员可以准确计算出机器人的位置,并将其用于导航。

视觉里程计功能包含在我们的Jetson Nano 开发套件中。

Isaac在视觉里程计方面的未来发展将被整合进套件的功能中,并提升SLAM的水平。目前,SLAM用于检查机器人位置和方向的地图恢复,以消除由于不准确的视觉里程计结果而导致的导航错误。

用于定位的地图构建

地图可通过三种方法创建而成。

一种方法是在Jetson设备上运行映射算法,同时有人监督并手动驱动机器人。

第二种方法是让机器人上的Isaac应用程序,将数据流传输到工作站上运行映射算法的Isaac应用程序。

但是第三种推荐的方法是使用Isaac的便捷记录器小部件,将激光雷达扫描和里程计数据记录到文件中。这样,映射可以使用logmapping应用程序离线完成。该方法允许调整用于优化地图的映射算法的参数,而无需重复驱动机器人。

为了创建定位和导航的地图,2019.1版本的NVIDIA Isaac SDK支持并使用OpenSlam的Gmapping和Google的Cartographer算法。

Isaac的模块化,使用户能够集成他们选择的其他第三方库,或插入他们自己的工具。Isaac将使用激光雷达或深度相机获得的2D范围扫描数据提供给这些映射算法。Isaac还提供使用车轮速度、惯性测量单位数据和计算机视觉计算的里程计信息。

占用网格(用于激光雷达的SLAM)

当机器人使用激光雷达或摄像头感知周围环境时,Isaac会创建一个机器人环境的占用网格图(occupancy grid map),其分辨率由用户决定。无论地图中的每个单元是否被阻挡,该2D“本地地图”均可提供信息,以便机器人可以相应地规划其导航路径。

Isaac构造的良好占用网格,是在Isaac导航堆栈中快速、自然和可靠避障的关键。

来源:英伟达NVIDIA企业解决方案

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190814A0L4VL00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券