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.
gbionics/jaxsim
Motor de física diferenciable de cuerpos rígidos basado en JAX para control, codiseño y aprendizaje de robots.
- Estrellas
- 204
- Forks
- 22
- Issues abiertos
- 8
- Último commit
- hace 4 días
¿Qué es?
JaxSim es un motor de física escrito en Python sobre JAX, pensado para investigadores en robótica que necesitan calcular gradientes a través de la simulación. Usa dinámica multicuerpo en coordenadas reducidas y admite robots con base fija y flotante. Carga modelos SDF y admite URDF mediante conversión con sdformat.
Como la dinámica es diferenciable con respecto a los parámetros del hardware, una misma simulación puede usarse para diseño y optimización basados en gradientes. Las funciones siguen un estilo funcional, por lo que pueden compilarse con JIT y vectorizarse, y ejecutarse en CPU, GPU y TPU. La biblioteca también ofrece algoritmos de dinámica de cuerpos rígidos, como el cálculo de la matriz de masa, las fuerzas de sesgo, los términos de gravedad y Coriolis, y los Jacobianos de los marcos de referencia, con diferenciación automática en modo directo e inverso.
El proyecto es experimental y sus API pueden cambiar entre versiones. Actualmente se centra en la locomoción y solo admite contactos entre cuerpos y superficies de terreno lisas.
Funciones clave
- 01Dinámica diferenciable con respecto a los parámetros del hardware y cinemáticos.
- 02Admite modelos de robots con base fija y flotante.
- 03Carga directamente modelos SDF y modelos URDF mediante conversión con sdformat.
- 04Compilación JIT y vectorización automática con JAX, con ejecución en CPU, GPU y TPU.
- 05Ofrece cálculos de la matriz de masa, las fuerzas de sesgo, la gravedad, Coriolis y los Jacobianos de los marcos de referencia.
Casos de uso
- Optimización basada en gradientes de la morfología o el codiseño de robots.
- Experimentos de aprendizaje de robots que requieren un simulador diferenciable para la locomoción de robots con patas.
- Uso de los algoritmos de dinámica de cuerpos rígidos como biblioteca de dinámica multicuerpo en código JAX.
Inicio rápido
- 1
Instálalo desde PyPI con pip en un entorno virtual
pip install jaxsim - 2
Ejecuta el ejemplo de simulación de iCub de la sección «Cómo usarlo» (requiere tener instalados icub_models y jax)
Antes de usarlo
- Aún es experimental y las API pueden cambiar entre versiones sin previo aviso.
- Solo se admiten colisiones entre cuerpos y superficies de suelo lisas; el enfoque está en la locomoción.
- La compatibilidad con URDF requiere instalar por separado componentes de Gazebo Sim, como sdformat.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es jaxsim?
- Motor de física diferenciable de cuerpos rígidos basado en JAX para control, codiseño y aprendizaje de robots. JaxSim es un motor de física escrito en Python sobre JAX, pensado para investigadores en robótica que necesitan calcular gradientes a través de la simulación. Usa dinámica multicuerpo en coordenadas reducidas y admite robots con base fija y flotante. Carga modelos SDF y admite URDF mediante conversión con sdformat.
- ¿jaxsim es gratuito? ¿Qué licencia tiene?
- jaxsim es open source bajo la licencia BSD-3-Clause. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿jaxsim sigue mantenido?
- Mantenimiento activo. El último commit de jaxsim fue el 2 nov 2026.
- ¿Para qué puedo usar jaxsim?
- Optimización basada en gradientes de la morfología o el codiseño de robots. Experimentos de aprendizaje de robots que requieren un simulador diferenciable para la locomoción de robots con patas. Uso de los algoritmos de dinámica de cuerpos rígidos como biblioteca de dinámica multicuerpo en código JAX.
- ¿Cómo se instala jaxsim?
- Instálalo desde PyPI con pip en un entorno virtual: pip install jaxsim Ejecuta el ejemplo de simulación de iCub de la sección «Cómo usarlo» (requiere tener instalados icub_models y jax)
- ¿Dónde consigo jaxsim?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/gbionics/jaxsim
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Biblioteca de multiphysics en C++ para simular sistemas multicuerpo rígidos y flexibles, medios granulares, interacción fluido-sólido, vehículos y robots.
Biblioteca de código abierto en C++ para simular la dinámica de sistemas articulados, como robots, vehículos y esqueletos humanos.
Biblioteca de física en C++17 con bindings de Python para simular la cinemática, la dinámica y los contactos de robots articulados y personajes animados.
Framework de código abierto para simular y entrenar robots en paralelo en la GPU, basado en SAPIEN y enfocado en habilidades de manipulación.
Framework de simulación a gran escala, basado en robosuite, para entrenar y evaluar robots generalistas en tareas cotidianas de cocina.