AnytimePathShortening.cpp
45 ompl::geometric::AnytimePathShortening::AnytimePathShortening(const ompl::base::SpaceInformationPtr &si)
57 Planner::declareParam<unsigned int>("max_hybrid_paths", this, &AnytimePathShortening::setMaxHybridizationPath,
59 Planner::declareParam<unsigned int>("num_planners", this, &AnytimePathShortening::setDefaultNumPlanners,
74 OMPL_ERROR("NOT adding planner %s: SpaceInformation instances are different", planner->getName().c_str());
83 OMPL_ERROR("NOT adding planner %s: Planner instances MUST be unique", planner->getName().c_str());
91 void ompl::geometric::AnytimePathShortening::setProblemDefinition(const ompl::base::ProblemDefinitionPtr &pdef)
99 ompl::geometric::AnytimePathShortening::solve(const ompl::base::PlannerTerminationCondition &ptc)
109 OMPL_INFORM("%s: No optimization objective specified. Defaulting to optimizing path length for the allowed "
118 OMPL_WARN("The optimization objective is not set for path length. The specified optimization criteria may "
190 geometric::PathGeometric *sln = static_cast<geometric::PathGeometric *>(pdef_->getSolutionPath().get());
209 void ompl::geometric::AnytimePathShortening::getPlannerData(ompl::base::PlannerData &data) const
218 void ompl::geometric::AnytimePathShortening::getPlannerData(ompl::base::PlannerData &data, unsigned int idx) const
237 OMPL_INFORM("%s: No planners specified; using %u instances of %s", getName().c_str(), planners_.size(),
256 ompl::base::PlannerPtr ompl::geometric::AnytimePathShortening::getPlanner(unsigned int idx) const
bool approximateSolutions
Flag indicating whether the planner is able to compute approximate solutions.
Definition: Planner.h:203
void addPlannerProgressProperty(const std::string &progressPropertyName, const PlannerProgressProperty &prop)
Add a planner progress property called progressPropertyName with a property querying function prop to...
Definition: Planner.h:399
Object containing planner generated vertex and edge data. It is assumed that all vertices are unique...
Definition: PlannerData.h:174
bool isHybridizing() const
Return whether the anytime planner will extract a hybrid path from the set of solution paths...
Definition: AnytimePathShortening.cpp:272
A shared pointer wrapper for ompl::base::ProblemDefinition.
base::PlannerPtr getPlanner(unsigned int idx) const
Retrieve a pointer to the ith planner instance.
Definition: AnytimePathShortening.cpp:256
void setMaxHybridizationPath(unsigned int maxPathCount)
Set the maximum number of paths that will be hybridized.
Definition: AnytimePathShortening.cpp:287
~AnytimePathShortening() override
Destructor.
void clear() override
Clear all internal planning datastructures. Planner settings are not affected. Subsequent calls to so...
Definition: AnytimePathShortening.cpp:202
Encapsulate a termination condition for a motion planner. Planners will call operator() to decide whe...
Definition: PlannerTerminationCondition.h:63
STL namespace.
void getPlannerData(base::PlannerData &data) const override
Get information about the most recent run of the motion planner.
Definition: AnytimePathShortening.cpp:209
AnytimePathShortening(const base::SpaceInformationPtr &si)
Constructor requires the space information to plan in.
Definition: AnytimePathShortening.cpp:45
bool multithreaded
Flag indicating whether multiple threads are used in the computation of the planner.
Definition: Planner.h:200
unsigned int getDefaultNumPlanners() const
Get default number of planners used if none are specified.
Definition: AnytimePathShortening.cpp:297
void setHybridize(bool hybridize)
Enable/disable path hybridization on the set of solution paths.
Definition: AnytimePathShortening.cpp:277
void setDefaultNumPlanners(unsigned int numPlanners)
Set default number of planners to use if none are specified.
Definition: AnytimePathShortening.cpp:292
std::string getBestCost() const
Return best cost found so far by algorithm.
Definition: AnytimePathShortening.cpp:302
A shared pointer wrapper for ompl::base::Planner.
void checkValidity() override
Check to see if the planners are in a working state (setup has been called, a goal was set...
Definition: AnytimePathShortening.cpp:245
LogLevel getLogLevel()
Retrieve the current level of logging data. Messages with lower logging levels will not be recorded...
Definition: Console.cpp:142
The planner found an exact solution.
Definition: PlannerStatus.h:66
void setLogLevel(LogLevel level)
Set the minimum level of logging data to output. Messages with lower logging levels will not be recor...
Definition: Console.cpp:136
virtual void threadSolve(base::Planner *planner, const base::PlannerTerminationCondition &ptc)
The function that the planning threads execute when solving a motion planning problem.
Definition: AnytimePathShortening.cpp:181
void setShortcut(bool shortcut)
Enable/disable shortcutting on paths.
Definition: AnytimePathShortening.cpp:267
A class to store the exit status of Planner::solve()
Definition: PlannerStatus.h:48
This class contains routines that attempt to simplify geometric paths.
Definition: PathSimplifier.h:65
A shared pointer wrapper for ompl::base::SpaceInformation.
virtual void setProblemDefinition(const ProblemDefinitionPtr &pdef)
Set the problem definition for the planner. The problem needs to be set before calling solve()...
Definition: Planner.cpp:76
void setup() override
Perform any necessary configuration steps. This method also invokes ompl::base::SpaceInformation::set...
Definition: AnytimePathShortening.cpp:225
bool isShortcutting() const
Return whether the anytime planner will perform shortcutting on paths.
Definition: AnytimePathShortening.cpp:262
base::PlannerStatus solve(const base::PlannerTerminationCondition &ptc) override
Method that solves the motion planning problem. This method terminates under just two conditions...
Definition: AnytimePathShortening.cpp:99
virtual bool isSatisfied(const State *st) const =0
Return true if the state satisfies the goal constraints.
static base::PlannerPtr getDefaultPlanner(const base::GoalPtr &goal)
Given a goal specification, decide on a planner for that goal.
Definition: SelfConfig.cpp:243
virtual PlannerStatus solve(const PlannerTerminationCondition &ptc)=0
Function that can solve the motion planning problem. This function can be called multiple times on th...
The planner found an approximate solution.
Definition: PlannerStatus.h:64
A shared pointer wrapper for ompl::base::OptimizationObjective.
void addPlanner(base::PlannerPtr &planner)
Adds the given planner to the set of planners used to compute candidate paths.
Definition: AnytimePathShortening.cpp:70
bool optimizingPaths
Flag indicating whether the planner attempts to optimize the path and reduce its length until the max...
Definition: Planner.h:207
unsigned int getNumPlanners() const
Retrieve the number of planners added.
Definition: AnytimePathShortening.cpp:251
void setProblemDefinition(const base::ProblemDefinitionPtr &pdef) override
Set the problem definition for the planners. The problem needs to be set before calling solve()...
Definition: AnytimePathShortening.cpp:91
Given multiple geometric paths, attempt to combine them in order to obtain a shorter solution...
Definition: PathHybridization.h:69
Definition of a cost value. Can represent the cost of a motion or the cost of a state.
Definition: Cost.h:47
A shared pointer wrapper for ompl::base::Path.
unsigned int maxHybridizationPaths() const
Return the maximum number of paths that will be hybridized.
Definition: AnytimePathShortening.cpp:282