自 2021 10 月以来, NVIDIA 和 Open Robotics 合作推出了两项重要的更改,现已发布在简陋的 ROS 2 版本中,以提高提供硬件加速器的计算平台的性能。
新的 ROS 2 简易硬件加速特性称为类型自适应和类型协商。 NVIDIA 将在下一次 NVIDIA ISAAC ROS 发布( 2022 年 6 月底)中发布一个实现类型自适应和类型协商的软件包。
这些简单但功能强大的框架添加将显著提高开发人员的性能,这些开发人员希望将人工智能/机器学习和计算机视觉功能纳入其基于 ROS 的应用程序中。
Open Robotics 首席执行官布莱恩·格基( Brian Gerkey )表示:“随着 ROS 开发人员向其机器人应用程序添加更多的自主权,机器人上的计算机正变得更加强大。我们一直在努力改进 ROS 框架,以确保它能够利用这些边缘计算机中的高性能硬件资源。”。
“与 NVIDIA robotics 团队密切合作,我们很高兴在谦逊的版本中分享新功能(类型调整和协商),这将有助于整个 ROS 社区努力接受硬件加速。”
消除硬件加速的开销
类型自适应
硬件加速器通常需要不同的数据格式来提供最佳性能。类型适配( REP-2007 )现在可用于 ROS 节点以更适合硬件的格式工作。处理管道可以使用自适应类型消除 CPU 和内存加速器之间的内存拷贝。不必要的内存拷贝会消耗 CPU 计算、浪费电源并降低性能,尤其是随着图像大小的增加。
类型协商
另一个新的创新是类型协商( REP-2009 )。处理管道中的不同 ROS 节点可以公布其支持的类型,以便选择产生理想性能的格式。 ROS 框架执行此协商过程,并与不支持协商的遗留节点保持兼容性。
使用类型适配和协商加速处理管道使硬件加速器零拷贝成为可能。这减少了软件开销,并释放了底层硬件的潜力。随着机器人专家迁移到更强大的计算平台,如 NVIDIA Jetson Orin ,他们可以期望实现硬件带来的更多性能增益。
这些更改完全在 ROS 2 内部完成,这确保了与现有工具、工作流和代码库的兼容性。
类型适应和协商已显示出有希望的结果。在 ROS 2 Foxy 和 ROS 2 Humble 上运行了一个由 ROS 节点图组成的基准测试,每个节点的计算量最小,因此我们可以观察底层框架的性能。我们在 Jetson AGX Xavier 和新的 Jetson AGX Orin .我们观察到 Xavier 提高了 3 倍, Orin 提高了 7 倍。
引入 NVIDIA ISAAC 用于 ROS 运输
类型自适应和协商的 NVIDIA 实现称为 NITROS 。这些是由 ISAAC ROS 硬件加速模块(又称 GEMs )组成的 ROS 处理管道。这些管道将于 2022 年 6 月底在 ISAAC ROS 开发商预览( DP )中提供。 NITROS 的首次发布将包括三条管道,计划在今年晚些时候推出更多管道。
NITROS Pipeline | ROS 2 Nodes in Pipeline |
---|---|
AprilTag Detection Pipeline | ArgusCameraMono (Raw Image) – Rectify – (Rectified Image) – AprilTag (AprilTag Detection) |
Stereo Disparity Pipeline | ArgusCameraStereo (Raw Image) – Rectify – (Rectified Image) – ESSDisparity (DNN Inference) – PointCloud (Point Cloud Output) |
Image Segmentation Pipeline | ArgusCameraMono (Raw Image) – Rectify – (Rectified Image) – DNNImageEncode (DNN Pre-Processed Tensors) – Triton (DNN Inference) – UNetDecode (Segmentation Image) |
强大的新型 GEMs 辅助机器人感知
除了 NITROS 加速管道外, ISAAC ROS DP 版本还包含两个新的基于 DNN 的 GEM ,旨在帮助机器人专家完成常见的感知任务。
第一个 GEM ESS 是用于立体相机视差预测的 DNN 。 网络 为机器人应用提供基于视觉的连续深度感知。
另一个 GEM , Bi3D ,是用于基于视觉的障碍预测的 DNN 。基于 NVIDIA Research 的开创性工作,对 DNN 进行了改进,以检测自由空间,同时预测障碍物。该网络可预测障碍物是否位于立体摄像头的四个可编程邻近区域之一内。
Bi3D 经过优化,可在 NVIDIA DLA 硬件 上运行。利用 DLA ,可以同时保留 GPU 和 CPU 计算资源。
Bi3D 和 ESS 都经过预训练,可用于使用 synthetic 和真实数据的机器人应用,并用于商业用途。这两款新的 ISAAC ROS Gem 加入了之前发布的经典计算机视觉立体深度视差例程 stereo \ u image \ u proc ,为立体相机深度感知提供三种不同的独立功能。
Isaac ROS 2 GEM | Description |
---|---|
Image Pipeline | Camera Image Processing |
NVBlox | 3D Scene Reconstruction |
Visual SLAM | VSLAM and Stereo Odometry |
AprilTags | Apriltag Detection and Pose Estimation |
Pose Estimation | 3D Object Pose Estimation |
Image Segmentation | Semantic Image Segmentation |
Object Detection | DNN for Object Detection using DetectNet |
DNN Inference | DNN Node for using Triton/TensorRT |
Argus Camera | CSI/GSML Camera Support |
快速入门
有兴趣将 NVIDIA AI 感知集成到其产品中的 ROS 开发人员应该从今天开始 ISAAC ROS .