|
|
| LocalPlannerMethod (bool _saveIntermediates=false) |
|
| LocalPlannerMethod (XMLNode &_node) |
|
virtual | ~LocalPlannerMethod ()=default |
|
|
virtual void | Print (std::ostream &_os) const override |
|
|
virtual bool | IsConnected (const Cfg &_start, const Cfg &_end, Cfg &_col, LPOutput *_lpOutput, double _posRes, double _oriRes, bool _checkCollision=true, bool _savePath=false)=0 |
|
bool | IsConnected (const Cfg &_start, const Cfg &_end, LPOutput *_lpOutput, double _posRes, double _oriRes, bool _checkCollision=true, bool _savePath=false) |
|
virtual bool | IsConnected (const GroupCfgType &_start, const GroupCfgType &_end, GroupCfgType &_col, GroupLPOutput *_lpOutput, double _posRes, double _oriRes, bool _checkCollision=true, bool _savePath=false, const Formation &_formation=Formation()) |
|
bool | IsConnected (const GroupCfgType &_start, const GroupCfgType &_end, GroupLPOutput *_lpOutput, double _posRes, double _oriRes, bool _checkCollision=true, bool _savePath=false, const Formation &_formation=Formation()) |
|
std::vector< Cfg > | BlindPath (const std::vector< Cfg > &_waypoints, const double _posRes, const double _oriRes) |
|
std::vector< Cfg > | BlindPath (const std::vector< Cfg > &_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()) |
|
| MPBaseObject (const std::string &_label="", const std::string &_name="", bool _debug=false) |
|
| MPBaseObject (XMLNode &_node) |
|
virtual | ~MPBaseObject () |
|
virtual void | Initialize () |
|
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...
|
|
Base algorithm abstraction for LocalPlanners.
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.
- Todo:
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.
- Examples
- LocalPlanner_UseCase.cpp.