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 >.
|
| | 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 |
| |
|
|
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.
|
| |
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
-
| Graph | The type of boost graph used for the roadmaps |
| VStateMap | The type of boost property map for vertex states |
| StateCon | The wrapper type for an ompl state |
| EDistance | The type of property map for edge lengths |
◆ BatchingManager() [1/2]
template<class Graph, class VStateMap, class StateCon, class EDistance>
- Parameters
-
| [in] | _space | The state space of the planner |
| [in] | _stateMap | The property map for states of vertices |
| [in] | _roadmapFileName | The full path to roadmap .graphml file |
| [in] | _fullRoadmap | The complete roadmap loaded by the batching manager |
| [in] | _currentRoadmap | The roadmap that the planner is currently searching |
◆ BatchingManager() [2/2]
template<class Graph, class VStateMap, class StateCon, class EDistance>
Corresponding constructor for single batching strategy
- Parameters
-
| [in] | _space | The state space of the planner |
| [in] | _stateMap | The property map for states of vertices |
| [in] | _distanceMap | The property map for the distance of edges |
| [in] | _roadmapFileName | The full path to roadmap .graphml file |
| [in] | _fullRoadmap | The complete roadmap loaded by the batching manager |
| [in] | _currentRoadmap | The roadmap that the planner is currently searching |
◆ nextBatch()
template<class Graph, class VStateMap, class StateCon, class EDistance>
Generate the next batch and update the current roadmap with it
- Parameters
-
| [in] | _pruneFunction | The rejection sampling checker for new samples |
| [in] | _vertexNN | The 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>
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] | _pruneFunction | The function pointer that has the pruning condition |
| [in] | _vertexNN | The nearest neighbour structure for vertices |
◆ updateWithNewSolutionCost()
template<class Graph, class VStateMap, class StateCon, class EDistance>
Make any updates to batching manager with newest solution cost
- Parameters
-
| [in] | _newSolnCost | The current best solution cost with which to update the batching manager parameters |
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 >.
The documentation for this class was generated from the following file: