Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add message definitions for State and ActionState #31

Open
wants to merge 11 commits into
base: master
Choose a base branch
from
15 changes: 12 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,30 +14,39 @@ add_message_files(
AGVPosition.msg
Action.msg
ActionParameter.msg
ActionState.msg
ActionStates.msg
BatteryState.msg
BoundingBoxReference.msg
Connection.msg
ControlPoint.msg
CurrentAction.msg
Edge.msg
EdgeState.msg
EdgeStates.msg
Error.msg
Errors.msg
ErrorReference.msg
Header.msg
InstantActions.msg
Info.msg
InfoReference.msg
Information.msg
Load.msg
LoadDimensions.msg
Loads.msg
Node.msg
NodePosition.msg
NodeState.msg
NodeStates.msg
Order.msg
OrderInformation.msg
SafetyState.msg
State.msg
Trajectory.msg
Velocity.msg
Visualization.msg
Zone.msg
ZoneParameter.msg
ZonePolygonPoint.msg
ZoneUpdate.msg
)
generate_messages(
DEPENDENCIES
Expand Down
9 changes: 6 additions & 3 deletions msg/AGVPosition.msg
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
# Defines the position on a map in world coordinates. Each floor has its own map.

bool positionInitialized # False: position is not initialized True: position is initialized
bool positionInitialized # True: position is initialized
# False: position is not initialized

float64 localizationScore # Range: [0.0 … 1.0] Describes the quality of the localization and therefore, can be used
float64 localizationScore # Range: [0.0 … 1.0] Describes the quality of the localization and therefore, can be used
# e. g. by SLAMAGVs to describe how accurate the current position information is.
# 0.0: position unknown 1.0: position known
float64 deviationRange # Value for the deviation range of the position in meters.

float64 deviationRange # Value for the deviation range of the position in meters.

float64 x # [m] X-position on the map in reference to the map coordinate system. Precision is up to
# the specific implementation

Expand Down
2 changes: 1 addition & 1 deletion msg/Action.msg
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ vda5050_msgs/ActionParameter[] actionParameters # Array of actio
# serialization is always a json dictionary with "key"
# and "value" we decided to serialize the value as
# string. This way the (de-)serialization has to be done by
# the user depending on the key, but the protocol is met
# the user depending on the key, but the protocol is met.


# Enums for blockingType
Expand Down
1 change: 1 addition & 0 deletions msg/ActionParameter.msg
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
string key

string value
24 changes: 24 additions & 0 deletions msg/ActionState.msg
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# CONTENTS
string actionID # action_ID

string actionType # actionType of the action.
# Optional: Only for informational or visualization purposes. Order knows the type.

string actionDescription # Additional information on the current action.

string actionStatus # Waiting: waiting for trigger (passing the node, entering the edge)
# Paused: paused by instantAction or external trigger
# failed: action could not be performed.

string resultDescription # Description of the result, e.g. the result of a RFID-read.
# Errors will be transmitted in errors. Examples for results are given in 6.5


# Enums for actionStatus
string waiting=waiting
string initializing=initializing
string running=running
string paused=paused
string finished=finished
string failed=failed

1 change: 1 addition & 0 deletions msg/ActionStates.msg
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
vda5050_msgs/ActionState[] actionStates
7 changes: 6 additions & 1 deletion msg/BatteryState.msg
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
float64 batteryCharge # [%] State of Charge: if AGV only provides values for good or bad battery levels, these will
# be indicated as 20% (bad) and 80% (good).

float64 batteryVoltage # [V] Battery Voltage

int8 batteryHealth # [%] State of Health
bool charging # True: charging in progress False: AGV is currently not charging

bool charging # True: Charging in progress
# False: AGV is currently not charging

uint32 reach # Estimated reach with current SoC
3 changes: 3 additions & 0 deletions msg/BoundingBoxReference.msg
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@
# box’s bottom surface (at height = 0) and is described in coordinates of the AGV’s coordinate system.

float64 x # x-coordinate of the point of reference.

float64 y # y-coordinate of the point of reference.

float64 z # z-coordinate of the point of reference.

float64 theta # Orientation of the loads bounding box. Important for tugger trains etc
5 changes: 3 additions & 2 deletions msg/Connection.msg
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,16 @@
int32 headerId # header ID of the message. The headerId is defined per topic and incremented by 1 with each sent
# (but not necessarily received) message.

string timestamp # Timestamp after ISO8601 in the format YYYY-MM-DDTHH:mm:ss.ssZ (e.g.“2017-04-15T11:40:03.12Z”)
string timeStamp # Timestamp after ISO8601 in the format YYYY-MM-DDTHH:mm:ss.ssZ (e.g.“2017-04-15T11:40:03.12Z”)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the document timestamp still seems to be lower case: https://github.com/VDA5050/VDA5050/blob/1.1.0/VDA5050_EN.md#actionStates Same applies to the other timestampes


string version # Version of the protocol [Major].[Minor].[Patch] (e.g. 1.3.2)

string manufacturer # Manufacturer of the AGV

string serialNumber # Serial Number of the AGV

# CONTENTS
string connectionState # Enum{ONLINE, OFFLINE, CONNECTIONBROKEN}
string connectionState # Enum {ONLINE, OFFLINE, CONNECTIONBROKEN}
# ONLINE: connection between AGV and broker is active.
# OFFLINE: connection between AGV and broker has gone offline in a coordinated way.
# CONNECTIONBROKEN: The connection between AGV and broker has unexpectedly ended.
Expand Down
4 changes: 0 additions & 4 deletions msg/ControlPoint.msg
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,5 @@ float64 x # X coordinate described in the world coordinate system.

float64 y # Y coordinate described in the world coordinate system.

float64 orientation # [rad] Range [-pi...pi] Orientation of the AGV on this position of the curve.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

orientation is still present in 1.1

# The orientation is in world coordinates.
# When not defined the orientation of the AGV will be tangential to the curve.

float64 weight # Range [0..infinity) The weight with which this control point pulls on the curve.
# When not defined, the default will be 1.0
14 changes: 0 additions & 14 deletions msg/CurrentAction.msg

This file was deleted.

14 changes: 14 additions & 0 deletions msg/Edge.msg
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,16 @@ bool released # True indicates that the edge is part of th
# part of the horizon.

string startNodeId # nodeID of startNode

string endNodeId # nodeID of endNode

float64 maxSpeed # [m/s] Permitted maximum speed on the edge. Speed is defined by the fastest point of the
# vehicle.

float64 maxHeight # [m] Permitted maximum height of the vehicle, including the load, on edge

float64 minHeight # [m] Permitted minimal height of the edge measured at the bottom of the load

float64 orientation # [rad] Orientation of the AGV on the edge relative to the global project specific
# map coordinate origin (for holonomic vehicles with more than one driving
# direction).
Expand All @@ -30,19 +34,29 @@ float64 orientation # [rad] Orientation of the AGV on the edge r
# If a trajectory without orientation and the orientation field here is defined,
# apply the orientation to the tangent of the trajectory.

string orientationType # Sets the orientation type of the edge.

string direction # Sets direction at junctions for line-guided vehicles, to be defined initially
# (vehicle individual) Example: left, right, straight, 433MHz

bool rotationAllowed # “true”: rotation is allowed on the edge. “false”: rotation is not allowed on the edge.
# Optional: Default to “false”. If this value is set, rotation is allowed on the edge.

float64 maxRotationSpeed # [rad/s] Maximum rotation speed Optional: No limit if not set

vda5050_msgs/Trajectory trajectory # Trajectory JSON-object for this edge as a NURBS. Defines the curve on which the
# AGV should move between startNode and endNode. Optional: Can be omitted if AGV
# cannot process trajectories or if AGV plans its own trajectory.

float64 length # [m] Length of the path from startNode to endNode. Optional: This value is used
# by lineguided AGVs to decrease their speed before reaching a stop position.

vda5050_msgs/Action[] actions # Array of actionIds to be executed on the edge. An action triggered by an edge will
# only be active for the time that the AGV is traversing the edge which triggered
# the action. When the AGV leaves the edge, the action will stop and the state
# before entering the edge will be restored.


# Enum for orientationType
string GLOBAL=GLOBAL
string TANGENTIAL=TANGENTIAL
5 changes: 3 additions & 2 deletions msg/EdgeState.msg
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
string edgeId # Unique edge identification

int32 sequenceId # sequenceId to differentiate between multiple edges with
uint32 sequenceId # sequenceId to differentiate between multiple edges with

string edgeDescription # Additional information on the edge

bool released # True indicates that the edge is part of the base. False indicates that the edge is
# part of the horizon.
vda5050_msgs/Trajectory trajectory # The trajectory is to be communicated as a NURBS and is defined in chapter6.4

vda5050_msgs/Trajectory trajectory # The trajectory is to be communicated as a NURBS.
# Trajectory segments are from the point where the AGV starts to enter the edge
# until the point where it reports that the next node was traversed.
1 change: 1 addition & 0 deletions msg/EdgeStates.msg
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
vda5050_msgs/EdgeState[] edgeStates
20 changes: 11 additions & 9 deletions msg/Error.msg
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
string errorType # Type / name of error
string errorType # Type / Name of the error

vda5050_msgs/ErrorReference[] errorReferences # Array of references to identify the source of the error (e. g. headerId,
# orderId, actionId, …). For additional information see best practice
# chapter 6.3
string errorDescription # Error description
string errorLevel # Enum {warning, fatal} 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)
# orderId, actionId, …).

string errorDescription # Error description.

string errorLevel # Enum {WARNING, FATAL}
# 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)

# Enums for errorLevel
string WARNING=warning
string FATAL=fatal
string WARNING=WARNING
string FATAL=FATAL
1 change: 1 addition & 0 deletions msg/ErrorReference.msg
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
string referenceKey # References the type of reference (e. g. headerId, orderId, actionId, …).

string referenceValue # References the value the reference key.
1 change: 1 addition & 0 deletions msg/Errors.msg
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
vda5050_msgs/Error[] errors
10 changes: 0 additions & 10 deletions msg/Header.msg

This file was deleted.

11 changes: 7 additions & 4 deletions msg/Info.msg
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
string infoType # Type / name of information
vda5050_msgs/InfoReference[] infoReferences # array of references
string infoDescription # Info description
string infoLevel # Enum {DEBUG, INFO} DEBUG: used for debugging, INFO: used for visualization
string infoType # Type / Name of information.

vda5050_msgs/InfoReference[] infoReferences # Array of references.

string infoDescription # Info description.

string infoLevel # Enum {DEBUG, INFO} DEBUG: used for debugging, INFO: used for visualization.

# Enum for infoLevel
string DEBUG=DEBUG
string INFO=INFO
1 change: 1 addition & 0 deletions msg/InfoReference.msg
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
string referenceKey # References the type of reference (e. g. headerId, orderId, actionId, …).

string referenceValue # References the value the reference key.
1 change: 1 addition & 0 deletions msg/Information.msg
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
vda5050_msgs/Info[] information
12 changes: 6 additions & 6 deletions msg/InstantActions.msg
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
int32 headerId # header ID of the message. The headerId is defined per topic and incremented by 1 with each sent
# (but not necessarily received) message.
int32 headerId # header ID of the message. The headerId is defined per topic and incremented by 1 with each sent
# (but not necessarily received) message.

string timestamp # Timestamp after ISO8601 in the format YYYY-MM-DDTHH:mm:ss.ssZ (e.g.“2017-04-15T11:40:03.12Z”)
string timeStamp # Timestamp after ISO8601 in the format YYYY-MM-DDTHH:mm:ss.ssZ (e.g.“2017-04-15T11:40:03.12Z”)

string version # Version of the protocol [Major].[Minor].[Patch] (e.g. 1.3.2)
string version # Version of the protocol [Major].[Minor].[Patch] (e.g. 1.3.2)

string manufacturer # Manufacturer of the AGV
string manufacturer # Manufacturer of the AGV

string serialNumber # Serial Number of the AGV
string serialNumber # Serial Number of the AGV

Action[] instantActions # List of actions to execute
4 changes: 2 additions & 2 deletions msg/Load.msg
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
string loadId # Unique identification number of the load (e. g. barcode or
# RFID)

string loadType # Type of load
string loadType # Type of load.

string loadPosition # Indicates which load handling/carrying unit of the AGV is
# used, e. g. in case the AGV has multiple spots/positions to
Expand All @@ -14,4 +14,4 @@ vda5050_msgs/BoundingBoxReference boundingBoxReference # Point of reference for

vda5050_msgs/LoadDimensions loadDimensions # Dimensions of the load’s bounding box in meters.

uint32 weight # Absolute weight of the load measured in kg.
float64 weight # [Kg] Absolute weight of the load measured.
2 changes: 2 additions & 0 deletions msg/LoadDimensions.msg
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Dimensions of the load’s bounding box in meters.

float64 length # Absolute length of the load’s bounding box.

float64 width # Absolute width of the load’s bounding box.

float64 height # Absolute height of the load’s bounding box. Optional: Set value only if known.
1 change: 1 addition & 0 deletions msg/Loads.msg
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
vda5050_msgs/Load[] loads
2 changes: 1 addition & 1 deletion msg/Node.msg
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ string nodeDescription # Additional information on th
bool released # True indicates that the node is part of the base. False indicates
# that the node is part of the horizon.

vda5050_msgs/NodePosition nodePosition # Node position
vda5050_msgs/NodePosition nodePosition # Node position


vda5050_msgs/Action[] actions # Array of actions to be executed in node. Empty array if no actions
Expand Down
14 changes: 7 additions & 7 deletions msg/NodePosition.msg
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,6 @@ float64 y # [m] Y-position on the map in

float64 theta # [rad] The angular dimension

string mapId # Unique identification of the map in which the position is referenced. Each 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.

string mapDescription # Additional information on the map

float32 allowedDeviationXY # Indicates how exact an AGV has to drive over a node in order for it
# to count as traversed.
#
Expand All @@ -26,3 +19,10 @@ float32 allowedDeviationTheta # Range: [0 ... Pi]
# Indicates how big the deviation of theta angle can be.
# The lowest acceptable angle is theta -allowedDevaitionTheta and
# the highest acceptable angle is theta + allowedDeviationTheta

string mapId # Unique identification of the map in which the position is referenced. Each 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.

string mapDescription # Additional information on the map
Loading