Framework em Python e C para simular a dinâmica, a orientação, a navegação e o controle de espaçonaves em missões de astrodinâmica.
StanfordASL/frax
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.
- Estrelas
- 688
- Forks
- 47
- Issues abertas
- 0
- Último commit
- há 3 dias
O que é?
frax é uma biblioteca de cinemática e dinâmica de robôs escrita em Python sobre JAX. Ela calcula termos como a matriz de massa, transformações de juntas, elos e frames, Jacobianos, vetor gravitacional e forças de Coriolis — elementos básicos de controladores de cinemática inversa e dinâmica inversa.
Como os cálculos são funções do JAX, eles podem ser compilados com JIT, executados em lote em GPU ou TPU e diferenciados automaticamente. Assim, é possível escrever restrições ou termos de custo como funções comuns do estado do robô, sem derivar Jacobianos manualmente. O projeto inclui um conjunto de modelos de robôs, entre eles Franka Panda, Kuka iiwa, Unitree G1 e Unitree A2, e carrega robôs personalizados a partir de arquivos URDF.
A biblioteca também oferece o módulo frax.ik para cinemática inversa e retargeting, além de exemplos de IK diferencial, controle de espaço operacional e restrições de segurança baseadas em funções de barreira de controle.
Recursos principais
- 01Calcula a matriz de massa, Jacobianos, gravidade e termos de Coriolis para modelos de robôs em URDF.
- 02Compilação JIT e autodiferenciação de cálculos de cinemática e dinâmica via JAX.
- 03Cálculos em lote em GPU e TPU, com suporte opcional a precisão dupla.
- 04Modelos integrados de Franka Panda, Kuka iiwa, Unitree G1 e A2.
- 05Módulo frax.ik para cinemática inversa e retargeting de humanoides.
Casos de uso
- Prototipar controladores de cinemática inversa diferencial ou de espaço operacional em Python.
- Criar funções de barreira de controle ou outras restrições que dependem da cinemática do robô.
- Executar cálculos de dinâmica em lote para controle baseado em amostragem ou aprendizado em aceleradores.
- Fazer retargeting de dados de movimento humano para modelos de robôs humanoides.
Início rápido
- 1
Instale o frax do PyPI com os extras de IK
pip install "frax[ik]" - 2
Calcule a matriz de massa de um modelo de robô integrado em Python
Antes de usar
- Requer JAX; as dicas de desempenho recomendam uma versão antiga específica do JAX para acelerar a dinâmica na CPU.
- Os métodos de colisão exigem um modelo de colisão do robô aproximado por esferas.
Em coleções
Tópicos
Perguntas frequentes
- O que é frax?
- 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. frax é uma biblioteca de cinemática e dinâmica de robôs escrita em Python sobre JAX. Ela calcula termos como a matriz de massa, transformações de juntas, elos e frames, Jacobianos, vetor gravitacional e forças de Coriolis — elementos básicos de controladores de cinemática inversa e dinâmica inversa.
- frax é gratuito? Qual é a licença?
- frax é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- frax ainda é mantido?
- Manutenção ativa. O último commit de frax foi em 4 de nov. de 2026.
- Para que posso usar frax?
- Prototipar controladores de cinemática inversa diferencial ou de espaço operacional em Python. Criar funções de barreira de controle ou outras restrições que dependem da cinemática do robô. Executar cálculos de dinâmica em lote para controle baseado em amostragem ou aprendizado em aceleradores. Fazer retargeting de dados de movimento humano para modelos de robôs humanoides.
- Como instalar frax?
- Instale o frax do PyPI com os extras de IK: pip install "frax[ik]" Calcule a matriz de massa de um modelo de robô integrado em Python
- Onde consigo frax?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/StanfordASL/frax
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
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.
Biblioteca de física em C++17 com bindings para Python, voltada à cinemática, dinâmica e simulação de contato de robôs articulados e personagens animados.
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.
Ambientes Gymnasium baseados em PyBullet para treinar controladores de aprendizado por reforço para quadricópteros, com um ou vários agentes.
Simulador de UAVs multirrotores em Python com aerodinâmica de parâmetros concentrados, voltado ao ensino e à pesquisa em estimação, planejamento e controle.