<!-- Cheetah Model
    The state space is populated with joints in the order that they are
    defined in this file. The actuators also operate on joints.
    State-Space (name/joint/parameter):
        - rootx     slider      position (m)
        - rootz     slider      position (m)
        - rooty     hinge       angle (rad)
        - bthigh    hinge       angle (rad)
        - bshin     hinge       angle (rad)
        - bfoot     hinge       angle (rad)
        - fthigh    hinge       angle (rad)
        - fshin     hinge       angle (rad)
        - ffoot     hinge       angle (rad)
        - rootx     slider      velocity (m/s)
        - rootz     slider      velocity (m/s)
        - rooty     hinge       angular velocity (rad/s)
        - bthigh    hinge       angular velocity (rad/s)
        - bshin     hinge       angular velocity (rad/s)
        - bfoot     hinge       angular velocity (rad/s)
        - fthigh    hinge       angular velocity (rad/s)
        - fshin     hinge       angular velocity (rad/s)
        - ffoot     hinge       angular velocity (rad/s)
    Actuators (name/actuator/parameter):
        - bthigh    hinge       torque (N m)
        - bshin     hinge       torque (N m)
        - bfoot     hinge       torque (N m)
        - fthigh    hinge       torque (N m)
        - fshin     hinge       torque (N m)
        - ffoot     hinge       torque (N m)
-->
<mujoco model="cheetah">
  <compiler angle="radian" coordinate="local" inertiafromgeom="true" settotalmass="14"/>
  <default>
    <joint armature=".1" damping=".01" limited="true" solimplimit="0 .8 .03" solreflimit=".02 1" stiffness="8"/>
    <geom conaffinity="0" condim="3" contype="1" friction=".4 .1 .1" rgba="0.8 0.6 .4 1" solimp="0.0 0.8 0.01" solref="0.02 1"/>
    <motor ctrllimited="true" ctrlrange="-1 1"/>
  </default>
  <size nstack="300000" nuser_geom="1"/>
  <option gravity="0 0 -9.81" timestep="0.01"/>
  <asset>
<!--    <texture builtin="gradient" height="100" rgb1="1 1 1" rgb2="0 0 0" type="skybox" width="100"/>-->
<!--    <texture builtin="flat" height="1278" mark="cross" markrgb="1 1 1" name="texgeom" random="0.01" rgb1="0.8 0.6 0.4" rgb2="0.8 0.6 0.4" type="cube" width="127"/>-->
<!--    <texture builtin="checker" height="100" name="texplane" rgb1="0 0 0" rgb2="0.8 0.8 0.8" type="2d" width="100"/>-->
<!--    <material name="MatPlane" reflectance="0.5" shininess="1" specular="1" texrepeat="60 60" texture="texplane"/>-->
<!--    <material name="geom" texture="texgeom" texuniform="true"/>-->

    <texture builtin="gradient" height="100" rgb1="1 1 1" rgb2="0 0 0" type="skybox" width="100"/>
    <texture builtin="flat" height="1278" mark="cross" markrgb="1 1 1" name="texgeom" random="0.01" rgb1="0.8 0.6 0.4" rgb2="0.8 0.6 0.4" type="cube" width="127"/>
    <texture builtin="checker" height="100" name="texplane" rgb1="#2c5987" rgb2="#1f4060" type="2d" width="100"/>
    <material name="MatPlane" reflectance="0.5" shininess="1" specular="1" texrepeat="60 60" texture="texplane"/>
    <texture builtin="checker" height="100" name="texbox" rgb1="#ff66ff" rgb2="#ff66ff" type="2d" width="100"/>
    <material name="BoxMat" reflectance="0.5" shininess="1" specular="1" texrepeat="60 60" texture="texbox"/>

  </asset>
  <worldbody>
    <light cutoff="100" diffuse="1 1 1" dir="-0 0 -1.3" directional="true" exponent="1" pos="0 0 1.3" specular=".1 .1 .1"/>
    <light cutoff="100" diffuse="1 1 1" dir="-0 0 -1.3" directional="true" exponent="1" pos="0 0 1.3" specular=".1 .1 .1"/>
    <geom conaffinity="1" condim="3" material="MatPlane" name="floor" pos="65 0 0" rgba="0.2 0.2 0.2 1" size="150 40 40" type="plane"/>
    <geom conaffinity="1" condim="3" name="wall1" type="box" size="24.8 0.1 1.0" pos="0  -4 1.0"  euler='0 0 0'  rgba="1 0.5 0.5 1"/>
    <geom conaffinity="1" condim="3" name="wall2" type="box" size="24.8 0.1 1.0" pos="0   4 1.0"  euler='0 0 0'  rgba="1 0.5 0.5 1"/>
    <geom conaffinity="1" condim="3" name="wall3" type="box" size="24.8 0.1 1.0" pos="50 -4 1.0"  euler='0 0 0'  rgba="1 0.5 0.5 1"/>
    <geom conaffinity="1" condim="3" name="wall4" type="box" size="24.8 0.1 1.0" pos="50  4 1.0"  euler='0 0 0'  rgba="1 0.5 0.5 1"/>
    <geom conaffinity="1" condim="3" name="wall5" type="box" size="24.8 0.1 1.0" pos="100 -4 1.0"  euler='0 0 0'  rgba="1 0.5 0.5 1"/>
    <geom conaffinity="1" condim="3" name="wall6" type="box" size="24.8 0.1 1.0" pos="100  4 1.0"  euler='0 0 0'  rgba="1 0.5 0.5 1"/>
    <geom conaffinity="1" condim="3" name="wall7" type="box" size="24.8 0.1 1.0" pos="150 -4 1.0"  euler='0 0 0'  rgba="1 0.5 0.5 1"/>
    <geom conaffinity="1" condim="3" name="wall8" type="box" size="24.8 0.1 1.0" pos="150  4 1.0"  euler='0 0 0'  rgba="1 0.5 0.5 1"/>
    <geom conaffinity="1" condim="3" name="wall9" type="box" size="24.8 0.1 1.0" pos="-50  4 1.0"  euler='0 0 0'  rgba="1 0.5 0.5 1"/>
    <geom conaffinity="1" condim="3" name="wall10" type="box" size="24.8 0.1 1.0" pos="-50  -4 1.0"  euler='0 0 0'  rgba="1 0.5 0.5 1"/>

<!--    <body name="obj1" pos="39 0 .7">-->
<!--        <geom conaffinity="1" condim="3" name="obj_geom" pos='5 0 .7' density="0.0001" type="box" size=".1 2.3 1.3"  rgba="1 0.5 0.5 .8"/>-->
<!--          &lt;!&ndash;<joint axis="1 0 0" damping=".2" name="wall_joint" pos="5 0 .7" range="-10000 10000" stiffness=".0" type="slide"/>&ndash;&gt;-->
<!--          <joint axis="1 0 0" damping=".2" name="wall_joint" pos="2 0 .7" range="-30 30" stiffness=".0" type="slide"/>-->
<!--          &lt;!&ndash;<joint axis="1 0 0" damping=".2" name="wall_joint1" pos="2 0 .7" range="10 20" stiffness=".0" type="slide"/>&ndash;&gt;-->
<!--    </body>-->

    <body name="obj1" pos="5 0 .7">
        <geom conaffinity="1" condim="3" name="obj_geom" pos='5 0 .7' density="0.0001" type="box" size=".1 2.3 1.3"  rgba="1 0.5 0.5 .8"/>
          <joint axis="1 0 0" damping=".2" name="wall_joint" pos="5 0 .7" range="-5000 5000" stiffness=".0" type="slide"/>
    </body>

<!--    <body name="obj2" pos="5 0 .7">-->
<!--        <geom conaffinity="1" condim="3" name="obj_geom1" pos='5 0 .7' density="0.0001" type="box" size=".1 2.3 1.3"  rgba="1 0.5 0.5 .8"/>-->
<!--          &lt;!&ndash;<joint axis="1 0 0" damping=".2" name="wall_joint" pos="5 0 .7" range="-10000 10000" stiffness=".0" type="slide"/>&ndash;&gt;-->
<!--          <joint axis="1 0 0" damping=".2" name="wall_joint1" pos="2 0 .7" range="-10000 10000" stiffness=".0" type="slide"/>-->
<!--          &lt;!&ndash;<joint axis="1 0 0" damping=".2" name="wall_joint1" pos="2 0 .7" range="10 20" stiffness=".0" type="slide"/>&ndash;&gt;-->
<!--    </body>-->
wallpos1
    <!--<geom conaffinity="1" condim="3" material="MatPlane" name="floor" pos="0 0 0" rgba="0.8 0.9 0.8 1" size="40 40 40" type="plane"/>-->
    <body name="torso" pos="0 -1 .7">
      <site name="t1" pos="0.0 0 0" size="0.1"/>
      <camera name="track" mode="trackcom" pos="0 -3 0.3" xyaxes="1 0 0 0 0 1"/>
      <joint armature="0" axis="1 0 0" damping="0" limited="false" name="rootx" pos="0 0 0" stiffness="0" type="slide"/>
      <joint armature="0" axis="0 0 1" damping="0" limited="false" name="rootz" pos="0 0 0" stiffness="0" type="slide"/>
      <joint armature="0" axis="0 1 0" damping="0" limited="false" name="rooty" pos="0 0 0" stiffness="0" type="hinge"/>
      <geom fromto="-.5 0 0 .5 0 0" name="torso" size="0.046" type="capsule"/>
      <geom axisangle="0 1 0 .87" name="head" pos=".6 0 .1" size="0.046 .15" type="capsule"/>
      <!-- <site name='tip'  pos='.15 0 .11'/>-->
      <body name="bthigh" pos="-.5 0 0">
        <joint axis="0 1 0" damping="6" name="bthigh" pos="0 0 0" range="-.52 1.05" stiffness="240" type="hinge"/>
        <geom axisangle="0 1 0 -3.8" name="bthigh" pos=".1 0 -.13" size="0.046 .145" type="capsule"/>
        <body name="bshin" pos=".16 0 -.25">
          <joint axis="0 1 0" damping="4.5" name="bshin" pos="0 0 0" range="-.785 .785" stiffness="180" type="hinge"/>
          <geom axisangle="0 1 0 -2.03" name="bshin" pos="-.14 0 -.07" rgba="0.9 0.6 0.6 1" size="0.046 .15" type="capsule"/>
          <body name="bfoot" pos="-.28 0 -.14">
            <joint axis="0 1 0" damping="3" name="bfoot" pos="0 0 0" range="-.4 .785" stiffness="120" type="hinge"/>
            <geom axisangle="0 1 0 -.27" name="bfoot" pos=".03 0 -.097" rgba="0.9 0.6 0.6 1" size="0.046 .094" type="capsule"/>
          </body>
        </body>
      </body>
      <body name="fthigh" pos=".5 0 0">
        <joint axis="0 1 0" damping="4.5" name="fthigh" pos="0 0 0" range="-1 .7" stiffness="180" type="hinge"/>
        <geom axisangle="0 1 0 .52" name="fthigh" pos="-.07 0 -.12" size="0.046 .133" type="capsule"/>
        <body name="fshin" pos="-.14 0 -.24">
          <joint axis="0 1 0" damping="3" name="fshin" pos="0 0 0" range="-1.2 .87" stiffness="120" type="hinge"/>
          <geom axisangle="0 1 0 -.6" name="fshin" pos=".065 0 -.09" rgba="0.9 0.6 0.6 1" size="0.046 .106" type="capsule"/>
          <body name="ffoot" pos=".13 0 -.18">
            <joint axis="0 1 0" damping="1.5" name="ffoot" pos="0 0 0" range="-.5 .5" stiffness="60" type="hinge"/>
            <geom axisangle="0 1 0 -.6" name="ffoot" pos=".045 0 -.07" rgba="0.9 0.6 0.6 1" size="0.046 .07" type="capsule"/>
          </body>
        </body>
      </body>
    </body>
    <!-- second cheetah definition -->
    <body name="torso2" pos="0 1 .7">
      <site name="t2" pos="0 0 0" size="0.1"/>
      <camera name="track2" mode="trackcom" pos="0 -3 0.3" xyaxes="1 0 0 0 0 1"/>
      <joint armature="0" axis="1 0 0" damping="0" limited="false" name="rootx2" pos="0 0 0" stiffness="0" type="slide"/>
      <joint armature="0" axis="0 0 1" damping="0" limited="false" name="rootz2" pos="0 0 0" stiffness="0" type="slide"/>
      <joint armature="0" axis="0 1 0" damping="0" limited="false" name="rooty2" pos="0 0 0" stiffness="0" type="hinge"/>
      <geom fromto="-.5 0 0 .5 0 0" name="torso2" size="0.046" type="capsule"/>
      <geom axisangle="0 1 0 .87" name="head2" pos=".6 0 .1" size="0.046 .15" type="capsule"/>
      <!-- <site name='tip'  pos='.15 0 .11'/>-->
      <body name="bthigh2" pos="-.5 0 0">
        <joint axis="0 1 0" damping="6" name="bthigh2" pos="0 0 0" range="-.52 1.05" stiffness="240" type="hinge"/>
        <geom axisangle="0 1 0 -3.8" name="bthigh2" pos=".1 0 -.13" size="0.046 .145" type="capsule"/>
        <body name="bshin2" pos=".16 0 -.25">
          <joint axis="0 1 0" damping="4.5" name="bshin2" pos="0 0 0" range="-.785 .785" stiffness="180" type="hinge"/>
          <geom axisangle="0 1 0 -2.03" name="bshin2" pos="-.14 0 -.07" rgba="0.9 0.6 0.6 1" size="0.046 .15" type="capsule"/>
          <body name="bfoot2" pos="-.28 0 -.14">
            <joint axis="0 1 0" damping="3" name="bfoot2" pos="0 0 0" range="-.4 .785" stiffness="120" type="hinge"/>
            <geom axisangle="0 1 0 -.27" name="bfoot2" pos=".03 0 -.097" rgba="0.9 0.6 0.6 1" size="0.046 .094" type="capsule"/>
          </body>
        </body>
      </body>
      <body name="fthigh2" pos=".5 0 0">
        <joint axis="0 1 0" damping="4.5" name="fthigh2" pos="0 0 0" range="-1 .7" stiffness="180" type="hinge"/>
        <geom axisangle="0 1 0 .52" name="fthigh2" pos="-.07 0 -.12" size="0.046 .133" type="capsule"/>
        <body name="fshin2" pos="-.14 0 -.24">
          <joint axis="0 1 0" damping="3" name="fshin2" pos="0 0 0" range="-1.2 .87" stiffness="120" type="hinge"/>
          <geom axisangle="0 1 0 -.6" name="fshin2" pos=".065 0 -.09" rgba="0.9 0.6 0.6 1" size="0.046 .106" type="capsule"/>
          <body name="ffoot2" pos=".13 0 -.18">
            <joint axis="0 1 0" damping="1.5" name="ffoot2" pos="0 0 0" range="-.5 .5" stiffness="60" type="hinge"/>
            <geom axisangle="0 1 0 -.6" name="ffoot2" pos=".045 0 -.07" rgba="0.9 0.6 0.6 1" size="0.046 .07" type="capsule"/>
          </body>
        </body>
      </body>
    </body>

  </worldbody>
  <tendon>
    <spatial name="tendon1" width="0.05" rgba=".95 .3 .3 1" limited="true" range="1.5 3.5" stiffness="0.1">
        <site site="t1"/>
        <site site="t2"/>
    </spatial>
  </tendon>-
  <actuator>
    <motor gear="120" joint="bthigh" name="bthigh"/>
    <motor gear="90" joint="bshin" name="bshin"/>
    <motor gear="60" joint="bfoot" name="bfoot"/>
    <motor gear="120" joint="fthigh" name="fthigh"/>
    <motor gear="60" joint="fshin" name="fshin"/>
    <motor gear="30" joint="ffoot" name="ffoot"/>
    <motor gear="120" joint="bthigh2" name="bthigh2"/>
    <motor gear="90" joint="bshin2" name="bshin2"/>
    <motor gear="60" joint="bfoot2" name="bfoot2"/>
    <motor gear="120" joint="fthigh2" name="fthigh2"/>
    <motor gear="60" joint="fshin2" name="fshin2"/>
    <motor gear="30" joint="ffoot2" name="ffoot2"/>
    <motor gear="120" joint="wall_joint" name="wall_joint_ac"/>
    <!--<motor gear="120" joint="wall_joint1" name="wall_joint_ac1"/>-->
  </actuator>
</mujoco>
