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

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

Star 数
★ 2.2k
最近更新
2 天前
License
MIT
主语言
Python

30 秒速览

运行形态
命令行工具代码库 / SDK
可在哪里用
平台专用
费用
免费,无需付费服务
上手难度
中 · 需要几步配置
开始前需要
Python 3.10PyBulletGymnasiumStable-Baselines3condaShell / 命令行网络访问
典型场景
研究人员在四旋翼控制算法开发中,使用该环境进行单智能体悬停或轨迹跟踪的强化学习实验。
不适合
  • 需要跨平台运行 Betaflight SITL 示例的用户(仅支持 Ubuntu)
  • 不愿使用 conda 管理环境的团队
  • 在无 OpenGL/GPU 上下文支持的 NVIDIA 系统上部署的用户

这个 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.py、pid_velocity.py)、下洗效应示例(downwash.py)和强化学习示例(learn.py、play.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?

克隆仓库并创建 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。

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

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

这个 Agent 与同类方案有什么区别?

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
gym-pybullet-drones:四旋翼强化学习环境 当前 42 · 缺口较多 命令行工具免费 ★ 2.2k 2 天前 Python —
Mobile-Agent:多平台GUI智能体系列 29 · 缺口较多 云服务 / SaaS免费版 + 付费版 ★ 9.3k 3 个月前 Python —
GOD 智能体社会控制室 60 · 存在缺口 命令行工具免费 + 模型费 ★ 1.2k 16 天前 Python OpenAI API
LoopX 长任务控制平面 84 · 表现良好 命令行工具免费 + 模型费 ★ 6.4k 今天 Python Codex

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
缺口较多
42/ 100 五分制 2.1 / 5
信任安全 1/29
可靠稳定 8/14
适用触发 10/18
规范维护 10/18
有效结果 9/13
证据核验 4/8
查看各维度的扣分理由
信任安全1 / 29 · 0.2/5

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

可靠稳定8 / 14 · 2.9/5

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

适用触发10 / 18 · 2.8/5

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

规范维护10 / 18 · 2.8/5

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

有效结果9 / 13 · 3.5/5

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

证据核验4 / 8 · 2.5/5

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

风险与缓解建议
  • 源码中未见:最小权限约束只授予完成任务所需的权限:用专用账号或只读令牌,并限定可访问的目录和仓库。
  • 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
  • 源码中未见:数据流向说明运行时观察它连接了哪些外部服务(代理或防火墙日志);弄清数据去向之前不要输入敏感数据。
  • 源码中未见:敏感信息处理使用专用、低权限、可随时吊销的 API 密钥,不要复用生产凭据,也不要让密钥出现在日志里。
  • 源码中未见:依赖安全审查安装前固定版本并做一次依赖扫描(如 npm audit、pip-audit);优先放在容器里运行。
  • 源码中未见:外部影响披露先弄清它会写入、发送或修改哪些外部系统,用测试账号或测试仓库验证后再接入正式环境。
  • 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
  • 发布者身份未经验证,应视为未知,不要基于品牌信任。
  • 依赖项未进行安全审计,且未固定版本,存在供应链风险。
  • 未提供数据流或权限说明,若用于敏感环境需谨慎。
  • 未提供回滚机制,更新可能带来不兼容变化。
证据充分度:低 评估于 2026年8月9日 审查版本 e712698a05a8 评估后仓库已有新提交,评分可能未覆盖最新改动
查看完整评分方法 →

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. v1.0.0

常见问题

是否支持 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 提供了双无人机悬停示例。
在 GitHub 查看 ↗ 安装 ↓

相关 Agents