robot-descriptions/robot_descriptions.py

Access 190+ robot descriptions from the main Python robotics frameworks

robot-descriptions – 로봇 모델 자산을 위한 파이썬 라이브러리

무엇인가요 – 오픈소스 로봇 설명 파일(URDF, MJCF 등)을 일반 파이썬 모듈처럼 임포트할 수 있는 순수 파이썬 패키지입니다. 처음 로봇을 요청하면 라이브러리는 정제된 아워소미 로봇 설명 컬렉션에서 자동으로 설명을 다운로드하고 로컬에 캐시한 후, 다양한 시뮬레이션 및 분석 도구에서 바로 사용할 수 있는 객체를 제공합니다.

왜 중요한가요 – 로봇 공학 연구 및 개발은 종종 동일한 로봇 모델(예: KUKA iiwa, Franka Panda, Boston Dynamics Spot)을 필요로 합니다. 이러한 파일을 프로젝트 간에 동기화하는 것은 번거로운 일입니다. robot_descriptions는 GitHub에서 버전 관리된 단일 진실 공급원을 제공하여 이 문제를 해결합니다. 작고 간단한 파이썬 API를 통해 접근 가능하며, 가장 일반적인 로봇 소프트웨어 스택과 호환되어 MuJoCo, Pinocchio, PyBullet, iDynTree, RoboMeshCat 또는 yourdfpy로 쉽게 전환할 수 있습니다. 수동으로 파일을 다루지 않아도 됩니다.


설치

# conda-forge (과학용 파이썬 스택 추천)
conda install -c conda-forge robot_descriptions

# 또는 pip로
pip install robot_descriptions

기본 사용법 (파이썬)

from robot_descriptions.loaders.pinocchio import load_robot_description

# 운동학/역운동학 호출에 사용 가능한 Pinocchio 모델 반환
robot = load_robot_description("upkie_description")

이 라이브러리는 각 지원 백엔드용 로더를 제공합니다:

백엔드 로더 모듈
iDynTree robot_descriptions.loaders.idyntree
MuJoCo robot_descriptions.loaders.mujoco
Pinocchio robot_descriptions.loaders.pinocchio
PyBullet robot_descriptions.loaders.pybullet
RoboMeshCat robot_descriptions.loaders.robomeshcat
yourdfpy robot_descriptions.loaders.yourdfpy

각 로더는 요청된 설명을(캐시되지 않은 경우) 다운로드하고 해당 프레임워크에 맞는 객체를 반환합니다.


명령줄 인터페이스

이 패키지는 robot_descriptions 엔트리포인트 또는 uvx robot_descriptions를 통해 접근 가능한 작은 CLI도 제공합니다. 예시 명령어:

# 모델 사전 다운로드
uvx robot_descriptions pull iiwa14_description

# MuJoCo에서 시각화 (옵션의 mujoco-python-viewer 필요)
uvx --with mujoco-python-viewer robot_descriptions show_in_mujoco go2_mj_description

# MeshCat에서 시각화
uvx --with meshcat robot_descriptions show_in_meshcat go2_description

CLI는 파이썬 API와 일치합니다: pull은 캐시를 가져오고, show_in_*는 선택한 백엔드용 뷰어를 실행합니다.


설명을 서브모듈처럼 가져오기

로봇 설명을 일반 파이썬 서브모듈처럼 다룰 수 있습니다:

from robot_descriptions import panda_description

print(panda_description.URDF_PATH)          # 주요 URDF 파일 경로
print(panda_description.PACKAGE_PATH)       # 설명 패키지 루트
print(panda_description.REPOSITORY_PATH)    # 클론된 Git 리포지토리 위치

일부 패키지는 추가 상수(예: 고정밀 충돌 메시용 URDF_PATH_POLYTOPE_COLLISION) 또는 Xacro 처리(XACRO_PATH + 선택적 XACRO_ARGS)를 노출합니다.


사용 가능한 로봇 모델은?

이 라이브러리는 아워소미 로봇 설명 갤러리를 인덱싱합니다. 모델은 유형(팔, 이족보행, 사족보행, 드론 등)별로 그룹화되며, 가능하면 URDF 및 MJCF 버전을 모두 포함합니다. 몇 가지 예시:

  • panda_description / panda_mj_description (Franka Emika Panda)
  • iiwa14_description / iiwa14_mj_description (KUKA iiwa-14)
  • go2_description (Unitree Go2 사족보행 로봇)
  • omx_f_description (ROBOTIS OpenManipulator-F)
  • low_cost_robot_arm_mj_description (DeepMind의 메나지리에서 나온 간단한 MJCF 팔)

각 항목은 원본 유지보수자, 파일 형식, 라이선스(BSD-3, Apache-2.0, MIT, GPL-3 등)를 나열합니다.


예제 스크립트 (리포지토리 내)

리포지토리는 각 지원 백엔드에서 모델을 로드하고 시각화하는 방법을 보여주는 실행 가능한 예제를 포함합니다:

  • examples/load_in_pinocchio.py
  • examples/show_in_meshcat.py
  • examples/show_in_mujoco.py … iDynTree, PyBullet, RoboMeshCat, yourdfpy용 동등한 스크립트도 포함.

누구에게 적합한가요?

  • 연구자 – 다양한 로봇 모델이 필요한 시뮬레이션 파이프라인을 구축하는 사람.
  • 로봇 공학 교육자 – 학생들이 파일을 수동으로 찾지 않고도 다양한 팔과 이동 플랫폼에서 실험할 수 있도록 하고 싶은 사람.
  • 시뮬레이션에서 실제 시스템으로의 파이프라인 개발자 – 훈련 시 사용된 정확한 URDF/MJCF를 확보할 수 있는 신뢰할 수 있는 방법이 필요한 사람.

라이선스 및 기여

이 라이브러리는 MIT 라이선스로 배포됩니다(파이피 뱃지 참조). 로봇 설명 파일은 원본 업스트림 라이선스를 유지하며, 생성된 테이블에 표시됩니다. 기여는 환영합니다 – 자세한 내용은 CONTRIBUTING.md 뱃지 참조.


결론robot_descriptions는 오픈소스 로봇 모델 리포지토리와 파이썬 중심의 로봇 공학 생태계 사이를 가볍고 신뢰할 수 있는 다리로 연결하며, 다운로드, 캐시, 포맷 변환을 자동으로 처리합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트