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.
move_carl (carl_navigation/MoveCarlAction)
  • Base navigation to a pre-defined named location.
carl_moveit_wrapper/common_actions/arm_action (carl_moveit/ArmAction)
  • Pre-defined arm movement (e.g. home, retract).
carl_moveit_wrapper/common_actions/pickup (carl_moveit/PickupAction)
  • Object pickup.
carl_moveit_wrapper/common_actions/store (carl_moveit/StoreAction)
  • 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.
carl_action_executor/clear_action_list (std_srvs/Empty)
  • Clear all actions in the action list.
carl_action_executor/get_action_list (carl_action_executor/GetActionList)
  • Return the current action list.
carl_action_executor/insert_action (carl_action_executor/InsertAction)
  • Insert an action into the action list at a specified index.
carl_action_executor/remove_action (carl_action_executor/RemoveAction)
  • Remove an action from the action list at a specified index.

Services Called

rail_segmentation/segment (std_srvs/Empty)
  • Tabletop object segmentation service.
asus_controller/look_at_frame (carl_dynamixel/LookAtFrame)
  • 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:

  •    1 cd /(your catkin workspace)/src
       2 git clone https://github.com/WPI-RAIL/carl_action_executor.git
       3 cd ..
       4 catkin_make
       5 catkin_make install
    

Startup

The carl_action_executor can be started by simply running the node:

  • rosrun carl_action_executor carl_action_executor

Wiki: carl_action_executor (last edited 2015-08-04 17:24:22 by davidkent)