1 #ifndef PMPL_MP_LIBRARY_H_
2 #define PMPL_MP_LIBRARY_H_
160 vc.second->ToggleValidity();
336 const
VID _source, const
VID _target,
337 const
double _posRes, const
double _oriRes);
342 const
VID _source, const
VID _target,
343 const
double _posRes, const
double _oriRes);
346 template <typename AbstractRoadmapType>
348 AbstractRoadmapType* const _roadmap,
349 const
VID _source, const
VID _target);
367 void SetSeed(const
long _seed) const noexcept;
375 const std::
string& _baseFileName,
bool _vizmoDebug = false) {
376 m_solvers.push_back(
Solver{_label, _seed, _baseFileName, _vizmoDebug});
380 std::vector<std::string> labels;
381 for (
auto& solver : m_solvers)
382 labels.push_back(solver.label);
418 const std::string& _label,
const long _seed,
419 const std::string& _baseFilename);
425 void Print(std::ostream& _os)
const;
436 void RunSolver(
const Solver& _s);
450 bool ParseChild(
XMLNode& _node);
460 std::vector<Solver> m_solvers;
468 std::unique_ptr<GoalTracker> m_goalTracker;
475 std::atomic<bool> m_running{
true};
503 template <
typename AbstractRoadmapType>
504 std::vector<typename AbstractRoadmapType::VP>
510 env->GetPositionRes(), env->GetOrientationRes());
Definition: GenericStateGraph.h:67
Maintains a set of GoalMap for multiple roadmap/task pairs.
Definition: GoalTracker.h:298
Definition: GroupLocalPlan.h:24
Definition: GroupPath.h:23
Definition: GroupRoadmap.h:25
Definition: GroupTask.h:44
Definition: LocalObstacleMap.h:27
Definition: MPLibrary.h:47
MethodSet< MapEvaluatorMethod > MapEvaluatorSet
Definition: MPLibrary.h:91
void AddValidityChecker(ValidityCheckerPointer _vc, const std::string &_l)
Definition: MPLibrary.h:153
void AddConnector(ConnectorPointer _c, const std::string &_l)
Definition: MPLibrary.h:238
EdgeValidityCheckerPointer GetEdgeValidityChecker(const std::string &_l)
Definition: MPLibrary.h:223
EdgeValidityCheckerSet::MethodPointer EdgeValidityCheckerPointer
Definition: MPLibrary.h:107
RoadmapType * GetBlockRoadmap(Robot *const _r=nullptr) const noexcept
Definition: MPLibrary.cpp:359
void AddSampler(SamplerPointer _s, const std::string &_l)
Definition: MPLibrary.h:182
void AddNeighborhoodFinder(NeighborhoodFinderPointer _nf, const std::string &_l)
Definition: MPLibrary.h:170
MapEvaluatorPointer GetMapEvaluator(const std::string &_l)
Definition: MPLibrary.h:255
MPLibrary()
Definition: MPLibrary.cpp:10
ExtenderPointer GetExtender(const std::string &_l)
Definition: MPLibrary.h:201
PathModifierSet * m_pathModifiers
Definition: MPLibrary.h:492
MetricSet::MethodPointer MetricPointer
Definition: MPLibrary.h:109
SamplerSet::MethodPointer SamplerPointer
Definition: MPLibrary.h:102
MethodSet< ConnectorMethod > ConnectorSet
Definition: MPLibrary.h:89
SamplerPointer GetSampler(const std::string &_l)
Definition: MPLibrary.h:179
GoalTracker * GetGoalTracker() const noexcept
Definition: MPLibrary.cpp:395
LocalObstacleMap * GetLocalObstacleMap(Robot *const _r=nullptr) const noexcept
Definition: MPLibrary.cpp:386
void ToggleValidity()
Definition: MPLibrary.h:158
void SetGroupTask(GroupTask *const _task) noexcept
Definition: MPLibrary.cpp:305
void AddPathModifier(PathModifierPointer _ps, const std::string &_l)
Definition: MPLibrary.h:215
void AddMPStrategy(MPStrategyPointer _mps, const std::string &_l)
Definition: MPLibrary.h:279
void AddDistanceMetric(DistanceMetricPointer _dm, const std::string &_l)
Definition: MPLibrary.h:142
DistanceMetricSet::MethodPointer DistanceMetricPointer
Definition: MPLibrary.h:99
void ReadXMLFile(const std::string &_filename)
Definition: MPLibrary.cpp:121
GenericStateGraph< Cfg, DefaultWeight< Cfg > > RoadmapType
Definition: MPLibrary.h:55
GroupPath * GetGroupPath(RobotGroup *const _g=nullptr) const noexcept
Definition: MPLibrary.cpp:377
void ProcessXML(XMLNode &node)
Definition: MPLibrary.cpp:141
GroupTask * GetGroupTask() const noexcept
Definition: MPLibrary.cpp:298
NeighborhoodFinderPointer GetNeighborhoodFinder(const std::string &_l)
Definition: MPLibrary.h:167
PathModifierSet::MethodPointer PathModifierPointer
Definition: MPLibrary.h:105
size_t VID
Definition: MPLibrary.h:57
ExtenderSet * m_extenders
Definition: MPLibrary.h:491
MethodSet< MetricMethod > MetricSet
Definition: MPLibrary.h:90
GroupRoadmap< GroupCfg< RoadmapType >, GroupLocalPlan< RoadmapType > > GroupRoadmapType
Definition: MPLibrary.h:56
bool IsRunning() const noexcept
Check to see if the strategy should continue.
Definition: MPLibrary.cpp:476
GroupRoadmapType * GetGroupRoadmap(RobotGroup *const _g=nullptr) const noexcept
Definition: MPLibrary.cpp:350
MPTask * GetTask() const noexcept
Definition: MPLibrary.cpp:284
const std::string & GetBaseFilename() const noexcept
Definition: MPLibrary.cpp:312
std::vector< typename RoadmapType::VP > ReconstructEdge(RoadmapType *const _roadmap, const VID _source, const VID _target, const double _posRes, const double _oriRes)
Definition: MPLibrary.cpp:410
MethodSet< EdgeValidityCheckerMethod > EdgeValidityCheckerSet
Definition: MPLibrary.h:88
Path * GetPath(Robot *const _r=nullptr) const noexcept
Definition: MPLibrary.cpp:368
MapEvaluatorSet::MethodPointer MapEvaluatorPointer
Definition: MPLibrary.h:110
std::vector< std::string > GetSolverLabels()
Definition: MPLibrary.h:379
MPSolutionType MPSolution
Definition: MPLibrary.h:54
DistanceMetricPointer GetDistanceMetric(const std::string &_l)
Definition: MPLibrary.h:139
const SamplerSet *const GetSamplers() const
Definition: MPLibrary.h:178
MetricSet * m_metrics
Definition: MPLibrary.h:495
void AddMapEvaluator(MapEvaluatorPointer _me, const std::string &_l)
Definition: MPLibrary.h:258
StatClass * GetStatClass() const noexcept
Definition: MPLibrary.cpp:402
void AddSolver(const std::string &_label, long _seed, const std::string &_baseFileName, bool _vizmoDebug=false)
Definition: MPLibrary.h:374
ValidityCheckerSet * m_validityCheckers
Definition: MPLibrary.h:487
ValidityCheckerPointer GetValidityChecker(const std::string &_l)
Definition: MPLibrary.h:150
void Solve(MPProblem *_problem, MPTask *_task, MPSolution *_solution)
Definition: MPLibrary.cpp:503
void Print(std::ostream &_os) const
Print each method set.
Definition: MPLibrary.cpp:249
PathModifierPointer GetPathModifier(const std::string &_l)
Definition: MPLibrary.h:212
MethodSet< LocalPlannerMethod > LocalPlannerSet
Definition: MPLibrary.h:84
const MPStrategySet *const GetMPStrategies() const
Definition: MPLibrary.h:275
MPProblem * GetMPProblem() const noexcept
Definition: MPLibrary.cpp:269
MethodSet< MPStrategyMethod > MPStrategySet
Definition: MPLibrary.h:92
ExtenderSet::MethodPointer ExtenderPointer
Definition: MPLibrary.h:104
EdgeValidityCheckerSet * m_edgeValidityCheckers
Definition: MPLibrary.h:493
NeighborhoodFinderSet::MethodPointer NeighborhoodFinderPointer
Definition: MPLibrary.h:101
void AddLocalPlanner(LocalPlannerPointer _lp, const std::string &_l)
Definition: MPLibrary.h:193
void AddExtender(ExtenderPointer _mps, const std::string &_l)
Definition: MPLibrary.h:204
MetricPointer GetMetric(const std::string &_l)
Definition: MPLibrary.h:246
MethodSet< DistanceMetricMethod > DistanceMetricSet
Definition: MPLibrary.h:78
DistanceMetricSet * m_distanceMetrics
Definition: MPLibrary.h:486
MethodSet< NeighborhoodFinderMethod > NeighborhoodFinderSet
Definition: MPLibrary.h:82
MethodSet< PathModifierMethod > PathModifierSet
Definition: MPLibrary.h:86
MethodSet< ValidityCheckerMethod > ValidityCheckerSet
Definition: MPLibrary.h:80
void SetBaseFilename(const std::string &_s) noexcept
Definition: MPLibrary.cpp:319
LocalPlannerPointer GetLocalPlanner(const std::string &_l)
Definition: MPLibrary.h:190
void SetTask(MPTask *const _task) noexcept
Definition: MPLibrary.cpp:291
MPTools * GetMPTools()
Definition: MPLibrary.h:287
SamplerSet * m_samplers
Definition: MPLibrary.h:489
void AddMetric(MetricPointer _m, const std::string &_l)
Definition: MPLibrary.h:247
void AddEdgeValidityChecker(EdgeValidityCheckerPointer _ps, const std::string &_l)
Definition: MPLibrary.h:226
MPStrategySet * m_mpStrategies
Definition: MPLibrary.h:497
MapEvaluatorSet * m_mapEvaluators
Definition: MPLibrary.h:496
RoadmapType * GetRoadmap(Robot *const _r=nullptr) const noexcept
Definition: MPLibrary.cpp:341
MPStrategySet::MethodPointer MPStrategyPointer
Definition: MPLibrary.h:111
MPSolution * GetMPSolution() const noexcept
Definition: MPLibrary.cpp:327
NeighborhoodFinderSet * m_neighborhoodFinders
Definition: MPLibrary.h:488
MPStrategyPointer GetMPStrategy(const std::string &_l)
Definition: MPLibrary.h:276
MethodSet< ExtenderMethod > ExtenderSet
Definition: MPLibrary.h:85
void SetMPProblem(MPProblem *const _problem) noexcept
Definition: MPLibrary.cpp:276
ConnectorPointer GetConnector(const std::string &_l)
Definition: MPLibrary.h:235
ConnectorSet * m_connectors
Definition: MPLibrary.h:494
void SetSeed() const noexcept
Set the current seed to match the first solver node.
Definition: MPLibrary.cpp:483
void Halt()
Definition: MPLibrary.cpp:469
virtual ~MPLibrary()
Definition: MPLibrary.cpp:53
LocalPlannerSet::MethodPointer LocalPlannerPointer
Definition: MPLibrary.h:103
void SetMPSolution(MPSolution *_sol) noexcept
Definition: MPLibrary.cpp:334
MPToolsType MPTools
Definition: MPLibrary.h:58
MethodSet< SamplerMethod > SamplerSet
Definition: MPLibrary.h:83
GoalTrackerType GoalTracker
Definition: MPLibrary.h:59
ConnectorSet::MethodPointer ConnectorPointer
Definition: MPLibrary.h:108
LocalPlannerSet * m_localPlanners
Definition: MPLibrary.h:490
ValidityCheckerSet::MethodPointer ValidityCheckerPointer
Definition: MPLibrary.h:98
Definition: MPProblem.h:34
Environment * GetEnvironment()
Get the environment object.
Definition: MPProblem.cpp:198
Definition: MPSolution.h:34
Definition: MethodSet.h:58
MethodPointer GetMethod(const std::string &_label)
Definition: MethodSet.h:224
void AddMethod(XMLNode &_node)
Definition: MethodSet.h:177
Method * MethodPointer
Definition: MethodSet.h:65
A group of one or more robots.
Definition: RobotGroup.h:17
Definition: MetricUtils.h:29
Definition: MPLibrary.h:67
bool vizmoDebug
Save vizmo debug info?
Definition: MPLibrary.h:71
std::string label
The XML label for the strategy to use.
Definition: MPLibrary.h:68
long seed
The seed.
Definition: MPLibrary.h:69
std::string baseFilename
The base name for output files.
Definition: MPLibrary.h:70