访问原生物理 API#

警告

原生物理 API 提供特定后端的底层访问方式,可能绕过 Isaac Lab 的缓冲、验证、顺序转换和生命周期管理。除非需要引擎原生功能或开销更低的数据路径,否则应使用统一的资源和传感器 API。

选择访问层级#

只有统一 API 无法提供工作负载所需功能或数据路径时,才使用原生访问,并将相关代码放在持有仿真状态的组件附近。可跨后端使用的 API 边界与后端生命周期见 后端架构 。

  1. 为需要跨后端运行的任务代码使用 Isaac Lab 统一的数据与写入 API。

  2. 如果已有选择符合需要,复用 Isaac Lab 持有的原生句柄。

  3. 只有持有对象的 Isaac Lab 组件未提供所需选择或功能时,才自行创建底层引擎访问。

所有权与同步#

后端

原生入口

选择方式

数据所有权

读写方式

同步

失效条件

PhysX

get_physics_sim_view()

通过 prim 通配模式选择类型化视图

引擎或视图持有的缓冲区

通过 getter/setter 读取和写回

显式调用 setter,必要时刷新运动学

视图失效、硬重置或清理后重新获取

Newton

get_model() 、 get_state_0() 、 get_control() 和 get_contacts()

通用标签和 ArticulationView

引擎持有的实时 Warp 数组

通过直接指针或选择器读写

必要时同步正向运动学,并通知模型变更

状态缓冲区交换后重新获取当前状态;模型重建后重新获取所有对象

OvPhysX

get_physx_instance() 或 OvPhysxView

张量类型加模式或 prim 列表

调用方持有、通过引擎绑定传输数据的缓冲区

显式 read()/write() 或带检查的便捷方法

调用方遵守访问模式、设备、数据类型和形状要求

USD 舞台或运行时清理后重新获取

向渲染器和可视化器提供数据时,Isaac Lab 也会读取原生状态与模型。这一读取路径见 场景数据提供器 。

各后端的专用指南#