Unitree H1-2

Built by:   Unitree
Licence:    BSD-3-Clause
Source:     https://github.com/unitreerobotics/unitree_ros/tree/267182b8521c8d6a631bab1fe63836873237a525/robots/h1_2_description
Commit:     267182b8521c8d6a631bab1fe63836873237a525
Collection: unitreerobotics/unitree_ros
Packaged:   2026-08-28 by urdfbase.com/models/unitree-h1-2/

This folder holds the model written as MJCF, with mesh paths rewritten to
meshes/ so they resolve wherever the folder is opened. The original files, with
the paths their authors wrote, are at the source above.

What did not survive the conversion:
  - joint "left_hip_yaw_joint" has a velocity limit of 23, which MJCF does not store on the joint — enforce it in the controller
  - joint "left_hip_pitch_joint" has a velocity limit of 23, which MJCF does not store on the joint — enforce it in the controller
  - joint "left_hip_roll_joint" has a velocity limit of 23, which MJCF does not store on the joint — enforce it in the controller
  - joint "left_knee_joint" has a velocity limit of 14, which MJCF does not store on the joint — enforce it in the controller
  - joint "left_ankle_pitch_joint" has a velocity limit of 9, which MJCF does not store on the joint — enforce it in the controller
  - joint "left_ankle_roll_joint" has a velocity limit of 9, which MJCF does not store on the joint — enforce it in the controller
  - joint "right_hip_yaw_joint" has a velocity limit of 23, which MJCF does not store on the joint — enforce it in the controller
  - joint "right_hip_pitch_joint" has a velocity limit of 23, which MJCF does not store on the joint — enforce it in the controller
  - joint "right_hip_roll_joint" has a velocity limit of 23, which MJCF does not store on the joint — enforce it in the controller
  - joint "right_knee_joint" has a velocity limit of 14, which MJCF does not store on the joint — enforce it in the controller
  - joint "right_ankle_pitch_joint" has a velocity limit of 9, which MJCF does not store on the joint — enforce it in the controller
  - joint "right_ankle_roll_joint" has a velocity limit of 9, which MJCF does not store on the joint — enforce it in the controller
  - joint "torso_joint" has a velocity limit of 23, which MJCF does not store on the joint — enforce it in the controller
  - joint "left_shoulder_pitch_joint" has a velocity limit of 9, which MJCF does not store on the joint — enforce it in the controller
  - joint "left_shoulder_roll_joint" has a velocity limit of 9, which MJCF does not store on the joint — enforce it in the controller
  - joint "left_shoulder_yaw_joint" has a velocity limit of 20, which MJCF does not store on the joint — enforce it in the controller
  - joint "left_elbow_joint" has a velocity limit of 20, which MJCF does not store on the joint — enforce it in the controller
  - joint "left_wrist_roll_joint" has a velocity limit of 31.4, which MJCF does not store on the joint — enforce it in the controller
  - joint "left_wrist_pitch_joint" has a velocity limit of 31.4, which MJCF does not store on the joint — enforce it in the controller
  - joint "left_wrist_yaw_joint" has a velocity limit of 31.4, which MJCF does not store on the joint — enforce it in the controller
  - joint "L_thumb_proximal_yaw_joint" has a velocity limit of 0.5, which MJCF does not store on the joint — enforce it in the controller
  - joint "L_thumb_proximal_pitch_joint" has a velocity limit of 0.5, which MJCF does not store on the joint — enforce it in the controller
  - joint "L_thumb_intermediate_joint" mimics "L_thumb_proximal_pitch_joint"; MJCF expresses that as an equality constraint, which has to be added by hand
  - joint "L_thumb_intermediate_joint" has a velocity limit of 0.5, which MJCF does not store on the joint — enforce it in the controller
  - joint "L_thumb_distal_joint" mimics "L_thumb_proximal_pitch_joint"; MJCF expresses that as an equality constraint, which has to be added by hand
  - joint "L_thumb_distal_joint" has a velocity limit of 0.5, which MJCF does not store on the joint — enforce it in the controller
  - joint "L_index_proximal_joint" has a velocity limit of 0.5, which MJCF does not store on the joint — enforce it in the controller
  - joint "L_index_intermediate_joint" mimics "L_index_proximal_joint"; MJCF expresses that as an equality constraint, which has to be added by hand
  - joint "L_index_intermediate_joint" has a velocity limit of 0.5, which MJCF does not store on the joint — enforce it in the controller
  - joint "L_middle_proximal_joint" has a velocity limit of 0.5, which MJCF does not store on the joint — enforce it in the controller
  - joint "L_middle_intermediate_joint" mimics "L_middle_proximal_joint"; MJCF expresses that as an equality constraint, which has to be added by hand
  - joint "L_middle_intermediate_joint" has a velocity limit of 0.5, which MJCF does not store on the joint — enforce it in the controller
  - joint "L_ring_proximal_joint" has a velocity limit of 0.5, which MJCF does not store on the joint — enforce it in the controller
  - joint "L_ring_intermediate_joint" mimics "L_ring_proximal_joint"; MJCF expresses that as an equality constraint, which has to be added by hand
  - joint "L_ring_intermediate_joint" has a velocity limit of 0.5, which MJCF does not store on the joint — enforce it in the controller
  - joint "L_pinky_proximal_joint" has a velocity limit of 0.5, which MJCF does not store on the joint — enforce it in the controller
  - joint "L_pinky_intermediate_joint" mimics "L_pinky_proximal_joint"; MJCF expresses that as an equality constraint, which has to be added by hand
  - joint "L_pinky_intermediate_joint" has a velocity limit of 0.5, which MJCF does not store on the joint — enforce it in the controller
  - joint "right_shoulder_pitch_joint" has a velocity limit of 9, which MJCF does not store on the joint — enforce it in the controller
  - joint "right_shoulder_roll_joint" has a velocity limit of 9, which MJCF does not store on the joint — enforce it in the controller
  - joint "right_shoulder_yaw_joint" has a velocity limit of 20, which MJCF does not store on the joint — enforce it in the controller
  - joint "right_elbow_joint" has a velocity limit of 20, which MJCF does not store on the joint — enforce it in the controller
  - joint "right_wrist_roll_joint" has a velocity limit of 31.4, which MJCF does not store on the joint — enforce it in the controller
  - joint "right_wrist_pitch_joint" has a velocity limit of 31.4, which MJCF does not store on the joint — enforce it in the controller
  - joint "right_wrist_yaw_joint" has a velocity limit of 31.4, which MJCF does not store on the joint — enforce it in the controller
  - joint "R_thumb_proximal_yaw_joint" has a velocity limit of 0.5, which MJCF does not store on the joint — enforce it in the controller
  - joint "R_thumb_proximal_pitch_joint" has a velocity limit of 0.5, which MJCF does not store on the joint — enforce it in the controller
  - joint "R_thumb_intermediate_joint" mimics "R_thumb_proximal_pitch_joint"; MJCF expresses that as an equality constraint, which has to be added by hand
  - joint "R_thumb_intermediate_joint" has a velocity limit of 0.5, which MJCF does not store on the joint — enforce it in the controller
  - joint "R_thumb_distal_joint" mimics "R_thumb_proximal_pitch_joint"; MJCF expresses that as an equality constraint, which has to be added by hand
  - joint "R_thumb_distal_joint" has a velocity limit of 0.5, which MJCF does not store on the joint — enforce it in the controller
  - joint "R_index_proximal_joint" has a velocity limit of 0.5, which MJCF does not store on the joint — enforce it in the controller
  - joint "R_index_intermediate_joint" mimics "R_index_proximal_joint"; MJCF expresses that as an equality constraint, which has to be added by hand
  - joint "R_index_intermediate_joint" has a velocity limit of 0.5, which MJCF does not store on the joint — enforce it in the controller
  - joint "R_middle_proximal_joint" has a velocity limit of 0.5, which MJCF does not store on the joint — enforce it in the controller
  - joint "R_middle_intermediate_joint" mimics "R_middle_proximal_joint"; MJCF expresses that as an equality constraint, which has to be added by hand
  - joint "R_middle_intermediate_joint" has a velocity limit of 0.5, which MJCF does not store on the joint — enforce it in the controller
  - joint "R_ring_proximal_joint" has a velocity limit of 0.5, which MJCF does not store on the joint — enforce it in the controller
  - joint "R_ring_intermediate_joint" mimics "R_ring_proximal_joint"; MJCF expresses that as an equality constraint, which has to be added by hand
  - joint "R_ring_intermediate_joint" has a velocity limit of 0.5, which MJCF does not store on the joint — enforce it in the controller
  - joint "R_pinky_proximal_joint" has a velocity limit of 0.5, which MJCF does not store on the joint — enforce it in the controller
  - joint "R_pinky_intermediate_joint" mimics "R_pinky_proximal_joint"; MJCF expresses that as an equality constraint, which has to be added by hand
  - joint "R_pinky_intermediate_joint" has a velocity limit of 0.5, which MJCF does not store on the joint — enforce it in the controller

The robot belongs to the people who built it. Credit the source, not this site.
