00001 #ifndef ACTION_EXECUTOR_R_O_S_NAVIGATION_H 00002 #define ACTION_EXECUTOR_R_O_S_NAVIGATION_H 00003 00004 #include "continual_planning_executive/actionExecutorActionlib.hpp" 00005 #include "continual_planning_executive/symbolicState.h" 00006 #include <move_base_msgs/MoveBaseAction.h> 00007 #include <vector> 00008 #include <utility> 00009 00010 namespace planner_navigation_actions 00011 { 00012 00013 class ActionExecutorROSNavigation : public ActionExecutorActionlib<move_base_msgs::MoveBaseAction 00014 , move_base_msgs::MoveBaseGoal, move_base_msgs::MoveBaseResult> 00015 { 00016 public: 00023 virtual void initialize(const std::deque<std::string> & arguments); 00024 00025 virtual bool fillGoal(move_base_msgs::MoveBaseGoal & goal, 00026 const DurativeAction & a, const SymbolicState & current); 00027 00028 virtual void updateState(const actionlib::SimpleClientGoalState & actionReturnState, 00029 const move_base_msgs::MoveBaseResult & result, 00030 const DurativeAction & a, SymbolicState & current); 00031 00032 protected: 00034 std::vector<std::pair<std::string, bool> > _startPredicates; 00035 00037 std::vector<std::pair<std::string, bool> > _goalPredicates; 00038 00039 }; 00040 00041 }; 00042 00043 #endif 00044