Repolode
StanfordASL

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

    Instale o frax do PyPI com os extras de IK

    pip install "frax[ik]"
  2. 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

#robotics#kinematics#dynamics#jax#autodiff#inverse-kinematics#control

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