Repolode
stack-of-tasks

stack-of-tasks/pinocchio

Una biblioteca C++ rápida y header-only, con bindings de Python, para dinámica de cuerpos rígidos, cinemática y sus derivadas analíticas, utilizada en robótica.

Estrellas
3,850
Forks
592
Issues abiertos
104
Último commit
hace 20 horas

¿Qué es?

Pinocchio es una biblioteca C++ para la dinámica de cuerpos rígidos de sistemas con múltiples articulaciones, como brazos robóticos y humanoides. Implementa cinemática y dinámica directas e inversas, dinámica centroidal y las derivadas analíticas de estos algoritmos, útiles para la optimización basada en gradientes, el control y el aprendizaje. Se basa en Eigen para el álgebra lineal y en coal para la detección de colisiones, y analiza descripciones de robots en formatos URDF, SDF, MJCF y SRDF.

La biblioteca es header-only y está implementada como una biblioteca de plantillas de C++; además, incluye una interfaz de Python que se puede instalar con Conda o pip. También admite mecanismos de lazo cerrado, solucionadores de contacto con fricción, dinámica con restricciones y aritmética de precisión múltiple mediante MPFR. La diferenciación automática está disponible a través de CppAD y CasADi.

Pinocchio está desarrollado por el equipo Willow de Inria y sirve de base para proyectos como Crocoddyl, Aligator y Humanoid Path Planner. Se diseñó para la robótica, pero también puede aplicarse en biomecánica, gráficos por computadora y visión artificial.

Funciones clave

  • 01Dinámica directa e inversa con derivadas analíticas
  • 02Dinámica centroidal y regresores cinemáticos y dinámicos
  • 03Mecanismos de lazo cerrado y solucionadores de contacto con fricción
  • 04Analiza descripciones de robots en formatos URDF, SDF, MJCF y SRDF
  • 05Bindings de Python instalables mediante Conda o pip
  • 06Biblioteca de plantillas C++ header-only basada en Eigen y coal

Casos de uso

  • Calcular la dinámica y los gradientes para el control de robots y la optimización de trayectorias
  • Prototipar algoritmos robóticos en Python antes de pasarlos a C++
  • Identificar sistemas mediante regresores cinemáticos y dinámicos
  • Crear herramientas de planificación de movimiento o control de cuerpo completo sobre un núcleo de dinámica de cuerpos rígidos

Inicio rápido

  1. 1

    Instala Pinocchio mediante Conda desde conda-forge

    conda install pinocchio -c conda-forge
  2. 2

    O instala los enlaces de Python mediante pip (solo Linux)

    pip install pin
  3. 3

    O ejecuta la imagen de Docker

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

Antes de usarlo

  • El paquete de pip solo está disponible actualmente en Linux.
  • La rama devel solo contiene la versión más reciente y recibe nuevas solicitudes de extracción, por lo que puede cambiar con frecuencia.

En colecciones

Temas

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

Preguntas frecuentes

¿Qué es pinocchio?
Una biblioteca C++ rápida y header-only, con bindings de Python, para dinámica de cuerpos rígidos, cinemática y sus derivadas analíticas, utilizada en robótica. Pinocchio es una biblioteca C++ para la dinámica de cuerpos rígidos de sistemas con múltiples articulaciones, como brazos robóticos y humanoides. Implementa cinemática y dinámica directas e inversas, dinámica centroidal y las derivadas analíticas de estos algoritmos, útiles para la optimización basada en gradientes, el control y el aprendizaje. Se basa en Eigen para el álgebra lineal y en coal para la detección de colisiones, y analiza descripciones de robots en formatos URDF, SDF, MJCF y SRDF.
¿pinocchio es gratuito? ¿Qué licencia tiene?
pinocchio es open source bajo la licencia BSD-2-Clause. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿pinocchio sigue mantenido?
Mantenimiento activo. El último commit de pinocchio fue el 6 nov 2026.
¿Para qué puedo usar pinocchio?
Calcular la dinámica y los gradientes para el control de robots y la optimización de trayectorias Prototipar algoritmos robóticos en Python antes de pasarlos a C++ Identificar sistemas mediante regresores cinemáticos y dinámicos Crear herramientas de planificación de movimiento o control de cuerpo completo sobre un núcleo de dinámica de cuerpos rígidos
¿Cómo se instala pinocchio?
Instala Pinocchio mediante Conda desde conda-forge: conda install pinocchio -c conda-forge O instala los enlaces de Python mediante pip (solo Linux): pip install pin O ejecuta la imagen de Docker: docker run --rm -it ghcr.io/stack-of-tasks/pinocchio:devel
¿Dónde consigo pinocchio?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/stack-of-tasks/pinocchio

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados

Biblioteca de Python puro para cinemática y dinámica de robots basada en JAX, con compilación JIT y autodiferenciación para diseñar controladores rápidamente.

IA y Machine Learning#robotics#kinematics#dynamics
688+74 esta semana47PythonMITBien mantenidoActualizado hace 3 días