1. 先看结论
如果你是做四旋翼强化学习,常见环境大致可以分成 4 类:
- 飞控闭环型:PX4 + Gazebo、Crazyswarm2 特色是更接近真实飞控链路,适合做 SITL / HITL / sim-to-real。
- 高吞吐训练型:Gym-PyBullet-Drones、MuJoCo / MJX、Isaac Sim / Isaac Lab 特色是训练速度快、并行能力强,适合先把奖励函数、动作空间、观测空间和算法跑通。
- 高真实感感知型:AirSim、Flightmare、FlightGoggles、Isaac Sim 特色是图像更真实,更适合视觉导航、避障、穿门、竞速等任务。
- 教学 / 原型验证型:Webots + Deepbots、Unity ML-Agents、CoppeliaSim、MATLAB/Simulink 特色是上手快、可视化好,但工程闭环和真实飞控对接能力差异较大。
2. 推荐怎么选
2.1 你要是想做“最接近真实无人机系统”
优先选:
- PX4 SITL + Gazebo Sim
- Crazyswarm2
- Isaac Sim + Pegasus / PX4
适合:
- 飞控在环
- 真机部署前验证
- ROS2 / MAVLink / MAVSDK 工作流
- sim-to-real
2.2 你要是想“先把 RL 跑起来”
优先选:
- Gym-PyBullet-Drones
- MuJoCo / MJX
- Isaac Sim / Isaac Lab
适合:
- PPO / SAC / TD3 快速实验
- 奖励函数设计
- 多环境并行训练
- 多机 / 多智能体
2.3 你要是想做“视觉导航 / 图像感知”
优先选:
- AirSim
- Flightmare
- FlightGoggles
- Isaac Sim
适合:
- RGB / 深度 / 分割 / LiDAR
- 端到端视觉控制
- 穿门、竞速、避障
2.4 你要是想做“课程 / 论文复现 / 教学展示”
优先选:
- Webots + Deepbots
- Unity ML-Agents
- MATLAB/Simulink
3. 总表对比
| 平台 | Win | Ubuntu | 强化学习接口 | 特色 | 缺点 | 适合方向 |
|---|---|---|---|---|---|---|
| PX4 + Gazebo Sim | 可用,常走 WSL2 | 很强 | 需自己封装 Gym / 走 ROS2 / MAVSDK | 最接近真实飞控,支持 SITL/HITL | Windows 不如 Ubuntu 省心 | 飞控闭环、sim-to-real |
| RotorS | 不推荐原生 Win | 强 | ROS 封装,自建 Gym | 经典论文多,便于复现 | 生态偏旧,ROS1/Gazebo Classic 老 | 论文复现、传统控制对比 |
| AirSim | 强 | 可用 | Python API / Gym wrapper | Unreal 画面真实,视觉任务强 | 官方主仓库已停止更新,长期维护风险大 | 视觉导航、障碍回避 |
| PRL4AirSim | 可 | 可 | 并行 RL 工作流 | AirSim 上做分布式并行训练 | 依赖 AirSim 本体 | 视觉 RL 并行训练 |
| Flightmare | Windows 成本高 | 强 | 自带 Gym-style wrapper | 渲染与物理解耦,能高并行 | Windows 生态弱 | 视觉+控制、论文实验 |
| Gym-PyBullet-Drones | 强 | 强 | 原生 Gymnasium | 上手快,训练快,多机方便 | 真实感不如 AirSim / Isaac | 算法验证、基线实验 |
| FlightGoggles | 可 | 强 | ROS / Python 封装 | 感知真实性高,HIL 思路强 | 不原生 Gym,要自己桥接 | 视觉感知、HIL |
| Crazyswarm2 | WSL 实验性 | 很强 | ROS2,自封装 Gym | 多机编队非常强,仿真/真机接口一致性好 | 更偏 Crazyflie 生态 | 多机协同、集群控制 |
| Webots + Deepbots | 强 | 强 | Gym-style | 教学友好、跨平台好 | 物理和真实感上限一般 | 教学、快速原型 |
| MuJoCo / MJX | 强 | 强 | Python / JAX / Gym 自建 | 并行强、适合高吞吐训练 | 视觉真实感弱 | 高速训练、sim-to-real 研究 |
| Isaac Sim + Isaac Lab | 强 | 很强 | Isaac Lab / OmniDrones | GPU 并行强、传感器强、视觉强 | 显卡和显存要求高 | 大规模训练、视觉控制 |
| Unity + ML-Agents | 强 | 强 | 原生 ML-Agents / Gym wrapper | 可视化好,易做课程展示 | 真飞控链路要自己搭 | 教学、自定义任务 |
| CoppeliaSim | 强 | 强 | Remote API 桥接 Gym | 场景搭建方便 | RL 生态不如 Gym 系 | 原型验证 |
| MATLAB/Simulink | 强 | 可 | RL Toolbox | 工程链路完整,适合控制/验证 | 商业软件,成本高 | 工程验证、控制系统设计 |
4. 各平台详细说明
4.1 PX4 SITL + Gazebo Sim
平台特点
这是目前做四旋翼仿真时最“工程化”的路线之一。如果你未来想和真实飞控、QGroundControl、MAVLink、ROS2、MAVSDK 对接,这套非常重要。
优点
- 有 SITL
- 有 HITL
- 贴近真实 PX4 飞控链路
- 适合 sim-to-real
- 和 QGC、ROS2、MAVSDK 生态衔接自然
缺点
- 原生不是 Gym,要自己封装 RL 环境
- Windows 一般不建议原生跑,通常用 WSL2
- 多机仿真在 Linux 下体验更好
Windows 怎么用
常见方式:
- Windows 装 WSL2
- WSL2 内装 Ubuntu
- 在 Ubuntu 里装 PX4 + Gazebo
- Windows 侧跑 QGroundControl 看状态
Ubuntu 怎么用
最常见:
- 安装 PX4 开发环境
- 安装 Gazebo Sim
make px4_sitl gz_x500- 用 ROS2 / MAVSDK 订阅状态、发送控制
RL 使用方式
通常做法不是直接 pip install env 就能训,而是:
- Gazebo + PX4 负责物理和飞控
- Python / ROS2 / MAVSDK 负责状态读取
- 你自己写一个 Gym wrapper
- 再接 PPO / SAC / TD3
更适合什么论文方向
- sim-to-real
- 飞控在环
- 轨迹跟踪
- 避障与导航
- 真机验证
4.2 RotorS
平台特点
RotorS 是经典老牌多旋翼 Gazebo 仿真框架,很多老论文都基于它。
优点
- 文献很多
- 经典多旋翼模型齐全
- 做老论文复现很方便
缺点
- 偏 ROS1 / Gazebo Classic
- 生态老
- 在新系统上经常要修依赖
适合谁
- 你要复现 2017~2022 年左右的一批 Gazebo / RL / 控制论文
- 你要和经典 baseline 比
4.3 AirSim
平台特点
AirSim 基于 Unreal,引擎视觉效果很好,尤其适合:
- 视觉导航
- 避障
- 穿门
- 竞速
- 端到端图像控制
优点
- 视觉很真实
- 传感器丰富:RGB、深度、IMU、GPS、LiDAR 等
- Python API 用起来方便
- Windows 体验相对不错
缺点
- 官方主仓库已经停止更新
- 长期项目风险比较大
- 更适合作为“已有论文生态和历史平台”来用
Windows 怎么用
- 安装 Visual Studio
- 安装 Unreal Engine
- 编译 AirSim
- 打开示例场景
- 用 Python API 控制无人机
Ubuntu 怎么用
- 安装 Unreal Linux 构建环境
- 编译 AirSim
- 启动仿真环境
- Python 调 API
RL 怎么用
最常见:
- 自己写 Gym wrapper
- 或参考 Air Learning、PRL4AirSim
适合什么研究
- 视觉导航
- 图像到动作
- 穿门、竞速、目标追踪
- 感知驱动 RL
4.4 PRL4AirSim
平台特点
这是 AirSim 上的并行 RL 加速方案。
特色
- 用多个实例并行跑采样
- 缩短训练时间
- 更适合 AirSim 这种单实例开销较大的平台
适合谁
- 你已经决定用 AirSim
- 但觉得 AirSim 训练太慢
- 想做大规模视觉 RL
4.5 Flightmare
平台特点
Flightmare 是一个很强的研究平台。它把:
- 渲染
- 物理 分离开来,因此在画面不错的同时还能做到较高吞吐。
优点
- 有 Gym-style Python wrapper
- 可并行很多四旋翼
- 可做视觉任务
- 可做控制任务
- 很适合论文实验
缺点
- Windows 使用不如 Ubuntu 友好
- 更偏研究型平台,不像 PX4 那么工程闭环完整
Ubuntu 使用方式
- 装 Python 依赖
- 安装 flightlib
- 可选装 ROS 版本
- 调其 wrapper 接 PPO / SAC
适合研究
- 视觉控制
- 穿门、竞速
- 稳定控制
- 高并行 RL
4.6 Gym-PyBullet-Drones
平台特点
这是最适合初学者快速做四旋翼 RL 的平台之一。
优点
- 原生 Gymnasium 风格
- Python 友好
- Windows / Ubuntu 都好装
- 多机、多智能体支持好
- 很多示例直接能接 SB3 / RLlib
缺点
- 真实感一般
- 更偏“算法训练环境”,不是飞控闭环环境
怎么用
非常直接:
import gymnasium as gym
from stable_baselines3 import PPO
env = gym.make ("hover-aviary-v0", obs="kin", act="rpm")
model = PPO ("MlpPolicy", env, verbose=1)
model.learn (total_timesteps=1_000_000)
适合谁
- 想先做 hover / tracking / formation 的 baseline
- 想快速对比 PPO / SAC / TD3
- 想做多机强化学习
4.7 FlightGoggles
平台特点
FlightGoggles 的核心强项不是“最方便训练”,而是:
- 高真实感传感器
- HIL 思想
- 感知驱动飞行
优点
- 图像逼真
- 适合视觉与惯导结合
- 文档里有多 agent 示例
缺点
- 不原生 Gym
- 训练前一般要自己做 ROS / Python 桥接
适合谁
- 做视觉感知
- 做 VIO / 感知-控制耦合
- 做 sim-to-real 感知实验
4.8 Crazyswarm2
平台特点
如果你关注的是多机编队,它非常突出。
优点
- ROS2 生态
- Crazyflie 仿真和真机链路很近
- 多机编队很方便
- 单机、多机都能做
缺点
- 更偏 Crazyflie 平台
- 不属于“拿来就能训 RL”的 Gym 环境
- 更需要你有 ROS2 基础
适合研究
- swarm / formation
- 多智能体 RL
- 协同控制
- 真机编队验证
4.9 Webots + Deepbots
平台特点
这是一个很适合教学、入门和课程作业的组合。
优点
- 跨平台
- Webots 界面友好
- Deepbots 能把它包装成 Gym 风格
- 上手难度低
缺点
- 高机动飞行动力学研究通常不作为首选
- 真实感和工程闭环不如 PX4 / Isaac
适合谁
- 想快速出一个四旋翼 RL demo
- 做课程设计
- 做教学展示
4.10 MuJoCo / MJX
平台特点
MuJoCo 现在非常适合做高吞吐仿真,尤其和 JAX / MJX 结合时。
优点
- 并行能力强
- 做系统辨识、域随机化方便
- 适合大规模训练
- Windows / Ubuntu 都能用
缺点
- 视觉真实感不如 Unreal / Isaac
- 真实飞控闭环需要自己搭
适合研究
- 高速 RL
- sim-to-real 方法学
- 系统辨识
- 动力学建模
4.11 Isaac Sim + Isaac Lab / Pegasus / OmniDrones
平台特点
这是近几年非常强势的一条路线,尤其适合 GPU 大规模并行训练和视觉任务。
优点
- GPU 并行能力强
- 传感器强
- 渲染强
- 有 Isaac Lab 工作流
- 有 Pegasus、OmniDrones 等无人机扩展
缺点
- 显卡、显存要求高
- 学习成本高
- 配置复杂度也高
适合谁
- 有较强 GPU 资源
- 要做大规模训练
- 要做视觉 + 多传感器 + RL
- 想走新一代高性能仿真栈
4.12 Unity + ML-Agents
平台特点
Unity 最大的优势是:
- 场景编辑非常方便
- 展示效果好
- 自定义任务快
优点
- Windows 体验很好
- 上手较快
- 适合自定义关卡、障碍物、目标点任务
- 课程展示友好
缺点
- 真正做四旋翼动力学、飞控闭环,很多东西要自己补
- 更适合“自定义任务仿真”,不是传统无人机工程平台
适合研究
- 导航任务
- 路径规划
- 教学演示
- 强化学习课程项目
4.13 CoppeliaSim
平台特点
它更像一个通用机器人仿真平台,能做四旋翼,但不是最主流的四旋翼 RL 生态。
优点
- 场景搭建方便
- Remote API 丰富
- 跨平台
缺点
- RL 生态较弱
- 四旋翼相关社区不如前面几个平台强
适合谁
- 已经有 CoppeliaSim 基础
- 做教学或小型原型验证
4.14 MATLAB / Simulink
平台特点
如果你本身做控制、建模、工程验证,这套很顺。
优点
- 工程链路完整
- RL Toolbox 可直接训练
- UAV Toolbox 能和 PX4 工作流衔接
- 对控制工程背景的人非常友好
缺点
- 商业软件
- 成本高
- 与 Python/Gym 世界融合不如前面那些自然
适合谁
- 控制方向研究生
- 工程验证
- 模型驱动 + RL 混合方法
5. 不同系统下怎么选
5.1 Windows 下优先考虑
第一梯队
- Gym-PyBullet-Drones
- AirSim
- Unity ML-Agents
- Webots
- MuJoCo
- Isaac Sim
第二梯队
- PX4 + Gazebo(通常走 WSL2)
- Crazyswarm2(WSL2 实验性)
- Flightmare(更多还是 Ubuntu)
Windows 建议
如果你主力电脑是 Windows,推荐 3 条路线:
路线 A:快速做 RL
- Python
- Gym-PyBullet-Drones
- SB3 / RLlib
路线 B:做视觉
- AirSim 或 Unity
- Python RL
路线 C:未来要接真实飞控
- Windows + WSL2
- 在 WSL2 里跑 PX4 / ROS2 / Gazebo
5.2 Ubuntu 下优先考虑
Ubuntu 几乎是无人机仿真的主战场。
最推荐
- PX4 + Gazebo
- Flightmare
- Gym-PyBullet-Drones
- MuJoCo
- Isaac Sim
- Crazyswarm2
Ubuntu 优势
- ROS / ROS2 生态完整
- PX4 文档默认更偏 Linux
- 多机、多进程、容器化更稳定
- 真机部署链路更自然
6. 一个通用训练流程
不管你选哪个平台,通常都遵循这个流程:
确定任务
- 悬停
- 定点控制
- 轨迹跟踪
- 避障
- 穿门
- 多机编队
定义状态
- 位置、速度、姿态、角速度
- 或 RGB / 深度 / IMU
定义动作
- 电机转速
- 推力 + 力矩
- 角速度指令
- 速度指令
定义奖励
- 目标误差
- 控制能耗
- 平滑性
- 碰撞惩罚
- 时间惩罚
训练
- PPO / SAC / TD3 / DDPG / 多智能体算法
评估
- 成功率
- 稳定时间
- 碰撞率
- 跟踪误差
- 泛化能力
sim-to-real
- 域随机化
- 传感器噪声
- 延迟建模
- 系统辨识
- SITL → HITL → 真机
7. 值得关注的代表论文
7.1 AirSim 方向
1) Air Learning: A Deep Reinforcement Learning Gym for Autonomous Aerial Robot Visual Navigation
- 核心:把 AirSim 用成视觉导航 RL 平台
- 适合:视觉导航、避障、端到端策略
2) Parallel Reinforcement Learning Simulation for Visual Quadrotor Navigation (PRL4AirSim)
- 核心:解决 AirSim 训练慢的问题
- 适合:并行采样、视觉任务
7.2 Gazebo / RotorS / sim-to-real 方向
3) Reinforcement learning based autonomous multi-rotor landing on moving platforms
- 核心:Gazebo + ROS + 真机部署
- 价值:很适合看“仿真到实机”的完整链路
4) Deep reinforcement learning for quadrotor path following with adaptive velocity
- 核心:路径跟踪 + 连续控制 RL
- 价值:适合轨迹跟踪研究入门
7.3 Flightmare 方向
5) Flightmare: A Flexible Quadrotor Simulator
- 核心:渲染与物理解耦、支持高并行、支持 RL
- 价值:研究型平台代表作
7.4 PyBullet 方向
6) Learning to Fly — a Gym Environment with PyBullet Physics for Reinforcement Learning of Multi-agent Quadcopter Control
- 核心:标准化 Gym 风格四旋翼环境
- 价值:算法比较和基线非常实用
7.5 Isaac / Omniverse 方向
7) Pegasus Simulator: An Isaac Sim Framework for Multiple Aerial Vehicles Simulation
- 核心:Isaac Sim 上的多飞行器仿真框架
- 价值:高真实感与 PX4 / ROS2 融合
8) OmniDrones: An Efficient and Flexible Platform for Reinforcement Learning in Drone Control
- 核心:Isaac Sim 上的无人机 RL 平台化
- 价值:新一代高性能无人机 RL 基准平台
7.6 FlightGoggles 方向
9) FlightGoggles: Photorealistic Sensor Simulation for Perception-driven Robotics using Photogrammetry and Virtual Reality
- 核心:高真实感传感器仿真
- 价值:适合做视觉感知驱动控制研究
7.7 MuJoCo / MJX 方向
10) How to Model Your Crazyflie Brushless
- 核心:JAX + MJX 高并行仿真并部署到真机
- 价值:很适合 sim-to-real 方法研究
8. 按研究目标给建议
8.1 你要做“悬停 / 轨迹跟踪 / 基础控制”
优先:
- Gym-PyBullet-Drones
- MuJoCo
- PX4 + Gazebo
8.2 你要做“视觉避障 / 视觉导航 / 穿门”
优先:
- AirSim
- Flightmare
- FlightGoggles
- Isaac Sim
8.3 你要做“多机协同 / 编队”
优先:
- Crazyswarm2
- Gym-PyBullet-Drones
- Isaac Sim / OmniDrones
8.4 你要做“真机迁移 / sim-to-real”
优先:
- PX4 + Gazebo
- Crazyswarm2
- Isaac Sim + Pegasus
- MuJoCo / MJX(方法研究)
8.5 你要做“课程设计 / 快速出结果”
优先:
- Gym-PyBullet-Drones
- Webots + Deepbots
- Unity ML-Agents
9. 最后的实用建议
如果你现在是新手
直接从 Gym-PyBullet-Drones 开始。原因:
- 安装简单
- 代码直观
- RL 接口成熟
- 很快能看到结果
如果你以后想接真实无人机
尽快转到 PX4 + Gazebo。原因:
- 这是工程路线
- 和真实飞控最接近
如果你做视觉论文
优先考虑:
- Flightmare
- Isaac Sim
- AirSim(但注意维护风险)
如果你做多机
优先考虑:
- Crazyswarm2
- Gym-PyBullet-Drones
- OmniDrones
10. 一个非常实用的学习路线
路线 1:快速入门
- Gym-PyBullet-Drones
- PPO / SAC
- 悬停 → 轨迹跟踪 → 编队
路线 2:工程落地
- PX4 + Gazebo
- ROS2 / MAVSDK
- SITL → HITL → 真机
路线 3:视觉研究
- Flightmare / Isaac Sim / AirSim
- 图像观测
- 视觉导航 / 穿门 / 避障
11. 参考链接(官方 / 代表仓库)
- PX4 Docs: https://docs.px4.io/
- Gazebo Sim: https://gazebosim.org/
- RotorS: https://github.com/ethz-asl/rotors_simulator
- AirSim: https://github.com/microsoft/AirSim
- PRL4AirSim: https://github.com/SaundersJE97/PRL4AirSim
- Flightmare: https://github.com/uzh-rpg/flightmare
- Gym-PyBullet-Drones: https://github.com/utiasDSL/gym-pybullet-drones
- FlightGoggles: https://github.com/mit-aera/FlightGoggles
- Crazyswarm2: https://github.com/IMRCLab/crazyswarm2
- Webots: https://github.com/cyberbotics/webots
- Deepbots: https://github.com/aidudezzz/deepbots
- MuJoCo: https://github.com/google-deepmind/mujoco
- Isaac Lab: https://isaac-sim.github.io/IsaacLab/
- Pegasus Simulator: https://github.com/PegasusSimulator/PegasusSimulator
- OmniDrones: https://github.com/btx0424/OmniDrones
- Unity ML-Agents: https://github.com/Unity-Technologies/ml-agents
- CoppeliaSim: https://www.coppeliarobotics.com/
- MATLAB RL Toolbox: https://www.mathworks.com/products/reinforcement-learning.html
12. 一句话总结
- 想快:Gym-PyBullet-Drones
- 想真:PX4 + Gazebo
- 想看图像任务:Flightmare / Isaac Sim / AirSim
- 想多机:Crazyswarm2 / OmniDrones / Gym-PyBullet-Drones
- 想真机迁移:PX4 / Crazyswarm2 / Pegasus / MuJoCo 方法研究
本文作者:sheetung
本文链接:https://moontung.top/archives/uac-rl-research.html
版权声明:转载时须注明出处(包括原作者和文章链接)及本声明
