用途:在 USD 中组装并校验多连杆、多臂机器人 articulation,配合 ArticulationRootAPI、固定关节和 Isaac Robot Schema 覆盖层,在部署前确认机械结构正确。资料强调“视觉合理不等于机械正确”,不 articulation 就等于不存在。
主要能力与脚本:提供三个脚本。scripts/apply_robot_schema.py 为已有 USD articulation 应用 Isaac Robot Schema 覆盖层;scripts/multi_arm_assembly.py 用 FixedJoint 组装多臂机器人;scripts/validate_articulation.py 校验多臂机器人 USD articulation 结构。调用示例如 run_script("scripts/apply_robot_schema.py", args=["--help"]);在 Isaac Sim 构建树中可用 ./python.sh(Linux)或 python.bat(Windows)运行。
组装要点:assemble_multi_arm_robot(stage, chassis_usd, arm_usd, robot_root, arm_offset, chassis_body_path, arm_base_path) 会生成底盘与机械臂、创建 FixedJoint,并从机械臂移除 ArticulationRootAPI。不推荐通过 sublayer 两次引用同一机械臂 USD、在 parts 层用 over "Geometry" 加臂,或假设视觉存在即物理连接。Robot Schema 支持 IsaacRobotAPI、IsaacLinkAPI、IsaacJointAPI、IsaacSiteAPI、IsaacNamedPose 等,robot_type 有效取值含 Default、End Effector、Manipulator、Humanoid、Wheeled、Holonomic、Quadruped、Mobile Manipulators、Aerial。
校验清单:底盘上恰好一个 UsdPhysics.ArticulationRootAPI;每个顶层子系统在 flatten-before-deploy 前至少有一个根分支 FixedJoint 锚定;所有关节体可经单一关节层级从根到达;根上有 IsaacRobotAPI 且 robot_type 有效;ROBOT_LINKS/ROBOT_JOINTS 关系已填充;每个 grasp 帧带 IsaacSiteAPI 而非已弃用的 IsaacReferencePointAPI;从四个角度渲染并交视觉 LLM 做 PASS/FAIL 判断。
前置条件与限制:需要构建好的 Isaac Sim($ISAAC_SIM_DIR 或 _build/linux-x86_64/release)、NVIDIA GPU 与较新驱动,以及 isaac-sim-orchestrator 提供的环境变量契约。目标为 Isaac Sim 6 / Kit 110,除非某节另有说明;不替代 NVIDIA 官方文档处理未支持的边界情况。常见失败包括机械臂浮动(缺 FixedJoint)、多个 articulation root、机械臂独立成树、RobotPoser.solve_ik() 报错、robot_type 取值被拒等,均给出对应修复方向。除上述内容外,其他细节暂未提供。