用途
本技能面向 Isaac Sim 6 / Kit 110,用于配置物理仿真中的 PhysicsScene 以及每个元件的物理属性,包括刚体、碰撞、材质、关节驱动、求解器选择和物理传感器,并提供可执行的示例。
主要能力
场景级配置
可定义 PhysicsScene,设置重力方向与大小;通过 PhysxSchema.PhysxSceneAPI 配置每秒时间步长、CCD、稳定化和求解器类型(TGS 或 PGS)。文档给出不同场景的推荐物理频率,例如标准刚体场景 60–120 Hz,堆叠/接触密集 240 Hz,高速碰撞 120 Hz 配合 2–4 子步,小零件振动通常 480 Hz,旋转体/陀螺 480 Hz,刚性接触链(牛顿摆、擒纵机构)480 Hz。可设置每个刚体的求解器位置迭代和速度迭代次数,例如简单刚体 16/4、堆叠 32/8、复杂关节/关节链 64/16、刚性接触链 64/32。文档还说明何时应禁用稳定化,例如旋转陀螺、飞轮、摆锤机构以及依赖角速度守恒的场景。
元件级物理设置
提供脚本 scripts/prim_physics_setup.py 用于动态、静态和运动学刚体设置。规则是 RigidBodyAPI 与 CollisionAPI 应作用于同一 prim,避免父子拆分导致间歇性碰撞失败。对于带缩放的静态碰撞体,推荐“先平移后缩放”模式:父 xform 负责位置,子 mesh 负责缩放,避免碰撞边界错误。还支持通过 MassAPI 设置质量、质心和惯性张量,URDF 导入机器人时建议优先使用 import_inertia_tensor: true。
接触材质
可创建接触材质并设置静摩擦、动摩擦和恢复系数,文档给出常见材质配对的参考值,例如混凝土-混凝土、钢-钢、橡胶-橡胶、橡胶-混凝土、木-木、通用金属、塑料、毛毡和纸板-钢。对于刚性接触链,可在 PhysxMaterialAPI 上设置 restitutionCombineMode=max。
关节驱动
可通过 UsdPhysics.DriveAPI 配置角/线性驱动,设置类型(force 或 acceleration)、刚度 Kp、阻尼 Kd、最大力和目标位置。对于 RL 训练,建议将驱动类型设为 none,刚度/阻尼设为 0,避免主动 PD 驱动与 RL 智能体冲突。对于旋转摆关节,可将关节摩擦设为 0。
物理传感器
当前命名空间为 isaacsim.sensors.experimental.physics,旧路径 isaacsim.sensors.physics 仍可用但已弃用。支持接触传感器、IMU、力传感器、关节状态传感器以及射线查询。传感器使用前需要调用 app_utils.play(commit=True)。文档还提到更高保真传感器仿真可参考 isaac-sim-sensor 和 isaac-camera。
后端选择与读取
支持 Newton 与 PhysX 后端切换,可通过 SimulationManager.switch_physics_engine 或启动参数显式选择。Newton 支持不同求解器,包括 Featherstone、MuJoCo、XPBD、SemiImplicit 和 VBD,适用于 RL 训练、可微仿真、软体/布料/可变形体以及 MuJoCo 基线验证。文档特别强调物理到 USD 的读回应使用模拟状态,例如 RigidPrim.get_world_pose() 或 Articulation.get_world_poses(),而不是 UsdGeom.XformCache,因为 updateToUsd=True 将物理状态写入 Fabric,而非 USD 层。
使用方式
从代理运行时调用脚本可使用 run_script("scripts/prim_physics_setup.py", args=["--help"])。在已构建的 Isaac Sim 目录中,可在 _build/*/release 下用 ./python.sh(Linux)或 python.bat(Windows)运行同一文件,也可直接执行不依赖模拟器的 shell 辅助脚本。
适用场景
适用于在 Isaac Sim 6 / Kit 110 中配置物理场景、刚体与碰撞、接触材质、关节驱动、物理传感器和仿真状态读取,也适用于 RL 训练、可微仿真、软体与可变形体、MuJoCo 策略迁移等场景。
限制
目标为 Isaac Sim 6 / Kit 110,除非某节另有说明。独立物理需要已完成的 source/libraries 构建或匹配的已安装 wheels/SDK;多数单元和 headless 物理测试无需 GPU。Kit 设置、扩展自动切换、时间线或视口需要已构建的 Isaac Sim 和来自 isaac-sim-orchestrator 的 shell 环境。该技能不替代 NVIDIA 官方文档对不支持边界情况的说明。文档还列出常见故障排查,例如黑屏或空帧可能缺光源或未使用 RTX 渲染模式;加载 stage 或首次渲染挂起可能与 MDL 编译或 stage 过大有关,可参考 isaac-sim-troubleshooting 中的隔离步骤。