Add position-dependent sensors to MJX: magnetometer, ballquat, subtreecom, framepos, framexaxis, frameyaxis, framezaxis, and clock.

PiperOrigin-RevId: 663668212
Change-Id: Ifc9adc6bff4544172ab22572da04a093aebfdbd4
This commit is contained in:
Taylor Howell
2024-08-16 03:09:23 -07:00
committed by Copybara-Service
parent 6c76678167
commit 6db96e07e4
4 changed files with 195 additions and 19 deletions
+51 -5
View File
@@ -1,28 +1,74 @@
<!-- For validating sensors:
* position-dependent:
* position-dependent sensors:
-magnetometer
-jointpos
-actuatorpos
* velocity-dependent:
* acceleration/force-dependent:
-ballquat
-framepos
-framexaxis
-frameyaxis
-framezaxis
-subtreecom
-clock
* velocity-dependent sensors:
* acceleration/force-dependent sensors:
-->
<mujoco model="sensor">
<worldbody>
<!-- body 0 -->
<!-- tree 0 -->
<body name="body0" pos="1 2 3">
<joint name="hinge0" type="hinge" axis="1 0 0"/>
<geom size="1"/>
<site name="site0" pos=".1 .2 .3"/>
<body name="body1" pos="0.1 0.2 0.3">
<joint name="hinge1" type="hinge" axis="0 1 0"/>
<geom size="0.25"/>
<site name="site1" pos=".2 .4 .6"/>
</body>
</body>
<!-- body 2 -->
<body name="body2" pos=".1 .1 .1">
<joint name="ballquat2" type="ball" pos="0.1 0.1 0.1"/>
<geom size="1"/>
</body>
<!-- body 3 -->
<body name="body3" pos="-.1 -.1 -.1">
<joint name="ballquat3" type="ball" pos="0.1 0.2 0.3"/>
<geom size="1"/>
</body>
</worldbody>
<actuator>
<motor name="motor0" joint="hinge0" ctrlrange="-1 1" ctrllimited="true"/>
<motor name="motor0" joint="hinge0" ctrlrange="-1 1" gear="10"
ctrllimited="true"/>
<motor name="motor1" joint="hinge1" ctrlrange="-1 1" gear="10"
ctrllimited="true"/>
</actuator>
<sensor>
<!-- position-dependent sensors -->
<magnetometer name="magnetometer0" site="site0"/>
<jointpos name="jointpos0" joint="hinge0"/>
<actuatorpos name="actuatorpos0" actuator="motor0"/>
<ballquat name="ballquat2" joint="ballquat2"/>
<framexaxis name="framexaxis0" objtype="site" objname="site0"/>
<framezaxis name="framezaxis0" objtype="site" objname="site0"/>
<frameyaxis name="frameyaxis0" objtype="site" objname="site0"/>
<framepos name="framepos0" objtype="site" objname="site0"/>
<subtreecom name="subtreecom0" body="body0"/>
<magnetometer name="magnetometer1" site="site1"/>
<jointpos name="jointpos1" joint="hinge1"/>
<actuatorpos name="actuatorpos1" actuator="motor1"/>
<framepos name="framepos1" objtype="site" objname="site1"/>
<framezaxis name="framezaxis1" objtype="site" objname="site1"/>
<framexaxis name="framexaxis1" objtype="site" objname="site1"/>
<ballquat name="ballquat3" joint="ballquat3"/>
<frameyaxis name="frameyaxis1" objtype="site" objname="site1"/>
<subtreecom name="subtreecom1" body="body1"/>
<clock/>
<!-- velocity-dependent sensors -->
<!-- acceleration/force-dependent sensors -->
</sensor>