KrisLibrary
1.0.0
|
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>
Public Types | |
typedef Real(* | HeuristicFn) (const Config &x) |
Public Types inherited from ESTKinodynamicPlanner | |
typedef KinodynamicTree::Node | Node |
Public Member Functions | |
CostSpaceESTPlanner (const std::shared_ptr< KinodynamicSpace > &baseSpace, const std::shared_ptr< ObjectiveFunctionalBase > &objective, Real costMax=Inf) | |
void | EnableCostSpaceBias (bool enabled) |
void | SetCostMax (Real cmax) |
void | SetDensityEstimatorResolution (Real res) |
void | SetDensityEstimatorResolution (const Vector &res) |
void | SetHeuristic (HeuristicFn f) |
virtual void | Init (const State &xinit, CSet *goalSet) |
virtual bool | Plan (int maxIters) |
virtual bool | GetPath (KinodynamicMilestonePath &path) |
virtual bool | FilterExtension (Node *n, const KinodynamicMilestonePath &path) |
Subclasses can overload this to eliminate certain extensions of the tree. | |
virtual void | OnNewBestPath () |
virtual void | GetStats (PropertyMap &stats) const |
void | PruneTree () |
Real | PathCost () const |
Real | TerminalCost (const State &xc) |
Public Member Functions inherited from ESTKinodynamicPlanner | |
ESTKinodynamicPlanner (KinodynamicSpace *s) | |
void | EnableExtensionCaching (int cacheSize=100) |
void | SetDensityEstimatorResolution (Real res) |
void | SetDensityEstimatorResolution (const Vector &res) |
virtual bool | Done () const |
void | RebuildDensityEstimator () |
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< KinodynamicSpace > | baseSpace |
std::shared_ptr< KinodynamicSpace > | costSpace |
std::shared_ptr< ObjectiveFunctionalBase > | objective |
std::shared_ptr< CSet > | costGoalSet |
HeuristicFn | heuristic |
Real | costSpaceResolution |
KinodynamicMilestonePath | bestPath |
Real | bestPathCost |
int | prunableNodeSampleCount |
int | nodeSampleCount |
int | numGoalsSampled |
int | numPrunedNodes |
Public Attributes inherited from ESTKinodynamicPlanner | |
KinodynamicTree | tree |
std::shared_ptr< DensityEstimatorBase > | densityEstimator |
int | extensionCacheSize |
std::vector< Node * > | extensionCache |
std::vector< double > | extensionWeights |
Node * | goalNode |
int | numIters |
int | numFilteredExtensions |
int | numSuccessfulExtensions |
Real | sampleTime |
Real | simulateTime |
Real | visibleTime |
Real | overheadTime |
Public Attributes inherited from KinodynamicPlannerBase | |
KinodynamicSpace * | space |
CSet * | goalSet |
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.
void CostSpaceESTPlanner::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.