自动化与运维 quadcopter-simulationreinforcement-learningpybulletgymnasiummulti-agent-rlsitlstable-baselines3

gym-pybullet-drones:四旋翼强化学习环境

基于PyBullet物理引擎、兼容Gymnasium的多智能体四旋翼控制强化学习环境。

FollowAgents 评估 · FARS-2.1
不推荐
42/ 100 五分制 2.1 / 5
1 2 3 4 5 6
1信任安全1 / 29 · 0.2/5

证据显示:仓库未包含任何权限声明、用户确认机制、数据流说明或敏感数据处理策略;依赖项未进行安全审计,外部效果(如网络访问)未说明,回滚机制未提及。来源归属方面,README和pyproject.toml明确列出了作者和机构,但发布者身份未经验证。因此,除来源归属外,其余标准均因缺乏证据而评为0。

2可靠稳定8 / 14 · 2.9/5

证据显示:README中的安装和使用说明与pyproject.toml中的依赖声明一致,测试文件与示例对应,自洽性较好。依赖项均为常见库,但未提供版本锁定或安全审计,依赖可用性一般。失败消息方面,README和代码中未提供详细的错误处理或故障排除信息,仅有一个简短的Troubleshooting注释,因此评为1。

3适用触发10 / 18 · 2.8/5

证据显示:README明确面向研究者和开发者,提供了多种使用场景(PID控制、强化学习、SITL等),受众和场景覆盖较好。能力边界在README中通过示例和说明有所体现,但未明确列出所有限制。触发精度方面,示例命令清晰,但未提供详细的参数说明或配置选项,评为1。环境适配方面,README提到了Ubuntu和macOS,但未详细说明其他平台或硬件要求,评为2。

4规范维护10 / 18 · 2.8/5

证据显示:README结构清晰,包含安装、使用、测试、引用等部分,信息架构良好。安装说明详细,包括conda和pip步骤。命名稳定,包名和模块名一致。示例丰富,但FAQ缺失。已知限制在README的WIP部分有提及,但未系统化。许可证为MIT,版本号在pyproject.toml中为2.1.0,但未提供CHANGELOG。维护责任在README中通过作者和机构信息有所体现,但未明确说明维护策略。

5有效结果9 / 13 · 3.5/5

证据显示:输出可用性方面,示例脚本和测试提供了可运行的代码,但未提供详细的输出格式说明。边际价值方面,该仓库提供了独特的PyBullet无人机仿真环境,具有较高的研究价值。成本效益方面,安装和使用成本较低,但未提供性能基准或资源需求说明。

6证据核验4 / 8 · 2.5/5

证据显示:README中的声明(如兼容性、功能)与代码和测试文件基本一致,可追溯性较好。跨来源验证方面,仅依赖单一仓库,未提供外部验证。事实与推断分离方面,README明确区分了事实(如安装步骤)和推断(如推荐其他工具),但未明确标注。

证据充分度: 评估于 2026年8月9日 审查版本 e712698a05a8
上游仓库在本次评估后已有新提交;当前评分仍对应所示审查版本,可能尚未覆盖最新改动。
源码中未见的安全控制:最小权限约束、执行前用户确认、数据流向说明、敏感信息处理、依赖安全审查、外部影响披露、回滚或恢复路径
使用前请注意
  • 发布者身份未经验证,应视为未知,不要基于品牌信任。
  • 依赖项未进行安全审计,且未固定版本,存在供应链风险。
  • 未提供数据流或权限说明,若用于敏感环境需谨慎。
  • 未提供回滚机制,更新可能带来不兼容变化。
评估证据 [1][2][3][4][5][6]
查看完整评分方法 →

这个 Agent 能做什么,适合哪些场景?

gym-pybullet-drones 是原始仓库的精简重构,提供基于 PyBullet 物理引擎的 Gymnasium 环境,用于单智能体和多智能体四旋翼控制强化学习。它支持与 Stable-Baselines3 2.0 及 Betaflight/Crazyflie 固件的 SITL 仿真集成,并包含 PID 控制、下洗效应和强化学习示例。该环境在 IROS 2021 论文中提出,并已获得 GitHub 维护者聚焦。安装需通过 conda 创建 Python 3.10 环境并安装依赖,支持 Ubuntu 和 macOS,但 Betaflight SITL 示例仅限 Ubuntu。

该仓库提供 Gymnasium 环境(如 gym-pybullet-drones),用于四旋翼控制任务。它通过 PyBullet 物理引擎进行仿真,支持单智能体和多智能体(如双无人机悬停)场景。包含 PID 控制示例(pid.pypid_velocity.py)、下洗效应示例(downwash.py)和强化学习示例(learn.pyplay.py),其中 learn.py 使用 Stable-Baselines3 的 PPO 训练策略。还提供与 Betaflight SITL(通过 beta.py)和 pycffirmware(cf.py)的集成,用于固件仿真。所有示例均通过命令行运行,并支持 pytest tests/ 运行测试。

  1. 研究人员在四旋翼控制算法开发中,使用该环境进行单智能体悬停或轨迹跟踪的强化学习实验。
  2. 多智能体系统研究者利用 --multiagent true 选项,模拟多无人机协同任务,如不同高度的悬停控制。
  3. 控制工程师通过 PID 示例快速验证位置和速度控制算法,进行参数调整。
  4. 对 Betaflight 固件感兴趣的用户,在 Ubuntu 上通过 SITL 仿真测试控制算法与真实固件的交互。
  5. 教育场景中,用于教学强化学习和多智能体控制,结合 Stable-Baselines3 进行实验。

这个 Agent 有哪些优点和局限?

优点
  • 基于 PyBullet 的物理仿真,提供真实的动力学交互。
  • 兼容 Gymnasium 和 Stable-Baselines3 2.0,便于集成现有 RL 工具链。
  • 支持单智能体和多智能体场景,覆盖多种研究需求。
  • 提供 PID 和 RL 示例,降低入门门槛。
局限
  • Betaflight SITL 示例仅支持 Ubuntu,限制了跨平台部署。
  • 需要 conda 环境管理,对环境配置有一定要求。
  • 依赖 PyBullet,可能对 GPU 和 OpenGL 上下文有要求(如 NVIDIA 双显卡需切换模式)。
  • 当前为重构版本,与原始 IROS 2021 代码库存在差异,需切换分支以获取原版。

如何安装或部署这个 Agent?

克隆仓库并创建 conda 环境(Python 3.10):

git clone https://github.com/learnsyslab/gym-pybullet-drones.git
cd gym-pybullet-drones/
conda create -n drones python=3.10
conda activate drones
pip install -e .

若需构建 pybullet,可能需要安装 build-essential

如何使用这个 Agent?

进入示例目录并运行脚本:

cd gym_pybullet_drones/examples/
python pid.py
python learn.py
python learn.py --multiagent true
LATEST_MODEL=$(ls -t results | head -n 1) && python play.py --model_path "results/${LATEST_MODEL}/best_model.zip"

运行测试:pytest tests/。Betaflight SITL 示例需额外构建 Betaflight 固件并运行 beta.py

常见问题

是否支持 Windows 或 macOS?
仓库声明在 Ubuntu 22.04 和 macOS 26.2 上测试通过,但 Betaflight SITL 示例仅限 Ubuntu。Windows 未提及,可能需要自行适配。
是否需要 GPU 才能运行?
不需要 GPU,但使用 NVIDIA 显卡的 Ubuntu 用户可能遇到 OpenGL 上下文错误,需要调整 PRIME 模式。
如何获取原始论文版本?
使用 git checkout paper 命令切换到原始代码库。
是否支持多智能体训练?
是的,learn.py --multiagent true 提供了双无人机悬停示例。

相关 Agents