로봇 제어, 공동 설계 및 로봇 학습을 위한 JAX 기반 미분 가능한 강체 물리 엔진입니다.
stack-of-tasks/pinocchio
로보틱스에 쓰이는 강체 동역학, 운동학 및 해석적 미분 계산을 위한 빠른 헤더 전용 C++ 라이브러리로, Python 바인딩을 제공합니다.
- 스타
- 3,850
- 포크
- 592
- 열린 이슈
- 104
- 마지막 커밋
- 17시간 전
어떤 프로젝트인가요?
Pinocchio는 로봇 팔이나 휴머노이드처럼 여러 관절로 연결된 시스템의 강체 동역학을 위한 C++ 라이브러리입니다. 순방향·역방향 운동학과 동역학, 중심 동역학 및 이러한 알고리즘의 해석적 미분을 구현하며, 이는 그래디언트 기반 최적화, 제어 및 학습에 유용합니다. 선형 대수에는 Eigen을, 충돌 감지에는 coal을 사용하며 URDF, SDF, MJCF, SRDF 형식의 로봇 설명을 파싱합니다.
이 라이브러리는 헤더 전용 C++ 템플릿 라이브러리이며, Conda나 pip로 설치할 수 있는 Python 인터페이스도 제공합니다. 폐루프 메커니즘, 마찰 접촉 솔버, 구속 동역학과 MPFR을 통한 다중 정밀도 연산도 지원합니다. CppAD와 CasADi를 통한 자동 미분도 사용할 수 있습니다.
Pinocchio는 Inria의 Willow 팀이 개발하며, Crocoddyl, Aligator, Humanoid Path Planner 같은 프로젝트의 기반으로 사용됩니다. 로보틱스를 위해 설계됐지만 생체역학, 컴퓨터 그래픽스와 비전에도 적용할 수 있습니다.
핵심 기능
- 01해석적 미분을 지원하는 순방향·역방향 동역학
- 02중심 동역학 및 운동학·동역학 회귀자
- 03폐루프 메커니즘 및 마찰 접촉 솔버
- 04URDF, SDF, MJCF, SRDF 로봇 설명 파싱
- 05Conda나 pip로 설치할 수 있는 Python 바인딩
- 06Eigen과 coal을 사용하는 헤더 전용 C++ 템플릿 라이브러리
활용 사례
- 로봇 제어와 궤적 최적화를 위한 동역학 및 그래디언트 계산
- C++로 옮기기 전에 Python에서 로봇 알고리즘 프로토타이핑
- 운동학·동역학 회귀자를 이용한 시스템 식별
- 강체 동역학 코어를 기반으로 동작 계획이나 전신 제어 도구 구축
빠른 시작
- 1
conda-forge에서 Conda를 통해 Pinocchio 설치
conda install pinocchio -c conda-forge - 2
또는 pip를 통해 Python 바인딩 설치(Linux 전용)
pip install pin - 3
또는 Docker 이미지 실행
docker run --rm -it ghcr.io/stack-of-tasks/pinocchio:devel
사용 전 알아둘 점
- pip 패키지는 현재 Linux에서만 사용할 수 있습니다.
- devel 브랜치에는 최신 릴리스만 포함되며 새 풀 리퀘스트도 반영되므로 자주 변경될 수 있습니다.
포함된 컬렉션
토픽
자주 묻는 질문
- pinocchio은(는) 무엇인가요?
- 로보틱스에 쓰이는 강체 동역학, 운동학 및 해석적 미분 계산을 위한 빠른 헤더 전용 C++ 라이브러리로, Python 바인딩을 제공합니다. Pinocchio는 로봇 팔이나 휴머노이드처럼 여러 관절로 연결된 시스템의 강체 동역학을 위한 C++ 라이브러리입니다. 순방향·역방향 운동학과 동역학, 중심 동역학 및 이러한 알고리즘의 해석적 미분을 구현하며, 이는 그래디언트 기반 최적화, 제어 및 학습에 유용합니다. 선형 대수에는 Eigen을, 충돌 감지에는 coal을 사용하며 URDF, SDF, MJCF, SRDF 형식의 로봇 설명을 파싱합니다.
- pinocchio은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- pinocchio은(는) BSD-2-Clause 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- pinocchio은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. pinocchio의 마지막 커밋은 2026년 11월 6일입니다.
- pinocchio은(는) 어디에 사용할 수 있나요?
- 로봇 제어와 궤적 최적화를 위한 동역학 및 그래디언트 계산 C++로 옮기기 전에 Python에서 로봇 알고리즘 프로토타이핑 운동학·동역학 회귀자를 이용한 시스템 식별 강체 동역학 코어를 기반으로 동작 계획이나 전신 제어 도구 구축
- pinocchio는 어떻게 설치하나요?
- conda-forge에서 Conda를 통해 Pinocchio 설치: conda install pinocchio -c conda-forge 또는 pip를 통해 Python 바인딩 설치(Linux 전용): pip install pin 또는 Docker 이미지 실행: docker run --rm -it ghcr.io/stack-of-tasks/pinocchio:devel
- pinocchio은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/stack-of-tasks/pinocchio
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
AI 코딩 에이전트가 자연어 요청으로 CAD 모델을 생성하고 검토·제작할 수 있게 해주는 플러그인 및 스킬 모음입니다.
JAX 기반의 순수 Python 로봇 운동학·동역학 라이브러리로, JIT 컴파일과 자동 미분을 활용해 빠르게 제어기를 설계할 수 있습니다.
게임, VR, 로보틱스, 머신러닝에 사용되는 실시간 충돌 감지 및 다중 물리 시뮬레이션용 C++ 라이브러리 Bullet Physics SDK입니다.
MindSpore는 모바일, 엣지, 클라우드 환경을 위한 오픈소스 딥러닝 학습 및 추론 프레임워크로, Huawei Ascend AI 프로세서를 기본 지원합니다.
수치 계산과 딥러닝을 위한 Nim 기반의 빠르고 사용하기 편한 N차원 텐서 라이브러리로, CPU, CUDA, OpenCL 백엔드를 지원합니다.