Add sleep related data structures

PiperOrigin-RevId: 829055431
Change-Id: I1ccbd77a57044a754ae7db611b4c2c0010fbda53
This commit is contained in:
Yuval Tassa
2025-11-06 12:09:59 -08:00
committed by Copybara-Service
parent 3080e3424f
commit 252a0d73df
37 changed files with 1907 additions and 186 deletions
+174
View File
@@ -148,6 +148,11 @@ STRUCTS: Mapping[str, StructDecl] = dict([
type=ValueType(name='mjtNum'),
doc='convex collision solver tolerance',
),
StructFieldDecl(
name='sleep_tolerance',
type=ValueType(name='mjtNum'),
doc='sleep velocity tolerance',
),
StructFieldDecl(
name='gravity',
type=ArrayType(
@@ -1846,6 +1851,54 @@ STRUCTS: Mapping[str, StructDecl] = dict([
doc='diag. inertia in qpos0',
array_extent=('nv',),
),
StructFieldDecl(
name='dof_length',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='linear: 1; angular: approx. length scale',
array_extent=('nv',),
),
StructFieldDecl(
name='tree_bodyadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='start addr of bodies',
array_extent=('ntree',),
),
StructFieldDecl(
name='tree_bodynum',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of bodies in tree',
array_extent=('ntree',),
),
StructFieldDecl(
name='tree_dofadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='start addr of dofs',
array_extent=('ntree',),
),
StructFieldDecl(
name='tree_dofnum',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of dofs in tree',
array_extent=('ntree',),
),
StructFieldDecl(
name='tree_sleep_policy',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='sleep policy (mjtSleepPolicy)',
array_extent=('ntree',),
),
StructFieldDecl(
name='geom_type',
type=PointerType(
@@ -3742,6 +3795,22 @@ STRUCTS: Mapping[str, StructDecl] = dict([
doc='group for visibility',
array_extent=('ntendon',),
),
StructFieldDecl(
name='tendon_treenum',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc="number of trees along tendon's path",
array_extent=('ntendon',),
),
StructFieldDecl(
name='tendon_treeid',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc="first two trees along tendon's path",
array_extent=('ntendon', 2),
),
StructFieldDecl(
name='tendon_limited',
type=PointerType(
@@ -5136,6 +5205,26 @@ STRUCTS: Mapping[str, StructDecl] = dict([
type=ValueType(name='int'),
doc='number of dofs in all islands',
),
StructFieldDecl(
name='ntree_awake',
type=ValueType(name='int'),
doc='number of awake trees',
),
StructFieldDecl(
name='nbody_awake',
type=ValueType(name='int'),
doc='number of awake dynamic and static bodies',
),
StructFieldDecl(
name='nparent_awake',
type=ValueType(name='int'),
doc='number of bodies with awake parents',
),
StructFieldDecl(
name='nv_awake',
type=ValueType(name='int'),
doc='number of awake dofs',
),
StructFieldDecl(
name='time',
type=ValueType(name='mjtNum'),
@@ -5283,6 +5372,14 @@ STRUCTS: Mapping[str, StructDecl] = dict([
doc='sensor data array',
array_extent=('nsensordata',),
),
StructFieldDecl(
name='tree_asleep',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='<0: awake; >=0: index cycle of sleeping trees',
array_extent=('ntree',),
),
StructFieldDecl(
name='plugin',
type=PointerType(
@@ -5667,6 +5764,46 @@ STRUCTS: Mapping[str, StructDecl] = dict([
doc='was bounding volume checked for collision',
array_extent=('nbvh',),
),
StructFieldDecl(
name='tree_awake',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='is tree awake; 0: asleep; 1: awake',
array_extent=('ntree',),
),
StructFieldDecl(
name='body_awake',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='body sleep state (mjtSleepState)',
array_extent=('nbody',),
),
StructFieldDecl(
name='body_awake_ind',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='indices of awake and static bodies',
array_extent=('nbody',),
),
StructFieldDecl(
name='parent_awake_ind',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='indices of bodies with awake or static parents',
array_extent=('nbody',),
),
StructFieldDecl(
name='dof_awake_ind',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='indices of awake dofs',
array_extent=('nv',),
),
StructFieldDecl(
name='flexedge_velocity',
type=PointerType(
@@ -6003,6 +6140,38 @@ STRUCTS: Mapping[str, StructDecl] = dict([
doc='first efc address involving tendon; -1: none',
array_extent=('ntendon',),
),
StructFieldDecl(
name='tree_island',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='island id of this tree; -1: none',
array_extent=('ntree',),
),
StructFieldDecl(
name='island_ntree',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of trees in this island',
array_extent=('nisland',),
),
StructFieldDecl(
name='island_itreeadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='island start address in itree vector',
array_extent=('nisland',),
),
StructFieldDecl(
name='map_itree2tree',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='map from itree to tree',
array_extent=('ntree',),
),
StructFieldDecl(
name='dof_island',
type=PointerType(
@@ -6815,6 +6984,11 @@ STRUCTS: Mapping[str, StructDecl] = dict([
type=ValueType(name='double'),
doc='gravity compensation',
),
StructFieldDecl(
name='sleep',
type=ValueType(name='mjtSleepPolicy'),
doc='sleep policy',
),
StructFieldDecl(
name='userdata',
type=PointerType(