← 文章 / AI技术
NVIDIA 开发者博客 20小时前 · 2026-09-17 22:21:17 · 4 阅读

如何用 AI Agent 为仿真准备 3D 场景

Agentic AI 工作流可以用来为 物理 AI 系统准备并校验数字孪生。Agent 可以检查 3D 场景,在 OpenUSD 中编写仿真相关数据、添加物理属性、渲染预检视图,并依据仿真就绪(SimReady)要求校验结果。本文将带你走完整个流程:从 Blender 中的场景出发,最终交付给 NVIDIA Isaac SimNVIDIA Isaac Lab 一个仿真就绪的 OpenUSD 场景。

但在实践中,如果你在做机器人领域的 agent,这个工作流常常会卡住。人们很容易把问题归咎于 policy、模型或训练循环,但瓶颈往往出现在更早的环节:机器人没有一个仿真就绪的训练环境。而要把 3D 场景调整到这种状态,工作量大、耗时长,而且通常超出了机器人仿真工程师的职责范围。

本文介绍一个使用 NVIDIA Omniverse Libraries 将 Blender 场景准备为机器人仿真环境的 agent 工作流。由 OpenAI GPT-6 Astra 驱动的 Codex 负责统筹整体任务、解读结果并指导迭代。基于 Hermes agent harness 构建并通过 NVIDIA NemoClaw 部署的专用 subagent,则借助 Omniverse Libraries 检查场景、编写仿真元数据、配置物理属性并渲染视觉预检视图。

这些组件将推理、工具执行与校验串联起来,形成一套可重复的流程,最终交付仿真就绪的 OpenUSD 世界。

为什么为仿真准备 3D 场景颇具挑战?

场景确实存在——3D 艺术家在 Blender 中创建了所有资产——但它真的可用于仿真吗?以下准备工作是否已悉数完成?

  • 物体是否已标记?
  • 碰撞网格是否正确?
  • 材质是否对仿真有意义?
  • 传感器是否已放置并配置?
  • 场景能否顺利导出为 USD?
  • 机器人能否感知目标物体?
  • 在进入 Isaac Sim 或 Isaac Lab 调试之前,场景能否通过验证?

这些准备工作枯燥、重复且易错。然而,这正是智能体系统应当协助的领域,前提是拥有合适的工具。在智能体工作流中使用 NVIDIA Omniverse Libraries 的目的,正是集成构建 SimReady 世界所需的工具。

智能体如何协助为仿真准备 3D 场景?

Codex(ChatGPT 版)或 Claude Cowork(Anthropic 版)等通用智能体可以查看 Blender 场景,并识别出需要进行仿真就绪改造。识别固然有用,但还不够。要真正帮助机器人开发者,智能体必须能对场景执行以下操作:

  • 检查 Blender 场景
  • 识别缺失的仿真元数据
  • 添加语义标签
  • 配置传感器
  • 创建碰撞形状和物理属性
  • 渲染视觉预检视图
  • 运行 SimReady 验证
  • 自动修复安全类问题
  • 将模棱两可的决策上报给人类

“让 3D 场景具备仿真就绪能力”这一广泛需求,便转化为多智能体工程工作流。Codex 或 Claude 作为主智能体,协调场景准备仿真的整体任务。NVIDIA NemoClaw 提供了构建执行各项任务的专用子智能体的参考架构。这些子智能体可使用 Hermes、OpenClaw 或 LangChain 等开源智能体框架,并配置不同的 NVIDIA Nemotron 模型以处理视觉、推理和工具调用。

在 Astra 和 Hermes 的配置中,Codex 利用 Astra 将开发目标拆解为具体任务,识别依赖关系,并审查通过 NemoClaw 部署的专用 Hermes 子代理返回的结果。例如,让物体可被抓取,需要协调更新其语义标签、刚体配置以及碰撞几何。Astra 负责跨子代理串联这些需求,并确定工作流继续推进前需要执行哪些检查。 NVIDIA Omniverse 库提供了子代理操作场景所需的工具。OpenUSD 操作建立共享的场景结构,ovphysx 负责编写和检查物理属性,ovrtx 渲染可视化预检视图,SimReady 验证则评估生成的资产是否符合目标仿真配置。 每个子代理负责特定的任务及其验收标准。安全的机械性问题可以自动修复。涉及开发意图的决策(如不确定的语义标签或物理行为)会连同相关上下文和建议的下一步骤升级给人类处理。 该模式概括为:
  • Codex 或 Claude 负责协调
  • NemoClaw 代理进行推理
  • Omniverse 库执行操作
这些层级协同工作,将“让此场景具备仿真能力”的提示转化为由工具驱动的工作流:包含专用任务、持久化的场景状态、验证关卡,以及在关键判断处引入的人工审查。
Diagram showing a pipeline where a Blender user edits a scene and exports through a Blender add-on (Blender to USD/MaterialX), which then connects through gRPC client/server to NVIDIA Omniverse Libraries. The add-on sends requests to ovrtx for rendering/visual preflight and ovphysx for physics setup, with additional gRPC service definitions and supporting libraries (for example, ovx annotators and USD optimization).
图 1. 参考工作流:演示如何用 Omniverse Libraries 和 agent 激活 Blender 场景

如何用 agent 为仿真准备 3D 场景

首先,为编排 agent 明确主要目标,包括输入、期望输出、目的地和验证标准。这样 Codex 或 Claude 就能获得足够的结构信息来统筹整个任务,把工作分配给各个专长的 NemoClaw 子 agent,并判断任务何时真正完成。

输入:Blender 场景
目标:将其准备为机器人仿真场景
输出:基于 USD 的可直接仿真环境
目的地:Isaac Sim 或 Isaac Lab
验证:视觉预检 + SimReady 验证

明确了主要目标后,任务就从简单的一句“把这个场景做得更好”变成了一个协调的 agent 工作流:Codex 或 Claude 负责管理整体请求,NemoClaw 子 agent 完成各自的专业任务,Omniverse Libraries 则提供修改、渲染、验证和准备环境的工具。

设定好目标之后,按以下步骤操作。

第 1 步:通过 Blender MCP 检查场景

第一个子智能体通过 Model Context Protocol (MCP) 服务器 连接 Blender,并借此盘点场景内容。MCP 为智能体提供了受控的工具接口:它无需通过截图猜测或依赖手动导出,就能调用工具来检查对象、集合、变换参数、材质、相机、灯光及场景元数据。这份场景清单将成为其他子智能体共享的上下文。

该子智能体需要回答:

  • 有哪些对象?
  • 存在哪些集合和层级结构?
  • 分配了哪些材质?
  • 有哪些相机和灯光?
  • 哪些内容类似机器人的目标、障碍物、地面、货架或料箱?
  • 缺少哪些仿真数据?

输出应按以下结构组织:

{
  "objects": 142,
  "materials": 37,
  "missing": [
    "semantic_labels",
    "collision_meshes",
    "camera_sensors",
    "physics_materials"
  ]
}

这为其他子智能体提供了一个共享的起点。

Hermes 检查子智能体将结构化结果返回给 Codex。Astra 结合这份清单与开发者的机器人学目标,识别缺失信息并规划后续任务。例如,识别机器人的目标对象有助于确定哪些资产需要可动体属性,以及哪些传感器视角需要审查。随后,Codex 通过 NemoClaw 将这些任务委派给相应的 Hermes 子智能体,并明确验收标准,同时标记出需开发者介入解决的未定假设。

本文的工作流使用 Alex Trevino 的 The Junk Shop(原始概念来自 Anais Maamar)进行演示(图 2)。Codex 协调 NemoClaw,编排处理指定任务所需的子智能体。在此示例中,NemoClaw 正通过 Blender MCP 运行 The Junk Shop 场景,并盘点对象、材质、场景结构等内容。

架构图展示了 Blender 用户的场景通过 Blender 插件(将 Blender 转换为 USD/MaterialX)和 gRPC 客户端流向 gRPC 服务器,该服务器连接到 NVIDIA Omniverse Libraries——ovrtx 和 ovphysx。渲染出的 RGBA 像素返回到 Blender 视口。下方,SKILL.md 和 AGENTS.md 定义了 gRPC 服务技能,并包含 ovxr、ovannotators 和 usd-optimize 等附加库。
图 2。Blender 插件通过 gRPC 将场景数据桥接到 Omniverse Libraries,使渲染和物理能力能够直接反馈到 Blender 视口

第二步:以 USD 作为契约推动工作流

Blender 是创作环境。USD 是模拟的交接点,因为它为智能体(agents)和下游工具提供了世界的共享结构化表示。一旦场景被创作并转为 USD,子智能体就可以检查 prims、添加元数据、验证要求,并将同一世界传递给 Isaac Sim 或 Isaac Lab,而无需依赖脆弱的一次性导出。

USD 创作智能体使用 Omniverse Libraries 来保留层次结构、变换、材质、标签、物理元数据和传感器定义。

对智能体构建者的一条实用规则是:如果后续需要另一个智能体或模拟器依赖它,就将其创作进 USD。

USD 专为分层、非破坏性的场景组合而设计,因此智能体可以添加标签、物理元数据、传感器定义、材质和验证数据,而不会扁平化原始创意作品。这使得工作流不再是一组困在单一工具中的临时编辑,而是为每个下游步骤提供了共享的、可检查的事实来源。

图示:上方是渲染后的 Blender 废品商店场景——一位卡通店主站在堆满杂物的柜台后,前景是一台小机器人——通过 USD 图标连接到下方的三个子层视图:完整场景(所有引用在 Blender 视口中组合)、子资产(深色背景上单独展示的机器人资产)和光照(仅应用光照通道的场景,呈紫橙色调)。
图 3. USD 将离散的子层(资产、光照和材质)组合成最终场景,每个子层都可以在合并前单独编辑

第 3 步:添加语义标签

机器人需要的不仅是几何体,还需要含义。语义标注智能体会把匿名的网格变成具有任务语义的对象:货架、料箱、地面、障碍物、可抓取物品和机器人目标。通过把这些标签写入 USD,整个工作流为下游的智能体和机器人工具提供了统一的词汇表,可用于感知、验证、合成数据和训练配置。

语义标注智能体会用与任务相关的类别为 prim 打标签:

  • shelf(货架)
  • bin(料箱)
  • box(箱子)
  • floor(地面)
  • obstacle(障碍物)
  • grabbable_object(可抓取物体)
  • robot_target(机器人目标)
  • no_go_zone(禁行区域)

智能体可以根据对象名称、层级结构、形状和上下文推断标签,但也应当标记出不确定的部分:

已标注 118 个 prim。
9 个标签需要人工审核。

图 4 展示了 Codex 如何编排 NVIDIA NemoClaw。NemoClaw 通过 Blender MCP 与子智能体协同工作,而 NVIDIA Omniverse Libraries 则是子智能体执行任务所依赖的工具。在此案例中,ovrtx 智能体通过该工作流检查 Blender 场景,并应用使场景具备机器人仿真准备就绪状态所需的语义分割和标签。

Codex 界面截图,显示 NemoClaw 通过 Blender MCP 完成“在 Blender 中渲染语义分割”任务。已完成的步骤列表包括:连接 Blender、检查场景对象、应用语义标签、配置 ovrtx 分割、渲染分割通道以及获取 junk_shop_semantics.png。下方并排对比展示了原始杂货铺渲染视图与 ovrtx 语义分割输出,其中场景对象被赋予颜色编码和标签(角色、机器人、道具、背景元素)。
图 4. Codex 编排 NVIDIA NemoClaw 通过 Blender 完成任务

这一点至关重要,因为标签是连接场景内容与机器人工作流的桥梁,涵盖感知、任务设置、合成数据及验证等环节。

步骤 4:让材质支持仿真

在 Blender 中看起来不错的材质,对于仿真而言可能仍不完整。在视口中,货架看起来像金属或箱子看起来像塑料可能就够了。但在机器人工作流中,这些表面需要具备材质属性,以便下游系统用于渲染、感知、物理计算、域随机化及验证。材质智能体将视觉外观转化为对仿真有用的元数据。

材质 Agent 负责检查视觉材质,并创建与仿真相关的材质元数据。例如在仓库场景中,它需要识别金属货架、纸箱、塑料收纳箱、混凝土地面、橡胶轮子或玻璃面板。

目标并非让材质更好看,而是为仿真和验证提供更有用的信息。

截图展示了 Codex 界面中 NemoClaw 通过 Blender MCP 完成“标记金属材质元数据”任务的过程。已完成的步骤列表包括:连接 Blender、打开 Brushed_Steel、检查着色器属性、分类为拉丝耐候钢、写入 material_metadata.json,以及验证元数据模式。下方的“材质元数据结果”面板展示了源材质(一张照片级真实的拉丝耐候钢纹理)与生成的 material_metadata.json 文件,该文件包含 material_id、material_class、material_type、finish、condition、PBR 值(metallic: 1.0, roughness: 0.58)、tags 以及模式版本等字段。该 JSON 被标记为“有效 JSON”。
图 5。在 Codex 中,NemoClaw 通过 Blender 执行任务。材质子 Agent 利用 MCP 与 Blender 通信,识别 3D 场景中的材质,检查其属性,并为其打上相应的元数据标签,使材质具备机器可读性。

步骤 5:尽早创建传感器

如果机器人需要感知外部世界,传感器就不能在训练环境里事后才补上。相机和激光雷达的配置决定了机器人能观察到什么、能生成哪些数据,以及训练场景是否真实还原了实际任务。尽早配置传感器,能让 agent 在场景进入 Isaac Sim 或 Isaac Lab 之前,先验证安装位置、视场角、量程、轮询频率、遮挡情况和目标可见性。

一个传感器子 agent 可以按以下参数把相机和激光雷达写入场景:

  • 位置
  • 朝向
  • 视场角
  • 轮询频率
  • 量程
  • 分辨率
  • 目标坐标系

这种做法让工作流能在训练开始前就暴露出一些关键问题:

  • 机器人能看到目标吗?
  • 传感器是否被遮挡?
  • 视场角设置是否合理?
  • 从预期视角能否看到训练物体?

图 6 展示了 NemoClaw 调度子 agent 调用完成任务所需的工具 ovrtx。ovrtx 会加载一个已配置激光雷达的场景,预热传感器管线,渲染一帧点云,通过 count 通道读取有效点数据,输出统计摘要,并按强度着色来可视化这些点。

Codex 界面截图,展示 NemoClaw 通过 Blender MCP 完成“在 Blender 中运行激光雷达仿真”的任务。已完成的步骤列表包括:连接 Blender、打开 junk_shop.blend、配置 ovrtx 激光雷达传感器、运行传感器仿真、获取 junk_shop_lidar.ply。 “传感器仿真结果”面板展示了原始废品回收店渲染视图与 ovrtx 激光雷达点云输出,场景以基于强度的颜色(蓝色、紫色和黄色)进行可视化。
图 6. NemoClaw 编排子代理调用所需工具:ovrtx

步骤 6:使用 ovphysx 确保物理就绪

此时,场景不再只是视觉呈现,而是成为了具备物理感知的数字孪生世界。对象不再是单纯的带材质网格;它们拥有碰撞体、质量、摩擦系数、刚体行为以及交互规则。这意味着箱子可以被拾取,货架可以阻挡运动,机器人可以在一个具有真实物理特性的世界中测试动作,而不仅仅是看起来正确。

ovphysx 子代理添加或验证以下内容:

  • 碰撞网格
  • 静态碰撞体
  • 刚体
  • 质量属性
  • 摩擦系数
  • 恢复系数
  • 物理材质
  • 可移动与固定对象

常见的故障恰恰是那些后期难以解决的繁琐问题:

46 个对象缺少碰撞网格。
12 个可抓取对象被标记为静态。
7 个碰撞网格过于复杂。
3 个道具悬浮在地板上方。

ovphysx 智能体负责这项任务。它会将上述分析结果转化为修复方案,自动执行安全的修正,并将模糊场景交由人工处理。

例如,该智能体可为静态道具生成简单的碰撞网格,将地板和货架标记为固定碰撞体,为可抓取对象赋予刚体属性,并对任何物理行为依赖于任务意图的对象进行标记。输出结果不仅是一个更整洁的场景,还是一份“物理就绪”报告,可供下游智能体和验证工具使用。

图 7 展示了 NemoClaw 编排一个子智能体调用使 3D 场景具备物理特性的相应工具 ovphysx。ovphysx 用于添加刚体属性、碰撞体、质量和摩擦系数,以确保场景在传输到 Isaac Sim 或 Isaac Lab 时具备模拟就绪状态。

Codex 界面动画,展示 NemoClaw 通过 Blender MCP 完成“在 Blender 中启用实时物理”任务。已完成的步骤列表包括:连接 Blender、检查场景几何体、生成紧密碰撞体、启用刚体、配置 ovphysx、启动实时模拟,以及保存 junk_shop_physics.blend。标题为“已启用物理的场景”的面板展示了一个实时 ovphysx 废品店场景模拟,旁边的“场景状态”面板确认:刚体已启用、碰撞体紧密、重力已启用、模拟运行中、场景物理已启用。
图 7. NemoClaw 编排子智能体调用使 3D 场景具备物理特性的工具:ovphysx

第 7 步:使用 ovrtx 作为预检循环

为什么在仿真之前要先渲染?因为校验只能告诉 agent 场景在结构上是否合规,而渲染才能看出场景是否真正可用。ovrtx agent 可以生成机器人相机视角和审查视角,检查目标是否被遮挡、光照是否有问题、传感器是否被裁剪、材质是否损坏、物体是否难以辨认,并在浪费训练时间之前把问题派发给对应的修复 agent。

ovrtx agent 渲染审查视角和机器人视角,让工作流能够确认以下关键点:

  • 目标物体是否可见?
  • 可见物体上是否贴有标签?
  • 材质渲染是否正确?
  • 光照是否符合物理规律?
  • 相机是否被遮挡或裁剪?
  • 物体比例是否合理?

到这一步,ovrtx 相当于为 agent 流水线提供了视觉 QA。

Hermes 渲染子 agent 运行在 NemoClaw 环境中,它调用 ovrtx 生成审查图像,并连同相关场景元数据一起返回给 Codex。Astra 可以利用这些证据排查差异,并协调安排有针对性的后续任务。如果某个带标签的目标没有出现在机器人相机视角中,Codex 可以让传感器和场景检查子 agent 去核查相机朝向、裁剪设置以及可能的遮挡物。修正之后,渲染子 agent 会再生成一张视角图,以验证修复结果。这就把视觉审查接入了可执行的修复闭环。

Codex 界面截图,显示 ovrtx_qa 通过 Blender MCP 完成了在 Blender 中运行视觉质量检查(QA)的任务。已完成的步骤列表包括:连接 Blender、通过 ovrtx 渲染审查视角、通过 ovrtx 渲染机器人视角、检查场景标注、评估渲染质量以及保存 ovrtx_qa_report.json。视觉 QA 报告面板展示了从审查视角渲染的废品店场景,旁边是 QA 检查面板,显示六项检查通过:目标物体可见、标签已附加至可见物体、材质渲染正确、光照物理上合理、摄像机视野清晰无裁剪、以及物体比例合理。
图 8. NemoClaw 编排子代理调用 ovrtx 运行 QA 报告,检查目标物体是否可见、标签是否已附加、材质是否渲染正常、光照是否物理合理以及摄像机视野是否清晰无裁剪

步骤 8:运行 SimReady 验证

最后,验证 Agent 针对目标配置文件运行 SimReady 校验。这是 Agent 工作流的验收关卡。SimReady Foundation 定义了面向仿真就绪 USD 内容的标准与校验配置,验证 Agent 依据这些配置检查场景是否真正就绪。若校验失败,报告即转化为修复 Agent 的任务清单;若通过,场景即可移交 Isaac Sim 或 Isaac Lab。

报告应当具备可操作性:

校验失败:14 个问题
- 10 个可自动修复
- 4 个需人工审核

修复 Agent 可处理安全类问题,歧义类失败则上报人工。例如:“已自动修复 10 个校验问题。4 个需审核:2 个语义标签不确定、1 个可抓取对象物理设置冲突、1 个对象可能是障碍物也可能是目标。”人工确认预期行为后,Agent 执行修复并重新运行校验。

Hermes 校验子 Agent 将 SimReady 报告回传至 Codex,由 Astra 协助判定所需的修复与后续检查项。Codex 将相应任务委派给通过 NemoClaw 部署的 Hermes 子 Agent。移动传感器可能需再次执行 ovrtx 可见性检查,改变对象角色则可能需同步更新语义标签与物理属性。子 Agent 应用获批变更并复跑相关检查,Codex 最终向开发者汇总变更记录、校验证据及待决事项。

目标是产出符合仿真契约的场景,而非仅仅导出文件。

图 9 展示了 NemoClaw 调度调用 SimReady Blender 插件的子 Agent,用于按目标 SimReady 配置校验场景。若校验报告出现失败项,Agent 会标记需人工审核后方可继续。

Codex 界面截图,显示 SimReady Validation 通过 Blender MCP 完成"SimReady 资产验证"任务。SimReady Blender Add-on 面板显示"Review required"状态,已完成步骤:连接 Blender、加载目标 profile、扫描所选资产、运行需求检查、生成验证报告并暂停修复。"SimReady validation report"面板显示废品商店场景预览,旁边是 Validation findings 面板,列出三项失败和一项警告:FAIL RB.COL.001(robot_wheel,缺少 Collision API)、FAIL VG.027(cloth_pipes,缺少网格法线)、FAIL VG.021(counter_base,网格未三角化),以及 WARN UN.006(Stage,upAxis 必须为 Z)。界面还弹出"Human review required"提示,带有"Review findings"和"Approve fixes"按钮。
图 9. NemoClaw 协调调用 SimReady Blender 插件所需的子代理

开始为仿真准备 3D 场景

机器人训练并非从策略运行那一刻才开始,而是从世界准备就绪那一刻开始。而这远不止是场景看起来漂亮就行——它需要一个带有语义标签、仿真友好材质、传感器、物理属性的 USD 世界,还需要视觉预检,以及对照目标 profile 的验证。这些繁琐的胶水工作太多,不该全交给人工;但又太具体,单靠提示词也无法解决。

有效的模式是一组具备实际工具的子代理:

Blender MCP 检查场景。
Omniverse Libraries 构建世界。
USD 承载契约。
语义标签赋予意义。
传感器定义感知。
ovphysx 使其具备物理属性。
ovrtx 使其在视觉上可测试。
SimReady 验证使其符合要求。
Isaac Sim / Isaac Lab 使其可训练。

前进的道路是借助实际工具的代理化工程:由 Codex 或 Claude 负责编排,NemoClaw 协调子代理,NVIDIA Omniverse Libraries 让这些代理能够作用于场景。

推荐的系统包括:

  • NVIDIA DGX Spark:本地原型的理想选择,拥有 128GB 一致统一系统内存。用它开发 NemoClaw 子代理,通过 MCP 连接 Blender,创建 USD,运行 SimReady 验证,并从桌面系统测试 ovrtx 或 ovphysx 循环。
  • NVIDIA DGX Station:终极桌面 AI 超级计算机,由 NVIDIA GB300 Grace Blackwell Ultra 桌面超级芯片驱动,拥有高达 748 GB 的一致内存,用于本地 AI 开发、推理和代理工作流,可配置额外的 NVIDIA RTX PRO 6000 Blackwell 代工作站 GPU。当场景变大、本地模型需要更多内存、更多子代理并行运行,或仿真和可视化工作负载要求更高时,使用它。
  • NVIDIA RTX PRO 服务器:最适合团队级流水线。用于共享代理工作流、批量场景准备、大型 OpenUSD 资源、合成数据生成和生产级验证运行。
  • NVIDIA DGX 云:最适合云规模开发。当工作流需要弹性计算来处理大型训练任务、批量仿真,或超出本地硬件能力的大规模物理 AI 流水线时使用。

准备开始了吗?选择一个场景准备的瓶颈,交给子代理,连接到一个 Omniverse 工具,并添加一个验证关卡。

如需了解更多,请查阅以下资源:

请于太平洋时间 9 月 30 日上午 11:00 加入 OpenUSD 内部人员直播:结合 GPT-6 Astra 与 NVIDIA Omniverse Libraries 实时开发物理 AI 仿真

原始来源: NVIDIA 开发者博客

评论 (0)