0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

利用NVIDIA Isaac Sim构建合成数据流水线

NVIDIA英伟达企业解决方案 来源:NVIDIA英伟达企业解决方案 2025-11-10 13:51 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

随着机器人承担的动态移动任务日益增多,开发者需要具备物理级精度且能够跨环境和工作负载高效扩展的仿真系统。训练用于执行这些任务的机器人策略与模型依赖大量高质量数据,而现实世界中的数据采集通常既昂贵又耗时。

合成数据,利用NVIDIA Isaac Sim中的模拟环境生成,是扩展数据生成过程的一种有效方法。

在本博客中,我们将探讨:

使用 NVIDIA Omniverse NuRec 引入环境素材,构建模拟环境。

将仿真就绪(SimReady)资产添加至仿真场景中。

利用 MobilityGen 在 Isaac Sim 或 NVIDIA Isaac Lab 中生成合成数据。

通过NVIDIA Cosmos世界基础模型(WFM)对生成的数据进行增强。

使用 Omniverse NuRec 构建 3D 数字孪生

Omniverse NuRec 是一项基于真实传感器数据,用于重建和渲染 3D 交互式仿真的技术。重建的环境可应用于机器人、自动驾驶以及工业和地理空间等领域,支持合成数据生成、AI 模型训练及模型行为测试。

Isaac Sim 支持基于 NuRec Gaussian 的神经辐射场(NeRF)、3D Gaussian Splatting(3DGS)以及 3D Gaussian Unscented Transform(3DGUT)。渲染数据采用 OpenUSD 格式,适用于仿真场景。您可以在 Isaac Sim 中加载兼容的资源和场景,并通过OmniNuRecVolumeAPI属性对渲染效果进行控制。如需了解更多关于 NuRec 在机器人应用中的使用案例,请参考相关文档。

将 SimReady 资产添加至模拟场景中

SimReady 资产是基于OpenUSD的高精度 3D 模型,具备内置的语义标注、密集字幕以及基于USDPhysics的物理特性,可显著简化机器人仿真的配置流程。

SimReady Warehouse 01 资产包包含大量用于托盘、存储机架和坡道等对象的USD 模型,可直接拖放到场景中使用。针对机器人及相关应用场景,可进一步探索物理 AI 数据集。

通过这种方式,我们可以在仿真中轻松构建包含多个对象的场景。这些模拟环境的一个重要用途是收集用于训练机器人策略的合成数据,相关内容我们将在下一节中详细介绍。

采用SimReady 标准化工作流程,在 OpenUSD 中设计、验证并实施统一的 3D 资产规范。

使用 MobilityGen 生成合成数据

MobilityGen 是一个基于 Isaac Sim 构建的移动机器人数据生成工作流。它支持多种数据采集方式,包括通过键盘和游戏手柄进行远程操作的手动方法,以及采用随机加速和随机路径跟随的自动化方法。

在以下示例中,您将学习如何使用MobilityGen为 Isaac Sim 中的H1 人形机器人生成数据。该工作流同样适用于其他类型的机器人,例如四足机器人和自主移动机器人(AMR),并已在Spot和Carter机器人上完成验证。

尽管 MobilityGen 的数据可用于训练机器人的移动策略,但在数据中引入视觉多样性时,性能将得到提升。下一节中,我们将探讨如何利用 NVIDIA Cosmos 增强数据的视觉多样性。

下文概述了使用 MobilityGen 生成数据的具体步骤。

构建占用地图: 这是一种基于网格的环境表示方法,用于描述机器人所处空间,其中每个网格单元表示该位置被障碍物占据的概率。

记录轨迹: 当移动机器人在环境中行进时,系统会记录其运动轨迹,包含每一时刻的位置、速度和朝向信息。

回放和渲染: 支持对生成的轨迹进行回放,以便评估性能并实现数据的可视化呈现。

在以下示例中,我们将使用 Isaac Sim 提供的仓库环境来运行 MobilityGen。您也可以利用上一节中介绍的 SimReady 素材,自行构建相应的环境。

构建占用地图的步骤

加载仓库阶段:

打开内容浏览器(窗口 > 浏览器 > 内容)。 在 Isaac Sim/Environments/Simple_Warehouse/warehouse_multiple_shelves.usd 中加载仓库 USD 文件。

创建占用地图:

选择“Tools”(工具)>“Robotics”(机器人)>“Occupancy Map”(占用地图),以打开扩展程序。 在“Occupancy Map”(占用地图)窗口中,将 Origin 设置为:

X:2.0 Y:0.0 Z:0.0

注意:要在文本框中输入数值,请按 Ctrl + 左键单击以激活输入模式。

在“Occupancy Map”(占用地图)窗口中,将“Upper Bound”(上限)设置为:

X:10.0 Y:20.0 Z:2.0(假设机器人可在 2 米高的立交桥下通行)

将“Lower Bound”(下限)设置为:

X:-14.0 Y:-18.0 Z:0.1(假设机器人可越过高于 5 厘米的障碍物)

单击“Calculate”(计算)以生成占用地图。 单击“Visualize Image”(可视化图像)查看生成结果。 在“Visualization”(可视化)窗口的“Rotate Image”(旋转图像)下方,选择 180。 在“Visualization”(可视化)窗口的“Coordinate Type”(坐标类型)下,选择“ROS Occupancy Map Parameters File YAML”(ROS 占用地图参数文件 YAML)。 单击“Regenerate Image”(重新生成图像)。 将生成的 YAML 文本复制到剪贴板。 在所选的文本编辑器中,创建一个新文件,命名为:~/MobilityGenData/maps/warehouse_multiple_shelves/map.yaml(注意:在 Windows 系统中,请将 ~ 替换为自定义的目录路径) 将从“Visualization”(可视化)窗口复制的 YAML 文本粘贴至该文件中。 修改其中的行:image: warehouse_multiple_shelves.png为:image: map.png保存文件。 返回“Visualization”(可视化)窗口,单击“Save Image”(保存图像)。 在树状资源管理器中,打开文件夹:~/MobilityGenData/maps/warehouse_multiple_shelves在文件名输入框中,输入:map.png单击“Save”(保存)。

请确认您当前是否存在名为~/MobilityGenData/maps/warehouse_multiple_shelves/的文件夹,且该文件夹中包含map.yaml和map.png两个文件。

记录轨迹的步骤

创建环境地图后,您即可使用 MobilityGen 生成数据:

启用 MobilityGen UI 扩展程序。

前往Window > Extensions,然后搜索MobilityGen UI。

单击MobilityGen UI扩展程序的切换开关。

注意:此时应会出现两个窗口。其中一个为 MobilityGen 用户界面,另一个用于显示占用地图及可视化效果。窗口初次出现时可能相互遮挡,因此建议将它们分别拖动至窗口窗格中,以便同时查看这两个窗口。

构建场景:

在MobilityGen窗口的Stage下,粘贴以下 USD 路径:
http://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.0/Isaac/Environments/Simple_Warehouse/warehouse_multiple_shelves.usd

在MobilityGen窗口的Occupancy Map区域,输入此前创建的map.yaml文件的路径:
~/MobilityGenData/maps/warehouse_multiple_shelves/map.yaml

在Robot下拉菜单中,选择H1Robot。

在Scenario下拉菜单中,选择KeyboardTeleoperationScenario。

单击Build。
数秒后,请确认场景是否成功加载,并检查占用地图是否正常显示。

使用以下按键试驾机器人:

W – 向前移动

A – 向左转

S – 向后移动

D – 向右转

开始录制:

单击Start recording以启动日志记录。

操控机器人在场景中移动。

完成操作后,单击Stop recording以结束录制。

默认情况下,数据现在会记录到~/MobilityGenData/recordings。

回放与渲染步骤

在记录轨迹(包括机器人位姿等数据)后,您即可回放该场景。

使用 Isaac Sim 自带的replay_directory.pyPython 脚本。在 Isaac Sim 目录下执行以下命令即可运行该脚本:

./python.sh standalone_examples/replicator/mobility_gen/replay_directory.py --render_interval 40 --enable isaacsim.replicator.mobility_gen.examples

脚本完成后,请确认您拥有~/MobilityGenData/replays文件夹,其中包含已渲染的传感器数据。您可以打开该文件夹以浏览和探索相关数据。

有关如何加载和处理开源MobilityGen GitHub 仓库中记录数据的示例。建议您运行Gradio 可视化脚本,以直观展示所记录的数据。

如需了解更多信息(例如如何添加自定义机器人),请参阅使用 MobilityGen 生成数据的教程。

使用 NVIDIA Cosmos 增强生成式训练数据

使用 MobilityGen 生成数据后,通过Cosmos Transfer从合成机器人数据生成逼真的视频。该方法增加了视觉多样性,有助于缩小仿真与现实之间的差距,并提升策略在实际部署中的表现。

wKgZPGkRgI-ADEstAAAn7pXb8JM91.webp

图 1。高级 SDG 工作流程包含使用 MobilityGen 生成合成数据,并通过 Cosmos Transfer 进行数据增强,从而构建用于训练机器人模型的高质量数据集。

Cosmos Transfer 是一种 WFM,能够根据 RGB、深度、分割等多种视频模式的输入生成逼真的视频。除了输入视频外,您还可以提供文本提示,用于具体指导希望生成的视频内容。以下是提示示例:

A realistic warehouse environment with consistent lighting, perspective, and camera motion. Preserve the original structure, object positions, and layout from the input video. Ensure the output exactly matches the segmentation video frame-by-frame in timing and content. Camera movement must follow the original path precisely.

使用 Cosmos Transfer 运行推理的示例命令如下:

export CUDA_VISIBLE_DEVICES="${CUDA_VISIBLE_DEVICES:=0,1,2,3}"
export CHECKPOINT_DIR="${CHECKPOINT_DIR:=./checkpoints}"
export NUM_GPU="${NUM_GPU:=4}"
PYTHONPATH=$(pwd) torchrun --nproc_per_node=$NUM_GPU --nnodes=1 --node_rank=0 cosmos_transfer1/diffusion/inference/transfer.py \
--checkpoint_dir $CHECKPOINT_DIR \
--video_save_folder outputs/example1_single_control_edge \
--controlnet_specs assets/inference_cosmos_transfer1_single_control_edge.json \
--offload_text_encoder_model \
--offload_guardrail_models \
--num_gpus $NUM_GPU

在实验室的闭环评估过程中,基于合成数据与 Cosmos 增强数据训练的策略表现 consistently 优于仅使用合成数据训练的策略。这类结合了合成数据和 Cosmos 增强数据的训练策略,能够有效应对以下场景:

绕过透明的障碍物。

避开与背景融为一体的障碍物,例如灰色地板上的灰色电线杆。

靠近障碍物行驶,以缩短到达目标位置的总距离。

在光线较暗的环境中实现稳定导航。

在狭窄通道中完成精准通行。

您可以对任何真实或合成的视频数据运行 Cosmos Transfer。另一个示例是使用 Cosmos 进行合成数据集增强的教程。该教程介绍了如何在 Isaac Sim 中利用 Replicator 生成合成数据。

入门指南

NVIDIA 提供丰富的OpenUSD 资源,助您加速学习进程。从自定进度的Learn OpenUSD、数字孪生和机器人培训课程入手,逐步掌握本指南所涵盖的核心技能。

对于希望在机器人领域职业发展上更进一步的专业人士,OpenUSD Development 认证提供了一项专业级考试,用以验证您在使用 OpenUSD 构建、维护和优化 3D 内容流程方面的专业能力。您可在NVIDIA GTC 华盛顿特区现场获取 OpenUSD 认证,并在物理 AI 与机器人日期间深入了解用于机器人开发的合成数据。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器人
    +关注

    关注

    213

    文章

    30574

    浏览量

    219429
  • NVIDIA
    +关注

    关注

    14

    文章

    5496

    浏览量

    109044
  • 数字孪生
    +关注

    关注

    4

    文章

    1615

    浏览量

    13715

原文标题:借助 NVIDIA Isaac Sim 构建合成数据流水线,训练更智能的机器人

文章出处:【微信号:NVIDIA-Enterprise,微信公众号:NVIDIA英伟达企业解决方案】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    FPGA中的流水线设计

    处理速度)。第二 什么时候用流水线设计使用流水线一般是时序比较紧张,对电路工作频率较高的时候。典型情况如下:1)功能模块之间的流水线,用乒乓 buffer 来交互数据。代价是增加了 m
    发表于 10-26 14:38

    什么是流水线技术

    什么是流水线技术 流水线技术
    发表于 02-04 10:21 4278次阅读

    流水线中的相关培训教程[4]

    流水线中的相关培训教程[4] 下面讨论如何利用编译器技术来减少这种必须的暂停,然后论述如何在流水线中实现数据相关检测和定向。
    发表于 04-13 16:09 5068次阅读

    电镀流水线的PLC控制

    电镀流水线的PLC控制电镀流水线的PLC控制电镀流水线的PLC控制
    发表于 02-17 17:13 36次下载

    各种流水线特点及常见流水线设计方式

    按照流水线的输送方式大体可以分为:皮带流水装配线、板链线、倍速链、插件线、网带线、悬挂线及滚筒流水线这七类流水线
    的头像 发表于 07-05 11:12 8857次阅读
    各种<b class='flag-5'>流水线</b>特点及常见<b class='flag-5'>流水线</b>设计方式

    如何选择合适的LED生产流水线输送方式

    LED生产流水线输送形式分为平面直线传输流水线、各种角度平面转弯传输流水线、斜面上传流水线、斜面下传流水线这四种输送方式,企业也是可以根据L
    发表于 08-06 11:53 1332次阅读

    利用合成数据NVIDIA ISAAC Sim加速机器人训练

      在模拟器中, ISAAC Sim 强大的合成数据功能使生成所需数据集变得简单。您可以提供合成数据,以实现更高效的培训工作流和更安全的自主
    的头像 发表于 04-19 09:45 2664次阅读
    <b class='flag-5'>利用</b><b class='flag-5'>合成数据</b>和<b class='flag-5'>NVIDIA</b> <b class='flag-5'>ISAAC</b> <b class='flag-5'>Sim</b>加速机器人训练

    NVIDIA Isaac Sim 2022.1版本的亮点及功能

    NVIDIA 宣布推出2022.1 版 NVIDIA Isaac Sim。作为一种机器人仿真和合成数据生成(SDG)工具,这个
    的头像 发表于 07-01 11:19 3357次阅读

    使用Omniverse Replicator构建自定义合成数据生成管道

      在 NVIDIAISAAC Sim DRIVE Sim 团队利用 Omniverse Replicator SDK
    的头像 发表于 08-15 15:53 1801次阅读
    使用Omniverse Replicator<b class='flag-5'>构建</b>自定义<b class='flag-5'>合成数据</b>生成管道

    NVIDIA AI机器人开发— NVIDIA Isaac Sim入门

    Omniverse 提供支持,是一款可扩展的机器人模拟应用和合成数据生成工具,可提供逼真、物理属性准确的虚拟环境,以便开发、测试和管理基于 AI 的机器人。  Isaac Sim 提供逼真的模拟效果,其模组化
    的头像 发表于 10-19 15:58 2731次阅读

    NVIDIA 公开课 | AI 机器人开发第二讲 — Isaac Sim 高阶开发

    提供逼真的模拟效果,其模组化设计旨在解决多数常见的机器人用例,包括操作、导航和生成用于训练数据合成数据,并可以进行自定义并扩展到许多新用例中。通过 Isaac SDK 和 ROS/ROS2 接口
    的头像 发表于 11-10 11:00 1742次阅读

    CES | 用 NVIDIA Isaac Sim 2022.2 模拟未来智能机器人

    NVIDIA 宣布推出  NVIDIA Isaac Sim  的  2022.2 版本 。作为机器人仿真和 合成数据 生成( SDG )工具
    的头像 发表于 01-06 22:30 1773次阅读

    什么是流水线 Jenkins的流水线详解

    jenkins 有 2 种流水线分为声明式流水线与脚本化流水线,脚本化流水线是 jenkins 旧版本使用的流水线脚本,新版本 Jenkin
    发表于 05-17 16:57 1498次阅读

    NVIDIA Isaac SimNVIDIA Isaac Lab的更新

    在 COMPUTEX 2025 上,NVIDIA 宣布了机器人仿真参考应用 NVIDIA Isaac Sim 和机器人学习框架 NVIDIA
    的头像 发表于 05-28 10:06 1744次阅读

    51Sim利用NVIDIA Cosmos提升辅助驾驶合成数据场景的泛化性

    51Sim 利用 NVIDIA Cosmos 的生成式世界基础模型,对现有的合成数据进行大规模泛化,在确保物理真实性的前提下,大幅提升了数据
    的头像 发表于 06-26 09:09 1054次阅读