VDA 5050 토픽과 메시지 구조
VDA 5050 표준은 관제와 차량이 MQTT와 JSON으로 교환하는 토픽과 메시지 형식을 규정한다.
표준의 범위
제조사가 서로 다른 차량을 하나의 관제에 연동하려면 메시지 형식이 동일해야 한다. VDA 5050은 관제(fleet control)와 차량(mobile robot)이 MQTT 브로커를 거쳐 JSON 메시지를 교환하는 방식을 규정한다.
토픽 구조
interfaceName/majorVersion/manufacturer/serialNumber/topic
vda5050/v3/makerA/0001/order
majorVersion은 표준의 주 버전에 v를 붙인 값이고, manufacturer와 serialNumber는 차량의 제조사와 일련번호이다. 마지막 topic이 메시지 종류이다.
메시지 종류와 방향
| 종류 | 방향 | 내용 |
|---|---|---|
order |
관제 → 차량 | 주행 지시 |
instantActions |
관제 → 차량 | 즉시 실행할 동작 |
state |
차량 → 관제 | 차량 상태 |
connection |
차량·브로커 → 관제 | 연결 상태 알림(단절 포함) |
표준에는 이 외에 factsheet, visualization, zoneSet, responses가 있다. QoS는 connection만 1이고 나머지는 모두 0이다. retain은 connection과 factsheet에 사용한다.
order의 노드와 엣지
order는 통과할 노드와 노드 사이를 연결하는 엣지의 목록이다. sequenceId는 첫 노드가 0, 첫 엣지가 1이며 노드와 엣지가 교대로 이어진다. released가 true인 구간은 차량이 통과할 구간이고, false인 구간은 아직 확정되지 않은 구간이다.
{
"headerId": 1,
"timestamp": "2026-08-06T09:00:00.000Z",
"version": "3.0.0",
"manufacturer": "makerA",
"serialNumber": "0001",
"orderId": "order-17",
"orderUpdateId": 0,
"nodes": [
{"nodeId": "n1", "sequenceId": 0, "released": true, "actions": []},
{"nodeId": "n2", "sequenceId": 2, "released": true, "actions": []}
],
"edges": [
{"edgeId": "e1", "sequenceId": 1, "released": true, "actions": []}
]
}
경로를 연장할 때는 orderId를 유지하고 orderUpdateId를 증가시켜 다시 전송한다.