Allow actuators to add damping and armature to joint and tendon transmissions.

PiperOrigin-RevId: 886899849
Change-Id: I02200ee0d4f7c96096d8188b95f823b566562a30
This commit is contained in:
Yuval Tassa
2026-03-20 11:40:35 -07:00
committed by Copybara-Service
parent f7bd6d15f7
commit 510d75f4cf
25 changed files with 1164 additions and 77 deletions
+53
View File
@@ -1663,6 +1663,14 @@ STRUCTS: Mapping[str, StructDecl] = dict([
doc="id of joint's body",
array_extent=('njnt',),
),
StructFieldDecl(
name='jnt_actuatorid',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='actuator contributing damping / armature',
array_extent=('njnt',),
),
StructFieldDecl(
name='jnt_group',
type=PointerType(
@@ -3919,6 +3927,14 @@ STRUCTS: Mapping[str, StructDecl] = dict([
doc='material id for rendering',
array_extent=('ntendon',),
),
StructFieldDecl(
name='tendon_actuatorid',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='actuator contributing damping / armature',
array_extent=('ntendon',),
),
StructFieldDecl(
name='tendon_group',
type=PointerType(
@@ -4199,6 +4215,30 @@ STRUCTS: Mapping[str, StructDecl] = dict([
doc='transmission id: joint, tendon, site',
array_extent=('nu', 2),
),
StructFieldDecl(
name='actuator_damping',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='linear damping coefficient',
array_extent=('nu',),
),
StructFieldDecl(
name='actuator_dampingpoly',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='high-order damping coefficients',
array_extent=('nu', 'mjNPOLY'),
),
StructFieldDecl(
name='actuator_armature',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='armature added to target (joint, tendon)',
array_extent=('nu',),
),
StructFieldDecl(
name='actuator_actadr',
type=PointerType(
@@ -9242,6 +9282,19 @@ STRUCTS: Mapping[str, StructDecl] = dict([
type=ValueType(name='double'),
doc='automatic range setting for position and intvelocity',
),
StructFieldDecl(
name='damping',
type=ArrayType(
inner_type=ValueType(name='double'),
extents=(3,),
),
doc='damping coefficients',
),
StructFieldDecl(
name='armature',
type=ValueType(name='double'),
doc='armature inertia',
),
StructFieldDecl(
name='ctrllimited',
type=ValueType(name='int'),