UNPKG

vda-5050-cli

Version:

Command line interface for developing VDA 5050 clients

277 lines 13.1 kB
{ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "http://vda-5050-schema.org/v2.1/common.schema.json", "title": "common", "description": "Commonly referenced VDA 5050 type definitions.", "documentVersion": "2.1, May 2024", "definitions": { "header": { "type": "object", "properties": { "headerId": { "title": "headerId", "type": "integer", "description": "headerId of the message. The headerId is defined per topic and incremented by 1 with each sent (but not necessarily received) message." }, "timestamp": { "title": "timestamp", "type": "string", "format": "date-time", "description": "Timestamp (ISO8601, UTC); YYYY-MM-DDTHH:mm:ss.ssZ; e.g. 2017-04-15T11:40:03.12Z", "examples": [ "2017-04-15T11:40:03.12Z" ] }, "version": { "title": "version", "type": "string", "description": "Version of the protocol [Major].[Minor].[Patch], e.g. 1.3.2", "examples": [ "1.3.2" ] }, "manufacturer": { "title": "manufacturer", "type": "string", "description": "Manufacturer of the AGV" }, "serialNumber": { "title": "serialNumber", "type": "string", "description": "Serial number of the AGV" } }, "required": [ "headerId", "timestamp", "version", "manufacturer", "serialNumber" ] }, "action": { "type": "object", "title": "action", "required": [ "actionId", "actionType", "blockingType" ], "properties": { "actionType": { "type": "string", "title": "actionType", "description": "Name of action as described in the first column of \"Actions and Parameters\"\nIdentifies the function of the action." }, "actionId": { "type": "string", "title": "actionId", "description": "ID to distinguish between multiple actions, either instant or with the same type on the same node/edge." }, "actionDescription": { "type": "string", "title": "actionDescription", "description": "Additional information on the action." }, "blockingType": { "type": "string", "title": "blockingType", "description": "Regulates if the action is allowed to be executed during movement and/or parallel to other actions.\nNONE: action can happen in parallel with others, including movement.\nSOFT: action can happen simultaneously with others, but not while moving.\nHARD: no other actions can be performed while this action is running.", "enum": [ "NONE", "SOFT", "HARD" ] }, "actionParameters": { "type": "array", "description": "Array of actionParameter objects for the indicated action e.g. deviceId, loadId, external triggers.", "items": { "type": "object", "description": "ActionParameter Object", "title": "actionParameter", "required": [ "key", "value" ], "properties": { "key": { "type": "string", "description": "The key of the action parameter. For example. duration, direction, signal.", "examples": [ "duration", "direction", "signal" ] }, "value": { "type": [ "array", "boolean", "number", "string" ], "description": "The value of the action parameter. For example: 103.2, \"left\", true, [ 1, 2, 3].", "examples": [ 103.2, "left", true, [ "arrays", "are", "also", "valid" ] ] } } } } } }, "nodePosition": { "title": "nodePosition", "type": "object", "required": [ "x", "y", "mapId" ], "properties": { "x": { "type": "number", "description": "X coordinate described in the world coordinate system." }, "y": { "type": "number", "description": "Y coordinate described in the world coordinate system." }, "theta": { "title": "Theta", "description": "Range: [-pi .. pi].\nOrientation of the AGV on the node.\nOptional: vehicle can plan the path by itself.\nIf defined, the AGV has to assume the theta angle on this node.\nIf previous edge disallows rotation, the AGV is to rotate on the node.\nIf following edge has a differing orientation defined but disallows rotation, the AGV is to rotate on the node to the edges desired rotation before entering the edge.", "type": "number", "minimum": -3.14159265359, "maximum": 3.14159265359 }, "mapId": { "title": "mapId", "description": "Unique identification of the map in which the position is referenced.\nEach map has the same origin of coordinates. When an AGV uses an elevator, e. g. leading from a departure floor to a target floor, it will disappear off the map of the departure floor and spawn in the related lift node on the map of the target floor.", "type": "string" } } }, "trajectory": { "type": "object", "properties": { "degree": { "type": "integer", "description": "Defines the number of control points that influence any given point on the curve. Increasing the degree increases continuity.\nIf not defined, the default value is 1.", "minimum": 1 }, "knotVector": { "type": "array", "description": "Sequence of parameter values that determine where and how the control points affect the NURBS curve. knotVector has size of number of control points + degree + 1", "items": { "type": "number", "maximum": 1.0, "minimum": 0.0 } }, "controlPoints": { "type": "array", "description": "List of JSON controlPoint objects defining the control points of the NURBS. This includes the start and end point.", "items": { "type": "object", "title": "controlPoint", "properties": { "x": { "type": "number", "description": "X coordinate described in the world coordinate system." }, "y": { "type": "number", "description": "Y coordinate described in the world coordinate system." } }, "required": [ "x", "y" ] } } }, "required": [ "degree", "knotVector", "controlPoints" ] }, "agvPosition": { "type": "object", "title": "agvPosition", "properties": { "x": { "type": "number", "description": "X-position on the map in reference to the map coordinate system. Precision is up to the specific implementation." }, "y": { "type": "number", "description": "Y-position on the map in reference to the map coordinate system. Precision is up to the specific implementation." }, "theta": { "type": "number", "description": "Range: [-pi ... pi]\nOrientation of the AGV.", "minimum": -3.14159265359, "maximum": 3.14159265359 }, "mapId": { "type": "string", "description": "Unique identification of the map in which the position is referenced.\nEach map has the same origin of coordinates. When an AGV uses an elevator, e.g. leading from a departure floor to a target floor, it will disappear off the map of the departure floor and spawn in the related lift node on the map of the target floor." }, "mapDescription": { "type": "string", "description": "Additional information on the map." }, "positionInitialized": { "type": "boolean", "description": "True if the AGVs position is initialized, false, if position is not initialized." }, "localizationScore": { "type": "number", "description": "Describes the quality of the localization and therefore, can be used e.g. by SLAM-AGVs to describe how accurate the current position information is.\n0.0: position unknown\n1.0: position known\nOptional for vehicles that cannot estimate their localization score.\nOnly for logging and visualization purposes", "minimum": 0.0, "maximum": 1.0 }, "deviationRange": { "type": "number", "description": "Value for the deviation range of the position in meters.\nOptional for vehicles that cannot estimate their deviation e.g. grid-based localization.\nOnly for logging and visualization purposes." } }, "required": [ "x", "y", "theta", "mapId", "positionInitialized" ] }, "velocity": { "type": "object", "title": "velocity", "properties": { "vx": { "type": "number", "description": "The AGVs velocity in its x direction." }, "vy": { "type": "number", "description": "The AGVs velocity in its y direction." }, "omega": { "type": "number", "description": " The AGVs turning speed around its z axis." } } } } }