Add Go1 training and stair fine-tuning
This commit is contained in:
@@ -2,6 +2,8 @@ from legged_gym import LEGGED_GYM_ROOT_DIR, LEGGED_GYM_ENVS_DIR
|
|||||||
|
|
||||||
from legged_gym.envs.go2.go2_env import Go2Robot
|
from legged_gym.envs.go2.go2_env import Go2Robot
|
||||||
from legged_gym.envs.go2.go2_config import GO2Cfg, GO2CfgPPO, GO2CfgCTS, GO2CfgMoECTS, GO2CfgMoENGCTS, GO2CfgMCPCTS, GO2CfgACMoECTS, GO2CfgDualMoECTS
|
from legged_gym.envs.go2.go2_config import GO2Cfg, GO2CfgPPO, GO2CfgCTS, GO2CfgMoECTS, GO2CfgMoENGCTS, GO2CfgMCPCTS, GO2CfgACMoECTS, GO2CfgDualMoECTS
|
||||||
|
from legged_gym.envs.go1.go1_env import Go1Robot
|
||||||
|
from legged_gym.envs.go1.go1_config import GO1Cfg, GO1CfgMoECTS, GO1StairsCfg, GO1StairsCfgMoECTS
|
||||||
from .base.legged_robot import LeggedRobot
|
from .base.legged_robot import LeggedRobot
|
||||||
|
|
||||||
from legged_gym.utils.task_registry import task_registry
|
from legged_gym.utils.task_registry import task_registry
|
||||||
@@ -13,3 +15,5 @@ task_registry.register("go2_moe_ng_cts", Go2Robot, GO2Cfg(), GO2CfgMoENGCTS())
|
|||||||
task_registry.register("go2_mcp_cts", Go2Robot, GO2Cfg(), GO2CfgMCPCTS())
|
task_registry.register("go2_mcp_cts", Go2Robot, GO2Cfg(), GO2CfgMCPCTS())
|
||||||
task_registry.register("go2_ac_moe_cts", Go2Robot, GO2Cfg(), GO2CfgACMoECTS())
|
task_registry.register("go2_ac_moe_cts", Go2Robot, GO2Cfg(), GO2CfgACMoECTS())
|
||||||
task_registry.register("go2_dual_moe_cts", Go2Robot, GO2Cfg(), GO2CfgDualMoECTS())
|
task_registry.register("go2_dual_moe_cts", Go2Robot, GO2Cfg(), GO2CfgDualMoECTS())
|
||||||
|
task_registry.register("go1_moe_cts", Go1Robot, GO1Cfg(), GO1CfgMoECTS())
|
||||||
|
task_registry.register("go1_moe_cts_stairs", Go1Robot, GO1StairsCfg(), GO1StairsCfgMoECTS())
|
||||||
|
|||||||
58
legged_gym/envs/go1/go1_config.py
Normal file
58
legged_gym/envs/go1/go1_config.py
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
from legged_gym.envs.go2.go2_config import GO2Cfg, GO2CfgMoECTS
|
||||||
|
|
||||||
|
|
||||||
|
class GO1Cfg(GO2Cfg):
|
||||||
|
class init_state(GO2Cfg.init_state):
|
||||||
|
pos = [0.0, 0.0, 0.34]
|
||||||
|
|
||||||
|
class control(GO2Cfg.control):
|
||||||
|
stiffness = {'joint': 28.0}
|
||||||
|
damping = {'joint': 0.7}
|
||||||
|
action_scale = 0.25
|
||||||
|
decimation = 4
|
||||||
|
|
||||||
|
class asset(GO2Cfg.asset):
|
||||||
|
file = '{LEGGED_GYM_ROOT_DIR}/resources/robots/go1/urdf/go1.urdf'
|
||||||
|
name = 'go1'
|
||||||
|
self_collisions = 1
|
||||||
|
|
||||||
|
class rewards(GO2Cfg.rewards):
|
||||||
|
base_height_target = 0.30
|
||||||
|
|
||||||
|
|
||||||
|
class GO1CfgMoECTS(GO2CfgMoECTS):
|
||||||
|
class runner(GO2CfgMoECTS.runner):
|
||||||
|
experiment_name = 'go1_moe_cts'
|
||||||
|
run_name = 'from_scratch_5000'
|
||||||
|
max_iterations = 5000
|
||||||
|
save_interval = 500
|
||||||
|
resume = False
|
||||||
|
load_run = -1
|
||||||
|
checkpoint = -1
|
||||||
|
resume_path = None
|
||||||
|
|
||||||
|
|
||||||
|
class GO1StairsCfg(GO1Cfg):
|
||||||
|
class terrain(GO1Cfg.terrain):
|
||||||
|
# wave, slope, rough slope, stairs up, stairs down, obstacles,
|
||||||
|
# stepping stones, gap, flat
|
||||||
|
terrain_proportions = [0.03, 0.06, 0.03, 0.50, 0.20, 0.08, 0.0, 0.0, 0.10]
|
||||||
|
|
||||||
|
class commands(GO1Cfg.commands):
|
||||||
|
# The 10k checkpoint has only seen +/-0.5 m/s because the original
|
||||||
|
# curriculum does not widen until iteration 20000. Cover the 0.8 m/s
|
||||||
|
# RoboGauge stair command immediately during this fine-tune.
|
||||||
|
command_range_curriculum = []
|
||||||
|
|
||||||
|
class ranges(GO1Cfg.commands.ranges):
|
||||||
|
lin_vel_x = [-1.0, 1.0]
|
||||||
|
lin_vel_y = [-0.5, 0.5]
|
||||||
|
ang_vel_yaw = [-1.0, 1.0]
|
||||||
|
|
||||||
|
|
||||||
|
class GO1StairsCfgMoECTS(GO1CfgMoECTS):
|
||||||
|
class runner(GO1CfgMoECTS.runner):
|
||||||
|
experiment_name = 'go1_moe_cts'
|
||||||
|
run_name = 'stairs_finetune_10000_to_15000'
|
||||||
|
max_iterations = 5000
|
||||||
|
save_interval = 500
|
||||||
34
legged_gym/envs/go1/go1_env.py
Normal file
34
legged_gym/envs/go1/go1_env.py
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
from legged_gym.envs.go2.go2_env import Go2Robot
|
||||||
|
import torch
|
||||||
|
|
||||||
|
|
||||||
|
class Go1Robot(Go2Robot):
|
||||||
|
"""Go1 asset with an explicit policy-to-asset joint permutation.
|
||||||
|
|
||||||
|
Isaac Gym loads this asset as [FL, FR, RL, RR]. The permutation below
|
||||||
|
presents observations to the policy as [FR, FL, RR, RL] and maps policy
|
||||||
|
actions back to the Isaac Gym asset order. Existing Go1 checkpoints depend
|
||||||
|
on this policy order.
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Policy order [FR, FL, RR, RL] -> asset order [FL, FR, RL, RR].
|
||||||
|
_POLICY_TO_ASSET = [3, 4, 5, 0, 1, 2, 9, 10, 11, 6, 7, 8]
|
||||||
|
|
||||||
|
def step(self, actions):
|
||||||
|
asset_actions = torch.zeros_like(actions)
|
||||||
|
asset_actions[:, self._POLICY_TO_ASSET] = actions
|
||||||
|
return super().step(asset_actions)
|
||||||
|
|
||||||
|
def compute_observations(self):
|
||||||
|
super().compute_observations()
|
||||||
|
|
||||||
|
# Go2 policy observation: angular velocity, gravity, commands,
|
||||||
|
# joint-position error, joint velocity, previous action.
|
||||||
|
for start in (9, 21, 33):
|
||||||
|
self.obs_buf[:, start:start + 12] = self.obs_buf[:, start:start + 12][:, self._POLICY_TO_ASSET]
|
||||||
|
|
||||||
|
# Keep the privileged teacher input consistent as well. Its first
|
||||||
|
# three fields are base linear velocity, so joint fields start at 12.
|
||||||
|
if self.privileged_obs_buf is not None:
|
||||||
|
for start in (12, 24, 36, 52, 64):
|
||||||
|
self.privileged_obs_buf[:, start:start + 12] = self.privileged_obs_buf[:, start:start + 12][:, self._POLICY_TO_ASSET]
|
||||||
339
resources/robots/go1/meshes/calf.dae
Normal file
339
resources/robots/go1/meshes/calf.dae
Normal file
File diff suppressed because one or more lines are too long
BIN
resources/robots/go1/meshes/calf.stl
Normal file
BIN
resources/robots/go1/meshes/calf.stl
Normal file
Binary file not shown.
303
resources/robots/go1/meshes/depthCamera.dae
Normal file
303
resources/robots/go1/meshes/depthCamera.dae
Normal file
File diff suppressed because one or more lines are too long
408
resources/robots/go1/meshes/hip.dae
Normal file
408
resources/robots/go1/meshes/hip.dae
Normal file
File diff suppressed because one or more lines are too long
BIN
resources/robots/go1/meshes/hip.stl
Normal file
BIN
resources/robots/go1/meshes/hip.stl
Normal file
Binary file not shown.
783
resources/robots/go1/meshes/thigh.dae
Normal file
783
resources/robots/go1/meshes/thigh.dae
Normal file
File diff suppressed because one or more lines are too long
BIN
resources/robots/go1/meshes/thigh.stl
Normal file
BIN
resources/robots/go1/meshes/thigh.stl
Normal file
Binary file not shown.
1266
resources/robots/go1/meshes/thigh_mirror.dae
Normal file
1266
resources/robots/go1/meshes/thigh_mirror.dae
Normal file
File diff suppressed because one or more lines are too long
BIN
resources/robots/go1/meshes/thigh_mirror.stl
Normal file
BIN
resources/robots/go1/meshes/thigh_mirror.stl
Normal file
Binary file not shown.
132
resources/robots/go1/meshes/trunk.dae
Normal file
132
resources/robots/go1/meshes/trunk.dae
Normal file
File diff suppressed because one or more lines are too long
BIN
resources/robots/go1/meshes/trunk.stl
Normal file
BIN
resources/robots/go1/meshes/trunk.stl
Normal file
Binary file not shown.
369
resources/robots/go1/meshes/ultraSound.dae
Normal file
369
resources/robots/go1/meshes/ultraSound.dae
Normal file
File diff suppressed because one or more lines are too long
581
resources/robots/go1/urdf/go1.urdf
Normal file
581
resources/robots/go1/urdf/go1.urdf
Normal file
@@ -0,0 +1,581 @@
|
|||||||
|
<?xml version="1.0" ?>
|
||||||
|
<robot name="go1_description" xmlns:xacro="http://www.ros.org/wiki/xacro">
|
||||||
|
<material name="black">
|
||||||
|
<color rgba="0.0 0.0 0.0 1.0"/>
|
||||||
|
</material>
|
||||||
|
<material name="blue">
|
||||||
|
<color rgba="0.0 0.0 0.8 1.0"/>
|
||||||
|
</material>
|
||||||
|
<material name="green">
|
||||||
|
<color rgba="0.0 0.8 0.0 1.0"/>
|
||||||
|
</material>
|
||||||
|
<material name="grey">
|
||||||
|
<color rgba="0.2 0.2 0.2 1.0"/>
|
||||||
|
</material>
|
||||||
|
<material name="silver">
|
||||||
|
<color rgba="0.913725490196 0.913725490196 0.847058823529 1.0"/>
|
||||||
|
</material>
|
||||||
|
<material name="orange">
|
||||||
|
<color rgba="1.0 0.423529411765 0.0392156862745 1.0"/>
|
||||||
|
</material>
|
||||||
|
<material name="brown">
|
||||||
|
<color rgba="0.870588235294 0.811764705882 0.764705882353 1.0"/>
|
||||||
|
</material>
|
||||||
|
<material name="red">
|
||||||
|
<color rgba="0.8 0.0 0.0 1.0"/>
|
||||||
|
</material>
|
||||||
|
<material name="white">
|
||||||
|
<color rgba="1.0 1.0 1.0 1.0"/>
|
||||||
|
</material>
|
||||||
|
|
||||||
|
|
||||||
|
<link name="base">
|
||||||
|
<visual>
|
||||||
|
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||||
|
<geometry>
|
||||||
|
<box size="0.001 0.001 0.001"/>
|
||||||
|
</geometry>
|
||||||
|
</visual>
|
||||||
|
</link>
|
||||||
|
<joint name="floating_base" type="fixed">
|
||||||
|
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||||
|
<parent link="base"/>
|
||||||
|
<child link="trunk"/>
|
||||||
|
</joint>
|
||||||
|
<link name="trunk">
|
||||||
|
<visual>
|
||||||
|
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="../meshes/trunk.dae" scale="1 1 1"/>
|
||||||
|
</geometry>
|
||||||
|
<material name="silver"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||||
|
<geometry>
|
||||||
|
<box size="0.3762 0.0935 0.114"/>
|
||||||
|
</geometry>
|
||||||
|
</collision>
|
||||||
|
<inertial>
|
||||||
|
<origin rpy="0 0 0" xyz="0.011611 0.004437 0.000108"/>
|
||||||
|
<mass value="4.8"/>
|
||||||
|
<inertia ixx="0.016130741919" ixy="0.000593180607" ixz="7.324662e-06" iyy="0.036507810812" iyz="2.0969537e-05" izz="0.044693872053"/>
|
||||||
|
</inertial>
|
||||||
|
</link>
|
||||||
|
<joint name="imu_joint" type="fixed">
|
||||||
|
<parent link="trunk"/>
|
||||||
|
<child link="imu_link"/>
|
||||||
|
<origin rpy="0 0 0" xyz="-0.01592 -0.06659 -0.00617"/>
|
||||||
|
</joint>
|
||||||
|
<link name="imu_link">
|
||||||
|
<inertial>
|
||||||
|
<mass value="0.001"/>
|
||||||
|
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||||
|
<inertia ixx="0.0001" ixy="0" ixz="0" iyy="0.0001" iyz="0" izz="0.0001"/>
|
||||||
|
</inertial>
|
||||||
|
<visual>
|
||||||
|
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||||
|
<geometry>
|
||||||
|
<box size="0.001 0.001 0.001"/>
|
||||||
|
</geometry>
|
||||||
|
<material name="red"/>
|
||||||
|
</visual>
|
||||||
|
<!-- <collision>
|
||||||
|
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||||
|
<geometry>
|
||||||
|
<box size=".001 .001 .001"/>
|
||||||
|
</geometry>
|
||||||
|
</collision> -->
|
||||||
|
</link>
|
||||||
|
<joint name="FR_hip_joint" type="revolute">
|
||||||
|
<origin rpy="0 0 0" xyz="0.1881 -0.04675 0"/>
|
||||||
|
<parent link="trunk"/>
|
||||||
|
<child link="FR_hip"/>
|
||||||
|
<axis xyz="1 0 0"/>
|
||||||
|
<dynamics damping="0" friction="0"/>
|
||||||
|
<limit effort="33.5" lower="-0.802851455917" upper="0.802851455917" velocity="50"/>
|
||||||
|
</joint>
|
||||||
|
<link name="FR_hip">
|
||||||
|
<visual>
|
||||||
|
<origin rpy="3.14159265359 0 0" xyz="0 0 0"/>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="../meshes/hip.dae" scale="1 1 1"/>
|
||||||
|
</geometry>
|
||||||
|
<material name="silver"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<origin rpy="1.57079632679 0 0" xyz="0 -0.045 0"/>
|
||||||
|
<geometry>
|
||||||
|
<cylinder length="0.04" radius="0.046"/>
|
||||||
|
</geometry>
|
||||||
|
</collision>
|
||||||
|
<inertial>
|
||||||
|
<origin rpy="0 0 0" xyz="-0.00541 0.00074 6e-06"/>
|
||||||
|
<mass value="0.510299"/>
|
||||||
|
<inertia ixx="0.00030528937" ixy="7.788013e-06" ixz="2.2016e-07" iyy="0.000590894859" iyz="1.7175e-08" izz="0.000396594572"/>
|
||||||
|
</inertial>
|
||||||
|
</link>
|
||||||
|
<joint name="FR_hip_fixed" type="fixed">
|
||||||
|
<origin rpy="0 0 0" xyz="0 -0.08 0"/>
|
||||||
|
<parent link="FR_hip"/>
|
||||||
|
<child link="FR_thigh_shoulder"/>
|
||||||
|
</joint>
|
||||||
|
<!-- this link is only for collision -->
|
||||||
|
<link name="FR_thigh_shoulder">
|
||||||
|
<!-- <collision>
|
||||||
|
<origin rpy="1.57079632679 0 0" xyz="0 0 0"/>
|
||||||
|
<geometry>
|
||||||
|
<cylinder length="0.032" radius="0.041"/>
|
||||||
|
</geometry>
|
||||||
|
</collision> -->
|
||||||
|
</link>
|
||||||
|
<joint name="FR_thigh_joint" type="revolute">
|
||||||
|
<origin rpy="0 0 0" xyz="0 -0.08 0"/>
|
||||||
|
<parent link="FR_hip"/>
|
||||||
|
<child link="FR_thigh"/>
|
||||||
|
<axis xyz="0 1 0"/>
|
||||||
|
<dynamics damping="0" friction="0"/>
|
||||||
|
<limit effort="33.5" lower="-1.0471975512" upper="4.18879020479" velocity="28"/>
|
||||||
|
</joint>
|
||||||
|
<link name="FR_thigh">
|
||||||
|
<visual>
|
||||||
|
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="../meshes/thigh_mirror.dae" scale="1 1 1"/>
|
||||||
|
</geometry>
|
||||||
|
<material name="silver"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<origin rpy="0 1.57079632679 0" xyz="0 0 -0.1065"/>
|
||||||
|
<geometry>
|
||||||
|
<box size="0.213 0.0245 0.034"/>
|
||||||
|
</geometry>
|
||||||
|
</collision>
|
||||||
|
<inertial>
|
||||||
|
<origin rpy="0 0 0" xyz="-0.003468 0.018947 -0.032736"/>
|
||||||
|
<mass value="0.898919"/>
|
||||||
|
<inertia ixx="0.005395867678" ixy="-1.02809e-07" ixz="0.000337529085" iyy="0.005142451046" iyz="5.816563e-06" izz="0.00102478732"/>
|
||||||
|
</inertial>
|
||||||
|
</link>
|
||||||
|
<joint name="FR_calf_joint" type="revolute">
|
||||||
|
<origin rpy="0 0 0" xyz="0 0 -0.213"/>
|
||||||
|
<parent link="FR_thigh"/>
|
||||||
|
<child link="FR_calf"/>
|
||||||
|
<axis xyz="0 1 0"/>
|
||||||
|
<dynamics damping="0" friction="0"/>
|
||||||
|
<limit effort="33.5" lower="-2.69653369433" upper="-0.916297857297" velocity="28"/>
|
||||||
|
</joint>
|
||||||
|
<link name="FR_calf">
|
||||||
|
<visual>
|
||||||
|
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="../meshes/calf.dae" scale="1 1 1"/>
|
||||||
|
</geometry>
|
||||||
|
<material name="black"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<origin rpy="0 1.57079632679 0" xyz="0 0 -0.1065"/>
|
||||||
|
<geometry>
|
||||||
|
<box size="0.213 0.016 0.016"/>
|
||||||
|
</geometry>
|
||||||
|
</collision>
|
||||||
|
<inertial>
|
||||||
|
<origin rpy="0 0 0" xyz="0.006286 0.001307 -0.122269"/>
|
||||||
|
<mass value="0.158015"/>
|
||||||
|
<inertia ixx="0.003607648222" ixy="1.494971e-06" ixz="-0.000132778525" iyy="0.003626771492" iyz="-2.8638535e-05" izz="3.5148003e-05"/>
|
||||||
|
</inertial>
|
||||||
|
</link>
|
||||||
|
<joint name="FR_foot_fixed" type="fixed" dont_collapse="true">
|
||||||
|
<origin rpy="0 0 0" xyz="0 0 -0.213"/>
|
||||||
|
<parent link="FR_calf"/>
|
||||||
|
<child link="FR_foot"/>
|
||||||
|
</joint>
|
||||||
|
<link name="FR_foot">
|
||||||
|
<visual>
|
||||||
|
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||||
|
<geometry>
|
||||||
|
<sphere radius="0.01"/>
|
||||||
|
</geometry>
|
||||||
|
<material name="black"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||||
|
<geometry>
|
||||||
|
<sphere radius="0.02"/>
|
||||||
|
</geometry>
|
||||||
|
</collision>
|
||||||
|
<inertial>
|
||||||
|
<mass value="0.06"/>
|
||||||
|
<inertia ixx="9.6e-06" ixy="0.0" ixz="0.0" iyy="9.6e-06" iyz="0.0" izz="9.6e-06"/>
|
||||||
|
</inertial>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
<joint name="FL_hip_joint" type="revolute">
|
||||||
|
<origin rpy="0 0 0" xyz="0.1881 0.04675 0"/>
|
||||||
|
<parent link="trunk"/>
|
||||||
|
<child link="FL_hip"/>
|
||||||
|
<axis xyz="1 0 0"/>
|
||||||
|
<dynamics damping="0" friction="0"/>
|
||||||
|
<limit effort="33.5" lower="-0.802851455917" upper="0.802851455917" velocity="50"/>
|
||||||
|
</joint>
|
||||||
|
<link name="FL_hip">
|
||||||
|
<visual>
|
||||||
|
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="../meshes/hip.dae" scale="1 1 1"/>
|
||||||
|
</geometry>
|
||||||
|
<material name="silver"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<origin rpy="1.57079632679 0 0" xyz="0 0.045 0"/>
|
||||||
|
<geometry>
|
||||||
|
<cylinder length="0.04" radius="0.046"/>
|
||||||
|
</geometry>
|
||||||
|
</collision>
|
||||||
|
<inertial>
|
||||||
|
<origin rpy="0 0 0" xyz="-0.00541 -0.00074 6e-06"/>
|
||||||
|
<mass value="0.510299"/>
|
||||||
|
<inertia ixx="0.00030528937" ixy="-7.788013e-06" ixz="2.2016e-07" iyy="0.000590894859" iyz="-1.7175e-08" izz="0.000396594572"/>
|
||||||
|
</inertial>
|
||||||
|
</link>
|
||||||
|
<joint name="FL_hip_fixed" type="fixed">
|
||||||
|
<origin rpy="0 0 0" xyz="0 0.08 0"/>
|
||||||
|
<parent link="FL_hip"/>
|
||||||
|
<child link="FL_thigh_shoulder"/>
|
||||||
|
</joint>
|
||||||
|
<!-- this link is only for collision -->
|
||||||
|
<link name="FL_thigh_shoulder">
|
||||||
|
<!-- <collision>
|
||||||
|
<origin rpy="1.57079632679 0 0" xyz="0 0 0"/>
|
||||||
|
<geometry>
|
||||||
|
<cylinder length="0.032" radius="0.041"/>
|
||||||
|
</geometry>
|
||||||
|
</collision> -->
|
||||||
|
</link>
|
||||||
|
<joint name="FL_thigh_joint" type="revolute">
|
||||||
|
<origin rpy="0 0 0" xyz="0 0.08 0"/>
|
||||||
|
<parent link="FL_hip"/>
|
||||||
|
<child link="FL_thigh"/>
|
||||||
|
<axis xyz="0 1 0"/>
|
||||||
|
<dynamics damping="0" friction="0"/>
|
||||||
|
<limit effort="33.5" lower="-1.0471975512" upper="4.18879020479" velocity="28"/>
|
||||||
|
</joint>
|
||||||
|
<link name="FL_thigh">
|
||||||
|
<visual>
|
||||||
|
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="../meshes/thigh.dae" scale="1 1 1"/>
|
||||||
|
</geometry>
|
||||||
|
<material name="silver"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<origin rpy="0 1.57079632679 0" xyz="0 0 -0.1065"/>
|
||||||
|
<geometry>
|
||||||
|
<box size="0.213 0.0245 0.034"/>
|
||||||
|
</geometry>
|
||||||
|
</collision>
|
||||||
|
<inertial>
|
||||||
|
<origin rpy="0 0 0" xyz="-0.003468 -0.018947 -0.032736"/>
|
||||||
|
<mass value="0.898919"/>
|
||||||
|
<inertia ixx="0.005395867678" ixy="1.02809e-07" ixz="0.000337529085" iyy="0.005142451046" iyz="-5.816563e-06" izz="0.00102478732"/>
|
||||||
|
</inertial>
|
||||||
|
</link>
|
||||||
|
<joint name="FL_calf_joint" type="revolute">
|
||||||
|
<origin rpy="0 0 0" xyz="0 0 -0.213"/>
|
||||||
|
<parent link="FL_thigh"/>
|
||||||
|
<child link="FL_calf"/>
|
||||||
|
<axis xyz="0 1 0"/>
|
||||||
|
<dynamics damping="0" friction="0"/>
|
||||||
|
<limit effort="33.5" lower="-2.69653369433" upper="-0.916297857297" velocity="28"/>
|
||||||
|
</joint>
|
||||||
|
<link name="FL_calf">
|
||||||
|
<visual>
|
||||||
|
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="../meshes/calf.dae" scale="1 1 1"/>
|
||||||
|
</geometry>
|
||||||
|
<material name="silver"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<origin rpy="0 1.57079632679 0" xyz="0 0 -0.1065"/>
|
||||||
|
<geometry>
|
||||||
|
<box size="0.213 0.016 0.016"/>
|
||||||
|
</geometry>
|
||||||
|
</collision>
|
||||||
|
<inertial>
|
||||||
|
<origin rpy="0 0 0" xyz="0.006286 0.001307 -0.122269"/>
|
||||||
|
<mass value="0.158015"/>
|
||||||
|
<inertia ixx="0.003607648222" ixy="1.494971e-06" ixz="-0.000132778525" iyy="0.003626771492" iyz="-2.8638535e-05" izz="3.5148003e-05"/>
|
||||||
|
</inertial>
|
||||||
|
</link>
|
||||||
|
<joint name="FL_foot_fixed" type="fixed" dont_collapse="true">
|
||||||
|
<origin rpy="0 0 0" xyz="0 0 -0.213"/>
|
||||||
|
<parent link="FL_calf"/>
|
||||||
|
<child link="FL_foot"/>
|
||||||
|
</joint>
|
||||||
|
<link name="FL_foot">
|
||||||
|
<visual>
|
||||||
|
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||||
|
<geometry>
|
||||||
|
<sphere radius="0.01"/>
|
||||||
|
</geometry>
|
||||||
|
<material name="black"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||||
|
<geometry>
|
||||||
|
<sphere radius="0.02"/>
|
||||||
|
</geometry>
|
||||||
|
</collision>
|
||||||
|
<inertial>
|
||||||
|
<mass value="0.06"/>
|
||||||
|
<inertia ixx="9.6e-06" ixy="0.0" ixz="0.0" iyy="9.6e-06" iyz="0.0" izz="9.6e-06"/>
|
||||||
|
</inertial>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
<joint name="RR_hip_joint" type="revolute">
|
||||||
|
<origin rpy="0 0 0" xyz="-0.1881 -0.04675 0"/>
|
||||||
|
<parent link="trunk"/>
|
||||||
|
<child link="RR_hip"/>
|
||||||
|
<axis xyz="1 0 0"/>
|
||||||
|
<dynamics damping="0" friction="0"/>
|
||||||
|
<limit effort="33.5" lower="-0.802851455917" upper="0.802851455917" velocity="50"/>
|
||||||
|
</joint>
|
||||||
|
<link name="RR_hip">
|
||||||
|
<visual>
|
||||||
|
<origin rpy="3.14159265359 3.14159265359 0" xyz="0 0 0"/>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="../meshes/hip.dae" scale="1 1 1"/>
|
||||||
|
</geometry>
|
||||||
|
<material name="silver"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<origin rpy="1.57079632679 0 0" xyz="0 -0.045 0"/>
|
||||||
|
<geometry>
|
||||||
|
<cylinder length="0.04" radius="0.046"/>
|
||||||
|
</geometry>
|
||||||
|
</collision>
|
||||||
|
<inertial>
|
||||||
|
<origin rpy="0 0 0" xyz="0.00541 0.00074 6e-06"/>
|
||||||
|
<mass value="0.510299"/>
|
||||||
|
<inertia ixx="0.00030528937" ixy="-7.788013e-06" ixz="-2.2016e-07" iyy="0.000590894859" iyz="1.7175e-08" izz="0.000396594572"/>
|
||||||
|
</inertial>
|
||||||
|
</link>
|
||||||
|
<joint name="RR_hip_fixed" type="fixed">
|
||||||
|
<origin rpy="0 0 0" xyz="0 -0.08 0"/>
|
||||||
|
<parent link="RR_hip"/>
|
||||||
|
<child link="RR_thigh_shoulder"/>
|
||||||
|
</joint>
|
||||||
|
<!-- this link is only for collision -->
|
||||||
|
<link name="RR_thigh_shoulder">
|
||||||
|
<!-- <collision>
|
||||||
|
<origin rpy="1.57079632679 0 0" xyz="0 0 0"/>
|
||||||
|
<geometry>
|
||||||
|
<cylinder length="0.032" radius="0.041"/>
|
||||||
|
</geometry>
|
||||||
|
</collision> -->
|
||||||
|
</link>
|
||||||
|
<joint name="RR_thigh_joint" type="revolute">
|
||||||
|
<origin rpy="0 0 0" xyz="0 -0.08 0"/>
|
||||||
|
<parent link="RR_hip"/>
|
||||||
|
<child link="RR_thigh"/>
|
||||||
|
<axis xyz="0 1 0"/>
|
||||||
|
<dynamics damping="0" friction="0"/>
|
||||||
|
<limit effort="33.5" lower="-1.0471975512" upper="4.18879020479" velocity="28"/>
|
||||||
|
</joint>
|
||||||
|
<link name="RR_thigh">
|
||||||
|
<visual>
|
||||||
|
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="../meshes/thigh_mirror.dae" scale="1 1 1"/>
|
||||||
|
</geometry>
|
||||||
|
<material name="silver"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<origin rpy="0 1.57079632679 0" xyz="0 0 -0.1065"/>
|
||||||
|
<geometry>
|
||||||
|
<box size="0.213 0.0245 0.034"/>
|
||||||
|
</geometry>
|
||||||
|
</collision>
|
||||||
|
<inertial>
|
||||||
|
<origin rpy="0 0 0" xyz="-0.003468 0.018947 -0.032736"/>
|
||||||
|
<mass value="0.898919"/>
|
||||||
|
<inertia ixx="0.005395867678" ixy="-1.02809e-07" ixz="0.000337529085" iyy="0.005142451046" iyz="5.816563e-06" izz="0.00102478732"/>
|
||||||
|
</inertial>
|
||||||
|
</link>
|
||||||
|
<joint name="RR_calf_joint" type="revolute">
|
||||||
|
<origin rpy="0 0 0" xyz="0 0 -0.213"/>
|
||||||
|
<parent link="RR_thigh"/>
|
||||||
|
<child link="RR_calf"/>
|
||||||
|
<axis xyz="0 1 0"/>
|
||||||
|
<dynamics damping="0" friction="0"/>
|
||||||
|
<limit effort="33.5" lower="-2.69653369433" upper="-0.916297857297" velocity="28"/>
|
||||||
|
</joint>
|
||||||
|
<link name="RR_calf">
|
||||||
|
<visual>
|
||||||
|
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="../meshes/calf.dae" scale="1 1 1"/>
|
||||||
|
</geometry>
|
||||||
|
<material name="black"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<origin rpy="0 1.57079632679 0" xyz="0 0 -0.1065"/>
|
||||||
|
<geometry>
|
||||||
|
<box size="0.213 0.016 0.016"/>
|
||||||
|
</geometry>
|
||||||
|
</collision>
|
||||||
|
<inertial>
|
||||||
|
<origin rpy="0 0 0" xyz="0.006286 0.001307 -0.122269"/>
|
||||||
|
<mass value="0.158015"/>
|
||||||
|
<inertia ixx="0.003607648222" ixy="1.494971e-06" ixz="-0.000132778525" iyy="0.003626771492" iyz="-2.8638535e-05" izz="3.5148003e-05"/>
|
||||||
|
</inertial>
|
||||||
|
</link>
|
||||||
|
<joint name="RR_foot_fixed" type="fixed" dont_collapse="true">
|
||||||
|
<origin rpy="0 0 0" xyz="0 0 -0.213"/>
|
||||||
|
<parent link="RR_calf"/>
|
||||||
|
<child link="RR_foot"/>
|
||||||
|
</joint>
|
||||||
|
<link name="RR_foot">
|
||||||
|
<visual>
|
||||||
|
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||||
|
<geometry>
|
||||||
|
<sphere radius="0.01"/>
|
||||||
|
</geometry>
|
||||||
|
<material name="black"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||||
|
<geometry>
|
||||||
|
<sphere radius="0.02"/>
|
||||||
|
</geometry>
|
||||||
|
</collision>
|
||||||
|
<inertial>
|
||||||
|
<mass value="0.06"/>
|
||||||
|
<inertia ixx="9.6e-06" ixy="0.0" ixz="0.0" iyy="9.6e-06" iyz="0.0" izz="9.6e-06"/>
|
||||||
|
</inertial>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
<joint name="RL_hip_joint" type="revolute">
|
||||||
|
<origin rpy="0 0 0" xyz="-0.1881 0.04675 0"/>
|
||||||
|
<parent link="trunk"/>
|
||||||
|
<child link="RL_hip"/>
|
||||||
|
<axis xyz="1 0 0"/>
|
||||||
|
<dynamics damping="0" friction="0"/>
|
||||||
|
<limit effort="33.5" lower="-0.802851455917" upper="0.802851455917" velocity="50"/>
|
||||||
|
</joint>
|
||||||
|
<link name="RL_hip">
|
||||||
|
<visual>
|
||||||
|
<origin rpy="0 3.14159265359 0" xyz="0 0 0"/>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="../meshes/hip.dae" scale="1 1 1"/>
|
||||||
|
</geometry>
|
||||||
|
<material name="silver"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<origin rpy="1.57079632679 0 0" xyz="0 0.045 0"/>
|
||||||
|
<geometry>
|
||||||
|
<cylinder length="0.04" radius="0.046"/>
|
||||||
|
</geometry>
|
||||||
|
</collision>
|
||||||
|
<inertial>
|
||||||
|
<origin rpy="0 0 0" xyz="0.00541 -0.00074 6e-06"/>
|
||||||
|
<mass value="0.510299"/>
|
||||||
|
<inertia ixx="0.00030528937" ixy="7.788013e-06" ixz="-2.2016e-07" iyy="0.000590894859" iyz="-1.7175e-08" izz="0.000396594572"/>
|
||||||
|
</inertial>
|
||||||
|
</link>
|
||||||
|
<joint name="RL_hip_fixed" type="fixed">
|
||||||
|
<origin rpy="0 0 0" xyz="0 0.08 0"/>
|
||||||
|
<parent link="RL_hip"/>
|
||||||
|
<child link="RL_thigh_shoulder"/>
|
||||||
|
</joint>
|
||||||
|
<!-- this link is only for collision -->
|
||||||
|
<link name="RL_thigh_shoulder">
|
||||||
|
<!-- <collision>
|
||||||
|
<origin rpy="1.57079632679 0 0" xyz="0 0 0"/>
|
||||||
|
<geometry>
|
||||||
|
<cylinder length="0.032" radius="0.041"/>
|
||||||
|
</geometry>
|
||||||
|
</collision> -->
|
||||||
|
</link>
|
||||||
|
<joint name="RL_thigh_joint" type="revolute">
|
||||||
|
<origin rpy="0 0 0" xyz="0 0.08 0"/>
|
||||||
|
<parent link="RL_hip"/>
|
||||||
|
<child link="RL_thigh"/>
|
||||||
|
<axis xyz="0 1 0"/>
|
||||||
|
<dynamics damping="0" friction="0"/>
|
||||||
|
<limit effort="33.5" lower="-1.0471975512" upper="4.18879020479" velocity="28"/>
|
||||||
|
</joint>
|
||||||
|
<link name="RL_thigh">
|
||||||
|
<visual>
|
||||||
|
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="../meshes/thigh.dae" scale="1 1 1"/>
|
||||||
|
</geometry>
|
||||||
|
<material name="silver"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<origin rpy="0 1.57079632679 0" xyz="0 0 -0.1065"/>
|
||||||
|
<geometry>
|
||||||
|
<box size="0.213 0.0245 0.034"/>
|
||||||
|
</geometry>
|
||||||
|
</collision>
|
||||||
|
<inertial>
|
||||||
|
<origin rpy="0 0 0" xyz="-0.003468 -0.018947 -0.032736"/>
|
||||||
|
<mass value="0.898919"/>
|
||||||
|
<inertia ixx="0.005395867678" ixy="1.02809e-07" ixz="0.000337529085" iyy="0.005142451046" iyz="-5.816563e-06" izz="0.00102478732"/>
|
||||||
|
</inertial>
|
||||||
|
</link>
|
||||||
|
<joint name="RL_calf_joint" type="revolute">
|
||||||
|
<origin rpy="0 0 0" xyz="0 0 -0.213"/>
|
||||||
|
<parent link="RL_thigh"/>
|
||||||
|
<child link="RL_calf"/>
|
||||||
|
<axis xyz="0 1 0"/>
|
||||||
|
<dynamics damping="0" friction="0"/>
|
||||||
|
<limit effort="33.5" lower="-2.69653369433" upper="-0.916297857297" velocity="28"/>
|
||||||
|
</joint>
|
||||||
|
<link name="RL_calf">
|
||||||
|
<visual>
|
||||||
|
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="../meshes/calf.dae" scale="1 1 1"/>
|
||||||
|
</geometry>
|
||||||
|
<material name="black"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<origin rpy="0 1.57079632679 0" xyz="0 0 -0.1065"/>
|
||||||
|
<geometry>
|
||||||
|
<box size="0.213 0.016 0.016"/>
|
||||||
|
</geometry>
|
||||||
|
</collision>
|
||||||
|
<inertial>
|
||||||
|
<origin rpy="0 0 0" xyz="0.006286 0.001307 -0.122269"/>
|
||||||
|
<mass value="0.158015"/>
|
||||||
|
<inertia ixx="0.003607648222" ixy="1.494971e-06" ixz="-0.000132778525" iyy="0.003626771492" iyz="-2.8638535e-05" izz="3.5148003e-05"/>
|
||||||
|
</inertial>
|
||||||
|
</link>
|
||||||
|
<joint name="RL_foot_fixed" type="fixed" dont_collapse="true">
|
||||||
|
<origin rpy="0 0 0" xyz="0 0 -0.213"/>
|
||||||
|
<parent link="RL_calf"/>
|
||||||
|
<child link="RL_foot"/>
|
||||||
|
</joint>
|
||||||
|
<link name="RL_foot">
|
||||||
|
<visual>
|
||||||
|
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||||
|
<geometry>
|
||||||
|
<sphere radius="0.01"/>
|
||||||
|
</geometry>
|
||||||
|
<material name="black"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||||
|
<geometry>
|
||||||
|
<sphere radius="0.02"/>
|
||||||
|
</geometry>
|
||||||
|
</collision>
|
||||||
|
<inertial>
|
||||||
|
<mass value="0.06"/>
|
||||||
|
<inertia ixx="9.6e-06" ixy="0.0" ixz="0.0" iyy="9.6e-06" iyz="0.0" izz="9.6e-06"/>
|
||||||
|
</inertial>
|
||||||
|
</link>
|
||||||
|
</robot>
|
||||||
194
resources/robots/go1/xml/go1.xml
Normal file
194
resources/robots/go1/xml/go1.xml
Normal file
@@ -0,0 +1,194 @@
|
|||||||
|
<mujoco model="go1_description">
|
||||||
|
<compiler angle="radian" meshdir="../meshes/" />
|
||||||
|
<size njmax="500" nconmax="100" />
|
||||||
|
<option gravity='0 0 -9.806' iterations='50' solver='Newton' timestep='0.002'/>
|
||||||
|
|
||||||
|
<default>
|
||||||
|
<geom contype="1" conaffinity="1" friction="0.6 0.3 0.3" rgba="0.5 0.6 0.7 1" margin="0.001" group="0"/>
|
||||||
|
|
||||||
|
<light castshadow="false" diffuse="1 1 1"/>
|
||||||
|
<motor ctrlrange="-33.5 33.5" ctrllimited="true"/>
|
||||||
|
<camera fovy="60"/>
|
||||||
|
<joint damping="0.01" armature="0.01" frictionloss="0.2" />
|
||||||
|
|
||||||
|
</default>
|
||||||
|
<asset>
|
||||||
|
<mesh name="trunk" file="trunk.stl" />
|
||||||
|
<mesh name="hip" file="hip.stl" />
|
||||||
|
<mesh name="thigh_mirror" file="thigh_mirror.stl" />
|
||||||
|
<mesh name="calf" file="calf.stl" />
|
||||||
|
<mesh name="thigh" file="thigh.stl" />
|
||||||
|
</asset>
|
||||||
|
|
||||||
|
<asset>
|
||||||
|
<texture type="skybox" builtin="gradient" rgb1="1.0 1.0 1.0" rgb2="1.0 1.0 1.0" width="512" height="512"/>
|
||||||
|
<texture name="plane" type="2d" builtin="flat" rgb1="1 1 1" rgb2="1 1 1" width="512" height="512" mark="cross" markrgb="0 0 0"/>
|
||||||
|
<material name="plane" reflectance="0.0" texture="plane" texrepeat="3 3" texuniform="true"/>
|
||||||
|
</asset>
|
||||||
|
|
||||||
|
<visual>
|
||||||
|
<rgba com="0.502 1.0 0 0.5" contactforce="0.98 0.4 0.4 0.7" contactpoint="1.0 1.0 0.6 0.4"/>
|
||||||
|
<scale com="0.2" forcewidth="0.035" contactwidth="0.10" contactheight="0.04"/>
|
||||||
|
</visual>
|
||||||
|
|
||||||
|
<worldbody>
|
||||||
|
<light directional="true" diffuse=".8 .8 .8" pos="0 0 10" dir="0 0 -10"/>
|
||||||
|
<camera name="track" mode="trackcom" pos="0 -1.3 1.6" xyaxes="1 0 0 0 0.707 0.707"/>
|
||||||
|
<geom name='floor' type='plane' conaffinity='1' condim='3' contype='1' rgba="0.5 0.9 0.9 0.1" material='plane' pos='0 0 0' size='0 0 1'/>
|
||||||
|
|
||||||
|
<body name="trunk" pos="0 0 0.35">
|
||||||
|
<inertial pos="0.0116053 0.00442221 0.000106692" quat="0.0111438 0.707126 -0.00935374 0.706938" mass="4.801" diaginertia="0.0447997 0.0366257 0.0162187" />
|
||||||
|
<joint type="free" />
|
||||||
|
<geom type="mesh" contype="0" conaffinity="0" group="1" rgba="0.913725 0.913725 0.847059 1" mesh="trunk" />
|
||||||
|
<geom size="0.13 0.04675 0.057" type="box" rgba="0.913725 0.913725 0.847059 1" />
|
||||||
|
<geom size="0.0005 0.0005 0.0005" pos="-0.01592 -0.06659 -0.00617" type="box" contype="0" conaffinity="0" group="1" rgba="0.8 0 0 0" />
|
||||||
|
<geom size="0.0005 0.0005 0.0005" pos="-0.01592 -0.06659 -0.00617" type="box" rgba="0.8 0 0 0" />
|
||||||
|
<site name="imu" pos="0 0 0"/>
|
||||||
|
|
||||||
|
<body name="FR_hip" pos="0.1881 -0.04675 0">
|
||||||
|
<inertial pos="-0.00406411 -0.0193463 4.50733e-06" quat="0.467526 0.531662 -0.466259 0.530431" mass="0.679292" diaginertia="0.00131334 0.00122648 0.000728484" />
|
||||||
|
<joint name="FR_hip_joint" pos="0 0 0" axis="1 0 0" limited="true" range="-0.802851 0.802851" />
|
||||||
|
<geom quat="0 1 0 0" type="mesh" contype="0" conaffinity="0" group="1" rgba="0.913725 0.913725 0.847059 1" mesh="hip" />
|
||||||
|
<geom size="0.046 0.02" pos="0 -0.045 0" quat="0.707107 0.707107 0 0" type="cylinder" rgba="0.913725 0.913725 0.847059 0" />
|
||||||
|
<geom size="0.031 0.02" pos="0 -0.07 0" quat="0.707107 0.707107 0 0" type="cylinder" rgba="0.913725 0.913725 0.847059 0" />
|
||||||
|
|
||||||
|
<body name="FR_thigh" pos="0 -0.08 0">
|
||||||
|
<inertial pos="-0.003468 0.018947 -0.032736" quat="0.999266 0.00067676 -0.0382978 0.000639813" mass="0.898919" diaginertia="0.00542178 0.00514246 0.000998869" />
|
||||||
|
<joint name="FR_thigh_joint" pos="0 0 0" axis="0 1 0" limited="true" range="-1.0472 4.18879" />
|
||||||
|
<geom type="mesh" contype="0" conaffinity="0" group="1" rgba="0.913725 0.913725 0.847059 1" mesh="thigh_mirror" />
|
||||||
|
<geom size="0.1065 0.01225 0.017" pos="0 0 -0.1065" quat="0.707107 0 0.707107 0" type="box" rgba="0.913725 0.913725 0.847059 0" />
|
||||||
|
<body name="FR_calf" pos="0 0 -0.213">
|
||||||
|
<inertial pos="0.00455603 0.0009473 -0.147239" quat="0.762045 0.00970173 0.0180098 0.647201" mass="0.218015" diaginertia="0.00399678 0.00398122 3.99428e-05" />
|
||||||
|
<joint name="FR_calf_joint" pos="0 0 0" axis="0 1 0" limited="true" range="-2.69653 -0.916298" />
|
||||||
|
<geom type="mesh" contype="0" conaffinity="0" group="1" rgba="0 0 0 1" mesh="calf" />
|
||||||
|
<geom size="0.1065 0.008 0.008" pos="0 0 -0.1065" quat="0.707107 0 0.707107 0" type="box" rgba="0 0 0 0" />
|
||||||
|
<geom size="0.01" pos="0 0 -0.213" contype="0" conaffinity="0" group="1" rgba="0 0 0 1" />
|
||||||
|
<geom size="0.02" pos="0 0 -0.213" rgba="0 0 0 1" />
|
||||||
|
</body>
|
||||||
|
</body>
|
||||||
|
</body>
|
||||||
|
<body name="FL_hip" pos="0.1881 0.04675 0">
|
||||||
|
<inertial pos="-0.00406411 0.0193463 4.50733e-06" quat="0.531662 0.467526 -0.530431 0.466259" mass="0.679292" diaginertia="0.00131334 0.00122648 0.000728484" />
|
||||||
|
<joint name="FL_hip_joint" pos="0 0 0" axis="1 0 0" limited="true" range="-0.802851 0.802851" />
|
||||||
|
<geom type="mesh" contype="0" conaffinity="0" group="1" rgba="0.913725 0.913725 0.847059 1" mesh="hip" />
|
||||||
|
<geom size="0.046 0.02" pos="0 0.045 0" quat="0.707107 0.707107 0 0" type="cylinder" rgba="0.913725 0.913725 0.847059 0" />
|
||||||
|
<geom size="0.031 0.02" pos="0 0.07 0" quat="0.707107 0.707107 0 0" type="cylinder" rgba="0.913725 0.913725 0.847059 0" />
|
||||||
|
|
||||||
|
<body name="FL_thigh" pos="0 0.08 0">
|
||||||
|
<inertial pos="-0.003468 -0.018947 -0.032736" quat="0.999266 -0.00067676 -0.0382978 -0.000639813" mass="0.898919" diaginertia="0.00542178 0.00514246 0.000998869" />
|
||||||
|
<joint name="FL_thigh_joint" pos="0 0 0" axis="0 1 0" limited="true" range="-1.0472 4.18879" />
|
||||||
|
<geom type="mesh" contype="0" conaffinity="0" group="1" rgba="0.913725 0.913725 0.847059 1" mesh="thigh" />
|
||||||
|
<geom size="0.1065 0.01225 0.017" pos="0 0 -0.1065" quat="0.707107 0 0.707107 0" type="box" rgba="0.913725 0.913725 0.847059 0" />
|
||||||
|
<body name="FL_calf" pos="0 0 -0.213">
|
||||||
|
<inertial pos="0.00455603 0.0009473 -0.147239" quat="0.762045 0.00970173 0.0180098 0.647201" mass="0.218015" diaginertia="0.00399678 0.00398122 3.99428e-05" />
|
||||||
|
<joint name="FL_calf_joint" pos="0 0 0" axis="0 1 0" limited="true" range="-2.69653 -0.916298" />
|
||||||
|
<geom type="mesh" contype="0" conaffinity="0" group="1" rgba="0 0 0 1" mesh="calf" />
|
||||||
|
<geom size="0.1065 0.008 0.008" pos="0 0 -0.1065" quat="0.707107 0 0.707107 0" type="box" rgba="0.913725 0.913725 0.847059 0" />
|
||||||
|
<geom size="0.01" pos="0 0 -0.213" contype="0" conaffinity="0" group="1" rgba="0 0 0 1" />
|
||||||
|
<geom size="0.02" pos="0 0 -0.213" rgba="0 0 0 1" />
|
||||||
|
</body>
|
||||||
|
</body>
|
||||||
|
</body>
|
||||||
|
<body name="RR_hip" pos="-0.1881 -0.04675 0">
|
||||||
|
<inertial pos="0.00406411 -0.0193463 4.50733e-06" quat="0.530431 0.466259 -0.531662 0.467526" mass="0.679292" diaginertia="0.00131334 0.00122648 0.000728484" />
|
||||||
|
<joint name="RR_hip_joint" pos="0 0 0" axis="1 0 0" limited="true" range="-0.802851 0.802851" />
|
||||||
|
<geom quat="0 0 0 -1" type="mesh" contype="0" conaffinity="0" group="1" rgba="0.913725 0.913725 0.847059 1" mesh="hip" />
|
||||||
|
<geom size="0.046 0.02" quat="0.707107 0.707107 0 0" type="cylinder" rgba="0.913725 0.913725 0.847059 1" />
|
||||||
|
<geom size="0.046 0.02" pos="0 -0.045 0" quat="0.707107 0.707107 0 0" type="cylinder" rgba="0.913725 0.913725 0.847059 0" />
|
||||||
|
<geom size="0.031 0.02" pos="0 -0.07 0" quat="0.707107 0.707107 0 0" type="cylinder" rgba="0.913725 0.913725 0.847059 0" />
|
||||||
|
|
||||||
|
<body name="RR_thigh" pos="0 -0.08 0">
|
||||||
|
<inertial pos="-0.003468 0.018947 -0.032736" quat="0.999266 0.00067676 -0.0382978 0.000639813" mass="0.898919" diaginertia="0.00542178 0.00514246 0.000998869" />
|
||||||
|
<joint name="RR_thigh_joint" pos="0 0 0" axis="0 1 0" limited="true" range="-1.0472 4.18879" />
|
||||||
|
<geom type="mesh" contype="0" conaffinity="0" group="1" rgba="0.913725 0.913725 0.847059 1" mesh="thigh_mirror" />
|
||||||
|
<geom size="0.1065 0.01225 0.017" pos="0 0 -0.1065" quat="0.707107 0 0.707107 0" type="box" rgba="0.913725 0.913725 0.847059 0" />
|
||||||
|
<body name="RR_calf" pos="0 0 -0.213">
|
||||||
|
<inertial pos="0.00455603 0.0009473 -0.147239" quat="0.762045 0.00970173 0.0180098 0.647201" mass="0.218015" diaginertia="0.00399678 0.00398122 3.99428e-05" />
|
||||||
|
<joint name="RR_calf_joint" pos="0 0 0" axis="0 1 0" limited="true" range="-2.69653 -0.916298" />
|
||||||
|
<geom type="mesh" contype="0" conaffinity="0" group="1" rgba="0 0 0 1" mesh="calf" />
|
||||||
|
<geom size="0.1065 0.008 0.008" pos="0 0 -0.1065" quat="0.707107 0 0.707107 0" type="box" rgba="0 0 0 0" />
|
||||||
|
<geom size="0.01" pos="0 0 -0.213" contype="0" conaffinity="0" group="1" rgba="0 0 0 1" />
|
||||||
|
<geom size="0.02" pos="0 0 -0.213" rgba="0 0 0 1" />
|
||||||
|
</body>
|
||||||
|
</body>
|
||||||
|
</body>
|
||||||
|
<body name="RL_hip" pos="-0.1881 0.04675 0">
|
||||||
|
<inertial pos="0.00406411 0.0193463 4.50733e-06" quat="0.466259 0.530431 -0.467526 0.531662" mass="0.679292" diaginertia="0.00131334 0.00122648 0.000728484" />
|
||||||
|
<joint name="RL_hip_joint" pos="0 0 0" axis="1 0 0" limited="true" range="-0.802851 0.802851" />
|
||||||
|
<geom quat="0 0 1 0" type="mesh" contype="0" conaffinity="0" group="1" rgba="0.913725 0.913725 0.847059 1" mesh="hip" />
|
||||||
|
<geom size="0.046 0.02" quat="0.707107 0.707107 0 0" type="cylinder" rgba="0.913725 0.913725 0.847059 1" />
|
||||||
|
<geom size="0.046 0.02" pos="0 0.045 0" quat="0.707107 0.707107 0 0" type="cylinder" rgba="0.913725 0.913725 0.847059 0" />
|
||||||
|
<geom size="0.031 0.02" pos="0 0.07 0" quat="0.707107 0.707107 0 0" type="cylinder" rgba="0.913725 0.913725 0.847059 0" />
|
||||||
|
|
||||||
|
<body name="RL_thigh" pos="0 0.08 0">
|
||||||
|
<inertial pos="-0.003468 -0.018947 -0.032736" quat="0.999266 -0.00067676 -0.0382978 -0.000639813" mass="0.898919" diaginertia="0.00542178 0.00514246 0.000998869" />
|
||||||
|
<joint name="RL_thigh_joint" pos="0 0 0" axis="0 1 0" limited="true" range="-1.0472 4.18879" />
|
||||||
|
<geom type="mesh" contype="0" conaffinity="0" group="1" rgba="0.913725 0.913725 0.847059 1" mesh="thigh" />
|
||||||
|
<geom size="0.1065 0.01225 0.017" pos="0 0 -0.1065" quat="0.707107 0 0.707107 0" type="box" rgba="0.913725 0.913725 0.847059 0" />
|
||||||
|
<body name="RL_calf" pos="0 0 -0.213">
|
||||||
|
<inertial pos="0.00455603 0.0009473 -0.147239" quat="0.762045 0.00970173 0.0180098 0.647201" mass="0.218015" diaginertia="0.00399678 0.00398122 3.99428e-05" />
|
||||||
|
<joint name="RL_calf_joint" pos="0 0 0" axis="0 1 0" limited="true" range="-2.69653 -0.916298" />
|
||||||
|
<geom type="mesh" contype="0" conaffinity="0" group="1" rgba="0 0 0 1" mesh="calf" />
|
||||||
|
<geom size="0.1065 0.008 0.008" pos="0 0 -0.1065" quat="0.707107 0 0.707107 0" type="box" rgba="0 0 0 0" />
|
||||||
|
<geom size="0.01" pos="0 0 -0.213" contype="0" conaffinity="0" group="1" rgba="0 0 0 1" />
|
||||||
|
<geom size="0.02" pos="0 0 -0.213" rgba="0 0 0 1" />
|
||||||
|
</body>
|
||||||
|
</body>
|
||||||
|
</body>
|
||||||
|
</body>
|
||||||
|
</worldbody>
|
||||||
|
<actuator>
|
||||||
|
|
||||||
|
<motor name="FR_hip" gear="1" joint="FR_hip_joint"/>
|
||||||
|
<motor name="FR_thigh" gear="1" joint="FR_thigh_joint"/>
|
||||||
|
<motor name="FR_calf" gear="1" joint="FR_calf_joint"/>
|
||||||
|
<motor name="FL_hip" gear="1" joint="FL_hip_joint"/>
|
||||||
|
<motor name="FL_thigh" gear="1" joint="FL_thigh_joint"/>
|
||||||
|
<motor name="FL_calf" gear="1" joint="FL_calf_joint"/>
|
||||||
|
<motor name="RR_hip" gear="1" joint="RR_hip_joint"/>
|
||||||
|
<motor name="RR_thigh" gear="1" joint="RR_thigh_joint"/>
|
||||||
|
<motor name="RR_calf" gear="1" joint="RR_calf_joint" />
|
||||||
|
<motor name="RL_hip" gear="1" joint="RL_hip_joint"/>
|
||||||
|
<motor name="RL_thigh" gear="1" joint="RL_thigh_joint"/>
|
||||||
|
<motor name="RL_calf" gear="1" joint="RL_calf_joint"/>
|
||||||
|
</actuator>
|
||||||
|
|
||||||
|
<sensor>
|
||||||
|
|
||||||
|
<jointpos name="FR_hip_pos" joint="FR_hip_joint"/>
|
||||||
|
<jointpos name="FR_thigh_pos" joint="FR_thigh_joint"/>
|
||||||
|
<jointpos name="FR_calf_pos" joint="FR_calf_joint"/>
|
||||||
|
<jointpos name="FL_hip_pos" joint="FL_hip_joint"/>
|
||||||
|
<jointpos name="FL_thigh_pos" joint="FL_thigh_joint"/>
|
||||||
|
<jointpos name="FL_calf_pos" joint="FL_calf_joint"/>
|
||||||
|
<jointpos name="RR_hip_pos" joint="RR_hip_joint"/>
|
||||||
|
<jointpos name="RR_thigh_pos" joint="RR_thigh_joint"/>
|
||||||
|
<jointpos name="RR_calf_pos" joint="RR_calf_joint" />
|
||||||
|
<jointpos name="RL_hip_pos" joint="RL_hip_joint"/>
|
||||||
|
<jointpos name="RL_thigh_pos" joint="RL_thigh_joint"/>
|
||||||
|
<jointpos name="RL_calf_pos" joint="RL_calf_joint"/>
|
||||||
|
|
||||||
|
<jointvel name="FR_hip_vel" joint="FR_hip_joint"/>
|
||||||
|
<jointvel name="FR_thigh_vel" joint="FR_thigh_joint"/>
|
||||||
|
<jointvel name="FR_calf_vel" joint="FR_calf_joint"/>
|
||||||
|
<jointvel name="FL_hip_vel" joint="FL_hip_joint"/>
|
||||||
|
<jointvel name="FL_thigh_vel" joint="FL_thigh_joint"/>
|
||||||
|
<jointvel name="FL_calf_vel" joint="FL_calf_joint"/>
|
||||||
|
<jointvel name="RR_hip_vel" joint="RR_hip_joint"/>
|
||||||
|
<jointvel name="RR_thigh_vel" joint="RR_thigh_joint"/>
|
||||||
|
<jointvel name="RR_calf_vel" joint="RR_calf_joint" />
|
||||||
|
<jointvel name="RL_hip_vel" joint="RL_hip_joint"/>
|
||||||
|
<jointvel name="RL_thigh_vel" joint="RL_thigh_joint"/>
|
||||||
|
<jointvel name="RL_calf_vel" joint="RL_calf_joint"/>
|
||||||
|
|
||||||
|
<accelerometer name="Body_Acc" site="imu"/>
|
||||||
|
|
||||||
|
<gyro name="Body_Gyro" site="imu"/>
|
||||||
|
|
||||||
|
<framepos name="Body_Pos" objtype="site" objname="imu"/>
|
||||||
|
|
||||||
|
<framequat name="Body_Quat" objtype="site" objname="imu"/>
|
||||||
|
|
||||||
|
|
||||||
|
</sensor>
|
||||||
|
</mujoco>
|
||||||
Reference in New Issue
Block a user