Parasol Planning Library (PPL)
MapEvaluatorMethod Class Referenceabstract

#include <MapEvaluatorMethod.h>

Inheritance diagram for MapEvaluatorMethod:
Inheritance graph
[legend]
Collaboration diagram for MapEvaluatorMethod:
Collaboration graph
[legend]

Public Member Functions

MapEvaluator Interface
virtual bool operator() ()=0
 
virtual void SetEdgeIntervals (EdgeIntervals _edgeIntervals)
 Set the edge intervals of a roadmap. More...
 
virtual void SetMinEndtime (double _minEndtime)
 Set the minimum end time of a path. More...
 
Active Robots
Todo:
This is an artifact of developing robot groups. It should be replaced by using a proper subgroup where each robot within is active.
void SetActiveRobots (const std::vector< size_t > &_activeRobots)
 Set the active robots. More...
 
std::vector< size_t > GetActiveRobots () const
 Get the active robots. More...
 
- Public Member Functions inherited from MPBaseObject
 MPBaseObject (const std::string &_label="", const std::string &_name="", bool _debug=false)
 
 MPBaseObject (XMLNode &_node)
 
virtual ~MPBaseObject ()
 
virtual void Print (std::ostream &_os) const
 
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...
 
MPLibraryGetMPLibrary () const noexcept
 Get the owning MPLibrary. More...
 
bool IsRunning () const noexcept
 Check the library's running flag. More...
 
MPProblemGetMPProblem () const noexcept
 Get the library's current MPProblem. More...
 
EnvironmentGetEnvironment () const noexcept
 Get the current environment. More...
 
MPTaskGetTask () const noexcept
 Get the current task. More...
 
GroupTaskGetGroupTask () const noexcept
 Get the current group task. More...
 
MPSolutionTypeGetMPSolution () const noexcept
 
RoadmapTypeGetRoadmap (Robot *const _r=nullptr) const noexcept
 Get the current free-space roadmap. More...
 
GroupRoadmapTypeGetGroupRoadmap (RobotGroup *const _g=nullptr) const noexcept
 Get the current free-space group roadmap. More...
 
RoadmapTypeGetBlockRoadmap (Robot *const _r=nullptr) const noexcept
 Get the current obstacle-space roadmap. More...
 
PathGetPath (Robot *const _r=nullptr) const noexcept
 
GroupPathGetGroupPath (RobotGroup *const _g=nullptr) const noexcept
 Get the current best group path. More...
 
StatClassGetStatClass () const noexcept
 Get the current StatClass. More...
 
LocalObstacleMapGetLocalObstacleMap () const noexcept
 Get the local obstacle map. More...
 

Protected Attributes

Internal State
std::vector< size_t > m_activeRobots
 
- Protected Attributes inherited from MPBaseObject
bool m_debug
 Print debug info? More...
 

Construction

typedef std::unordered_map< size_t, std::unordered_map< size_t, std::vector< Range< double > > > > EdgeIntervals
 
 MapEvaluatorMethod ()=default
 
 MapEvaluatorMethod (XMLNode &_node)
 
virtual ~MapEvaluatorMethod ()=default
 

Additional Inherited Members

- Public Types inherited from MPBaseObject
typedef DefaultWeight< CfgWeightType
 
typedef GenericStateGraph< Cfg, WeightTypeRoadmapType
 
typedef GroupCfg< RoadmapTypeGroupCfgType
 
typedef GroupLocalPlan< RoadmapTypeGroupWeightType
 
typedef GroupRoadmap< GroupCfgType, GroupWeightTypeGroupRoadmapType
 
- Protected Member Functions inherited from MPBaseObject
void SetName (const std::string &_s)
 
const std::string & GetBaseFilename () const
 

Detailed Description

Base algorithm abstraction for MapEvaluators.

All MapEvaluators have one main function, operator(), which evaluates the current roadmap and returns true iff it satisfies a specific set of criteria.

Examples
MapEvaluator_UseCase.cpp.

Member Typedef Documentation

◆ EdgeIntervals

typedef std::unordered_map<size_t, std::unordered_map<size_t, std::vector<Range<double> > > > MapEvaluatorMethod::EdgeIntervals

Constructor & Destructor Documentation

◆ MapEvaluatorMethod() [1/2]

MapEvaluatorMethod::MapEvaluatorMethod ( )
default

◆ MapEvaluatorMethod() [2/2]

MapEvaluatorMethod::MapEvaluatorMethod ( XMLNode _node)

◆ ~MapEvaluatorMethod()

virtual MapEvaluatorMethod::~MapEvaluatorMethod ( )
virtualdefault

Member Function Documentation

◆ GetActiveRobots()

std::vector< size_t > MapEvaluatorMethod::GetActiveRobots ( ) const

Get the active robots.

◆ operator()()

virtual bool MapEvaluatorMethod::operator() ( )
pure virtual

Evaluate a roadmap.

Returns
True if this roadmap meets the evaluation criteria.

Implemented in TimeEvaluator, SIPPMethod, QueryMethod, PathEvaluator, NegateEvaluator, MinimumDistanceEvaluator, GroupQuery, ComposeEvaluator, CBSQuery, PrintMapEvaluation, ConditionalEvaluator, and CollisionEvaluator.

◆ SetActiveRobots()

void MapEvaluatorMethod::SetActiveRobots ( const std::vector< size_t > &  _activeRobots)

Set the active robots.

◆ SetEdgeIntervals()

virtual void MapEvaluatorMethod::SetEdgeIntervals ( EdgeIntervals  _edgeIntervals)
inlinevirtual

Set the edge intervals of a roadmap.

◆ SetMinEndtime()

virtual void MapEvaluatorMethod::SetMinEndtime ( double  _minEndtime)
inlinevirtual

Set the minimum end time of a path.

Field Documentation

◆ m_activeRobots

std::vector<size_t> MapEvaluatorMethod::m_activeRobots
protected

The active robots, used only by group map evaluators. Depending on the evaluator, the usage could be different, but the current use case is to set the robot(s) that are being moved, then a clearance check is done only considering those specified bodies (see MinimumClearanceEvaluator).

Todo:
This is an artifact of developing robot groups. It should be replaced by using a proper subgroup where each robot within is active.

The documentation for this class was generated from the following files: