Skip to content

4. 传输协议

通信通过无线网络进行,需要考虑连接失败和消息丢失的影响。

消息协议采用 MQTT (Message Queuing Telemetry Transport) 结合 JSON 格式。

MQTT 3.1.1 是最低兼容版本。

MQTT 允许将消息分发到称为"主题"(Topic)的子通道。MQTT 网络中的参与者订阅这些主题,接收与其相关的信息。

JSON 格式允许协议未来扩展额外的参数,并支持基于 Schema 的验证。

4.1 连接处理、安全与 QoS

Last Will 消息

MQTT 协议提供设置"最后遗言"(Last Will)消息的选项。如果客户端意外断开连接,Last Will 消息将由 Broker 分发给其他订阅的客户端。该功能的使用在第 6.5 节中有详细描述。

断开连接处理

如果移动机器人与 Broker 断开连接,它应保留所有订单信息并执行到最后一个已发布节点为止的订单。

QoS 级别

为减少通信开销,对以下主题使用 MQTT QoS 级别 0 (Best Effort)

  • order
  • instantActions
  • state
  • factsheet
  • zoneSet
  • responses
  • visualization

对主题 connection 使用 QoS 级别 1 (At Least Once)

安全

协议安全需要由 Broker 配置来考虑,但本规范不涉及此方面。

4.2 主题级别

由于云提供商的强制主题结构,MQTT 主题结构没有严格定义。对于基于云的 MQTT Broker,主题结构可能需要单独调整,但应大致遵循建议的结构。

以下章节中定义的主题名称是强制性的

对于本地 Broker,建议的 MQTT 主题级别结构如下:

interfaceName/majorVersion/manufacturer/serialNumber/topic

示例

vda5050/v3/KIT/0001/order

主题级别参数说明

主题级别数据类型说明
interfaceNamestring使用的接口名称
majorVersionstringVDA 5050 建议的主版本号,前缀为 "v"
manufacturerstring移动机器人制造商
serialNumberstring移动机器人唯一序列号,可使用字符:A-Z, a-z, 0-9, _, ., :, -
topicstring主题名称(如 order, state),见第 4.4 节

注意:由于 / 字符用于定义主题层次结构,上述任何字段中都不应使用该字符。通配符字符 +# 以及 Broker 内部主题保留的字符 $ 也不应使用。

4.3 通信主题

协议使用以下主题在车队控制和移动机器人之间交换信息:

主题名称发布者订阅者用途实现Schema
order车队控制移动机器人订单通信必选order.schema
instantActions车队控制移动机器人即时动作通信必选instantActions.schema
state移动机器人车队控制移动机器人状态通信必选state.schema
visualization移动机器人可视化系统高频位置和规划路径通信可选visualization.schema
connectionBroker / 移动机器人车队控制指示移动机器人连接丢失。不应被车队控制用于检查移动机器人健康状态,仅用于 MQTT 协议级别的连接检查必选connection.schema
factsheet移动机器人车队控制参数或供应商特定信息,帮助车队控制设置移动机器人必选factsheet.schema
zoneSet车队控制移动机器人区域集从车队控制传输到移动机器人可选zoneSet.schema
responses车队控制移动机器人车队控制对移动机器人状态中请求的响应可选responses.schema

表 1:车队控制和移动机器人之间的通信主题

基于 VDA 5050 Version 3.0.0