mjcPhysics#

警告

OpenUSD 支持目前是实验性的,可能会频繁变更。

mjcPhysics 模式 (schema) 允许直接在 USD 文件中详细指定 MuJoCo 仿真环境。其目的并非取代 UsdPhysics,而是在必要时扩展现有概念并创建新的类型。

该模式既可以以无代码 (codeless) 方式使用,也可以通过其 C++ 绑定构建。我们已通过 usdGenSchema 为 MuJoCo 内部使用预生成了相关代码,但它也应能独立于 MuJoCo 运行。

API 模式#

MjcSceneAPI#

此 API 模式为 MuJoCo 仿真提供全局选项。它是 MJCF 中 <option><option/flag><compiler> 元素的集合。用户应将其应用于现有的 UsdPhysicsScene 原语 (prim)。

关键属性包括:

  • mjc:option:此命名空间中的属性映射到 <option> 元素。

  • mjc:flag:此命名空间中的属性映射到 <option/flag> 元素。

  • mjc:compiler:此命名空间中的属性映射到 <compiler> 元素。

MjcSiteAPI#

此类 API 用于定义 MuJoCo 站点 (site),可应用于 UsdGeomSphereUsdGeomCapsuleUsdGeomCylinderUsdGeomCube

MjcImageableAPI#

此类 API 为 MuJoCo 中的纯视觉实体提供属性;在 MuJoCo 术语中,我们将这些实体量化为具有 contype = conaffinity = 0 的属性。

MjcCollisionAPI#

此类 API 应用于表示碰撞几何体的原语,应与 UsdPhysicsCollisionAPI 一起使用。

MjcMeshCollisionAPI#

此类 API 应用于表示网格碰撞几何体的原语,应与 UsdPhysicsMeshCollisionAPI 一起使用。

MjcJointAPI#

此类 API 应用于 UsdPhysicsJoint 原语,添加额外的属性以完整描述 MuJoCo 关节。

MjcMaterialAPI#

此类 API 为物理材质提供属性,是 UsdPhysicsMaterialAPI 的扩展。

类型模式#

MjcActuator#

此类表示一个 MuJoCo 执行器 (actuator),负责通过关系 (relationship) 向传输目标关节、物体或特定站点施加力。

我们没有使用现有的 UsdPhysicsDriveAPI,因为它更接近运行时构造,且其概念映射不够紧密。

MjcKeyframe#

此类型持有表示特定时间点仿真器状态的张量值。

在 MJCF 中,这是 <keyframe> 元素,具有一个 time 属性。在 USD 中,我们将该时间属性映射到 timeSamples

关键帧中值的顺序应映射到合成阶段中刚体的深度优先遍历顺序。

MjcTendon#

此类型表示固定腱 (fixed tendon) 和空间腱 (spatial tendon)。

在 MJCF 中,这是 <tendon> 元素。腱路径由 mjc:path 关系属性中的目标有序列表表示。在 MJCF 中,我们可以为路径目标指定 sidesitedivisor 等属性;但在 USD 中,我们无法优雅地将数据附加到关系属性上,因此这些属性转化为索引数组属性,例如 mjc:sideSitesmjs:path:divisors