diff --git a/CHANGELOG.md b/CHANGELOG.md index 3495f65..48db812 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,8 @@ All notable changes to this project will be documented in this file. - Description: RBY1 Mobile Manipulatior (URDF) (thanks to @uynitsuj) - Description: YAM (MJCF) (thanks to @uynitsuj) - Description: YAM (URDF) (thanks to @uynitsuj) +- Description: Unitree H1_2 (URDF) (thanks to @TonyZYT2000) +- Description: Unitree H1_2 (MJCF) (thanks to @TonyZYT2000) ## [1.19.0] - 2025-07-03 diff --git a/README.md b/README.md index 412c7f5..40e146e 100644 --- a/README.md +++ b/README.md @@ -245,6 +245,8 @@ The DOF column denotes the number of actuated degrees of freedom. | `gr1_description` | GR-1 | Fourier | URDF | [GPL-3.0](https://github.com/FFTAI/Wiki-GRx-Models/blob/351245ac8fa4bf6f4b0c41556e1e6976a438bcef/LICENSE) | | `h1_description` | H1 | UNITREE Robotics | URDF | BSD-3-Clause | | `h1_mj_description` | H1 | UNITREE Robotics | MJCF | BSD-3-Clause | +| `h1_2_description` | H1_2 | UNITREE Robotics | URDF | BSD-3-Clause | +| `h1_2_mj_description` | H1_2 | UNITREE Robotics | MJCF | BSD-3-Clause | | `icub_description` | iCub | IIT | URDF | CC-BY-SA-4.0 ✖️ | | `jaxon_description` | JAXON | JSK | URDF | CC-BY-SA-4.0 ✖️ | | `jvrc_description` | JVRC-1 | AIST | URDF | BSD-2-Clause | diff --git a/robot_descriptions/_descriptions.py b/robot_descriptions/_descriptions.py index 1766e8d..ae7e2d5 100644 --- a/robot_descriptions/_descriptions.py +++ b/robot_descriptions/_descriptions.py @@ -131,6 +131,8 @@ def has_urdf(self) -> bool: "gr1_description": Description(Format.URDF, tags={"humanoid"}), "h1_description": Description(Format.URDF, tags={"humanoid"}), "h1_mj_description": Description(Format.MJCF, tags={"humanoid"}), + "h1_2_description": Description(Format.URDF, tags={"humanoid"}), + "h1_2_mj_description": Description(Format.MJCF, tags={"humanoid"}), "hyq_description": Description(Format.URDF, tags={"quadruped"}), "icub_description": Description(Format.URDF, tags={"humanoid"}), "iiwa7_description": Description(Format.URDF, tags={"arm"}), diff --git a/robot_descriptions/_repositories.py b/robot_descriptions/_repositories.py index 7938ce1..87db4de 100644 --- a/robot_descriptions/_repositories.py +++ b/robot_descriptions/_repositories.py @@ -325,7 +325,7 @@ class Repository: ), "unitree_ros": Repository( url="https://github.com/unitreerobotics/unitree_ros.git", - commit="8bca7f8907bf6feceac80809ae67e4b379ab9cfc", + commit="267182b8521c8d6a631bab1fe63836873237a525", cache_path="unitree_ros", ), "upkie_description": Repository( diff --git a/robot_descriptions/g1_description.py b/robot_descriptions/g1_description.py index 44f77d2..1280576 100644 --- a/robot_descriptions/g1_description.py +++ b/robot_descriptions/g1_description.py @@ -15,4 +15,4 @@ PACKAGE_PATH: str = _path.join(REPOSITORY_PATH, "robots", "g1_description") -URDF_PATH: str = _path.join(PACKAGE_PATH, "g1.urdf") +URDF_PATH: str = _path.join(PACKAGE_PATH, "g1_29dof.urdf") diff --git a/robot_descriptions/h1_2_description.py b/robot_descriptions/h1_2_description.py new file mode 100644 index 0000000..ce7b460 --- /dev/null +++ b/robot_descriptions/h1_2_description.py @@ -0,0 +1,20 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# SPDX-License-Identifier: Apache-2.0 + +"""H1_2 description.""" + +from os import getenv as _getenv +from os import path as _path + +from ._cache import clone_to_cache as _clone_to_cache + +REPOSITORY_PATH: str = _clone_to_cache( + "unitree_ros", + commit=_getenv("ROBOT_DESCRIPTION_COMMIT", None), +) + +PACKAGE_PATH: str = _path.join(REPOSITORY_PATH, "robots", "h1_2_description") + +URDF_PATH: str = _path.join(PACKAGE_PATH, "h1_2.urdf") diff --git a/robot_descriptions/h1_2_mj_description.py b/robot_descriptions/h1_2_mj_description.py new file mode 100644 index 0000000..b1d9459 --- /dev/null +++ b/robot_descriptions/h1_2_mj_description.py @@ -0,0 +1,20 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# SPDX-License-Identifier: Apache-2.0 + +"""Unitree H1_2 MJCF description.""" + +from os import getenv as _getenv +from os import path as _path + +from ._cache import clone_to_cache as _clone_to_cache + +REPOSITORY_PATH: str = _clone_to_cache( + "unitree_ros", + commit=_getenv("ROBOT_DESCRIPTION_COMMIT", None), +) + +PACKAGE_PATH: str = _path.join(REPOSITORY_PATH, "robots", "h1_2_description") + +MJCF_PATH: str = _path.join(PACKAGE_PATH, "h1_2.xml") diff --git a/robot_descriptions/h1_description.py b/robot_descriptions/h1_description.py index 2cfa330..e5a6642 100644 --- a/robot_descriptions/h1_description.py +++ b/robot_descriptions/h1_description.py @@ -4,7 +4,7 @@ # SPDX-License-Identifier: Apache-2.0 # Copyright 2022 Stéphane Caron -"""Go2 description.""" +"""H1 description.""" from os import getenv as _getenv from os import path as _path