Benchmark a set of planners on a problem instance. More...
#include <Benchmark.h>
Classes | |
struct | CompleteExperiment |
This structure holds experimental data for a set of planners. More... | |
struct | PlannerExperiment |
The data collected after running a planner multiple times. More... | |
struct | Request |
Representation of a benchmark request. More... | |
struct | Status |
This structure contains information about the activity of a benchmark instance. If the instance is running, it is possible to find out information such as which planner is currently being tested or how much. More... |
Public Types | |
typedef std::map< std::string, std::string > | RunProperties |
The data collected from a run of a planner is stored as key-value pairs. | |
typedef boost::function< void(const base::PlannerPtr &)> | PreSetupEvent |
Signature of function that can be called before a planner execution is started. | |
typedef boost::function< void(const base::PlannerPtr &, RunProperties &)> | PostSetupEvent |
Signature of function that can be called after a planner execution is completed. |
Public Member Functions | |
Benchmark (geometric::SimpleSetup &setup, const std::string &name=std::string()) | |
Constructor needs the SimpleSetup instance needed for planning. Optionally, the experiment name (name) can be specified. | |
Benchmark (control::SimpleSetup &setup, const std::string &name=std::string()) | |
Constructor needs the SimpleSetup instance needed for planning. Optionally, the experiment name (name) can be specified. | |
void | setExperimentName (const std::string &name) |
Set the name of the experiment. | |
const std::string & | getExperimentName (void) const |
Get the name of the experiment. | |
void | addPlanner (const base::PlannerPtr &planner) |
Add a planner to use. | |
void | addPlannerAllocator (const base::PlannerAllocator &pa) |
Add a planner allocator to use. | |
void | clearPlanners (void) |
Clear the set of planners to be benchmarked. | |
void | setPlannerSwitchEvent (const PreSetupEvent &event) |
Set the event to be called before any runs of a particular planner (when the planner is switched) | |
void | setPreRunEvent (const PreSetupEvent &event) |
Set the event to be called before the run of a planner. | |
void | setPostRunEvent (const PostSetupEvent &event) |
Set the event to be called after the run of a planner. | |
virtual void | benchmark (const Request &req) |
Benchmark the added planners on the defined problem. Repeated calls clear previously gathered data. | |
const Status & | getStatus (void) const |
Get the status of the benchmarking code. This function can be called in a separate thread to check how much progress has been made. | |
const CompleteExperiment & | getRecordedExperimentData (void) const |
Return all the experiment data that would be written to the results file. The data should not be changed, but it could be useful to quickly extract cartain statistics. | |
virtual bool | saveResultsToStream (std::ostream &out=std::cout) const |
Save the results of the benchmark to a stream. | |
bool | saveResultsToFile (const char *filename) const |
Save the results of the benchmark to a file. | |
bool | saveResultsToFile (void) const |
Save the results of the benchmark to a file. The name of the file is the current date and time. |
Protected Attributes | |
geometric::SimpleSetup * | gsetup_ |
The instance of the problem to benchmark (if geometric planning) | |
control::SimpleSetup * | csetup_ |
The instance of the problem to benchmark (if planning with controls) | |
std::vector< base::PlannerPtr > | planners_ |
The set of planners to be tested. | |
CompleteExperiment | exp_ |
The collected experimental data (for all planners) | |
Status | status_ |
The current status of this benchmarking instance. | |
PreSetupEvent | plannerSwitch_ |
Event to be called when the evaluated planner is switched. | |
PreSetupEvent | preRun_ |
Event to be called before the run of a planner. | |
PostSetupEvent | postRun_ |
Event to be called after the run of a planner. |
Benchmark a set of planners on a problem instance.
Definition at line 48 of file Benchmark.h.
|
virtual |
Benchmark the added planners on the defined problem. Repeated calls clear previously gathered data.
req | The parameters for the execution of the benchmark |
Definition at line 281 of file Benchmark.cpp.