Дифференцируемый физический движок на JAX для управления роботами, совместного проектирования аппаратуры и обучения роботов.
stack-of-tasks/pinocchio
Быстрая header-only библиотека C++ с привязками к Python для динамики и кинематики твёрдых тел, а также их аналитических производных, применяемая в робототехнике.
- Звёзды
- 3,850
- Форки
- 592
- Открытые issues
- 104
- Последний коммит
- вчера
Что это?
Pinocchio — библиотека C++ для динамики твёрдых тел в многозвенных системах, таких как манипуляторы и гуманоидные роботы. Она реализует прямую и обратную кинематику и динамику, центроидальную динамику, а также аналитические производные этих алгоритмов, полезные для градиентной оптимизации, управления и обучения. Библиотека использует Eigen для линейной алгебры и coal для обнаружения столкновений, а также обрабатывает описания роботов в форматах URDF, SDF, MJCF и SRDF.
Библиотека распространяется только в виде заголовочных файлов и реализована как шаблонная библиотека C++; в комплект входит интерфейс Python, который можно установить через Conda или pip. Поддерживаются также замкнутые механизмы, решатели контактных задач с трением, динамика с ограничениями и арифметика с повышенной точностью через MPFR. Автоматическое дифференцирование доступно с помощью CppAD и CasADi.
Pinocchio разрабатывает команда Willow из Inria. Библиотека служит основой для таких проектов, как Crocoddyl, Aligator и Humanoid Path Planner. Она создана для робототехники, но может применяться и в биомеханике, компьютерной графике и компьютерном зрении.
Ключевые возможности
- 01Прямая и обратная динамика с аналитическими производными
- 02Центроидальная динамика, а также кинематические и динамические регрессоры
- 03Решатели для замкнутых механизмов и контактных задач с трением
- 04Обрабатывает описания роботов в форматах URDF, SDF, MJCF и SRDF
- 05Привязки к Python, устанавливаемые через Conda или pip
- 06Шаблонная библиотека C++ только из заголовочных файлов с использованием Eigen и coal
Сценарии использования
- Расчёт динамики и градиентов для управления роботами и оптимизации траекторий
- Создание прототипов алгоритмов для роботов на Python с последующим переносом на C++
- Идентификация системы с использованием кинематических и динамических регрессоров
- Создание инструментов для планирования движений или управления всем телом на базе ядра динамики твёрдых тел
Быстрый старт
- 1
Установите Pinocchio через Conda из conda-forge
conda install pinocchio -c conda-forge - 2
Или установите привязки Python через pip (только Linux)
pip install pin - 3
Или запустите образ Docker
docker run --rm -it ghcr.io/stack-of-tasks/pinocchio:devel
Что важно знать
- Пакет pip в настоящее время доступен только для Linux.
- В ветке devel содержится только последний релиз и принимаются новые pull request, поэтому она может часто меняться.
В подборках
Темы
Частые вопросы
- Что такое pinocchio?
- Быстрая header-only библиотека C++ с привязками к Python для динамики и кинематики твёрдых тел, а также их аналитических производных, применяемая в робототехнике. Pinocchio — библиотека C++ для динамики твёрдых тел в многозвенных системах, таких как манипуляторы и гуманоидные роботы. Она реализует прямую и обратную кинематику и динамику, центроидальную динамику, а также аналитические производные этих алгоритмов, полезные для градиентной оптимизации, управления и обучения. Библиотека использует Eigen для линейной алгебры и coal для обнаружения столкновений, а также обрабатывает описания роботов в форматах URDF, SDF, MJCF и SRDF.
- pinocchio можно использовать бесплатно? Какая у него лицензия?
- pinocchio распространяется с открытым исходным кодом под лицензией BSD-2-Clause. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- pinocchio всё ещё поддерживается?
- Активно поддерживается. Последний коммит в pinocchio — 6 нояб. 2026 г..
- Для чего можно использовать pinocchio?
- Расчёт динамики и градиентов для управления роботами и оптимизации траекторий Создание прототипов алгоритмов для роботов на Python с последующим переносом на C++ Идентификация системы с использованием кинематических и динамических регрессоров Создание инструментов для планирования движений или управления всем телом на базе ядра динамики твёрдых тел
- Как установить pinocchio?
- Установите Pinocchio через Conda из conda-forge: conda install pinocchio -c conda-forge Или установите привязки Python через pip (только 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 проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Набор плагинов и навыков, с помощью которого AI-агенты для программирования создают, проверяют и подготавливают CAD-модели к производству по запросам на обычном языке.
Библиотека на чистом Python для кинематики и динамики роботов на базе JAX с JIT-компиляцией и автодифференцированием для быстрой разработки контроллеров.
Bullet Physics SDK — библиотека C++ для обнаружения столкновений и мультифизического моделирования в реальном времени, используемая в играх, VR, робототехнике и машинном обучении.
MindSpore — фреймворк с открытым исходным кодом для обучения и инференса моделей глубокого обучения на мобильных устройствах, периферийных и облачных платформах с нативной поддержкой AI-процессоров Huawei Ascend.
Быстрая и удобная библиотека N-мерных тензоров на Nim с бэкендами для CPU, CUDA и OpenCL, предназначенная для численных вычислений и глубокого обучения.