|
|
| AdaptiveRRT (double _wallPenalty=0.5, double _gamma=0.5, const GrowthSets &_growthSets=GrowthSets(), CostMethod _c=FIXED) |
|
| AdaptiveRRT (XMLNode &_node) |
|
|
virtual void | Print (std::ostream &_os) const |
|
|
void | operator() () |
| Execute the strategy by calling Initialize, Run, and Finalize.
|
|
void | EnableOutputFiles (const bool _enable=true) |
|
|
const std::string & | GetName () const |
| Get the class name for this object.
|
|
const std::string & | GetLabel () const |
| Get the unique label for this object.
|
|
std::string | GetNameAndLabel () const |
| Get the unique string identifier for this object "m_name::m_label".
|
|
void | SetLabel (const std::string &) |
| Set the unique label for this object.
|
|
|
void | SetMPLibrary (MPLibrary *) noexcept |
| Set the owning MPLibrary.
|
|
MPLibrary * | GetMPLibrary () const noexcept |
| Get the owning MPLibrary.
|
|
bool | IsRunning () const noexcept |
| Check the library's running flag.
|
|
DistanceMetricPointer | GetDistanceMetric (const std::string &) const noexcept |
| Get a distance metric by label from the owning MPLibrary.
|
|
ValidityCheckerPointer | GetValidityChecker (const std::string &) const noexcept |
| Get a validity checker by label from the owning MPLibrary.
|
|
NeighborhoodFinderPointer | GetNeighborhoodFinder (const std::string &) const noexcept |
| Get a neighborhood finder by label from the owning MPLibrary.
|
|
SamplerPointer | GetSampler (const std::string &) const noexcept |
| Get a sampler by label from the owning MPLibrary.
|
|
LocalPlannerPointer | GetLocalPlanner (const std::string &) const noexcept |
| Get a local planner by label from the owning MPLibrary.
|
|
ExtenderPointer | GetExtender (const std::string &) const noexcept |
| Get an extender by label from the owning MPLibrary.
|
|
PathModifierPointer | GetPathModifier (const std::string &) const noexcept |
| Get a path modifier by label from the owning MPLibrary.
|
|
ConnectorPointer | GetConnector (const std::string &) const noexcept |
| Get a connector by label from the owning MPLibrary.
|
|
MetricPointer | GetMetric (const std::string &) const noexcept |
| Get a metric by label from the owning MPLibrary.
|
|
MapEvaluatorPointer | GetMapEvaluator (const std::string &) const noexcept |
| Get a map evaluator by label from the owning MPLibrary.
|
|
MPStrategyPointer | GetMPStrategy (const std::string &) const noexcept |
| Get a strategy by label from the owning MPLibrary.
|
|
MPTraits::MPTools * | GetMPTools () const noexcept |
| Get the MPTools container from the owning MPLibrary.
|
|
|
MPProblem * | GetMPProblem () const noexcept |
| Get the library's current MPProblem.
|
|
Environment * | GetEnvironment () const noexcept |
| Get the current environment.
|
|
MPTask * | GetTask () const noexcept |
| Get the current task.
|
|
GroupTask * | GetGroupTask () const noexcept |
| Get the current group task.
|
|
|
MPSolution * | GetMPSolution () const noexcept |
|
RoadmapType * | GetRoadmap (Robot *const _r=nullptr) const noexcept |
| Get the current free-space roadmap.
|
|
GroupRoadmapType * | GetGroupRoadmap (RobotGroup *const _g=nullptr) const noexcept |
| Get the current free-space group roadmap.
|
|
RoadmapType * | GetBlockRoadmap (Robot *const _r=nullptr) const noexcept |
| Get the current obstacle-space roadmap.
|
|
Path * | GetPath (Robot *const _r=nullptr) const noexcept |
| Get the current best path.
|
|
GroupPath * | GetGroupPath (RobotGroup *const _g=nullptr) const noexcept |
| Get the current best group path.
|
|
StatClass * | GetStatClass () const noexcept |
| Get the current StatClass.
|
|
LocalObstacleMap * | GetLocalObstacleMap () const noexcept |
| Get the local obstacle map.
|
|
GoalTracker * | GetGoalTracker () const noexcept |
| Get the goal tracker.
|
|
|
|
enum | CostMethod { FIXED
, REWARD
, CYCLES
} |
|
|
typedef std::map< std::string, std::pair< std::pair< double, long >, double > > | GrowthSet |
|
typedef std::map< double, GrowthSet > | GrowthSets |
|
typedef MPTraits::CfgType | CfgType |
|
typedef MPTraits::WeightType | WeightType |
|
typedef MPTraits::RoadmapType | RoadmapType |
|
typedef RoadmapType::VID | VID |
|
|
typedef RoadmapType::VertexSet | VertexSet |
|
|
typedef MPTraits::GroupRoadmapType | GroupRoadmapType |
|
typedef MPTraits::LocalObstacleMap | LocalObstacleMap |
|
typedef MPTraits::Path | Path |
|
typedef MPTraits::GroupPathType | GroupPath |
|
typedef MPTraits::MPLibrary | MPLibrary |
|
typedef MPTraits::MPSolution | MPSolution |
|
typedef MPTraits::GoalTracker | GoalTracker |
|
typedef MPLibrary::SamplerPointer | SamplerPointer |
|
typedef MPLibrary::LocalPlannerPointer | LocalPlannerPointer |
|
typedef MPLibrary::ExtenderPointer | ExtenderPointer |
|
typedef MPLibrary::PathModifierPointer | PathModifierPointer |
|
typedef MPLibrary::ConnectorPointer | ConnectorPointer |
|
typedef MPLibrary::MetricPointer | MetricPointer |
|
typedef MPLibrary::MapEvaluatorPointer | MapEvaluatorPointer |
|
typedef MPLibrary::MPStrategyPointer | MPStrategyPointer |
|
typedef MPLibrary::DistanceMetricPointer | DistanceMetricPointer |
|
typedef MPLibrary::ValidityCheckerPointer | ValidityCheckerPointer |
|
typedef MPLibrary::NeighborhoodFinderPointer | NeighborhoodFinderPointer |
|
|
void | SetName (const std::string &_s) |
|
const std::string & | GetBaseFilename () const |
|
|
virtual void | Initialize () override |
|
|
virtual VID | ExpandTree (CfgType &_dir) |
|
std::string | SelectGrowthMethod (GrowthSet &_gs) |
|
void | UpdateCost (double _cost, std::string _s, GrowthSet &_gs) |
|
void | RewardGrowthMethod (double _r, std::string _s, GrowthSet &_gs) |
|
VID | UpdateTree (VID _nearest, CfgType &_new, CfgType &_dir, double _delta) |
|
VID | AddNode (CfgType &_newCfg, VID _nearVID, bool _againstWall, double _ratio) |
|
|
virtual void | Iterate () override |
| Execute one iteration of the strategy. More...
|
|
|
virtual CfgType | SelectTarget () |
| Get a random configuration to grow towards.
|
|
CfgType | SelectDispersedTarget (const VID _v) |
|
|
virtual VID | FindNearestNeighbor (const CfgType &_cfg, const VertexSet *const _candidates=nullptr) |
|
virtual Neighbor | SelectNeighbor (const CfgType &_cfg, const std::vector< Neighbor > &_neighbors) |
|
|
virtual VID | Extend (const VID _nearVID, const CfgType &_target, LPOutput< MPTraits > &_lp, const bool _requireNew=true) |
|
VID | Extend (const VID _nearVID, const CfgType &_target, const bool _requireNew=true) |
|
virtual std::pair< VID, bool > | AddNode (const CfgType &_newCfg) |
|
virtual void | AddEdge (const VID _source, const VID _target, const LPOutput< MPTraits > &_lpOutput) |
|
void | ConnectNeighbors (const VID _newVID) |
|
void | TryGoalExtension (const VID _newVID) |
|
void | TryGoalExtension (const VID _newVID, const Boundary *const _boundary) |
|
|
VID | ExpandTree (const CfgType &_target) |
|
virtual VID | ExpandTree (const VID _nearestVID, const CfgType &_target) |
|
void | ConnectTrees (const VID _recentlyGrown) |
|
|
virtual void | Run () |
| Call Iterate until EvaluateMap is true. More...
|
|
virtual bool | EvaluateMap () |
| Check if we satisfied all map evaluators.
|
|
virtual void | Finalize () |
| Clean-up and output results. More...
|
|
virtual void | ClearRoadmap () |
| Pre-clear the roadmap(s) if requested.
|
|
|
virtual size_t | GenerateStart (const std::string &_samplerLabel="") |
|
virtual std::vector< size_t > | GenerateGoals (const std::string &_samplerLabel="") |
|
|
bool | m_debug |
| Print debug info?
|
|
|
std::string | m_samplerLabel |
| The sampler label.
|
|
std::string | m_nfLabel |
| The neighborhood finder label.
|
|
std::string | m_ncLabel |
| The connector label (for RRG).
|
|
std::string | m_exLabel |
| The extender label.
|
|
std::string | m_goalDmLabel |
| Dm for checking goal extensions.
|
|
std::string | m_fallbackNfLabel |
| NF for searching the active set, used if the main one fails.
|
|
|
bool | m_growGoals {false} |
| Grow trees from goals.
|
|
double | m_growthFocus {0} |
| The fraction of goal-biased expansions.
|
|
double | m_goalThreshold {0} |
| Distance threshold for goal extension.
|
|
size_t | m_numDirections {1} |
| Expansion directions per iteration.
|
|
size_t | m_disperseTrials {3} |
| Sample attempts for disperse search.
|
|
|
std::vector< VertexSet > | m_trees |
| The current tree set.
|
|
|
std::string | m_querySampler |
| Sampler for generating start/goal.
|
|
std::vector< std::string > | m_meLabels |
| The list of map evaluators to use.
|
|
size_t | m_iterations {0} |
| The number of executed iterations.
|
|
bool | m_writeOutput {true} |
| Write output at the end?
|
|
bool | m_clearMap {false} |
| Clear the roadmap(s) before run?
|
|
template<typename
MPTraits>
class AdaptiveRRT< MPTraits >
Adaptively selects growth methods in RRT.
References: Denny, Jory, et al. "Adapting RRT growth for heterogeneous environments." 2013 IEEE/RSJ International Conference on Intelligent Robots and Systems. IEEE, 2013.
AdaptiveRRT employs structural filtering to the RRT paradigm by providing a two-level cost-adaptive strategy to select the RRT growth method. First, it uses the "visibility" of a node the method selects a set of RRT methods to choose from based on some probability distribution. This probability distribution is updated based upon the success/fail of the growth and its cost.