物理后端#
Isaac Lab 在统一的资源、传感器和场景 API 之下支持三种物理后端。先根据运行时和求解器系列的需求选择后端,再选择目标任务提供的预设。预设选择见 后端与预设 ,实现架构见 后端架构 。
后端与求解器的术语#
后端 将物理运行时集成到 Isaac Lab 中,负责仿真生命周期和数据交换。 求解器 是在后端内部推进物理状态的数值方法。因此,Newton 不等同于 MJWarp:Newton 支持 MJWarp、Kamino、VBD、MPM 等多种求解器。
物理预设 是任务支持的配置,用于选择后端,以及适用时该后端中的某个求解器。不同求解器系列之间,设置与行为在数值上不能直接对应。切换求解器时,应做好重新调参的准备,详见 求解器差异 。
选择后端#
后端 |
运行时要求 |
成熟度 |
求解器系列 |
适用用途 |
|---|---|---|---|---|
PhysX |
Isaac Sim 和 Omniverse Kit |
成熟的参考实现 |
默认使用 PhysX TGS,也可使用 PGS |
经过广泛验证的 Isaac Lab 工作流程,以及行为一致性比较的参考 |
Newton |
Warp 原生;不依赖 Kit 的运行方式无需 Isaac Sim |
测试阶段 |
支持多种求解器,MJWarp 是主要的已验证实现 |
不依赖 Kit 的仿真,以及需要 Newton 求解器选项的工作流程 |
OvPhysX |
可选的 |
实验阶段 |
PhysX,主要通过 USD 配置 |
不依赖 Kit 的实验性 PhysX 工作流程 |
受支持的安装方式和当前可选依赖组见 安装 。不要在同一个进程中混用 OvPhysX 和 Kit 运行时。
PhysX 与 Newton 之间的一般策略验证流程见 在 PhysX 和 Newton 之间迁移策略 。检查点使用的关节或刚体顺序与目标后端不一致时,请参阅 关节系统顺序指南 。
PhysX#
PhysX 是 Isaac Lab 的成熟参考后端,通过 Isaac Sim 运行,默认使用时间高斯–赛德尔(TGS)求解器,也提供投影高斯–赛德尔(PGS)求解器。其 GPU 场景容量是静态分配的,因此接触密集或大规模向量化场景可能需要显式设置缓冲区大小。关节机器人应先使用 TGS;如果较刚硬的旧资源在 TGS 中表现不佳,可以评估 PGS。求解器选择值和默认值以生成的 API 文档为准。
场景级字段通过 PhysxCfg 配置,字段列表以自动生成的 API 参考为准。各物理对象的属性仍通过 模式配置类 中介绍的 USD schema 配置设置。求解器选择、迭代次数、接触、稳定性和 GPU 容量的诊断与调优流程见 PhysX 求解器调优 。后端如何启动 Isaac Sim、管理仿真生命周期以及提供 PhysX 张量视图,见 PhysX 后端 。
Newton#
Newton 是 Warp 原生后端,可在不使用 Isaac Sim 的情况下运行。它与 Isaac Lab 的集成处于测试阶段,MJWarp 是主要的已验证求解器。求解器选项、任务支持及 Newton 自身求解器文档链接见 Newton 后端页面 。
OvPhysX#
OvPhysX 是不依赖 Kit 的实验性 PhysX 实现。它无需 Omniverse Kit 即可运行 PhysX,场景级求解器设置主要来自 USD 的 PhysicsScene prim。只有 USD 中没有对应表示的设置才放在 OvPhysxCfg 中,相关字段见生成的 API 文档。
功能支持仍在完善中。当前限制和运行时约束见 OvPhysX 专用说明 。
查找受支持的任务和 API#
不同任务支持的后端有所不同。通过 环境 浏览已注册环境及其预设,也可以查看任务当前提供的选项:
uv run isaaclab train --rl_library rsl_rl \
--task Isaac-Cartpole-Direct --help
任务帮助信息是其 physics= 选项的权威依据。原生求解器数据和视图见 访问原生物理 API 。字段级配置请查看 PhysxCfg 、 NewtonCfg 及其求解器配置,以及 OvPhysxCfg 对应的生成 API 文档。