00001 00002 00003 #ifndef SCAVTASKFETCHOBJECT_H 00004 #define SCAVTASKFETCHOBJECT_H 00005 00006 #include <string> 00007 #include <ros/ros.h> 00008 #include <ros/package.h> 00009 #include <boost/thread.hpp> 00010 #include <boost/filesystem.hpp> 00011 #include <boost/date_time.hpp> 00012 00013 #include "ScavTask.h" 00014 #include "SearchPlanner.h" 00015 00016 class ScavTaskFetchObject : public ScavTask { 00017 public: 00018 00019 ScavTaskFetchObject(); 00020 ~ScavTaskFetchObject() { delete gui_service_client; } 00021 00022 ScavTaskFetchObject(ros::NodeHandle *node_handle, std::string path_of_dir); 00023 00024 void executeTask(int timeout, TaskResult &result, std::string &record); 00025 void hriThread(); 00026 void motionThread(); 00027 void stopEarly(); 00028 00029 bool random_walk_flag; 00030 bool target_detected; 00031 bool task_completed; 00032 00033 SearchPlannerSimple *search_planner_simple; 00034 00035 std::string object_name, room_name_from, room_name_to; 00036 00037 std::string directory; 00038 00039 ros::ServiceClient *gui_service_client; 00040 00041 private: 00042 bool _target_detected; 00043 00044 }; 00045 00046 #endif