From e5ace5699e0ae61f387cc88987d3c416b1f27d1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Caron?= Date: Tue, 1 Apr 2025 10:38:16 +0200 Subject: [PATCH] Add BXI Elf2 MJCF description --- CHANGELOG.md | 1 + README.md | 1 + robot_descriptions/_descriptions.py | 1 + robot_descriptions/elf2_mj_description.py | 21 +++++++++++++++++++++ 4 files changed, 24 insertions(+) create mode 100644 robot_descriptions/elf2_mj_description.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 27cdb78..de27161 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ All notable changes to this project will be documented in this file. - Description: Ability Hand (MJCF) - Description: Ability Hand (URDF) - Description: Apptronik Apollo (MJCF) +- Description: BXI Elf2 (MJCF) - Description: BXI Elf2 (URDF) ### Changed diff --git a/README.md b/README.md index 4341c0d..6499e10 100644 --- a/README.md +++ b/README.md @@ -228,6 +228,7 @@ The DOF column denotes the number of actuated degrees of freedom. | `berkeley_humanoid_description` | Berkeley Humanoid | Hybrid Robotics | URDF | BSD-3-Clause | | `draco3_description` | Draco3 | Apptronik | URDF | BSD-2-Clause | | `elf2_description` | Elf2 | BXI Robotics | URDF | [Apache-2.0](https://github.com/bxirobotics/robot_models/blob/eabe24ce937f8e633077a163b883e92e8996c36e/LICENSE) | +| `elf2_mj_description` | Elf2 | BXI Robotics | MJCF | [Apache-2.0](https://github.com/bxirobotics/robot_models/blob/eabe24ce937f8e633077a163b883e92e8996c36e/LICENSE) | | `ergocub_description` | ergoCub | IIT | URDF | BSD-3-Clause | | `g1_description` | G1 | UNITREE Robotics | URDF | BSD-3-Clause | | `g1_mj_description` | G1 | UNITREE Robotics | MJCF | BSD-3-Clause | diff --git a/robot_descriptions/_descriptions.py b/robot_descriptions/_descriptions.py index 258c5bd..7259d38 100644 --- a/robot_descriptions/_descriptions.py +++ b/robot_descriptions/_descriptions.py @@ -79,6 +79,7 @@ def has_urdf(self) -> bool: "draco3_description": Description(Format.URDF), "edo_description": Description(Format.URDF), "elf2_description": Description(Format.URDF), + "elf2_mj_description": Description(Format.MJCF), "ergocub_description": Description(Format.URDF), "eve_r3_description": Description(Format.URDF), "fanuc_m710ic_description": Description(Format.URDF), diff --git a/robot_descriptions/elf2_mj_description.py b/robot_descriptions/elf2_mj_description.py new file mode 100644 index 0000000..3ae7500 --- /dev/null +++ b/robot_descriptions/elf2_mj_description.py @@ -0,0 +1,21 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# SPDX-License-Identifier: Apache-2.0 +# Copyright 2025 Inria + +"""Elf2 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( + "bxi_robot_models", + commit=_getenv("ROBOT_DESCRIPTION_COMMIT", None), +) + +PACKAGE_PATH: str = _path.join(REPOSITORY_PATH, "elf2_dof25", "xml") + +MJCF_PATH: str = _path.join(PACKAGE_PATH, "scene.xml")