KrisLibrary
1.0.0
|
A base class to be used for tree-based roadmap planners. More...
#include <MotionPlanner.h>
Classes | |
struct | Milestone |
Public Types | |
typedef Graph::TreeNode< Milestone, EdgePlannerPtr > | Node |
Public Member Functions | |
TreeRoadmapPlanner (CSpace *) | |
virtual void | GenerateConfig (Config &x) |
virtual Node * | AddMilestone (const Config &x) |
virtual Node * | TestAndAddMilestone (const Config &x) |
virtual Node * | AddInfeasibleMilestone (const Config &x) |
virtual Node * | Extend () |
virtual void | Cleanup () |
virtual void | ConnectToNeighbors (Node *) |
virtual EdgePlannerPtr | TryConnect (Node *, Node *) |
virtual void | DeleteSubtree (Node *n) |
virtual Node * | ClosestMilestone (const Config &x) |
virtual int | ClosestMilestoneIndex (const Config &x) |
virtual Node * | ClosestMilestoneInComponent (int component, const Config &x) |
virtual Node * | ClosestMilestoneInSubtree (Node *node, const Config &x) |
Node * | Extend (Node *n, const Config &x) |
Node * | TryExtend (Node *n, const Config &x) |
void | AttachChild (Node *p, Node *c, const EdgePlannerPtr &e) |
Node * | SplitEdge (Node *p, Node *n, Real u) |
void | CreatePath (Node *a, Node *b, MilestonePath &path) |
Creates the unique path from a to b. These MUST be in the same connected component. | |
virtual Real | OptimizePath (Node *a, const std::vector< Node * > &goals, ObjectiveFunctionalBase *cost, MilestonePath &path) |
Public Attributes | |
CSpace * | space |
std::vector< Node * > | connectedComponents |
Real | connectionThreshold |
std::vector< Vector > | milestoneConfigs |
std::vector< Node * > | milestones |
std::shared_ptr< PointLocationBase > | pointLocator |
Config | x |
A base class to be used for tree-based roadmap planners.
connectionThreshold is the minimum distance two nodes must be before a connection may be made between them. This is infinity by default. If it is infinity, connections are attempted to the closest node in a different component.
|
virtual |
Creates a minimum-cost path from a to one of the given goal nodes. Returns the best cost, or Inf if no path exists.
Note: not terribly efficient if there are many goals.
References ObjectiveFunctionalBase::IncrementalCost(), Math::Rand(), and ObjectiveFunctionalBase::TerminalCost().
Referenced by PRMStarInterface::GetOptimalPath().