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.pyexamples/show_in_meshcat.pyexamples/show_in_mujoco.py… iDynTree, PyBullet, RoboMeshCat,yourdfpy용 동등한 스크립트도 포함.
누구에게 적합한가요?
- 연구자 – 다양한 로봇 모델이 필요한 시뮬레이션 파이프라인을 구축하는 사람.
- 로봇 공학 교육자 – 학생들이 파일을 수동으로 찾지 않고도 다양한 팔과 이동 플랫폼에서 실험할 수 있도록 하고 싶은 사람.
- 시뮬레이션에서 실제 시스템으로의 파이프라인 개발자 – 훈련 시 사용된 정확한 URDF/MJCF를 확보할 수 있는 신뢰할 수 있는 방법이 필요한 사람.
라이선스 및 기여
이 라이브러리는 MIT 라이선스로 배포됩니다(파이피 뱃지 참조). 로봇 설명 파일은 원본 업스트림 라이선스를 유지하며, 생성된 테이블에 표시됩니다. 기여는 환영합니다 – 자세한 내용은 CONTRIBUTING.md 뱃지 참조.
결론 – robot_descriptions는 오픈소스 로봇 모델 리포지토리와 파이썬 중심의 로봇 공학 생태계 사이를 가볍고 신뢰할 수 있는 다리로 연결하며, 다운로드, 캐시, 포맷 변환을 자동으로 처리합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트