在复现无人机路径规划算法时,我逐渐发现,真正困难的不只是把某个算法编译起来,而是让定位、规划、控制、任务和飞控组成一条稳定、可复用的完整链路。不同项目的依赖和接口各不相同,切换算法时经常需要重新整理环境。

为了解决这些问题,我开发了 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 测试环境:

UAV Autonomy All-in-One forest 仿真测试场景
forest 仿真场景

以下 GIF 来自项目仓库,均为原录像的 4 倍速:

Diff-Planner Fast Kino
Diff-Planner 仿真效果 Fast Kino 仿真效果
Fast Topo SUPER
Fast Topo 仿真效果 SUPER 仿真效果

项目特点

相比单独维护多个算法仓库,这个项目更关注完整系统的一致性:

  • 各规划器使用隔离的构建环境,避免同名依赖相互覆盖;
  • 仿真与真机复用任务执行和安全检查逻辑;
  • 统一展示环境、目标、规划轨迹和实际飞行路径;
  • 自动保存运行日志和 rosbag,方便回放与排查;
  • 人工接管、定位异常和规划故障具有明确的处理边界。

当前边界

框架已经覆盖仿真和真机的软件链路,但“能够构建和启动”不等于已经完成真实飞行验证。真机使用前仍需要针对具体机体完成传感器外参、定位、控制器、PX4 failsafe 和遥控接管测试。

当前项目面向单机、单规划器执行,暂不提供空中切换、自动规划器回退、多规划器并行控制、地图共享或统一的动态障碍预测接口。

更详细的环境说明、使用方法、参数配置和安全注意事项请查看项目仓库:

dreamer198/UAV-Autonomy-All-in-One