Repolode
learnsyslab

learnsyslab/gym-pybullet-drones

Ambientes Gymnasium baseados em PyBullet para treinar controladores de aprendizado por reforço para quadricópteros, com um ou vários agentes.

Estrelas
2,201
Forks
578
Issues abertas
111
Último commit
ontem

O que é?

gym-pybullet-drones oferece ambientes de simulação de quadricópteros baseados na física do PyBullet e na API do Gymnasium. Pesquisadores e estudantes podem treinar políticas de aprendizado por reforço para controle de drones individuais ou de vários agentes, em tarefas como pairar, voar em formação e interagir por meio do efeito downwash.

O projeto é uma refatoração simplificada de uma base de código anterior, apresentada no IROS 2021, atualizada para o Gymnasium e o Stable-Baselines3 2.0. Inclui controladores clássicos PID e de velocidade, um controlador adaptativo MRAC e scripts de exemplo para treinar agentes PPO com learn.py e reproduzi-los com play.py.

Também inclui um exemplo de Betaflight SITL no Ubuntu para executar vários controladores de voo simulados com o ambiente.

Recursos principais

  • 01Ambientes Gymnasium compatíveis para quadricópteros com um ou vários agentes
  • 02Baseado na simulação física do PyBullet
  • 03Inclui exemplos de controladores PID, de controle de velocidade e MRAC
  • 04Scripts de treinamento e reprodução com PPO do Stable-Baselines3
  • 05Modelagem do efeito downwash entre drones
  • 06Integração com Betaflight SITL no Ubuntu

Casos de uso

  • Treinar controladores de aprendizado por reforço para fazer quadricópteros pairarem ou seguirem trajetórias
  • Pesquisar a coordenação de vários drones e o voo em formação
  • Testar algoritmos de controle com o firmware Betaflight em configurações software-in-the-loop

Início rápido

  1. 1

    Clone o repositório

    git clone https://github.com/learnsyslab/gym-pybullet-drones.git
  2. 2

    Crie e ative um ambiente conda com Python 3.12

    conda create -n drones python=3.12 && conda activate drones
  3. 3

    Instale o pacote no modo editable

    pip3 install -e .
  4. 4

    Execute um exemplo de controle PID

    cd gym_pybullet_drones/examples/ && python3 pid.py

Antes de usar

  • Para compilar o pybullet com Python 3.11 ou mais recente, pode ser necessário usar um compilador ou uma solução alternativa de CFLAGS específica para macOS.
  • O exemplo do Betaflight SITL funciona somente no Ubuntu.

Em coleções

Tópicos

Perguntas frequentes

O que é gym-pybullet-drones?
Ambientes Gymnasium baseados em PyBullet para treinar controladores de aprendizado por reforço para quadricópteros, com um ou vários agentes. gym-pybullet-drones oferece ambientes de simulação de quadricópteros baseados na física do PyBullet e na API do Gymnasium. Pesquisadores e estudantes podem treinar políticas de aprendizado por reforço para controle de drones individuais ou de vários agentes, em tarefas como pairar, voar em formação e interagir por meio do efeito downwash.
gym-pybullet-drones é gratuito? Qual é a licença?
gym-pybullet-drones é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
gym-pybullet-drones ainda é mantido?
Manutenção ativa. O último commit de gym-pybullet-drones foi em 6 de nov. de 2026.
Para que posso usar gym-pybullet-drones?
Treinar controladores de aprendizado por reforço para fazer quadricópteros pairarem ou seguirem trajetórias Pesquisar a coordenação de vários drones e o voo em formação Testar algoritmos de controle com o firmware Betaflight em configurações software-in-the-loop
Como instalar gym-pybullet-drones?
Clone o repositório: git clone https://github.com/learnsyslab/gym-pybullet-drones.git Crie e ative um ambiente conda com Python 3.12: conda create -n drones python=3.12 && conda activate drones Instale o pacote no modo editable: pip3 install -e . Execute um exemplo de controle PID: cd gym_pybullet_drones/examples/ && python3 pid.py
Onde consigo gym-pybullet-drones?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/learnsyslab/gym-pybullet-drones

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados