<mujoco model="robot3">
  <default>
    <default class="robot">
      <default class="motor">
        <joint />
        <motor />
      </default>
      <default class="visual">
        <geom material="visualgeom" contype="0" conaffinity="0" group="2" />
      </default>
      <default class="collision">
        <geom material="collision_material" condim="3" contype="0" conaffinity="1" group="1" solref="0.005 1" friction="1 0.01 0.01" />
        <equality solimp="0.99 0.999 1e-05" solref="0.005 1" />
      </default>
    </default>
  </default>

  <compiler angle="radian" />
    <option timestep="0.001" gravity="0 0 -9.81" wind="0 0 0" integrator="RK4"
        density="1.625"
        viscosity="1.8e-5" />

    <visual>
        <global realtime="1" />
        <quality shadowsize="2048" numslices="28" offsamples="4" />
        <headlight diffuse="1 1 1" specular="0.5 0.5 0.5" active="1" />
        <rgba fog="1 0 0 1" haze="1 1 1 1" />
    </visual>

  <asset>
    <texture name="plane" type="2d" builtin="checker" rgb1=".1 .1 .1" rgb2=".9 .9 .9"
            width="512" height="512" mark="cross" markrgb=".8 .8 .8" />
    <material name="plane" reflectance="0.3" texture="plane" texrepeat="1 1" texuniform="true" />
    <material name="metal" rgba="1 1 1 1" />
    <material name="rubber" rgba="0.5 0.5 0.5 1" />
    <material name="default_material" rgba="0.7 0.7 0.7 1" />
    <material name="collision_material" rgba="1.0 0.28 0.1 0.9" />
    <mesh name="base_link.STL" file="/home/mrji/mujoco_learning/robot3/meshes/base_link.STL" />
    <mesh name="left_hip_pitch_link.STL" file="/home/mrji/mujoco_learning/robot3/meshes/left_hip_pitch_link.STL" />
    <mesh name="left_leg_pitch_link.STL" file="/home/mrji/mujoco_learning/robot3/meshes/left_leg_pitch_link.STL" />
    <mesh name="left_wheel2_link.STL" file="/home/mrji/mujoco_learning/robot3/meshes/left_wheel2_link.STL" />
    <mesh name="left_wheel1_link.STL" file="/home/mrji/mujoco_learning/robot3/meshes/left_wheel1_link.STL" />
    <mesh name="right_hip_pitch_link.STL" file="/home/mrji/mujoco_learning/robot3/meshes/right_hip_pitch_link.STL" />
    <mesh name="right_leg_pitch_link.STL" file="/home/mrji/mujoco_learning/robot3/meshes/right_leg_pitch_link.STL" />
    <mesh name="right_wheel2_link.STL" file="/home/mrji/mujoco_learning/robot3/meshes/right_wheel2_link.STL" />
    <mesh name="right_wheel1_link.STL" file="/home/mrji/mujoco_learning/robot3/meshes/right_wheel1_link.STL" />
    <mesh name="left_shoulder_link.STL" file="/home/mrji/mujoco_learning/robot3/meshes/left_shoulder_link.STL" />
    <mesh name="left_arm1_link.STL" file="/home/mrji/mujoco_learning/robot3/meshes/left_arm1_link.STL" />
    <mesh name="left_arm2_link.STL" file="/home/mrji/mujoco_learning/robot3/meshes/left_arm2_link.STL" />
    <mesh name="right_shoulder_link.STL" file="/home/mrji/mujoco_learning/robot3/meshes/right_shoulder_link.STL" />
    <mesh name="right_arm1_link.STL" file="/home/mrji/mujoco_learning/robot3/meshes/right_arm1_link.STL" />
    <mesh name="right_arm2_link.STL" file="/home/mrji/mujoco_learning/robot3/meshes/right_arm2_link.STL" />
  </asset>

<!--   <custom>
    <numeric name="wheel_radius" data="0.1" />
    <numeric name="wheel_base_y" data="0.3445" />
  </custom> -->

  <worldbody>
    <geom name="floor" pos="0 0 0" size="0 0 .25" type="plane" material="plane"
          condim="3" friction="1.5 0.3 0.05"
          solimp="0.9 0.95 0.001" solref="0.02 1"/>
    <light directional="true" ambient=".3 .3 .3" pos="30 30 30" dir="0 -2 -1"
            diffuse=".5 .5 .5" specular=".5 .5 .5" />
    <body name="base_link" pos="0 0 0.65" quat="1 0 0 0" childclass="robot">
      <freejoint name="floating_base" />
      <camera name="c1" mode="fixed" pos="0 0 0.1" fovy="80" quat="-0.5 -0.3 0.3 0.5" />
      <camera name="c2" mode="fixed" pos="0 0 0.15" fovy="80" euler="1.57 -1.57 0" />
      <camera name="c3" mode="fixed" pos="0 0 0.4" fovy="90" quat="-0.5 -0.37 0.37 0.5" />
      <camera name="c4" mode="fixed" pos="-0.13 0 0.4" fovy="90" quat="0.5 -0.37 0.37 -0.5" />
      <site name="imu" />
      <geom name="base_link_collision" pos="0 0 0" quat="1.0 0.0 0.0 0.0" type="mesh" mesh="base_link.STL" class="collision" />
      <geom name="base_link_visual" pos="0 0 0" quat="1.0 0.0 0.0 0.0" material="metal" type="mesh" mesh="base_link.STL" class="visual" />

      <!-- 加入雷达 -->
<!--       <body name="laser" pos="0 0 0.3">
        <geom type="sphere" size="0.01" rgba="0.2 0.2 0.2 1" />
        <body euler="0 -1.0472 0">  
          <replicate count="25" euler="0 0.08726 0" sep="BBB">           
            <body euler="0 0 -0.7854">  
              <replicate count="25" euler="0 0 0.06545" sep="AAA" offset="0.0 0.0 0.0">
                <site name="rf" pos="0.02 0 0" zaxis="1 0 0" size="0.001 0.001 0.001"
                      rgba="0.2 0.2 0.2 1" />
              </replicate>
            </body>
          </replicate>
        </body>
      </body>
 -->
      <body name="left_hip_pitch_link" pos="-0.06 -0.1358 -0.037269" quat="0.7070973820890846 -0.7070999794075672 -0.003384618178084856 -0.0033846306105044543">
        <joint name="left_hip_pitch_joint" type="hinge" ref="0.5236" class="motor" range="-1.57 1.57" axis="0 0 -1" />
        <inertial pos="3.93767161736252E-06 0.161490126813208 0.0158567790568734" quat="1.0 0.0 0.0 0.0" mass="0.6475263" diaginertia="0.0182516 0.0181748 0.0003913" />
        <geom name="left_hip_pitch_link_collision" pos="0 0 0" quat="1.0 0.0 0.0 0.0" type="mesh" mesh="left_hip_pitch_link.STL" class="collision" />
        <geom name="left_hip_pitch_link_visual" pos="0 0 0" quat="1.0 0.0 0.0 0.0" material="metal" type="mesh" mesh="left_hip_pitch_link.STL" class="visual" />
        <body name="left_leg_pitch_link" pos="0 0 -0.0295" quat="0.9999818497424056 0.0 0.0 0.006024963548188557">
          <joint name="left_leg_pitch_joint" type="hinge" ref="1.0472" class="motor" range="-1.57 1.57" axis="0 0 1" />
          <inertial pos="-2.63464180747426E-05 0.197159145100908 0.000498203326348359" quat="1.0 0.0 0.0 0.0" mass="0.5126336" diaginertia="0.0135141 0.0135986 0.0002025" />
          <geom name="left_leg_pitch_link_collision" pos="0 0 0" quat="1.0 0.0 0.0 0.0" type="mesh" mesh="left_leg_pitch_link.STL" class="collision" />
          <geom name="left_leg_pitch_link_visual" pos="0 0 0" quat="1.0 0.0 0.0 0.0" material="metal" type="mesh" mesh="left_leg_pitch_link.STL" class="visual" />
          <body name="left_wheel2_link" pos="0 0.4805 0.004" quat="-3.6732022875794935e-06 -0.9999992334237316 0.0012381996836028366 4.548161396802735e-09">
            <joint name="left_wheel2_joint" type="hinge" ref="0.0" class="motor" axis="0 0 1" />
            <inertial pos="4.1585564079967E-08 -5.47447156262759E-06 0.0187838263233595" quat="1.0 0.0 0.0 0.0" mass="0.745" diaginertia="0.0004716 0.0007945 0.0004716" />
            <geom name="left_wheel2_link_collision" pos="0 0 0" quat="1.0 0.0 0.0 0.0" type="mesh" mesh="left_wheel2_link.STL" class="collision" friction="0.7 0.2 0.1"/>
            <geom name="left_wheel2_link_visual" pos="0 0 0" quat="1.0 0.0 0.0 0.0" material="rubber" type="mesh" mesh="left_wheel2_link.STL" class="visual" />
          </body>
        </body>
        <body name="left_wheel1_link" pos="0 0.48 0.01" quat="0.9999885442520924 0.0 0.0 0.0047865817219583965">
          <joint name="left_wheel1_joint" type="hinge" ref="0.0" class="motor" axis="0 0 1" />
          <inertial pos="1.97042367054093E-06 5.10773910927798E-06 0.0187838263233595" quat="1.0 0.0 0.0 0.0" mass="0.745" diaginertia="0.0004716 0.0007945 0.0004716" />
          <geom name="left_wheel1_link_collision" pos="0 0 0" quat="1.0 0.0 0.0 0.0" type="mesh" mesh="left_wheel1_link.STL" class="collision" friction="0.7 0.2 0.1" />
          <geom name="left_wheel1_link_visual" pos="0 0 0" quat="1.0 0.0 0.0 0.0" material="rubber" type="mesh" mesh="left_wheel1_link.STL" class="visual" />
        </body>
      </body>
      <body name="right_hip_pitch_link" pos="-0.06 0.1358 -0.037269" quat="0.7071047344942819 0.7071073318397715 -0.0010285199169106727 0.001028523694882219">
        <joint name="right_hip_pitch_joint" type="hinge" ref="0.5236" class="motor" range="-1.57 1.57" axis="0 0 -1" />
        <inertial pos="-3.97209815898069E-06 -0.161490067811833 0.0158567790568734" quat="1.0 0.0 0.0 0.0" mass="0.6475263" diaginertia="0.0182531 0.0181748 0.0003897" />
        <geom name="right_hip_pitch_link_collision" pos="0 0 0" quat="1.0 0.0 0.0 0.0" type="mesh" mesh="right_hip_pitch_link.STL" class="collision" />
        <geom name="right_hip_pitch_link_visual" pos="0 0 0" quat="1.0 0.0 0.0 0.0" material="metal" type="mesh" mesh="right_hip_pitch_link.STL" class="visual" />
        <body name="right_leg_pitch_link" pos="0 0 -0.0295" quat="0.9999989421423353 0.0 0.0 -0.001454549487097675">
          <joint name="right_leg_pitch_joint" type="hinge" ref="1.0472" class="motor" range="-1.57 1.57" axis="0 0 1" />
          <inertial pos="3.43008600186093E-05 -0.197159143801203 0.000498203308628542" quat="1.0 0.0 0.0 0.0" mass="0.5126336" diaginertia="0.0135142 0.0135986 0.0002024" />
          <geom name="right_leg_pitch_link_collision" pos="0 0 0" quat="1.0 0.0 0.0 0.0" type="mesh" mesh="right_leg_pitch_link.STL" class="collision" />
          <geom name="right_leg_pitch_link_visual" pos="0 0 0" quat="1.0 0.0 0.0 0.0" material="metal" type="mesh" mesh="right_leg_pitch_link.STL" class="visual" />
          <body name="right_wheel2_link" pos="1.9386E-05 -0.4805 0.004" quat="-3.673205103346574e-06 0.9999999999932537 0.0 -0.0">
            <joint name="right_wheel2_joint" type="hinge" ref="0.0" class="motor" axis="0 0 1" />
            <inertial pos="-5.49216228909084E-08 5.47435401360152E-06 0.0187838263233596" quat="1.0 0.0 0.0 0.0" mass="0.745" diaginertia="0.0004716 0.0007945 0.0004716" />
            <geom name="right_wheel2_link_collision" pos="0 0 0" quat="1.0 0.0 0.0 0.0" type="mesh" mesh="right_wheel2_link.STL" class="collision" friction="0.7 0.2 0.1"/>
            <geom name="right_wheel2_link_visual" pos="0 0 0" quat="1.0 0.0 0.0 0.0" material="rubber" type="mesh" mesh="right_wheel2_link.STL" class="visual" />
          </body>
        </body>
        <body name="right_wheel1_link" pos="0 -0.48 0.01" quat="0.9999989421423353 0.0 0.0 -0.001454549487097675">
          <joint name="right_wheel1_joint" type="hinge" ref="0.0" class="motor" axis="0 0 1" />
          <inertial pos="-1.90651569380871E-06 -5.13193590762073E-06 0.0187838263233596" quat="1.0 0.0 0.0 0.0" mass="0.745" diaginertia="0.0004716 0.0007945 0.0004716" />
          <geom name="right_wheel1_link_collision" pos="0 0 0" quat="1.0 0.0 0.0 0.0" type="mesh" mesh="right_wheel1_link.STL" class="collision" friction="0.7 0.2 0.1" />
          <geom name="right_wheel1_link_visual" pos="0 0 0" quat="1.0 0.0 0.0 0.0" material="rubber" type="mesh" mesh="right_wheel1_link.STL" class="visual" />
        </body>
      </body>
      <body name="left_shoulder_link" pos="-0.06 -0.0878 0.36288" quat="1.0 0.0 0.0 0.0">
        <joint name="left_shoulder_joint" type="hinge" ref="0.0" class="motor" range="-1.57 1.57" axis="0 0 1" damping="1" />
        <inertial pos="-0.0144837915216556 0.000108169744531657 0.0209530786562939" quat="1.0 0.0 0.0 0.0" mass="0.0131461" diaginertia="7e-06 7.1e-06 4.5e-06" />
        <geom name="left_shoulder_link_collision" pos="0 0 0" quat="1.0 0.0 0.0 0.0" type="mesh" mesh="left_shoulder_link.STL" class="collision" />
        <geom name="left_shoulder_link_visual" pos="0 0 0" quat="1.0 0.0 0.0 0.0" material="metal" type="mesh" mesh="left_shoulder_link.STL" class="visual" />
        <body name="left_arm1_link" pos="0 0 0.0385" quat="0.7071005527533233 0.7071031500834525 -0.002640406144908195 -0.0026403964461726814">
          <joint name="left_arm1_joint" type="hinge" ref="0.0" class="motor" range="-1.3 2.3" axis="-1 0 0" damping="1" />
          <inertial pos="-0.00228631297282665 -0.000694770956028379 0.0248681244469774" quat="1.0 0.0 0.0 0.0" mass="0.5854363" diaginertia="0.0008783 0.0002821 0.0009299" />
          <geom name="left_arm1_link_collision" pos="0 0 0" quat="1.0 0.0 0.0 0.0" type="mesh" mesh="left_arm1_link.STL" class="collision" />
          <geom name="left_arm1_link_visual" pos="0 0 0" quat="1.0 0.0 0.0 0.0" material="metal" type="mesh" mesh="left_arm1_link.STL" class="visual" />
          <body name="left_arm2_link" pos="0.020127 0.0040341 0.17817" quat="0.6944747196208786 -0.7195074150900038 0.002593250103544229 0.002686725126152307">
            <joint name="left_arm2_joint" type="hinge" ref="0.0" class="motor" range="-1 1" axis="-0.99997 0.0074634 0.0002647" damping="1" />
            <inertial pos="-0.0237485342372672 -0.0546317049801525 1.0877545797372E-05" quat="1.0 0.0 0.0 0.0" mass="0.7955302" diaginertia="0.0035648 0.0002355 0.0036543" />
            <geom name="left_arm2_link_collision" pos="0 0 0" quat="1.0 0.0 0.0 0.0" type="mesh" mesh="left_arm2_link.STL" class="collision" />
            <geom name="left_arm2_link_visual" pos="0 0 0" quat="1.0 0.0 0.0 0.0" material="metal" type="mesh" mesh="left_arm2_link.STL" class="visual" />
          </body>
        </body>
      </body>
      <body name="right_shoulder_link" pos="-0.06 0.0878 0.36288" quat="1.0 0.0 0.0 0.0">
        <joint name="right_shoulder_joint" type="hinge" ref="0.0" class="motor" range="-1.57 1.57" axis="0 0 1" damping="1" />
        <inertial pos="-0.0144831349305154 -0.000175271563297497 0.0209530786562937" quat="1.0 0.0 0.0 0.0" mass="0.0131461" diaginertia="7e-06 7.1e-06 4.5e-06" />
        <geom name="right_shoulder_link_collision" pos="0 0 0" quat="1.0 0.0 0.0 0.0" type="mesh" mesh="right_shoulder_link.STL" class="collision" />
        <geom name="right_shoulder_link_visual" pos="0 0 0" quat="1.0 0.0 0.0 0.0" material="metal" type="mesh" mesh="right_shoulder_link.STL" class="visual" />
        <body name="right_arm1_link" pos="0 0 0.0385" quat="0.7071054825112363 0.7071080798594735 0.0 0.0">
          <joint name="right_arm1_joint" type="hinge" ref="0.0" class="motor" range="-1.3 2.3" axis="1 0 0" damping="1" />
          <inertial pos="-0.00258654183724675 0.00163071193731268 -0.0247948407356193" quat="1.0 0.0 0.0 0.0" mass="0.5854363" diaginertia="0.0008778 0.0002836 0.0009288" />
          <geom name="right_arm1_link_collision" pos="0 0 0" quat="1.0 0.0 0.0 0.0" type="mesh" mesh="right_arm1_link.STL" class="collision" />
          <geom name="right_arm1_link_visual" pos="0 0 0" quat="1.0 0.0 0.0 0.0" material="metal" type="mesh" mesh="right_arm1_link.STL" class="visual" />
          <body name="right_arm2_link" pos="0.017969 0.0026972 -0.17843" quat="0.704093896181981 -0.7101068830530216 0.0 0.0">
            <joint name="right_arm2_joint" type="hinge" ref="0.0" class="motor" range="-1 1" axis="-0.99993 -0.0121 -0.00010316" damping="1" />
            <inertial pos="-0.0240175529876588 0.0558375631647781 2.11385309717427E-06" quat="1.0 0.0 0.0 0.0" mass="0.7955302" diaginertia="0.0035728 0.0002317 0.0036666" />
            <geom name="right_arm2_link_collision" pos="0 0 0" quat="1.0 0.0 0.0 0.0" type="mesh" mesh="right_arm2_link.STL" class="collision" />
            <geom name="right_arm2_link_visual" pos="0 0 0" quat="1.0 0.0 0.0 0.0" material="metal" type="mesh" mesh="right_arm2_link.STL" class="visual" />
          </body>
        </body>
      </body>
      <site name="base_link_site" pos="0 0 0" quat="1 0 0 0" />
      <camera name="front_camera" mode="track" fovy="90.0" quat="4.329780281177467e-17 4.329780281177466e-17 0.7071067811865475 0.7071067811865476" pos="0.0 2.0 0.5" />
      <camera name="side_camera" mode="track" fovy="90.0" quat="-0.5 -0.4999999999999999 0.5 0.5000000000000001" pos="-2.0 0.0 0.5" />
    </body>
  </worldbody>

  <actuator>
    <motor name="left_wheel2_joint_ctrl" joint="left_wheel2_joint" class="motor" forcerange="-30 30" />
    <motor name="left_wheel1_joint_ctrl" joint="left_wheel1_joint" class="motor" forcerange="-30 30" />
    <motor name="right_wheel2_joint_ctrl" joint="right_wheel2_joint" class="motor" forcerange="-30 30" />
    <motor name="right_wheel1_joint_ctrl" joint="right_wheel1_joint" class="motor" forcerange="-30 30" />
    <motor name="left_shoulder_joint_ctrl" joint="left_shoulder_joint" class="motor" forcerange="-42.8 42.8" />
    <motor name="left_arm1_joint_ctrl" joint="left_arm1_joint" class="motor" forcerange="-42.8 42.8" />
    <motor name="left_arm2_joint_ctrl" joint="left_arm2_joint" class="motor" forcerange="-18 18" />
    <motor name="right_shoulder_joint_ctrl" joint="right_shoulder_joint" class="motor" forcerange="-42.8 42.8" />
    <motor name="right_arm1_joint_ctrl" joint="right_arm1_joint" class="motor" forcerange="-42.8 42.8" />
    <motor name="right_arm2_joint_ctrl" joint="right_arm2_joint" class="motor" forcerange="-18 18" />

    <!-- 轮毂电机 (使用general类型实现速度+前馈控制) -->
<!--     <general name="left_wheel2_vel" joint="left_wheel2_joint" 
            dyntype="integrator" biastype="affine" 
            gainprm="0.5 0 0 0 0 0 0 0 0 0" 
            biasprm="0 0 0 -0.1 0 0 0 0 0 0"
            dynprm="0.001"
            forcerange="-30 30"/>
    
    <general name="left_wheel1_vel" joint="left_wheel1_joint" 
            dyntype="integrator" biastype="affine" 
            gainprm="0.5 0 0 0 0 0 0 0 0 0" 
            biasprm="0 0 0 -0.1 0 0 0 0 0 0"
            dynprm="0.001"
            forcerange="-30 30"/>
    
    <general name="right_wheel2_vel" joint="right_wheel2_joint" 
            dyntype="integrator" biastype="affine" 
            gainprm="0.5 0 0 0 0 0 0 0 0 0" 
            biasprm="0 0 0 -0.1 0 0 0 0 0 0"
            dynprm="0.001"
            forcerange="-30 30"/>
    
    <general name="right_wheel1_vel" joint="right_wheel1_joint" 
            dyntype="integrator" biastype="affine" 
            gainprm="0.5 0 0 0 0 0 0 0 0 0" 
            biasprm="0 0 0 -0.1 0 0 0 0 0 0"
            dynprm="0.001"
            forcerange="-30 30"/> -->
    
<!--     <velocity name="left_wheel2_vel" joint="left_wheel2_joint" kv="15" forcerange="-16.2 16.2"/>
    <velocity name="left_wheel1_vel" joint="left_wheel1_joint" kv="15" forcerange="-0.1 0.1"/>
    <velocity name="right_wheel2_vel" joint="right_wheel2_joint" kv="15" forcerange="-16.2 16.2"/>
    <velocity name="right_wheel1_vel" joint="right_wheel1_joint" kv="15" forcerange="-0.1 0.1"/> -->
    
    <!-- 腰部电机 (低刚度位置模式) -->
    <position name="1_pos" joint="left_hip_pitch_joint" kp="500" kv="22"/>
    <position name="2_pos" joint="left_leg_pitch_joint" kp="500" kv="22"/>
    <position name="3_pos" joint="right_hip_pitch_joint" kp="500" kv="22"/>
    <position name="4_pos" joint="right_leg_pitch_joint" kp="500" kv="22"/>
  </actuator>

  <contact>
    <exclude body1="base_link" body2="left_hip_pitch_link" />
    <exclude body1="left_hip_pitch_link" body2="left_leg_pitch_link" />
    <exclude body1="left_leg_pitch_link" body2="left_wheel2_link" />
    <exclude body1="left_hip_pitch_link" body2="left_wheel1_link" />
    <exclude body1="base_link" body2="right_hip_pitch_link" />
    <exclude body1="right_hip_pitch_link" body2="right_leg_pitch_link" />
    <exclude body1="right_leg_pitch_link" body2="right_wheel2_link" />
    <exclude body1="right_hip_pitch_link" body2="right_wheel1_link" />
    <exclude body1="base_link" body2="left_shoulder_link" />
    <exclude body1="left_shoulder_link" body2="left_arm1_link" />
    <exclude body1="left_arm1_link" body2="left_arm2_link" />
    <exclude body1="base_link" body2="right_shoulder_link" />
    <exclude body1="right_shoulder_link" body2="right_arm1_link" />
    <exclude body1="right_arm1_link" body2="right_arm2_link" />
    <exclude body1="left_leg_pitch_link" body2="base_link"/>
    <exclude body1="right_leg_pitch_link" body2="base_link"/>
  </contact> 

  <sensor>
    <framequat name='orientation' objtype='site' objname='imu' />
    <gyro name='base_ang_vel' site='imu' />
    <accelerometer name="accel" site="imu" />
<!--     <rangefinder site="rf" /> -->
<!--     <framepos name="base_link_site_pos" objtype="site" objname="base_link_site" />
    <framequat name="base_link_site_quat" objtype="site" objname="base_link_site" />
    <framelinvel name="base_link_site_linvel" objtype="site" objname="base_link_site" />
    <frameangvel name="base_link_site_angvel" objtype="site" objname="base_link_site" />
    <velocimeter name="base_link_site_vel" site="base_link_site" /> -->
  </sensor>
</mujoco>