batching_pomp  1.0
This is an implementation of an algorithmic framework for anytime motion planning on large dense roadmaps.
Public Member Functions | Protected Attributes | List of all members
batching_pomp::batching::BatchingManager< Graph, VStateMap, StateCon, EDistance > Class Template Referenceabstract

Abstract class that represents the batching strategy used for the planning algorithm. More...

#include <BatchingManager.hpp>

Inherited by batching_pomp::batching::EdgeBatching< Graph, VStateMap, StateCon, EDistance >, batching_pomp::batching::HybridBatching< Graph, VStateMap, StateCon, EDistance >, batching_pomp::batching::SingleBatching< Graph, VStateMap, StateCon, EDistance >, and batching_pomp::batching::VertexBatching< Graph, VStateMap, StateCon, EDistance >.

Public Member Functions

 BatchingManager (const ompl::base::StateSpacePtr _space, VStateMap _stateMap, std::string _roadmapFileName, Graph &_fullRoadmap, Graph &_currentRoadmap)
 
 BatchingManager (const ompl::base::StateSpacePtr _space, VStateMap _stateMap, EDistance _distanceMap, std::string _roadmapFileName, Graph &_fullRoadmap, Graph &_currentRoadmap)
 
unsigned int getNumBatches () const
 
unsigned int getNumVertices () const
 
bool isExhausted () const
 
double getCurrentRadius () const
 
const ompl::base::State * getVertexState (const Vertex &v) const
 
void pruneVertices (const std::function< bool(const ompl::base::State *)> &_pruneFunction, ompl::NearestNeighbors< Vertex > &_vertexNN)
 
virtual void updateWithNewSolutionCost (double _newSolnCost)=0
 
virtual void nextBatch (const std::function< bool(const ompl::base::State *)> &_pruneFunction, ompl::NearestNeighbors< Vertex > &_vertexNN)=0
 

Protected Attributes

Graph & mFullRoadmap
 The entire roadmap that will be used for planning.
 
Graph & mCurrentRoadmap
 The roadmap currently being searched by the planner.
 
unsigned int mNumBatches
 The number of batches added till now.
 
unsigned int mNumVertices
 The number of vertices in the entire roadmap.
 
bool mExhausted
 The flag that maintains whether the complete roadmap has been fully searched or not.
 
double mCurrRadius
 The radius of connectivity for the current batch.
 

Detailed Description

template<class Graph, class VStateMap, class StateCon, class EDistance>
class batching_pomp::batching::BatchingManager< Graph, VStateMap, StateCon, EDistance >

Abstract class that represents the batching strategy used for the planning algorithm.

The batching manager maintains responsibility for the complete roadmap and periodically adds batches to the roadmap of the planner. This decoupling allows the complete roadmap to be loaded separately before the planning query arrives.

Template Parameters
GraphThe type of boost graph used for the roadmaps
VStateMapThe type of boost property map for vertex states
StateConThe wrapper type for an ompl state
EDistanceThe type of property map for edge lengths

Constructor & Destructor Documentation

◆ BatchingManager() [1/2]

template<class Graph, class VStateMap, class StateCon, class EDistance>
batching_pomp::batching::BatchingManager< Graph, VStateMap, StateCon, EDistance >::BatchingManager ( const ompl::base::StateSpacePtr  _space,
VStateMap  _stateMap,
std::string  _roadmapFileName,
Graph &  _fullRoadmap,
Graph &  _currentRoadmap 
)
inline
Parameters
[in]_spaceThe state space of the planner
[in]_stateMapThe property map for states of vertices
[in]_roadmapFileNameThe full path to roadmap .graphml file
[in]_fullRoadmapThe complete roadmap loaded by the batching manager
[in]_currentRoadmapThe roadmap that the planner is currently searching

◆ BatchingManager() [2/2]

template<class Graph, class VStateMap, class StateCon, class EDistance>
batching_pomp::batching::BatchingManager< Graph, VStateMap, StateCon, EDistance >::BatchingManager ( const ompl::base::StateSpacePtr  _space,
VStateMap  _stateMap,
EDistance  _distanceMap,
std::string  _roadmapFileName,
Graph &  _fullRoadmap,
Graph &  _currentRoadmap 
)
inline

Corresponding constructor for single batching strategy

Parameters
[in]_spaceThe state space of the planner
[in]_stateMapThe property map for states of vertices
[in]_distanceMapThe property map for the distance of edges
[in]_roadmapFileNameThe full path to roadmap .graphml file
[in]_fullRoadmapThe complete roadmap loaded by the batching manager
[in]_currentRoadmapThe roadmap that the planner is currently searching

Member Function Documentation

◆ nextBatch()

template<class Graph, class VStateMap, class StateCon, class EDistance>
virtual void batching_pomp::batching::BatchingManager< Graph, VStateMap, StateCon, EDistance >::nextBatch ( const std::function< bool(const ompl::base::State *)> &  _pruneFunction,
ompl::NearestNeighbors< Vertex > &  _vertexNN 
)
pure virtual

Generate the next batch and update the current roadmap with it

Parameters
[in]_pruneFunctionThe rejection sampling checker for new samples
[in]_vertexNNThe nearest neighbour manager for roadmap vertices that is updated with the latest batch of samples

Implemented in batching_pomp::batching::HybridBatching< Graph, VStateMap, StateCon, EDistance >, batching_pomp::batching::EdgeBatching< Graph, VStateMap, StateCon, EDistance >, batching_pomp::batching::VertexBatching< Graph, VStateMap, StateCon, EDistance >, and batching_pomp::batching::SingleBatching< Graph, VStateMap, StateCon, EDistance >.

◆ pruneVertices()

template<class Graph, class VStateMap, class StateCon, class EDistance>
void batching_pomp::batching::BatchingManager< Graph, VStateMap, StateCon, EDistance >::pruneVertices ( const std::function< bool(const ompl::base::State *)> &  _pruneFunction,
ompl::NearestNeighbors< Vertex > &  _vertexNN 
)
inline

Implements the removal of all vertices, from the current roadmap, that satisfy a given pruning condition. Vertices are also removed from the nearest neighbour structure that maintains them.

Parameters
[in]_pruneFunctionThe function pointer that has the pruning condition
[in]_vertexNNThe nearest neighbour structure for vertices

◆ updateWithNewSolutionCost()

template<class Graph, class VStateMap, class StateCon, class EDistance>
virtual void batching_pomp::batching::BatchingManager< Graph, VStateMap, StateCon, EDistance >::updateWithNewSolutionCost ( double  _newSolnCost)
pure virtual

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