KrisLibrary  1.0.0
Public Member Functions | Public Attributes | List of all members
RestartMotionPlanner Class Reference

A multiple-restart motion planner that turns a feasible motion planner into an anytime optimal motion planner by keeping the best path found so far. More...

Inheritance diagram for RestartMotionPlanner:
PiggybackMotionPlanner MotionPlannerInterface RestartShortcutMotionPlanner

Public Member Functions

 RestartMotionPlanner (const MotionPlannerFactory &factory, const MotionPlanningProblem &problem, const HaltingCondition &iterTermCond)
 
virtual bool IsOptimizing () const
 Returns true if this planner can optimize the path after the first solution.
 
virtual std::string Plan (MilestonePath &path, const HaltingCondition &cond)
 
virtual int PlanMore ()
 Performs a planning unit and returns the added milestone.
 
virtual int AddMilestone (const Config &q)
 Adds a milestone, if possible. Returns an id of the milestone.
 
virtual bool CanUseObjective () const
 
virtual void SetObjective (shared_ptr< ObjectiveFunctionalBase > obj)
 
virtual bool IsConnected (int ma, int mb) const
 Returns true if the two milestones are connected with a feasible path.
 
virtual void GetPath (int ma, int mb, MilestonePath &path)
 
virtual bool IsSolved ()
 For single-query planners, returns true if the start and goal are connected.
 
virtual void GetSolution (MilestonePath &path)
 
virtual int NumIterations () const
 Returns the number of elaped planning units.
 
virtual void GetStats (PropertyMap &stats) const
 Returns some named statistics about the planner, implementation-dependent.
 
- Public Member Functions inherited from PiggybackMotionPlanner
 PiggybackMotionPlanner (const shared_ptr< MotionPlannerInterface > &mp)
 
virtual void PlanMore (int numIters)
 Performs numIters planning units.
 
virtual int NumMilestones () const
 Returns the number of milestones stored by the planner.
 
virtual int NumComponents () const
 Returns the number of connected components stored by the planner.
 
virtual bool CanAddMilestone () const
 Returns true if a milestone can currently be added.
 
virtual void GetMilestone (int i, Config &q)
 For the id of a milestone previously added, returns its configuration.
 
virtual void ConnectHint (int m)
 Manual indication that the milestone is a good candidate for connecting.
 
virtual bool ConnectHint (int ma, int mb)
 Manual indication that the milestones are good candidates for connecting.
 
virtual bool IsPointToPoint () const
 
virtual bool IsLazy () const
 Returns true if this planner has lazy semantics.
 
virtual bool IsLazyConnected (int ma, int mb) const
 
virtual bool CheckPath (int ma, int mb)
 
virtual int GetClosestMilestone (const Config &q)
 Retrieve the index of a close milestone.
 
virtual Real GetOptimalPath (int ma, const std::vector< int > &mb, MilestonePath &path)
 
virtual void GetRoadmap (Roadmap &roadmap) const
 Returns a full-blown roadmap representation of the roadmap.
 
- Public Member Functions inherited from MotionPlannerInterface
virtual void SetObjective (std::shared_ptr< ObjectiveFunctionalBase > obj)
 Must be implemented if CanUseObjective() = true.
 

Public Attributes

MotionPlannerFactory factory
 
MotionPlanningProblem problem
 
HaltingCondition iterTermCond
 
shared_ptr< ObjectiveFunctionalBaseobjective
 
MilestonePath bestPath
 
Real bestPathLength
 
int numRestarts
 
int numIters
 
double elapsedTime
 
- Public Attributes inherited from PiggybackMotionPlanner
shared_ptr< MotionPlannerInterfacemp
 

Additional Inherited Members

- Public Types inherited from MotionPlannerInterface
typedef Graph::UndirectedGraph< Config, std::shared_ptr< EdgePlanner > > Roadmap
 

Detailed Description

A multiple-restart motion planner that turns a feasible motion planner into an anytime optimal motion planner by keeping the best path found so far.

Member Function Documentation

virtual bool RestartMotionPlanner::CanUseObjective ( ) const
inlinevirtual

Returns true if this planner can handle an objective function (in SetObjective and GetOptimalPath)

Reimplemented from PiggybackMotionPlanner.

References PiggybackMotionPlanner::GetPath(), and PiggybackMotionPlanner::IsConnected().

void RestartMotionPlanner::GetPath ( int  ma,
int  mb,
MilestonePath path 
)
virtual

Returns a feasible path between two connected milestones. If IsConnected(ma,mb)=false, this will abort.

Must be implemented if IsLazy()=true

Reimplemented from PiggybackMotionPlanner.

virtual void RestartMotionPlanner::GetSolution ( MilestonePath path)
inlinevirtual

For single-query planners (IsPointToPoint()=true), returns the solution path.

For multi-query planners, returns the optimal solution path.

Reimplemented from PiggybackMotionPlanner.

std::string RestartMotionPlanner::Plan ( MilestonePath path,
const HaltingCondition cond 
)
virtual

Plans until a given termination condition holds true, returns the reason for termination. The return string will be the attribute of HaltingCondition that caused termination.

Reimplemented from MotionPlannerInterface.

Reimplemented in RestartShortcutMotionPlanner.

References HaltingCondition::costImprovementPeriod, HaltingCondition::costThreshold, HaltingCondition::foundSolution, HaltingCondition::maxIters, and HaltingCondition::timeLimit.


The documentation for this class was generated from the following file: