diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7606081 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +__pycache__ +logs + +.idea +.vscode \ No newline at end of file diff --git a/README.md b/README.md index c58594e..3e5a781 100644 --- a/README.md +++ b/README.md @@ -1 +1,64 @@ -详细使用说明,请参考 https://support.unitree.com/home/zh/developer/rl_example +# Unitree RL GYM + +TODO: 简介 + +### Installation + +1. Create a new python virtual env with python 3.6, 3.7 or 3.8 (3.8 recommended) +2. Install pytorch 1.10 with cuda-11.3: + + ``` + pip3 install torch==1.10.0+cu113 torchvision==0.11.1+cu113 torchaudio==0.10.0+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html + + ``` +3. Install Isaac Gym + + - Download and install Isaac Gym Preview 4 from [https://developer.nvidia.com/isaac-gym](https://developer.nvidia.com/isaac-gym) + - `cd isaacgym/python && pip install -e .` + - Try running an example `cd examples && python 1080_balls_of_solitude.py` + - For troubleshooting check docs isaacgym/docs/index.html +4. Install rsl_rl (PPO implementation) + + - Clone [https://github.com/leggedrobotics/rsl_rl](https://github.com/leggedrobotics/rsl_rl) + - `cd rsl_rl && git checkout v1.0.2 && pip install -e .` + +### Usage + +1. Train: + `python legged_gym/scripts/train.py --task=go2` + + * To run on CPU add following arguments: `--sim_device=cpu`, `--rl_device=cpu` (sim on CPU and rl on GPU is possible). + * To run headless (no rendering) add `--headless`. + * **Important** : To improve performance, once the training starts press `v` to stop the rendering. You can then enable it later to check the progress. + * The trained policy is saved in `logs//_/model_.pt`. Where `` and `` are defined in the train config. + * The following command line arguments override the values set in the config files: + * --task TASK: Task name. + * --resume: Resume training from a checkpoint + * --experiment_name EXPERIMENT_NAME: Name of the experiment to run or load. + * --run_name RUN_NAME: Name of the run. + * --load_run LOAD_RUN: Name of the run to load when resume=True. If -1: will load the last run. + * --checkpoint CHECKPOINT: Saved model checkpoint number. If -1: will load the last checkpoint. + * --num_envs NUM_ENVS: Number of environments to create. + * --seed SEED: Random seed. + * --max_iterations MAX_ITERATIONS: Maximum number of training iterations. +2. Play:`python legged_gym/scripts/play.py --task=go2` + * By default, the loaded policy is the last model of the last run of the experiment folder. + + * Other runs/model iteration can be selected by setting `load_run` and `checkpoint` in the train config. + +### Robots Demo + +1. Go2 + + + +2. H1 + + + +3. H1-2 + +https://github.com/user-attachments/assets/a937e9c4-fe91-4240-88ea-d83b0160cad5 + +4. G1 + diff --git a/legged_gym/envs/__init__.py b/legged_gym/envs/__init__.py index f87d9b2..fcad6bf 100644 --- a/legged_gym/envs/__init__.py +++ b/legged_gym/envs/__init__.py @@ -1,12 +1,14 @@ - from legged_gym import LEGGED_GYM_ROOT_DIR, LEGGED_GYM_ENVS_DIR from legged_gym.envs.go2.go2_config import GO2RoughCfg, GO2RoughCfgPPO from legged_gym.envs.h1.h1_config import H1RoughCfg, H1RoughCfgPPO +from legged_gym.envs.h1_2.h1_2_config import H1_2RoughCfg, H1_2RoughCfgPPO +from legged_gym.envs.g1.g1_config import G1RoughCfg, G1RoughCfgPPO from .base.legged_robot import LeggedRobot from legged_gym.utils.task_registry import task_registry + task_registry.register( "go2", LeggedRobot, GO2RoughCfg(), GO2RoughCfgPPO()) task_registry.register( "h1", LeggedRobot, H1RoughCfg(), H1RoughCfgPPO()) - - +task_registry.register( "h1_2", LeggedRobot, H1_2RoughCfg(), H1_2RoughCfgPPO()) +task_registry.register( "g1", LeggedRobot, G1RoughCfg(), G1RoughCfgPPO()) diff --git a/legged_gym/envs/g1/g1_config.py b/legged_gym/envs/g1/g1_config.py new file mode 100644 index 0000000..e21f852 --- /dev/null +++ b/legged_gym/envs/g1/g1_config.py @@ -0,0 +1,83 @@ +from legged_gym.envs.base.legged_robot_config import LeggedRobotCfg, LeggedRobotCfgPPO + +class G1RoughCfg( LeggedRobotCfg ): + class init_state( LeggedRobotCfg.init_state ): + pos = [0.0, 0.0, 0.8] # x,y,z [m] + default_joint_angles = { # = target angles [rad] when action = 0.0 + 'left_hip_yaw_joint' : 0. , + 'left_hip_roll_joint' : 0, + 'left_hip_pitch_joint' : -0.1, + 'left_knee_joint' : 0.3, + 'left_ankle_pitch_joint' : -0.2, + 'left_ankle_roll_joint' : 0, + 'right_hip_yaw_joint' : 0., + 'right_hip_roll_joint' : 0, + 'right_hip_pitch_joint' : -0.1, + 'right_knee_joint' : 0.3, + 'right_ankle_pitch_joint': -0.2, + 'right_ankle_roll_joint' : 0, + 'torso_joint' : 0. + } + + class env(LeggedRobotCfg.env): + num_observations = 48 + num_actions = 12 + + + class control( LeggedRobotCfg.control ): + # PD Drive parameters: + control_type = 'P' + # PD Drive parameters: + stiffness = {'hip_yaw': 150, + 'hip_roll': 150, + 'hip_pitch': 150, + 'knee': 300, + 'ankle': 40, + } # [N*m/rad] + damping = { 'hip_yaw': 2, + 'hip_roll': 2, + 'hip_pitch': 2, + 'knee': 4, + 'ankle': 2, + } # [N*m/rad] # [N*m*s/rad] + # action scale: target angle = actionScale * action + defaultAngle + action_scale = 0.25 + # decimation: Number of control action updates @ sim DT per policy DT + decimation = 4 + + class asset( LeggedRobotCfg.asset ): + file = '{LEGGED_GYM_ROOT_DIR}/resources/robots/g1/urdf/g1.urdf' + name = "g1" + foot_name = "ankle_roll" + penalize_contacts_on = ["hip", "knee"] + terminate_after_contacts_on = ["torso"] + self_collisions = 1 # 1 to disable, 0 to enable...bitwise filter + flip_visual_attachments = False + + class rewards( LeggedRobotCfg.rewards ): + soft_dof_pos_limit = 0.9 + base_height_target = 0.728 + class scales( LeggedRobotCfg.rewards.scales ): + tracking_lin_vel = 1.0 + tracking_ang_vel = 0.5 + lin_vel_z = -2.0 + ang_vel_xy = -0.05 + orientation = -1.0 + base_height = -10.0 + dof_acc = -2.5e-8 + feet_air_time = 1.0 + collision = 0.0 + action_rate = -0.01 + # torques = -0.0001 + dof_pos_limits = -5.0 + +class G1RoughCfgPPO( LeggedRobotCfgPPO ): + class policy: + init_noise_std = 0.8 + class algorithm( LeggedRobotCfgPPO.algorithm ): + entropy_coef = 0.01 + class runner( LeggedRobotCfgPPO.runner ): + run_name = '' + experiment_name = 'g1' + + diff --git a/legged_gym/envs/h1/__pycache__/h1_config.cpython-38.pyc b/legged_gym/envs/h1/__pycache__/h1_config.cpython-38.pyc deleted file mode 100644 index a8ed8ab..0000000 Binary files a/legged_gym/envs/h1/__pycache__/h1_config.cpython-38.pyc and /dev/null differ diff --git a/legged_gym/envs/h1_2/README.md b/legged_gym/envs/h1_2/README.md new file mode 100644 index 0000000..4c491ff --- /dev/null +++ b/legged_gym/envs/h1_2/README.md @@ -0,0 +1,25 @@ +# H1_2 RL Example (Preview) + +## Simplified URDF + +This task utilizes a simplified version of URDF. We fix some joints and ignore most of the collisions. + +### Fixed Joints + +We fix all the joints in the hands, wrists and the elbow roll joints, since those joints have very limited effect on the whole body dynamics and are commonly controlled by other controllers. + +### Collisions + +We only keep the collision of foot roll links, knee links and the base. Early termination is majorly checked by the angular position of the base. + +## Dynamics + +Free "light" end effectors can lead to unstable simulation. Thus please be carefull with the control parameters for the joints that may affect such end effectors. + +## Results + +https://github.com/user-attachments/assets/a937e9c4-fe91-4240-88ea-d83b0160cad5 + +## Preview Stage + +**The reward functions are not well tuned and cannot produce satisfactory results at the current stage. A feasible version is comming soon.** diff --git a/legged_gym/envs/h1_2/h1_2_config.py b/legged_gym/envs/h1_2/h1_2_config.py new file mode 100644 index 0000000..0e498d5 --- /dev/null +++ b/legged_gym/envs/h1_2/h1_2_config.py @@ -0,0 +1,121 @@ +from legged_gym.envs.base.legged_robot_config import LeggedRobotCfg, LeggedRobotCfgPPO + + +class H1_2RoughCfg(LeggedRobotCfg): + + class init_state(LeggedRobotCfg.init_state): + pos = [0.0, 0.0, 1.0] # x,y,z [m] + default_joint_angles = { # = target angles [rad] when action = 0.0 + 'left_hip_yaw_joint': 0, + 'left_hip_roll_joint': 0, + 'left_hip_pitch_joint': -0.6, + 'left_knee_joint': 1.2, + 'left_ankle_pitch_joint': -0.6, + 'left_ankle_roll_joint': 0.0, + + 'right_hip_yaw_joint': 0, + 'right_hip_roll_joint': 0, + 'right_hip_pitch_joint': -0.6, + 'right_knee_joint': 1.2, + 'right_ankle_pitch_joint': -0.6, + 'right_ankle_roll_joint': 0.0, + + 'torso_joint': 0, + + 'left_shoulder_pitch_joint': 0.4, + 'left_shoulder_roll_joint': 0, + 'left_shoulder_yaw_joint': 0, + 'left_elbow_pitch_joint': 0.3, + + 'right_shoulder_pitch_joint': 0.4, + 'right_shoulder_roll_joint': 0, + 'right_shoulder_yaw_joint': 0, + 'right_elbow_pitch_joint': 0.3, + } + + class env(LeggedRobotCfg.env): + num_actions = 21 + num_observations = 12 + num_actions * 3 + num_envs = 8192 + + class control(LeggedRobotCfg.control): + # PD Drive parameters: + control_type = 'P' + # PD Drive parameters: + stiffness = { + 'hip_yaw_joint': 200., + 'hip_roll_joint': 200., + 'hip_pitch_joint': 200., + 'knee_joint': 300., + 'ankle_pitch_joint': 60., + 'ankle_roll_joint': 40., + 'torso_joint': 600., + 'shoulder_pitch_joint': 80., + 'shoulder_roll_joint': 80., + 'shoulder_yaw_joint': 40., + 'elbow_pitch_joint': 60., + } # [N*m/rad] + damping = { + 'hip_yaw_joint': 5.0, + 'hip_roll_joint': 5.0, + 'hip_pitch_joint': 5.0, + 'knee_joint': 7.5, + 'ankle_pitch_joint': 1.0, + 'ankle_roll_joint': 0.3, + 'torso_joint': 15.0, + 'shoulder_pitch_joint': 2.0, + 'shoulder_roll_joint': 2.0, + 'shoulder_yaw_joint': 1.0, + 'elbow_pitch_joint': 1.0, + } # [N*m/rad] # [N*m*s/rad] + # action scale: target angle = actionScale * action + defaultAngle + action_scale = 0.25 + # decimation: Number of control action updates @ sim DT per policy DT + decimation = 10 + + class asset(LeggedRobotCfg.asset): + file = '{LEGGED_GYM_ROOT_DIR}/resources/robots/h1_2/h1_2_simplified.urdf' + name = "h1_2" + foot_name = "ankle_roll" + penalize_contacts_on = [] + terminate_after_contacts_on = [] + self_collisions = 1 # 1 to disable, 0 to enable...bitwise filter + flip_visual_attachments = False + armature = 6e-4 # stablize semi-euler integration for end effectors + + class sim(LeggedRobotCfg.sim): + dt = 0.002 # stablize semi-euler integration for end effectors + + class rewards(LeggedRobotCfg.rewards): + soft_dof_pos_limit = 0.9 + base_height_target = 0.98 + + class scales(LeggedRobotCfg.rewards.scales): + tracking_lin_vel = 1.0 + tracking_ang_vel = 0.5 + lin_vel_z = -0.2 + ang_vel_xy = -0.1 + orientation = -0.1 + base_height = -10.0 + dof_acc = -3.5e-9 + feet_air_time = 1.0 + collision = 0.0 + action_rate = -0.001 + torques = 0.0 + dof_pos_limits = -1.0 + + only_positive_rewards = False # if true negative total rewards are clipped at zero (avoids early termination problems) + + class normalization(LeggedRobotCfg.normalization): + clip_actions = 10.0 + + +class H1_2RoughCfgPPO(LeggedRobotCfgPPO): + + class policy(LeggedRobotCfgPPO.policy): + init_noise_std = 0.3 + activation = 'tanh' + + class runner(LeggedRobotCfgPPO.runner): + run_name = '' + experiment_name = 'h1_2' diff --git a/legged_gym/scripts/play.py b/legged_gym/scripts/play.py index 28aec6b..03ec2d7 100644 --- a/legged_gym/scripts/play.py +++ b/legged_gym/scripts/play.py @@ -1,7 +1,8 @@ -import sys -sys.path.append("/home/unitree/unitree_rl_gym") -from legged_gym import LEGGED_GYM_ROOT_DIR import os +unitree_rl_gym_path = os.path.abspath(__file__ + "../../../../") +import sys +sys.path.append(unitree_rl_gym_path) +from legged_gym import LEGGED_GYM_ROOT_DIR import isaacgym from legged_gym.envs import * diff --git a/legged_gym/scripts/train.py b/legged_gym/scripts/train.py index aa904e8..5d84855 100644 --- a/legged_gym/scripts/train.py +++ b/legged_gym/scripts/train.py @@ -1,8 +1,9 @@ -import numpy as np import os +unitree_rl_gym_path = os.path.abspath(__file__ + "../../../../") +import numpy as np from datetime import datetime import sys -sys.path.append("/home/unitree/unitree_rl_gym/") +sys.path.append(unitree_rl_gym_path) import isaacgym from legged_gym.envs import * diff --git a/resources/robots/g1/meshes/head_link.STL b/resources/robots/g1/meshes/head_link.STL new file mode 100644 index 0000000..455274f Binary files /dev/null and b/resources/robots/g1/meshes/head_link.STL differ diff --git a/resources/robots/g1/meshes/left_ankle_pitch_link.STL b/resources/robots/g1/meshes/left_ankle_pitch_link.STL new file mode 100644 index 0000000..c291f60 Binary files /dev/null and b/resources/robots/g1/meshes/left_ankle_pitch_link.STL differ diff --git a/resources/robots/g1/meshes/left_ankle_roll_link.STL b/resources/robots/g1/meshes/left_ankle_roll_link.STL new file mode 100644 index 0000000..f2b6ae7 Binary files /dev/null and b/resources/robots/g1/meshes/left_ankle_roll_link.STL differ diff --git a/resources/robots/g1/meshes/left_elbow_pitch_link.STL b/resources/robots/g1/meshes/left_elbow_pitch_link.STL new file mode 100644 index 0000000..5ba2fde Binary files /dev/null and b/resources/robots/g1/meshes/left_elbow_pitch_link.STL differ diff --git a/resources/robots/g1/meshes/left_elbow_roll_link.STL b/resources/robots/g1/meshes/left_elbow_roll_link.STL new file mode 100644 index 0000000..9741ac0 Binary files /dev/null and b/resources/robots/g1/meshes/left_elbow_roll_link.STL differ diff --git a/resources/robots/g1/meshes/left_five_link.STL b/resources/robots/g1/meshes/left_five_link.STL new file mode 100644 index 0000000..cc35d51 Binary files /dev/null and b/resources/robots/g1/meshes/left_five_link.STL differ diff --git a/resources/robots/g1/meshes/left_four_link.STL b/resources/robots/g1/meshes/left_four_link.STL new file mode 100644 index 0000000..6392be7 Binary files /dev/null and b/resources/robots/g1/meshes/left_four_link.STL differ diff --git a/resources/robots/g1/meshes/left_hip_pitch_link.STL b/resources/robots/g1/meshes/left_hip_pitch_link.STL new file mode 100644 index 0000000..1e56afc Binary files /dev/null and b/resources/robots/g1/meshes/left_hip_pitch_link.STL differ diff --git a/resources/robots/g1/meshes/left_hip_roll_link.STL b/resources/robots/g1/meshes/left_hip_roll_link.STL new file mode 100644 index 0000000..d1df2f4 Binary files /dev/null and b/resources/robots/g1/meshes/left_hip_roll_link.STL differ diff --git a/resources/robots/g1/meshes/left_hip_yaw_link.STL b/resources/robots/g1/meshes/left_hip_yaw_link.STL new file mode 100644 index 0000000..deadd3c Binary files /dev/null and b/resources/robots/g1/meshes/left_hip_yaw_link.STL differ diff --git a/resources/robots/g1/meshes/left_knee_link.STL b/resources/robots/g1/meshes/left_knee_link.STL new file mode 100644 index 0000000..e0095a4 Binary files /dev/null and b/resources/robots/g1/meshes/left_knee_link.STL differ diff --git a/resources/robots/g1/meshes/left_one_link.STL b/resources/robots/g1/meshes/left_one_link.STL new file mode 100644 index 0000000..6ee97bd Binary files /dev/null and b/resources/robots/g1/meshes/left_one_link.STL differ diff --git a/resources/robots/g1/meshes/left_palm_link.STL b/resources/robots/g1/meshes/left_palm_link.STL new file mode 100644 index 0000000..524a0e2 Binary files /dev/null and b/resources/robots/g1/meshes/left_palm_link.STL differ diff --git a/resources/robots/g1/meshes/left_shoulder_pitch_link.STL b/resources/robots/g1/meshes/left_shoulder_pitch_link.STL new file mode 100644 index 0000000..e54d656 Binary files /dev/null and b/resources/robots/g1/meshes/left_shoulder_pitch_link.STL differ diff --git a/resources/robots/g1/meshes/left_shoulder_roll_link.STL b/resources/robots/g1/meshes/left_shoulder_roll_link.STL new file mode 100644 index 0000000..75dc809 Binary files /dev/null and b/resources/robots/g1/meshes/left_shoulder_roll_link.STL differ diff --git a/resources/robots/g1/meshes/left_shoulder_yaw_link.STL b/resources/robots/g1/meshes/left_shoulder_yaw_link.STL new file mode 100644 index 0000000..4e5a7c9 Binary files /dev/null and b/resources/robots/g1/meshes/left_shoulder_yaw_link.STL differ diff --git a/resources/robots/g1/meshes/left_six_link.STL b/resources/robots/g1/meshes/left_six_link.STL new file mode 100644 index 0000000..2739846 Binary files /dev/null and b/resources/robots/g1/meshes/left_six_link.STL differ diff --git a/resources/robots/g1/meshes/left_three_link.STL b/resources/robots/g1/meshes/left_three_link.STL new file mode 100644 index 0000000..cc35d51 Binary files /dev/null and b/resources/robots/g1/meshes/left_three_link.STL differ diff --git a/resources/robots/g1/meshes/left_two_link.STL b/resources/robots/g1/meshes/left_two_link.STL new file mode 100644 index 0000000..b85b645 Binary files /dev/null and b/resources/robots/g1/meshes/left_two_link.STL differ diff --git a/resources/robots/g1/meshes/left_zero_link.STL b/resources/robots/g1/meshes/left_zero_link.STL new file mode 100644 index 0000000..f50147a Binary files /dev/null and b/resources/robots/g1/meshes/left_zero_link.STL differ diff --git a/resources/robots/g1/meshes/logo_link.STL b/resources/robots/g1/meshes/logo_link.STL new file mode 100644 index 0000000..20f7bba Binary files /dev/null and b/resources/robots/g1/meshes/logo_link.STL differ diff --git a/resources/robots/g1/meshes/pelvis.STL b/resources/robots/g1/meshes/pelvis.STL new file mode 100644 index 0000000..5877dee Binary files /dev/null and b/resources/robots/g1/meshes/pelvis.STL differ diff --git a/resources/robots/g1/meshes/pelvis_contour_link.STL b/resources/robots/g1/meshes/pelvis_contour_link.STL new file mode 100644 index 0000000..72fa4ac Binary files /dev/null and b/resources/robots/g1/meshes/pelvis_contour_link.STL differ diff --git a/resources/robots/g1/meshes/right_ankle_pitch_link.STL b/resources/robots/g1/meshes/right_ankle_pitch_link.STL new file mode 100644 index 0000000..36e3a64 Binary files /dev/null and b/resources/robots/g1/meshes/right_ankle_pitch_link.STL differ diff --git a/resources/robots/g1/meshes/right_ankle_roll_link.STL b/resources/robots/g1/meshes/right_ankle_roll_link.STL new file mode 100644 index 0000000..d0a2657 Binary files /dev/null and b/resources/robots/g1/meshes/right_ankle_roll_link.STL differ diff --git a/resources/robots/g1/meshes/right_elbow_pitch_link.STL b/resources/robots/g1/meshes/right_elbow_pitch_link.STL new file mode 100644 index 0000000..a62a422 Binary files /dev/null and b/resources/robots/g1/meshes/right_elbow_pitch_link.STL differ diff --git a/resources/robots/g1/meshes/right_elbow_roll_link.STL b/resources/robots/g1/meshes/right_elbow_roll_link.STL new file mode 100644 index 0000000..6010e8b Binary files /dev/null and b/resources/robots/g1/meshes/right_elbow_roll_link.STL differ diff --git a/resources/robots/g1/meshes/right_five_link.STL b/resources/robots/g1/meshes/right_five_link.STL new file mode 100644 index 0000000..37f9dc2 Binary files /dev/null and b/resources/robots/g1/meshes/right_five_link.STL differ diff --git a/resources/robots/g1/meshes/right_four_link.STL b/resources/robots/g1/meshes/right_four_link.STL new file mode 100644 index 0000000..be81a79 Binary files /dev/null and b/resources/robots/g1/meshes/right_four_link.STL differ diff --git a/resources/robots/g1/meshes/right_hip_pitch_link.STL b/resources/robots/g1/meshes/right_hip_pitch_link.STL new file mode 100644 index 0000000..66b47ea Binary files /dev/null and b/resources/robots/g1/meshes/right_hip_pitch_link.STL differ diff --git a/resources/robots/g1/meshes/right_hip_roll_link.STL b/resources/robots/g1/meshes/right_hip_roll_link.STL new file mode 100644 index 0000000..021dd7f Binary files /dev/null and b/resources/robots/g1/meshes/right_hip_roll_link.STL differ diff --git a/resources/robots/g1/meshes/right_hip_yaw_link.STL b/resources/robots/g1/meshes/right_hip_yaw_link.STL new file mode 100644 index 0000000..330e55a Binary files /dev/null and b/resources/robots/g1/meshes/right_hip_yaw_link.STL differ diff --git a/resources/robots/g1/meshes/right_knee_link.STL b/resources/robots/g1/meshes/right_knee_link.STL new file mode 100644 index 0000000..7be6860 Binary files /dev/null and b/resources/robots/g1/meshes/right_knee_link.STL differ diff --git a/resources/robots/g1/meshes/right_one_link.STL b/resources/robots/g1/meshes/right_one_link.STL new file mode 100644 index 0000000..93e103a Binary files /dev/null and b/resources/robots/g1/meshes/right_one_link.STL differ diff --git a/resources/robots/g1/meshes/right_palm_link.STL b/resources/robots/g1/meshes/right_palm_link.STL new file mode 100644 index 0000000..7cd39cd Binary files /dev/null and b/resources/robots/g1/meshes/right_palm_link.STL differ diff --git a/resources/robots/g1/meshes/right_shoulder_pitch_link.STL b/resources/robots/g1/meshes/right_shoulder_pitch_link.STL new file mode 100644 index 0000000..7e1d01d Binary files /dev/null and b/resources/robots/g1/meshes/right_shoulder_pitch_link.STL differ diff --git a/resources/robots/g1/meshes/right_shoulder_roll_link.STL b/resources/robots/g1/meshes/right_shoulder_roll_link.STL new file mode 100644 index 0000000..f653871 Binary files /dev/null and b/resources/robots/g1/meshes/right_shoulder_roll_link.STL differ diff --git a/resources/robots/g1/meshes/right_shoulder_yaw_link.STL b/resources/robots/g1/meshes/right_shoulder_yaw_link.STL new file mode 100644 index 0000000..01aa95a Binary files /dev/null and b/resources/robots/g1/meshes/right_shoulder_yaw_link.STL differ diff --git a/resources/robots/g1/meshes/right_six_link.STL b/resources/robots/g1/meshes/right_six_link.STL new file mode 100644 index 0000000..be81a79 Binary files /dev/null and b/resources/robots/g1/meshes/right_six_link.STL differ diff --git a/resources/robots/g1/meshes/right_three_link.STL b/resources/robots/g1/meshes/right_three_link.STL new file mode 100644 index 0000000..37f9dc2 Binary files /dev/null and b/resources/robots/g1/meshes/right_three_link.STL differ diff --git a/resources/robots/g1/meshes/right_two_link.STL b/resources/robots/g1/meshes/right_two_link.STL new file mode 100644 index 0000000..1af670c Binary files /dev/null and b/resources/robots/g1/meshes/right_two_link.STL differ diff --git a/resources/robots/g1/meshes/right_zero_link.STL b/resources/robots/g1/meshes/right_zero_link.STL new file mode 100644 index 0000000..4fd999b Binary files /dev/null and b/resources/robots/g1/meshes/right_zero_link.STL differ diff --git a/resources/robots/g1/meshes/torso_link.STL b/resources/robots/g1/meshes/torso_link.STL new file mode 100644 index 0000000..b6a6d12 Binary files /dev/null and b/resources/robots/g1/meshes/torso_link.STL differ diff --git a/resources/robots/g1/urdf/g1.urdf b/resources/robots/g1/urdf/g1.urdf new file mode 100644 index 0000000..ce3a36a --- /dev/null +++ b/resources/robots/g1/urdf/g1.urdf @@ -0,0 +1,1295 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/robots/h1_2/README.md b/resources/robots/h1_2/README.md new file mode 100644 index 0000000..b9c139b --- /dev/null +++ b/resources/robots/h1_2/README.md @@ -0,0 +1,79 @@ +# Unitree H1 Description (URDF & MJCF) + +## Overview + +This package includes a streamlined robot description (URDF & MJCF) for the [Unitree H1](https://www.unitree.com/h1/), developed by [Unitree Robotics](https://www.unitree.com/). + +

+ +

+ +Unitree H1 have 51 DOFs: + +```text +root [⚓] => /pelvis/ + left_hip_yaw_joint [⚙+Z] => /left_hip_yaw_link/ + left_hip_pitch_joint [⚙+Y] => /left_hip_pitch_link/ + left_hip_roll_joint [⚙+X] => /left_hip_roll_link/ + left_knee_joint [⚙+Y] => /left_knee_link/ + left_ankle_pitch_joint [⚙+Y] => /left_ankle_pitch_link/ + left_ankle_roll_joint [⚙+X] => /left_ankle_roll_link/ + right_hip_yaw_joint [⚙+Z] => /right_hip_yaw_link/ + right_hip_pitch_joint [⚙+Y] => /right_hip_pitch_link/ + right_hip_roll_joint [⚙+X] => /right_hip_roll_link/ + right_knee_joint [⚙+Y] => /right_knee_link/ + right_ankle_pitch_joint [⚙+Y] => /right_ankle_pitch_link/ + right_ankle_roll_joint [⚙+X] => /right_ankle_roll_link/ + torso_joint [⚙+Z] => /torso_link/ + left_shoulder_pitch_joint [⚙+Y] => /left_shoulder_pitch_link/ + left_shoulder_roll_joint [⚙+X] => /left_shoulder_roll_link/ + left_shoulder_yaw_joint [⚙+Z] => /left_shoulder_yaw_link/ + left_elbow_pitch_joint [⚙+Y] => /left_elbow_pitch_link/ + left_elbow_roll_joint [⚙+X] => /left_elbow_roll_link/ + left_wrist_pitch_joint [⚙+Y] => /left_wrist_pitch_link/ + left_wrist_yaw_joint [⚙+Z] => /left_wrist_yaw_link/ + L_base_link_joint [⚓] => /L_hand_base_link/ + L_thumb_proximal_yaw_joint [⚙+Z] => /L_thumb_proximal_base/ + L_thumb_proximal_pitch_joint [⚙-Z] => /L_thumb_proximal/ + L_thumb_intermediate_joint [⚙-Z] => /L_thumb_intermediate/ + L_thumb_distal_joint [⚙-Z] => /L_thumb_distal/ + L_index_proximal_joint [⚙-Z] => /L_index_proximal/ + L_index_intermediate_joint [⚙-Z] => /L_index_intermediate/ + L_middle_proximal_joint [⚙-Z] => /L_middle_proximal/ + L_middle_intermediate_joint [⚙-Z] => /L_middle_intermediate/ + L_ring_proximal_joint [⚙-Z] => /L_ring_proximal/ + L_ring_intermediate_joint [⚙-Z] => /L_ring_intermediate/ + L_pinky_proximal_joint [⚙-Z] => /L_pinky_proximal/ + L_pinky_intermediate_joint [⚙-Z] => /L_pinky_intermediate/ + right_shoulder_pitch_joint [⚙+Y] => /right_shoulder_pitch_link/ + right_shoulder_roll_joint [⚙+X] => /right_shoulder_roll_link/ + right_shoulder_yaw_joint [⚙+Z] => /right_shoulder_yaw_link/ + right_elbow_pitch_joint [⚙+Y] => /right_elbow_pitch_link/ + right_elbow_roll_joint [⚙+X] => /right_elbow_roll_link/ + right_wrist_pitch_joint [⚙+Y] => /right_wrist_pitch_link/ + right_wrist_yaw_joint [⚙+Z] => /right_wrist_yaw_link/ + R_base_link_joint [⚓] => /R_hand_base_link/ + R_thumb_proximal_yaw_joint [⚙-Z] => /R_thumb_proximal_base/ + R_thumb_proximal_pitch_joint [⚙+Z] => /R_thumb_proximal/ + R_thumb_intermediate_joint [⚙+Z] => /R_thumb_intermediate/ + R_thumb_distal_joint [⚙+Z] => /R_thumb_distal/ + R_index_proximal_joint [⚙+Z] => /R_index_proximal/ + R_index_intermediate_joint [⚙+Z] => /R_index_intermediate/ + R_middle_proximal_joint [⚙+Z] => /R_middle_proximal/ + R_middle_intermediate_joint [⚙+Z] => /R_middle_intermediate/ + R_ring_proximal_joint [⚙+Z] => /R_ring_proximal/ + R_ring_intermediate_joint [⚙+Z] => /R_ring_intermediate/ + R_pinky_proximal_joint [⚙+Z] => /R_pinky_proximal/ + R_pinky_intermediate_joint [⚙+Z] => /R_pinky_intermediate/ +``` + +## Visulization with [MuJoCo](https://github.com/google-deepmind/mujoco) + +1. Open MuJoCo Viewer + + ```bash + pip install mujoco + python -m mujoco.viewer + ``` + +2. Drag and drop the MJCF model file (`scene.xml`) to the MuJoCo Viewer. diff --git a/resources/robots/h1_2/h1_2.png b/resources/robots/h1_2/h1_2.png new file mode 100644 index 0000000..89efec8 Binary files /dev/null and b/resources/robots/h1_2/h1_2.png differ diff --git a/resources/robots/h1_2/h1_2.urdf b/resources/robots/h1_2/h1_2.urdf new file mode 100644 index 0000000..1b5a418 --- /dev/null +++ b/resources/robots/h1_2/h1_2.urdf @@ -0,0 +1,1623 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/robots/h1_2/h1_2.xml b/resources/robots/h1_2/h1_2.xml new file mode 100644 index 0000000..d946402 --- /dev/null +++ b/resources/robots/h1_2/h1_2.xml @@ -0,0 +1,438 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/robots/h1_2/h1_2_simplified.urdf b/resources/robots/h1_2/h1_2_simplified.urdf new file mode 100644 index 0000000..c474fc8 --- /dev/null +++ b/resources/robots/h1_2/h1_2_simplified.urdf @@ -0,0 +1,1333 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/robots/h1_2/meshes/L_hand_base_link.STL b/resources/robots/h1_2/meshes/L_hand_base_link.STL new file mode 100644 index 0000000..a2f67ee Binary files /dev/null and b/resources/robots/h1_2/meshes/L_hand_base_link.STL differ diff --git a/resources/robots/h1_2/meshes/L_index_intermediate.STL b/resources/robots/h1_2/meshes/L_index_intermediate.STL new file mode 100644 index 0000000..24a5a83 Binary files /dev/null and b/resources/robots/h1_2/meshes/L_index_intermediate.STL differ diff --git a/resources/robots/h1_2/meshes/L_index_proximal.STL b/resources/robots/h1_2/meshes/L_index_proximal.STL new file mode 100644 index 0000000..f899431 Binary files /dev/null and b/resources/robots/h1_2/meshes/L_index_proximal.STL differ diff --git a/resources/robots/h1_2/meshes/L_middle_intermediate.STL b/resources/robots/h1_2/meshes/L_middle_intermediate.STL new file mode 100644 index 0000000..c498cd7 Binary files /dev/null and b/resources/robots/h1_2/meshes/L_middle_intermediate.STL differ diff --git a/resources/robots/h1_2/meshes/L_middle_proximal.STL b/resources/robots/h1_2/meshes/L_middle_proximal.STL new file mode 100644 index 0000000..8f0aca6 Binary files /dev/null and b/resources/robots/h1_2/meshes/L_middle_proximal.STL differ diff --git a/resources/robots/h1_2/meshes/L_pinky_intermediate.STL b/resources/robots/h1_2/meshes/L_pinky_intermediate.STL new file mode 100644 index 0000000..6b9cdad Binary files /dev/null and b/resources/robots/h1_2/meshes/L_pinky_intermediate.STL differ diff --git a/resources/robots/h1_2/meshes/L_pinky_proximal.STL b/resources/robots/h1_2/meshes/L_pinky_proximal.STL new file mode 100644 index 0000000..ccb63bf Binary files /dev/null and b/resources/robots/h1_2/meshes/L_pinky_proximal.STL differ diff --git a/resources/robots/h1_2/meshes/L_ring_intermediate.STL b/resources/robots/h1_2/meshes/L_ring_intermediate.STL new file mode 100644 index 0000000..23c4efa Binary files /dev/null and b/resources/robots/h1_2/meshes/L_ring_intermediate.STL differ diff --git a/resources/robots/h1_2/meshes/L_ring_proximal.STL b/resources/robots/h1_2/meshes/L_ring_proximal.STL new file mode 100644 index 0000000..c3cabb9 Binary files /dev/null and b/resources/robots/h1_2/meshes/L_ring_proximal.STL differ diff --git a/resources/robots/h1_2/meshes/L_thumb_distal.STL b/resources/robots/h1_2/meshes/L_thumb_distal.STL new file mode 100644 index 0000000..291a14f Binary files /dev/null and b/resources/robots/h1_2/meshes/L_thumb_distal.STL differ diff --git a/resources/robots/h1_2/meshes/L_thumb_intermediate.STL b/resources/robots/h1_2/meshes/L_thumb_intermediate.STL new file mode 100644 index 0000000..03a3425 Binary files /dev/null and b/resources/robots/h1_2/meshes/L_thumb_intermediate.STL differ diff --git a/resources/robots/h1_2/meshes/L_thumb_proximal.STL b/resources/robots/h1_2/meshes/L_thumb_proximal.STL new file mode 100644 index 0000000..08071d3 Binary files /dev/null and b/resources/robots/h1_2/meshes/L_thumb_proximal.STL differ diff --git a/resources/robots/h1_2/meshes/L_thumb_proximal_base.STL b/resources/robots/h1_2/meshes/L_thumb_proximal_base.STL new file mode 100644 index 0000000..9933a6c Binary files /dev/null and b/resources/robots/h1_2/meshes/L_thumb_proximal_base.STL differ diff --git a/resources/robots/h1_2/meshes/R_hand_base_link.STL b/resources/robots/h1_2/meshes/R_hand_base_link.STL new file mode 100644 index 0000000..3478a98 Binary files /dev/null and b/resources/robots/h1_2/meshes/R_hand_base_link.STL differ diff --git a/resources/robots/h1_2/meshes/R_index_intermediate.STL b/resources/robots/h1_2/meshes/R_index_intermediate.STL new file mode 100644 index 0000000..0cf0f8d Binary files /dev/null and b/resources/robots/h1_2/meshes/R_index_intermediate.STL differ diff --git a/resources/robots/h1_2/meshes/R_index_proximal.STL b/resources/robots/h1_2/meshes/R_index_proximal.STL new file mode 100644 index 0000000..cbfc711 Binary files /dev/null and b/resources/robots/h1_2/meshes/R_index_proximal.STL differ diff --git a/resources/robots/h1_2/meshes/R_middle_intermediate.STL b/resources/robots/h1_2/meshes/R_middle_intermediate.STL new file mode 100644 index 0000000..ebc2616 Binary files /dev/null and b/resources/robots/h1_2/meshes/R_middle_intermediate.STL differ diff --git a/resources/robots/h1_2/meshes/R_middle_proximal.STL b/resources/robots/h1_2/meshes/R_middle_proximal.STL new file mode 100644 index 0000000..3f630a3 Binary files /dev/null and b/resources/robots/h1_2/meshes/R_middle_proximal.STL differ diff --git a/resources/robots/h1_2/meshes/R_pinky_intermediate.STL b/resources/robots/h1_2/meshes/R_pinky_intermediate.STL new file mode 100644 index 0000000..c2cf58b Binary files /dev/null and b/resources/robots/h1_2/meshes/R_pinky_intermediate.STL differ diff --git a/resources/robots/h1_2/meshes/R_pinky_proximal.STL b/resources/robots/h1_2/meshes/R_pinky_proximal.STL new file mode 100644 index 0000000..d4710f1 Binary files /dev/null and b/resources/robots/h1_2/meshes/R_pinky_proximal.STL differ diff --git a/resources/robots/h1_2/meshes/R_ring_intermediate.STL b/resources/robots/h1_2/meshes/R_ring_intermediate.STL new file mode 100644 index 0000000..5fed852 Binary files /dev/null and b/resources/robots/h1_2/meshes/R_ring_intermediate.STL differ diff --git a/resources/robots/h1_2/meshes/R_ring_proximal.STL b/resources/robots/h1_2/meshes/R_ring_proximal.STL new file mode 100644 index 0000000..5c3703e Binary files /dev/null and b/resources/robots/h1_2/meshes/R_ring_proximal.STL differ diff --git a/resources/robots/h1_2/meshes/R_thumb_distal.STL b/resources/robots/h1_2/meshes/R_thumb_distal.STL new file mode 100644 index 0000000..13f98f8 Binary files /dev/null and b/resources/robots/h1_2/meshes/R_thumb_distal.STL differ diff --git a/resources/robots/h1_2/meshes/R_thumb_intermediate.STL b/resources/robots/h1_2/meshes/R_thumb_intermediate.STL new file mode 100644 index 0000000..a42829f Binary files /dev/null and b/resources/robots/h1_2/meshes/R_thumb_intermediate.STL differ diff --git a/resources/robots/h1_2/meshes/R_thumb_proximal.STL b/resources/robots/h1_2/meshes/R_thumb_proximal.STL new file mode 100644 index 0000000..137dbde Binary files /dev/null and b/resources/robots/h1_2/meshes/R_thumb_proximal.STL differ diff --git a/resources/robots/h1_2/meshes/R_thumb_proximal_base.STL b/resources/robots/h1_2/meshes/R_thumb_proximal_base.STL new file mode 100644 index 0000000..30817a8 Binary files /dev/null and b/resources/robots/h1_2/meshes/R_thumb_proximal_base.STL differ diff --git a/resources/robots/h1_2/meshes/left_ankle_A_link.STL b/resources/robots/h1_2/meshes/left_ankle_A_link.STL new file mode 100644 index 0000000..541cb71 Binary files /dev/null and b/resources/robots/h1_2/meshes/left_ankle_A_link.STL differ diff --git a/resources/robots/h1_2/meshes/left_ankle_A_rod_link.STL b/resources/robots/h1_2/meshes/left_ankle_A_rod_link.STL new file mode 100644 index 0000000..281dc11 Binary files /dev/null and b/resources/robots/h1_2/meshes/left_ankle_A_rod_link.STL differ diff --git a/resources/robots/h1_2/meshes/left_ankle_B_link.STL b/resources/robots/h1_2/meshes/left_ankle_B_link.STL new file mode 100644 index 0000000..cd54990 Binary files /dev/null and b/resources/robots/h1_2/meshes/left_ankle_B_link.STL differ diff --git a/resources/robots/h1_2/meshes/left_ankle_B_rod_link.STL b/resources/robots/h1_2/meshes/left_ankle_B_rod_link.STL new file mode 100644 index 0000000..8d80e0a Binary files /dev/null and b/resources/robots/h1_2/meshes/left_ankle_B_rod_link.STL differ diff --git a/resources/robots/h1_2/meshes/left_ankle_pitch_link.STL b/resources/robots/h1_2/meshes/left_ankle_pitch_link.STL new file mode 100644 index 0000000..827fb2c Binary files /dev/null and b/resources/robots/h1_2/meshes/left_ankle_pitch_link.STL differ diff --git a/resources/robots/h1_2/meshes/left_ankle_roll_link.STL b/resources/robots/h1_2/meshes/left_ankle_roll_link.STL new file mode 100644 index 0000000..5fe6027 Binary files /dev/null and b/resources/robots/h1_2/meshes/left_ankle_roll_link.STL differ diff --git a/resources/robots/h1_2/meshes/left_elbow_pitch_link.STL b/resources/robots/h1_2/meshes/left_elbow_pitch_link.STL new file mode 100644 index 0000000..55ace3f Binary files /dev/null and b/resources/robots/h1_2/meshes/left_elbow_pitch_link.STL differ diff --git a/resources/robots/h1_2/meshes/left_elbow_roll_link.STL b/resources/robots/h1_2/meshes/left_elbow_roll_link.STL new file mode 100644 index 0000000..112437b Binary files /dev/null and b/resources/robots/h1_2/meshes/left_elbow_roll_link.STL differ diff --git a/resources/robots/h1_2/meshes/left_hand_link.STL b/resources/robots/h1_2/meshes/left_hand_link.STL new file mode 100644 index 0000000..6ce2dcf Binary files /dev/null and b/resources/robots/h1_2/meshes/left_hand_link.STL differ diff --git a/resources/robots/h1_2/meshes/left_hip_pitch_link.STL b/resources/robots/h1_2/meshes/left_hip_pitch_link.STL new file mode 100644 index 0000000..924c0e5 Binary files /dev/null and b/resources/robots/h1_2/meshes/left_hip_pitch_link.STL differ diff --git a/resources/robots/h1_2/meshes/left_hip_roll_link.STL b/resources/robots/h1_2/meshes/left_hip_roll_link.STL new file mode 100644 index 0000000..a9353e9 Binary files /dev/null and b/resources/robots/h1_2/meshes/left_hip_roll_link.STL differ diff --git a/resources/robots/h1_2/meshes/left_hip_yaw_link.STL b/resources/robots/h1_2/meshes/left_hip_yaw_link.STL new file mode 100644 index 0000000..2b97fd7 Binary files /dev/null and b/resources/robots/h1_2/meshes/left_hip_yaw_link.STL differ diff --git a/resources/robots/h1_2/meshes/left_knee_link.STL b/resources/robots/h1_2/meshes/left_knee_link.STL new file mode 100644 index 0000000..fe89e75 Binary files /dev/null and b/resources/robots/h1_2/meshes/left_knee_link.STL differ diff --git a/resources/robots/h1_2/meshes/left_shoulder_pitch_link.STL b/resources/robots/h1_2/meshes/left_shoulder_pitch_link.STL new file mode 100644 index 0000000..23289ce Binary files /dev/null and b/resources/robots/h1_2/meshes/left_shoulder_pitch_link.STL differ diff --git a/resources/robots/h1_2/meshes/left_shoulder_roll_link.STL b/resources/robots/h1_2/meshes/left_shoulder_roll_link.STL new file mode 100644 index 0000000..a28d854 Binary files /dev/null and b/resources/robots/h1_2/meshes/left_shoulder_roll_link.STL differ diff --git a/resources/robots/h1_2/meshes/left_shoulder_yaw_link.STL b/resources/robots/h1_2/meshes/left_shoulder_yaw_link.STL new file mode 100644 index 0000000..87cbbbc Binary files /dev/null and b/resources/robots/h1_2/meshes/left_shoulder_yaw_link.STL differ diff --git a/resources/robots/h1_2/meshes/left_wrist_pitch_link.STL b/resources/robots/h1_2/meshes/left_wrist_pitch_link.STL new file mode 100644 index 0000000..83d6d87 Binary files /dev/null and b/resources/robots/h1_2/meshes/left_wrist_pitch_link.STL differ diff --git a/resources/robots/h1_2/meshes/link11_L.STL b/resources/robots/h1_2/meshes/link11_L.STL new file mode 100644 index 0000000..9933a6c Binary files /dev/null and b/resources/robots/h1_2/meshes/link11_L.STL differ diff --git a/resources/robots/h1_2/meshes/link11_R.STL b/resources/robots/h1_2/meshes/link11_R.STL new file mode 100644 index 0000000..30817a8 Binary files /dev/null and b/resources/robots/h1_2/meshes/link11_R.STL differ diff --git a/resources/robots/h1_2/meshes/link12_L.STL b/resources/robots/h1_2/meshes/link12_L.STL new file mode 100644 index 0000000..08071d3 Binary files /dev/null and b/resources/robots/h1_2/meshes/link12_L.STL differ diff --git a/resources/robots/h1_2/meshes/link12_R.STL b/resources/robots/h1_2/meshes/link12_R.STL new file mode 100644 index 0000000..137dbde Binary files /dev/null and b/resources/robots/h1_2/meshes/link12_R.STL differ diff --git a/resources/robots/h1_2/meshes/link13_L.STL b/resources/robots/h1_2/meshes/link13_L.STL new file mode 100644 index 0000000..03a3425 Binary files /dev/null and b/resources/robots/h1_2/meshes/link13_L.STL differ diff --git a/resources/robots/h1_2/meshes/link13_R.STL b/resources/robots/h1_2/meshes/link13_R.STL new file mode 100644 index 0000000..a42829f Binary files /dev/null and b/resources/robots/h1_2/meshes/link13_R.STL differ diff --git a/resources/robots/h1_2/meshes/link14_L.STL b/resources/robots/h1_2/meshes/link14_L.STL new file mode 100644 index 0000000..291a14f Binary files /dev/null and b/resources/robots/h1_2/meshes/link14_L.STL differ diff --git a/resources/robots/h1_2/meshes/link14_R.STL b/resources/robots/h1_2/meshes/link14_R.STL new file mode 100644 index 0000000..13f98f8 Binary files /dev/null and b/resources/robots/h1_2/meshes/link14_R.STL differ diff --git a/resources/robots/h1_2/meshes/link15_L.STL b/resources/robots/h1_2/meshes/link15_L.STL new file mode 100644 index 0000000..f899431 Binary files /dev/null and b/resources/robots/h1_2/meshes/link15_L.STL differ diff --git a/resources/robots/h1_2/meshes/link15_R.STL b/resources/robots/h1_2/meshes/link15_R.STL new file mode 100644 index 0000000..cbfc711 Binary files /dev/null and b/resources/robots/h1_2/meshes/link15_R.STL differ diff --git a/resources/robots/h1_2/meshes/link16_L.STL b/resources/robots/h1_2/meshes/link16_L.STL new file mode 100644 index 0000000..24a5a83 Binary files /dev/null and b/resources/robots/h1_2/meshes/link16_L.STL differ diff --git a/resources/robots/h1_2/meshes/link16_R.STL b/resources/robots/h1_2/meshes/link16_R.STL new file mode 100644 index 0000000..0cf0f8d Binary files /dev/null and b/resources/robots/h1_2/meshes/link16_R.STL differ diff --git a/resources/robots/h1_2/meshes/link17_L.STL b/resources/robots/h1_2/meshes/link17_L.STL new file mode 100644 index 0000000..8f0aca6 Binary files /dev/null and b/resources/robots/h1_2/meshes/link17_L.STL differ diff --git a/resources/robots/h1_2/meshes/link17_R.STL b/resources/robots/h1_2/meshes/link17_R.STL new file mode 100644 index 0000000..3f630a3 Binary files /dev/null and b/resources/robots/h1_2/meshes/link17_R.STL differ diff --git a/resources/robots/h1_2/meshes/link18_L.STL b/resources/robots/h1_2/meshes/link18_L.STL new file mode 100644 index 0000000..c498cd7 Binary files /dev/null and b/resources/robots/h1_2/meshes/link18_L.STL differ diff --git a/resources/robots/h1_2/meshes/link18_R.STL b/resources/robots/h1_2/meshes/link18_R.STL new file mode 100644 index 0000000..ebc2616 Binary files /dev/null and b/resources/robots/h1_2/meshes/link18_R.STL differ diff --git a/resources/robots/h1_2/meshes/link19_L.STL b/resources/robots/h1_2/meshes/link19_L.STL new file mode 100644 index 0000000..c3cabb9 Binary files /dev/null and b/resources/robots/h1_2/meshes/link19_L.STL differ diff --git a/resources/robots/h1_2/meshes/link19_R.STL b/resources/robots/h1_2/meshes/link19_R.STL new file mode 100644 index 0000000..5c3703e Binary files /dev/null and b/resources/robots/h1_2/meshes/link19_R.STL differ diff --git a/resources/robots/h1_2/meshes/link20_L.STL b/resources/robots/h1_2/meshes/link20_L.STL new file mode 100644 index 0000000..23c4efa Binary files /dev/null and b/resources/robots/h1_2/meshes/link20_L.STL differ diff --git a/resources/robots/h1_2/meshes/link20_R.STL b/resources/robots/h1_2/meshes/link20_R.STL new file mode 100644 index 0000000..5fed852 Binary files /dev/null and b/resources/robots/h1_2/meshes/link20_R.STL differ diff --git a/resources/robots/h1_2/meshes/link21_L.STL b/resources/robots/h1_2/meshes/link21_L.STL new file mode 100644 index 0000000..ccb63bf Binary files /dev/null and b/resources/robots/h1_2/meshes/link21_L.STL differ diff --git a/resources/robots/h1_2/meshes/link21_R.STL b/resources/robots/h1_2/meshes/link21_R.STL new file mode 100644 index 0000000..d4710f1 Binary files /dev/null and b/resources/robots/h1_2/meshes/link21_R.STL differ diff --git a/resources/robots/h1_2/meshes/link22_L.STL b/resources/robots/h1_2/meshes/link22_L.STL new file mode 100644 index 0000000..6b9cdad Binary files /dev/null and b/resources/robots/h1_2/meshes/link22_L.STL differ diff --git a/resources/robots/h1_2/meshes/link22_R.STL b/resources/robots/h1_2/meshes/link22_R.STL new file mode 100644 index 0000000..c2cf58b Binary files /dev/null and b/resources/robots/h1_2/meshes/link22_R.STL differ diff --git a/resources/robots/h1_2/meshes/logo_link.STL b/resources/robots/h1_2/meshes/logo_link.STL new file mode 100644 index 0000000..c396d51 Binary files /dev/null and b/resources/robots/h1_2/meshes/logo_link.STL differ diff --git a/resources/robots/h1_2/meshes/pelvis.STL b/resources/robots/h1_2/meshes/pelvis.STL new file mode 100644 index 0000000..05e5512 Binary files /dev/null and b/resources/robots/h1_2/meshes/pelvis.STL differ diff --git a/resources/robots/h1_2/meshes/right_ankle_A_link.STL b/resources/robots/h1_2/meshes/right_ankle_A_link.STL new file mode 100644 index 0000000..2ed1eaf Binary files /dev/null and b/resources/robots/h1_2/meshes/right_ankle_A_link.STL differ diff --git a/resources/robots/h1_2/meshes/right_ankle_A_rod_link.STL b/resources/robots/h1_2/meshes/right_ankle_A_rod_link.STL new file mode 100644 index 0000000..1fc9acc Binary files /dev/null and b/resources/robots/h1_2/meshes/right_ankle_A_rod_link.STL differ diff --git a/resources/robots/h1_2/meshes/right_ankle_B_link.STL b/resources/robots/h1_2/meshes/right_ankle_B_link.STL new file mode 100644 index 0000000..6563110 Binary files /dev/null and b/resources/robots/h1_2/meshes/right_ankle_B_link.STL differ diff --git a/resources/robots/h1_2/meshes/right_ankle_B_rod_link.STL b/resources/robots/h1_2/meshes/right_ankle_B_rod_link.STL new file mode 100644 index 0000000..bdaa919 Binary files /dev/null and b/resources/robots/h1_2/meshes/right_ankle_B_rod_link.STL differ diff --git a/resources/robots/h1_2/meshes/right_ankle_link.STL b/resources/robots/h1_2/meshes/right_ankle_link.STL new file mode 100644 index 0000000..7045cea Binary files /dev/null and b/resources/robots/h1_2/meshes/right_ankle_link.STL differ diff --git a/resources/robots/h1_2/meshes/right_ankle_pitch_link.STL b/resources/robots/h1_2/meshes/right_ankle_pitch_link.STL new file mode 100644 index 0000000..827fb2c Binary files /dev/null and b/resources/robots/h1_2/meshes/right_ankle_pitch_link.STL differ diff --git a/resources/robots/h1_2/meshes/right_ankle_roll_link.STL b/resources/robots/h1_2/meshes/right_ankle_roll_link.STL new file mode 100644 index 0000000..5fe6027 Binary files /dev/null and b/resources/robots/h1_2/meshes/right_ankle_roll_link.STL differ diff --git a/resources/robots/h1_2/meshes/right_elbow_pitch_link.STL b/resources/robots/h1_2/meshes/right_elbow_pitch_link.STL new file mode 100644 index 0000000..70bf14d Binary files /dev/null and b/resources/robots/h1_2/meshes/right_elbow_pitch_link.STL differ diff --git a/resources/robots/h1_2/meshes/right_elbow_roll_link.STL b/resources/robots/h1_2/meshes/right_elbow_roll_link.STL new file mode 100644 index 0000000..5f7f228 Binary files /dev/null and b/resources/robots/h1_2/meshes/right_elbow_roll_link.STL differ diff --git a/resources/robots/h1_2/meshes/right_hand_link.STL b/resources/robots/h1_2/meshes/right_hand_link.STL new file mode 100644 index 0000000..6ce2dcf Binary files /dev/null and b/resources/robots/h1_2/meshes/right_hand_link.STL differ diff --git a/resources/robots/h1_2/meshes/right_hip_pitch_link.STL b/resources/robots/h1_2/meshes/right_hip_pitch_link.STL new file mode 100644 index 0000000..aa0b4c2 Binary files /dev/null and b/resources/robots/h1_2/meshes/right_hip_pitch_link.STL differ diff --git a/resources/robots/h1_2/meshes/right_hip_roll_link.STL b/resources/robots/h1_2/meshes/right_hip_roll_link.STL new file mode 100644 index 0000000..6032b95 Binary files /dev/null and b/resources/robots/h1_2/meshes/right_hip_roll_link.STL differ diff --git a/resources/robots/h1_2/meshes/right_hip_yaw_link.STL b/resources/robots/h1_2/meshes/right_hip_yaw_link.STL new file mode 100644 index 0000000..5039005 Binary files /dev/null and b/resources/robots/h1_2/meshes/right_hip_yaw_link.STL differ diff --git a/resources/robots/h1_2/meshes/right_knee_link.STL b/resources/robots/h1_2/meshes/right_knee_link.STL new file mode 100644 index 0000000..fe89e75 Binary files /dev/null and b/resources/robots/h1_2/meshes/right_knee_link.STL differ diff --git a/resources/robots/h1_2/meshes/right_pitch_link.STL b/resources/robots/h1_2/meshes/right_pitch_link.STL new file mode 100644 index 0000000..f5276e9 Binary files /dev/null and b/resources/robots/h1_2/meshes/right_pitch_link.STL differ diff --git a/resources/robots/h1_2/meshes/right_shoulder_pitch_link.STL b/resources/robots/h1_2/meshes/right_shoulder_pitch_link.STL new file mode 100644 index 0000000..87974a3 Binary files /dev/null and b/resources/robots/h1_2/meshes/right_shoulder_pitch_link.STL differ diff --git a/resources/robots/h1_2/meshes/right_shoulder_roll_link.STL b/resources/robots/h1_2/meshes/right_shoulder_roll_link.STL new file mode 100644 index 0000000..cf9bfb5 Binary files /dev/null and b/resources/robots/h1_2/meshes/right_shoulder_roll_link.STL differ diff --git a/resources/robots/h1_2/meshes/right_shoulder_yaw_link.STL b/resources/robots/h1_2/meshes/right_shoulder_yaw_link.STL new file mode 100644 index 0000000..701f379 Binary files /dev/null and b/resources/robots/h1_2/meshes/right_shoulder_yaw_link.STL differ diff --git a/resources/robots/h1_2/meshes/right_wrist_pitch_link.STL b/resources/robots/h1_2/meshes/right_wrist_pitch_link.STL new file mode 100644 index 0000000..f21d1f0 Binary files /dev/null and b/resources/robots/h1_2/meshes/right_wrist_pitch_link.STL differ diff --git a/resources/robots/h1_2/meshes/torso_link.STL b/resources/robots/h1_2/meshes/torso_link.STL new file mode 100644 index 0000000..37e1f60 Binary files /dev/null and b/resources/robots/h1_2/meshes/torso_link.STL differ diff --git a/resources/robots/h1_2/meshes/wrist_yaw_link.STL b/resources/robots/h1_2/meshes/wrist_yaw_link.STL new file mode 100644 index 0000000..90643cf Binary files /dev/null and b/resources/robots/h1_2/meshes/wrist_yaw_link.STL differ diff --git a/resources/robots/h1_2/scene.xml b/resources/robots/h1_2/scene.xml new file mode 100644 index 0000000..fad346e --- /dev/null +++ b/resources/robots/h1_2/scene.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file