访问原生物理 API#
警告
原生物理 API 提供特定后端的底层访问方式,可能绕过 Isaac Lab 的缓冲、验证、顺序转换和生命周期管理。除非需要引擎原生功能或开销更低的数据路径,否则应使用统一的资源和传感器 API。
选择访问层级#
只有统一 API 无法提供工作负载所需功能或数据路径时,才使用原生访问,并将相关代码放在持有仿真状态的组件附近。可跨后端使用的 API 边界与后端生命周期见 后端架构 。
为需要跨后端运行的任务代码使用 Isaac Lab 统一的数据与写入 API。
如果已有选择符合需要,复用 Isaac Lab 持有的原生句柄。
只有持有对象的 Isaac Lab 组件未提供所需选择或功能时,才自行创建底层引擎访问。
所有权与同步#
后端 |
原生入口 |
选择方式 |
数据所有权 |
读写方式 |
同步 |
失效条件 |
|---|---|---|---|---|---|---|
PhysX |
通过 prim 通配模式选择类型化视图 |
引擎或视图持有的缓冲区 |
通过 getter/setter 读取和写回 |
显式调用 setter,必要时刷新运动学 |
视图失效、硬重置或清理后重新获取 |
|
Newton |
|
通用标签和 |
引擎持有的实时 Warp 数组 |
通过直接指针或选择器读写 |
必要时同步正向运动学,并通知模型变更 |
状态缓冲区交换后重新获取当前状态;模型重建后重新获取所有对象 |
OvPhysX |
张量类型加模式或 prim 列表 |
调用方持有、通过引擎绑定传输数据的缓冲区 |
显式 |
调用方遵守访问模式、设备、数据类型和形状要求 |
USD 舞台或运行时清理后重新获取 |
向渲染器和可视化器提供数据时,Isaac Lab 也会读取原生状态与模型。这一读取路径见 场景数据提供器 。
各后端的专用指南#
PhysX:张量视图与原生接口访问
Newton:访问原生接口
OvPhysX:访问原生接口