requiredInt32headerId=1;//headerId of the message. The headerId is defined per topic and incremented by 1 with each sent (but not necessarily received) message.
int32headerId=1;//headerId of the message. The headerId is defined per topic and incremented by 1 with each sent (but not necessarily received) message.
requiredStringtimeStamp=2;//Timestamp in ISO8601 format (YYYY-MM-DDTHH:mm:ss.ssZ).
stringtimeStamp=2;//Timestamp in ISO8601 format (YYYY-MM-DDTHH:mm:ss.ssZ).
requiredStringversion=3;//Version of the protocol [Major].[Minor].[Patch]
stringversion=3;//Version of the protocol [Major].[Minor].[Patch]
requiredStringmanufacturer=4;//Manufacturer of the AGV
stringmanufacturer=4;//Manufacturer of the AGV
requiredStringserialNumber=5;//Serial number of the AGV.
stringserialNumber=5;//Serial number of the AGV.
requiredStringorderId=6;//Unique order identification of the current order or the previous finished order. The orderId is kept until a new order is received. Empty string (\"\") if no previous orderId is available.
stringorderId=6;//Unique order identification of the current order or the previous finished order. The orderId is kept until a new order is received. Empty string (\"\") if no previous orderId is available.
requiredInt32orderUpdateId=7;//Order Update Identification to identify that an order update has been accepted by the AGV. \"0\" if no previous orderUpdateId is available.
int32orderUpdateId=7;//Order Update Identification to identify that an order update has been accepted by the AGV. \"0\" if no previous orderUpdateId is available.
requiredStringlastNodeId=8;//nodeID of last reached node or, if AGV is currently on a node, current node (e.g., \"node7\"). Empty string (\"\") if no lastNodeId is available.
stringlastNodeId=8;//nodeID of last reached node or, if AGV is currently on a node, current node (e.g., \"node7\"). Empty string (\"\") if no lastNodeId is available.
requiredInt32lastNodeSequenceId=9;//sequenceId of the last reached node or, if the AGV is currently on a node, sequenceId of current node.\n“0†if no lastNodeSequenceId is available.
int32lastNodeSequenceId=9;//sequenceId of the last reached node or, if the AGV is currently on a node, sequenceId of current node.\n“0†if no lastNodeSequenceId is available.
repeatedNodeStatenodeStates=10;//Array of nodeState-Objects, that need to be traversed for fulfilling the order. Empty list if idle.
repeatedNodeStatenodeStates=10;//Array of nodeState-Objects, that need to be traversed for fulfilling the order. Empty list if idle.
repeatedEdgeStateedgeStates=11;//Array of edgeState-Objects, that need to be traversed for fulfilling the order, empty list if idle.
repeatedEdgeStateedgeStates=11;//Array of edgeState-Objects, that need to be traversed for fulfilling the order, empty list if idle.
requiredBooleandriving=12;//True: indicates that the AGV is driving and/or rotating. Other movements of the AGV (e.g., lift movements) are not included here.\nFalse: indicates that the AGV is neither driving nor rotating
booldriving=12;//True: indicates that the AGV is driving and/or rotating. Other movements of the AGV (e.g., lift movements) are not included here.\nFalse: indicates that the AGV is neither driving nor rotating
repeatedActionStateactionStates=13;//Contains a list of the current actions and the actions, which are yet to be finished. This may include actions from previous nodes, that are still in progress.
repeatedActionStateactionStates=13;//Contains a list of the current actions and the actions, which are yet to be finished. This may include actions from previous nodes, that are still in progress.
requiredBatteryStatebatteryState=14;//Contains all battery-related information.
BatteryStatebatteryState=14;//Contains all battery-related information.
requiredStringoperatingMode=15;//Current operating mode of the AGV, including: "AUTOMATIC", "SEMIAUTOMATIC", "MANUAL", "SERVICE", "TEACHIN".
stringoperatingMode=15;//Current operating mode of the AGV, including: "AUTOMATIC", "SEMIAUTOMATIC", "MANUAL", "SERVICE", "TEACHIN".
repeatedErrorerrors=16;//Array of error-objects. All active errors of the AGV should be in the list. An empty array indicates that the AGV has no active errors.
repeatedErrorerrors=16;//Array of error-objects. All active errors of the AGV should be in the list. An empty array indicates that the AGV has no active errors.
requiredSafetyStatesafetyState=17;//Contains all safety-related information.
SafetyStatesafetyState=17;//Contains all safety-related information.
optionalAgvPositionagvPosition=18;
optionalAgvPositionagvPosition=18;
optionalFloat64distanceSinceLastNode=19;
optionalfloatdistanceSinceLastNode=19;
repeatedInfoinformation=20;
repeatedInfoinformation=20;
repeatedLoadloads=21;
repeatedLoadloads=21;
optionalBooleannewBaseRequest=22;
optionalboolnewBaseRequest=22;
optionalBooleanpaused=23;
optionalboolpaused=23;
optionalVelocityvelocity=24;
optionalVelocityvelocity=24;
optionalStringzoneSetId=25;
optionalstringzoneSetId=25;
}
}
messageAgvPosition{
messageAgvPosition{
requiredBooleanpositionInitialized=1;
boolpositionInitialized=1;
optionalFloat64localizationScore=2;
optionalfloatlocalizationScore=2;
optionalFloat64deviationRange=3;
optionalfloatdeviationRange=3;
requiredFloat64x=4;
floatx=4;
requiredFloat64y=5;
floaty=5;
requiredFloat64theta=6;
floattheta=6;// Range: [-Pi … Pi] Orientation of the AGV.
requiredInt32sequenceId=2;//sequenceId to differentiate between multiple edges with the same edgeId.
int32sequenceId=2;//sequenceId to differentiate between multiple edges with the same edgeId.
optionalStringedgeDescription=3;//Additional information on the edge.
optionalstringedgeDescription=3;//Additional information on the edge.
requiredBooleanreleased=4;//“true” indicates that the edge is part of the base. “false” indicates that the edge is part of the horizon.
boolreleased=4;//“true” indicates that the edge is part of the base. “false” indicates that the edge is part of the horizon.
optionalTrajectorytrajectory=5;
optionalTrajectorytrajectory=5;
}
}
messageTrajectory{
messageTrajectory{
requiredFloat64degree=1;
floatdegree=1;
repeatedFloat64knotVector=2;
repeatedfloatknotVector=2;
repeatedControlPointscontrolPoints=3;
repeatedControlPointscontrolPoints=3;
}
}
messageControlPoints{
messageControlPoints{
requiredFloat64x=1;
floatx=1;
requiredFloat64y=2;
floaty=2;
optionalFloat64weight=3;
optionalfloatweight=3;
}
}
messageVelocity{
messageVelocity{
optionalFloat64vx=1;//The AVGs velocity in its x direction.
optionalfloatvx=1;//The AVGs velocity in its x direction.
optionalFloat64vy=2;//The AVGs velocity in its y direction.
optionalfloatvy=2;//The AVGs velocity in its y direction.
optionalFloat64omega=3;//The AVGs turning speed around its z axis.
optionalfloatomega=3;//The AVGs turning speed around its z axis.
}
}
messageLoad{
messageLoad{
optionalStringloadId=1;//Unique identification number of the load (e.g., barcode or RFID). Empty field, if the AGV can identify the load, but didn’t identify the load yet. Optional, if the AGV cannot identify the load.
optionalstringloadId=1;//Unique identification number of the load (e.g., barcode or RFID). Empty field, if the AGV can identify the load, but didn’t identify the load yet. Optional, if the AGV cannot identify the load.
optionalStringloadType=2;//Type of load.
optionalstringloadType=2;//Type of load.
optionalStringloadPosition=3;//Indicates, which load handling/carrying unit of the AGV is used, e.g., in case the AGV has multiple spots/positions to carry loads.
optionalstringloadPosition=3;//Indicates, which load handling/carrying unit of the AGV is used, e.g., in case the AGV has multiple spots/positions to carry loads.
optionalBoundingBoxReferenceboundingBoxReference=4;//Point of reference for the location of the bounding box.
optionalBoundingBoxReferenceboundingBoxReference=4;//Point of reference for the location of the bounding box.
optionalLoadDimensionsloadDimensions=5;//Dimensions of the load´s bounding box in meters.
optionalLoadDimensionsloadDimensions=5;//Dimensions of the load´s bounding box in meters.
optionalFloat64weight=6;//Absolute weight of the load measured in kg.
optionalfloatweight=6;//Absolute weight of the load measured in kg.
}
}
messageBoundingBoxReference{
messageBoundingBoxReference{
requiredFloat64x=1;//x-coordinate of the point of reference.
floatx=1;//x-coordinate of the point of reference.
requiredFloat64y=2;
floaty=2;
requiredFloat64z=3;
floatz=3;
optionalFloat64theta=4;//Orientation of the loads bounding box. Important for tugger, trains, etc.
optionalfloattheta=4;//Orientation of the loads bounding box. Important for tugger, trains, etc.
}
}
messageLoadDimensions{
messageLoadDimensions{
requiredFloat64length=1;
floatlength=1;
requiredFloat64width=2;
floatwidth=2;
optionalFloat64hight=3;
optionalfloathight=3;
}
}
messageActionState{
messageActionState{
requiredStringactionId=1;
stringactionId=1;
optionalStringactionType=2;
optionalstringactionType=2;
optionalStringactionDescription=3;
optionalstringactionDescription=3;
requiredStringactionStatus=4;
stringactionStatus=4;
optionalStringresultDescription=5;
optionalstringresultDescription=5;
}
}
messageBatteryState{
messageBatteryState{
requiredFloat64batteryCharge=1;//if AGV only provides values for good or bad battery levels, these will be indicated as 20% (bad) and 80% (good).
floatbatteryCharge=1;//if AGV only provides values for good or bad battery levels, these will be indicated as 20% (bad) and 80% (good).
requiredStringerrorLevel=4;//WARNING: AGV is ready to start (e.g. maintenance cycle expiration warning). FATAL: AGV is not in running condition, user intervention required (e.g. laser scanner is contaminated).
stringerrorLevel=4;//WARNING: AGV is ready to start (e.g. maintenance cycle expiration warning). FATAL: AGV is not in running condition, user intervention required (e.g. laser scanner is contaminated).
}
}
messageErrorReference{
messageErrorReference{
requiredStringreferenceKey=1;
stringreferenceKey=1;
requiredStringreferenceValue=2;
stringreferenceValue=2;
}
}
messageInfo{
messageInfo{
requiredStringinfoType=1;
stringinfoType=1;
repeatedInfoReferenceinfoReferences=2;
repeatedInfoReferenceinfoReferences=2;
optionalStringinfoDescription=3;
optionalstringinfoDescription=3;
requiredStringinfoLevel=4;
stringinfoLevel=4;
}
}
messageInfoReference{
messageInfoReference{
requiredStringreferenceKey=1;
stringreferenceKey=1;
requiredStringreferenceValue=2;
stringreferenceValue=2;
}
}
messageSafetyState{
messageSafetyState{
requiredStringeStop=1;//Acknowledge-Type of eStop: AUTOACK: auto-acknowledgeable e-stop is activated, e.g., by bumper or protective field. MANUAL: e-stop hast to be acknowledged manually at the vehicle. REMOTE: facility e-stop has to be acknowledged remotely. NONE: no e-stop activated.
stringeStop=1;//Acknowledge-Type of eStop: AUTOACK: auto-acknowledgeable e-stop is activated, e.g., by bumper or protective field. MANUAL: e-stop hast to be acknowledged manually at the vehicle. REMOTE: facility e-stop has to be acknowledged remotely. NONE: no e-stop activated.
requiredBooleanfieldViolation=2;//Protective field violation. "true":field is violated "false":field is not violated.
boolfieldViolation=2;//Protective field violation. "true":field is violated "false":field is not violated.