1. 从一根网线说起:AGV通信为什么不能只靠"够用就行"
我最早调试AGV的时候,踩过一个大坑:车跑起来了,但调度系统隔三差五丢状态,地图下发经常中断,以为是程序逻辑问题,查了半天发现根源是Wi-Fi信号不稳,更准确地说,是压根没给小车设计一套合格的通信架构。
那时我用的方案很朴素——AGV上挂一个Wi-Fi模块,路由器放产线角落,调度服务跑在PC上,车端和PC端之间用TCP长连接发指令。结果一跑起来状况百出:小车经过金属货架区就断连,调度员在电脑前干瞪眼,AGV停在过道里等恢复。后来我翻了日志,发现断线重连逻辑写得又简陋,对端异常退出根本没处理,恢复时间长达几十秒,这在真实产线上是不可接受的。
所以做AGV通信,第一步不是选模块,而是把"通信链路"当成系统设计的一部分。当前主流的AGV/智能小车通信,已经从单链路走向多链路融合:Wi-Fi负责大带宽、大范围的数据交互,蓝牙承担近场调试和外围设备连接,MQTT负责跨系统、跨设备的消息流转。三种方式各有分工,互相补位,这套架构做扎实了,AGV才是真的"耳聪目明"。
这篇文章,我会把AGV通信架构拆开讲透,先说为什么要拆分工,再逐个讲Wi-Fi、蓝牙、MQTT在实战中的选型、配置、踩坑和联动方案。整篇内容都基于我在实际项目里的经验,适合正在做智能小车、AGV调度、物流机器人项目,或者打算从单片机小车转向完整系统设计的开发者。你不需要一开始就懂很深,但看完之后,应该能对自己的通信方案有个全盘规划。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Wi-Fi链路:AGV的主干道,但别拿它当"万能药"
2.1 AGV对Wi-Fi的需求,和手机上网完全不是一回事
很多人觉得Wi-Fi嘛,连上能用就行,但AGV场景对Wi-Fi的要求完全不同。手机刷视频断几秒无所谓,AGV在自动运行中如果网络抖动超过几百毫秒,要么急停,要么撞人撞货,丢包率高一点,调度体验就会非常糟糕。
AGV对Wi-Fi的核心诉求有三个:低延迟、零漫游断连、多设备并发稳定。低延迟好理解,几百毫秒的响应时间差在几百公斤的AGV身上就是几十厘米的位移;零漫游断连这个很多人忽略,产线几百米的范围不可能靠一个AP覆盖,AGV从一个AP覆盖区走到另一个AP覆盖区,如果漫游切换过程中连接断了,TCP连接重建的代价非常大;多设备并发更不用说了,几十台AGV同时在线,每台车每秒上报状态、接收指令,这跟几十个人同时连Wi-Fi刷视频是两码事。
所以选型时,我建议优先用支持802.11k/v/r快速漫游协议的工业级AP,不要用家用路由器。家用路由器不是不能用,但它的漫游策略是为移动设备优化的,切换AP时往往需要重新认证,重连延迟动辄几百毫秒到秒级。工业AP配合AC控制器,可以把漫游切换时间压缩到50毫秒以内,这个差距在AGV调度里是致命的。
2.2 工控机上的Wi-Fi配置:Ubuntu服务器不连网,是真的头大
AGV车载控制器用Ubuntu系统的比例很高,而Ubuntu服务器版本默认不带桌面,网络配置全靠命令行,经常有人卡在这里。我见过最典型的场景是:工控机装了Ubuntu Server,插上无线网卡,然后发现自己完全不知道怎么配Wi-Fi。
这里我分享一套在无桌面环境下稳定的Wi-Fi配置方法,以Ubuntu 20.04+NetworkManager为例(现在新版本也兼容):
先确认无线网卡被识别:
bash复制ip link show
找到wlan0这样的无线接口。如果找不到,优先查驱动,最常见的坑是网卡需要安装闭源驱动,比如Intel AX210在旧内核下需要手动装固件,Realtek网卡也常有类似问题。然后再看NetworkManager是否接管了它:
bash复制nmcli device status
接着用nmcli连接Wi-Fi:
bash复制nmcli device wifi connect "你的SSID" password "你的密码"
如果你希望AGV每到一个位置都自动重连这个网络,可以设置autoconnect:
bash复制nmcli connection modify "你的SSID" connection.autoconnect yes
但这里有一个重要的坑:AGV车载端不要用DHCP自动获取IP。AGV的调度系统、上位机、底层控制器之间通常有固定IP规划,一旦网络里IP漂移,整个调度关系就乱了。建议给AGV分配静态IP,可以参考这样配置:
bash复制nmcli connection modify "你的SSID" ipv4.method manual \
ipv4.addresses 192.168.1.101/24 \
ipv4.gateway 192.168.1.1 \
ipv4.dns 114.114.114.114
然后重启网络:
bash复制sudo systemctl restart NetworkManager
提示:如果你是用NetworkManager管理的连接,不要去直接编辑/etc/network/interfaces,两套体系冲突会让网卡起不来。很多刚从桌面版转过来的人容易在这里踩坑。
2.3 漫游和干扰:AGV走到墙角就不动了,别再只会重启路由器
Wi-Fi装好只是第一步,AGV在真实场景里最折磨人的是信号盲区和干扰。
盲区:AGV走得很慢,穿行货架、金属柜体、升降门时信号衰减非常快,金属货架对2.4GHz信号的反射和吸收都很严重。我建议做项目时不要凭感觉布AP,先做一轮现场的Wi-Fi信号热力图扫描,用带测绘功能的手持设备或笔记本装个Wi-Fi分析工具,沿着AGV运行路径逐点测信号强度和丢包率。
布点的时候还要注意:AP尽量不要和AGV的天线在同一水平面安装。AGV天线通常在车体顶部,如果把AP也挂在AGV一样高度,很容易被货架和人遮挡;实际项目中,AP吊装到3米以上高度、天线方向朝下45度左右,覆盖效果好很多。
干扰:产线上2.4GHz设备极多——无线鼠标、蓝牙耳机、甚至微波炉。AGV这种对实时性要求高的场景,强烈建议用5GHz频段。5GHz的穿透能力弱一些,但频段干净、抗干扰能力强。设置AP时可以把支持5GHz的SSID单独分出来,AGV只连5GHz,其他终端连2.4GHz,避免挤在一起。
还有一个容易忽略的点——漫游阈值。AGV用的Wi-Fi网卡
