Add MjcEqualityAPI as a base class for MuJoCo constraints and MjcEqualityWeldAPI for representing weld constraints.

This change introduces two new USD API schema:
* MjcEqualityAPI - base API for representing MuJoCo equality constraints in USD, this will typically be applied to joints such as UsdPhysicsFixedJoint.
* MjcEqualityWeldAPI - extends MjcEqualityAPI for MuJoCo's weld equality constraints with an attribute for torqueScale.

The usd_decoder is updated to parse UsdPhysicsFixedJoints and convert the new schema attributes into the appropriate mjsEquality data fields.

PiperOrigin-RevId: 856723634
Change-Id: I0982fd3168b643f8e91d87bb5ae5933e526b63a1
This commit is contained in:
Sam Haves
2026-01-15 10:43:29 -08:00
committed by Copybara-Service
parent d86acd7e12
commit c08e1d9e6e
14 changed files with 1004 additions and 12 deletions
@@ -634,7 +634,7 @@ struct MjcPhysicsTokensType {
const TfToken mjcSliderSite;
/// \brief "mjc:solimp"
///
/// MjcPhysicsCollisionAPI
/// MjcPhysicsCollisionAPI, MjcPhysicsEqualityAPI
const TfToken mjcSolimp;
/// \brief "mjc:solimpfriction"
///
@@ -650,7 +650,7 @@ struct MjcPhysicsTokensType {
const TfToken mjcSolmix;
/// \brief "mjc:solref"
///
/// MjcPhysicsCollisionAPI
/// MjcPhysicsCollisionAPI, MjcPhysicsEqualityAPI
const TfToken mjcSolref;
/// \brief "mjc:solreffriction"
///
@@ -678,8 +678,12 @@ struct MjcPhysicsTokensType {
const TfToken mjcStiffness;
/// \brief "mjc:target"
///
/// MjcPhysicsActuator
/// MjcPhysicsActuator, MjcPhysicsEqualityAPI
const TfToken mjcTarget;
/// \brief "mjc:torqueScale"
///
/// MjcPhysicsEqualityWeldAPI
const TfToken mjcTorqueScale;
/// \brief "mjc:torsionalfriction"
///
/// MjcPhysicsMaterialAPI
@@ -764,6 +768,14 @@ struct MjcPhysicsTokensType {
///
/// Schema identifier and family for MjcPhysicsCollisionAPI
const TfToken MjcCollisionAPI;
/// \brief "MjcEqualityAPI"
///
/// Schema identifier and family for MjcPhysicsEqualityAPI
const TfToken MjcEqualityAPI;
/// \brief "MjcEqualityWeldAPI"
///
/// Schema identifier and family for MjcPhysicsEqualityWeldAPI
const TfToken MjcEqualityWeldAPI;
/// \brief "MjcImageableAPI"
///
/// Schema identifier and family for MjcPhysicsImageableAPI