Fix tendon.xml example model.

PiperOrigin-RevId: 530073629
Change-Id: I1fbfa55bc1ec9bbf11ab5a33771ad56537a16c07
This commit is contained in:
Yuval Tassa
2023-05-07 02:01:08 -07:00
committed by Copybara-Service
parent 49efa9cc15
commit f204e03575
2 changed files with 33 additions and 37 deletions
+1 -3
View File
@@ -4580,14 +4580,12 @@ wrapping around specified obstacle geoms. The objects along the path are defined
which split the path in multiple branches. Each branch of the tendon path must start and end with a site, and if it which split the path in multiple branches. Each branch of the tendon path must start and end with a site, and if it
has multiple obstacle geoms they must be separated by sites - so as to avoid the need for an iterative solver at the has multiple obstacle geoms they must be separated by sites - so as to avoid the need for an iterative solver at the
tendon level. This example illustrates a multi-branch tendon acting as a finger extensor, with a counter-weight tendon level. This example illustrates a multi-branch tendon acting as a finger extensor, with a counter-weight
instead of an actuator. instead of an actuator: `tendon.xml <_static/tendon.xml>`__.
MuJoCo 2.0 introduced a second form of wrapping, where the tendon is constrained to pass through a geom rather than MuJoCo 2.0 introduced a second form of wrapping, where the tendon is constrained to pass through a geom rather than
wrap around it. This is enabled automatically when a sidesite is specified and its position is inside the volume of wrap around it. This is enabled automatically when a sidesite is specified and its position is inside the volume of
the obstacle geom. the obstacle geom.
`tendon.xml <_static/tendon.xml>`__
.. _tendon-spatial-name: .. _tendon-spatial-name:
:at:`name`: :at-val:`string, optional` :at:`name`: :at-val:`string, optional`
+32 -34
View File
@@ -1,52 +1,50 @@
<mujoco model="tendon"> <mujoco model="tendon">
<compiler autolimits="true"/> <default>
<joint axis="0 1 0" range="0 60" limited="true"/>
<visual> <geom type="capsule" size=".01" rgba=".9 .7 .1 1"/>
<headlight diffuse="0.7 0.7 0.7"/> <site rgba=".9 .9 .9 1"/>
</visual> <default class="visual_cylinder">
<geom type="cylinder" fromto="0 .015 0 0 -.015 0" size=".02" rgba=".3 .9 .3 .4"/>
<default class="main"> </default>
<joint axis="0 0 1" solimplimit="0.95 0.95 0.1 0.5 2" range="0 60"/>
<geom size="0.01 0 0" rgba="0.9 0.7 0.1 1"/>
<site rgba="0.9 0.9 0.9 1"/>
</default> </default>
<worldbody> <worldbody>
<body pos="-0.03 0 0.175"> <light pos="0 0 1"/>
<joint pos="0 0 0.025" limited="false" type="slide"/> <body name="weight" pos="-.03 0 .175">
<geom size="0.03 0.025" type="cylinder" density="5000" rgba="0.2 0.2 0.5 1"/> <joint axis="0 0 1" pos="0 0 .025" type="slide"/>
<site name="s1" pos="0 0 0.025"/> <geom type="cylinder" size=".03 .025" density="5000" rgba=".2 .2 .5 1"/>
<site name="s1" pos="0 0 .025"/>
</body> </body>
<site name="s2" pos="-0.03 0 0.32"/> <site name="s2" pos="-.03 0 .33"/>
<body pos="0.0242857 0 0.3" quat="1 1 1 1"> <body pos="0 0 .3">
<joint pos="0 0 -0.0242857"/> <joint/>
<geom size="0.01 0.05" pos="0 0 0.0257143" quat="0 -1 -1 0" type="capsule"/> <geom name="g1" class="visual_cylinder"/>
<geom name="g1" size="0.02 0.015" pos="0 0 -0.0242857" quat="0 -1 0 -1" type="cylinder" rgba=".3 .9 .3 .4"/> <geom fromto="0 0 0 .1 0 0"/>
<site name="s3" pos="0 0.02 -0.00428571" quat="0.5 -0.5 -0.5 -0.5"/> <site name="s3" pos=".02 0 .03"/>
<body pos="0 0 0.1"> <body pos=".1 0 0">
<joint pos="0 0 -0.0242857"/> <joint/>
<geom size="0.01 0.05" pos="0 0 0.0257143" quat="0 -1 -1 0" type="capsule"/> <geom name="g2" class="visual_cylinder"/>
<geom name="g2" size="0.02 0.015" pos="0 0 -0.0242857" quat="0 -1 0 -1" type="cylinder" rgba=".3 .9 .3 .4"/> <geom fromto="0 0 0 .1 0 0"/>
<site name="s4" pos="0 0.01 0.00571429" quat="0.5 -0.5 -0.5 -0.5"/> <site name="s4" pos=".03 0 .01"/>
<site name="s5" pos="0 0.02 0.0257143" quat="0.5 -0.5 -0.5 -0.5"/> <site name="s5" pos=".05 0 .02"/>
<site name="side2" pos="0 0.03 -0.0242857" quat="0.5 -0.5 -0.5 -0.5"/> <site name="side2" pos="0 0 .03"/>
<body pos="0 0 0.09"> <body pos=".1 0 0">
<joint pos="0 0 -0.0143443"/> <joint/>
<geom size="0.01 0.035" pos="0 0 0.0206557" quat="0 1 1 0" type="capsule"/> <geom name="g3" class="visual_cylinder"/>
<geom name="g3" size="0.02 0.015" pos="0 0 -0.0143443" quat="0 1 0 1" type="cylinder" rgba=".3 .9 .3 .4"/> <geom fromto="0 0 0 .1 0 0"/>
<site name="s6" pos="0 0.01 0.0156557" quat="1 -1 -1 -1"/> <site name="s6" pos=".03 0 .01"/>
<site name="side3" pos="0 0.03 -0.0143443" quat="1 -1 -1 -1"/> <site name="side3" pos="0 0 .03"/>
</body> </body>
</body> </body>
</body> </body>
</worldbody> </worldbody>
<tendon> <tendon>
<spatial range="0 0.33" width="0.002" rgba=".95 .3 .3 1"> <spatial range="0 .33" limited="true" width=".002" rgba=".95 .3 .3 1">
<site site="s1"/> <site site="s1"/>
<site site="s2"/> <site site="s2"/>
<geom geom="g1"/> <geom geom="g1"/>