Contents
About
The carl_action_executor package contains nodes to manage and execute a sequence of actions ont he CARL robot. The actions are stored and executed in a queue, and will report common failures to facilitate plan repair. Examples of actions include base navigation, object recognition, and pick-and-place.
Nodes
carl_action_executor
'carl_action_executor' stores and executes the action queue.Action Goal
carl_action_executor/execute/goal (carl_action_executor/ExecuteGoal)- Execute either the first action on the queue or the entire queue.
Action Result
carl_action_executor/execute/result (carl_action_executor/ExecuteResult)- Action execution result, including success, an error code on failure, and the failed action on failure.
Action Feedback
carl_action_executor/execute/feedback (carl_action_executor/ExecuteFeedback)- The current executing action and the number of actions remaining in the queue.
Actions Called
move_base (move_base_msgs/MoveBaseAction)- Base navigation to a pose.
- Base navigation to a pre-defined named location.
- Pre-defined arm movement (e.g. home, retract).
- Object pickup.
- Object storing.
Subscribed Topics
object_recognition_listener/recognized_objects (rail_manipulation_msgs/SegmentedObjectList)- Recognized objects topic.
Services
carl_action_executor/add_action (carl_action_executor/AddAction)- Add an action to the end of the action queue.
- Clear all actions in the action list.
- Return the current action list.
- Insert an action into the action list at a specified index.
- Remove an action from the action list at a specified index.
Services Called
rail_segmentation/segment (std_srvs/Empty)- Tabletop object segmentation service.
- Camera look at tf frame service.
Actions Supported
Actions are specified using the carl_action_executor/GeneralAction message type. The message defines a set of supported action types, a set of common error codes, and a variety of input data whose use is determined by the action type. Action types and explanations of their input are as follows:
Navigate - plan and move the robot base to a specified location.
- nav_pose - a pose goal for navigation; this is the default for specifying a navigate action.
nav_location - a location as specified by the rail_lab_location_server, used only if nav_pose is unspecified.
Ready Arm - plan and move the arm to the ready position.
- No further input is used.
Retract Arm - plan and move the arm to the retracted position.
- No further input is used.
Pickup - pick up a recognized object, or perform a pick up action at a specified pose.
- object_name - name of the object to be picked up, this is the default for specifying a pickup action.
- manipulaiton_pose - end-effector pose at which to perform a pickup action, used only if object_name is unspecified.
Store - store an object in a specified location.
- manipulation_pose - end-effector pose at which to release the object.
Segment - perform tabletop segmentation.
- surface_frame - (optional) name of the frame to look at before segmentation.
Recognize - perform tabletop segmentation and object recognition.
- surface_frame - (optional) name of the frame to look at before segmentation and recognition.
Installation
To install the carl_action_executor package, you can install from source with the following commands:
Startup
The carl_action_executor can be started by simply running the node:
rosrun carl_action_executor carl_action_executor