00001 #ifndef HIGH_LEVEL_ACTIONS_H_ 00002 #define HIGH_LEVEL_ACTIONS_H_ 00003 00004 #include <ros/ros.h> 00005 #include <actionlib/client/simple_action_client.h> 00006 #include <boost/thread/mutex.hpp> 00007 #include <carl_dynamixel/LookAtFrame.h> 00008 #include <carl_demos/ObtainObjectAction.h> 00009 #include <rail_manipulation_msgs/ArmAction.h> 00010 #include <carl_navigation/MoveCarlAction.h> 00011 #include <wpi_jaco_msgs/HomeArmAction.h> 00012 00013 #define NUM_JACO_JOINTS 6 00014 #define MAX_HOME_ATTEMPTS 3 00015 00016 class SequentialTasks 00017 { 00018 00019 public: 00020 00024 SequentialTasks(); 00025 00031 void packSchoolBag(); 00032 00033 void makeFruitBasket(); 00034 00035 void checkSurface(int location, std::string surfaceLink); 00036 00044 void obtainObject(int location, std::string object, std::string surfaceLink); 00045 00046 private: 00047 ros::NodeHandle n; 00048 00049 ros::ServiceClient lookAtFrameClient; 00050 00051 actionlib::SimpleActionClient<rail_manipulation_msgs::ArmAction> armClient; 00052 actionlib::SimpleActionClient<wpi_jaco_msgs::HomeArmAction> armHomeClient; 00053 actionlib::SimpleActionClient<carl_demos::ObtainObjectAction> obtainObjectClient; 00054 actionlib::SimpleActionClient<carl_navigation::MoveCarlAction> moveCarlClient; 00055 }; 00056 00057 #endif