stack-of-tasks/pinocchio

A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives

해결하는 문제

Pinocchio는 강체 다중 바디 역학에 필요한 복잡한 수학적 계산을 처리하기 위해 설계된 고성능 C++ 라이브러리입니다. 로봇 팔이나 히ュ먼로이드 로봇과 같은 다관절 시스템의 시뮬레이션과 제어를 위해 필요한 도구를 제공하며, 전진 및 역운동학, 역학, 마찰 접촉 문제와 같은 도전 과제를 해결합니다.

작동 방식

Eigen을 선형 대수의 기반으로 하며, 충돌 감지에는 coal을 사용하여 Pinocchio는 최신의 강체 알고리즘(예: 재귀적 뉴턴-오일러 알고리즘, 아티큘레이티드 바디 알고리즘)을 구현합니다. C++ 템플릿과 캐시 친화적인 설계를 활용하여 CPU 성능을 극대화합니다. 또한 이러한 알고리즘의 해석적 도함수를 제공하여 개발자가 기울기 기반 최적화 및 학습 기법을 사용할 수 있도록 합니다. URDF, SDF, MJCF, SRDF와 같은 다양한 로봇 기술 형식을 지원합니다.

대상 사용자

주로 시뮬레이션, 제어, 운동 계획 작업에 종사하는 로봇 공학 연구자 및 엔지니어를 대상으로 합니다. 생체역학, 컴퓨터 그래픽스, 컴퓨터 비전과 같이 다중 바디 물리가 필요한 분야에도 적용 가능합니다.

주요 특징

  • 고성능: 속도와 캐시 효율성에 최적화된 C++ 템플릿 라이브러리.
  • 해석적 도함수: 주요 알고리즘의 도함수를 제공하여 기울기 기반 제어 및 학습이 가능.
  • 다양한 역학 지원: 폐쇄 루프 메커니즘, 중심 질량 역학, 최신 마찰 접촉 솔버 지원.
  • 광범위한 호환성: 프로토타이핑용 파이썬 바인딩을 포함하며, ROS, Conda, Meshcat, RViz 등 다양한 시각화 도구와 통합 가능.

관련

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