Night Light Lectures Opentcs Framework and Actual AGV Scheme

Preamble to Night Light:

 

 

 

A little more persistence, a little more effort, and what seemed hopeless failure may turn to glorious success

A little more perseverance and a little more effort will turn a seemingly hopeless failure into a brilliant success.

 

 

 

 

 

 

 

 

 

Text:

 

Communication between dispatching system and robot


Any communication between system and entity requires protocol. The communication between dispatching system and robot is implemented by Adapter in Kernel. The format of information transmission is in JS0N format, and the carrier of data exchange is Redis database.

 

The dispatch system sends transport order information to the Redis server through Kernel's Addapter, which is generated by the customer's MES system and stored in the Redis server through the communication protocol from which the Adapter retrieves the order. The Adapter calculates the static routing and routing of the order after obtaining it.Cost, select the best path, and match the car, store the order with routing commands on the Redis server, and retrieve the status information of the mobile robot from the Redis server for display on the client Viewer.

 


Sample JS0N format:

// Genius: Retrieves a single named transport order.

[
  {
    "name": "TOrder-01",
    "category": "Park",
    "state": "RAW",
    "intendedVehicle": "Vehicle-0001",
    "processingVehicle": "Vehicle-0002",
    "destinations": [
      {
        "locationName": "Storage-01",
        "operation": "Store",
        "state": "PRISTINE",
        "properties": [
          {
            "key": "key1",
            "value": "value1"
          }
        ]
      }
    ]
  }
]
// Genius: The details of the transport order to be created.
{
  "deadline": "2018-05-17T06:42:40.396Z",
  "intendedVehicle": "Vehicle-01",
  "destinations": [
    {
      "locationName": "Storage 01",
      "operation": "Load cargo",
      "properties": [
        {
          "key": "key1",
          "value": "value1"
        }
      ]
    }
  ],
  "properties": [
    {
      "key": "key1",
      "value": "value1"
    }
  ],
  "dependencies": [
    "TOrder-002"
  ]
}

 

// Genius: Retrieves a set of vehicles.

[
  {
    "name": "Vehicle-0001",
    "properties": {
      "additionalProp1": "string",
      "additionalProp2": "string",
      "additionalProp3": "string"
    },
    "length": "1000",
    "energyLevelGood": "90",
    "energyLevelCritical": "30",
    "energyLevel": "60",
    "integrationLevel": "TO_BE_IGNORED",
    "procState": "UNAVAILABLE",
    "transportOrder": "TOrder-01",
    "currentPosition": "Point-0001",
    "state": "UNKNOWN"
  }
]

 

// Genius: Retrieves the vehicle with the given name.

{
  "name": "Vehicle-0001",
  "properties": {
    "additionalProp1": "string",
    "additionalProp2": "string",
    "additionalProp3": "string"
  },
  "length": "1000",
  "energyLevelGood": "90",
  "energyLevelCritical": "30",
  "energyLevel": "60",
  "integrationLevel": "TO_BE_IGNORED",
  "procState": "UNAVAILABLE",
  "transportOrder": "TOrder-01",
  "currentPosition": "Point-0001",
  "state": "UNKNOWN"
}
// Genius: Retrieving status updates

{
  "timeStamp": "2019-05-21T01:52:56.770Z",
  "statusMessages": [
    {
      "type": "TransportOrder",
      "sequenceNumber": "123",
      "creationTimeStamp": "2018-05-14T07:42:00.343Z",
      "orderName": "TOrder-0001",
      "processingVehicleName": "Vehicle-0001",
      "orderState": "RAW",
      "destinations": [
        {
          "locationName": "Storage-01",
          "operation": "Store",
          "state": "PRISTINE",
          "properties": [
            {
              "key": "key1",
              "value": "value1"
            }
          ]
        }
      ],
      "properties": [
        {
          "key": "key1",
          "value": "value1"
        }
      ]
    },
    {
      "type": "Vehicle",
      "sequenceNumber": "123",
      "creationTimeStamp": "2018-05-14T07:42:00.343Z",
      "vehicleName": "Vehicle-0001",
      "transportOrderName": "TOrder-0001",
      "position": "Point-0001",
      "precisePosition": {
        "x": "60",
        "y": "40",
        "z": "0"
      },
      "state": "UNKNOWN",
      "procState": "UNAVAILABLE"
    }
  ]
}

 


 

Keywords: Redis Database Mobile

Added by JackSevelle on Thu, 07 Nov 2019 23:17:30 +0200