diff --git a/python/example_robot_data/robots_loader.py b/python/example_robot_data/robots_loader.py index fbb65e1..3bd2a8e 100644 --- a/python/example_robot_data/robots_loader.py +++ b/python/example_robot_data/robots_loader.py @@ -122,6 +122,22 @@ class A1Loader(RobotLoader): free_flyer = True +class G1Loader(RobotLoader): + path = "g1_description" + urdf_subpath = "urdf" + urdf_filename = "g1_29dof_rev_1_0.urdf" + ref_posture = "standing" + free_flyer = True + + +class G1WithHandsLoader(G1Loader): + path = "g1_description" + urdf_subpath = "urdf" + urdf_filename = "g1_29dof_with_hand_rev_1_0.urdf" + ref_posture = "standing" + free_flyer = True + + class Z1Loader(RobotLoader): path = "z1_description" urdf_filename = "z1.urdf" @@ -478,6 +494,8 @@ class xArm7Loader(RobotLoader): "go1": Go1Loader, "go2": Go2Loader, "a1": A1Loader, + "g1": G1Loader, + "g1_with_hands": G1WithHandsLoader, "z1": Z1Loader, "b1_z1": B1Z1Loader, "anymal": ANYmalLoader, diff --git a/robots/g1_description/README.md b/robots/g1_description/README.md new file mode 100644 index 0000000..409392c --- /dev/null +++ b/robots/g1_description/README.md @@ -0,0 +1,9 @@ +# Unitree G1 Description + +upstream: https://github.com/unitreerobotics/unitree_ros/tree/master/robots/g1_description +license: BSD 3-Clause License + +Modifications: +- limited the loader registry to just the core `G1Loader`/`G1WithHandsLoader`, added `ref_posture="standing"` and re-enabled `free_flyer` so Pinocchio/Crocoddyl builds have sensible defaults. +- pruned the mesh directory down to only the files actually referenced by those two URDFs and removed the unused `inspire_hand` folder. +- dropped the `` blocks that only applied to MuJoCo so the URDFs stay focused on URDF/Pinocchio usage. diff --git a/robots/g1_description/meshes/head_link.STL b/robots/g1_description/meshes/head_link.STL new file mode 100644 index 0000000..2ee5fba Binary files /dev/null and b/robots/g1_description/meshes/head_link.STL differ diff --git a/robots/g1_description/meshes/left_ankle_pitch_link.STL b/robots/g1_description/meshes/left_ankle_pitch_link.STL new file mode 100644 index 0000000..69de849 Binary files /dev/null and b/robots/g1_description/meshes/left_ankle_pitch_link.STL differ diff --git a/robots/g1_description/meshes/left_ankle_roll_link.STL b/robots/g1_description/meshes/left_ankle_roll_link.STL new file mode 100644 index 0000000..8864e9f Binary files /dev/null and b/robots/g1_description/meshes/left_ankle_roll_link.STL differ diff --git a/robots/g1_description/meshes/left_elbow_link.STL b/robots/g1_description/meshes/left_elbow_link.STL new file mode 100644 index 0000000..1a96d99 Binary files /dev/null and b/robots/g1_description/meshes/left_elbow_link.STL differ diff --git a/robots/g1_description/meshes/left_hand_index_0_link.STL b/robots/g1_description/meshes/left_hand_index_0_link.STL new file mode 100644 index 0000000..8069369 Binary files /dev/null and b/robots/g1_description/meshes/left_hand_index_0_link.STL differ diff --git a/robots/g1_description/meshes/left_hand_index_1_link.STL b/robots/g1_description/meshes/left_hand_index_1_link.STL new file mode 100644 index 0000000..464a667 Binary files /dev/null and b/robots/g1_description/meshes/left_hand_index_1_link.STL differ diff --git a/robots/g1_description/meshes/left_hand_middle_0_link.STL b/robots/g1_description/meshes/left_hand_middle_0_link.STL new file mode 100644 index 0000000..8069369 Binary files /dev/null and b/robots/g1_description/meshes/left_hand_middle_0_link.STL differ diff --git a/robots/g1_description/meshes/left_hand_middle_1_link.STL b/robots/g1_description/meshes/left_hand_middle_1_link.STL new file mode 100644 index 0000000..464a667 Binary files /dev/null and b/robots/g1_description/meshes/left_hand_middle_1_link.STL differ diff --git a/robots/g1_description/meshes/left_hand_palm_link.STL b/robots/g1_description/meshes/left_hand_palm_link.STL new file mode 100644 index 0000000..778549d Binary files /dev/null and b/robots/g1_description/meshes/left_hand_palm_link.STL differ diff --git a/robots/g1_description/meshes/left_hand_thumb_0_link.STL b/robots/g1_description/meshes/left_hand_thumb_0_link.STL new file mode 100644 index 0000000..3028bb4 Binary files /dev/null and b/robots/g1_description/meshes/left_hand_thumb_0_link.STL differ diff --git a/robots/g1_description/meshes/left_hand_thumb_1_link.STL b/robots/g1_description/meshes/left_hand_thumb_1_link.STL new file mode 100644 index 0000000..d1c080c Binary files /dev/null and b/robots/g1_description/meshes/left_hand_thumb_1_link.STL differ diff --git a/robots/g1_description/meshes/left_hand_thumb_2_link.STL b/robots/g1_description/meshes/left_hand_thumb_2_link.STL new file mode 100644 index 0000000..43d6291 Binary files /dev/null and b/robots/g1_description/meshes/left_hand_thumb_2_link.STL differ diff --git a/robots/g1_description/meshes/left_hip_pitch_link.STL b/robots/g1_description/meshes/left_hip_pitch_link.STL new file mode 100644 index 0000000..5b751c7 Binary files /dev/null and b/robots/g1_description/meshes/left_hip_pitch_link.STL differ diff --git a/robots/g1_description/meshes/left_hip_roll_link.STL b/robots/g1_description/meshes/left_hip_roll_link.STL new file mode 100644 index 0000000..778437f Binary files /dev/null and b/robots/g1_description/meshes/left_hip_roll_link.STL differ diff --git a/robots/g1_description/meshes/left_hip_yaw_link.STL b/robots/g1_description/meshes/left_hip_yaw_link.STL new file mode 100644 index 0000000..383093a Binary files /dev/null and b/robots/g1_description/meshes/left_hip_yaw_link.STL differ diff --git a/robots/g1_description/meshes/left_knee_link.STL b/robots/g1_description/meshes/left_knee_link.STL new file mode 100644 index 0000000..f2e98e5 Binary files /dev/null and b/robots/g1_description/meshes/left_knee_link.STL differ diff --git a/robots/g1_description/meshes/left_rubber_hand.STL b/robots/g1_description/meshes/left_rubber_hand.STL new file mode 100644 index 0000000..1cefff0 Binary files /dev/null and b/robots/g1_description/meshes/left_rubber_hand.STL differ diff --git a/robots/g1_description/meshes/left_shoulder_pitch_link.STL b/robots/g1_description/meshes/left_shoulder_pitch_link.STL new file mode 100644 index 0000000..e698311 Binary files /dev/null and b/robots/g1_description/meshes/left_shoulder_pitch_link.STL differ diff --git a/robots/g1_description/meshes/left_shoulder_roll_link.STL b/robots/g1_description/meshes/left_shoulder_roll_link.STL new file mode 100644 index 0000000..80bca84 Binary files /dev/null and b/robots/g1_description/meshes/left_shoulder_roll_link.STL differ diff --git a/robots/g1_description/meshes/left_shoulder_yaw_link.STL b/robots/g1_description/meshes/left_shoulder_yaw_link.STL new file mode 100644 index 0000000..281e699 Binary files /dev/null and b/robots/g1_description/meshes/left_shoulder_yaw_link.STL differ diff --git a/robots/g1_description/meshes/left_wrist_pitch_link.STL b/robots/g1_description/meshes/left_wrist_pitch_link.STL new file mode 100644 index 0000000..82cc224 Binary files /dev/null and b/robots/g1_description/meshes/left_wrist_pitch_link.STL differ diff --git a/robots/g1_description/meshes/left_wrist_roll_link.STL b/robots/g1_description/meshes/left_wrist_roll_link.STL new file mode 100644 index 0000000..f3c263a Binary files /dev/null and b/robots/g1_description/meshes/left_wrist_roll_link.STL differ diff --git a/robots/g1_description/meshes/left_wrist_yaw_link.STL b/robots/g1_description/meshes/left_wrist_yaw_link.STL new file mode 100644 index 0000000..31be4fd Binary files /dev/null and b/robots/g1_description/meshes/left_wrist_yaw_link.STL differ diff --git a/robots/g1_description/meshes/logo_link.STL b/robots/g1_description/meshes/logo_link.STL new file mode 100644 index 0000000..e979209 Binary files /dev/null and b/robots/g1_description/meshes/logo_link.STL differ diff --git a/robots/g1_description/meshes/pelvis.STL b/robots/g1_description/meshes/pelvis.STL new file mode 100644 index 0000000..7c76339 Binary files /dev/null and b/robots/g1_description/meshes/pelvis.STL differ diff --git a/robots/g1_description/meshes/pelvis_contour_link.STL b/robots/g1_description/meshes/pelvis_contour_link.STL new file mode 100644 index 0000000..b6748f7 Binary files /dev/null and b/robots/g1_description/meshes/pelvis_contour_link.STL differ diff --git a/robots/g1_description/meshes/right_ankle_pitch_link.STL b/robots/g1_description/meshes/right_ankle_pitch_link.STL new file mode 100644 index 0000000..e77d8a2 Binary files /dev/null and b/robots/g1_description/meshes/right_ankle_pitch_link.STL differ diff --git a/robots/g1_description/meshes/right_ankle_roll_link.STL b/robots/g1_description/meshes/right_ankle_roll_link.STL new file mode 100644 index 0000000..d4261dd Binary files /dev/null and b/robots/g1_description/meshes/right_ankle_roll_link.STL differ diff --git a/robots/g1_description/meshes/right_elbow_link.STL b/robots/g1_description/meshes/right_elbow_link.STL new file mode 100644 index 0000000..f259e38 Binary files /dev/null and b/robots/g1_description/meshes/right_elbow_link.STL differ diff --git a/robots/g1_description/meshes/right_hand_index_0_link.STL b/robots/g1_description/meshes/right_hand_index_0_link.STL new file mode 100644 index 0000000..f87ad32 Binary files /dev/null and b/robots/g1_description/meshes/right_hand_index_0_link.STL differ diff --git a/robots/g1_description/meshes/right_hand_index_1_link.STL b/robots/g1_description/meshes/right_hand_index_1_link.STL new file mode 100644 index 0000000..27ecb37 Binary files /dev/null and b/robots/g1_description/meshes/right_hand_index_1_link.STL differ diff --git a/robots/g1_description/meshes/right_hand_middle_0_link.STL b/robots/g1_description/meshes/right_hand_middle_0_link.STL new file mode 100644 index 0000000..f87ad32 Binary files /dev/null and b/robots/g1_description/meshes/right_hand_middle_0_link.STL differ diff --git a/robots/g1_description/meshes/right_hand_middle_1_link.STL b/robots/g1_description/meshes/right_hand_middle_1_link.STL new file mode 100644 index 0000000..27ecb37 Binary files /dev/null and b/robots/g1_description/meshes/right_hand_middle_1_link.STL differ diff --git a/robots/g1_description/meshes/right_hand_palm_link.STL b/robots/g1_description/meshes/right_hand_palm_link.STL new file mode 100644 index 0000000..ce915e5 Binary files /dev/null and b/robots/g1_description/meshes/right_hand_palm_link.STL differ diff --git a/robots/g1_description/meshes/right_hand_thumb_0_link.STL b/robots/g1_description/meshes/right_hand_thumb_0_link.STL new file mode 100644 index 0000000..1cae7f1 Binary files /dev/null and b/robots/g1_description/meshes/right_hand_thumb_0_link.STL differ diff --git a/robots/g1_description/meshes/right_hand_thumb_1_link.STL b/robots/g1_description/meshes/right_hand_thumb_1_link.STL new file mode 100644 index 0000000..c141fbf Binary files /dev/null and b/robots/g1_description/meshes/right_hand_thumb_1_link.STL differ diff --git a/robots/g1_description/meshes/right_hand_thumb_2_link.STL b/robots/g1_description/meshes/right_hand_thumb_2_link.STL new file mode 100644 index 0000000..f7a23b2 Binary files /dev/null and b/robots/g1_description/meshes/right_hand_thumb_2_link.STL differ diff --git a/robots/g1_description/meshes/right_hip_pitch_link.STL b/robots/g1_description/meshes/right_hip_pitch_link.STL new file mode 100644 index 0000000..998a0a0 Binary files /dev/null and b/robots/g1_description/meshes/right_hip_pitch_link.STL differ diff --git a/robots/g1_description/meshes/right_hip_roll_link.STL b/robots/g1_description/meshes/right_hip_roll_link.STL new file mode 100644 index 0000000..47b2eeb Binary files /dev/null and b/robots/g1_description/meshes/right_hip_roll_link.STL differ diff --git a/robots/g1_description/meshes/right_hip_yaw_link.STL b/robots/g1_description/meshes/right_hip_yaw_link.STL new file mode 100644 index 0000000..3718564 Binary files /dev/null and b/robots/g1_description/meshes/right_hip_yaw_link.STL differ diff --git a/robots/g1_description/meshes/right_knee_link.STL b/robots/g1_description/meshes/right_knee_link.STL new file mode 100644 index 0000000..76d21a3 Binary files /dev/null and b/robots/g1_description/meshes/right_knee_link.STL differ diff --git a/robots/g1_description/meshes/right_rubber_hand.STL b/robots/g1_description/meshes/right_rubber_hand.STL new file mode 100644 index 0000000..c5a24c8 Binary files /dev/null and b/robots/g1_description/meshes/right_rubber_hand.STL differ diff --git a/robots/g1_description/meshes/right_shoulder_pitch_link.STL b/robots/g1_description/meshes/right_shoulder_pitch_link.STL new file mode 100644 index 0000000..3f5b4ed Binary files /dev/null and b/robots/g1_description/meshes/right_shoulder_pitch_link.STL differ diff --git a/robots/g1_description/meshes/right_shoulder_roll_link.STL b/robots/g1_description/meshes/right_shoulder_roll_link.STL new file mode 100644 index 0000000..179d617 Binary files /dev/null and b/robots/g1_description/meshes/right_shoulder_roll_link.STL differ diff --git a/robots/g1_description/meshes/right_shoulder_yaw_link.STL b/robots/g1_description/meshes/right_shoulder_yaw_link.STL new file mode 100644 index 0000000..2ba6076 Binary files /dev/null and b/robots/g1_description/meshes/right_shoulder_yaw_link.STL differ diff --git a/robots/g1_description/meshes/right_wrist_pitch_link.STL b/robots/g1_description/meshes/right_wrist_pitch_link.STL new file mode 100644 index 0000000..da19454 Binary files /dev/null and b/robots/g1_description/meshes/right_wrist_pitch_link.STL differ diff --git a/robots/g1_description/meshes/right_wrist_roll_link.STL b/robots/g1_description/meshes/right_wrist_roll_link.STL new file mode 100644 index 0000000..26868d2 Binary files /dev/null and b/robots/g1_description/meshes/right_wrist_roll_link.STL differ diff --git a/robots/g1_description/meshes/right_wrist_yaw_link.STL b/robots/g1_description/meshes/right_wrist_yaw_link.STL new file mode 100644 index 0000000..d788902 Binary files /dev/null and b/robots/g1_description/meshes/right_wrist_yaw_link.STL differ diff --git a/robots/g1_description/meshes/torso_link_rev_1_0.STL b/robots/g1_description/meshes/torso_link_rev_1_0.STL new file mode 100644 index 0000000..31c8a4c Binary files /dev/null and b/robots/g1_description/meshes/torso_link_rev_1_0.STL differ diff --git a/robots/g1_description/meshes/waist_roll_link_rev_1_0.STL b/robots/g1_description/meshes/waist_roll_link_rev_1_0.STL new file mode 100644 index 0000000..a64f330 Binary files /dev/null and b/robots/g1_description/meshes/waist_roll_link_rev_1_0.STL differ diff --git a/robots/g1_description/meshes/waist_yaw_link_rev_1_0.STL b/robots/g1_description/meshes/waist_yaw_link_rev_1_0.STL new file mode 100644 index 0000000..0fabb63 Binary files /dev/null and b/robots/g1_description/meshes/waist_yaw_link_rev_1_0.STL differ diff --git a/robots/g1_description/urdf/g1_29dof_rev_1_0.urdf b/robots/g1_description/urdf/g1_29dof_rev_1_0.urdf new file mode 100644 index 0000000..853b86e --- /dev/null +++ b/robots/g1_description/urdf/g1_29dof_rev_1_0.urdf @@ -0,0 +1,991 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/robots/g1_description/urdf/g1_29dof_with_hand_rev_1_0.urdf b/robots/g1_description/urdf/g1_29dof_with_hand_rev_1_0.urdf new file mode 100644 index 0000000..bd7b424 --- /dev/null +++ b/robots/g1_description/urdf/g1_29dof_with_hand_rev_1_0.urdf @@ -0,0 +1,1381 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/unittest/test_load.py b/unittest/test_load.py index 12ab138..1047e24 100755 --- a/unittest/test_load.py +++ b/unittest/test_load.py @@ -48,6 +48,12 @@ def test_go2(self): def test_a1(self): self.check("a1", 19, 18) + def test_g1(self): + self.check("g1", 36, 35) + + def test_g1_with_hands(self): + self.check("g1_with_hands", 50, 49) + def test_anymal(self): self.check("anymal", 19, 18)