51aa375af0
- Add `joint-actuatorforcerange` for clamping total actuator force at joints. Add `sensor-jointactuatorfrc` for sensing total actuator forces on a single joint. See [documentation](https://mujoco.readthedocs.io/en/latest//modeling.html#actuator-force-clamping) for justification and use cases. - Add simple car model to `model/`. - Move actuation-related test models into `engine/testdata/actuation/`. PiperOrigin-RevId: 549355941 Change-Id: I27f6c1f80426d73a2811ef5ae74684a228b2fbd1
73 lines
3.0 KiB
XML
73 lines
3.0 KiB
XML
<mujoco>
|
|
<compiler autolimits="true"/>
|
|
<!--
|
|
Adding a high fluid viscosity and using implicit integration for extra stabillity.
|
|
Extra stabillity is required because the abstract "arm" model is not very realistic.
|
|
(e.g. 4 consecutive ball joints is not a realistic kinematic design)
|
|
-->
|
|
<option viscosity="10" integrator="implicit">
|
|
<flag gravity="disable" contact="disable"/>
|
|
</option>
|
|
|
|
<statistic meansize=".05"/>
|
|
|
|
<default>
|
|
<default class="translation">
|
|
<general gainprm="100" biasprm="0 -100 -10" biastype="affine" ctrlrange="-.25 .25"/>
|
|
</default>
|
|
<default class="rotation">
|
|
<!--
|
|
Note that the rotational control range is purposefully limited to (-pi/2, pi/2) to avoid the
|
|
documented instabillity near pi, which is due to taking quaternion differences.
|
|
Increase this range to pi or bigger in order to see the instabillity.
|
|
See here for more details https://mujoco.readthedocs.io/en/latest/XMLreference.html#actuator
|
|
-->
|
|
<general gainprm=".5" biasprm="0 -.5 -.05" biastype="affine" ctrlrange="-1.571 1.571"/>
|
|
</default>
|
|
<!--
|
|
Clamping the total actuator torque at the joints means that the motion produced by the Cartesian
|
|
commands is achievable by individual joint actuators with the specified torque limits.
|
|
See https://mujoco.readthedocs.io/en/latest//modeling.html#actuator-force-clamping
|
|
-->
|
|
<joint stiffness="1e-1" actuatorforcerange="-1 1"/>
|
|
<site type="box" size=".012 .012 .012" rgba=".7 .7 .8 1"/>
|
|
</default>
|
|
|
|
<worldbody>
|
|
<light pos="0 0 2"/>
|
|
<geom type="box" size=".25 .25 .01" pos="0 0 -.01"/>
|
|
<site name="reference" pos="0 0 .25"/>
|
|
<body name="arm" pos="-.25 .25 0">
|
|
<joint axis="1 0 0"/>
|
|
<joint axis="0 1 0"/>
|
|
<geom type="box" size=".01" fromto="0 0 0 0 0 .25"/>
|
|
<body pos="0 0 .25">
|
|
<joint axis="0 1 0"/>
|
|
<joint axis="0 0 1"/>
|
|
<geom type="box" size=".01" fromto="0 0 0 .25 0 0"/>
|
|
<body pos=".25 0 0">
|
|
<joint axis="1 0 0"/>
|
|
<joint axis="0 0 1"/>
|
|
<geom type="box" size=".01" fromto="0 0 0 0 -.2 0"/>
|
|
<body pos="0 -.2 0">
|
|
<joint axis="1 0 0"/>
|
|
<joint axis="0 0 1"/>
|
|
<joint axis="0 1 0"/>
|
|
<geom type="box" size=".01" fromto="0 0 0 0 -.05 0"/>
|
|
<site name="end_effector" pos="0 -.05 0"/>
|
|
</body>
|
|
</body>
|
|
</body>
|
|
</body>
|
|
</worldbody>
|
|
|
|
<actuator>
|
|
<general name="x" site="end_effector" refsite="reference" gear="1 0 0 0 0 0" class="translation"/>
|
|
<general name="y" site="end_effector" refsite="reference" gear="0 1 0 0 0 0" class="translation"/>
|
|
<general name="z" site="end_effector" refsite="reference" gear="0 0 1 0 0 0" class="translation"/>
|
|
<general name="rx" site="end_effector" refsite="reference" gear="0 0 0 1 0 0" class="rotation"/>
|
|
<general name="ry" site="end_effector" refsite="reference" gear="0 0 0 0 1 0" class="rotation"/>
|
|
<general name="rz" site="end_effector" refsite="reference" gear="0 0 0 0 0 1" class="rotation"/>
|
|
</actuator>
|
|
</mujoco>
|