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

An optimizing planner that progressively produces better paths using state-cost space. Plan() returns true only if a better path was found in the last maxIters iterations. Done() and GetPath() return true if there ANY solution has been found. More...

#include <AOMetaPlanner.h>

Inheritance diagram for CostSpaceRRTPlanner:
LazyRRTKinodynamicPlanner RRTKinodynamicPlanner KinodynamicPlannerBase

Public Types

typedef Real(* HeuristicFn) (const Config &x)
 
- Public Types inherited from RRTKinodynamicPlanner
typedef KinodynamicTree::Node Node
 

Public Member Functions

 CostSpaceRRTPlanner (const std::shared_ptr< KinodynamicSpace > &baseSpace, const std::shared_ptr< ObjectiveFunctionalBase > &objective, Real costMax=Inf)
 
void EnableCostSpaceBias (bool enabled)
 
void SetCostMax (Real cmax)
 
void SetCostDistanceWeight (Real weight)
 
void SetHeuristic (HeuristicFn f)
 
virtual void Init (const State &xinit, CSet *goalSet)
 
virtual bool Plan (int maxIters)
 
virtual bool Done () const
 
virtual bool GetPath (KinodynamicMilestonePath &path)
 
virtual void PickDestination (State &xdest)
 
virtual bool FilterExtension (Node *n, const KinodynamicMilestonePath &path)
 Subclasses can overload this to eliminate certain extensions of the tree.
 
virtual RRTKinodynamicPlanner::NodeExtendToward (const State &xdest)
 
virtual void OnNewBestPath ()
 
virtual void GetStats (PropertyMap &stats) const
 
void PruneTree ()
 
Real PathCost () const
 
Real TerminalCost (const State &xc)
 
- Public Member Functions inherited from LazyRRTKinodynamicPlanner
 LazyRRTKinodynamicPlanner (KinodynamicSpace *s)
 
bool CheckPath (Node *n)
 
- Public Member Functions inherited from RRTKinodynamicPlanner
 RRTKinodynamicPlanner (KinodynamicSpace *s)
 
virtual NodeExtend ()
 
virtual bool PickControl (const State &x0, const State &xDest, KinodynamicMilestonePath &e)
 
- Public Member Functions inherited from KinodynamicPlannerBase
 KinodynamicPlannerBase (KinodynamicSpace *s)
 
virtual void Init (const State &xinit, const State &xgoal, Real goalRadius)
 

Public Attributes

std::shared_ptr< KinodynamicSpacebaseSpace
 
std::shared_ptr< KinodynamicSpacecostSpace
 
std::shared_ptr< ObjectiveFunctionalBaseobjective
 
std::shared_ptr< CSetcostGoalSet
 
HeuristicFn heuristic
 
Real costSpaceDistanceWeight
 
bool lazy
 
KinodynamicMilestonePath bestPath
 
Real bestPathCost
 
int prunableNodeSampleCount
 
int nodeSampleCount
 
int numGoalsSampled
 
int numPrunedNodes
 
- Public Attributes inherited from RRTKinodynamicPlanner
Real goalSeekProbability
 
KinodynamicTree tree
 
Real delta
 
NodegoalNode
 
int numIters
 
int numInfeasibleControls
 
int numInfeasibleEndpoints
 
int numFilteredExtensions
 
int numSuccessfulExtensions
 
Real nnTime
 
Real pickControlTime
 
Real visibleTime
 
Real overheadTime
 
- Public Attributes inherited from KinodynamicPlannerBase
KinodynamicSpacespace
 
CSetgoalSet
 

Detailed Description

An optimizing planner that progressively produces better paths using state-cost space. Plan() returns true only if a better path was found in the last maxIters iterations. Done() and GetPath() return true if there ANY solution has been found.

The method is asymptotically optimal under very general assumptions about the space and objective function.

See K. Hauser and Y. Zhou, "Asymptotically-Optimal Kinodynamic Motion Planning in State-Cost Space" IEEE Transactions on Robotics, 2016.

Member Function Documentation

void CostSpaceRRTPlanner::SetHeuristic ( HeuristicFn  f)

A heuristic function is a lower bound on the cost-to-go of a state, given the current objective function. This function tells the planner to use this heuristic when sampling / pruning.

References CSet::Contains(), Math::IsInf(), and Math::Rand().


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