KrisLibrary
1.0.0
|
The EST planner for kinodynamic systems. More...
#include <KinodynamicMotionPlanner.h>
Public Types | |
typedef KinodynamicTree::Node | Node |
Public Member Functions | |
ESTKinodynamicPlanner (KinodynamicSpace *s) | |
void | EnableExtensionCaching (int cacheSize=100) |
void | SetDensityEstimatorResolution (Real res) |
void | SetDensityEstimatorResolution (const Vector &res) |
virtual void | Init (const State &xinit, CSet *goalSet) |
virtual bool | Plan (int maxIters) |
virtual bool | Done () const |
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 | GetStats (PropertyMap &stats) 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 | |
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 |
The EST planner for kinodynamic systems.
Node selection is performed by a density-weighted sampling from a grid-based density estimator. (MultiGridDensityEstimator)
This has an implementation of a semi-lazy method in that it maintains a difference between "official" and "unofficial" contributions to the tree. If extensionCacheSize > 0 (0 by default), then the extension cache contains several candidate extensions, and at each iteration tries making one official by sampling one candidate inversely proportional to their density, and then checking collisions.
std::vector<Node*> ESTKinodynamicPlanner::extensionCache |
These are a list of nodes that have been added to the tree but not checked for collision nor added to the density estimator.