就像人类一样,机器人不能总是依赖GPS,尤其是当它们在室内运行时。况且,GPS在室外如果达不到几英寸的精度,机器人也不能安全地移动。
使用SLAM,机器人可以随时构建自己的地图。通过传感器数据校准来构建导航地图,它们可以了解自己的位置。
听起来很简单,但它实际上是一个多阶段过程,包括使用多种非常适合GPU并行处理能力的算法来校准传感器数据。
自20世纪80年代以来,SLAM有很多种形式。本文将重点介绍其在NVIDIA Isaac中的机器人应用。
机器人不断地对周围的传感器数据进行瞬间采集。对于深度图像测量,每秒可拍摄多达90次图像。对于用作精确范围测量的激光雷达图像,每秒可拍摄20次。
此外,车轮里程计(odometry)将机器人车轮的旋转纳为考量,可以帮助测量它行驶的距离。惯 测量单元(inertial measurement units)还用于测量速度和加速度,作为追踪机器人位置的方法。
所有这些传感器流都被纳入在传感器融合(sensor fusion)中,以更好地估测机器人的移动方式。
使用NVIDIA Isaac SDK,开发人员可以通过“扫描到地图匹配”(scan-to-map matching)来定位机器人。SDK中还有一个来自NVIDIA研究人员的算法,称为HGMM(Hierarchical Gaussian Mixture Model,层次高斯混合模型)。它可以校准从不同视角拍摄的两个点云(空间中的大量数据点)。
上述映射计算每秒发生20-100次,具体取决于算法。如果没有NVIDIA GPU的处理能力,这将无法实时执行。Jetson AGX Xavier是机器人技术的理想选择,它在紧凑的封装中提供32 teraops GPU工作站般的 能。
校准点云或深度图像的大规模数字运算任务可以在NVIDIA GPU上完成,比使用CPU快20倍。
视觉里程计(Visual odometry)使用视频作为唯一输入,以此来恢复机器人的位置和方向。
NVIDIA Isaac支持立体视觉里程计(两个摄像头),可实时工作以帮助引导位置,每秒至少拍摄30帧。它可用于由我们紧凑型Jetson超级计算模块驱动的所有产品。
使用Isaac标准的立体视觉里程计功能,机器人开发人员可以准确计算出机器人的位置,并将其用于导航。
Isaac在视觉里程计方面的未来发展将被整合进套件的功能中,并提升SLAM的水平。目前,SLAM用于检查机器人位置和方向的地图恢复,以消除由于不准确的视觉里程计结果而导致的导航错误。
第二种方法是让机器人上的Isaac应用程序,将数据流传输到工作站上运行映射算法的Isaac应用程序。
但是第三种推荐的方法是使用Isaac的便捷记录器小部件,将激光雷达扫描和里程计数据记录到文件中。这样,映射可以使用logmapping应用程序离线完成。该方法允许调整用于优化地图的映射算法的参数,而无需重复驱动机器人。
Isaac的模块化,使用户能够集成他们选择的其他第三方库,或插入他们自己的工具。Isaac将使用激光雷达或深度相机获得的2D范围扫描数据提供给这些映射算法。Isaac还提供使用车轮速度、惯 测量单位数据和计算机视觉计算的里程计信息。
当机器人使用激光雷达或摄像头感知周围环境时,Isaac会创建一个机器人环境的占用网格图(occupancy grid map),其分辨率由用户决定。无论地图中的每个单元是否被阻挡,该2D“本地地图”均可提供信息,以便机器人可以相应地规划其导航路径。