Improvements related to models where joint-actuator relationship is not one-to-one:
- 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
This commit is contained in:
committed by
Copybara-Service
parent
7603b07a20
commit
51aa375af0
+47
@@ -0,0 +1,47 @@
|
||||
<mujoco>
|
||||
<compiler autolimits="true"/>
|
||||
<option density="1000"/>
|
||||
|
||||
<worldbody>
|
||||
<geom type="plane" size="10 10 .1" rgba="1 1 1 1"/>
|
||||
<light pos="0 0 20"/>
|
||||
<site name="anchor_tendon" pos="0 0 9" size="0.03" rgba="0 0 1 1"/>
|
||||
<body name="body_hinge" pos="5 0 3">
|
||||
<geom type="box" size="1.5 .1 .1" pos="0 0 2.0"/>
|
||||
<joint name="hinge" type="hinge" pos="0 0 2.0" axis="0 1 0" range="-25 5"/>
|
||||
</body>
|
||||
<body name="body_tendon" pos="0 0 5">
|
||||
<freejoint/>
|
||||
<geom type="box" size=".5 .5 .5"/>
|
||||
<site name="box_tendon" pos=".5 .5 .5" rgba="0 0 1 1" size="0.03"/>
|
||||
</body>
|
||||
<body name="body_slider" pos="5 -2 2">
|
||||
<geom type="box" size=".5 .5 .5"/>
|
||||
<joint name="slider" type="slide" pos=".5 0 0" axis="1 0 0" range="-25 5"/>
|
||||
</body>
|
||||
<body name="body_site" pos="2 2 .5">
|
||||
<freejoint/>
|
||||
<geom type="box" size=".5 .5 .5"/>
|
||||
<site name="box_site" pos="0 0 .5" rgba="0 0 1 1" size="0.1"/>
|
||||
</body>
|
||||
<body name="body_stateless" pos="5 2 2">
|
||||
<geom type="box" size=".5 .5 .5"/>
|
||||
<joint name="stateless" type="slide" pos=".5 0 0" axis="1 0 0" range="-25 5"/>
|
||||
</body>
|
||||
</worldbody>
|
||||
|
||||
<tendon>
|
||||
<spatial name="tendon" limited="true" range="0 4" damping="100" width="0.03">
|
||||
<site site="anchor_tendon"/>
|
||||
<site site="box_tendon"/>
|
||||
</spatial>
|
||||
</tendon>
|
||||
|
||||
<actuator>
|
||||
<general name="stateless" joint="stateless" ctrllimited="true" ctrlrange="-20 20"/>
|
||||
<general name="hinge" joint="hinge" dyntype="integrator" ctrllimited="true" ctrlrange="-20 20"/>
|
||||
<muscle name="tendon" tendon="tendon" ctrllimited="true" ctrlrange="0 2"/>
|
||||
<general name="slider" joint="slider" dyntype="integrator" ctrllimited="true" ctrlrange="-20 20"/>
|
||||
<general name="site" site="box_site" dyntype="integrator" gear="0 0 1 0 0 0" ctrllimited="true" ctrlrange="0 10000"/>
|
||||
</actuator>
|
||||
</mujoco>
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
<mujoco>
|
||||
<compiler autolimits="true"/>
|
||||
|
||||
<option integrator="implicitfast"/>
|
||||
|
||||
<worldbody>
|
||||
<geom type="plane" size="1 1 .01"/>
|
||||
<light pos="0 0 2"/>
|
||||
<body pos="0 0 .3">
|
||||
<joint name="hinge" axis="0 1 0"/>
|
||||
<geom type="capsule" size=".01" fromto="0 0 0 .2 0 0"/>
|
||||
<geom size=".03" pos=".2 0 0"/>
|
||||
</body>
|
||||
</worldbody>
|
||||
|
||||
<actuator>
|
||||
<damper name="damper" joint="hinge" kv="10" ctrlrange="0 1"/>
|
||||
</actuator>
|
||||
</mujoco>
|
||||
@@ -0,0 +1,26 @@
|
||||
<mujoco>
|
||||
<compiler autolimits="true"/>
|
||||
|
||||
<option integrator="implicitfast"/>
|
||||
|
||||
<worldbody>
|
||||
<geom type="plane" size="1 1 .01"/>
|
||||
<light pos="0 0 2"/>
|
||||
<body pos="0 0 .3">
|
||||
<joint name="hinge" damping=".01" actuatorforcerange="-.4 .4"/>
|
||||
<geom type="capsule" size=".01" fromto="0 0 0 .2 0 0"/>
|
||||
<geom size=".03" pos=".2 0 0"/>
|
||||
</body>
|
||||
</worldbody>
|
||||
|
||||
<actuator>
|
||||
<motor name="motor" joint="hinge" ctrlrange="-1 1"/>
|
||||
<damper name="damper" joint="hinge" kv="10" ctrlrange="0 1"/>
|
||||
</actuator>
|
||||
|
||||
<sensor>
|
||||
<actuatorfrc name="motor" actuator="motor"/>
|
||||
<actuatorfrc name="damper" actuator="damper"/>
|
||||
<jointactuatorfrc name="hinge" joint="hinge"/>
|
||||
</sensor>
|
||||
</mujoco>
|
||||
+72
@@ -0,0 +1,72 @@
|
||||
<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>
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
<mujoco>
|
||||
<option density="1000">
|
||||
<flag gravity="disable"/>
|
||||
</option>
|
||||
|
||||
<worldbody>
|
||||
<geom type="plane" size="10 10 .1" rgba="1 1 1 1"/>
|
||||
<light pos="0 0 20"/>
|
||||
<body name="body_stateless" pos="0 0 .5">
|
||||
<freejoint/>
|
||||
<geom type="box" size=".5 .5 .1" pos="0 0 .4"/>
|
||||
<site name="capsule" pos=".5 .5 .5" rgba="0 0 1 1" size=".1 .1" type="capsule"/>
|
||||
<site name="ellipsoid" pos=".5 -.5 .5" rgba="0 0 1 1" size=".1 .3 .1" type="ellipsoid" euler="0 0 -45"/>
|
||||
<site name="cylinder" pos="0 0 .5" rgba="0 0 1 1" size=".2 .1" type="cylinder"/>
|
||||
<site name="box" pos="-.5 -.5 .5" rgba="0 0 1 1" size=".1 .1 .2" type="box"/>
|
||||
</body>
|
||||
</worldbody>
|
||||
|
||||
<actuator>
|
||||
<general name="ellipsoid" site="ellipsoid" gear="0 1 0 0 0 0" ctrllimited="true" ctrlrange="-100 100"/>
|
||||
<general name="cylinder" site="cylinder" gear="0 0 0 0 0 1" ctrllimited="true" ctrlrange="-100 100"/>
|
||||
<general name="box" site="box" dyntype="integrator" gear="0 0 1 0 0 0" ctrllimited="true" ctrlrange="-100 100"/>
|
||||
<general name="capsule" site="capsule" dyntype="integrator" gear="0 0 1 0 0 0" ctrllimited="true" ctrlrange="-100 100"/>
|
||||
</actuator>
|
||||
</mujoco>
|
||||
Reference in New Issue
Block a user