00001 #ifndef PLANNER_PARAMETERS_H 00002 #define PLANNER_PARAMETERS_H 00003 00004 #include <string> 00005 using namespace std; 00006 #include "best_first_search.h" 00007 00008 class PlannerParameters 00009 { 00010 public: 00011 PlannerParameters(); 00012 ~PlannerParameters(); 00013 00015 bool readParameters(int argc, char** argv); 00016 00017 void dump() const; 00018 00019 public: 00020 bool anytime_search; 00021 bool disallow_concurrent_actions; 00022 00023 int timeout_if_plan_found; 00024 int timeout_while_no_plan_found; 00025 int min_search_time_after_plan_found; 00026 double min_search_time_factor_after_plan_found; 00027 00028 bool greedy; 00029 bool lazy_evaluation; 00030 bool verbose; 00031 bool insert_let_time_pass_only_when_running_operators_not_empty; 00032 00033 int lazy_state_module_evaluation; 00034 00036 00039 bool use_cost_modules_for_applicability; 00040 00041 bool cyclic_cg_heuristic; 00042 bool cyclic_cg_preferred_operators; 00043 bool makespan_heuristic; 00044 bool makespan_heuristic_preferred_operators; 00045 bool no_heuristic; 00046 00047 bool cg_heuristic_zero_cost_waiting_transitions; 00048 bool cg_heuristic_fire_waiting_transitions_only_if_local_problems_matches_state; 00049 00051 enum GValues { 00052 GMakespan, 00053 GCost, 00054 GTimestamp, 00055 GWeighted 00056 }; 00057 enum GValues g_values; 00058 double g_weight; 00059 00060 BestFirstSearchEngine::QueueManagementMode queueManagementMode; 00061 00062 bool use_known_by_logical_state_only; 00063 00066 bool use_subgoals_to_break_makespan_ties; 00067 00068 bool reschedule_plans; 00069 bool epsilonize_internally; 00070 bool epsilonize_externally; 00071 bool keep_original_plans; 00072 00073 string plan_name; 00074 string planMonitorFileName; 00075 00076 bool monitoring_verify_timestamps; 00077 00078 protected: 00080 bool readROSParameters(); 00082 bool readCmdLineParameters(int argc, char** argv); 00083 00084 void printUsage() const; 00085 }; 00086 00087 #endif 00088