1. 双GPS冗余概念解析:为什么需要双GPS、冗余架构原理、主备切换逻辑

各位同学好,我是老张。今天咱们聊聊双GPS冗余系统。说实话,这个主题我憋了很久——因为太多人在这个坑里摔过跟头。

先问个问题:你飞无人机的时候,有没有遇到过GPS突然丢星?我遇到过,而且不止一次。有一次在山区执行测绘任务,GPS信号被山体遮挡,飞机直接进入了RTL模式。还好高度够,不然就炸机了。从那以后,我对单GPS系统就特别不放心。

为什么需要双GPS?

说白了,单GPS系统有三大硬伤:

  • 信号遮挡:城市峡谷、树林、山体,随便一个就能让GPS信号变差
  • 硬件故障:GPS模块本身会坏,天线会松动,线缆会断裂
  • 干扰问题:电磁干扰、多径效应,都会让定位数据漂移

你想想看,如果飞机正在执行航线任务,GPS突然失效了——那后果是什么?轻则偏离航线,重则直接炸机。我见过一个案例,某团队做物流无人机测试,单GPS在飞行中突然输出错误位置,飞机直接朝建筑物撞过去了。还好有视觉避障,不然就出大事了。

双GPS冗余,就是给无人机装两套独立的定位系统。一套出问题了,另一套立刻顶上。这就像飞机有两个引擎,一个失效了,另一个还能撑住。

核心观点:双GPS不是锦上添花,而是安全底线。尤其是做商用无人机、测绘无人机、物流无人机的朋友,这个钱不能省。

冗余架构原理

双GPS冗余的架构,我习惯把它分成三个层次:

  1. 硬件层:两个独立的GPS模块+天线,供电和通信线路完全隔离
  2. 数据层:两路GPS数据同时输入飞控,飞控内部做数据融合和校验
  3. 决策层:根据数据质量,决定用哪一路作为主定位源

下面这张图是我自己画的,把整个架构串起来了:

双GPS冗余系统架构图 GPS模块 #1 天线 + 接收机 供电: VCC1 / GND1 GPS模块 #2 天线 + 接收机 供电: VCC2 / GND2 UART1 UART2 飞控主芯片 数据融合 & 校验 PX4 / ArduPilot 数据校验层 校验和 / CRC / 时间戳 主备切换决策 基于健康度评分 输出定位数据 供电隔离 | 通信隔离 | 物理隔离

嗯,这里要注意一个关键点:两个GPS模块的供电必须完全独立。我见过有人图省事,两个GPS共用一个LDO,结果LDO烧了,两个GPS同时掉线——那还要冗余干嘛?

我的经验:在实际项目中,我习惯把GPS1接在飞控的TELEM1口,GPS2接在TELEM2口。这样即使一个串口坏了,另一个还能正常工作。另外,两个GPS的天线要尽量远离,避免互相干扰。

主备切换逻辑

主备切换,说白了就是飞控怎么判断「该用哪个GPS的数据」。我把它拆成三步:

第一步:健康度评估

飞控会持续监控每个GPS的状态,主要看这几个指标:

指标 正常范围 说明
卫星颗数 ≥ 8颗 低于6颗就要警惕
HDOP ≤ 1.5 水平精度因子,越小越好
定位状态 3D Fix 2D Fix或No Fix都不行
数据更新率 ≥ 5Hz 低于这个值说明通信有问题

第二步:数据一致性校验

两个GPS的数据不能差太多。我一般设置一个阈值:

  • 水平位置偏差 < 5米 → 正常
  • 水平位置偏差 5-10米 → 警告,继续监控
  • 水平位置偏差 > 10米 → 触发切换逻辑

为什么会这样?因为两个GPS如果都正常工作,它们的位置偏差应该在2-3米以内。如果偏差突然变大,说明其中一个可能出问题了。

第三步:切换决策

飞控根据上面两步的结果,做出切换决策。逻辑是这样的:

// 伪代码 - 主备切换逻辑
if (GPS1.health > GPS2.health + 阈值) {
    主用 = GPS1;
} else if (GPS2.health > GPS1.health + 阈值) {
    主用 = GPS2;
} else {
    // 两者差不多,保持当前主用
    主用 = 当前主用;
}

// 特殊情况:如果主用GPS突然失效
if (主用GPS.卫星数 < 6 || 主用GPS.HDOP > 2.0) {
    立即切换到备用GPS;
    触发告警;
}

注意:切换不能太频繁。我曾经遇到过一个问题——两个GPS在信号边缘来回跳变,导致飞控每秒钟切换好几次,定位数据剧烈抖动。后来我加了一个「切换抑制时间」,至少保持5秒才允许再次切换,这个问题就解决了。

实际项目中的避坑指南

最后分享几个我踩过的坑:

  • 天线位置:两个天线尽量放在机身的中轴线上,左右对称。我见过有人把GPS1放在机头,GPS2放在机尾,结果两个GPS的航向角差了10度——飞控直接懵了。
  • 磁干扰:GPS天线要远离大电流线路和电机。我有个项目,GPS2离电调太近,定位数据一直飘,查了两天才发现是电磁干扰。
  • 固件配置:在PX4里要正确设置GPS1和GPS2的端口。很多人忘了改参数,结果两个GPS读的是同一个串口的数据——那冗余了个寂寞。

好了,这一章就讲到这里。双GPS冗余的核心就三点:硬件隔离、数据校验、智能切换。把这三点吃透了,你的无人机安全性就能上一个台阶。

一句话总结:双GPS冗余不是简单的「装两个GPS」,而是一套完整的系统设计。从硬件选型到软件逻辑,每个环节都要考虑到位。


公众号:蓝海资料掘金营,微信deep3321