xmls/juggler.xml (106 lines of code) (raw):
<!-- Author: vikash@openai.com-->
<mujoco model='juggler-v1.5'>
<compiler inertiafromgeom='auto' angle='radian'/>
<default>
<joint limited='true' damping='1' armature='0'/>
<geom contype='1' conaffinity='1' condim='3' rgba='0.8 0.6 .4 1'
margin="0.001" solref=".02 1" solimp=".8 .8 .01" material="geom" type='capsule'/>
<motor ctrlrange='-1 1' ctrllimited='true'/>
<default class="passive">
<geom contype='0' conaffinity='0' rgba='.5 .5 1 1' type='capsule' size='.005 .5' />
</default>
<default class="wall">
<geom contype='1' conaffinity='1' rgba='1 0 0 1' type='capsule'/>
</default>
</default>
<option timestep='0.002' iterations="50" solver="PGS">
<flag energy="enable"/>
</option>
<visual>
<map fogstart="3" fogend="5" force="0.1" znear="0.1"/>
<quality shadowsize="2048"/>
<global offwidth="800" offheight="800"/>
</visual>
<asset>
<texture type="skybox" builtin="gradient" width="128" height="128" rgb1=".4 .6 .8"
rgb2="0 0 0"/>
<texture name="texgeom" type="cube" builtin="flat" mark="cross" width="127" height="1278"
rgb1="0.8 0.6 0.4" rgb2="0.8 0.6 0.4" markrgb="1 1 1" random="0.01"/>
<texture name="texplane" type="2d" builtin="checker" rgb1=".2 .3 .4" rgb2=".1 0.15 0.2"
width="512" height="512"/>
<material name='MatPlane' reflectance='0.5' texture="texplane" texrepeat="1 1" texuniform="true"/>
<material name='geom' texture="texgeom" texuniform="true"/>
</asset>
<worldbody>
<light directional='true' diffuse='.8 .8 .8' specular='0.3 0.3 0.3' pos='0 0 4.0' dir='0 -.15 -1'/>
<geom name='floor' pos='0 2 0' size='1 3 .125' type='plane' material="MatPlane" condim='3'/>
<body name='tosser0' pos='0 0 0' euler='0 0 3.14'>
<geom pos='0 0 .5' class='passive'/>
<body name='hand0' pos='0 0 0'>
<geom name='palm0' type='capsule' size='.02' fromto='0 0 .7 0 -.1 .6'/>
<geom name='finger0' type='capsule' size='.02' fromto='0 -.1 .6 0 -.15 .6'/>
<joint name='wr0_js' type='slide' pos='0 0 .7' axis='0 0 1' range='-.6 .25' damping='10'/>
<joint name='wr0_jr' type='hinge' pos='0 0 .7' axis='1 0 0' range='-2.4 0.8'/>
</body>
</body>
<body name='tosser1' pos='0 1.2 0'>
<geom pos='0 0 .5' size='.01 .5' class='passive'/>
<body name='hand1' pos='0 0 0'>
<geom name='palm1' type='capsule' size='.02' fromto='0 0 .7 0 -.1 .6'/>
<geom name='finger1' type='capsule' size='.02' fromto='0 -.1 .6 0 -.15 .6'/>
<joint name='wr1_js' type='slide' pos='0 0 .7' axis='0 0 1' range='-.6 .25' damping='10'/>
<joint name='wr1_jr' type='hinge' pos='0 0 .7' axis='1 0 0' range='-2.4 0.8'/>
</body>
</body>
<body name='tosser2' pos='0 2 0'>
<geom pos='0 0 .5' size='.01 .5' class='passive'/>
<body name='hand2' pos='0 0 0'>
<geom name='palm2' type='capsule' size='.02' fromto='0 0 .7 0 -.1 .6'/>
<geom name='finger2' type='capsule' size='.02' fromto='0 -.1 .6 0 -.15 .6'/>
<joint name='wr2_js' type='slide' pos='0 0 .7' axis='0 0 1' range='-.6 .25' damping='10'/>
<joint name='wr2_jr' type='hinge' pos='0 0 .7' axis='1 0 0' range='-2.4 0.8'/>
</body>
</body>
<body name='tosser3' pos='0 3 0'>
<geom pos='0 0 .5' size='.01 .5' class='passive'/>
<body name='hand3' pos='0 0 0'>
<geom name='palm3' type='capsule' size='.02' fromto='0 0 .7 0 -.1 .6'/>
<geom name='finger3' type='capsule' size='.02' fromto='0 -.1 .6 0 -.15 .6'/>
<joint name='wr3_js' type='slide' pos='0 0 .7' axis='0 0 1' range='-.6 .25' damping='10'/>
<joint name='wr3_jr' type='hinge' pos='0 0 .7' axis='1 0 0' range='-2.4 0.8'/>
</body>
</body>
<body name='ball' pos='0 .08 1'>
<geom name='ball' size='.05' type='sphere'/>
<joint name='ballz' type='slide' axis='0 0 1' limited='false' damping='.01'/>
<joint name='bally' type='slide' axis='0 1 0' limited='false' damping='.01'/>
<joint name='ballx' type='hinge' axis='1 0 0' limited='false' damping='.01'/>
</body>
<body name='basket2' pos='0 4 0'>
<geom pos='0 -.1 .12' type='capsule' size='.02 .1' rgba='.4 1 .4 1' condim='1' euler='.2 0 0'/>
<geom pos='0 .1 .12' type='capsule' size='.02 .1' rgba='.4 1 .4 1' condim='1' euler='-.2 0 0'/>
<geom pos='0 0 .02' type='capsule' size='.02 .08' rgba='.4 1 .4 1' condim='1' euler='1.57 0 0'/>
<site name='touch' pos='0 0 .03' type='box' group='4' size='.02 .1 .02'/>
</body>
</worldbody>
<actuator>
<motor name='h0a0' gear='35' joint='wr0_js'/>
<motor name='h0a1' gear='35' joint='wr0_jr'/>
<motor name='h1a0' gear='35' joint='wr1_js'/>
<motor name='h1a1' gear='35' joint='wr1_jr'/>
<motor name='h2a0' gear='35' joint='wr2_js'/>
<motor name='h2a1' gear='35' joint='wr2_jr'/>
<motor name='h3a0' gear='35' joint='wr2_js'/>
<motor name='h3a1' gear='35' joint='wr2_jr'/>
</actuator>
<sensor>
<jointpos name="Sjp0_wr_js" joint="wr0_js"/>
<jointpos name="Sjp0_wr_jr" joint="wr0_jr"/>
<jointpos name="Sjp1_wr_js" joint="wr1_js"/>
<jointpos name="Sjp1_wr_jr" joint="wr1_jr"/>
<jointpos name="Sjp2_wr_js" joint="wr2_js"/>
<jointpos name="Sjp2_wr_jr" joint="wr2_jr"/>
<jointpos name="Sjp3_wr_js" joint="wr3_js"/>
<jointpos name="Sjp3_wr_jr" joint="wr3_jr"/>
<touch name="s_touch" site="touch"/>
</sensor>
</mujoco>