actionlib: Provides a standardized interface for a task
    The actionlib package provides a standardized interface for interfacing
    with preemptible tasks. Examples of this include moving the base to a target
    location, performing a laser scan and returning the resulting point cloud,
    detecting the handle of a door, etc.
  
 
ActionClient Code API
ActionServer Code API
Communication Protocol
The values for the status of a goal are as follows:
- PENDING - The goal has yet to be processed by the action server
 
- ACTIVE - The goal is currently being processed by the action server
 
- REJECTED - The goal was rejected by the action server without being processed and without a request from the action client to cancel
 
- SUCCEEDED - The goal was achieved successfully by the action server
 
- ABORTED - The goal was aborted by the action server
 
- PREEMPTING - Processing of the goal was canceled by either another goal, or a cancel request sent to the action server
 
- PREEMPTED - The goal was preempted by either another goal, or a preempt message being sent to the action server
 
- RECALLING - The goal has not been processed and a cancel request has been received from the action client, but the action server has not confirmed the goal is canceled
 
- RECALLED - The goal was canceled by either another goal, or a cancel request before the action server began processing the goal
 
- LOST - The goal was sent by the ActionClient, but disappeared due to some communication error