Skip to content

Action state goes to INITIALIZING before the robot has reached the node with the action

According to the vda protocol, an action should be in the WAITING state until the node or edge containing the action is reached.

Quote for when it should be WAITING: "Action was received by AGV but the node where it triggers was not yet reached or the edge where it is active was not yet entered."

However, I see that an action can go to the INITIALIZING state before lastNodeSequenceId and lastNodeId in the state message have been updated to reflect the node with the action.

This is causing problems with our fleet integration since it expects the corresponding node to be reached before the action transitions to INITIALIZING.

Questions: What triggers an action to transition from WAITING to INITIALIZING? Would it be possible only to allow it to transition to INITIALIZING after the corresponding node or edge has been reached?

Example: As an example, here is an order and a state message where the action has been set to INITIALIZING, before the lastNodeSequenceId and lastNodeId have been updated.

As can be seen, the action is at the node with sequenceId = 4

But in the state message, the action is already set to INITIALIZING when the lastNodeSequenceId = 2

ORDER:

{
    "headerId": 2091,
    "timestamp": "2025-02-12T09:24:28.966908562Z",
    "version": "2.0.0",
    "manufacturer": "Company",
    "serialNumber": "P73",
    "orderId": "37cc2b89765e48fc92833f6d0ef81c46",
    "orderUpdateId": 0,
    "nodes": [
 {
            "nodeId": "intermediate_node_0_0",
            "description": "intermediate point 0 of task sendmqtt_20250212_0008 subtask index 0 ",
            "sequenceId": 0,
            "released": true,
            "nodePosition": {
                "x": 23.306,
                "y": 52.59,
                "theta": 3.1415927,
                "allowedDeviationXY": 0.1,
                "allowedDeviationTheta": 1,
                "mapId": "floor 0"
 },
            "actions": []
 },
 {
            "nodeId": "intermediate_node_0_1",
            "description": "intermediate point 1 of task  subtask index 0 ",
            "sequenceId": 2,
            "released": true,
            "nodePosition": {
                "x": 23.465,
                "y": 52.158,
                "theta": 0,
                "allowedDeviationXY": 0.1,
                "allowedDeviationTheta": 1,
                "mapId": "floor 0"
 },
            "actions": []
 },
 {
            "nodeId": "0fe3ad4db2a24f41bb592015784ab12c",
            "description": "we are in 2 Subtask of sendmqtt_20250212_0008 at index 0",
            "sequenceId": 4,
            "released": true,
            "nodePosition": {
                "x": 24.134,
                "y": 52.158,
                "theta": -0.017453292,
                "allowedDeviationXY": 0.1,
                "allowedDeviationTheta": 1,
                "mapId": "floor 0"
 },
            "actions": [
 {
                    "actionType": "sendMqttMessage",
                    "actionId": "d51cdb7188b844c195507db330f4d1df",
                    "actionDescription": "",
                    "blockingType": "NONE",
                    "actionParameters": [
 {
                            "key": "mqttBrokerAddress",
                            "value": "mqtt://11.33.77.9"
 },
 {
                            "key": "mqttBrokerClientId",
                            "value": "hej"
 },
 {
                            "key": "mqttBrokerPassword",
                            "value": "hej"
 },
 {
                            "key": "mqttBrokerPort",
                            "value": 1883
 },
 {
                            "key": "mqttBrokerQos",
                            "value": 0
 },
 {
                            "key": "mqttBrokerSsl",
                            "value": false
 },
 {
                            "key": "mqttBrokerUsername",
                            "value": "hej"
 },
 {
                            "key": "payload",
                            "value": "TRUE"
 },
 {
                            "key": "topic",
                            "value": "Spray"
 }
 ]
 }
 ]
 }
 ],
    "edges": [
 {
            "edgeId": "intermediate_edge_0_0",
            "sequenceId": 1,
            "released": true,
            "startNodeId": "intermediate_node_0_0",
            "endNodeId": "intermediate_node_0_1",
            "actions": []
 },
 {
            "edgeId": "intermediate_edge_0_1",
            "sequenceId": 3,
            "released": true,
            "startNodeId": "intermediate_node_0_1",
            "endNodeId": "0fe3ad4db2a24f41bb592015784ab12c",
            "maxSpeed": 0.3,
            "actions": []
 }
 ]
}

STATE:

{
    "actionStates": [
 {
            "actionDescription": "",
            "actionId": "d51cdb7188b844c195507db330f4d1df",
            "actionStatus": "INITIALIZING",
            "actionType": "sendMqttMessage"
 }
 ],
    "agvPosition": {
        "localizationScore": 0.907520592212677,
        "mapId": "",
        "positionInitialized": true,
        "theta": 5.9887614250183105,
        "x": 24.417701721191406,
        "y": 52.416446685791016
 },
    "batteryState": {
        "batteryCharge": 57.0,
        "batteryVoltage": 26.399999618530273,
        "charging": false
 },
    "distanceSinceLastNode": 0.0,
    "driving": true,
    "edgeStates": [
 {
            "edgeId": "intermediate_edge_0_1",
            "released": true,
            "sequenceId": 3
 }
 ],
    "errors": [],
    "headerId": 5902,
    "information": [],
    "lastNodeId": "intermediate_node_0_1",
    "lastNodeSequenceId": 2,
    "manufacturer": "Company",
    "nodeStates": [
 {
            "nodeId": "0fe3ad4db2a24f41bb592015784ab12c",
            "nodePosition": {
                "allowedDeviationTheta": 1.0,
                "allowedDeviationXY": 0.1,
                "mapId": "floor 0",
                "theta": -0.017453292,
                "x": 24.134,
                "y": 52.158
 },
            "released": true,
            "sequenceId": 4
 }
 ],
    "operatingMode": "AUTOMATIC",
    "orderId": "37cc2b89765e48fc92833f6d0ef81c46",
    "orderUpdateId": 0,
    "paused": false,
    "safetyState": {
        "eStop": "NONE",
        "fieldViolation": false
 },
    "serialNumber": "P73",
    "timestamp": "2025-02-12T09:24:42Z",
    "velocity": {
        "omega": 0.46127031943246033,
        "vx": 1.6908028328543878e-06,
        "vy": 0.0021229463163763285
 },
    "version": "2.0.0"
}