Um mecanismo de física de corpos rígidos baseado em JAX, com simulação diferenciável e massivamente paralela em aceleradores para pesquisa em robótica e RL.
learnsyslab/crazyflow
Simulador de quadricópteros baseado em JAX que executa simulações diferenciáveis em lote, na CPU e na GPU, para drones Crazyflie 2.x.
- Estrelas
- 200
- Forks
- 49
- Issues abertas
- 9
- Último commit
- há 14 horas
O que é?
Crazyflow é um simulador de pesquisa para drones quadricópteros. Desenvolvido com JAX, ele executa em paralelo muitos ambientes independentes e enxames de vários drones na CPU ou na GPU, sendo adequado para treinamentos e experimentos em larga escala em aprendizado e controle de robôs.
O simulador oferece dois tipos de dinâmica para a família Crazyflie 2.x: equações baseadas em primeiros princípios, com parâmetros identificados a partir de medições no mundo real, e dinâmicas simplificadas e abstratas em três variantes ajustadas com dados de voos reais. Como o pipeline é diferenciável, os gradientes podem se propagar por toda a cadeia de dinâmica e controle com jax.grad. As funções de step e reset são funções JAX comuns, que os usuários podem estender ou substituir.
A integração com MuJoCo via MJX oferece renderização na tela e fora dela, raycasting e detecção de contato.
Recursos principais
- 01Simulação em lote de vários mundos e enxames de drones simultaneamente
- 02Execução na CPU, com aceleração opcional por GPU com CUDA 12
- 03Pipeline de dinâmica e controle diferenciável via jax.grad
- 04Modelos de dinâmica baseados em primeiros princípios e abstratos para Crazyflie 2.x
- 05Pipelines modulares de step e reset compostos por funções JAX comuns
- 06Integração com MuJoCo para renderização, raycasting e detecção de contato
Casos de uso
- Treinar políticas de aprendizado por reforço ou de controle em milhares de ambientes de drones paralelos
- Executar simulações de enxames grandes, com vários drones por mundo
- Desenvolver ajustes de controladores baseados em gradientes ou identificação de sistemas para a dinâmica de drones
- Criar protótipos de algoritmos de controle para Crazyflie antes de voar com hardware real
Início rápido
- 1
Instale a versão para CPU pelo PyPI
pip install crazyflow - 2
Instale a versão para GPU (Linux x86-64, CUDA 12)
pip install "crazyflow[gpu]" - 3
Consulte a documentação para ver exemplos e o guia do usuário
Antes de usar
- A instalação para GPU é limitada a Linux x86-64 com CUDA 12.
- A documentação está hospedada externamente em learnsyslab.github.io/crazyflow.
Em coleções
Tópicos
Perguntas frequentes
- O que é crazyflow?
- Simulador de quadricópteros baseado em JAX que executa simulações diferenciáveis em lote, na CPU e na GPU, para drones Crazyflie 2.x. Crazyflow é um simulador de pesquisa para drones quadricópteros. Desenvolvido com JAX, ele executa em paralelo muitos ambientes independentes e enxames de vários drones na CPU ou na GPU, sendo adequado para treinamentos e experimentos em larga escala em aprendizado e controle de robôs.
- crazyflow é gratuito? Qual é a licença?
- crazyflow é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- crazyflow ainda é mantido?
- Manutenção ativa. O último commit de crazyflow foi em 6 de nov. de 2026.
- Para que posso usar crazyflow?
- Treinar políticas de aprendizado por reforço ou de controle em milhares de ambientes de drones paralelos Executar simulações de enxames grandes, com vários drones por mundo Desenvolver ajustes de controladores baseados em gradientes ou identificação de sistemas para a dinâmica de drones Criar protótipos de algoritmos de controle para Crazyflie antes de voar com hardware real
- Como instalar crazyflow?
- Instale a versão para CPU pelo PyPI: pip install crazyflow Instale a versão para GPU (Linux x86-64, CUDA 12): pip install "crazyflow[gpu]" Consulte a documentação para ver exemplos e o guia do usuário
- Onde consigo crazyflow?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/learnsyslab/crazyflow
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Ambientes Gymnasium baseados em PyBullet para treinar controladores de aprendizado por reforço para quadricópteros, com um ou vários agentes.
Framework Python que compila funções Python comuns com JIT em kernels executados na CPU ou em GPUs NVIDIA, para simulação, robótica e ML.
Framework baseado no NVIDIA Isaac Sim para simular drones multirrotores, com integração aos pilotos automáticos PX4 e ArduPilot e uma interface de controle em Python.
Simulador baseado em Unreal Engine para drones, carros e outros veículos, ampliado pela Cosys-Lab com novos modelos de sensores e APIs.
Benchmark de aprendizado por imitação para controle de corpo inteiro, com ambientes MuJoCo e MJX para humanoides, quadrúpedes e modelos musculoesqueléticos humanos.