UAV Autonomy All-in-One:统一仿真、真机与多规划器的无人机自主飞行框架
在复现无人机路径规划算法时,我逐渐发现,真正困难的不只是把某个算法编译起来,而是让定位、规划、控制、任务和飞控组成一条稳定、可复用的完整链路。不同项目的依赖和接口各不相同,切换算法时经常需要重新整理环境。
为了解决这些问题,我开发了 UAV Autonomy All-in-One。这是一个基于 ROS1 Noetic、PX4 和 Gazebo Classic 的无人机自主飞行框架,希望用同一套工程结构连接仿真与真机,并让不同规划器能够以相对独立、平等的方式接入。
项目定位
这个项目并不是新的路径规划算法,而是一个面向无人机自主飞行的工程框架。它主要关注:
- 统一仿真与真机的定位、任务、规划和控制链路;
- 隔离不同开源算法的依赖,减少相互影响;
- 使用一致的方式选择和运行不同规划器;
- 保留必要的状态检查、故障处理、日志和飞行数据;
- 为后续接入新的规划器和传感器预留清晰边界。
仿真侧由 PX4 SITL、Gazebo、模拟 MID-360、规划器和控制器组成;真机侧使用 PX4、MID-360、FAST-LIO、规划器和控制器。两套环境在底层传感器上有所不同,但上层任务和自主飞行逻辑尽量保持一致。
当前支持的规划器
main 分支目前支持四个规划器:
| 规划器 | 简介 |
|---|---|
| Diff-Planner | 面向局部自主飞行的轨迹规划方法 |
| Fast-Planner Kino | 基于 Kinodynamic 搜索的 Fast-Planner 模式 |
| Fast-Planner Topo | 加入拓扑路径搜索的 Fast-Planner 模式 |
| SUPER | 强调安全性与局部重规划的规划器 |
这些规划器分别保留自己的地图、搜索和轨迹生成方式,但通过公共框架接入任务、控制与可视化链路。不同算法在启动前选择,当前不支持飞行过程中切换或多个规划器同时控制飞机。
仿真场景
项目内置室内和森林场景。下面是 forest 测试环境:
以下 GIF 来自项目仓库,均为原录像的 4 倍速:
| Diff-Planner | Fast Kino |
|---|---|
![]() |
![]() |
| Fast Topo | SUPER |
|---|---|
![]() |
![]() |
项目特点
相比单独维护多个算法仓库,这个项目更关注完整系统的一致性:
- 各规划器使用隔离的构建环境,避免同名依赖相互覆盖;
- 仿真与真机复用任务执行和安全检查逻辑;
- 统一展示环境、目标、规划轨迹和实际飞行路径;
- 自动保存运行日志和 rosbag,方便回放与排查;
- 人工接管、定位异常和规划故障具有明确的处理边界。
当前边界
框架已经覆盖仿真和真机的软件链路,但“能够构建和启动”不等于已经完成真实飞行验证。真机使用前仍需要针对具体机体完成传感器外参、定位、控制器、PX4 failsafe 和遥控接管测试。
当前项目面向单机、单规划器执行,暂不提供空中切换、自动规划器回退、多规划器并行控制、地图共享或统一的动态障碍预测接口。
更详细的环境说明、使用方法、参数配置和安全注意事项请查看项目仓库:



