00001 #ifndef ACTION_EXECUTOR_DETECT_GRASPABLE_OBJECTS_H 00002 #define ACTION_EXECUTOR_DETECT_GRASPABLE_OBJECTS_H 00003 00004 #include "continual_planning_executive/actionExecutorService.hpp" 00005 #include "continual_planning_executive/symbolicState.h" 00006 #include <tidyup_msgs/DetectGraspableObjects.h> 00007 00008 namespace tidyup_actions 00009 { 00010 00011 class ActionExecutorDetectObjects : public ActionExecutorService<tidyup_msgs::DetectGraspableObjects> 00012 { 00013 public: 00014 virtual void initialize(const std::deque<std::string> & arguments); 00015 00016 virtual bool fillGoal(tidyup_msgs::DetectGraspableObjects::Request & goal, 00017 const DurativeAction & a, const SymbolicState & current); 00018 00019 virtual void updateState(bool success, tidyup_msgs::DetectGraspableObjects::Response & response, 00020 const DurativeAction & a, SymbolicState & current); 00021 00022 private: 00023 ros::ServiceClient serviceClientGraspability; 00024 bool requestGraspability; 00025 string tidyLocationName; 00026 00027 std::string findStaticObjectForLocation(const std::string& location, const SymbolicState & current) const; 00028 }; 00029 00030 }; 00031 00032 #endif 00033