一场没有GPS的九公里飞行,他们是如何实现的?无人机自主导航黑科技揭秘
先说说背景——德国SPRIN-D Funke挑战赛要求无人机在完全没有GNSS信号、没有预先构建的稠密地图的环境下,实现低空(低于25米)自主飞行9公里,并完成航点导航。这听起来像是不可能完成的任务?然而,捷克理工大学(CTU in Prague)多机器人系统小组(MRS)不仅成功挑战,更一举夺得冠军。他们的核心方案,正是本文要深入探讨的焦点——一整套纯机载、仅靠CPU实时运行的GNSS拒止环境长距离导航系统。

这套系统的关键思路其实非常直观:利用机载LiDAR生成局部高度图(Heightmap),再将其与先验地理数据(比如公开的数字高程模型)进行梯度模板匹配,最后通过一个聚类粒子滤波器,把里程计信息和匹配结果融合起来,实现对定位漂移的轻量级校正。请注意,这一切仅在一台配备CPU的NUC迷你主机上实时完成。比赛场地涵盖了城市、森林和开阔地带,而该系统最终将定位误差控制在了11米以内——相比纯里程计高达53米的漂移,这无疑是一次质的飞跃。
系统架构:远不止定位那么简单
整个系统集成了感知、定位、规划与控制等多重功能,为了便于理解,我们将其拆解为几个关键模块逐一分析。
硬件平台配置
无人机基于文献[19]的平台构建,搭载了多种核心传感器:Livox Mid-360 LiDAR(负责障碍物检测、局部建图和高度图生成)、Intel RealSense D435深度相机(近距离障碍感知)、Bluefox RGB相机加IMU(用于OpenVINS视觉惯性里程计),以及一块Intel NUC i7机载计算机(仅CPU运算)。值得一提的是,IMU和VIO相机通过3D打印的静音块实现了机械解耦——这个细节不容忽视,因为电机和桨叶产生的高频振动,如果直接传导至IMU,VIO系统基本就会失效。此外,机载磁力计提供了绝对的航向参考。
视觉惯性里程计(VIO)
系统采用了OpenVINS单目VIO方案。前面提到的机械解耦设计,正是为了保障其稳定运行——隔离振动后,VIO的鲁棒性有了显著提升,数据更为可靠。
建图、规划与反馈控制
LiDAR点云被增量式地集成到以机体为中心的局部占用地图(OctoMap)中,地图大小为40×40米,更新频率为10 Hz。碰撞自由的路径由A*算法在欧几里得符号距离场上搜索得到,再通过多项式轨迹生成模块转化为动态可行的飞行轨迹,最后由底层的模型预测控制器进行跟踪。这套流程在同类系统中属于标准组合,其优势在于稳定可靠。
任务控制逻辑
有限状态机负责管理整个飞行流程:包括准备、起飞、航点导航、航点检测(进入15米半径内激活)、超飞(检测到旗帜)、方形搜索模式(未检测到旗帜时),以及返航和降落。流程看似简单,但在实际飞行中,状态切换的可靠性至关重要,直接影响任务成败。
数字孪生驱动开发
这一点值得重点介绍。团队在FlightForge模拟器中,基于公开地理数据(如DEM、卫星图像等)构建了环境的数字孪生,复现了地形、植被和建筑物。整个定位模块的迭代测试,甚至航点检测器的训练数据生成,都在这个仿真环境里完成。这种“先虚拟飞行数千次,再进行实飞”的策略,极大地缩短了实际调试周期,避免了许多不必要的试错成本。
航点检测器设计
基于YOLOv8深度学习架构。首先利用模拟器生成的合成数据训练一个YOLOv8m模型,再用这个预训练模型辅助标注真实数据,最后在合成与真实数据的复合集上训练轻量级的YOLOv8n模型,以满足机载CPU的计算约束——实测处理速度约100毫秒一帧,完全够用。
核心创新:机载长距离GNSS拒止定位技术
这是整套系统的灵魂所在。其工作流程大致如下:
高度图预处理
先验数据:利用公开点云数据或航空RGB图像的深度估计模型,生成地理参考、北向对齐的大尺度环境高度图(相当于数字高程模型)。
局部高度图:从机载LiDAR生成的在线占用地图中构建。其关键假设是:在局部地图范围内,里程计的漂移量是受限的。地图分辨率设为1米,通过计算给定点云的最大高度来生成。
对齐:使用机载指南针将局部高度图与北方对齐,确保与先验DEM的方向一致。
高度图梯度匹配
为什么要匹配梯度而非绝对高度?因为无人机很难可靠获取绝对高度(气压计噪声大,地面可能倾斜)。匹配梯度可以有效消除这种垂直偏移带来的干扰。
具体做法:先进行滤波,只保留绝对值大于5米的梯度——这样能突出建筑物和树木这类高大、稳定的结构性特征,同时忽略瞬态物体。然后生成二值边缘图,将强梯度区域标记为1。
模板匹配采用非归一化相关系数。公式虽然看起来有些学术化,但直觉上很好理解:当局部高度图不完整时,这个指标的鲁棒性表现更佳。
最后对相似性地图进行高斯模糊处理,以减少离散化伪影。
聚类粒子滤波器
里程计和相似性地图在这里实现融合。粒子滤波器维护了多个平移状态的假设,而方向则直接从指南针获取。
传播:在重采样步骤之间,粒子根据里程计估计平移,并与指南针航向对齐。
加权:每个粒子根据其投影位置在相似性地图上的归一化值被分配权重。
重采样:每当无人机移动10米就触发一次,新粒子的位置由经验估计的里程计协方差高斯噪声扰动生成。
聚类:使用K-means算法对粒子集聚类,取最大簇的质心作为最终位置估计。这是一个非常聪明的策略——当感知混叠和里程计噪声导致多簇出现时,直接选取最密集的簇,而不是盲目地进行均值计算。
实验结果:绝非纸上谈兵
该系统在SPRIN-D挑战赛中进行了实地验证,测试区域覆盖了城市、森林和开阔地带等多种复杂场景。
评估方法
比赛禁止使用GNSS,真实轨迹通过VIO数据结合相机/LiDAR影像手动估计获得(精度在0~5米范围)。部分测试飞行还使用了GNSS地面真值作为对照验证。
自主GNSS拒止飞行表现
有GNSS地面真值的那组测试结果非常有趣:即使初始定位误差高达32米,系统依然能够通过观测环境特征(比如树木)进行自我校正,最终将误差缩小到约4米。
比赛期间,系统成功完成了多次公里级自主飞行,总定位RMSE低于11米。而仅靠指南针对齐的纯里程计,RMSE则达到了53米。两者的差距一目了然。
飞行任务终止的原因,基本都是电池耗尽或硬件故障,从未因为定位漂移而导致任务中断。
城市环境的表现最佳——特征点多、可区分物体多,匹配效果好。开阔地带则主要依赖里程计进行导航。
另一个亮点是:系统能够校正磁力计在某些区域产生的缓慢变化偏差,校正幅度可达30度。
比赛最终成绩
在九支参赛队伍中,这套系统是唯一能够完成公里级飞行并成功访问多个航点的方案,最终毫无悬念地获得了第一名。
经验与教训
IMU和VIO相机的机械解耦对VIO鲁棒性至关重要——这不是理论推导,而是实践中的宝贵教训。磁力计在建筑物和钢筋混凝土结构附近完全不可靠,多传感器融合才是王道。整体性能受限于系统中最弱的组件:例如,局部地图的大小直接限制了飞行速度。此外,在时间紧迫的竞赛场景中,快速诊断和部署能力,往往比单纯的技术先进性更为关键。
结论与展望
这套系统成功证明了在GNSS拒止环境下进行可靠长距离无人机导航的可行性。其核心方法简洁而高效:通过梯度匹配将局部LiDAR高度图对齐到先验地理数据,再借助聚类粒子滤波器融合里程计信息,从而有效校正漂移。实验覆盖了城市、森林和开阔地带,在仅使用CPU的硬件平台上实现了公里级飞行,RMSE低于11米。
一个更深刻的结论是:对于长距离任务而言,从高不确定性时期中恢复并重新定位的能力,其重要性远超过维持持续的低瞬时RMSE。尽管续航能力和低特征环境下的操作仍是未来需要攻克的挑战,但这项研究无疑为未来真正实用的、具备高弹性的GNSS拒止自主系统,绘制了一份扎实而清晰的蓝图。
