物理后端#

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

可选的 ovphysx 运行时依赖组,无需 Omniverse Kit

实验阶段

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 文档。