File size: 5,006 Bytes
c23db99
6d15f21
 
5302347
09ba810
5df8c16
09ba810
0afa5c4
 
 
 
a69124b
0afa5c4
 
 
 
a69124b
 
4d05036
09ba810
 
5302347
 
90a6967
543d93c
5302347
 
 
7d297a2
 
4d05036
5302347
 
3c5f45f
af46efb
3aa79dc
af46efb
a1e29d6
543d93c
a1e29d6
 
 
09ba810
5df8c16
94ab24e
5df8c16
94ab24e
5df8c16
 
 
 
 
 
 
 
 
 
 
09ba810
5302347
6c64575
5df8c16
2bae7a5
5df8c16
 
 
1ee7d19
 
 
 
5302347
7caf98f
543d93c
09ba810
5302347
09ba810
6c64575
 
543d93c
09ba810
5302347
3c5f45f
6c64575
543d93c
09ba810
5302347
6c64575
 
543d93c
09ba810
5302347
6c64575
 
543d93c
09ba810
5302347
6c64575
 
543d93c
09ba810
5302347
6c64575
 
543d93c
09ba810
5302347
6c64575
 
543d93c
09ba810
5302347
6c64575
 
543d93c
09ba810
5302347
6c64575
 
543d93c
09ba810
5302347
6c64575
7caf98f
6c64575
3c5f45f
09ba810
 
a69124b
09ba810
 
 
 
 
 
a69124b
4d05036
6c95e8a
 
 
 
4d05036
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<mujoco model="tray_sim">
  <compiler angle="degree" coordinate="local" inertiafromgeom="true"/>
  <option gravity="0 0 -9.81" timestep="0.004" integrator="RK4"/>
  <size njmax="1000" nconmax="500"/>

  <!-- Contact defaults -->
  <default>
    <!-- stiffer contact with faster response -->
    <!-- reduce compliance smoothing -->
    <!-- contact dimensionality — number of contact force directions -->
    <!-- defines the collision margin (in meters) -->
    <geom 
      solref="0.001 0.2"
      solimp="0.95 0.95 0.001"
      condim="4"
      margin="0.002"
      friction="0.6 0.005 0.0001"
    />
    <joint damping="0.2"/> <!-- Damping from pusher for stability (previously set to "0.1") -->
  </default>

  <visual>
    <global offheight="640" offwidth="640"/>
    <quality/>
    <map zfar="50"/>
  </visual>

  <asset>
    <material name="tray_material" reflectance="0.7" specular="0.3"/>
    <material name="obj_material" reflectance="0.5" specular="0.5"/>
    <!-- <material name="pusher_material" reflectance="0.2" specular="0.2"/> -->
  </asset>

  <worldbody>
    <!-- Origin marker at world coordinate system -->
    <site name="origin_marker" pos="0 0 0" size="0.05" rgba="1 1 0 1"/>
  
    <!-- Lighting -->
    <light name="main_light" diffuse=".5 .5 .5" pos="0 0 3" dir="0 0 -1"/>

    <!-- Camera (isometric top view) -->
    <camera name="main_cam" pos="0.5 -0.5 0.4" quat="0.707 0.0 0.707 0.0"/>

    <!-- Tilted tray and walls-->
    <body name="tray" pos="0 0 0" zaxis="-0.3 0 1">
      <!-- Tray floor -->
      <geom name="tray_floor" type="box" size="0.3 0.3 0.02"
            rgba="0.9 0.9 0.9 1" material="tray_material"
            friction="1.0 0.005 0.0001"/>
      <!-- Walls -->
      <geom type="box" pos="0.0 0.29 0.04" size="0.3 0.01 0.04"
            rgba="0.9 0.9 0.9 1" material="tray_material"/>
      <geom type="box" pos="0.0 -0.29 0.04" size="0.3 0.01 0.04"
            rgba="0.9 0.9 0.9 1" material="tray_material"/>
      <geom type="box" pos="0.29 0.0 0.04" size="0.01 0.3 0.04"
            rgba="0.9 0.9 0.9 1" material="tray_material"/>
      <geom type="box" pos="-0.29 0.0 0.04" size="0.01 0.3 0.04"
            rgba="0.9 0.9 0.9 1" material="tray_material"/>
      <site name="tray_site" pos="0.1 0.1 0.02" size="0.001"/>
    </body>

    <!-- Puck (pusher) with lower sliding friction -->
    <body name="puck" pos="0.0 0.0 0.05" quat="1 0 0 0">
      <geom type="cylinder" size="0.04 0.01"
            rgba="1 0 1 1" density="1000" material="obj_material"
            friction="0.33 0.005 0.0001"/>
      <joint type="free" damping="0.2"/>
      <site name="puck_site" pos="0 0 0" size="0.001"/>
    </body>

    <!-- Objects -->
    <!--    
    <body name="obj0" pos="0.12 -0.18 0.1">
      <geom type="box" size="0.015 0.015 0.015" rgba="1 0 0 1" density="1000" material="obj_material"/>
      <joint type="free"/>
      <site name="obj0_site" pos="0 0 0" size="0.001"/>
    </body>

    <body name="obj1" pos="-0.07 0.22 0.1">
      <geom type="sphere" size="0.015" rgba="0 1 0 1" density="2000" material="obj_material"/>
      <joint type="free"/>
    </body>

    <body name="obj2" pos="0.19 0.03 0.1">
      <geom type="box" size="0.015 0.015 0.015" rgba="0 0 1 1" density="1000" material="obj_material"/>
      <joint type="free"/>
    </body>

    <body name="obj3" pos="-0.14 -0.09 0.1">
      <geom type="sphere" size="0.015" rgba="1 1 0 1" density="2000" material="obj_material"/>
      <joint type="free"/>
    </body>

    <body name="obj4" pos="0.1 0.2 0.1" quat="1 0 0 0">
      <geom type="cylinder" size="0.015 0.03" rgba="1 0 1 1" density="500" material="obj_material"/>
      <joint type="free"/>
    </body>

    <body name="obj5" pos="-0.21 0.08 0.1">
      <geom type="sphere" size="0.015" rgba="0 1 1 1" density="2000" material="obj_material"/>
      <joint type="free"/>
    </body>

    <body name="obj6" pos="0.17 -0.12 0.1">
      <geom type="box" size="0.015 0.015 0.015" rgba="1 0.5 0 1" density="1000" material="obj_material"/>
      <joint type="free"/>
    </body>

    <body name="obj7" pos="-0.03 -0.20 0.1">
      <geom type="sphere" size="0.015" rgba="0.5 0 1 1" density="2000" material="obj_material"/>
      <joint type="free"/>
    </body>

    <body name="obj8" pos="0.24 0.11 0.1">
      <geom type="box" size="0.015 0.015 0.015" rgba="0.3 0.8 0.2 1" density="1000" material="obj_material"/>
      <joint type="free"/>
    </body>

    <body name="obj9" pos="-0.16 0.19 0.1">
      <geom type="sphere" size="0.015" rgba="0.9 0.3 0.7 1" density="2000" material="obj_material"/>
      <joint type="free"/>
    </body>
    -->

  </worldbody>

  <!-- Tendon for spring-like behavior (stiffness inference) -->
  <!--
  <tendon>
    <spatial name="spring_obj0" stiffness="100" damping="1.0" width="0.005">
      <site site="obj0_site"/>
      <site site="tray_site"/>
    </spatial>
  </tendon>
  -->

  <keyframe>
    <key name="scene" qpos="0 0 0.02 1 0 0 0" qvel="0 0 0 0 1 200" />
  </keyframe>  

</mujoco>