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

Derived class of BatchingManager that implements Hybrid Batching. More...

#include <HybridBatching.hpp>

Inherits batching_pomp::batching::BatchingManager< Graph, VStateMap, StateCon, EDistance >.

Public Member Functions

 HybridBatching (const ompl::base::StateSpacePtr _space, VStateMap _stateMap, std::string _roadmapFileName, Graph &_fullRoadmap, Graph &_currentRoadmap, unsigned int _initNumVertices, double _vertInflFactor, double _radiusInflFactor, const std::function< double(unsigned int)> &_initRadiusFn, double _maxRadius)
 
void setVertexInflationFactor (double _vertInflFactor)
 Setters and Getters.
 
double getVertexInflationFactor () const
 
void setRadiusInflationFactor (unsigned int _radiusInflFactor)
 
double getRadiusInflationFactor () const
 
void setInitRadius (double _initRadius)
 
double getInitRadius () const
 
void setMaxRadius (double _maxRadius)
 
double getMaxRadius () const
 
bool isInEdgeBatchingMode () const
 
void updateWithNewSolutionCost (double _newSolnCost) override
 Overriden methods.
 
void nextBatch (const std::function< bool(const ompl::base::State *)> &_pruneFunction, ompl::NearestNeighbors< Vertex > &_vertexNN) override
 
- Public Member Functions inherited from batching_pomp::batching::BatchingManager< 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)
 

Additional Inherited Members

- Protected Attributes inherited from batching_pomp::batching::BatchingManager< Graph, VStateMap, StateCon, EDistance >
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::HybridBatching< Graph, VStateMap, StateCon, EDistance >

Derived class of BatchingManager that implements Hybrid Batching.

Implements Hybrid Batching, which proceeds in two phases. Initially, batches of vertices are added, and the r-disk shrinks (as per a function connecting vertices to radius) to maintain a specific relationship between edges and vertices. Once all vertices are added, batches of edges are added based on an increasing radius of connectivity (similar to Edge Batching)

Constructor & Destructor Documentation

◆ HybridBatching()

template<class Graph , class VStateMap , class StateCon , class EDistance >
batching_pomp::batching::HybridBatching< Graph, VStateMap, StateCon, EDistance >::HybridBatching ( const ompl::base::StateSpacePtr  _space,
VStateMap  _stateMap,
std::string  _roadmapFileName,
Graph &  _fullRoadmap,
Graph &  _currentRoadmap,
unsigned int  _initNumVertices,
double  _vertInflFactor,
double  _radiusInflFactor,
const std::function< double(unsigned int)> &  _initRadiusFn,
double  _maxRadius 
)
inline
Parameters
[in]_initNumVerticesThe initial number of vertices to begin with
[in]_vertInflFactorThe factor by which to increase the number of vertices in each batch in the first phase
[in]_radiusInflFactorThe value by which to increase the radius for each new batch in the second phase
[in]_initRadiusFnThe function which generates the radius based on the number of vertices
[in]_maxRadiusThe maximum meaningful radius for edge batching. It is a function of the space bounds and the current solution quality.

Member Function Documentation

◆ nextBatch()

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

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

Implements batching_pomp::batching::BatchingManager< Graph, VStateMap, StateCon, EDistance >.


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