From 65d582bf1ba413528dd2ed6dd96de116fba383c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Caron?= Date: Tue, 18 Nov 2025 11:06:02 +0100 Subject: [PATCH 1/2] Add Aero Hand Open description --- CHANGELOG.md | 4 +++ README.md | 1 + robot_descriptions/_descriptions.py | 1 + robot_descriptions/_repositories.py | 5 +++ .../aero_hand_open_description.py | 31 +++++++++++++++++++ 5 files changed, 42 insertions(+) create mode 100644 robot_descriptions/aero_hand_open_description.py diff --git a/CHANGELOG.md b/CHANGELOG.md index b665aaa..dc303c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file. ## [Unreleased] +### Added + +- Description: Aero Hand Open (URDF) + ### Fixed - Update repository of YAM description diff --git a/README.md b/README.md index f12c87a..fb30c59 100644 --- a/README.md +++ b/README.md @@ -214,6 +214,7 @@ The DOF column denotes the number of actuated degrees of freedom. |----------------------------------|-----------------------|----------------------------|------------|---------| | `ability_hand_description` | Ability Hand | PSYONIC, Inc. | URDF | [MIT](https://github.com/psyonicinc/ability-hand-api/blob/89407424edfc22faceaedcd7c3ea2b7947cbbb2c/LICENSE) | | `ability_hand_mj_description` | Ability Hand | PSYONIC, Inc. | MJCF | [MIT](https://github.com/psyonicinc/ability-hand-api/blob/89407424edfc22faceaedcd7c3ea2b7947cbbb2c/LICENSE) | +| `aero_hand_open_description` | Aero Hand Open | TetherIA | URDF | [Apache-2.0](https://github.com/google-deepmind/mujoco_menagerie/pull/213/commits/6d88dc56029eec7f92e530e1c16283a4b53166e8) | | `allegro_hand_description` | Allegro Hand | Wonik Robotics | URDF | [BSD](https://github.com/RobotLocomotion/models/blob/5c027ea961473cb558da30e1a749272a8a9fa3eb/allegro_hand_description/LICENSE.TXT) | | `allegro_hand_mj_description` | Allegro Hand | Wonik Robotics | MJCF | [BSD-2-Clause](https://github.com/google-deepmind/mujoco_menagerie/blob/main/wonik_allegro/LICENSE) | | `barrett_hand_description` | BarrettHand | Barrett Technology | URDF | [BSD](https://github.com/jhu-lcsr-attic/bhand_model/blob/937f4186d6458bd682a7dae825fb6f4efe56ec69/manifest.xml) | diff --git a/robot_descriptions/_descriptions.py b/robot_descriptions/_descriptions.py index 044a344..2987dc9 100644 --- a/robot_descriptions/_descriptions.py +++ b/robot_descriptions/_descriptions.py @@ -60,6 +60,7 @@ def has_urdf(self) -> bool: Format.MJCF, tags={"end_effector"} ), "adam_lite_mj_description": Description(Format.MJCF, tags={"humanoid"}), + "aero_hand_open_description": Description(Format.URDF, targs={"end_effector"}), "aliengo_description": Description(Format.URDF, tags={"quadruped"}), "aliengo_mj_description": Description(Format.MJCF, tags={"quadruped"}), "allegro_hand_description": Description( diff --git a/robot_descriptions/_repositories.py b/robot_descriptions/_repositories.py index f8c2372..3e424fb 100644 --- a/robot_descriptions/_repositories.py +++ b/robot_descriptions/_repositories.py @@ -31,6 +31,11 @@ class Repository: commit="89407424edfc22faceaedcd7c3ea2b7947cbbb2c", cache_path="ability_hand_api", ), + "aero-hand-open": Repository( + url="https://github.com/TetherIA/aero-hand-open.git", + commit="ad7d4fc4078ceedfeefbf27aa5f058b622e18521", + cache_path="aero_hand_open", + ), "anymal_b_simple_description": Repository( url="https://github.com/ANYbotics/anymal_b_simple_description.git", commit="988b5df22b84761bdf08111b1c2ccc883793f456", diff --git a/robot_descriptions/aero_hand_open_description.py b/robot_descriptions/aero_hand_open_description.py new file mode 100644 index 0000000..9def65e --- /dev/null +++ b/robot_descriptions/aero_hand_open_description.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# SPDX-License-Identifier: Apache-2.0 + +"""Aero Hand Open 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( + "aero-hand-open", + commit=_getenv("ROBOT_DESCRIPTION_COMMIT", None), +) + +PACKAGE_PATH: str = _path.join( + REPOSITORY_PATH, + "ros2", + "src", + "aero_hand_open_description", +) + +URDF_PATH: str = _path.join(PACKAGE_PATH, "urdf", "aero_hand_open_left.urdf") + +# Description-specific paths + +URDF_PATH_LEFT: str = _path.join(PACKAGE_PATH, "aero_hand_open_left.urdf") + +URDF_PATH_RIGHT: str = _path.join(PACKAGE_PATH, "aero_hand_open_left.urdf") From ef6e9c374cb65456d25d509464e69087e92d98cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Caron?= Date: Mon, 24 Nov 2025 15:33:51 +0100 Subject: [PATCH 2/2] Fix keyword argument typo --- robot_descriptions/_descriptions.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/robot_descriptions/_descriptions.py b/robot_descriptions/_descriptions.py index 2987dc9..53864dd 100644 --- a/robot_descriptions/_descriptions.py +++ b/robot_descriptions/_descriptions.py @@ -60,7 +60,9 @@ def has_urdf(self) -> bool: Format.MJCF, tags={"end_effector"} ), "adam_lite_mj_description": Description(Format.MJCF, tags={"humanoid"}), - "aero_hand_open_description": Description(Format.URDF, targs={"end_effector"}), + "aero_hand_open_description": Description( + Format.URDF, tags={"end_effector"} + ), "aliengo_description": Description(Format.URDF, tags={"quadruped"}), "aliengo_mj_description": Description(Format.MJCF, tags={"quadruped"}), "allegro_hand_description": Description(