15 bool has_roadmap_type;
16 std::string roadmap_type;
19 std::vector< std::pair<std::string,std::string> > roadmap_params;
21 bool has_do_roadmap_save;
24 bool has_num_batches_init;
25 unsigned int num_batches_init;
30 bool has_do_alglog_append;
31 bool do_alglog_append;
39 bool has_coeff_distance;
40 double coeff_distance;
42 bool has_coeff_checkcost;
43 double coeff_checkcost;
51 bool has_persist_roots;
55 unsigned int max_batches;
61 std::string search_type;
63 bool has_search_incbi_heur_interp;
64 double search_incbi_heur_interp;
66 bool has_search_incbi_balancer_type;
67 std::string search_incbi_balancer_type;
69 bool has_search_incbi_balancer_goalfrac;
70 double search_incbi_balancer_goalfrac;
73 std::string eval_type;
82 has_roadmap_type(
false),
83 has_do_roadmap_save(
false),
84 has_num_batches_init(
false),
86 has_do_alglog_append(
false),
88 has_check_cost(
false),
89 has_coeff_distance(
false),
90 has_coeff_checkcost(
false),
91 has_coeff_batch(
false),
93 has_persist_roots(
false),
94 has_max_batches(
false),
95 has_time_limit(
false),
96 has_search_type(
false),
97 has_search_incbi_heur_interp(
false),
98 has_search_incbi_balancer_type(
false),
99 has_search_incbi_balancer_goalfrac(
false),
100 has_eval_type(
false),
101 has_solve_all(
false),
105 _vXMLParameters.push_back(
"roadmap_type");
106 _vXMLParameters.push_back(
"roadmap_param");
107 _vXMLParameters.push_back(
"do_roadmap_save");
108 _vXMLParameters.push_back(
"num_batches_init");
109 _vXMLParameters.push_back(
"alglog");
110 _vXMLParameters.push_back(
"do_alglog_append");
111 _vXMLParameters.push_back(
"graph");
112 _vXMLParameters.push_back(
"check_cost");
113 _vXMLParameters.push_back(
"coeff_distance");
114 _vXMLParameters.push_back(
"coeff_checkcost");
115 _vXMLParameters.push_back(
"coeff_batch");
116 _vXMLParameters.push_back(
"do_timing");
117 _vXMLParameters.push_back(
"persist_roots");
118 _vXMLParameters.push_back(
"max_batches");
119 _vXMLParameters.push_back(
"time_limit");
120 _vXMLParameters.push_back(
"search_type");
121 _vXMLParameters.push_back(
"search_incbi_heur_interp");
122 _vXMLParameters.push_back(
"search_incbi_balancer_type");
123 _vXMLParameters.push_back(
"search_incbi_balancer_goalfrac");
124 _vXMLParameters.push_back(
"eval_type");
125 _vXMLParameters.push_back(
"solve_all");
126 _vXMLParameters.push_back(
"do_baked");
130 std::string lemur_deserializing;
133 bool serialize(std::ostream& sout,
int options=0)
const
135 if (!OpenRAVE::PlannerBase::PlannerParameters::serialize(sout,options))
137 if (has_roadmap_type)
138 sout <<
"<roadmap_type>" << roadmap_type <<
"</roadmap_type>";
139 for (
unsigned int ui=0; ui<roadmap_params.size(); ui++)
141 sout <<
"<roadmap_param>"
142 << roadmap_params[ui].first <<
"=" << roadmap_params[ui].second
143 <<
"</roadmap_param>";
145 if (has_do_roadmap_save)
146 sout <<
"<do_roadmap_save>" << (do_roadmap_save?
"true":
"false") <<
"</do_roadmap_save>";
147 if (has_num_batches_init)
148 sout <<
"<num_batches_init>" << num_batches_init <<
"</num_batches_init>";
150 sout <<
"<alglog>" << alglog <<
"</alglog>";
151 if (has_do_alglog_append)
152 sout <<
"<do_alglog_append>" << (do_alglog_append?
"true":
"false") <<
"</do_alglog_append>";
154 sout <<
"<graph>" << graph <<
"</graph>";
156 sout <<
"<check_cost>" << check_cost <<
"</check_cost>";
157 if (has_coeff_distance)
158 sout <<
"<coeff_distance>" << coeff_distance <<
"</coeff_distance>";
159 if (has_coeff_checkcost)
160 sout <<
"<coeff_checkcost>" << coeff_checkcost <<
"</coeff_checkcost>";
162 sout <<
"<coeff_batch>" << coeff_batch <<
"</coeff_batch>";
164 sout <<
"<do_timing>" << (do_timing?
"true":
"false") <<
"</do_timing>";
165 if (has_persist_roots)
166 sout <<
"<persist_roots>" << (persist_roots?
"true":
"false") <<
"</persist_roots>";
168 sout <<
"<max_batches>" << max_batches <<
"</max_batches>";
170 sout <<
"<time_limit>" << time_limit <<
"</time_limit>";
172 sout <<
"<search_type>" << search_type <<
"</search_type>";
173 if (has_search_incbi_heur_interp)
174 sout <<
"<search_incbi_heur_interp>" << search_incbi_heur_interp <<
"</search_incbi_heur_interp>";
175 if (has_search_incbi_balancer_type)
176 sout <<
"<search_incbi_balancer_type>" << search_incbi_balancer_type <<
"</search_incbi_balancer_type>";
177 if (has_search_incbi_balancer_goalfrac)
178 sout <<
"<search_incbi_balancer_goalfrac>" << search_incbi_balancer_goalfrac <<
"</search_incbi_balancer_goalfrac>";
180 sout <<
"<eval_type>" << eval_type <<
"</eval_type>";
182 sout <<
"<solve_all>" << (solve_all?
"true":
"false") <<
"</solve_all>";
184 sout <<
"<do_baked>" << (do_baked?
"true":
"false") <<
"</do_baked>";
188 OpenRAVE::BaseXMLReader::ProcessElement startElement(
189 const std::string & name,
const OpenRAVE::AttributesList & atts)
191 if (lemur_deserializing.size())
194 enum OpenRAVE::BaseXMLReader::ProcessElement base;
195 base = OpenRAVE::PlannerBase::PlannerParameters::startElement(name,atts);
196 if (base != PE_Pass)
return base;
198 if (name ==
"roadmap_type"
199 || name ==
"roadmap_param"
200 || name ==
"do_roadmap_save"
201 || name ==
"num_batches_init"
203 || name ==
"do_alglog_append"
205 || name ==
"check_cost"
206 || name ==
"coeff_distance"
207 || name ==
"coeff_checkcost"
208 || name ==
"coeff_batch"
209 || name ==
"do_timing"
210 || name ==
"persist_roots"
211 || name ==
"max_batches"
212 || name ==
"time_limit"
213 || name ==
"search_type"
214 || name ==
"search_incbi_heur_interp"
215 || name ==
"search_incbi_balancer_type"
216 || name ==
"search_incbi_balancer_goalfrac"
217 || name ==
"eval_type"
218 || name ==
"solve_all"
219 || name ==
"do_baked")
221 lemur_deserializing = name;
228 bool endElement(
const std::string & name)
230 if (!lemur_deserializing.size())
231 return OpenRAVE::PlannerBase::PlannerParameters::endElement(name);
232 if (name == lemur_deserializing)
234 if (lemur_deserializing ==
"roadmap_type")
236 roadmap_type = _ss.str();
237 has_roadmap_type =
true;
239 if (lemur_deserializing ==
"roadmap_param")
241 std::string roadmap_param = _ss.str();
242 size_t eq = roadmap_param.find(
'=');
243 if (eq != roadmap_param.npos)
244 roadmap_params.push_back(std::make_pair(
245 roadmap_param.substr(0,eq), roadmap_param.substr(eq+1)));
247 RAVELOG_WARN(
"no = found in roadmap_param!\n");
249 if (lemur_deserializing ==
"do_roadmap_save")
253 _ss >> std::boolalpha >> do_roadmap_save;
255 has_do_roadmap_save =
true;
257 if (lemur_deserializing ==
"num_batches_init")
259 _ss >> num_batches_init;
260 has_num_batches_init =
true;
262 if (lemur_deserializing ==
"alglog")
267 if (lemur_deserializing ==
"do_alglog_append")
271 _ss >> std::boolalpha >> do_alglog_append;
273 has_do_alglog_append =
true;
275 if (lemur_deserializing ==
"graph")
280 if (lemur_deserializing ==
"check_cost")
283 has_check_cost =
true;
285 if (lemur_deserializing ==
"coeff_distance")
287 _ss >> coeff_distance;
288 has_coeff_distance =
true;
290 if (lemur_deserializing ==
"coeff_checkcost")
292 _ss >> coeff_checkcost;
293 has_coeff_checkcost =
true;
295 if (lemur_deserializing ==
"coeff_batch")
298 has_coeff_batch =
true;
300 if (lemur_deserializing ==
"do_timing")
304 _ss >> std::boolalpha >> do_timing;
306 has_do_timing =
true;
308 if (lemur_deserializing ==
"persist_roots")
312 _ss >> std::boolalpha >> persist_roots;
314 has_persist_roots =
true;
316 if (lemur_deserializing ==
"max_batches")
319 has_max_batches =
true;
321 if (lemur_deserializing ==
"time_limit")
324 has_time_limit =
true;
326 if (lemur_deserializing ==
"search_type")
328 search_type = _ss.str();
329 has_search_type =
true;
331 if (lemur_deserializing ==
"search_incbi_heur_interp")
333 _ss >> search_incbi_heur_interp;
334 has_search_incbi_heur_interp =
true;
336 if (lemur_deserializing ==
"search_incbi_balancer_type")
338 search_incbi_balancer_type = _ss.str();
339 has_search_incbi_balancer_type =
true;
341 if (lemur_deserializing ==
"search_incbi_balancer_goalfrac")
343 _ss >> search_incbi_balancer_goalfrac;
344 has_search_incbi_balancer_goalfrac =
true;
346 if (lemur_deserializing ==
"eval_type")
348 eval_type = _ss.str();
349 has_eval_type =
true;
351 if (lemur_deserializing ==
"solve_all")
355 _ss >> std::boolalpha >> solve_all;
357 has_solve_all =
true;
359 if (lemur_deserializing ==
"do_baked")
363 _ss >> std::boolalpha >> do_baked;
369 RAVELOG_WARN(
"closing tag doesnt match opening tag!\n");
370 lemur_deserializing.clear();
375 typedef boost::shared_ptr<LEMURParameters> LEMURParametersPtr;
376 typedef boost::shared_ptr<LEMURParameters const> LEMURParametersConstPtr;
Definition: params_lemur.h:11