stack-of-tasks/pinocchio
A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
해결하는 문제
Pinocchio는 다관절 시스템(예: 로봇)에서 강체 다물체 동역학에 필요한 복잡한 수학적 계산을 처리하도록 설계된 고성능 C++ 라이브러리입니다. 로봇의 움직임(운동학)과 그 움직임을 유발하는 힘(동역학)을 계산하는 데 필요한 도구를 제공하며, 실시간 제어 및 시뮬레이션에 충분한 효율성을 유지합니다.
작동 방식
선형 대수를 위한 Eigen과 충돌 감지를 위한 coal을 기반으로 구축된 이 라이브러리는 최첨단 알고리즘(재귀 뉴턴-오일러 알고리즘 및 관절체 알고리즘 등)을 구현합니다. C++ 템플릿과 캐시 친화적인 설계를 활용하여 CPU 성능을 극대화합니다. Pinocchio는 또한 이러한 알고리즘의 해석적 도함수를 제공하여 개발자가 그래디언트 기반 최적화 및 학습 기술을 사용할 수 있게 합니다. URDF, SDF, MJCF 및 SRDF를 포함한 여러 로봇 설명 형식을 지원합니다.
대상 사용자
이 라이브러리는 모션 플래닝, 제어 및 물리 기반 시뮬레이션을 작업하는 로봇 연구자와 엔지니어를 대상으로 합니다. 또한 강체 동역학이 필요한 생체역학, 컴퓨터 그래픽스 및 컴퓨터 비전과 같은 분야에도 적용할 수 있습니다.
주요 특징
- 고성능: 속도와 캐시 효율성에 최적화된 C++ 템플릿 라이브러리.
- 해석적 도함수: 동역학 알고리즘에 대한 그래디언트를 제공하여 고급 최적화 및 학습을 가능하게 합니다.
- 다양한 동역학: 순방향/역방향 동역학, 중심 동역학 및 폐루프 메커니즘을 지원합니다.
- 고급 접촉 해결: 최첨단 마찰 접촉 솔버와 구속 관절체 알고리즘을 포함합니다.
- 광범위한 호환성: 프로토타이핑을 위한 Python 인터페이스를 제공하며 ROS, Conda 및 Meshcat 및 RViz와 같은 다양한 시각화 도구와 통합됩니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트