learnsyslab/gym-pybullet-drones

PyBullet Gymnasium environments for single and multi-agent reinforcement learning of quadcopter control

gym-pybullet-drones – 4軸ドローン用のGym互換シミュレータ

何であるか

  • PyBullet物理エンジンをラップする軽量なPythonパッケージで、Gymnasium(OpenAI Gymの後継)環境を提供し、単一および複数ドローンの制御に対応。
  • 4軸ドローンの強化学習、古典的制御、システム同定に関する研究を対象とする。
  • PID制御、ダウンウォッシュモデル、およびStable-Baselines3 2.0(PPO)によるRL訓練の実行可能な例が含まれる。
  • オプションでBetaflight SITL統合が可能で、同じ環境を実世界のフライトスタック(シミュレーション内)で駆動できる。

主なコンポーネント

  • gym_pybullet_dronesパッケージには、ドローンの動力学、観測空間、報酬関数を定義するコアのAviaryクラスが含まれる。
  • 例題スクリプト(pid.py, pid_velocity.py, mrac.py, downwash.py, learn.py, play.py, beta.py)は以下の機能を示す:
    • 古典的制御(PID、MRAC)
    • ドローン間の空気力学的ダウンウォッシュ効果
    • 単エージェントおよびマルチエージェントRLの訓練/評価
    • Betaflight SITLとのインターフェース
  • 環境の正しさを検証するためのテストスイート(pytest tests/)
  • GymnasiumおよびStable-Baselines3 2.0との互換性レイヤーにより、現代のRLパイプラインに簡単に統合可能。

インストール(condaベース、Ubuntu 24.04およびmacOS 26対応)

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

conda create -n drones python=3.12
conda activate drones

# pybulletをソースからビルド(Python >3.10必須)
sudo apt install build-essential          # Ubuntuのみ
# macOS: CFLAGS="-Dfdopen=fdopen" pip install pybullet --no-cache-dir
pip install -e .

READMEには、macOSではCFLAGSのハックが必要な場合があると記載。UbuntuではpybulletのビルドにCコンパイラが必要。

例題の実行

# 古典的制御デモ
cd gym_pybullet_drones/examples
python pid.py
python pid_velocity.py
python mrac.py

# ダウンウォッシュ(空気流れ相互作用)デモ
python downwash.py

# 強化学習(単一ドローンホバリング)
python learn.py               # PPOを訓練
python play.py --model_path results/<latest>/best_model.zip

# 複数ドローンRL(2ドローン、異なる高さでホバリング)
python learn.py --multiagent true
python play.py --multiagent true --model_path results/<latest>/best_model.zip

Betaflightソフトウェアインザループデモ(Ubuntuのみ):

./gym_pybullet_drones/assets/clone_bfs.sh 2   # Betaflight SITLバイナリを2つ構築
cd gym_pybullet_drones/examples
python beta.py --num_drones 2

利用可能な用途

  • 物理的に正確な4軸ドローンモデル上で新しいRLアルゴリズムのベンチマーク。
  • マルチエージェント協調、ダウンウォッシュ、フォーメーション飛行の研究。
  • 同じシミュレーション内で古典的制御と学習されたポリシーを比較。
  • ハードウェアへの移行前の迅速なプロトタイピング(Betaflight SITLブリッジは実際のフライトスタックを模倣)。

引用 コードが出版に貢献する場合、以下のIROS 2021論文を引用してください:

@INPROCEEDINGS{panerati2021learning,
  title={Learning to Fly---a Gym Environment with PyBullet Physics for Reinforcement Learning of Multi-agent Quadcopter Control},
  author={Jacopo Panerati and Hehui Zheng and SiQi Zhou and James Xu and Amanda Prorok and Angela P. Schoellig},
  booktitle={2021 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
  year={2021},
  pages={7512-7519},
  doi={10.1109/IROS51168.2021.9635857}
}

関連プロジェクト(READMEに記載)

  • safe-control-gym – 論理的動力学と安全制約付き制御用。
  • crazyflow – JAXベース、微分可能なシミュレーション。
  • aerial-autonomy-stack – 完全なPX4/ArduPilot + ROS2 + JetPackデプロイメント。

結論 gym-pybullet-dronesは、古典的制御、強化学習、実世界フライトスタックテストの橋渡しを果たす実用的で研究レベルのシミュレーション環境です。GitHubのMaintainer Spotlight 2026に選ばれるなど、積極的にメンテナンスされており、明確なインストール手順と例題スクリプトを提供しているため、AI駆動の航空ロボティクスを探索するすべての人にとって良い出発点です。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト