全文 - Isaac ROS 05 - Getting Started

Isaac ROS 文档翻译(第五部分)


页面 22:Isaac ROS Image Segmentation — 图像分割

原文https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_image_segmentation/index.html

概述

Isaac ROS Image Segmentation 包含用于语义图像分割的 ROS 包。这些包提供通过在 DNN 模型上运行 GPU 加速推理来对输入图像进行像素级分类的方法。输入图像的每个像素都被预测为属于一组预定义的类别。输出预测可以被感知功能用于理解每个类别在 2D 图像中的空间位置,或与 3D 场景中对应的深度位置融合。

输入图像可能需要裁剪和调整大小以保持宽高比并匹配 DNN 模型预期的输入分辨率;图像分辨率可能会降低以提高 DNN 推理性能,这通常与图像中的像素数量直接成比例。

图像分割比目标检测提供更多信息并使用更多计算,以产生每个像素的分类,而目标检测仅对图像坐标中更简单的边界框矩形进行分类。目标检测用于了解对象是否存在以及其在 2D 图像中的空间位置。另一方面,图像分割用于了解哪些像素属于该类别。一个应用是使用分割结果,并将其与相应的深度信息融合,以了解对象在 3D 场景中的位置。

快速入门

  • Isaac ROS U-NET
  • Isaac ROS Segformer
  • Isaac ROS Segment Anything
  • Isaac ROS Segment Anything2

Isaac ROS NITROS 加速

此包由 NVIDIA Isaac Transport for ROS (NITROS) 提供支持,NITROS 利用类型适配和协商来优化消息格式,并显著加速参与节点之间的通信。

DNN 模型

每个图像分割包都依赖预训练的 DNN 模型。您可以训练自己的模型,或从众多在线模型库之一下载预训练模型,或从 NGC 下载,NGC 提供预训练模型供您的机器人应用使用。

NGC 预训练模型可以使用 TAO 为您的应用进行微调。有关如何使用 NVIDIA 在 NGC 上托管的各种模型的更多信息,请参阅此处。

U-NET

需要使用 U-NET 模型来运行 isaac_ros_unet。PeopleSemSegNet 提供用于最佳实时人员分割的预训练模型。此包已针对以下模型进行验证。

Segformer

需要使用 Segformer 模型来运行 isaac_ros_segformer。PeopleSemSegFormer 提供用于更有效的实时人员分割的预训练模型。此包已针对以下模型进行验证。

Segment Anything

需要使用 Segment Anything (SAM) 模型来运行 isaac_ros_segment_anything。此模型需要一个额外的提示值来指示应分割图像中的哪个对象。此包已针对以下版本的 SAM 进行验证:

模型名称描述
SAM完整精度模型,可消耗超过 8GB GPU 显存并需要更多计算能力
Mobile SAMSAM 的更精简变体,针对更小的内存和计算占用进行了优化
Segment Anything2

需要使用 Segment Anything2 (SAM2) 模型来运行 isaac_ros_segment_anything2。此模型需要一个额外的提示值来指示应分割和跟踪视频流中的哪个对象。此包已针对以下版本的 SAM2 进行验证:

模型名称描述
SAM2分割和跟踪视频流中的任何对象

  • isaac_ros_segformer
    • 快速入门
    • 尝试更多示例
    • 故障排除
    • API
  • isaac_ros_segment_anything
    • 快速入门
    • 尝试更多示例
    • 故障排除
    • API
  • isaac_ros_segment_anything2
    • 快速入门
    • 故障排除
    • API
  • isaac_ros_segment_anything2_interfaces
  • isaac_ros_unet
    • 快速入门
    • 尝试更多示例
    • 故障排除
    • API

支持的平台

此包设计并测试为与在以下平台上运行的 ROS 2 Jazzy 兼容:

  • Jetson
  • 配备 NVIDIA GPU 的 x86_64 系统
  • DGX Spark 工作站

其他基于 GB10 的平台可能可以运行,但不在测试矩阵中,我们无法保证其行为。

Isaac ROS 环境

为简化开发,我们强烈建议利用 Isaac ROS CLI,按照以下步骤操作。这可以简化所有支持平台上依赖项正确版本的开发环境设置。

注意:所有 Isaac ROS 快速入门、教程和示例都设计为以 Isaac ROS CLI 管理的环境为前提。

自定义开发环境

要自定义开发环境,请参阅本指南。

更新日志

日期变更
2026-04-30Isaac ROS 4.4.0 版本的兼容性和集成更新
2026-03-23引入 SIPL 相机框架和 LI Eagle 立体 CoE/HSB 相机的早期支持
2026-02-19支持 DGX Spark 和 JetPack 7.1
2026-02-02支持两种新的 Docker 可选开发和部署模式
2025-10-24添加 Segment Anything2 包
2024-12-10兼容 JetPack 6.1
2024-09-26ZED 兼容性更新
2024-05-30添加 SegFormer 和 Segment Anything 包
2023-10-18Isaac ROS 2.0.0 更新
2023-05-25性能改进
2023-04-05源码可用的 GXF 扩展
2022-10-19更新开源许可
2022-08-31兼容 JetPack 5.0.2
2022-06-30移除 frame_id、queue_size 和 tensor_output_order 参数。添加 network_output_type 参数(支持 sigmoid 和 argmax 输出层)。切换到 NITROS 实现。移除对奇数尺寸图像的支持。将教程切换到使用 PeopleSemSegNet ShuffleSeg 并将不必要的细节移至其他 README。
2021-11-15Isaac Sim HIL 文档更新
2021-10-20初始版本

页面 23:Isaac ROS Pose Estimation — 姿态估计

原文https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_pose_estimation/index.html

概述

Isaac ROS Pose Estimation 包含三个用于预测对象姿态的 ROS 2 包。请参阅下表了解它们之间的差异:

节点无需重新训练的新对象TAO 支持速度质量成熟度
isaac_ros_foundationpose不适用最佳
isaac_ros_dope最快良好久经考验
isaac_ros_centerpose更快更好已建立

这些包使用 GPU 加速进行 DNN 推理以估计对象的姿态。输出预测可以被感知功能在与相应深度融合时使用,以提供对象的 3D 姿态和距离,用于导航或操作。

isaac_ros_foundationpose 用于节点图中,使用 3D 边界立方体尺寸估计新对象的姿态。它基于 FoundationPose 模型构建,这是 NVLabs 开发的预训练深度学习模型。FoundationPose 能够在无需微调的情况下对未见对象进行姿态估计和跟踪,其精度优于现有最先进的方法。

FoundationPose 包含两个不同的模型:优化模型和评分模型。优化模型处理初始姿态假设,迭代优化它们,然后将这些优化后的假设传递给评分模型,评分模型选择并最终确定姿态估计。此外,优化模型可以用于跟踪,基于新的图像输入和前一帧的姿态估计更新姿态估计。此跟踪过程比姿态估计更高效,在 Jetson Thor 平台上的速度超过 120 FPS。

isaac_ros_dope 用于节点图中,使用 3D 边界立方体尺寸估计已知对象的姿态。要产生估计,需要 DOPE(Deep Object Pose Estimation)预训练模型。输入图像可能需要裁剪和调整大小以保持宽高比并匹配 DOPE 的输入分辨率。DNN 推理产生估计后,DNN 解码器将使用指定的对象类型以及模型推理产生的置信度图来输出对象姿态。

NVLabs 提供了使用 HOPE 数据集的 DOPE 预训练模型。HOPE 代表「用于姿态估计的家庭物品」(Household Objects for Pose Estimation)。HOPE 是一个面向研究的数据集,使用玩具杂货物品和物品的 3D 纹理网格进行合成数据训练。要将 DOPE 用于与您的应用相关的其他对象,需要使用针对这些对象的数据集重新训练模型。例如,DOPE 已被训练用于检测移动机器人导航、提升和移动的那种台车。要训练您自己的 DOPE 模型,请参阅「训练您自己的 DOPE 模型」教程。

isaac_ros_centerposeisaac_ros_dope 有相似之处,两者都估计对象姿态;然而,isaac_ros_centerpose 提供了额外的功能。CenterPose DNN 对图像执行目标检测,为对象生成 2D 关键点,估计 6-DoF 姿态(精确到尺度),并回归相对 3D 边界立方体尺寸。这针对已知对象类别执行,而无需知道具体实例——例如,CenterPose 模型可以检测椅子,而无需在该特定椅子的图像上进行训练。

姿态估计是一项计算密集型任务,因此不会以输入相机的帧率执行。为了有效利用资源,对单帧估计对象姿态并用作导航的输入。以低于典型相机输入速率的频率计算额外的对象姿态估计,以进一步细化正在进行的导航。

此仓库中的包依赖加速的 DNN 模型推理,使用来自 Isaac ROS DNN Inference 的 Triton 或 TensorRT。对于预处理,此仓库中的包依赖「Isaac ROS DNN Image Encoder」,也可在 Isaac ROS DNN Inference 中找到。

快速入门

  • Isaac ROS CenterPose
  • Isaac ROS DOPE
  • Isaac ROS FoundationPose

  • isaac_ros_centerpose
    • 快速入门
    • 故障排除
    • API
  • isaac_ros_dope
    • 快速入门
    • 尝试更多示例
    • 使用不同的模型
    • 故障排除
    • API
  • isaac_ros_foundationpose
    • 快速入门
    • 尝试更多示例
    • API

支持的平台

此包设计并测试为与在以下平台上运行的 ROS 2 Jazzy 兼容:

  • Jetson
  • 配备 NVIDIA GPU 的 x86_64 系统
  • DGX Spark 工作站

其他基于 GB10 的平台可能可以运行,但不在测试矩阵中,我们无法保证其行为。

Isaac ROS 环境

为简化开发,我们强烈建议利用 Isaac ROS CLI,按照以下步骤操作。这可以简化所有支持平台上依赖项正确版本的开发环境设置。

注意:所有 Isaac ROS 快速入门、教程和示例都设计为以 Isaac ROS CLI 管理的环境为前提。

自定义开发环境

要自定义开发环境,请参阅本指南。

更新日志

日期变更
2026-04-30Isaac ROS 4.4.0 版本的兼容性和集成更新
2026-03-23引入 SIPL 相机框架和 LI Eagle 立体 CoE/HSB 相机的早期支持
2026-02-19支持 DGX Spark 和 JetPack 7.1
2026-02-02支持两种新的 Docker 可选开发和部署模式
2025-10-24添加针对实时性能优化的同步节点,以及针对 TensorRT 10.13 的 FoundationPose 模型小幅更新
2024-12-10添加姿态估计后处理工具
2024-09-26ZED 兼容性更新
2024-05-30添加 FoundationPose 姿态估计包
2023-10-18添加 NITROS CenterPose 解码器
2023-05-25性能改进
2023-04-05源码可用的 GXF 扩展
2022-06-30更新以使用 NITROS 提高性能并兼容 JetPack 5.0.2
2022-06-30重构 README,更新启动文件并添加 nvidia 命名空间,移除 CenterPose 的 Jetson 支持
2021-10-20初始更新

页面 24:Isaac ROS Compression — H.264 图像压缩

原文https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_compression/index.html

概述

Isaac ROS Compression 提供 H.264 图像编码器和解码器,利用 NVIDIA GPU 和 Jetson 平台中的专用硬件。isaac_ros_h264_encoder 包可以使用 NVENC 将图像压缩为 H.264 数据。isaac_ros_h264_decoder 包可以使用 NVDEC 将 H.264 数据解码为原始图像。

图像压缩在写入存储或在计算机之间传输时减少图像的数据占用。1080p 相机以 30fps 产生 177MB/s 的数据;图像压缩将其减少约 10 倍至 17MB/s 的数据,减少将此数据发送到另一台计算机或写入存储所需的吞吐量;一分钟的 1080p 相机录制从约 10GB 减少到约 1GB。这种压缩由专用的 NVIDIA 加速(NvEnc)提供,与其他硬件引擎(如 GPU)分离。

在机器人开发过程中,图像压缩的一个常见用例是将相机图像捕获到存储。这些捕获的数据在机器人之外离线处理,以生成 AI 模型的训练数据集、感知功能的测试数据集,以及使用真实数据对开发中的软件进行开环重新模拟的测试数据。压缩参数经过调整,以最小化有损压缩对视觉质量的降低,用于 AI 模型和感知功能开发。压缩减少了写入存储的数据量、卸载录制所需的时间以及数据湖中的静态数据占用。

压缩可以与事件数据记录器一起使用,在发生感兴趣的事件(通常由于机器人故障)时将相机图像捕获到存储。这提供了视觉信息以协助调试事件或改进感知和机器人功能。

H.264 是一种高效且流行的压缩算法,在许多平台上得到广泛支持。isaac_ros_h264_encoder 包的输出可以使用 isaac_ros_h264_decoder 在 Jetson 和 x86_64 系统上使用 NVIDIA 加速进行解码,或使用非 NVIDIA 平台上的第三方 H.264 解码器包进行解码。

此包由 NVIDIA Isaac Transport for ROS (NITROS) 提供支持,NITROS 利用类型适配和协商来优化消息格式,并显著加速参与节点之间的通信。

快速入门

  • Isaac ROS H.264 Encoder
  • Isaac ROS H.264 Decoder

H.264 与 JPEG image_transport_plugins 的比较

ROS image_transport_plugins 使用 JPEG 标准在 CPU 上进行图像压缩,其中每帧在 2D 图像内空间压缩。isaac_ros_h264_encoder 使用 H.264 标准进行视频压缩,通过使用更高级的空间和时间压缩,使其比 JPEG 更高效。isaac_ros_h264_encoder 使用 GPU 获得更高性能,同时将计算工作从 CPU 卸载。

H.264 视频压缩的单个图像(或 I 帧)比同等质量的 JPEG 图像更小;H.264 使用改进的压缩函数处理平滑区域,并在图像的高频区域产生更少的伪影。H.264 通过使用 P 帧(预测帧)从先前的 I 或 P 帧对图像序列添加时间压缩。P 帧受益于相机流中帧与帧之间的图像相似性。P 帧约为 I 帧大小的 25%。图像序列被压缩为一个 I 帧后跟一个或多个 P 帧。P 帧需要更少的计算,提高了压缩的帧率。

因此,isaac_ros_h264_encoder 可以以与 JPEG image_transport_plugins 相同的质量将数据压缩到更小的大小,以更高的帧率(吞吐量)进行压缩,同时将 CPU 从此压缩计算中卸载。

  • isaac_ros_h264_decoder
    • 快速入门
    • 故障排除
    • API
  • isaac_ros_h264_encoder
    • 快速入门
    • API

支持的平台

节点Jetson aarch64GPU x86_64
isaac_ros_h264_encoder
isaac_ros_h264_decoder

此包设计并测试为与在以下平台上运行的 ROS 2 Jazzy 兼容:

  • Jetson
  • 配备 NVIDIA GPU 的 x86_64 系统
  • DGX Spark 工作站

其他基于 GB10 的平台可能可以运行,但不在测试矩阵中,我们无法保证其行为。

更新日志

日期变更
2026-08-18Isaac ROS 4.6.0 版本的兼容性和集成更新
2026-07-06Isaac ROS 4.5.0 版本的兼容性和集成更新
2026-04-30Isaac ROS 4.4.0 版本的兼容性和集成更新
2026-03-23引入 SIPL 相机框架和 LI Eagle 立体 CoE/HSB 相机的早期支持
2026-02-19支持 DGX Spark 和 JetPack 7.1
2026-02-02支持两种新的 Docker 可选开发和部署模式
2025-10-24支持 ROS 2 Jazzy
2024-12-10兼容 JetPack 6.1
2024-09-26Isaac ROS 3.1 更新
2024-05-30兼容 JetPack 6.0
2023-10-18Isaac ROS 2.0.0 更新
2023-05-25性能改进
2023-04-05源码可用的 GXF 扩展
2022-10-19更新开源许可
2022-08-31兼容 JetPack 5.0.2
2022-06-30添加 H.264 P 帧编码以获得更高性能和更小的 rosbag
2022-06-30在 Jetson (aarch64) 上添加 H.264 解压支持

页面 25:Isaac ROS cuMotion — CUDA 加速机器人运动规划

原文https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_cumotion/index.html

概述

Isaac ROS cuMotion 为 ROS 2 中的机器人提供 CUDA 加速的操作能力。它将 cuMotion 集成到 MoveIt 2 中以生成平滑、无碰撞的轨迹,还通过 ROS 2 动作/服务公开 cuMotion 逆运动学和轨迹生成能力。支持从深度流中分割和过滤机器人自身。

使用 Isaac ROS cuMotion 的主要优势包括:

  • 改进的循环时间:cuMotion 在存在障碍物的情况下产生平滑、最优时间的轨迹,与先前最先进的规划器相比,通常减少运动时间。在杂乱环境和其他具有挑战性的场景中,cuMotion 通常可以在其他规划器可能完全失败的情况下产生有效的轨迹。

  • 改进的规划时间:cuMotion 利用 CUDA 加速在不到一秒的时间内产生无碰撞、最优时间的轨迹。

  • 避免深度相机捕获的障碍物:cuMotion 可选地利用 nvblox 从一个或多个深度图像流执行环境的 3D 重建。环境被表示为符号距离场 (SDF) 以进行高效的障碍物感知规划。支持从深度流中分割和过滤机器人自身。

  • 灵活性:模块化设计简化了与现有 ROS 2 工作流的集成,特别是那些已经使用 MoveIt 2 的工作流。

警告:在使用或开发 cuMotion 或其他 Isaac for Manipulation 软件之前,请熟悉机器人制造商提供的相关安全信息。

此外,我们提供以下最佳实践:

  1. 熟悉紧急停止按钮的位置,并在必要时准备使用。
  2. 操作前,确保工作区域没有任何人员或其他潜在危险。
  3. 操作前,提醒工作区域附近的所有人员机器人操作即将开始。
  4. 操作前和操作期间,注意任何进入工作区域附近的人员,并准备发出必要的警告、指示或采取其他必要行动。
  5. 在测试或部署新功能或代码时格外小心。

提供了三种运行模式的示例:

运动生成

cuMotion 规划器节点提供的运动生成能力通过 MoveIt 2 的插件公开。请参阅相应的快速入门以开始使用。

机器人分割

快速入门
设置开发环境
  1. 按照入门指南中的说明设置您的开发环境。
  2. ${ISAAC_ROS_WS}/src 下克隆 isaac_ros_common
  3. (可选)按照传感器特定指南安装您想使用的任何传感器的依赖项。

警告:我们强烈建议在开始任何快速入门之前安装所有传感器依赖项。某些传感器依赖项需要在安装期间重新启动 Isaac ROS Dev 容器,这会中断快速入门过程。

下载机器人分割快速入门资源
  1. 从 NGC 上的 r2b 2024 数据集下载 r2b_robotarm 数据集。
  2. 将数据集放置在 ${ISAAC_ROS_WS}/isaac_ros_assets/r2b_2024/r2b_robotarm
构建 isaac_ros_cumotion
  1. 使用 run_dev.sh 脚本启动 Docker 容器。
  2. 安装预构建的 Debian 包:
sudo apt-get install -y ros-humble-isaac-ros-cumotion

支持的平台

此包设计并测试为与在以下平台上运行的 ROS 2 Jazzy 兼容:

  • Jetson
  • 配备 NVIDIA GPU 的 x86_64 系统
  • DGX Spark 工作站

其他基于 GB10 的平台可能可以运行,但不在测试矩阵中,我们无法保证其行为。

更新日志

日期变更
2026-08-18Isaac ROS 4.6.0 版本的兼容性和集成更新
2026-07-06Isaac ROS 4.5.0 版本的兼容性和集成更新
2026-04-30Isaac ROS 4.4.0 版本的兼容性和集成更新
2026-03-23引入 SIPL 相机框架和 LI Eagle 立体 CoE/HSB 相机的早期支持
2026-02-19支持 DGX Spark 和 JetPack 7.1
2026-02-02支持两种新的 Docker 可选开发和部署模式
2025-10-24支持 ROS 2 Jazzy
2024-12-10兼容 JetPack 6.1
2024-09-26Isaac ROS 3.1 更新
2024-05-30兼容 JetPack 6.0
2023-10-18Isaac ROS 2.0.0 更新

页面 26:Isaac ROS Map Localization — 地图定位

原文https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_mapping_and_localization/index.html

概述

Isaac ROS Map Localization 模块包含用于激光雷达处理以估计相对于地图的姿态的 ROS 2 包。Occupancy Grid Localizer 处理平面范围扫描以在占用栅格地图中估计姿态;对于大多数地图,这发生在不到 1 秒的时间内。此初始姿态可用于引导移动机器人的导航,并已集成和测试与 Nav2 配合使用。这可以消除使用 RViz 手动估计机器人位置和方向所需的 30 秒或更长时间。

Occupancy Grid Localizer 设计用于与平面和 3D 激光雷达配合使用。它使用 Flatscan 作为输入进行 GPU 加速计算以估计姿态。Flatscan 允许表示 3D 激光雷达,其多个光束之间具有可变的角度增量。

LaserScan to Flatscan 提供从 LaserScan(根据定义,光束之间具有相等的角度增量)到 Flatscan 的转换。

PointCloud to FlatScan 提供从 3D 激光雷达的点云输出到 Flatscan 的转换。

注意:定位可以在导航期间执行多次。

注意:输入 FlatScan 消息头/frame_id 用于获取激光雷达相对于机器人 base_link 坐标系的变换。

注意:输出 localization_resultbase_link 相对于 loc_result_frame(地图)ROS 参数中指定的坐标系的变换。

注意:定位可以通过以下两种方式之一触发:

  1. 缓冲在主题上接收到的 FlatScan 消息,并使用 std_srvs/Empty 服务调用触发定位。
  2. 每次将 FlatScan 消息发送到主题时触发定位。

有关更多详细信息,请参阅 Isaac ROS Occupancy Grid Localizer/Usage 部分。

快速入门

  • Isaac ROS Occupancy Grid Localizer

Isaac ROS NITROS 加速

此包由 NVIDIA Isaac Transport for ROS (NITROS) 提供支持,NITROS 利用类型适配和协商来优化消息格式,并显著加速参与节点之间的通信。

  • isaac_ros_occupancy_grid_localizer
    • 快速入门
    • 尝试更多示例
    • 故障排除
    • API
  • isaac_ros_pointcloud_utils
    • 概述
    • API

支持的平台

此包设计并测试为与在以下平台上运行的 ROS 2 Jazzy 兼容:

  • Jetson
  • 配备 NVIDIA GPU 的 x86_64 系统
  • DGX Spark 工作站

其他基于 GB10 的平台可能可以运行,但不在测试矩阵中,我们无法保证其行为。

Isaac ROS 环境

为简化开发,我们强烈建议利用 Isaac ROS CLI,按照以下步骤操作。这可以简化所有支持平台上依赖项正确版本的开发环境设置。

注意:所有 Isaac ROS 快速入门、教程和示例都设计为以 Isaac ROS CLI 管理的环境为前提。

自定义开发环境

要自定义开发环境,请参阅本指南。

更新日志

日期变更
2026-04-30Isaac ROS 4.4.0 版本的兼容性和集成更新
2026-03-23引入 SIPL 相机框架和 LI Eagle 立体 CoE/HSB 相机的早期支持
2026-02-19支持 DGX Spark 和 JetPack 7.1
2026-02-02支持两种新的 Docker 可选开发和部署模式
2025-10-24支持 ROS 2 Jazzy
2024-12-10兼容 JetPack 6.1
2024-09-26Isaac ROS 3.1 更新
2024-05-30兼容 JetPack 6.0
2023-10-18Isaac ROS 2.0.0 更新
2023-05-25性能改进
2023-04-05源码可用的 GXF 扩展
2022-10-19更新开源许可
2022-08-31兼容 JetPack 5.0.2
2022-06-30支持 ROS 2 Humble 和杂项错误修复

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值