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

关键帧中的值顺序应与组合场景 (composed stage) 中刚体的深度优先遍历顺序相对应。

MjcTendon#

此类型表示固定肌腱和空间肌腱。

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