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 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::Node * | ExtendToward (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 Node * | Extend () |
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< KinodynamicSpace > | baseSpace |
std::shared_ptr< KinodynamicSpace > | costSpace |
std::shared_ptr< ObjectiveFunctionalBase > | objective |
std::shared_ptr< CSet > | costGoalSet |
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 |
Node * | goalNode |
int | numIters |
int | numInfeasibleControls |
int | numInfeasibleEndpoints |
int | numFilteredExtensions |
int | numSuccessfulExtensions |
Real | nnTime |
Real | pickControlTime |
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 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().