机器人

使用 NVIDIA Isaac ROS 开发人员预览版 3 构建高性能机器人应用程序

机器人的复杂性正在增加,具有更高的自主性、更多的传感器数量和多样性,以及更多基于传感器融合的算法。硬件加速对于运行这些日益复杂的工作负载至关重要,从而使机器人应用程序能够以更高的速度和能效运行更大的工作负载。

NVIDIA Isaac ROS的使命一直致力于为 ROS 开发人员提供开发高性能、节能机器人应用所需的加速计算包和工具

NVIDIA 还在 ROS2 中开创了加速计算的先河,并在每个版本中不断改进。在过去的两年里,已经添加了 20 多个硬件加速 ROS 包,并支持最新的 ROS 2 分发。

该团队去年与 Open Robotics 合作,包括自适应和类型协商,以提高提供硬件加速器的计算平台上的 ROS 性能。他们还实施了 ISAAC ROS 的适应和类型协商,称为 NITROS (NVIDIA Isaac Transport for ROS).

最新的 NVIDIA ISAAC ROS 开发者预览版 3 ( DP3 )提供了主要的更新和增强功能。继续阅读以了解更多信息。

NVIDIA ISAAC ROS 开发者预览版 3

NVIDIA ISAAC ROS DP3 包括许多新功能,使 ROS 社区能够从硬件加速中受益。亮点包括一个新的地图定位器,用于自动定位机器人,更新的 NvBlox 具有人类检测功能,新的 ROS 2 基准测试工具,用于真实地基准测试 ROS 2 图,以及开源的 NITROS 包

在不到半秒内自动在地图中定位

移动机器人,如仓库或服务中使用的机器人,在开始在空间中导航之前,需要知道它们在地图中的初始姿势。向机器人提供这些初始姿势信息的最常见方法是手动设置。这种方法不仅在整个过程中增加了手动干预,而且可能需要 30 秒以上的时间

使用新的 ISAAC ROS Map Location ROS 软件包,无需手动设置机器人的初始位置和方向。该软件包使用激光雷达测距扫描,在不到半秒的时间内自动估计占用网格图中的姿态。定位器可以与平面激光雷达或 3D 激光雷达一起工作,并可用于初始化移动机器人的导航。

该 ROS 包是 GPU 加速的,并利用 NITROS 创建高效的 ROS 管道,而无需通信开销。它还与 Nav2 集成。有关详细信息,请参阅Isaac ROS Map LocalizationGitHub 上的包。

A GIF showing RVIZ on the left, and Isaac Sim scene top view on the right. Initial global pose of the robot is computed in less than 1 second automatically using the occupancy-grid-localizer package, to start navigation. This removed the need to manually provide the initial pose for Nav2.
图 1 。 NVIDIA ISAAC ROS Map Location 软件包可在不到半秒内自动计算初始全局姿势

从三维重建中删除人员

ISAAC ROS NvBlox 为 3D 重建提供了 GPU 加速包,并使用传感器观测提供了机器人周围环境的成本图。这些对于生成无碰撞路径的路径规划器非常有用

在人与人之间导航的机器人需要首先检测到这些人,然后根据与他们的接近程度进行不同的导航。尽管人们应该是成本图的一部分(以计算无碰撞路径),但他们不应该是 3D 重建的一部分。三维重建应仅包括静态障碍物

作为 ISAAC ROS DP3 发布的一部分,更新后的 ISAAC ROS NvBlox 软件包检测和分割人员,并提供人员成本图,以避免与人员发生碰撞。它还为 3D 重建提供了静态成本图,以避免与静态对象发生碰撞。有关更多详细信息,请参阅Isaac ROS NvBloxGitHub 上的包。

Image showing Isaac ROS NvBlox running with RVIZ output of 3D reconstruction with human detection.
图 2:ISAAC ROS NvBlox 包在 3D 重建过程中运行人体检测和移除

基准 ROS 以正确的方式绘制图表

基于 ROS 的基准图应反映实际工作负载下的性能。对整个 ROS 图(而不是特定的 ROS 节点)进行基准测试很重要,因为它将包括 RCL 中指示真实世界性能的消息传输成本

ISAAC ROS DP3 包括开源 ROS 2 的基准工具。该工具不需要修改节点来测量结果,并将输入标准化rosbag用于独立验证基准结果的数据集。

Diagram showing ROS 2 benchmarking tool architecture, including data loader node, playback, node, and monitor nodes.
图 3 。 ROS 2 基准架构

该基准测试工具使用行业最佳实践,并经过专业强化,可用于实时机器人应用程序中节点图的吞吐量和延迟测量。亮点包括:

  • 可靠的结果:自动性能测量执行数秒 N 次(默认 N = 5 ),丢弃最小和最大结果以减少可变性。基准测试结果在日志文件中报告,以便导入到您选择的可视化工具中。
  • 输入数据集:可从下载NGC根据 CCv4.0 归因许可r2b data set 2023为图形提供一致的输入rosbag。在需要时可以添加额外的输入数据。
  • 输入图像分辨率:有了广泛的计算硬件,图像处理可以根据机器人应用程序以不同的分辨率执行。
  • 输入和输出传输时间: RCL 发布和接收进程间和进程内消息所花费的时间包含在测量结果中。这准确地代表了机器人应用程序中的预期,并避免了夸大的结果,从而消除了消息传递成本。
  • 输入和输出类型自适应:使用标准 ROS 类型或使用type adaptationtype negotiation.
  • 基准参数:用于测试的参数包括数据输入长度、发布速率和输入大小,可以使用配置文件进行自定义。
  • 吞吐量自动查找器:在主题下降< 1% 的情况下,测量图的峰值吞吐量需要自动查找图的峰值流量。贯穿式自动查找器有效地查找峰值吞吐量的输入数据发布速率。
  • 实时延迟:用于实时测量延迟的固定主题发布速率。这显示了以目标固定速率向实时系统提供的内容,而吞吐量显示了机器人应用可能达到的峰值性能。
  • 云原生:作为自动化测试的一部分,可以在 Kubernetes 上进行测量,也可以作为现代软件开发的一部分进行 CI / CD 夜间测试。测量也可以在本地开发者系统上执行。
  • 不透明测试:节点图作为二进制文件进行测试,所有性能测量工具都直接在基准测试中进行测试。这不会修改测试图中的代码,并以一种不引人注目的方式实现性能测量,包括使用相同工具的专有解决方案的开源。
  • 透明度: JSON 中的结果包括用于运行基准测试的参数,包括输入的 MD5rosbag以便对结果进行独立验证。

注册参加网络研讨会,Performance Measurement of Robotics Applications with ros2_benchmark了解更多信息

支持新平台

ISAAC ROS DP3 增加了对NVIDIA JetsonNVIDIA Jetson Orin Nano和 NVIDIA ZVK4]Orin NX。它还支持新发布的NVIDIA Jetson Orin Nano Developer KitISAAC ROS 现在在所有 Jetson Orin 和 Xavier 系列模块和开发套件上都得到支持。

Image showing NVIDIA Jetson AGX Orin Developer Kit, NVIDIA Jetson Orin Nano Developer Kit, NVIDIA Jetson AGX Orin production modules, NVIDIA Jetson Orin NX production modules, and NVIDIA Jetson Orin Nano production modules.
图 4 。 ISAAC ROS DP3 支持 Jetson Orin 系列模块和开发套件

新版本还增加了对最近发布的NVIDIA Ada Lovelace architectureNVIDIA GeForce RTX 40GPU 。

从本次发布开始,大部分 NITROS 加速 ISAAC ROS 包都是开源的。作为一名 ROS 开发人员,您现在可以扩展包,解决您遇到的任何问题,并为 ISAAC ROS 社区做出贡献

总结

NVIDIA ISAAC ROS 开发者预览版 3 是一项重大更新,使 ROS 社区能够从硬件加速中受益,从而更轻松地构建高性能、节能的机器人应用程序。亮点包括新的 ROS 2 基准测试工具,可真实地对 ROS 2 图形进行基准测试,新的地图定位器可自动定位机器人,开源的 NITROS 软件包,以及具有人类检测功能的更新 NvBlox

额外资源

 

Tags