learnsyslab/gym-pybullet-drones
PyBullet Gymnasium environments for single and multi-agent reinforcement learning of quadcopter control
gym-pybullet-drones – 与 Gym 兼容的四轴无人机模拟器
是什么
- 一个轻量级的 Python 包,封装了 PyBullet 物理引擎,为单无人机和多无人机控制提供 Gymnasium(OpenAI Gym 的继任者)环境。
- 面向四轴无人机的强化学习、经典控制和系统辨识研究。
- 包含可直接运行的 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)
- 无人机之间的气动下洗效应
- 单智能体和多智能体强化学习训练/评估
- 与 Betaflight SITL 的接口
- 测试套件(
pytest tests/)用于验证环境正确性。 - 与 Gymnasium 和 Stable-Baselines3 2.0 的兼容层,便于集成到现代强化学习流水线中。
安装(基于 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 上必须安装 C 编译器以构建 pybullet。
运行示例
# 经典控制演示
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(两架无人机在不同高度悬停)
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 二进制文件
cd gym_pybullet_drones/examples
python beta.py --num_drones 2
可应用于
- 在物理精确的四轴无人机模型上对新强化学习算法进行基准测试。
- 研究多智能体协作、下洗流和编队飞行。
- 在同一仿真环境中比较经典控制器与学习策略。
- 在转向硬件前进行快速原型设计(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 驱动航空机器人学的绝佳起点。
相关
- 项目
- 项目
- 项目
- 项目
- 项目