Repolode
stack-of-tasks

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

    Instale o Pinocchio via Conda pelo conda-forge

    conda install pinocchio -c conda-forge
  2. 2

    Ou instale os bindings de Python via pip (somente Linux)

    pip install pin
  3. 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

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

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

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.

IA e Machine Learning#robotics#kinematics#dynamics
688+74 esta semana47PythonMITBem mantidoAtualizado há 3 dias