Parasol Planning Library (PPL)
|
PathStrategy generates configurations along user-generated paths. More...
#include <PathStrategy.h>
Public Types | |
Motion Planning Types | |
typedef MPBaseObject::RoadmapType | RoadmapType |
typedef RoadmapType::VID | VID |
typedef RoadmapType::VertexSet | 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 | |
PathStrategy () | |
PathStrategy (XMLNode &_node) | |
MPBaseObject Overrides | |
virtual void | Print (ostream &_os) const override |
MPStrategyMethod Overrides | |
virtual void | Initialize () override |
virtual void | Run () override |
Call Iterate until EvaluateMap is true. More... | |
virtual void | Finalize () override |
Clean-up and output results. More... | |
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 | |
Helpers | |
void | getUserPaths () |
Read the users paths from file. More... | |
bool | ValidateCfg (Cfg &_cfg) |
Check the configuration's validity. More... | |
Cfg | RandomNearNode (Cfg &_invalidNode, Cfg &_nextNode, Cfg &_lastValidNode) |
Samples a node near the invalid node trying to connect it to the previous and, if valid, the next node. More... | |
void | AddToRoadmap (vector< Point3d > &_points, vector< VID > &_vids) |
Validate and add configurations to the roadmap. Store their VID's for connection. More... | |
void | ConnectPath (const vector< VID > &_vids) |
Try to connect new nodes to the roadmap in the path sequence. If a connection attempt fails, attempt to create intermediates. More... | |
bool | ConnectCC (VID _vid1, VID _vid2) |
Tries to connect the two connected components represented by the given nodes. More... | |
void | ConnectCCs () |
Attempts to connect all the connected components. More... | |
Protected Member Functions inherited from MPStrategyMethod | |
virtual bool | EvaluateMap () |
Check if we satisfied all map evaluators. More... | |
virtual void | Iterate () |
Execute one iteration of the strategy. 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 |
Additional Inherited Members | |
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... | |
PathStrategy generates configurations along user-generated paths.
PathStrategy collects a set of workspace points along the user-generated paths and generates configurations at those points. Valid points are added to the map and connected in path order. Invalid points are taken as the center of a sampling radius for a valid configuration. If a connection between two path configurations c1
and c2
fails, an intermediate configuration cI is generated at their midpoint if it is valid. The path connection then recurses on the set (c1, cI, c2).
typedef RoadmapType::VID PathStrategy::VID |
PathStrategy::PathStrategy | ( | ) |
PathStrategy::PathStrategy | ( | XMLNode & | _node | ) |
|
protected |
Validate and add configurations to the roadmap. Store their VID's for connection.
[in] | _samples | Configurations to add. |
[out] | _vids | The corresponding VID's in the roadmap. |
Tries to connect the two connected components represented by the given nodes.
[in] | _vid1 | Representative of the first connected component. |
[in] | _vid2 | Representative of the first connected component. |
|
protected |
Attempts to connect all the connected components.
|
protected |
Try to connect new nodes to the roadmap in the path sequence. If a connection attempt fails, attempt to create intermediates.
[in] | _vids | The VID's of the path nodes, in path order. |
|
overridevirtual |
Clean-up and output results.
Reimplemented from MPStrategyMethod.
|
protected |
Read the users paths from file.
|
overridevirtual |
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 MPBaseObject.
|
overridevirtual |
Print internal state of this object.
_os | The std::ostream to print to. |
Reimplemented from MPStrategyMethod.
|
protected |
Samples a node near the invalid node trying to connect it to the previous and, if valid, the next node.
[in] | _invalidNode | Invalid node. |
[in] | _nextNode | Subsequent node. |
[in] | _lastValidNode | Previous valid node of the path. |
|
overridevirtual |
Call Iterate until EvaluateMap is true.
Reimplemented from MPStrategyMethod.
|
protected |
Check the configuration's validity.
[in/out] | _cfg The configuration to validate. |