diff --git a/robots/h1_description/CMakeLists.txt b/robots/h1_description/CMakeLists.txt
new file mode 100644
index 0000000..30a4886
--- /dev/null
+++ b/robots/h1_description/CMakeLists.txt
@@ -0,0 +1,13 @@
+cmake_minimum_required(VERSION 2.8.3)
+project(h1_description)
+
+find_package(catkin REQUIRED)
+
+catkin_package()
+
+find_package(roslaunch)
+
+foreach(dir launch meshes urdf)
+ install(DIRECTORY ${dir}/
+ DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/${dir})
+endforeach(dir)
diff --git a/robots/h1_description/README.md b/robots/h1_description/README.md
new file mode 100644
index 0000000..ba7183b
--- /dev/null
+++ b/robots/h1_description/README.md
@@ -0,0 +1,56 @@
+# Unitree H1 Description (URDF & MJCF)
+
+## Overview
+
+This package includes a streamlined robot description (URDF & MJCF) for the [H1 Humanoid
+Robot](https://www.unitree.com/h1), developed by [Unitree Robotics](https://www.unitree.com/).
+
+
+
+
+
+H1 Humanoid have 19 joints:
+
+```text
+root [⚓] => /pelvis/
+ left_hip_yaw_joint [⚙+Z] => /left_hip_yaw_link/
+ left_hip_roll_joint [⚙+X] => /left_hip_roll_link/
+ left_hip_pitch_joint [⚙+Y] => /left_hip_pitch_link/
+ left_knee_joint [⚙+Y] => /left_knee_link/
+ left_ankle_joint [⚙+Y] => /left_ankle_link/
+ right_hip_yaw_joint [⚙+Z] => /right_hip_yaw_link/
+ right_hip_roll_joint [⚙+X] => /right_hip_roll_link/
+ right_hip_pitch_joint [⚙+Y] => /right_hip_pitch_link/
+ right_knee_joint [⚙+Y] => /right_knee_link/
+ right_ankle_joint [⚙+Y] => /right_ankle_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_joint [⚙+Y] => /left_elbow_link/
+ 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_joint [⚙+Y] => /right_elbow_link/
+```
+
+## Usages
+
+### [MuJoCo](https://github.com/google-deepmind/mujoco)(recommend)
+
+```bash
+pip install mujoco
+python -m mujoco.viewer --mjcf=mjcf/scene.xml
+```
+
+### RViz
+
+```bash
+roslaunch h1_description display.launch
+```
+
+### Gazebo
+
+```bash
+roslaunch h1_description gazebo.launch
+```
diff --git a/robots/h1_description/doc/H1.png b/robots/h1_description/doc/H1.png
new file mode 100644
index 0000000..9819dff
Binary files /dev/null and b/robots/h1_description/doc/H1.png differ
diff --git a/robots/h1_description/launch/check_joint.rviz b/robots/h1_description/launch/check_joint.rviz
new file mode 100644
index 0000000..1eaf8e9
--- /dev/null
+++ b/robots/h1_description/launch/check_joint.rviz
@@ -0,0 +1,239 @@
+Panels:
+ - Class: rviz/Displays
+ Help Height: 78
+ Name: Displays
+ Property Tree Widget:
+ Expanded:
+ - /Global Options1
+ - /Status1
+ Splitter Ratio: 0.5
+ Tree Height: 719
+ - Class: rviz/Selection
+ Name: Selection
+ - Class: rviz/Tool Properties
+ Expanded:
+ - /2D Pose Estimate1
+ - /2D Nav Goal1
+ - /Publish Point1
+ Name: Tool Properties
+ Splitter Ratio: 0.5886790156364441
+ - Class: rviz/Views
+ Expanded:
+ - /Current View1
+ Name: Views
+ Splitter Ratio: 0.5
+ - Class: rviz/Time
+ Name: Time
+ SyncMode: 0
+ SyncSource: ""
+Preferences:
+ PromptSaveOnExit: true
+Toolbars:
+ toolButtonStyle: 2
+Visualization Manager:
+ Class: ""
+ Displays:
+ - Alpha: 0.5
+ Cell Size: 1
+ Class: rviz/Grid
+ Color: 160; 160; 164
+ Enabled: true
+ Line Style:
+ Line Width: 0.029999999329447746
+ Value: Lines
+ Name: Grid
+ Normal Cell Count: 0
+ Offset:
+ X: 0
+ Y: 0
+ Z: 0
+ Plane: XY
+ Plane Cell Count: 10
+ Reference Frame:
+ Value: true
+ - Alpha: 1
+ Class: rviz/RobotModel
+ Collision Enabled: false
+ Enabled: true
+ Links:
+ All Links Enabled: true
+ pelvis:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ Expand Joint Details: false
+ Expand Link Details: false
+ Expand Tree: false
+ hip_rotation_link_left:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ hip_abduction_link_left:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ hip_flexion_link_left:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ knee_link_left:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ ankle_link_left:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ Link Tree Style: Links in Alphabetic Order
+ hip_rotation_link_right:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ hip_abduction_link_right:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ hip_flexion_link_right:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ knee_link_right:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ ankle_link_right:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ Name: RobotModel
+ Robot Description: robot_description
+ TF Prefix: ""
+ Update Interval: 0
+ Value: true
+ Visual Enabled: true
+ - Class: rviz/TF
+ Enabled: true
+ Frame Timeout: 15
+ Frames:
+ All Enabled: true
+ pelvis:
+ Value: true
+ hip_rotation_link_left:
+ Value: true
+ hip_abduction_link_left:
+ Value: true
+ hip_flexion_link_left:
+ Value: true
+ knee_link_left:
+ Value: true
+ ankle_link_left:
+ Value: true
+ hip_rotation_link_right:
+ Value: true
+ hip_abduction_link_right:
+ Value: true
+ hip_flexion_link_right:
+ Value: true
+ knee_link_right:
+ Value: true
+ ankle_link_right:
+ Value: true
+ Marker Alpha: 1
+ Marker Scale: 1
+ Name: TF
+ Show Arrows: true
+ Show Axes: true
+ Show Names: true
+ Tree:
+ pelvis:
+ hip_rotation_link_left:
+ hip_abduction_link_left:
+ hip_flexion_link_left:
+ knee_link_left:
+ ankle_link_left:
+ {}
+ hip_rotation_link_right:
+ hip_abduction_link_right:
+ hip_flexion_link_right:
+ knee_link_right:
+ ankle_link_right:
+ {}
+ Update Interval: 0
+ Value: true
+ Enabled: true
+ Global Options:
+ Background Color: 48; 48; 48
+ Default Light: true
+ Fixed Frame: pelvis
+ Frame Rate: 30
+ Name: root
+ Tools:
+ - Class: rviz/Interact
+ Hide Inactive Objects: true
+ - Class: rviz/MoveCamera
+ - Class: rviz/Select
+ - Class: rviz/FocusCamera
+ - Class: rviz/Measure
+ - Class: rviz/SetInitialPose
+ Theta std deviation: 0.2617993950843811
+ Topic: /initialpose
+ X std deviation: 0.5
+ Y std deviation: 0.5
+ - Class: rviz/SetGoal
+ Topic: /move_base_simple/goal
+ - Class: rviz/PublishPoint
+ Single click: true
+ Topic: /clicked_point
+ Value: true
+ Views:
+ Current:
+ Class: rviz/Orbit
+ Distance: 1.6701574325561523
+ Enable Stereo Rendering:
+ Stereo Eye Separation: 0.05999999865889549
+ Stereo Focal Distance: 1
+ Swap Stereo Eyes: false
+ Value: false
+ Field of View: 0.7853981852531433
+ Focal Point:
+ X: 0.11145864427089691
+ Y: 0.10033124685287476
+ Z: -0.35909000039100647
+ Focal Shape Fixed Size: true
+ Focal Shape Size: 0.05000000074505806
+ Invert Z Axis: false
+ Name: Current View
+ Near Clip Distance: 0.009999999776482582
+ Pitch: 0.5303982496261597
+ Target Frame:
+ Yaw: 0.8653979301452637
+ Saved: ~
+Window Geometry:
+ Displays:
+ collapsed: false
+ Height: 1016
+ Hide Left Dock: false
+ Hide Right Dock: false
+ QMainWindow State: 000000ff00000000fd0000000400000000000001560000035afc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003d0000035a000000c900fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000010f0000035afc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073010000003d0000035a000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e100000197000000030000074c0000003efc0100000002fb0000000800540069006d006501000000000000074c000003bc00fffffffb0000000800540069006d00650100000000000004500000000000000000000004db0000035a00000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
+ Selection:
+ collapsed: false
+ Time:
+ collapsed: false
+ Tool Properties:
+ collapsed: false
+ Views:
+ collapsed: false
+ Width: 1868
+ X: 52
+ Y: 27
diff --git a/robots/h1_description/launch/display.launch b/robots/h1_description/launch/display.launch
new file mode 100644
index 0000000..fee381b
--- /dev/null
+++ b/robots/h1_description/launch/display.launch
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/robots/h1_description/launch/gazebo.launch b/robots/h1_description/launch/gazebo.launch
new file mode 100644
index 0000000..175edc9
--- /dev/null
+++ b/robots/h1_description/launch/gazebo.launch
@@ -0,0 +1,12 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/robots/h1_description/meshes/left_ankle_link.STL b/robots/h1_description/meshes/left_ankle_link.STL
new file mode 100644
index 0000000..e6714d2
Binary files /dev/null and b/robots/h1_description/meshes/left_ankle_link.STL differ
diff --git a/robots/h1_description/meshes/left_elbow_link.STL b/robots/h1_description/meshes/left_elbow_link.STL
new file mode 100644
index 0000000..5f798ca
Binary files /dev/null and b/robots/h1_description/meshes/left_elbow_link.STL differ
diff --git a/robots/h1_description/meshes/left_hip_pitch_link.STL b/robots/h1_description/meshes/left_hip_pitch_link.STL
new file mode 100644
index 0000000..e5898ab
Binary files /dev/null and b/robots/h1_description/meshes/left_hip_pitch_link.STL differ
diff --git a/robots/h1_description/meshes/left_hip_roll_link.STL b/robots/h1_description/meshes/left_hip_roll_link.STL
new file mode 100644
index 0000000..5ade02b
Binary files /dev/null and b/robots/h1_description/meshes/left_hip_roll_link.STL differ
diff --git a/robots/h1_description/meshes/left_hip_yaw_link.STL b/robots/h1_description/meshes/left_hip_yaw_link.STL
new file mode 100644
index 0000000..3bcc4b8
Binary files /dev/null and b/robots/h1_description/meshes/left_hip_yaw_link.STL differ
diff --git a/robots/h1_description/meshes/left_knee_link.STL b/robots/h1_description/meshes/left_knee_link.STL
new file mode 100644
index 0000000..18174ee
Binary files /dev/null and b/robots/h1_description/meshes/left_knee_link.STL differ
diff --git a/robots/h1_description/meshes/left_shoulder_pitch_link.STL b/robots/h1_description/meshes/left_shoulder_pitch_link.STL
new file mode 100644
index 0000000..be81370
Binary files /dev/null and b/robots/h1_description/meshes/left_shoulder_pitch_link.STL differ
diff --git a/robots/h1_description/meshes/left_shoulder_roll_link.STL b/robots/h1_description/meshes/left_shoulder_roll_link.STL
new file mode 100644
index 0000000..a59bb64
Binary files /dev/null and b/robots/h1_description/meshes/left_shoulder_roll_link.STL differ
diff --git a/robots/h1_description/meshes/left_shoulder_yaw_link.STL b/robots/h1_description/meshes/left_shoulder_yaw_link.STL
new file mode 100644
index 0000000..01d3c75
Binary files /dev/null and b/robots/h1_description/meshes/left_shoulder_yaw_link.STL differ
diff --git a/robots/h1_description/meshes/logo_link.STL b/robots/h1_description/meshes/logo_link.STL
new file mode 100644
index 0000000..c396d51
Binary files /dev/null and b/robots/h1_description/meshes/logo_link.STL differ
diff --git a/robots/h1_description/meshes/pelvis.STL b/robots/h1_description/meshes/pelvis.STL
new file mode 100644
index 0000000..05e5512
Binary files /dev/null and b/robots/h1_description/meshes/pelvis.STL differ
diff --git a/robots/h1_description/meshes/right_ankle_link.STL b/robots/h1_description/meshes/right_ankle_link.STL
new file mode 100644
index 0000000..3e52a9c
Binary files /dev/null and b/robots/h1_description/meshes/right_ankle_link.STL differ
diff --git a/robots/h1_description/meshes/right_elbow_link.STL b/robots/h1_description/meshes/right_elbow_link.STL
new file mode 100644
index 0000000..f4c03e3
Binary files /dev/null and b/robots/h1_description/meshes/right_elbow_link.STL differ
diff --git a/robots/h1_description/meshes/right_hip_pitch_link.STL b/robots/h1_description/meshes/right_hip_pitch_link.STL
new file mode 100644
index 0000000..1d4e515
Binary files /dev/null and b/robots/h1_description/meshes/right_hip_pitch_link.STL differ
diff --git a/robots/h1_description/meshes/right_hip_roll_link.STL b/robots/h1_description/meshes/right_hip_roll_link.STL
new file mode 100644
index 0000000..d2a0af9
Binary files /dev/null and b/robots/h1_description/meshes/right_hip_roll_link.STL differ
diff --git a/robots/h1_description/meshes/right_hip_yaw_link.STL b/robots/h1_description/meshes/right_hip_yaw_link.STL
new file mode 100644
index 0000000..6c8ffd5
Binary files /dev/null and b/robots/h1_description/meshes/right_hip_yaw_link.STL differ
diff --git a/robots/h1_description/meshes/right_knee_link.STL b/robots/h1_description/meshes/right_knee_link.STL
new file mode 100644
index 0000000..1ed90cc
Binary files /dev/null and b/robots/h1_description/meshes/right_knee_link.STL differ
diff --git a/robots/h1_description/meshes/right_shoulder_pitch_link.STL b/robots/h1_description/meshes/right_shoulder_pitch_link.STL
new file mode 100644
index 0000000..f77ab2b
Binary files /dev/null and b/robots/h1_description/meshes/right_shoulder_pitch_link.STL differ
diff --git a/robots/h1_description/meshes/right_shoulder_roll_link.STL b/robots/h1_description/meshes/right_shoulder_roll_link.STL
new file mode 100644
index 0000000..a98398f
Binary files /dev/null and b/robots/h1_description/meshes/right_shoulder_roll_link.STL differ
diff --git a/robots/h1_description/meshes/right_shoulder_yaw_link.STL b/robots/h1_description/meshes/right_shoulder_yaw_link.STL
new file mode 100644
index 0000000..7943bab
Binary files /dev/null and b/robots/h1_description/meshes/right_shoulder_yaw_link.STL differ
diff --git a/robots/h1_description/meshes/torso_link.STL b/robots/h1_description/meshes/torso_link.STL
new file mode 100644
index 0000000..335b2f1
Binary files /dev/null and b/robots/h1_description/meshes/torso_link.STL differ
diff --git a/robots/h1_description/mjcf/h1.xml b/robots/h1_description/mjcf/h1.xml
new file mode 100644
index 0000000..903aaf7
--- /dev/null
+++ b/robots/h1_description/mjcf/h1.xml
@@ -0,0 +1,228 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/robots/h1_description/mjcf/scene.xml b/robots/h1_description/mjcf/scene.xml
new file mode 100644
index 0000000..c419d28
--- /dev/null
+++ b/robots/h1_description/mjcf/scene.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/robots/h1_description/package.xml b/robots/h1_description/package.xml
new file mode 100644
index 0000000..b1e40a8
--- /dev/null
+++ b/robots/h1_description/package.xml
@@ -0,0 +1,17 @@
+
+
+ h1_description
+ 1.0.0
+ The Unitree H1 Description Package
+
+
+ TODO
+
+ catkin
+ roslaunch
+ robot_state_publisher
+ rviz
+ joint_state_publisher_gui
+ gazebo
+
+
\ No newline at end of file
diff --git a/robots/h1_description/urdf/h1.urdf b/robots/h1_description/urdf/h1.urdf
new file mode 100644
index 0000000..b44cf90
--- /dev/null
+++ b/robots/h1_description/urdf/h1.urdf
@@ -0,0 +1,1205 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file