第4章:多机通信组网
通信组网这事儿,说白了就是让几架无人机能互相说话。我刚开始做多机协同的时候,以为只要把数传模块对上频就行,结果第一次试飞就出了大问题——两架飞机同时发指令,地面站直接懵了。嗯,从那以后我才认真研究起组网方案来。
4.1 点对点通信
最简单的组网方式,就是一对一。一架无人机和一个地面站直接通信,像打电话一样。
我在项目中遇到过这种情况:用点对点做编队飞行,长机发指令给僚机。好处是延迟低,坏处是——你想想看,如果长机掉线了,整个编队就散了。
适用场景:双机编队、中继链路、简单遥控
典型参数:波特率115200,通信距离3-5km(视距内)
4.2 星型网络
星型网络就是所有无人机都跟地面站通信,无人机之间不直接说话。地面站是中心节点,负责转发所有消息。
我个人习惯在10架以下的编队里用星型网络。为什么?因为实现简单,地面站做路由就行了。但有个坑——我曾经遇到过地面站天线被遮挡,整个网络瞬间瘫痪的情况。
| 特性 | 星型网络 | 点对点 |
|---|---|---|
| 节点数量 | 2-20 | 2 |
| 延迟 | 低(中心转发) | 极低 |
| 可靠性 | 依赖中心节点 | 高 |
| 部署难度 | 简单 | 最简单 |
4.3 Mesh自组网
Mesh网络是我现在最常用的方案。每个无人机都能当路由器,消息可以跳来跳去。说白了,就是每个节点都能转发数据。
我记得有一次做20架集群表演,用的就是Mesh。有一架飞机飞到了楼后面,信号断了。但其他飞机自动帮它中继,整个网络没掉线。这就是Mesh的魅力。
避坑指南:我曾经在Mesh网络里忘记设置最大跳数,结果消息在网络里无限循环,把带宽全吃光了。一定要设跳数上限,一般3-5跳就够了。
Mesh的缺点也很明显——节点越多,路由开销越大。我建议20架以内用全连接Mesh,超过20架用分层Mesh。
4.4 通信频段选择
频段选择这事儿,说白了就是权衡距离、带宽和抗干扰能力。
- 2.4G:穿透性好,距离远,但干扰多(WiFi、蓝牙都在这个频段)。我一般用在远距离巡检场景。
- 5.8G:带宽大,延迟低,但穿透差。适合图传和近距离编队。
- 4G:不受距离限制,但依赖基站,延迟不稳定。我做过一个跨城市巡检项目,用的就是4G。
注意:2.4G和5.8G在市区干扰严重。我曾经在CBD试飞,2.4G信道全被占满,最后被迫切到5.8G。建议飞前先扫频。
4.5 链路预算
链路预算就是算算信号能传多远。公式很简单:
接收功率 = 发射功率 + 天线增益 - 路径损耗 - 其他损耗
路径损耗用自由空间模型估算:
L = 32.4 + 20log10(f) + 20log10(d)
其中f是频率(MHz),d是距离(km)
举个例子:2.4G,5km距离,路径损耗大约是:
L = 32.4 + 20log10(2400) + 20log10(5)
= 32.4 + 67.6 + 14.0
= 114 dB
如果发射功率20dBm,天线增益3dBi,接收灵敏度-95dBm,那链路余量就是:
余量 = 20 + 3 - 114 - (-95) = 4 dB
4dB的余量其实很危险。我一般要求至少10dB余量,不然遇到雨衰或遮挡就掉线了。
4.6 丢包处理
丢包是无线通信的家常便饭。我处理丢包的策略分三层:
- 物理层:用跳频和重传。我习惯用FHSS(跳频扩频),每秒跳50次以上,抗干扰效果很好。
- 链路层:用ACK确认机制。发一个包等ACK,超时重传。重传次数设3次,再多就丢包了。
- 应用层:用冗余编码。比如发关键指令时,连续发3次同样的内容。接收端用多数表决。
我的经验:丢包率超过10%时,先别急着加重传。先检查天线安装位置——我遇到过好几次,丢包是因为天线被碳纤维机身挡住了。
4.7 知识体系总览
下面这张图是我自己整理的组网知识结构,你一看就明白了:
这张图把本章的核心内容串起来了。你从组网拓扑开始选型,然后定频段,算链路预算,最后处理丢包。每一步都有坑,但按这个流程走,基本不会出大问题。