MultiQuotient.h
68 MultiQuotient(std::vector<ompl::base::SpaceInformationPtr> &siVec, std::string type = "QuotientPlanner");
128 typedef std::priority_queue<QuotientSpace *, std::vector<QuotientSpace *>, CmpQuotientSpacePtrs>
ompl::base::PlannerStatus solve(const ompl::base::PlannerTerminationCondition &ptc) override
Function that can solve the motion planning problem. This function can be called multiple times on th...
Definition: MultiQuotientImpl.h:156
void setup() override
Perform extra configuration steps, if needed. This call will also issue a call to ompl::base::SpaceIn...
Definition: MultiQuotientImpl.h:113
std::vector< ompl::base::PathPtr > solutions_
Solution paths on each quotient-space.
Definition: MultiQuotient.h:97
A shared pointer wrapper for ompl::base::SpaceInformation.
void clear() override
Clear all internal datastructures. Planner settings are not affected. Subsequent calls to solve() wil...
Definition: MultiQuotientImpl.h:137
std::vector< int > getNodes() const
Number of nodes on each QuotientSpace (for DEBUGGING)
Definition: MultiQuotientImpl.h:72
std::priority_queue< QuotientSpace *, std::vector< QuotientSpace * >, CmpQuotientSpacePtrs > QuotientSpacePriorityQueue
Priority queue of QuotientSpaces which keeps track of how often every tree on each space has been exp...
Definition: MultiQuotient.h:129
virtual void setProblemDefinition(const ompl::base::ProblemDefinitionPtr &pdef) override
Set the problem definition for the planner. The problem needs to be set before calling solve()....
Definition: MultiQuotientImpl.h:226
std::vector< int > getFeasibleNodes() const
Number of feasible nodes on each QuotientSpace (for DEBUGGING)
Definition: MultiQuotientImpl.h:84
unsigned int stopAtLevel_
Sometimes we only want to plan until a certain quotient-space level (for debugging for example)....
Definition: MultiQuotient.h:111
std::vector< QuotientSpace * > quotientSpaces_
Sequence of quotient-spaces.
Definition: MultiQuotient.h:100
Object containing planner generated vertex and edge data. It is assumed that all vertices are unique,...
Definition: PlannerData.h:175
MultiQuotient(std::vector< ompl::base::SpaceInformationPtr > &siVec, std::string type="QuotientPlanner")
Constructor taking a sequence of ompl::base::SpaceInformationPtr and computing the quotient-spaces fo...
Definition: MultiQuotientImpl.h:47
Encapsulate a termination condition for a motion planner. Planners will call operator() to decide whe...
Definition: PlannerTerminationCondition.h:64
unsigned int currentQuotientLevel_
Current level on which we have not yet found a path.
Definition: MultiQuotient.h:106
std::vector< int > getDimensionsPerLevel() const
Get all dimensions of the quotient-spaces in the sequence.
Definition: MultiQuotientImpl.h:96
A class to store the exit status of Planner::solve()
Definition: PlannerStatus.h:49
const ProblemDefinitionPtr & getProblemDefinition() const
Get the problem definition the planner is trying to solve.
Definition: Planner.cpp:71
A shared pointer wrapper for ompl::base::ProblemDefinition.
std::vector< ompl::base::SpaceInformationPtr > siVec_
Each QuotientSpace has a unique ompl::base::SpaceInformationPtr.
Definition: MultiQuotient.h:114
bool foundKLevelSolution_
Indicator if a solution has been found on the current quotient-spaces.
Definition: MultiQuotient.h:103
Compare function for priority queue.
Definition: MultiQuotient.h:118
A sequence of multiple quotient-spaces The class MultiQuotient can be used with any planner which inh...
Definition: MultiQuotient.h:59
void getPlannerData(ompl::base::PlannerData &data) const override
Return annotated vertices (with information about QuotientSpace level)
Definition: MultiQuotientImpl.h:266