27 #ifndef BATCHING_POMP_EDGE_BATCHING_HPP_ 28 #define BATCHING_POMP_EDGE_BATCHING_HPP_ 31 #include <ompl/base/StateSpace.h> 32 #include <ompl/util/Console.h> 33 #include <boost/graph/adjacency_list.hpp> 34 #include <boost/graph/properties.hpp> 35 #include "batching_pomp/batching/BatchingManager.hpp" 45 template<
class Graph,
class VStateMap,
class StateCon,
class EDistance>
49 typedef boost::graph_traits<Graph> GraphTypes;
50 typedef typename GraphTypes::vertex_iterator VertexIter;
51 typedef typename GraphTypes::vertex_descriptor Vertex;
63 std::string _roadmapFileName,
65 Graph& _currentRoadmap,
66 double _radiusInflFactor,
67 std::function<
double(
unsigned int)> _initRadiusFn,
70 :
BatchingManager<Graph, VStateMap,
StateCon, EDistance>(_space,_stateMap,_roadmapFileName,_fullRoadmap,_currentRoadmap)
71 , mRadiusInflFactor{_radiusInflFactor}
73 , mMaxRadius{_maxRadius}
81 mRadiusInflFactor = _radiusInflFactor;
84 double getRadiusInflationFactor()
const 86 return mRadiusInflFactor;
89 void setInitRadius(
double _initRadius)
91 mInitRadius = _initRadius;
94 double getInitRadius()
const 99 void setMaxRadius(
double _maxRadius)
101 mMaxRadius = _maxRadius;
104 double getMaxRadius()
const 113 mMaxRadius = std::min(mMaxRadius,_newSolnCost);
116 void nextBatch(
const std::function<
bool(
const ompl::base::State*)>& _pruneFunction,
117 ompl::NearestNeighbors<Vertex>& _vertexNN)
override 121 OMPL_INFORM(
"Batching exhausted! No updates with nextBatch!");
125 OMPL_INFORM(
"New Edge Batch called!");
130 VertexIter vi, vi_end;
140 vertex_vector[idx++] = newVertex;
145 vertex_vector.resize(idx);
146 _vertexNN.add(vertex_vector);
164 double mRadiusInflFactor;
173 #endif //BATCHING_POMP_EDGE_BATCHING_HPP_ void updateWithNewSolutionCost(double _newSolnCost) override
Overriden methods.
Definition: EdgeBatching.hpp:111
Abstract class that represents the batching strategy used for the planning algorithm.
Definition: BatchingManager.hpp:51
EdgeBatching(const ompl::base::StateSpacePtr _space, VStateMap _stateMap, std::string _roadmapFileName, Graph &_fullRoadmap, Graph &_currentRoadmap, double _radiusInflFactor, std::function< double(unsigned int)> _initRadiusFn, double _maxRadius)
Definition: EdgeBatching.hpp:61
Definition: BatchingManager.hpp:36
Derived class of BatchingManager that implements Edge Batching.
Definition: EdgeBatching.hpp:46
Composite struct to associate the state space with each state.
Definition: BatchingPOMP.hpp:55
void nextBatch(const std::function< bool(const ompl::base::State *)> &_pruneFunction, ompl::NearestNeighbors< Vertex > &_vertexNN) override
Definition: EdgeBatching.hpp:116
void setRadiusInflationFactor(unsigned int _radiusInflFactor)
Setters and Getters.
Definition: EdgeBatching.hpp:79