PPL API Reference |
|
---|
Public Member Functions | |
Construction | |
LocalPlannerMethod (bool _saveIntermediates=false) | |
LocalPlannerMethod (XMLNode &_node) | |
virtual | ~LocalPlannerMethod ()=default |
MPBaseObject Overrides | |
virtual void | Print (std::ostream &_os) const override |
Local Planner Interface | |
virtual bool | IsConnected (const CfgType &_start, const CfgType &_end, CfgType &_col, LPOutput< MPTraits > *_lpOutput, double _posRes, double _oriRes, bool _checkCollision=true, bool _savePath=false)=0 |
bool | IsConnected (const CfgType &_start, const CfgType &_end, LPOutput< MPTraits > *_lpOutput, double _posRes, double _oriRes, bool _checkCollision=true, bool _savePath=false) |
virtual bool | IsConnected (const GroupCfgType &_start, const GroupCfgType &_end, GroupCfgType &_col, GroupLPOutput< MPTraits > *_lpOutput, double _posRes, double _oriRes, bool _checkCollision=true, bool _savePath=false, const Formation &_formation=Formation()) |
bool | IsConnected (const GroupCfgType &_start, const GroupCfgType &_end, GroupLPOutput< MPTraits > *_lpOutput, double _posRes, double _oriRes, bool _checkCollision=true, bool _savePath=false, const Formation &_formation=Formation()) |
std::vector< CfgType > | BlindPath (const std::vector< CfgType > &_waypoints, const double _posRes, const double _oriRes) |
std::vector< CfgType > | BlindPath (const std::vector< CfgType > &_waypoints) |
std::vector< GroupCfgType > | BlindPath (const std::vector< GroupCfgType > &_waypoints, const double _posRes, const double _oriRes, const Formation &_formation=Formation()) |
std::vector< GroupCfgType > | BlindPath (const std::vector< GroupCfgType > &_waypoints, const Formation &_formation=Formation()) |
Initialization | |
virtual void | Initialize () |
Name and Label Accessors | |
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. | |
MPLibrary Accessors | |
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. | |
Problem Accessors | |
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. | |
Solution Accessors | |
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. | |
Public Types | |
Motion Planning Types | |
typedef MPTraits::CfgType | CfgType |
typedef MPTraits::GroupCfgType | GroupCfgType |
typedef GroupCfgType::Formation | Formation |
Local Types | |
typedef MPTraits::RoadmapType | RoadmapType |
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 |
Protected Member Functions | |
void | SetName (const std::string &_s) |
const std::string & | GetBaseFilename () const |
Protected Attributes | |
bool | m_debug |
Print debug info? | |
Internal State | |
bool | m_saveIntermediates {false} |
Save the intermediates in the roadmap? | |
Base algorithm abstraction for Local Planners.
LocalPlannerMethod has two main functions: IsConnected
and BlindPath
.
IsConnected
takes as input two configurations ,
, an LPOutput, validation resolutions, and optional booleans dictating whether to check collision and save the path. The function both returns true or false to validate the simple path between
and
, but also populates the LPOutput structure with useful information.
BlindPath
is a helper to plan between waypoints without collision checking. This is useful for working with pre-validated paths.
All local planners need to use a distance metric to set their edge weights properly; currently many of them are simply using the number of intermediate steps as a weight.
Local planners and Extenders represent the same concepts and should be merged into a single class with both an Extend and LocalPlan function. This will help simplify several other objects within PMPL as well, such as bi-directional RRT.
|
overridevirtual |
Print internal state of this object.
_os | The std::ostream to print to. |
Reimplemented from MPBaseObject< MPTraits >.
Reimplemented in StraightLine< MPTraits >.
|
pure virtual |
Validate a simple path between two nodes.
_start | The starting configuration. |
_end | The ending configuration. |
_col | The witness configuration on failure. |
_lpOutput | Weight and path computed from local plan. |
_posRes | Positional DOF resolution. |
_oriRes | Rotational DOF resolution. |
_checkCollision | Use validity checking? |
_savePath | Save all configurations along the path? |
Implemented in StraightLine< MPTraits >.
bool LocalPlannerMethod< MPTraits >::IsConnected | ( | const CfgType & | _start, |
const CfgType & | _end, | ||
LPOutput< MPTraits > * | _lpOutput, | ||
double | _posRes, | ||
double | _oriRes, | ||
bool | _checkCollision = true , |
||
bool | _savePath = false |
||
) |
This version does not return a collision node. This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
virtual |
This version is for group configurations. This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Reimplemented in StraightLine< MPTraits >.
bool LocalPlannerMethod< MPTraits >::IsConnected | ( | const GroupCfgType & | _start, |
const GroupCfgType & | _end, | ||
GroupLPOutput< MPTraits > * | _lpOutput, | ||
double | _posRes, | ||
double | _oriRes, | ||
bool | _checkCollision = true , |
||
bool | _savePath = false , |
||
const Formation & | _formation = Formation() |
||
) |
This version for group configurations does not return a collision node. This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
std::vector< typename MPTraits::CfgType > LocalPlannerMethod< MPTraits >::BlindPath | ( | const std::vector< CfgType > & | _waypoints, |
const double | _posRes, | ||
const double | _oriRes | ||
) |
Blind-plan between a set of waypoints. Also useful for reconstructing previously validated edges.
_waypoints | The waypoint configurations. |
_posRes | Positional DOF resolution. |
_oriRes | Rotational DOF resolution. |
std::vector< typename MPTraits::CfgType > LocalPlannerMethod< MPTraits >::BlindPath | ( | const std::vector< CfgType > & | _waypoints | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
std::vector< typename MPTraits::GroupCfgType > LocalPlannerMethod< MPTraits >::BlindPath | ( | const std::vector< GroupCfgType > & | _waypoints, |
const Formation & | _formation = Formation() |
||
) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
virtualinherited |
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 in ConnectorMethod< MPTraits >, CBSQuery< MPTraits >, ComposeEvaluator< MPTraits >, LazyQuery< MPTraits >, QueryMethod< MPTraits >, SIPPMethod< MPTraits >, TimeEvaluator< MPTraits >, TimeMetric< MPTraits >, AdaptiveRRT< MPTraits >, BasicPRM< MPTraits >, BasicRRTStrategy< MPTraits >, TogglePRMStrategy< MPTraits >, ValidationStrategy< MPTraits >, LKHSearch< MPTraits >, ClearanceUtility< MPTraits >, ReachabilityUtil< MPTraits >, SafeIntervalTool< MPTraits >, and TopologicalMap< MPTraits >.
|
protectedinherited |
_s | Class name |
|
protectedinherited |