Um mecanismo de física diferenciável de corpos rígidos, desenvolvido com JAX para controle de robôs, co-design e aprendizado robótico.
stack-of-tasks/pinocchio
Biblioteca C++ rápida e header-only, com bindings para Python, para dinâmica de corpos rígidos, cinemática e suas derivadas analíticas, voltada à robótica.
- Estrelas
- 3,850
- Forks
- 592
- Issues abertas
- 104
- Último commit
- há 16 horas
O que é?
Pinocchio é uma biblioteca C++ para dinâmica de corpos rígidos de sistemas poliarticulados, como braços robóticos e humanoides. Ela implementa cinemática e dinâmica direta e inversa, dinâmica centroidal e as derivadas analíticas desses algoritmos, úteis em otimização baseada em gradientes, controle e aprendizado. A biblioteca usa Eigen para álgebra linear e coal para detecção de colisões, e interpreta descrições de robôs nos formatos URDF, SDF, MJCF e SRDF.
A biblioteca é header-only e implementada como uma biblioteca de templates C++; também oferece uma interface para Python que pode ser instalada com Conda ou pip. Ela também dá suporte a mecanismos de circuito fechado, solvers de contato com atrito, dinâmica com restrições e aritmética de precisão múltipla via MPFR. O CppAD e o CasADi permitem diferenciação automática.
Pinocchio é desenvolvido pela equipe Willow, do Inria, e serve de base para projetos como Crocoddyl, Aligator e Humanoid Path Planner. Foi projetado para robótica, mas também pode ser usado em biomecânica, computação gráfica e visão computacional.
Recursos principais
- 01Dinâmica direta e inversa com derivadas analíticas
- 02Dinâmica centroidal e regressores cinemáticos e dinâmicos
- 03Solvers para mecanismos de circuito fechado e contato com atrito
- 04Interpreta descrições de robôs em URDF, SDF, MJCF e SRDF
- 05Bindings para Python instaláveis via Conda ou pip
- 06Biblioteca de templates C++ header-only com Eigen e coal
Casos de uso
- Calcular dinâmica e gradientes para controle de robôs e otimização de trajetórias
- Prototipar algoritmos de robótica em Python antes de migrá-los para C++
- Identificar sistemas usando regressores cinemáticos e dinâmicos
- Criar ferramentas de planejamento de movimento ou controle de corpo inteiro sobre uma base de dinâmica de corpos rígidos
Início rápido
- 1
Instale o Pinocchio via Conda pelo conda-forge
conda install pinocchio -c conda-forge - 2
Ou instale os bindings de Python via pip (somente Linux)
pip install pin - 3
Ou execute a imagem Docker
docker run --rm -it ghcr.io/stack-of-tasks/pinocchio:devel
Antes de usar
- O pacote pip está disponível atualmente apenas no Linux.
- A branch devel contém apenas a versão mais recente e recebe novos pull requests, por isso pode mudar com frequência.
Em coleções
Tópicos
Perguntas frequentes
- O que é pinocchio?
- Biblioteca C++ rápida e header-only, com bindings para Python, para dinâmica de corpos rígidos, cinemática e suas derivadas analíticas, voltada à robótica. Pinocchio é uma biblioteca C++ para dinâmica de corpos rígidos de sistemas poliarticulados, como braços robóticos e humanoides. Ela implementa cinemática e dinâmica direta e inversa, dinâmica centroidal e as derivadas analíticas desses algoritmos, úteis em otimização baseada em gradientes, controle e aprendizado. A biblioteca usa Eigen para álgebra linear e coal para detecção de colisões, e interpreta descrições de robôs nos formatos URDF, SDF, MJCF e SRDF.
- pinocchio é gratuito? Qual é a licença?
- pinocchio é open source sob a licença BSD-2-Clause. Confira os termos da licença antes de usá-lo em produtos comerciais.
- pinocchio ainda é mantido?
- Manutenção ativa. O último commit de pinocchio foi em 6 de nov. de 2026.
- Para que posso usar pinocchio?
- Calcular dinâmica e gradientes para controle de robôs e otimização de trajetórias Prototipar algoritmos de robótica em Python antes de migrá-los para C++ Identificar sistemas usando regressores cinemáticos e dinâmicos Criar ferramentas de planejamento de movimento ou controle de corpo inteiro sobre uma base de dinâmica de corpos rígidos
- Como instalar pinocchio?
- Instale o Pinocchio via Conda pelo conda-forge: conda install pinocchio -c conda-forge Ou instale os bindings de Python via pip (somente Linux): pip install pin Ou execute a imagem Docker: docker run --rm -it ghcr.io/stack-of-tasks/pinocchio:devel
- Onde consigo pinocchio?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/stack-of-tasks/pinocchio
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Plugin e conjunto de skills que permitem a agentes de programação com IA gerar, verificar e fabricar modelos CAD a partir de solicitações em linguagem natural.
Biblioteca em Python puro para cinemática e dinâmica de robôs baseada em JAX, com compilação JIT e autodiferenciação para projetar controladores com rapidez.
Bullet Physics SDK é uma biblioteca C++ para detecção de colisões em tempo real e simulação multifísica, usada em jogos, VR, robótica e machine learning.
MindSpore é um framework open source de deep learning para treinamento e inferência em cenários mobile, edge e cloud, com suporte nativo aos processadores AI Huawei Ascend.
Uma biblioteca rápida e ergonômica de tensores N-dimensional em Nim, com backends para CPU, CUDA e OpenCL, voltada à computação numérica e ao deep learning.