2d12dee025
PiperOrigin-RevId: 902620719 Change-Id: Ib06d3f7b9439e1d90a8373a4289ade0c327e72e4
430 lines
14 KiB
XML
430 lines
14 KiB
XML
<!-- Copyright 2026 DeepMind Technologies Limited
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
-->
|
|
|
|
<mujoco model="Gripper 2D Fin Ray">
|
|
<include file="scene.xml"/>
|
|
|
|
<option cone="elliptic" impratio="10" integrator="implicitfast"/>
|
|
|
|
<worldbody>
|
|
<body name="hand" pos="0 0 .37">
|
|
<joint name="lift" type="slide" range="-.13 .05"/>
|
|
<geom type="box" size=".12 .06 .03" rgba=".2 .2 .2 1"/>
|
|
|
|
<body name="right_arm">
|
|
<joint name="right" type="slide" axis="-1 0 0"/>
|
|
<geom type="box" size=".015 .06 .06" pos=".10 0 -.09"
|
|
rgba=".2 .2 .2 1"/>
|
|
<body name="right_finger" pos=".1 0 -.15" euler="90 0 0">
|
|
<!--
|
|
Fin Ray skeleton mesh (right finger).
|
|
|
|
The mesh is the OUTLINE of the fin ray structure:
|
|
two tapered vertical walls connected by horizontal ribs.
|
|
Each strut is a thin strip of 2 triangles; the interior
|
|
between ribs is empty. The radius property inflates the
|
|
visual geometry to give the skeleton thickness.
|
|
|
|
Vertex layout (XY plane, 7 rib levels, 4 verts per level):
|
|
Level i: L_front, L_back, R_front, R_back
|
|
Each pair offset by h=0.0015 along Y to create in-plane thickness.
|
|
Out-of-plane thickness set with radius parameter.
|
|
|
|
Side view of skeleton:
|
|
|===================| level 0 (base, pinned)
|
|
| |
|
|
|=================| level 1
|
|
| |
|
|
|===============| level 2
|
|
| |
|
|
|============| level 3
|
|
| |
|
|
|==========| level 4
|
|
| |
|
|
|========| level 5
|
|
| |
|
|
|=====| level 6
|
|
-->
|
|
<flexcomp name="right_fin" type="direct" dim="2"
|
|
radius=".004" rgba="0 .7 .7 1" mass=".3" dof="2d"
|
|
point="
|
|
-0.0210 0.0015 0.0000
|
|
-0.0170 0.0015 0.0000
|
|
-0.020538 -0.0015 0.0000
|
|
-0.016538 -0.0015 0.0000
|
|
0.0170 0.0015 0.0000
|
|
0.0210 0.0015 0.0000
|
|
0.016538 -0.0015 0.0000
|
|
0.020538 -0.0015 0.0000
|
|
-0.0190 -0.0115 0.0000
|
|
-0.0150 -0.0115 0.0000
|
|
-0.018538 -0.0145 0.0000
|
|
-0.014538 -0.0145 0.0000
|
|
0.0150 -0.0115 0.0000
|
|
0.0190 -0.0115 0.0000
|
|
0.014538 -0.0145 0.0000
|
|
0.018538 -0.0145 0.0000
|
|
-0.0170 -0.0245 0.0000
|
|
-0.0130 -0.0245 0.0000
|
|
-0.016308 -0.0275 0.0000
|
|
-0.012308 -0.0275 0.0000
|
|
0.0130 -0.0245 0.0000
|
|
0.0170 -0.0245 0.0000
|
|
0.012308 -0.0275 0.0000
|
|
0.016308 -0.0275 0.0000
|
|
-0.0140 -0.0375 0.0000
|
|
-0.0100 -0.0375 0.0000
|
|
-0.013308 -0.0405 0.0000
|
|
-0.009308 -0.0405 0.0000
|
|
0.0100 -0.0375 0.0000
|
|
0.0140 -0.0375 0.0000
|
|
0.009308 -0.0405 0.0000
|
|
0.013308 -0.0405 0.0000
|
|
-0.0110 -0.0505 0.0000
|
|
-0.0070 -0.0505 0.0000
|
|
-0.010308 -0.0535 0.0000
|
|
-0.006308 -0.0535 0.0000
|
|
0.0070 -0.0505 0.0000
|
|
0.0110 -0.0505 0.0000
|
|
0.006308 -0.0535 0.0000
|
|
0.010308 -0.0535 0.0000
|
|
-0.0080 -0.0635 0.0000
|
|
-0.0040 -0.0635 0.0000
|
|
-0.007200 -0.0665 0.0000
|
|
-0.003200 -0.0665 0.0000
|
|
0.0040 -0.0635 0.0000
|
|
0.0080 -0.0635 0.0000
|
|
0.003200 -0.0665 0.0000
|
|
0.007200 -0.0665 0.0000
|
|
-0.0040 -0.0785 0.0000
|
|
-0.0001 -0.0785 0.0000
|
|
-0.003200 -0.0815 0.0000
|
|
0.000700 -0.0815 0.0000
|
|
0.0001 -0.0785 0.0000
|
|
0.0040 -0.0785 0.0000
|
|
-0.000700 -0.0815 0.0000
|
|
0.003200 -0.0815 0.0000
|
|
"
|
|
element="
|
|
0 2 3
|
|
0 3 1
|
|
|
|
4 6 7
|
|
4 7 5
|
|
|
|
1 3 6
|
|
1 6 4
|
|
|
|
8 10 11
|
|
8 11 9
|
|
|
|
12 14 15
|
|
12 15 13
|
|
|
|
9 11 14
|
|
9 14 12
|
|
|
|
16 18 19
|
|
16 19 17
|
|
|
|
20 22 23
|
|
20 23 21
|
|
|
|
17 19 22
|
|
17 22 20
|
|
|
|
24 26 27
|
|
24 27 25
|
|
|
|
28 30 31
|
|
28 31 29
|
|
|
|
25 27 30
|
|
25 30 28
|
|
|
|
32 34 35
|
|
32 35 33
|
|
|
|
36 38 39
|
|
36 39 37
|
|
|
|
33 35 38
|
|
33 38 36
|
|
|
|
40 42 43
|
|
40 43 41
|
|
|
|
44 46 47
|
|
44 47 45
|
|
|
|
41 43 46
|
|
41 46 44
|
|
|
|
48 50 51
|
|
48 51 49
|
|
|
|
52 54 55
|
|
52 55 53
|
|
|
|
49 51 54
|
|
49 54 52
|
|
|
|
2 8 9
|
|
2 9 3
|
|
|
|
6 12 13
|
|
6 13 7
|
|
|
|
10 16 17
|
|
10 17 11
|
|
|
|
14 20 21
|
|
14 21 15
|
|
|
|
18 24 25
|
|
18 25 19
|
|
|
|
22 28 29
|
|
22 29 23
|
|
|
|
26 32 33
|
|
26 33 27
|
|
|
|
30 36 37
|
|
30 37 31
|
|
|
|
34 40 41
|
|
34 41 35
|
|
|
|
38 44 45
|
|
38 45 39
|
|
|
|
42 48 49
|
|
42 49 43
|
|
|
|
46 52 53
|
|
46 53 47
|
|
">
|
|
<edge equality="true" damping="0.02"
|
|
solimp="0.99 0.999 0.0001 0.5 2" solref="0.001 1"/>
|
|
<contact selfcollide="none" internal="false"
|
|
contype="2" conaffinity="2"/>
|
|
<pin id="0 1 2 3 4 5 6 7"/>
|
|
</flexcomp>
|
|
</body>
|
|
</body>
|
|
|
|
<body name="left_arm">
|
|
<joint name="left" type="slide" axis="1 0 0"/>
|
|
<geom type="box" size=".015 .06 .06" pos="-.10 0 -.09"
|
|
rgba=".2 .2 .2 1"/>
|
|
<body name="left_finger" pos="-.1 0 -.15" euler="90 0 0">
|
|
<flexcomp name="left_fin" type="direct" dim="2"
|
|
radius=".004" rgba="0 .7 .7 1" mass=".3" dof="2d"
|
|
point="
|
|
-0.0210 0.0015 0.0000
|
|
-0.0170 0.0015 0.0000
|
|
-0.020538 -0.0015 0.0000
|
|
-0.016538 -0.0015 0.0000
|
|
0.0170 0.0015 0.0000
|
|
0.0210 0.0015 0.0000
|
|
0.016538 -0.0015 0.0000
|
|
0.020538 -0.0015 0.0000
|
|
-0.0190 -0.0115 0.0000
|
|
-0.0150 -0.0115 0.0000
|
|
-0.018538 -0.0145 0.0000
|
|
-0.014538 -0.0145 0.0000
|
|
0.0150 -0.0115 0.0000
|
|
0.0190 -0.0115 0.0000
|
|
0.014538 -0.0145 0.0000
|
|
0.018538 -0.0145 0.0000
|
|
-0.0170 -0.0245 0.0000
|
|
-0.0130 -0.0245 0.0000
|
|
-0.016308 -0.0275 0.0000
|
|
-0.012308 -0.0275 0.0000
|
|
0.0130 -0.0245 0.0000
|
|
0.0170 -0.0245 0.0000
|
|
0.012308 -0.0275 0.0000
|
|
0.016308 -0.0275 0.0000
|
|
-0.0140 -0.0375 0.0000
|
|
-0.0100 -0.0375 0.0000
|
|
-0.013308 -0.0405 0.0000
|
|
-0.009308 -0.0405 0.0000
|
|
0.0100 -0.0375 0.0000
|
|
0.0140 -0.0375 0.0000
|
|
0.009308 -0.0405 0.0000
|
|
0.013308 -0.0405 0.0000
|
|
-0.0110 -0.0505 0.0000
|
|
-0.0070 -0.0505 0.0000
|
|
-0.010308 -0.0535 0.0000
|
|
-0.006308 -0.0535 0.0000
|
|
0.0070 -0.0505 0.0000
|
|
0.0110 -0.0505 0.0000
|
|
0.006308 -0.0535 0.0000
|
|
0.010308 -0.0535 0.0000
|
|
-0.0080 -0.0635 0.0000
|
|
-0.0040 -0.0635 0.0000
|
|
-0.007200 -0.0665 0.0000
|
|
-0.003200 -0.0665 0.0000
|
|
0.0040 -0.0635 0.0000
|
|
0.0080 -0.0635 0.0000
|
|
0.003200 -0.0665 0.0000
|
|
0.007200 -0.0665 0.0000
|
|
-0.0040 -0.0785 0.0000
|
|
-0.0001 -0.0785 0.0000
|
|
-0.003200 -0.0815 0.0000
|
|
0.000700 -0.0815 0.0000
|
|
0.0001 -0.0785 0.0000
|
|
0.0040 -0.0785 0.0000
|
|
-0.000700 -0.0815 0.0000
|
|
0.003200 -0.0815 0.0000
|
|
"
|
|
element="
|
|
0 2 3
|
|
0 3 1
|
|
|
|
4 6 7
|
|
4 7 5
|
|
|
|
1 3 6
|
|
1 6 4
|
|
|
|
8 10 11
|
|
8 11 9
|
|
|
|
12 14 15
|
|
12 15 13
|
|
|
|
9 11 14
|
|
9 14 12
|
|
|
|
16 18 19
|
|
16 19 17
|
|
|
|
20 22 23
|
|
20 23 21
|
|
|
|
17 19 22
|
|
17 22 20
|
|
|
|
24 26 27
|
|
24 27 25
|
|
|
|
28 30 31
|
|
28 31 29
|
|
|
|
25 27 30
|
|
25 30 28
|
|
|
|
32 34 35
|
|
32 35 33
|
|
|
|
36 38 39
|
|
36 39 37
|
|
|
|
33 35 38
|
|
33 38 36
|
|
|
|
40 42 43
|
|
40 43 41
|
|
|
|
44 46 47
|
|
44 47 45
|
|
|
|
41 43 46
|
|
41 46 44
|
|
|
|
48 50 51
|
|
48 51 49
|
|
|
|
52 54 55
|
|
52 55 53
|
|
|
|
49 51 54
|
|
49 54 52
|
|
|
|
2 8 9
|
|
2 9 3
|
|
|
|
6 12 13
|
|
6 13 7
|
|
|
|
10 16 17
|
|
10 17 11
|
|
|
|
14 20 21
|
|
14 21 15
|
|
|
|
18 24 25
|
|
18 25 19
|
|
|
|
22 28 29
|
|
22 29 23
|
|
|
|
26 32 33
|
|
26 33 27
|
|
|
|
30 36 37
|
|
30 37 31
|
|
|
|
34 40 41
|
|
34 41 35
|
|
|
|
38 44 45
|
|
38 45 39
|
|
|
|
42 48 49
|
|
42 49 43
|
|
|
|
46 52 53
|
|
46 53 47
|
|
">
|
|
<edge equality="true" damping="0.02"
|
|
solimp="0.99 0.999 0.0001 0.5 2" solref="0.001 1"/>
|
|
<contact selfcollide="none" internal="false"
|
|
contype="2" conaffinity="2"/>
|
|
<pin id="0 1 2 3 4 5 6 7"/>
|
|
</flexcomp>
|
|
</body>
|
|
</body>
|
|
</body>
|
|
|
|
<body>
|
|
<freejoint/>
|
|
<geom type="cylinder" size=".025 .05" pos="0 0 .1" rgba=".5 .5 0 1" euler="90 0 0" mass=".01"
|
|
priority="1" contype="2" condim="6" friction="2" solref="0.001 1" solimp="0.99 0.999 0.0001 0.5 2"/>
|
|
</body>
|
|
</worldbody>
|
|
|
|
<equality>
|
|
<joint joint1="right" joint2="left"/>
|
|
</equality>
|
|
|
|
<tendon>
|
|
<fixed name="grasp">
|
|
<joint joint="right" coef="1"/>
|
|
<joint joint="left" coef="1"/>
|
|
</fixed>
|
|
</tendon>
|
|
|
|
<actuator>
|
|
<position name="lift" joint="lift" kp="600" dampratio="1"
|
|
ctrlrange="-1 1"/>
|
|
<position name="grasp" tendon="grasp" kp="200" dampratio="1"
|
|
ctrlrange="0 1"/>
|
|
</actuator>
|
|
|
|
</mujoco>
|