diff --git a/CHANGELOG.md b/CHANGELOG.md index 6b8f0d3..ba47a80 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,8 @@ All notable changes to this project will be documented in this file. - Description: Dynamixel 2R (MJCF) - Description: YAM (MJCF) (thanks to @kevinzakka) +- Description YAM (URDF) +- Description RBY1 Mobile Manipulatior (URDF) ## [1.17.0] - 2025-05-08 diff --git a/README.md b/README.md index edd3411..625573d 100644 --- a/README.md +++ b/README.md @@ -164,6 +164,7 @@ The DOF column denotes the number of actuated degrees of freedom. | `widow_mj_description` | WidowX | Trossen Robotics | MJCF | BSD-3-Clause | | `xarm7_mj_description` | xArm7 | UFACTORY | MJCF | BSD-3-Clause | | `yam_mj_description` | YAM | I2RT Robotics | MJCF | MIT | +| `yam_description` | YAM | I2RT Robotics | URDF | MIT | | `z1_description` | Z1 | UNITREE Robotics | URDF | BSD-3-Clause | | `z1_mj_description` | Z1 | UNITREE Robotics | MJCF | BSD-3-Clause | @@ -267,6 +268,8 @@ The DOF column denotes the number of actuated degrees of freedom. | `sretch_mj_description` | Stretch 2 | Hello Robot | 14 | MJCF | | `sretch_3_mj_description` | Stretch 3 | Hello Robot | 14 | MJCF | | `tiago_description` | TIAGo | PAL Robotics | 48 | URDF | +| `rby1_description` | RBY1 | Rainbow Robotics | 24 | URDF | + ### Quadrupeds diff --git a/robot_descriptions/_descriptions.py b/robot_descriptions/_descriptions.py index 9a5592d..8199367 100644 --- a/robot_descriptions/_descriptions.py +++ b/robot_descriptions/_descriptions.py @@ -217,6 +217,8 @@ def has_urdf(self) -> bool: "widow_mj_description": Description(Format.MJCF, tags={"arm"}), "xarm7_mj_description": Description(Format.MJCF, tags={"arm"}), "yam_mj_description": Description(Format.MJCF, tags={"arm"}), + "yam_description": Description(Format.URDF, tags={"arm"}), + "rby1_description": Description(Format.URDF, tags={"mobile_manipulator"}), "yumi_description": Description(Format.URDF, tags={"dual_arm"}), "z1_description": Description(Format.URDF, tags={"arm"}), "z1_mj_description": Description(Format.MJCF, tags={"arm"}), diff --git a/robot_descriptions/_repositories.py b/robot_descriptions/_repositories.py index 8349ac2..e5a57d5 100644 --- a/robot_descriptions/_repositories.py +++ b/robot_descriptions/_repositories.py @@ -305,4 +305,14 @@ class Repository: commit="9a6a057a055babaf47119fac42c361fffc189128", cache_path="skydio_x2_description", ), + "i2rt": Repository( + url="https://github.com/i2rt-robotics/i2rt.git", + commit="8a8f804d72b41a04a5c69520031aec9a5d328104", + cache_path="i2rt", + ), + "rby1_description": Repository( + url="https://github.com/uynitsuj/rby1_description.git", + commit="d8e8fe5f92604ef56e11db7f9798973cf94767cb", + cache_path="rby1_description", + ), } diff --git a/robot_descriptions/rby1_description.py b/robot_descriptions/rby1_description.py new file mode 100644 index 0000000..e8091de --- /dev/null +++ b/robot_descriptions/rby1_description.py @@ -0,0 +1,21 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# SPDX-License-Identifier: Apache-2.0 +# Copyright 2022 Stéphane Caron + +"""YAM URDF 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( + "rby1_description", + commit=_getenv("ROBOT_DESCRIPTION_COMMIT", None), +) + +PACKAGE_PATH: str = _path.join(REPOSITORY_PATH, "models/rby1a") + +URDF_PATH: str = _path.join(PACKAGE_PATH, "urdf/model.urdf") diff --git a/robot_descriptions/rby1_mj_description.py b/robot_descriptions/rby1_mj_description.py new file mode 100644 index 0000000..ee5c0b6 --- /dev/null +++ b/robot_descriptions/rby1_mj_description.py @@ -0,0 +1,21 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# SPDX-License-Identifier: Apache-2.0 +# Copyright 2022 Stéphane Caron + +"""YAM URDF 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( + "rby1_description", + commit=_getenv("ROBOT_DESCRIPTION_COMMIT", None), +) + +PACKAGE_PATH: str = _path.join(REPOSITORY_PATH, "models/rby1a") + +MJCF_PATH: str = _path.join(PACKAGE_PATH, "mujoco/model.xml") diff --git a/robot_descriptions/yam_description.py b/robot_descriptions/yam_description.py new file mode 100644 index 0000000..2e5bcec --- /dev/null +++ b/robot_descriptions/yam_description.py @@ -0,0 +1,21 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# SPDX-License-Identifier: Apache-2.0 +# Copyright 2022 Stéphane Caron + +"""YAM URDF 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( + "i2rt", + commit=_getenv("ROBOT_DESCRIPTION_COMMIT", None), +) + +PACKAGE_PATH: str = _path.join(REPOSITORY_PATH, "robot_models/yam/assets") + +URDF_PATH: str = _path.join(REPOSITORY_PATH, "robot_models/yam/yam.urdf")