机器人导航背后的技术一直在不断发展,但在真正实现自主之前,还有一些主要障碍需要清除。来自 NVIDIA 的新解决方案使这下一步更加现实。在本文中,了解 GPU 加速的 ROS 和 ROS2 系统,加上 VSLAM 算法和 Nvblox 软件包,如何使用更少的 CPU 功率实现更高效的自主机器人导航 (AMR)。
前言
自主导航是机器人系统的重要一步。自主移动机器人 (AMR) 导航的基本要素之一是“视觉 SLAM”,即视觉同步定位和地图绘制。视觉 SLAM 是一种使用摄像机捕捉的图像来同时绘制环境地图和估计机器人位置的技术。用于火星探索的凤凰号着陆器、机遇号漫游车和独创性直升机利用视觉 SLAM 算法进行自主导航和着陆。进一步的应用包括真空清洁、内窥镜检查和无人驾驶的空中、地面和水下机器人,其中机器执行自动化任务。
视觉 SLAM 需要强大的计算能力来估计姿势,并从相机获取的图像中生成地图。大多数视觉 SLAM (VSLAM) 算法使用 CPU 能力,这限制了实时姿势估计和地图创建。Isaac ROS(机器人操作系统)、VSLAM 和 Nvblox 是 GPU 加速的 ROS2 软件包,可帮助估计姿势并创建周围环境的地图,以便实时导航自主移动机器人。进行实验以观察 Isaac ROS VSLAM 和 Nvblox 与 Realsense 相机在 AMR 自主导航方面的工作情况。
NVIDIA ISAAC ROS 视觉 SLAM 和 Nvblox 管道
图 1 显示了 NVIDIA ISAAC ROS 视觉 SLAM 和 Nvblox 管道的工作和集成。在这里,VSLAM 估计姿势,Nvblox 为机器人的自主导航重建周围环境的地图。

NVIDIA Isaac ROS VSLAM 是一个 ROS2 软件包,可同时执行立体视觉定位和映射。它使用一对时间同步的立体图像计算立体视觉惯性里程计,并使用 Isaac Elbrus GPU 加速库。视觉惯性里程计、优化和映射是 Isaac ROS VSLAM 的三个组成部分。视觉里程计 (VO) 是一种估计相机相对于其起始点的位置的技术。图 1 中所示的 VO 姿势是由 VO 估算的。视觉同步定位和映射 (VSLAM) 方法建立在 VO 姿势之上,旨在通过闭环检测和使用先前看到的环境部分估计 SLAM 姿势来提高 VO 姿势的质量。除了视觉数据,Elbrus 还可以使用惯性测量单元 (IMU) 的测量值。当 VO 无法估计姿势时,例如当光线不足或相机前面有一个长而无特色的表面时,它会切换到 IMU。图 1 显示了 V-SLAM 估计的 SLAM 姿势。
NVIDIA Isaac ROS Nvblox 是一个 ROS2 软件包,用于从相机图像中实时 3D 重建 AMR 周围的环境。该重构旨在被路径规划者用来生成安全的导航路径。Nvblox 利用 NVIDIA CUDA 来加速这一过程,并实现实时操作。该存储库包含针对 Nvblox 核心库的 ROS2 集成。Nvblox 算法由三个关键组件组成:截断带符号距离函数 (TSDF)、网格和欧几里得带符号距离函数 (ESDF)。Nvblox 使用 RGB 图像、深度图像和 SLAM 姿势作为输入,并输出用于可视化的网格和用于路径规划的距离切片图。Nvblox 从 RGB 和深度图像流以及深度图像的相应姿势生成 2D 距离图切片和 3D 网格。用于对周围环境的 3D 重建进行着色以便可视化的 RGB 图像流是可选的。2D 距离图切片显示了每个点与最近的重建障碍物之间的距离,以及用于 RVIZ 可视化的 3D 网格。用于可视化的周围环境的 3D 重建是可选的。2D 距离图切片显示每个点和最近的重建障碍之间的距离,以及用于 RVIZ 可视化的 3D 网格。
Isaac ROS VSLAM、Nvblox 和 Nav2 堆栈管道的说明
使用 Isaac ROS V-SLAM、Nvblox 和 Nav2 堆栈的 AMR 自主导航的整个管道如图 2 所示。该管道由五个节点组成:Realsense 相机节点、Isaac ROS V-SLAM 节点、Isaac ROS Nvblox 节点、Nav2 节点和 Rviz 节点。以下段落解释了每个模块。

Realsense 相机节点从 Realsense 相机捕获图像,并发布 RGB、深度、infra-1 和 infra-2 图像。Infra-1 和 Infra-2 是红外图像。infra-1 和 infra-2 图像由 Isaac ROS V-SLAM 模块订阅,它发布姿势和 tf。Isaac ROS Nvblox 模块通过订阅 RGB 图像、深度图像、姿势和 if 来生成距离切片图。对于路径规划和导航,Nav2 节点利用距离切片图。Nav2 节点是允许 AMR 通过使用当前姿势、地图和目标(例如目的地姿势)自主到达目标状态的控制系统。Nav2 节点成功绘制了到达目标状态的路径,并向 AMR 发送命令,以沿着规划的路径到达目标位置。Rviz 是一个有用的工具,用于可视化图像、里程计和生成的地图,并为 AMR 提供目标姿势。
实验结果
图 3 显示了 AMR,它通过安装在其上的实感摄像头看到的内容,以及作为网格生成的 3D 点云地图。图 4 显示了创建的地图,其中包含给定的目标状态、计划路径以及 AMR 通过遵循计划路径安全到达目标状态。


结论
为了在实验室中自主导航 AMR,Intel RealSense 相机已集成到 Isaac ROS VSLAM、Isaac ROS Nvblox 和 Nav2 堆栈中。为了测绘和导航的目的,AMR 在实验室环境中移动。Isaac ROS VSLAM 成功估算了 AMR 的里程表,同时还创建了 AMR 周围的环境地图。由于 GPU 加速,NVIDIA Isaac ROS VSLAM 和 Nvblox 管道提供了实时性能。同时,VSLAM 算法在地图上定位其位置,并创建用于安全导航的地图。我们希望展示我们的实验将有助于机器人工程师开发各种商业机器人产品。更多详情,您可以联系作者。