一台机器人从 CAD 导入 Isaac Sim,外形很像真机,夹爪却可能穿过物体,或者关节绕错轴旋转。原因通常在物理描述:STEP 几何解决了形状问题,未必携带适用于仿真的碰撞形状、质量惯量、关节驱动和接触参数。NVIDIA 近期以 ABB YuMi 双臂机器人为例,把 CAD 到 SimReady 资产分为五段:STEP 转 OpenUSD、外观核对、物理配置、按档案验证、任务级仿真。文章让前沿模型辅助解释资料和调用工具,但每步都要求检查结果;模型辅助调用工具,但每一步都要看检查结果。[1][1]
第一步:从 STEP 几何得到可检查的 OpenUSD
先固定输入清单:对应机型和末端执行器的 STEP、制造商技术资料、图片或视频,保存零件版本与来源。示例把这些文件放在 Isaac Sim 安装目录内的 reference,让工具依据 CAD-to-SimReady 相关技能导入 OpenUSD;原文示例使用 Isaac Sim 6.1、Codex CLI 和一个前沿模型,还需启动带远程 Python 服务的窗口化 Isaac Sim。这里的产品和模型名称是复现实验环境,不是资产合格的必要条件;自动化脚本要先确认版本、许可和接口是否一致。[1]
导入后先查资产结构:检查 USD stage 能正常组合,根节点与零件层级清晰,引用资源不丢失;对照 CAD 的基座、两臂和夹爪核对坐标系、尺寸量级、装配变换、枢轴与关节候选。尤其注意毫米 CAD 与 stage 的长度单位转换。OpenUSD 的物理规范说明 metersPerUnit、kilogramsPerUnit 是跨资产组成时必须妥善处理的元数据;尺度错三位会传导到碰撞、惯量与控制器。保存导入前后的零件对应表和变换差异,后续问题才有来源可追。[1][3]
第二步:对照原厂资料检查外观
用原厂图片和视频核对朝向、零件位置、材料覆盖、纹理路径,再记录不确定的颜色、金属度和粗糙度。示例中材质是视觉估计,没有测量材质重建,也没有 AI 生成纹理。这样做仍然必要:视觉异常可能暴露装配错位,但视觉一致不能推导出齿轮、线缆和内部配重一致,更不能替代物理参数验证。[1]
建议至少在正面、侧面、夹爪张开与闭合的固定相机位保存对照视图,区分“源 CAD 就缺少零件”“导入时丢失引用”“材质估计与参考不符”。团队还应把颜色或透明材质在传感器模拟中的影响列为单独问题:RGB 渲染通过不代表深度、激光反射或真实光照响应吻合。OpenUSD 负责表示场景和材质关系;是否足够支持具体感知任务,需要另行测量和标定。
第三步:补齐物理结构
OpenUSD 的 UsdPhysics 提供刚体、质量属性、碰撞形状、物理材质及关节等基础描述。仿真求解器需要约束与接触,单凭渲染网格无法推断。为每个 link 建立对应刚体与碰撞表示,检查关节轴、父子坐标系、零位、限位、驱动、基座固定方式、夹爪指节耦合;记录每个质量、质心、惯量从何而来,测试是否有穿模、关节爆炸或碰撞形状相互交叠。[3]
YuMi 案例用公开 URDF 辅助确定关节轴和零位,用 STEP 体积并按制造商总量归一估算连杆质量:机器人总质量 38 kg、每个夹爪 0.28 kg。质心与惯量按均匀实体假设估算,没有逐项建模电机、减速器和线缆;静摩擦系数取 0.8、动摩擦 0.6、恢复系数 0,碰撞形状也经过凸形近似。这些是示例假设,不是 YuMi 实机测得的通用参数。若要分析真实抓取力或关节负载,应把制造商资料、称重、惯量与接触实验升级为参数来源,保留估计值的置信度和适用范围。[1]
第四步:按用途选择验证档案
SimReady Foundation 把可检查的 Requirement 组合为 Capability,再组合为 Feature,最终用 Profile 表达资产对特定用途的契约。仓库 README 列出 Robot-Body、Robot-Gripper、Robotics-Prop 等档案;使用前应核对仓库提交、档案与验证库的匹配版本,不要只写“通过 SimReady”。README 同时提醒:大体积二进制/USD 资产由 Git LFS 管理,没取到真实文件时可能只验证了指针;独立环境中的验证工具依赖需要匹配相应 Foundation 版本。[2]
在 Isaac Sim 中按选定档案运行资产验证,导出机器可读结果,并逐项处理单位、依赖、几何、材料、刚体、关节、驱动与 articulation 的失败或警告;修复后重新运行。Isaac Sim 的资产验证文档指出,有些检查需要实时 PhysX 步骤,在只有 USD、无运行时的环境中不会给出结果;这种“无结果”不能记成通过。相应地,静态验证、仿真运行与真实机器对照应作为三列分别记录。[1][2][4]
案例报告了 21 个刚体的质量为正、惯量张量物理可容许且运行时值与写入值一致,关节轴、frame、限位、驱动和夹爪模拟行为经过检查。它能证明这份场景在选定规则和测试轨迹下被验证,并没有证明真实 YuMi 动力学吻合或全部姿态都无碰撞风险。建议保存被检查的 USD 包、依赖清单、Profile/Feature 版本、验证器版本、报告和每项例外的审批理由,避免“昨天绿灯、今天换了规则仍绿灯”的错觉。[1][2]
第五步:用动作任务检验资产
原文的双臂方块拾放实验用了 45 mm、40 g 方块:在 122.2 秒物理仿真中,总共完成四轮拾放;两臂各自抓取、抬升、持有两秒、转移并释放,后续再放入盒中。接触和摩擦承担抓持,未用附着关节、运动学悬挂或直接改方块位置。另一个 Sharpie 记号笔例子依据单张图像估计长 140 mm、质量 10 g,碰撞体近似为圆柱,夹爪把它抬起后放入托盘。示例并未做基于相机的感知流程,物理参数也没有与实物校准。[1]
工程验收不宜只复制“成功四次”。要固定随机种子和求解器设置,记录时间步长、初始位姿、物体质量分布、材质、控制指令与抓持判据;增加不同位置、尺寸、表面、姿态和扰动的批量测试,观察滑落、误碰、关节越限及任务超时。运行结果要附带轨迹、接触事件、关节状态和失败视频,而不是仅展示一段成功动图。对需上机的系统,还必须经过控制器、人机隔离、实物碰撞与风险评估的独立流程。
让验证结果可复现,还要处理哪些细节
资产验证的输入不止一个 .usd 文件。USD 的 layer、引用和贴图可能分散在目录或共享仓库中,搬到另一台机器会暴露绝对路径和丢失依赖问题。交付时宜从干净环境重开 stage,验证默认 prim、资源解析、单位和模型层级,另外记录转换脚本的版本、外部资料的修订号以及使用的 Profile。若验证规则提供自动修复,仍需核对它究竟改了哪个 layer、是否改变原 CAD 对应的关节 frame;自动修复不意味着可以覆盖原件。Isaac Sim 文档还区分当前 stage(可能包含未保存编辑)与磁盘路径验证:出具报告前应保存最终产物,重新从磁盘载入再跑一遍,避免演示界面绿灯、交付文件仍是旧版。[2][4]
物理参数的风险也有层次。质量为正、惯量张量在数学上可容许,是必要的结构检查,却不足以表明转动惯量和真实减速器相符。夹爪能抓住方块说明在所设接触模型下接触有效,不说明换成光滑塑料、粉尘表面或不同重量后仍能抓牢。工程上可把待定参数列成表格:来源、取值、允许范围、对任务成功率的敏感度、下一次实测方式。优先实测对抓持和控制影响最大的项目,保留不确定性,而不是用单一“推荐摩擦系数”盖过不同材料配对。[1][3]
建议设计三类回归:一是资产静态规则,包括未解析引用、单位和缺少驱动;二是单关节和夹爪的运行时测试,包括限位、基座稳定性、碰撞回避和放手后物体自由运动;三是任务级测试,包括不同初始位姿、重复运行和扰动。把失败按“CAD 源数据、转换、物理估计、控制器、场景配置”分类,回头修正对应环节。这样模型辅助生成脚本时也有明确的反馈回路:代理提出修改,工具给出结果,人来审阅假设和异常,而不是让代理自己宣布达到生产标准。
一个可复用的 CAD→资产验收清单
- 输入冻结:确认 CAD 和技术手册机型一致;列出零件、夹爪、坐标系、单位、许可与缺失资料。
- 转换核对:STEP 导入 OpenUSD 后检查 stage、零件层级、资源依赖、尺度、方向和装配变换;保留原文件与导出件版本。
- 外观复核:在多视角比对材料及形状;把未测量的外观估计和感知相关材质分别标注。
- 物理建模:为刚体、关节、驱动、碰撞体及摩擦等每个关键参数标记实测、厂商资料、URDF 参考或估计;给估计项设计敏感性测试。
- 规则与运行验收:选定 Profile/版本,静态验证与 Isaac Sim 运行时验证都要保存结果;将缺失运行时检查、Warning、未测试姿态列为未关闭项。
- 任务回归:以可重复的拾放或目标工序测试,在失败样例与扰动下复跑;只有与真实硬件对照、校准后的参数,才能用于更强的现实性能判断。
对管理者而言,交付物应是一组证据,而非一个好看的模型截图:冻结的 CAD 与来源、转换后的 USD 和资源依赖、参数台账、所用规则档案及完整报告、重复运行的任务日志、未解决假设。约定哪些场景只允许研究验证,哪些可用于控制器开发,哪些还需硬件在环或实物标定;不同用途要求的精度和误差容忍并不相同。尤其对人机协作设备,模型的自碰撞检查和任务成功率绝不可替代现场风险评估。把这些边界写在资产包旁边,下一位使用者才不会因“SimReady”名称而误解其适用范围。
本文依据 NVIDIA 五步案例、SimReady Foundation README、UsdPhysics 与 Isaac Sim 资产验证文档;未取得示例 CAD 或仿真工程,亦未重跑验证器和拾放任务。Foundation 仓库的 main 文档会更新,不能把今天看到的依赖与档案列表不经版本固定地回填到某次历史演示。静态规则与有限任务测试只覆盖已设定的检查条件。估计摩擦系数仍需实测,仿真与现场的差异仍需校准。
资料来源
[1] NVIDIA Developer Blog,五步案例、参数假设和任务结果:https://developer.nvidia.com/blog/5-steps-to-create-simready-assets-for-robotics-with-frontier-ai-models/
[2] NVIDIA SimReady Foundation 仓库 README、规范层级及验证环境:https://github.com/NVIDIA/simready-foundation
[3] OpenUSD,UsdPhysics 规范(刚体、关节、接触与单位):https://openusd.org/release/api/usd_physics_page_front.html
[4] Isaac Sim,Asset Validation 文档(Profile 与运行时检查):https://docs.isaacsim.omniverse.nvidia.com/latest/robot_setup/asset_validation.html