Parasol Planning Library (PPL)
|
#include <Syclop.h>
Data Structures | |
struct | DFSVisitor |
A visitor to track the parent-child relationships discovered during DFS. More... | |
struct | RegionData |
Holds all external data related to a specific workspace region. More... | |
struct | RegionPairData |
Tracks data related to edges between regions in the decomposition graph. More... | |
struct | WeightFunctor |
Public Types | |
Motion Planning Types | |
typedef MPBaseObject::WeightType | WeightType |
typedef MPBaseObject::RoadmapType | RoadmapType |
typedef RoadmapType::VID | VID |
Local Types | |
typedef std::unordered_set< VID > | VertexSet |
Public Types inherited from BasicRRTStrategy | |
typedef size_t | VID |
typedef std::unordered_set< VID > | VertexSet |
Public Types inherited from MPStrategyMethod | |
typedef size_t | VID |
Public Types inherited from MPBaseObject | |
typedef DefaultWeight< Cfg > | WeightType |
typedef GenericStateGraph< Cfg, WeightType > | RoadmapType |
typedef GroupCfg< RoadmapType > | GroupCfgType |
typedef GroupLocalPlan< RoadmapType > | GroupWeightType |
typedef GroupRoadmap< GroupCfgType, GroupWeightType > | GroupRoadmapType |
Public Member Functions | |
Construction | |
Syclop () | |
Syclop (XMLNode &_node) | |
virtual | ~Syclop ()=default |
Public Member Functions inherited from BasicRRTStrategy | |
BasicRRTStrategy () | |
BasicRRTStrategy (XMLNode &_node) | |
virtual | ~BasicRRTStrategy () |
virtual void | Print (std::ostream &_os) const |
Public Member Functions inherited from MPStrategyMethod | |
MPStrategyMethod ()=default | |
MPStrategyMethod (XMLNode &_node) | |
virtual | ~MPStrategyMethod () |
void | operator() () |
Execute the strategy by calling Initialize, Run, and Finalize. More... | |
void | EnableOutputFiles (const bool _enable=true) |
virtual void | Initialize () |
Public Member Functions inherited from MPBaseObject | |
MPBaseObject (const std::string &_label="", const std::string &_name="", bool _debug=false) | |
MPBaseObject (XMLNode &_node) | |
virtual | ~MPBaseObject () |
const std::string & | GetName () const |
Get the class name for this object. More... | |
const std::string & | GetLabel () const |
Get the unique label for this object. More... | |
std::string | GetNameAndLabel () const |
Get the unique string identifier for this object "m_name::m_label". More... | |
void | SetLabel (const std::string &) |
Set the unique label for this object. More... | |
void | SetMPLibrary (MPLibrary *) noexcept |
Set the owning MPLibrary. More... | |
MPLibrary * | GetMPLibrary () const noexcept |
Get the owning MPLibrary. More... | |
bool | IsRunning () const noexcept |
Check the library's running flag. More... | |
MPProblem * | GetMPProblem () const noexcept |
Get the library's current MPProblem. More... | |
Environment * | GetEnvironment () const noexcept |
Get the current environment. More... | |
MPTask * | GetTask () const noexcept |
Get the current task. More... | |
GroupTask * | GetGroupTask () const noexcept |
Get the current group task. More... | |
MPSolutionType * | GetMPSolution () const noexcept |
RoadmapType * | GetRoadmap (Robot *const _r=nullptr) const noexcept |
Get the current free-space roadmap. More... | |
GroupRoadmapType * | GetGroupRoadmap (RobotGroup *const _g=nullptr) const noexcept |
Get the current free-space group roadmap. More... | |
RoadmapType * | GetBlockRoadmap (Robot *const _r=nullptr) const noexcept |
Get the current obstacle-space roadmap. More... | |
Path * | GetPath (Robot *const _r=nullptr) const noexcept |
GroupPath * | GetGroupPath (RobotGroup *const _g=nullptr) const noexcept |
Get the current best group path. More... | |
StatClass * | GetStatClass () const noexcept |
Get the current StatClass. More... | |
LocalObstacleMap * | GetLocalObstacleMap () const noexcept |
Get the local obstacle map. More... | |
Protected Member Functions | |
size_t | Sel (const WorkspaceRegion *const _r1, const WorkspaceRegion *const _r2) |
size_t | Conn (const WorkspaceRegion *const _r1, const WorkspaceRegion *const _r2) |
Estimate the progress made in connecting _r1 to _r2. More... | |
double | Cost (const WorkspaceRegion *const _r1, const WorkspaceRegion *const _r2) |
Compute the edge weight in the region graph from _r1 to _r2. More... | |
double | Cost (const WorkspacePortal &_p) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
MPStrategy Overrides | |
virtual void | Initialize () override |
BasicRRTStrategy Overrides | |
virtual VID | FindNearestNeighbor (const Cfg &_cfg, const VertexSet *const _candidates=nullptr) override |
virtual VID | Extend (const VID _nearVID, const Cfg &_qRand, LPOutput &_lp, const bool _requireNew=true) override |
As basic RRT, but also logs extension attempts. More... | |
virtual std::pair< VID, bool > | AddNode (const Cfg &_newCfg) override |
As basic RRT, but also updates coverage information. More... | |
virtual void | AddEdge (const VID _source, const VID _target, const LPOutput &_lpOutput) override |
As basic RRT, but also updates region edge connectivity information. More... | |
Syclop Functions | |
std::vector< VID > | DiscreteLead () |
Compute a high-level plan (a sequence of regions). More... | |
void | FindAvailableRegions (std::vector< VID > _lead) |
Compute a set of potential regions from the discrete lead. More... | |
const WorkspaceRegion * | SelectRegion () |
Select a region from a set of available regions. More... | |
Pre-processing Stuff | |
void | ComputeFreeVolumes () |
Estimate the free volume of each region. More... | |
Protected Member Functions inherited from BasicRRTStrategy | |
virtual void | Iterate () override |
Execute one iteration of the strategy. More... | |
virtual Cfg | SelectTarget () |
Get a random configuration to grow towards. More... | |
Cfg | SelectDispersedTarget (const VID _v) |
virtual Neighbor | SelectNeighbor (const Cfg &_cfg, const std::vector< Neighbor > &_neighbors) |
VID | Extend (const VID _nearVID, const Cfg &_target, const bool _requireNew=true) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
void | ConnectNeighbors (const VID _newVID) |
void | TryGoalExtension (const VID _newVID) |
void | TryGoalExtension (const VID _newVID, const Boundary *const _boundary) |
VID | ExpandTree (const Cfg &_target) |
virtual VID | ExpandTree (const VID _nearestVID, const Cfg &_target) |
void | ConnectTrees (const VID _recentlyGrown) |
Protected Member Functions inherited from MPStrategyMethod | |
virtual void | Run () |
Call Iterate until EvaluateMap is true. More... | |
virtual bool | EvaluateMap () |
Check if we satisfied all map evaluators. More... | |
virtual void | Finalize () |
Clean-up and output results. More... | |
virtual void | ClearRoadmap () |
Pre-clear the roadmap(s) if requested. More... | |
virtual size_t | GenerateStart (const std::string &_samplerLabel="") |
virtual std::vector< size_t > | GenerateGoals (const std::string &_samplerLabel="") |
Protected Member Functions inherited from MPBaseObject | |
void | SetName (const std::string &_s) |
const std::string & | GetBaseFilename () const |
Protected Attributes | |
Syclop State | |
std::map< const WorkspaceRegion *, RegionData > | m_regionData |
Holds extra data associated with the regions. More... | |
std::map< std::pair< const WorkspaceRegion *, const WorkspaceRegion * >, RegionPairData > | m_regionPairData |
Holds extra data associated with region pairs. More... | |
std::string | m_tmLabel |
The topological map label. More... | |
std::set< const WorkspaceRegion * > | m_availableRegions |
The currently available regions. More... | |
Switch Tracking | |
Data for knowing when to change regions/leads. | |
size_t | m_currentLeadUses {0} |
size_t | m_maxLeadUses {6} |
size_t | m_currentRegionUses {0} |
size_t | m_maxRegionUses {6} |
std::string | m_freeVolumeSampler {"UniformRandom"} |
std::string | m_freeVolumeVcLabel {"pqp_solid"} |
const WorkspaceRegion * | m_currentRegion {nullptr} |
bool | m_improvement {false} |
Have we improved the map w/ current region? More... | |
Protected Attributes inherited from BasicRRTStrategy | |
std::string | m_samplerLabel |
The sampler label. More... | |
std::string | m_nfLabel |
The neighborhood finder label. More... | |
std::string | m_ncLabel |
The connector label (for RRG). More... | |
std::string | m_exLabel |
The extender label. More... | |
std::string | m_goalDmLabel |
Dm for checking goal extensions. More... | |
std::string | m_fallbackNfLabel |
NF for searching the active set, used if the main one fails. More... | |
bool | m_growGoals {false} |
Grow trees from goals. More... | |
double | m_growthFocus {0} |
The fraction of goal-biased expansions. More... | |
double | m_goalThreshold {0} |
Distance threshold for goal extension. More... | |
size_t | m_numDirections {1} |
Expansion directions per iteration. More... | |
size_t | m_disperseTrials {3} |
Sample attempts for disperse search. More... | |
std::vector< VertexSet > | m_trees |
The current tree set. More... | |
Protected Attributes inherited from MPStrategyMethod | |
std::string | m_querySampler |
Sampler for generating start/goal. More... | |
std::vector< std::string > | m_meLabels |
The list of map evaluators to use. More... | |
size_t | m_iterations {0} |
The number of executed iterations. More... | |
bool | m_writeOutput {true} |
Write output at the end? More... | |
bool | m_clearMap {false} |
Clear the roadmap(s) before run? More... | |
Protected Attributes inherited from MPBaseObject | |
bool | m_debug |
Print debug info? More... | |
This method is the 'Synergistic Combination of Layers of Planning' technique that adds workspace guidance to RRT methods.
Reference: Erion Plaku, Lydia E. Kavraki, Moshe Y. Vardi. "Synergistic Combination of Layers of Planning". IEEE Transactions on Robotics. 2010.
typedef std::unordered_set<VID> BasicRRTStrategy::VertexSet |
typedef RoadmapType::VID Syclop::VID |
Syclop::Syclop | ( | ) |
Syclop::Syclop | ( | XMLNode & | _node | ) |
|
virtualdefault |
|
overrideprotectedvirtual |
As basic RRT, but also updates region edge connectivity information.
Reimplemented from BasicRRTStrategy.
|
overrideprotectedvirtual |
As basic RRT, but also updates coverage information.
Reimplemented from BasicRRTStrategy.
|
protected |
Estimate the free volume of each region.
|
protected |
Estimate the progress made in connecting _r1 to _r2.
|
protected |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
protected |
Compute the edge weight in the region graph from _r1 to _r2.
|
protected |
Compute a high-level plan (a sequence of regions).
|
overrideprotectedvirtual |
As basic RRT, but also logs extension attempts.
Reimplemented from BasicRRTStrategy.
|
protected |
Compute a set of potential regions from the discrete lead.
|
overrideprotectedvirtual |
As basic RRT, but picks nearest neighbor from only the available regions.
Reimplemented from BasicRRTStrategy.
|
overrideprotectedvirtual |
Initialize this object for the current MPProblem. This should reset any internal state of the algorithms so that they are ready for execution. It is also the place to initialize any state that depends on the current problem.
Reimplemented from BasicRRTStrategy.
|
protected |
Count the number of times that _r1 and _r2 have been selected as part of a discrete lead.
|
protected |
Select a region from a set of available regions.
|
protected |
The currently available regions.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Have we improved the map w/ current region?
|
protected |
|
protected |
|
protected |
Holds extra data associated with the regions.
|
protected |
Holds extra data associated with region pairs.
|
protected |
The topological map label.