VDA5050 Core v3.0 (NexOS Robotics) 2.0.0+bot.0

NexOS Robotics 對 VDA5050 v3.0(2024 年發表,main 分支版本)的核心 MQTT 通訊規格。

與 v2.0(asyncapi-core.yaml雙版本並行:v2 機器人沿用 /uagv/v2/ topic 樹,v3 機器人改走 /vda5050/v3/ topic 樹。Backend(雙 prefix 訂閱 + per-robot 版本鎖定)與 IoT Gateway(雙 Listener

  • version-pinned Responder)皆已支援雙軌——細節見 docs/vda5050/v3-upgrade-strategy.html

目前狀態(Phase 4 完成):v3 leaf schema(common + enums)已由 bot codegen 從 packages/shared-types/src/vda5050.tsVda5050V3* 介面產出於 schemas/v3/, v3 message wrapper(order / instant-actions / state / connection / visualization / factsheet)由人類維護於 schemas/v3/messages/,組合 v3 common 與 enums 的 $ref。 Example payload 暫沿用 v2 examples(向後相容;待 v3 範例補完後切換)。

與 v2.0 的關鍵差異(彙整)

  1. Topic 前綴/uagv/v2/{mfr}/{sn}/{channel}/vda5050/v3/{mfr}/{sn}/{channel}
  2. Header 版本字串"version": "2.0.0""version": "3.0.0"
  3. AGV 重命名 → MobileRobotagvPositionmobileRobotPositionagvActionScopesmobileRobotActionScopes 等(state 訊息變動最多)
  4. BatteryState → PowerSupply:欄位重組以支援多種能源源類型
  5. ConnectionState 列舉CONNECTIONBROKENCONNECTION_BROKEN,新增 HIBERNATING
  6. OperatingMode 列舉:新增 STARTUP / INTERVENEDTEACHIN 改為 TEACH_IN
  7. BlockingType 列舉:新增 SINGLE(但 instantAction 強制只能用 NONE
  8. ActionStatus 列舉:新增 RETRIABLE
  9. allowedDeviationXY:v2 的數字半徑改為 v3 的橢圓(thetaX / thetaY)。 Stage 3 task-order task-order.service.ts 已依 robot capability 在派工層動態切換寫法。
  10. 新增標準 instantActionclearInstantActionsclearAllErrors(共 8 種標準動作)

詳細對照表見 docs/vda5050/v3-upgrade-strategy.html §3

2.0.0+bot.0 — 2026-06-11 (human:phase-4-schema)

  • 拆分 v3 common / enums leaf schema 到 schemas/v3/(29 份,由 bot codegen 產出)
  • 新增 6 份 v3 message wrapper(schemas/v3/messages/): order / instant-actions / state / connection / visualization / factsheet
  • 所有 v3 message $ref 切換到 v3 schema;example payload 暫沿用 v2

2.0.0+v3-draft — 2026-06-11 (human:phase-4-init)

  • 建立 v3.0 雙版本並行 AsyncAPI spec 草案
  • 6 個 channel 路徑全面切換到 /vda5050/v3/ 前綴
  • Message payload schema 暫沿用 v2(向後相容);完整 v3 schema 拆分留待後續 bot codegen 升級

Servers

  • mqtt://nexmqtt.jini.tw/mqtt 3.1.1production

    EMQX Broker(生產)

    Security:
    • User/Password

      EMQX 帳號密碼(實際值由環境變數提供)

    object
  • mqtt://localhost:1883/mqtt 3.1.1development

    本機開發 EMQX(無認證)

Operations

  • SEND /vda5050/v3/{manufacturer}/{serialNumber}/order

    Master Control 下達任務給 Mobile Robot(v3 — version 欄位需為 "3.0.0"

    Master Control 發送 Order 給 Mobile Robot(v3)

    Operation IDsendOrder

    Available only on servers:

    object
    manufacturerstring
    required

    廠商代碼

    serialNumberstring
    required

    機器人序號

    object
    object

    Accepts the following message:

    VDA5050 v3 Order
    Message IDOrder
    object allOf

    Master Control → AGV 的任務訊息(VDA5050 v3.0)。 v3 變更:新增 orderDescription 頂層欄位;nodes/edges 使用 v3 common 結構。

    Examples

  • RECEIVE /vda5050/v3/{manufacturer}/{serialNumber}/order

    Master Control 下達任務給 Mobile Robot(v3 — version 欄位需為 "3.0.0"

    Mobile Robot 接收 Order(v3)

    Operation IDreceiveOrder

    Available only on servers:

    object
    manufacturerstring
    required

    廠商代碼

    serialNumberstring
    required

    機器人序號

    object
    object

    Accepts the following message:

    VDA5050 v3 Order
    Message IDOrder
    object allOf

    Master Control → AGV 的任務訊息(VDA5050 v3.0)。 v3 變更:新增 orderDescription 頂層欄位;nodes/edges 使用 v3 common 結構。

    Examples

  • SEND /vda5050/v3/{manufacturer}/{serialNumber}/instantActions

    雙向 channel:Master → Mobile Robot 下達即時動作;Mobile Robot / Dispatcher → Master 回應。

    v3 標準 instantAction 共 8 種:cancelOrder startPause stopPause stateRequest factsheetRequest initPosition 加上 v3 新增的 clearInstantActions clearAllErrors

    專案自訂 instantAction(補足 spec 未涵蓋的場域維運場景,blockingType 統一 NONE):

    • retry:AMR 回報 error(NO_ROUTE_TO_TARGET / AISLE_BLOCKED 等)後,中控指示重試。 參數:orderId errorType targetNodeId? targetEdgeId? retryMode(same_route / replan / clear_costmap_then_retry)
    • skipRetry:取消正在進行中的重試流程。 參數:orderId errorType? targetNodeId? targetEdgeId? reason
    • skipNode:跳過目前 node 前進到下一個 node。 參數:orderId currentNodeId currentNodeSequenceId nextNodeId nextNodeSequenceId reason

    blockingType 在 instantAction 上強制只能用 NONE

    Master Control 發送 InstantActions(v3)

    Operation IDsendInstantActions

    Available only on servers:

    object
    manufacturerstring
    required

    廠商代碼

    serialNumberstring
    required

    機器人序號

    object
    object

    Accepts the following message:

    VDA5050 v3 InstantActions
    Message IDInstantActions
    object allOf

    雙向 instant actions 訊息(VDA5050 v3.0)。 v3 變更:欄位從 instantActions 改名為 actions;blockingType 限定為 NONE。

    Examples

  • RECEIVE /vda5050/v3/{manufacturer}/{serialNumber}/instantActions

    雙向 channel:Master → Mobile Robot 下達即時動作;Mobile Robot / Dispatcher → Master 回應。

    v3 標準 instantAction 共 8 種:cancelOrder startPause stopPause stateRequest factsheetRequest initPosition 加上 v3 新增的 clearInstantActions clearAllErrors

    專案自訂 instantAction(補足 spec 未涵蓋的場域維運場景,blockingType 統一 NONE):

    • retry:AMR 回報 error(NO_ROUTE_TO_TARGET / AISLE_BLOCKED 等)後,中控指示重試。 參數:orderId errorType targetNodeId? targetEdgeId? retryMode(same_route / replan / clear_costmap_then_retry)
    • skipRetry:取消正在進行中的重試流程。 參數:orderId errorType? targetNodeId? targetEdgeId? reason
    • skipNode:跳過目前 node 前進到下一個 node。 參數:orderId currentNodeId currentNodeSequenceId nextNodeId nextNodeSequenceId reason

    blockingType 在 instantAction 上強制只能用 NONE

    Mobile Robot 接收 InstantActions(v3)

    Operation IDreceiveInstantActions

    Available only on servers:

    object
    manufacturerstring
    required

    廠商代碼

    serialNumberstring
    required

    機器人序號

    object
    object

    Accepts the following message:

    VDA5050 v3 InstantActions
    Message IDInstantActions
    object allOf

    雙向 instant actions 訊息(VDA5050 v3.0)。 v3 變更:欄位從 instantActions 改名為 actions;blockingType 限定為 NONE。

    Examples

  • SEND /vda5050/v3/{manufacturer}/{serialNumber}/state

    Mobile Robot → Master 狀態回報(1–10 Hz)。v3 將 agvPosition 改為 mobileRobotPositionbatteryState 改為 powerSupply,並新增 instantActionStates / maps / zoneSets / plannedPath / intermediatePath 等欄位。payload 採用 schemas/v3/messages/state.yaml

    Mobile Robot 發布狀態(v3)

    Operation IDpublishState

    Available only on servers:

    object
    manufacturerstring
    required

    廠商代碼

    serialNumberstring
    required

    機器人序號

    object
    object

    Accepts the following message:

    VDA5050 v3 State
    Message IDState
    object allOf

    AGV → Master 狀態訊息(VDA5050 v3.0)。 v3 變更:agvPosition→mobileRobotPosition、batteryState→powerSupply、informations→information; 新增 instantActionStates、zoneActionStates、maps、zoneSets、plannedPath、intermediatePath、 zoneRequests、edgeRequests。

    Examples

  • RECEIVE /vda5050/v3/{manufacturer}/{serialNumber}/state

    Mobile Robot → Master 狀態回報(1–10 Hz)。v3 將 agvPosition 改為 mobileRobotPositionbatteryState 改為 powerSupply,並新增 instantActionStates / maps / zoneSets / plannedPath / intermediatePath 等欄位。payload 採用 schemas/v3/messages/state.yaml

    Master Control 接收狀態(v3)

    Operation IDreceiveState

    Available only on servers:

    object
    manufacturerstring
    required

    廠商代碼

    serialNumberstring
    required

    機器人序號

    object
    object

    Accepts the following message:

    VDA5050 v3 State
    Message IDState
    object allOf

    AGV → Master 狀態訊息(VDA5050 v3.0)。 v3 變更:agvPosition→mobileRobotPosition、batteryState→powerSupply、informations→information; 新增 instantActionStates、zoneActionStates、maps、zoneSets、plannedPath、intermediatePath、 zoneRequests、edgeRequests。

    Examples

  • SEND /vda5050/v3/{manufacturer}/{serialNumber}/connection

    Mobile Robot → Master 連線狀態(建議設 MQTT LWT)。v3 列舉變更: CONNECTIONBROKENCONNECTION_BROKEN,並新增 HIBERNATING

    Mobile Robot 發布連線狀態(v3,建議搭配 LWT)

    Operation IDpublishConnection

    Available only on servers:

    object
    manufacturerstring
    required

    廠商代碼

    serialNumberstring
    required

    機器人序號

    object
    object

    Accepts the following message:

    VDA5050 v3 Connection
    Message IDConnection
    object allOf

    AGV → Master 連線狀態訊息(VDA5050 v3.0)。建議設 MQTT LWT。 v3 變更:connectionState enum 與 v2 結構相同,但走 v3 topic prefix(/vda5050/v3/…)。

    Examples

  • RECEIVE /vda5050/v3/{manufacturer}/{serialNumber}/connection

    Mobile Robot → Master 連線狀態(建議設 MQTT LWT)。v3 列舉變更: CONNECTIONBROKENCONNECTION_BROKEN,並新增 HIBERNATING

    Master Control 接收連線狀態(v3)

    Operation IDreceiveConnection

    Available only on servers:

    object
    manufacturerstring
    required

    廠商代碼

    serialNumberstring
    required

    機器人序號

    object
    object

    Accepts the following message:

    VDA5050 v3 Connection
    Message IDConnection
    object allOf

    AGV → Master 連線狀態訊息(VDA5050 v3.0)。建議設 MQTT LWT。 v3 變更:connectionState enum 與 v2 結構相同,但走 v3 topic prefix(/vda5050/v3/…)。

    Examples

  • SEND /vda5050/v3/{manufacturer}/{serialNumber}/visualization

    Mobile Robot → Master 高頻位置更新(10–30 Hz)

    Operation IDpublishVisualization

    Available only on servers:

    object
    manufacturerstring
    required

    廠商代碼

    serialNumberstring
    required

    機器人序號

    object
    object

    Accepts the following message:

    VDA5050 v3 Visualization
    Message IDVisualization
    object allOf

    AGV → Master 高頻位置更新(VDA5050 v3.0,10–30 Hz)。 v3 變更:新增必需欄位 referenceStateHeaderId;agvPosition→mobileRobotPosition; 新增 plannedPath / intermediatePath。

    Examples

  • RECEIVE /vda5050/v3/{manufacturer}/{serialNumber}/visualization

    Mobile Robot → Master 高頻位置更新(10–30 Hz)

    Operation IDreceiveVisualization

    Available only on servers:

    object
    manufacturerstring
    required

    廠商代碼

    serialNumberstring
    required

    機器人序號

    object
    object

    Accepts the following message:

    VDA5050 v3 Visualization
    Message IDVisualization
    object allOf

    AGV → Master 高頻位置更新(VDA5050 v3.0,10–30 Hz)。 v3 變更:新增必需欄位 referenceStateHeaderId;agvPosition→mobileRobotPosition; 新增 plannedPath / intermediatePath。

    Examples

  • SEND /vda5050/v3/{manufacturer}/{serialNumber}/factsheet

    Mobile Robot → Master 規格表(v3 新增 protocolVersion / supportedV3Capabilities 等欄位)

    Operation IDpublishFactsheet

    Available only on servers:

    object
    manufacturerstring
    required

    廠商代碼

    serialNumberstring
    required

    機器人序號

    object
    object

    Accepts the following message:

    VDA5050 v3 Factsheet
    Message IDFactsheet
    object allOf

    AGV → Master 功能規格表(VDA5050 v3.0)。 v3 變更:agvKinematic/agvClass→mobileRobotKinematic/mobileRobotClass; physicalParameters 多欄位改名(speedMin→minimumSpeed 等);agvActions→mobileRobotActions; agvGeometry→mobileRobotGeometry;新增 mobileRobotConfiguration 頂層欄位。

    Examples

  • RECEIVE /vda5050/v3/{manufacturer}/{serialNumber}/factsheet

    Mobile Robot → Master 規格表(v3 新增 protocolVersion / supportedV3Capabilities 等欄位)

    Operation IDreceiveFactsheet

    Available only on servers:

    object
    manufacturerstring
    required

    廠商代碼

    serialNumberstring
    required

    機器人序號

    object
    object

    Accepts the following message:

    VDA5050 v3 Factsheet
    Message IDFactsheet
    object allOf

    AGV → Master 功能規格表(VDA5050 v3.0)。 v3 變更:agvKinematic/agvClass→mobileRobotKinematic/mobileRobotClass; physicalParameters 多欄位改名(speedMin→minimumSpeed 等);agvActions→mobileRobotActions; agvGeometry→mobileRobotGeometry;新增 mobileRobotConfiguration 頂層欄位。

    Examples

  • SEND /vda5050/v3/{manufacturer}/{serialNumber}/zoneSet

    Fleet Control → Mobile Robot 區域規則集分發(v3.0 新增 topic)。 內含 10 種 zoneType(BLOCKED / SPEED_LIMIT / ACTION / RELEASE / PRIORITY / PENALTY / DIRECTED / BIDIRECTED / LINE_GUIDED / COORDINATED_REPLANNING),每種觸發不同條件欄位。 QoS 0(無需保留);AMR 比對 state.zoneSets[].zoneSetId 更新本地快取。

    Fleet Control 發送 ZoneSet 區域規則給 Mobile Robot(v3 新增)

    Operation IDsendZoneSet

    Available only on servers:

    object
    manufacturerstring
    required

    廠商代碼

    serialNumberstring
    required

    機器人序號

    object
    object

    Accepts the following message:

    VDA5050 v3 ZoneSet (新增)
    Message IDZoneSet
    object allOf

    Fleet Control → AMR 的區域規則集訊息(VDA5050 v3.0 新增)。 分發 Zone 規則(BLOCKED / SPEED_LIMIT / ACTION / RELEASE 等)給 AMR 用於規劃與行為調整。 QoS 0(無需保留),AMR 收到後比對 state.zoneSets[].zoneSetId 更新本地快取。

    Examples

  • RECEIVE /vda5050/v3/{manufacturer}/{serialNumber}/zoneSet

    Fleet Control → Mobile Robot 區域規則集分發(v3.0 新增 topic)。 內含 10 種 zoneType(BLOCKED / SPEED_LIMIT / ACTION / RELEASE / PRIORITY / PENALTY / DIRECTED / BIDIRECTED / LINE_GUIDED / COORDINATED_REPLANNING),每種觸發不同條件欄位。 QoS 0(無需保留);AMR 比對 state.zoneSets[].zoneSetId 更新本地快取。

    Mobile Robot 接收 ZoneSet(v3 新增)

    Operation IDreceiveZoneSet

    Available only on servers:

    object
    manufacturerstring
    required

    廠商代碼

    serialNumberstring
    required

    機器人序號

    object
    object

    Accepts the following message:

    VDA5050 v3 ZoneSet (新增)
    Message IDZoneSet
    object allOf

    Fleet Control → AMR 的區域規則集訊息(VDA5050 v3.0 新增)。 分發 Zone 規則(BLOCKED / SPEED_LIMIT / ACTION / RELEASE 等)給 AMR 用於規劃與行為調整。 QoS 0(無需保留),AMR 收到後比對 state.zoneSets[].zoneSetId 更新本地快取。

    Examples

  • SEND /vda5050/v3/{manufacturer}/{serialNumber}/responses

    Fleet Control → Mobile Robot 對 state.zoneRequests / edgeRequests 的回應(v3.0 新增 topic)。 grantType 4 種:GRANTED(須帶 leaseExpiry)/ QUEUED / REVOKED / REJECTED。 支援單包多筆 response。QoS 0。

    Fleet Control 回應 Mobile Robot 的 zone/edge requests(v3 新增)

    Operation IDsendResponses

    Available only on servers:

    object
    manufacturerstring
    required

    廠商代碼

    serialNumberstring
    required

    機器人序號

    object
    object

    Accepts the following message:

    VDA5050 v3 Responses (新增)
    Message IDResponses
    object allOf

    Fleet Control → AMR 對 state.zoneRequests[] / state.edgeRequests[] 的回應訊息(VDA5050 v3.0 新增)。 AMR 透過 state 提出資源請求(access / replanning / corridor),Fleet 透過此 topic 回覆授權結果。 GRANTED 時必帶 leaseExpiry(租約失效時間,AMR 過期前須續租或釋放)。 QoS 0;可一次回覆多個 request。

    Examples

  • RECEIVE /vda5050/v3/{manufacturer}/{serialNumber}/responses

    Fleet Control → Mobile Robot 對 state.zoneRequests / edgeRequests 的回應(v3.0 新增 topic)。 grantType 4 種:GRANTED(須帶 leaseExpiry)/ QUEUED / REVOKED / REJECTED。 支援單包多筆 response。QoS 0。

    Mobile Robot 接收 Responses 並更新 zone/edge request 授權狀態(v3 新增)

    Operation IDreceiveResponses

    Available only on servers:

    object
    manufacturerstring
    required

    廠商代碼

    serialNumberstring
    required

    機器人序號

    object
    object

    Accepts the following message:

    VDA5050 v3 Responses (新增)
    Message IDResponses
    object allOf

    Fleet Control → AMR 對 state.zoneRequests[] / state.edgeRequests[] 的回應訊息(VDA5050 v3.0 新增)。 AMR 透過 state 提出資源請求(access / replanning / corridor),Fleet 透過此 topic 回覆授權結果。 GRANTED 時必帶 leaseExpiry(租約失效時間,AMR 過期前須續租或釋放)。 QoS 0;可一次回覆多個 request。

    Examples

Messages

  • #1VDA5050 v3 Order
    Message IDOrder
    object allOf

    Master Control → AGV 的任務訊息(VDA5050 v3.0)。 v3 變更:新增 orderDescription 頂層欄位;nodes/edges 使用 v3 common 結構。

  • #2VDA5050 v3 InstantActions
    Message IDInstantActions
    object allOf

    雙向 instant actions 訊息(VDA5050 v3.0)。 v3 變更:欄位從 instantActions 改名為 actions;blockingType 限定為 NONE。

  • #3VDA5050 v3 State
    Message IDState
    object allOf

    AGV → Master 狀態訊息(VDA5050 v3.0)。 v3 變更:agvPosition→mobileRobotPosition、batteryState→powerSupply、informations→information; 新增 instantActionStates、zoneActionStates、maps、zoneSets、plannedPath、intermediatePath、 zoneRequests、edgeRequests。

  • #4VDA5050 v3 Connection
    Message IDConnection
    object allOf

    AGV → Master 連線狀態訊息(VDA5050 v3.0)。建議設 MQTT LWT。 v3 變更:connectionState enum 與 v2 結構相同,但走 v3 topic prefix(/vda5050/v3/…)。

  • #5VDA5050 v3 Visualization
    Message IDVisualization
    object allOf

    AGV → Master 高頻位置更新(VDA5050 v3.0,10–30 Hz)。 v3 變更:新增必需欄位 referenceStateHeaderId;agvPosition→mobileRobotPosition; 新增 plannedPath / intermediatePath。

  • #6VDA5050 v3 Factsheet
    Message IDFactsheet
    object allOf

    AGV → Master 功能規格表(VDA5050 v3.0)。 v3 變更:agvKinematic/agvClass→mobileRobotKinematic/mobileRobotClass; physicalParameters 多欄位改名(speedMin→minimumSpeed 等);agvActions→mobileRobotActions; agvGeometry→mobileRobotGeometry;新增 mobileRobotConfiguration 頂層欄位。

  • #7VDA5050 v3 ZoneSet (新增)
    Message IDZoneSet
    object allOf

    Fleet Control → AMR 的區域規則集訊息(VDA5050 v3.0 新增)。 分發 Zone 規則(BLOCKED / SPEED_LIMIT / ACTION / RELEASE 等)給 AMR 用於規劃與行為調整。 QoS 0(無需保留),AMR 收到後比對 state.zoneSets[].zoneSetId 更新本地快取。

  • #8VDA5050 v3 Responses (新增)
    Message IDResponses
    object allOf

    Fleet Control → AMR 對 state.zoneRequests[] / state.edgeRequests[] 的回應訊息(VDA5050 v3.0 新增)。 AMR 透過 state 提出資源請求(access / replanning / corridor),Fleet 透過此 topic 回覆授權結果。 GRANTED 時必帶 leaseExpiry(租約失效時間,AMR 過期前須續租或釋放)。 QoS 0;可一次回覆多個 request。