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 clearAllErrorsblockingType 在 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 clearAllErrorsblockingType 在 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

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 頂層欄位。