# Revision history [back]

The goal of an action is defined by a single message type it can have compound data inside. For example the VisionPlugDetection.action has a several data types in the goal definition of the action (string, geometry_msgs/PoseStamped, bool) while the result has only one data type (geometry_msgs/PoseStamped):

# Goal
string camera_name
geometry_msgs/PoseStamped prior
# Origin is on left (FALSE) for left forearm looking at plug on base,
# on right (TRUE) for right forearm looking at plug in gripper.
bool origin_on_right
---
# Result
geometry_msgs/PoseStamped plug_pose
---
# Feedback


Actionlib can only act on one goal at a time, meaning as goals are received by the action they are buffered and acted on in the order received. Depending on the application sequences of goals will either be preempted, queued, or acted on concurrently. This behavior is dependent on the action server implementation.