Framework en Python y C para simular la dinámica, la guiñanza, la navegación y el control de naves espaciales en misiones de astrodinámica.
StanfordASL/frax
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.
- Estrellas
- 688
- Forks
- 47
- Issues abiertos
- 0
- Último commit
- anteayer
¿Qué es?
frax es una biblioteca de cinemática y dinámica de robots escrita en Python sobre JAX. Calcula términos como la matriz de masa, las transformaciones de articulaciones, eslabones y marcos de referencia, los Jacobianos, el vector de gravedad y las fuerzas de Coriolis, que son los componentes básicos de los controladores de cinemática inversa y dinámica inversa.
Como los cálculos son funciones de JAX, pueden compilarse con JIT, ejecutarse por lotes en GPU o TPU y diferenciarse automáticamente. Así, las restricciones o los términos de costo pueden escribirse como funciones ordinarias del estado del robot, sin tener que derivar los Jacobianos a mano. El proyecto incluye un conjunto integrado de modelos de robots, entre ellos Franka Panda, Kuka iiwa, Unitree G1 y Unitree A2, y carga robots personalizados desde archivos URDF.
La biblioteca también ofrece el módulo frax.ik para cinemática inversa y retargeting, además de ejemplos de IK diferencial, control en espacio operacional y restricciones de seguridad basadas en funciones de barrera de control.
Funciones clave
- 01Calcula la matriz de masa, los Jacobianos y los términos de gravedad y Coriolis para modelos de robots URDF.
- 02Compilación JIT y autodiferenciación de cálculos de cinemática y dinámica mediante JAX.
- 03Cálculos por lotes en GPU y TPU, con precisión doble opcional.
- 04Modelos integrados de Franka Panda, Kuka iiwa, Unitree G1 y A2.
- 05Módulo frax.ik para cinemática inversa y retargeting de humanoides.
Casos de uso
- Crear prototipos en Python de controladores de cinemática inversa diferencial o de espacio operacional.
- Escribir funciones de barrera de control u otras restricciones que dependan de la cinemática del robot.
- Ejecutar cálculos de dinámica por lotes para control basado en muestreo o aprendizaje en aceleradores.
- Transferir datos de movimiento humano a modelos de robots humanoides.
Inicio rápido
- 1
Instala frax desde PyPI con los extras de IK
pip install "frax[ik]" - 2
Calcula la matriz de masas de un modelo de robot integrado en Python
Antes de usarlo
- Requiere JAX; los consejos de rendimiento recomiendan una versión antigua específica de JAX para acelerar la dinámica en CPU.
- Los métodos de colisión requieren un modelo de colisión del robot aproximado mediante esferas.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es frax?
- 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. frax es una biblioteca de cinemática y dinámica de robots escrita en Python sobre JAX. Calcula términos como la matriz de masa, las transformaciones de articulaciones, eslabones y marcos de referencia, los Jacobianos, el vector de gravedad y las fuerzas de Coriolis, que son los componentes básicos de los controladores de cinemática inversa y dinámica inversa.
- ¿frax es gratuito? ¿Qué licencia tiene?
- frax es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿frax sigue mantenido?
- Mantenimiento activo. El último commit de frax fue el 4 nov 2026.
- ¿Para qué puedo usar frax?
- Crear prototipos en Python de controladores de cinemática inversa diferencial o de espacio operacional. Escribir funciones de barrera de control u otras restricciones que dependan de la cinemática del robot. Ejecutar cálculos de dinámica por lotes para control basado en muestreo o aprendizaje en aceleradores. Transferir datos de movimiento humano a modelos de robots humanoides.
- ¿Cómo se instala frax?
- Instala frax desde PyPI con los extras de IK: pip install "frax[ik]" Calcula la matriz de masas de un modelo de robot integrado en Python
- ¿Dónde consigo frax?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/StanfordASL/frax
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
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.
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.
Bullet Physics SDK es una biblioteca de C++ para detección de colisiones en tiempo real y simulación multifísica, usada en juegos, VR, robótica y aprendizaje automático.
Entornos de Gymnasium basados en PyBullet para entrenar controladores de aprendizaje por refuerzo para cuadricópteros, con uno o varios agentes.
Simulador de UAV multirrotor en Python con aerodinámica de parámetros concentrados, diseñado para la enseñanza y la investigación en estimación, planificación y control.