Parasol Planning Library (PPL)
|
#include <TogglePRMStrategy.h>
Public Types | |
Motion Planning Types | |
typedef MPBaseObject::RoadmapType | RoadmapType |
typedef RoadmapType::VID | VID |
typedef BasicPRM::SamplerSetting | SamplerSetting |
Local Types | |
typedef std::deque< std::pair< bool, Cfg > > | ToggleQueue |
Public Types inherited from BasicPRM | |
typedef MPBaseObject::RoadmapType | RoadmapType |
typedef RoadmapType::VID | VID |
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 | |
TogglePRMStrategy () | |
TogglePRMStrategy (XMLNode &_node) | |
virtual | ~TogglePRMStrategy ()=default |
MPBaseObject Overrides | |
virtual void | Print (std::ostream &_os) const override |
Public Member Functions inherited from BasicPRM | |
BasicPRM () | |
BasicPRM (XMLNode &_node) | |
virtual | ~BasicPRM ()=default |
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 | |
MPStrategyMethod Overrides | |
virtual void | Initialize () override |
virtual void | Iterate () override |
Execute one iteration of the strategy. More... | |
Helpers | |
void | GenerateNodes () |
Sample new nodes and put them into the toggle queue. More... | |
void | ConnectHelper (const bool _valid, const VID _vid) |
void | Enqueue (const Cfg &_cfg) |
Protected Member Functions inherited from BasicPRM | |
std::vector< VID > | Sample () |
void | Connect (const std::vector< VID > &_vids) |
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 | |
Internal State | |
std::vector< std::string > | m_colConnectorLabels |
std::string | m_vcLabel |
Validity checker for lazy samplers. More... | |
bool | m_priority {false} |
Give priority to valid nodes in the queue? More... | |
ToggleQueue | m_queue |
Queue for sharing information between maps. More... | |
Protected Attributes inherited from BasicPRM | |
std::vector< SamplerSetting > | m_samplers |
Sampler labels with number and attempts of sampler. More... | |
std::vector< std::string > | m_connectorLabels |
Connector labels for node-to-node. More... | |
std::string | m_inputMapFilename |
Input roadmap to initialize map. More... | |
bool | m_fixBase {false} |
std::unique_ptr< Boundary > | m_samplingBoundary |
An optional sampling boundary for fixing the base. 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... | |
Toggle PRM builds two roadmaps, one free and one obstacle. The information discovered about each space is used to assist the mapping of the other space.
Reference: Jory Denny, Nancy Amato. "Toggle PRM: A Coordinated Mapping of C-free and C-obstacle in Arbitrary Dimension." WAFR 2012.
typedef std::deque<std::pair<bool, Cfg> > TogglePRMStrategy::ToggleQueue |
TogglePRMStrategy::TogglePRMStrategy | ( | ) |
TogglePRMStrategy::TogglePRMStrategy | ( | XMLNode & | _node | ) |
|
virtualdefault |
|
protected |
Try to connect a new node to the correct roadmap.
_valid | Is the new node valid? |
_vid | The new node's VID. |
|
protected |
Add a configuration to the toggle queue.
_cfg | The configuration to enqueue. Must already be validated by a collision-detection VC. |
|
protected |
Sample new nodes and put them into the toggle queue.
|
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 BasicPRM.
|
overrideprotectedvirtual |
Execute one iteration of the strategy.
Reimplemented from BasicPRM.
|
overridevirtual |
Print internal state of this object.
_os | The std::ostream to print to. |
Reimplemented from BasicPRM.
|
protected |
|
protected |
Give priority to valid nodes in the queue?
|
protected |
Queue for sharing information between maps.
|
protected |
Validity checker for lazy samplers.