Repolode
stack-of-tasks

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. 1

    Установите Pinocchio через Conda из conda-forge

    conda install pinocchio -c conda-forge
  2. 2

    Или установите привязки Python через pip (только Linux)

    pip install pin
  3. 3

    Или запустите образ Docker

    docker run --rm -it ghcr.io/stack-of-tasks/pinocchio:devel

Что важно знать

  • Пакет pip в настоящее время доступен только для Linux.
  • В ветке devel содержится только последний релиз и принимаются новые pull request, поэтому она может часто меняться.

В подборках

Темы

#robotics#rigid-body-dynamics#kinematics#c-plus-plus#python#automatic-differentiation#urdf#optimization#analytical-derivatives#casadi

Частые вопросы

Что такое 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-модели к производству по запросам на обычном языке.

25,7 тыс.+1,4 тыс. за неделю2,4 тыс.PythonMITОбновлён позавчера

Библиотека на чистом Python для кинематики и динамики роботов на базе JAX с JIT-компиляцией и автодифференцированием для быстрой разработки контроллеров.

688+74 за неделю47PythonMITАктивно поддерживаетсяОбновлён 3 дня назад

Bullet Physics SDK — библиотека C++ для обнаружения столкновений и мультифизического моделирования в реальном времени, используемая в играх, VR, робототехнике и машинном обучении.

14,8 тыс.+11 за неделю3,1 тыс.C++OtherОбновлён 29 дней назад

MindSpore — фреймворк с открытым исходным кодом для обучения и инференса моделей глубокого обучения на мобильных устройствах, периферийных и облачных платформах с нативной поддержкой AI-процессоров Huawei Ascend.

4,7 тыс.+4 за неделю746C++Apache-2.0Обновлён 10 дней назад