这是对原始 gym-pybullet-drones
仓库的一个极简重构,旨在与 gymnasium
、stable-baselines3
2.0 和 SITL betaflight
/crazyflie-firmware
兼容。
注意:如果您更喜欢访问原始代码库(在2021年IROS会议上展示),请在克隆仓库后执行
git checkout [paper|master]
,并参考相应的README.md
文件。
<img src="https://yellow-cdn.veclightyear.com/0a4dffa0/69362a74-b8bb-42f3-b269-c09df5a2ba38.gif" alt="编队飞行" width="325"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/577d6021-d515-49eb-8ab4-4e0aa68345ef.png" alt="控制信息" width="425">
在 Intel x64/Ubuntu 22.04 和 Apple Silicon/macOS 14.1 上测试通过。
git clone https://github.com/utiasDSL/gym-pybullet-drones.git cd gym-pybullet-drones/ conda create -n drones python=3.10 conda activate drones pip3 install --upgrade pip pip3 install -e . # 如果需要,执行 `sudo apt install build-essential` 以安装 `gcc` 并构建 `pybullet`
cd gym_pybullet_drones/examples/ python3 pid.py # 位置和速度参考 python3 pid_velocity.py # 期望速度参考
cd gym_pybullet_drones/examples/ python3 downwash.py
cd gym_pybullet_drones/examples/ python learn.py # 任务:单架无人机悬停在 z == 1.0 python learn.py --multiagent true # 任务:2架无人机分别悬停在 z == 1.2 和 0.7
<img src="https://yellow-cdn.veclightyear.com/0a4dffa0/3ed93cb8-2ecd-4101-af85-f5c1384c3e28.gif" alt="强化学习示例" width="375"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/b3ea07f0-e1d8-470c-b6d2-4a08a11aeca8.gif" alt="多智能体强化学习示例" width="375">
pycffirmware
Python绑定示例(跨平台,单无人机)为Ubuntu、macOS或Windows安装 pycffirmware
cd gym_pybullet_drones/examples/ python3 cff-dsl.py
git clone https://github.com/betaflight/betaflight # 使用撰写时的 `master` 分支(未来4.5版本) cd betaflight/ make arm_sdk_install # 如果需要,执行 `apt install curl` make TARGET=SITL # 注释掉这一行:https://github.com/betaflight/betaflight/blob/master/src/main/main.c#L52 cp ~/gym-pybullet-drones/gym_pybullet_drones/assets/eeprom.bin ~/betaflight/ # 假设 gym-pybullet-drones/ 和 betaflight/ 都克隆在 ~/ 目录下 betaflight/obj/main/betaflight_SITL.elf
在另一个终端中运行示例
conda activate drones cd gym_pybullet_drones/examples/ python3 beta.py --num_drones 1 # 查看文件的文档字符串以了解如何使用多架无人机
如果您愿意,请引用我们的 IROS 2021 论文(以及原始代码库)
@INPROCEEDINGS{panerati2021learning, title={学习飞行---一个基于PyBullet物理引擎的多智能体四旋翼飞行器控制强化学习Gym环境}, author={Jacopo Panerati 和 Hehui Zheng 和 SiQi Zhou 和 James Xu 和 Amanda Prorok 和 Angela P. Schoellig}, booktitle={2021年IEEE/RSJ智能机器人与系统国际会议(IROS)论文集}, year={2021}, volume={}, number={}, pages={7512-7519}, doi={10.1109/IROS51168.2021.9635857} }
crazyflie-firmware
SITL 支持 (@spencerteetaert, @JacopoPan)BaseAviary._dynamics()
中实现缓冲区来 添加电机延迟、高级 ESC 建模BaseAviary._updateAndStoreKinematicInformation()
、BaseAviary._getDroneStateVector()
和相关子类的 .computeObs()
方法,用四元数替换 rpy
(并用体速率替换 ang_vel
)nvidia-settings
,在"PRIME Profiles"下选择"NVIDIA(性能模式)",重启后再试。从顶层文件夹运行所有测试:
pytest tests/
多伦多大学动态系统实验室 / Vector 研究所 / 剑桥大学Prorok 实验室
最强AI数据分析助手
小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。
像人一样思考的AI智能体
imini 是一款超级AI智能体,能根据人类指令,自主思考、自主完成、并且交付结果的AI智能体。
AI数字人视频创作平台
Keevx 一款开箱即用的AI数字人视频创作平台,广泛适用于电商广告、企业培训与社媒宣传,让全球企业与个人创作者无需拍摄剪辑,就能快速生成多语言、高质量的专业视频。
一站式AI创作平台
提供 AI 驱动的图片、视频生成及数字人等功能,助力创意创作
AI办公助手,复杂任务高效处理
AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!