[行业新闻] 具身智能产品已商业化落地,市场或达9731......
2025-04-30
[行业新闻] 京东物流智狼出海!首次亮相韩国首尔物流仓储......
2025-04-28
[行业新闻] 开仓即满仓!京东物流连开韩国仁川、利川两大......
2025-04-25
[行业新闻] 里工荣登“人形机器人与具身智能最具投资价值......
2025-04-24
[行业新闻] 全厂(物流)!顺力智能亮相东莞市人工智能产......
2025-04-24
2025-04-23
2025-04-23
[行业新闻] 济南:起步区2026年部署无人快递车100......
2025-04-23
[行业新闻] 唯一中国企业!京东物流斩获中国电子学会自然......
2025-04-22
2025-04-22
[518原创] 518智能装备在线走访蚂蚁侠科技,共......
2025-04-30
[518原创] 盛况直击|镭神智能激光雷达闪耀FAI......
2025-04-26
[518原创] 首届机器人全产业链接会(FAIRpl......
2025-04-26
[518原创] 【4月25日论坛】海康机器人、寻迹智......
2025-04-25
此次使用LTE芯片是SIMCOM公司的SIM7600CE芯片,它可支持GSM,TD-SCDMA,CDMA,WCDMA,TDD-LTE和FDD-LTE等频段,支持TCP/IP/IPV4/IPV6/MQTT等,可以根据实际情况灵活选择通信协议和方式,支持LTE-CAT4,上行最大速率50Mb/s,下行最大速率150Mb/s,经过实物调试,可以满足AGV于服务器之间的数据信息交互[5]。
MQTT 消息队列遥测传输(Message Queuing Telemetry Transport)是ISO标准(ISO/IEC PRF 20922)[6] 下基于发布/订阅范式的消息协议。它工作在TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布 / 订阅型消息协议 [7]。
相较于传统的 HTTP 查询,MQTT 具有以下的优势 [8] :
(1)MQTT 使用发布 / 订阅范式,可以提供双向的链接。
(2)MQTT 带有 QoS(Quality of Service)功能,对于容量有限的网络可以提供高传输保证,共有三个 QoS 等级 :保证尽力交付 ;保证消息至少传送一次 ;保证每个消息仅被对方接收一次。
(3)MQTT 带有遗言(Last Will and Testament)和保留信息(Retained Messages)功能,前者使客户端在异常离线之后服务端能及时接收到客户端异常离线的信息,后者使上线后客户端能及时接收到服务端发送的信息。
一种 MQTT 连接(QoS 0)的示例如图 3 所示。
图 3 一种 MQTT 连接(QoS 0)的示例
表 1 为分别使用两种方式请求云服务器 10 次,并收到服务器返回字符串 {“hello”:“world”} 字符串的抓包统计数据,从统计结果可知,MQTT 协议相较于 HTTP GET 方式在传送数据包个数以及数据包长度上均有明显优势。
表 1 MQTT 协议和 HTTP 协议网络流量统计
本次使用的 MQTT Broker 为 EMQX,其提供有方便的Docker 部署以及便利的仪表板可用作 Broker 的管理和信息的发送接收,通过编写 Dockerfile 和 Docker-composer 封装成容器之后,可以在其他服务器中简单的配置好环境,配置环境如命令如下 :
$ docker pull emqx/emqx :v3.1.0
$ docker run -d --name emqx31 -p 1883 :1883 -p 8083 :8083 -p 8883 :8883 -p 8084 :8084 -p 18083 :18083 emqx/emqx :v3.1.0
当 Broker 收到消息后转发给服务器后端进行处理,本例服务器端采用Eclipse Paho MQTT Python Client接收Broker转发的信息。Eclipse Paho MQTT Python Client除了支持以非阻塞的模式运行以外,还提供了许多回调函数可供在不同情况下使用与处理回调信息 [9]。
本文通过使用on_message回调函数,自动将MQTTClient接收到的信息存储到变量msg中,再通过调用自行编写的write_payload函数传递给主程序进行处理。多线程架构如图 4 所示。
图 4 多线程架构
为了提高服务器后端的工作效率, 本文中分别对RESTful API和MQTTClient创建了一个进程, 通过使用threading库调度两个线程协同运作。
表现层状态转换(Representational State Transfer,REST)是Roy Thomas Fielding于2000年在他的博士论文 [10] 中提出来的一种万维网软件架构风格,目的是便于不同软件 /程序在网络中互相传递信息。
RESTful API 将服务器上存储的数据抽象成为一个资源,并用 URL 作为其标识,使用通用的 HTTP 请求方法(GET,POST,PUT,DELETE)对其进行增改删查的操作。相较于普通的 API,RESTful API 建模的过程与面向对象的建模过程类似,因此也比较契合 Python 的编程思想。
服务器后台程序基于以上原理使用 Python 进行编写。Python 有非常方便的库用于构建 RESTful API 和处理 Json格式数据,同时也可以移植到其他系统。本文中 APP 使用wx.reguest 向服务器请求数据后可以直接解析调用,十分方便。
APP 分为总览、车辆管理和包裹管理三部分。总览部分可以看到一些基本的统计信息,车辆管理部分可以对小车进行下线和召回等的管理,包裹管理可以对包裹进行新增、修改、分配小车运送等的管理。APP 界面如图 5 所示。
第六期“全国移动机器人行业巡回调研活动”合作商招募中
报名热线:400-0756-518
活动时间:2023-09-01至11-30
Copyright © 2018-2025, 服务热线 400-0756-518
www.zhineng518.com,All rights reserved
版权所有 © 518智能装备在线 未经许可 严禁复制 【冀ICP备19027659号-2】 【公安备13050002001911】
运营商:河北大为信息科技有限公司