Benchmark.h
218 void addExperimentParameter(const std::string &name, const std::string &type, const std::string &value)
252 (gsetup_ != nullptr ? gsetup_->getSpaceInformation().get() : csetup_->getSpaceInformation().get()))
260 planners_.push_back(pa(gsetup_ != nullptr ? gsetup_->getSpaceInformation() : csetup_->getSpaceInformation()));
Create the set of classes typically needed to solve a control problem.
Definition: SimpleSetup.h:63
const SpaceInformationPtr & getSpaceInformation() const
Get the current instance of the space information.
Definition: SimpleSetup.h:74
Create the set of classes typically needed to solve a geometric problem.
Definition: SimpleSetup.h:63
const base::SpaceInformationPtr & getSpaceInformation() const
Get the current instance of the space information.
Definition: SimpleSetup.h:74
PreSetupEvent plannerSwitch_
Event to be called when the evaluated planner is switched.
Definition: Benchmark.h:344
std::function< void(const base::PlannerPtr &)> PreSetupEvent
Signature of function that can be called before a planner execution is started.
Definition: Benchmark.h:84
virtual void benchmark(const Request &req)
Benchmark the added planners on the defined problem. Repeated calls clear previously gathered data.
Definition: Benchmark.cpp:353
std::vector< base::PlannerPtr > planners_
The set of planners to be tested.
Definition: Benchmark.h:335
void setPreRunEvent(const PreSetupEvent &event)
Set the event to be called before the run of a planner.
Definition: Benchmark.h:276
const Status & getStatus() const
Get the status of the benchmarking code. This function can be called in a separate thread to check ho...
Definition: Benchmark.h:303
const CompleteExperiment & getRecordedExperimentData() const
Return all the experiment data that would be written to the results file. The data should not be chan...
Definition: Benchmark.h:312
void setExperimentName(const std::string &name)
Set the name of the experiment.
Definition: Benchmark.h:236
void setPlannerSwitchEvent(const PreSetupEvent &event)
Set the event to be called before any runs of a particular planner (when the planner is switched)
Definition: Benchmark.h:270
CompleteExperiment exp_
The collected experimental data (for all planners)
Definition: Benchmark.h:338
control::SimpleSetup * csetup_
The instance of the problem to benchmark (if planning with controls)
Definition: Benchmark.h:332
std::function< void(const base::PlannerPtr &, RunProperties &)> PostSetupEvent
Signature of function that can be called after a planner execution is completed.
Definition: Benchmark.h:87
Benchmark(control::SimpleSetup &setup, const std::string &name=std::string())
Constructor needs the SimpleSetup instance needed for planning. Optionally, the experiment name (name...
Definition: Benchmark.h:207
const std::map< std::string, std::string > & getExperimentParameters() const
Get all optional benchmark parameters. The map key is 'name type'
Definition: Benchmark.h:224
geometric::SimpleSetup * gsetup_
The instance of the problem to benchmark (if geometric planning)
Definition: Benchmark.h:329
void setPostRunEvent(const PostSetupEvent &event)
Set the event to be called after the run of a planner.
Definition: Benchmark.h:282
void addPlannerAllocator(const base::PlannerAllocator &pa)
Add a planner allocator to use.
Definition: Benchmark.h:258
std::size_t numExperimentParameters() const
Return the number of optional benchmark parameters.
Definition: Benchmark.h:230
bool saveResultsToFile() const
Save the results of the benchmark to a file. The name of the file is the current date and time.
Definition: Benchmark.cpp:220
virtual bool saveResultsToStream(std::ostream &out=std::cout) const
Save the results of the benchmark to a stream.
Definition: Benchmark.cpp:226
const std::string & getExperimentName() const
Get the name of the experiment.
Definition: Benchmark.h:242
std::map< std::string, std::string > RunProperties
The data collected from a run of a planner is stored as key-value pairs.
Definition: Benchmark.h:79
Benchmark(geometric::SimpleSetup &setup, const std::string &name=std::string())
Constructor needs the SimpleSetup instance needed for planning. Optionally, the experiment name (name...
Definition: Benchmark.h:199
void addExperimentParameter(const std::string &name, const std::string &type, const std::string &value)
Add an optional parameter's information to the benchmark output. Useful for aggregating results over ...
Definition: Benchmark.h:218
std::function< PlannerPtr(const SpaceInformationPtr &)> PlannerAllocator
Definition of a function that can allocate a planner.
Definition: Planner.h:444
Main namespace. Contains everything in this library.
Definition: ConstrainedSpaceInformation.h:53
This structure holds experimental data for a set of planners.
Definition: Benchmark.h:117
std::string cpuInfo
Information about the CPU of the machine the benchmark ran on.
Definition: Benchmark.h:149
double totalDuration
The amount of time spent to collect the information in this structure (seconds)
Definition: Benchmark.h:137
double maxTime
The maximum allowed time for planner computation during the experiment (seconds)
Definition: Benchmark.h:125
std::map< std::string, std::string > parameters
Additional, experiment specific parameters. This is optional.
Definition: Benchmark.h:152
std::vector< PlannerExperiment > planners
The collected experimental data; each element of the array (an experiment) corresponds to a planner.
Definition: Benchmark.h:122
std::uint_fast32_t seed
The random seed that was used at the start of the benchmark program.
Definition: Benchmark.h:143
std::string host
Hostname that identifies the machine the benchmark ran on.
Definition: Benchmark.h:146
double maxMem
The maximum allowed memory for planner computation during the experiment (MB)
Definition: Benchmark.h:128
std::string setupInfo
The output of SimpleSetup::print() before the experiment was started.
Definition: Benchmark.h:140
The data collected after running a planner multiple times.
Definition: Benchmark.h:91
std::vector< std::string > progressPropertyNames
Definition: Benchmark.h:100
std::vector< RunProgressData > runsProgressData
Definition: Benchmark.h:104
unsigned int runCount
the number of times to run each planner; 100 by default If set to 0, then run each planner as many ti...
Definition: Benchmark.h:180
bool displayProgress
flag indicating whether progress is to be displayed or not; true by default
Definition: Benchmark.h:187
double maxMem
the maximum amount of memory a planner is allowed to use (MB); 4096.0 by default
Definition: Benchmark.h:176
double timeBetweenUpdates
When collecting time-varying data from a planner during its execution, the planner's progress will be...
Definition: Benchmark.h:184
bool saveConsoleOutput
flag indicating whether console output is saved (in an automatically generated filename); true by def...
Definition: Benchmark.h:191
Request(double maxTime=5.0, double maxMem=4096.0, unsigned int runCount=100, double timeBetweenUpdates=0.05, bool displayProgress=true, bool saveConsoleOutput=true, bool simplify=true)
Constructor that provides default values for all members.
Definition: Benchmark.h:159
double maxTime
the maximum amount of time a planner is allowed to run (seconds); 5.0 by default
Definition: Benchmark.h:173
bool simplify
flag indicating whether simplification should be applied to path; true by default
Definition: Benchmark.h:194
This structure contains information about the activity of a benchmark instance. If the instance is ru...
Definition: Benchmark.h:56