第三章:通信链路设计——4G/5G组网、数传与图传链路、RTK高精度定位方案

各位同学,今天我们来聊聊通信链路。说实话,这是整个多机协同巡检系统里最让我头疼,也最有成就感的部分。为什么?因为无人机在天上飞,你在地上看,中间全靠这条看不见的线连着。线断了,飞机就丢了。

我刚开始做风电巡检那会儿,用的是最传统的数传电台,距离短、带宽低,飞个两三公里就得提心吊胆。后来4G普及了,再后来5G来了,RTK也便宜了,整个通信架构才算是真正能打。今天我就把这几年的实战经验掰开揉碎讲给你听。

多机协同风电巡检通信链路架构 地面控制站 4G/5G 基站组网 数传 + 图传链路 RTK 高精度定位 UAV1 UAV2 UAV3 多机协同 · 实时通信 · 厘米级定位

一、4G/5G组网:从单机到集群的通信底座

先说说4G/5G组网。你可能觉得,不就是插张SIM卡吗?没那么简单。在风电场这种偏远场景,信号覆盖是个大问题。

我个人习惯把组网方案分成三种:

  • 公网4G/5G方案:直接用运营商基站,成本低,但信号不稳定。我在江苏一个海上风电场遇到过,离岸10公里,4G信号断断续续,无人机差点失联。
  • 专网LTE方案:自己搭基站,覆盖半径3-5公里,带宽50-100Mbps。适合固定场站,但设备贵,一套下来十几万。
  • 混合组网方案:公网+专网双链路,自动切换。这是我现在最推荐的做法。

核心要点:多机协同场景下,建议采用4G/5G公网为主、数传电台为备份的双链路方案。主链路负责图传和指令,备份链路只传心跳和GPS,带宽占用极低。

为什么会这样?你想想看,三架飞机同时传1080p视频,带宽需求至少30Mbps。4G上行理论50Mbps,实际能有20Mbps就不错了。所以图传必须做H.265编码,码率压到4-6Mbps每路。

二、数传与图传链路:数据通道的分工与融合

数传和图传,很多人混为一谈。其实分工很明确:

链路类型 传输内容 带宽需求 实时性要求
数传链路 飞行状态、控制指令、任务数据 10-100 kbps < 50ms
图传链路 可见光/红外视频流 4-20 Mbps < 200ms
遥测链路 RTK差分数据、传感器状态 1-10 kbps < 100ms

我记得有一次在内蒙古的风电场,图传卡得不行,但数传一直正常。排查了半天,发现是数传和图传共用同一个频段,互相干扰。后来我把数传放在900MHz,图传用2.4GHz,问题就解决了。

实战技巧:数传链路建议使用MAVLink协议,心跳包频率设为5Hz。图传链路用RTSP或SRT协议,支持丢包重传。我一般把数传的优先级设得比图传高,这样就算带宽不够,飞机也不会失控。

这里有个避坑指南:千万不要让图传占用超过70%的带宽。我曾经吃过这个亏,图传占满了带宽,数传的心跳包发不出去,飞控判断链路断开直接触发返航,三架飞机同时往回飞,差点撞上。

三、RTK高精度定位方案:厘米级定位的实现

RTK,全称实时动态差分定位。说白了就是:地面放一个基准站,天上飞机当流动站,两个一起算,把GPS的误差消掉。

普通GPS精度3-5米,RTK能做到2-5厘米。在风电巡检里,这差别太大了。你想,风机叶片长度60-80米,你要拍叶片前缘的裂纹,误差3米的话,可能拍到的是塔筒。

RTK方案我分三种:

  1. 自建基站方案:在风电场中心架设基准站,覆盖半径10-15公里。精度最高,但需要专人维护。
  2. 网络RTK方案:用千寻位置、中国移动这类服务商,通过4G/5G播发差分数据。方便,但每年要交服务费。
  3. PPK后处理方案:飞行时不传差分数据,降落后再解算。精度和RTK一样,但不能实时定位。

重要提醒:多机协同场景下,所有无人机必须使用同一个差分源。如果A飞机用自建基站,B飞机用网络RTK,两架飞机的坐标系会有偏差,协同作业时可能发生碰撞。我见过最夸张的一次,两架飞机坐标差了30厘米,差点在风机旁边撞上。

实际部署时,我建议这样配置:

# RTK配置示例(基于Ublox F9P模块)
# 基准站配置
CFG-TMODE-MODE: 1          # 固定基站模式
CFG-TMODE-POS_TYPE: 1      # 已知位置
CFG-TMODE-LAT: 40.123456   # 基站纬度
CFG-TMODE-LON: 116.654321  # 基站经度
CFG-TMODE-HEIGHT: 50.0     # 基站海拔

# 流动站配置
CFG-RATE-MEAS: 10          # 10Hz定位频率
CFG-RATE-NAV: 10           # 10Hz导航频率
CFG-MSGOUT-RTCM_3X_TYPE1074: 1  # GPS差分输出
CFG-MSGOUT-RTCM_3X_TYPE1084: 1  # GLONASS差分输出
CFG-MSGOUT-RTCM_3X_TYPE1124: 1  # BeiDou差分输出

嗯,这里要注意:RTK的初始化时间。冷启动大概30-60秒,热启动10秒以内。我一般让飞机起飞前先在地面等RTK Fix,Fix了再起飞。别急着飞,否则定位精度只有米级。

四、链路冗余与故障切换

通信链路最怕什么?单点故障。我设计系统时,一定会做三重冗余:

  • 链路层冗余:4G/5G + 数传电台 + WiFi(近距离),三条链路同时在线
  • 协议层冗余:心跳超时1秒切换,丢包率超过20%自动切
  • 应用层冗余:地面站双机热备,一台挂了另一台秒接管

我的经验:链路切换时间控制在500ms以内,人眼基本无感。超过1秒,飞控就会触发保护动作。我写过一段链路切换的Python代码,核心逻辑就是:

def check_link_health():
    # 检查主链路(4G)
    if ping("4g_gateway", timeout=0.5):
        return "primary"
    # 检查备份链路(数传)
    if check_radio_link():
        return "backup"
    # 都挂了,触发紧急降落
    return "emergency_land"

说白了,通信链路设计就是一场平衡游戏。你要在成本、带宽、延迟、可靠性之间找最优解。没有完美的方案,只有最适合你场景的方案。

好了,这一章的内容就到这里。记住一句话:通信链路是无人机系统的生命线。设计时多花一分心思,现场就少十分麻烦。


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