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 (位点),可应用于 UsdGeomSphere、UsdGeomCapsule、UsdGeomCylinder 和 UsdGeomCube。
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 中,我们可以在路径目标上指定诸如 sidesite 和 divisor 之类的属性;但在 USD 中,我们无法如此优雅地将数据附加到关系属性上,因此这些属性变成了索引数组属性,例如 mjc:sideSites 和 mjs:path:divisors。