news 2026/8/26 18:31:06

全文 - Isaac ROS 06 - Getting Started

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
全文 - Isaac ROS 06 - Getting Started

页面 27:Isaac ROS Freespace Segmentation — 自由空间分割

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

概述

Isaac ROS Freespace Segmentation 包含一个用于生成导航占用栅格的 ROS 2 包。通过处理自由空间分割掩码以及机器人相对于地面的位姿,Bi3D Freespace 生成用于 Nav2 的占用栅格,在导航期间用于避障。该包通过 GPU 加速,在机器人应用中提供实时、低延迟的结果。Bi3D Freespace 为移动机器人(地面)提供了一个额外的占用栅格来源。

isaac_ros_bi3d用于节点图中,从时间同步的输入左右立体图像对提供一个自由空间分割掩码作为输出。isaac_ros_bi3d_freespace使用该自由空间掩码以及相机相对于地面的 TF 位姿,将平面自由空间计算为占用栅格输入到 Nav2。

有多种方法可以预测作为导航输入的占用栅格。这些方法都不是完美的;每种方法在提供测量观测的传感器的估计精度方面都有局限性。每个传感器都有独特的视野、提供其测量世界视图的范围,以及相应的未测量区域。Bi3D Freespace 提供了一种多样化的方法,从自由空间识别障碍物。用于此功能的立体相机输入相对于激光雷达是多样化的,并且具有比大多数激光雷达单元更好的垂直视野,能够感知激光雷达可能遗漏的低矮障碍物。Bi3D Freespace 提供了对激光雷达占用扫描的稳健、基于视觉的补充。

快速入门

  • Isaac ROS Bi3D Freespace

Isaac ROS NITROS 加速

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

  • isaac_ros_bi3d_freespace
    • Quickstart(快速入门)
    • 尝试更多示例
    • API

支持的平台

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

平台硬件软件备注
JetsonJetson OrinJetPack 6.1 和 6.2为获得最佳性能,请确保正确配置电源设置。
Jetson Orin Nano 4GB 可能没有足够内存运行许多 Isaac ROS 包,不推荐使用。
x86_64Ampere或更高 NVIDIA GPU 架构,8 GB 显存或更高Ubuntu 22.04+CUDA 12.6+

注意:不支持 Humble 以外的 ROS 2 版本。此包依赖自 Humble 版本开始引入的特定 ROS 2 实现特性。

Docker

为简化开发,我们强烈建议按照以下步骤利用 Isaac ROS Dev Docker 镜像。这将简化 Jetson 和 x86_64 平台上依赖项正确版本的开发环境设置。

注意:所有 Isaac ROS 快速入门、教程和示例都设计为以 Isaac ROS Docker 镜像为前提。

自定义开发环境

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

更新日志

日期变更
2024-12-10兼容 JetPack 6.1
2024-09-26ZED 兼容性更新
2024-05-30兼容 JetPack 6.0
2023-10-18Isaac ROS 2.0.0 更新
2023-05-25性能改进
2023-04-05初始版本

页面 28:Isaac ROS Mission Client — 任务客户端

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

网络研讨会

通过观看我们的点播网络研讨会了解更多关于任务的信息:使用 NVIDIA Isaac Dispatch 和 Client 构建互联机器人。

概述

Isaac ROS Mission Client 提供了 Mission Client 的 ROS 2 包,用于与机器人车队管理服务通信。Mission Client 从车队管理服务接收任务和动作,并更新其进度、状态和错误。Mission Client 使用 Nav2 执行导航动作,并可以与其他 ROS 动作集成。

与 Mission Client 的通信基于 VDA5050 协议,并使用 MQTT 基础作为行业标准,这是一种用于通过互联网连接设备的高效、可扩展协议。

Mission Client 随附匹配的 Mission Dispatch,可在此处获取,或者可以使用 VDA5050 over MQTT 与其他车队管理系统集成。

  • isaac_ros_mission_client
    • 概述
    • 快速入门
    • API
  • isaac_ros_scene_recorder
    • 使用说明

快速入门

Isaac Sim 的快速入门可在此处查看。

支持的平台

此包设计并测试为与在 Jetson 或 x86_64 系统上运行的 ROS 2 Humble 兼容。Mission Client 不需要 GPU。

更新日志

日期变更
2024-12-10添加动作以支持物体拾取和放置
2024-09-26Isaac ROS 3.1 更新
2024-05-30兼容 JetPack 6.0
2023-10-18错误修复、任务取消、初始位姿
2023-04-05兼容 JetPack 5.1.1
2022-10-19初始版本

页面 29:Stereo Depth — 立体深度(概念)

原文https://nvidia-isaac-ros.github.io/concepts/stereo_depth/index.html

概述

与人眼类似,立体视觉通过测量同一视觉显著特征在两个图像之间的像素位移(即视差)来工作。通过测量的视差和已知的基线长度(两个图像传感器之间的距离),可以估计到该视觉显著特征的距离(或深度)。

立体相机有两个刚性连接在一起的单目图像传感器,大致朝向同一方向。它们由某个已知的基线距离分隔,通常在厘米量级。图像对必须通过使用预先校准的立体校正参数投影到同一极线平面上进行校正。一个图像与另一个图像中相同特征之间的像素视差可以直接使用图像传感器的基线和焦距关联到深度。

并非总能确定每个像素的视差,因为这取决于匹配过程。例如,如果立体相机面对一面无特征的纯色墙,则没有视觉显著的特征或角点(对比度的急剧变化)可以在图像之间匹配。为了解决这个问题,一些立体相机将红外光图案投射到场景中,两个图像传感器始终可以看到,但人眼看不到。

通过测量场景中所有匹配特征对在两幅图像之间的视差,可以生成视差图像,其中每个像素代表视差,或者在无法计算视差时为NaN。使用基线和焦距,该视差图像随后可用于生成更熟悉的深度图像,其中每个像素代表以米为单位的深度,或生成点云。

立体深度方法

  • FoundationStereo:一种预训练的基于 Transformer 的基础模型,利用大规模训练和深度特定先验,在多样化环境中实现高质量的深度估计。
  • Fast-FoundationStereo:FoundationStereo 的速度优化变体,通过知识蒸馏、神经架构搜索和结构化剪枝实现实时零样本立体匹配。它使用与 FoundationStereo 相同的 Isaac ROS 管道(isaac_ros_foundationstereo),可直接替换。
  • ESS(高效半监督):基于深度学习的预训练模型,可以更智能地处理从上下文推断的平滑梯度和边缘。
  • SGM(半全局匹配):一种用于计算立体视差的普遍分析算法。SGM 难以处理平滑或规则表面,并可能遭受过度噪声。

页面 30:Isaac ROS ESS — 高效半监督立体视差估计

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

概述

ESS 代表 Efficient Semi-Supervised stereo disparity(高效半监督立体视差),由 NVIDIA 开发。ESS DNN 用于从立体相机图像对预测每个像素的视差。

该网络相比使用极线几何计算视差的经典 CV 方法有所改进,因为 DNN 可以学习在极线几何特征匹配失败的情况下预测视差。半监督学习和立体视差匹配使 ESS DNN 在训练数据集未见过环境以及有遮挡物体的情况下具有鲁棒性。该 DNN 针对彩色(RGB)全局快门立体相机图像进行了优化和评估,对于用于分析计算机视觉方法中的立体视差的单色立体图像,精度可能会有所不同。

它是一个相对轻量的模型,以接近实时的速度运行。

如图所示,ESS 节点用于节点图中,从输入的左右立体图像对提供视差预测。校正和调整大小节点将左右帧预处理到适当的分辨率。保持图像的宽高比以避免降低深度输出质量。DNN 编码、DNN 推理和 DNN 解码的图包含在 ESS 节点中。推理使用 TensorRT 执行,因为 ESS DNN 模型设计有 TensorRT 支持的优化。

预测的视差值代表场景中一个点在立体图像对中从一个图像移动到另一个图像的距离(即双目图像对)。视差与深度成反比,即disparity = focalLength × baseline / depth。给定生成立体图像对的相机的焦距和基线,isaac_ros_ess包预测的视差图可用于计算深度并生成点云。

快速入门

下载快速入门资源
  1. 从 NGC 下载快速入门数据:

确保安装了所需的库。

sudoapt-getinstall-ycurljqtar

然后,运行以下命令从 NGC 下载资源:

NGC_ORG="nvidia"NGC_TEAM="isaac"PACKAGE_NAME="isaac_ros_ess"NGC_RESOURCE="isaac_ros_ess_assets"NGC_FILENAME="quickstart.tar.gz"MAJOR_VERSION=4MINOR_VERSION=5VERSION_REQ_URL="https://api.ngc.nvidia.com/v2/resources/$NGC_ORG/$NGC_TEAM/$NGC_RESOURCE/versions"AVAILABLE_VERSIONS=$(curl-s\-H"Accept: application/json""$VERSION_REQ_URL")LATEST_VERSION_ID=$(echo$AVAILABLE_VERSIONS|jq-r" .recipeVersions[]|.versionId as\$v|\$v|select(test(\"^\\\\d+\\\\.\\\\d+\\\\.\\\\d+$\"))|split(\".\")|{major: .[0]|tonumber, minor: .[1]|tonumber, patch: .[2]|tonumber}|select(.major==$MAJOR_VERSIONand .minor<=$MINOR_VERSION)|\$v" | sort -V | tail -n 1 ) if [ -z "$LATEST_VERSION_ID" ]; then echo "No corresponding version foundforIsaac ROS$MAJOR_VERSION.$MINOR_VERSION" echo "Found versions:" echo$AVAILABLE_VERSIONS| jq -r '.recipeVersions[].versionId' else mkdir -p${ISAAC_ROS_WS}/isaac_ros_assets && \ FILE_REQ_URL="https://api.ngc.nvidia.com/v2/resources/$NGC_ORG/$NGC_TEAM/$NGC_RESOURCE/\versions/$LATEST_VERSION_ID/files/$NGC_FILENAME" && \ curl -LO --request GET "${FILE_REQ_URL}"&&\tar-xf${NGC_FILENAME}-C${ISAAC_ROS_WS}/isaac_ros_assets&&\rm${NGC_FILENAME}fi
构建isaac_ros_ess
  1. 激活 Isaac ROS 环境:
isaac-ros activate
  1. 安装预构建的 Debian 包:
sudoapt-getupdatesudoapt-getinstall-yros-jazzy-isaac-ros-ess&&\sudoapt-getinstall-yros-jazzy-isaac-ros-ess-models-install
  1. 下载并安装预训练的 ESS 模型文件:
ros2 run isaac_ros_ess_models_install install_ess_models.sh--eula

注意:x86_64 限制:ESS 插件仅在 sm80 及以上的 GPU 上运行。这限制了 x86_64 上的 GPU 设备为 compute_80 及以上的设备。有关 CUDA 计算能力详细信息,请参阅 cuda-gpus。

运行启动文件
  1. 在 Isaac ROS 环境内,安装以下依赖:
sudoapt-getupdatesudoapt-getinstall-yros-jazzy-isaac-ros-examples
  1. 运行以下启动文件以使用快速入门 rosbag 启动演示:

以 0.0 阈值运行 ESS(完全密集输出):

ros2 launch isaac_ros_examples isaac_ros_examples.launch.py launch_fragments:=ess_disparity\engine_file_path:=${ISAAC_ROS_WS:?}/isaac_ros_assets/models/dnn_stereo_disparity/dnn_stereo_disparity_v4.1.0_onnx_trt10.13/ess.engine\ess_plugin_file_path:=${ISAAC_ROS_WS:?}/isaac_ros_assets/models/dnn_stereo_disparity/dnn_stereo_disparity_v4.1.0_onnx_trt10.13/plugins/$(uname-m)/ess_plugins.so\threshold:=0.0
  1. 打开第二个终端并附加到容器:
isaac-ros activate
  1. 第二个终端中,播放快速入门资源中下载的 ESS 示例 rosbag:
ros2 bag play-l${ISAAC_ROS_WS}/isaac_ros_assets/isaac_ros_ess/rosbags/ess_rosbag\--remap/left/camera_info:=/left/camera_info_rect /right/camera_info:=/right/camera_info_rect

页面 31:Tutorial for NITROS Bridge with Isaac Sim — NITROS Bridge 教程

原文https://nvidia-isaac-ros.github.io/concepts/nitros_bridge/tutorial_isaac_sim.html

概述

本教程将指导您如何使用isaac_ros_nitros_bridge在 GPU 上移动图像,同时避免从 Isaac Sim 进行 CPU 内存拷贝。

教程步骤

  1. 在新工作空间下克隆isaac_ros_common仓库:
mkdir-p~/isaac_sim_workspaces&&\cd~/isaac_sim_workspaces&&\gitclone-brelease-4.6 https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_common.git isaac_ros_common
  1. 按照 Isaac ROS Isaac Sim 设置指南中的步骤,在 Isaac Sim 工作空间下安装并启动 Isaac Sim。

  2. Play开始从 Isaac Sim 发布数据。

  3. 按照isaac_ros_nitros_bridge_ros2快速入门中的「设置开发环境」部分第 3-4 步和「从源码构建」部分完成操作。

  4. 在容器内,更改ptrace范围以能够运行 NITROS Bridge:

echo0|sudotee/proc/sys/kernel/yama/ptrace_scope
  1. 在容器内,编辑isaac_ros_nitros_bridge_image_converter.launch.pyROS 2 启动文件,将ros2_input_bridge_image重新映射到 Isaac Sim 的 NITROS Bridge 主题名称(例如:/front_stereo_camera/left/image_rect_color/nitros_bridge)。然后,运行以下命令启动 NITROS Bridge:
cd/workspaces/isaac_ros-dev&&\sourceinstall/setup.bash&&\ros2 launch isaac_ros_nitros_bridge_ros2 isaac_ros_nitros_bridge_image_converter.launch.py pub_image_name:=nitros_pub sub_image_name:=nitros_sub
  1. 转换后的 NITROS 图像将在nitros_pub主题下可用。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/26 18:28:36

串口收发数据包

1.HEX数据包2.数据包作用&#xff1a;把一个个单独的数据给打包起来&#xff0c;方便进行多字节数据通信3.数据和包头包尾重复解决方法1.限制载荷数据范围&#xff0c;在发送时对数据进行限幅2.无法避免重复&#xff0c;尽量使用固定长度数据包3.增加包头包尾数量&#xff0c;并…

作者头像 李华
网站建设 2026/8/26 18:26:01

2026 年 AI Agent 框架横评:10 大框架优缺点对比 + 选型指南

本文由 GO FUNNY 出品。专注 AI Agent 协作方法论与开源工具深度解读。你想搭一个 AI agent&#xff0c;打开 GitHub 搜「agent framework」&#xff0c;按 star 排序&#xff0c;点进第一名&#xff0c;照着 quickstart 敲完&#xff0c;跑通了一个 demo——觉得这事稳了。然后…

作者头像 李华
网站建设 2026/8/26 18:15:03

电机模块注意事项

一、TIM3_PWM_Init1.硬件模块介绍TB6612 电机驱动模块 VM 最高电压最好不超过 10V。高于 10V 时&#xff0c;刚上电会有比较高的脉冲电压&#xff0c;这样容易击穿 16V 的钽电容。因为淘宝很多商家的钽电容的耐压值都是 16V 的&#xff0c;因为成本原因&#xff0c;耐压值 25V …

作者头像 李华
网站建设 2026/8/26 18:07:18

随机前沿SFA结果解读:技术效率分布与前沿面估计

基于随机前沿分析&#xff08;SFA&#xff09;的生产效率研究一、分析方法概述随机前沿分析&#xff08;Stochastic Frontier Analysis, SFA&#xff09;是一种参数化的效率估计方法&#xff0c;其核心思想是将生产函数中的误差项分解为技术无效率项&#xff08;u&#xff09;和…

作者头像 李华