Repolode
learnsyslab

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

    Instale a versão para CPU pelo PyPI

    pip install crazyflow
  2. 2

    Instale a versão para GPU (Linux x86-64, CUDA 12)

    pip install "crazyflow[gpu]"
  3. 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