00001 00025 #ifndef _CONTROLLER_TIMED_MDP_H_ 00026 #define _CONTROLLER_TIMED_MDP_H_ 00027 00028 #include <string> 00029 00030 #include <boost/shared_ptr.hpp> 00031 00032 #include <mdm_library/controller_mdp.h> 00033 00034 00035 00036 namespace mdm_library 00037 { 00041 class ControllerTimedMDP : public ControllerMDP 00042 { 00043 public: 00044 #ifdef HAVE_MADP 00045 ControllerTimedMDP ( const std::string& policy_file_path, 00046 const std::string& problem_file_path, 00047 const CONTROLLER_STATUS initial_status = STARTED ); 00048 #endif 00049 00050 ControllerTimedMDP ( const std::string& policy_file_path, 00051 const CONTROLLER_STATUS initial_status = STARTED ); 00052 00053 void stateCallback ( const WorldSymbolConstPtr& msg ); 00054 private: 00055 void scheduleTimer(); 00056 void timerCallback ( const ros::TimerEvent& timer_event ); 00057 void step(); 00058 00059 bool initial_state_known_; 00060 00061 ros::Timer timer_; 00062 00063 uint32_t s_; 00064 }; 00065 } 00066 00067 #endif