batching_pomp  1.0
This is an implementation of an algorithmic framework for anytime motion planning on large dense roadmaps.
Classes | Public Types | Public Member Functions | Public Attributes | Static Public Attributes | List of all members
batching_pomp::BatchingPOMP Class Reference

The OMPL Planner class that implements the algorithm. More...

#include <BatchingPOMP.hpp>

Inherits Planner.

Classes

struct  EProps
 Properties associated with each roadmap edge. More...
 
struct  VProps
 Properties associated with each roadmap vertex. More...
 

Public Types

typedef boost::adjacency_list< boost::vecS, boost::vecS, boost::undirectedS, VProps, EPropsGraph
 
typedef boost::graph_traits< Graph >::vertex_descriptor Vertex
 
typedef boost::graph_traits< Graph >::vertex_iterator VertexIter
 
typedef boost::graph_traits< Graph >::edge_descriptor Edge
 
typedef boost::graph_traits< Graph >::edge_iterator EdgeIter
 
typedef boost::graph_traits< Graph >::out_edge_iterator OutEdgeIter
 
typedef boost::property_map< Graph, StateConPtr VProps::* >::type VPStateMap
 
typedef boost::property_map< Graph, double EProps::* >::type EPDistanceMap
 
typedef boost::property_map< Graph, boost::vertex_index_t >::type VertexIndexMap
 

Public Member Functions

 BatchingPOMP (const ompl::base::SpaceInformationPtr &si)
 
 BatchingPOMP (const ompl::base::SpaceInformationPtr &si, std::shared_ptr< batching::BatchingManager< Graph, VPStateMap, StateCon, EPDistanceMap > > _batchingPtr, std::shared_ptr< cspacebelief::Model< cspacebelief::BeliefPoint > > _beliefModel, std::unique_ptr< util::Selector< Graph > > _selector, const std::string &_roadmapFileName, double _startGoalRadius, double _increment=0.2, double _pruneThreshold=0.05)
 
double getCurrentAlpha () const
 Current value of alpha being used by POMP.
 
double getCurrentBestCost () const
 Cost of current best solution to goal.
 
Vertex getStartVertex () const
 The ID of the start vertex.
 
Vertex getGoalVertex () const
 The ID of the goal vertex.
 
bool isInitSearchBatch () const
 Whether the current POMP search is the first of that batch (alpha = 0)
 
double getIncrement () const
 The value with which alpha is incremented.
 
void setIncrement (double _decrement)
 
double getStartGoalRadius () const
 
void setStartGoalRadius (double _startGoalRadius)
 
double getPruneThreshold () const
 
void setPruneThreshold (double _pruneThreshold)
 
std::string getGraphType () const
 The kind of sequence used to generate samples ("halton" or "rgg")
 
void setGraphType (const std::string &_graphType)
 
std::string getBatchingType () const
 
void setBatchingType (const std::string &_selectorType)
 
std::string getSelectorType () const
 
void setSelectorType (const std::string &_selectorType)
 
std::string getRoadmapFileName () const
 
void setRoadmapFileName (const std::string &_roadmapFileName)
 
unsigned int getNumEdgeChecks ()
 Number of edges evaluated thus far.
 
unsigned int getNumCollChecks ()
 Number of calls to collision checker made thus far.
 
unsigned int getNumSearches ()
 Number of roadmap searches done thus far.
 
unsigned int getNumLookups ()
 Number of model lookups made thus far.
 
double getLookupTime ()
 Total time spent doing model lookups.
 
double getSearchTime ()
 Total time spent doing searches.
 
double getCollCheckTime ()
 Total time spent doing collision checks.
 
void setProblemDefinition (const ompl::base::ProblemDefinitionPtr &pdef)
 
ompl::base::PlannerStatus solve (const ompl::base::PlannerTerminationCondition &ptc)
 
void setup ()
 
double vertexDistFun (const Vertex &u, const Vertex &v) const
 
void initializeEdgePoints (const Edge &e)
 
double computeAndSetEdgeFreeProbability (const Edge &e)
 
bool checkAndSetEdgeBlocked (const Edge &e)
 

Public Attributes

const ompl::base::StateSpacePtr mSpace
 The pointer to the OMPL state space.
 
std::shared_ptr< batching::BatchingManager< Graph, VPStateMap, StateCon, EPDistanceMap > > mBatchingPtr
 The pointer to the batching manager instance to be used by the planner.
 
std::shared_ptr< cspacebelief::Model< cspacebelief::BeliefPoint > > mBeliefModel
 The pointer to the C-space belief model instance to be used by the planner.
 
Graph g
 The roadmap that will be continuously searched and updated.
 
Graph full_g
 The large, dense roadmap that remains unchanged after being loaded once.
 

Static Public Attributes

static const int FREE {1}
 The edge is known to be collision-free.
 
static const int BLOCKED {-1}
 The edge is known to be in collision.
 
static const int UNKNOWN {0}
 The collision status of the edge is unknown.
 

Detailed Description

The OMPL Planner class that implements the algorithm.

Constructor & Destructor Documentation

◆ BatchingPOMP()

batching_pomp::BatchingPOMP::BatchingPOMP ( const ompl::base::SpaceInformationPtr &  si,
std::shared_ptr< batching::BatchingManager< Graph, VPStateMap, StateCon, EPDistanceMap > >  _batchingPtr,
std::shared_ptr< cspacebelief::Model< cspacebelief::BeliefPoint > >  _beliefModel,
std::unique_ptr< util::Selector< Graph > >  _selector,
const std::string &  _roadmapFileName,
double  _startGoalRadius,
double  _increment = 0.2,
double  _pruneThreshold = 0.05 
)
Parameters
[in]siThe OMPL space information manager
[in]_batchingPtrThe pointer to the constructed batching manager that the planner should use
[in]_beliefModelThe pointer to the constructed C-space belief model that the planner should use
[in]_selectorThe pointer to the constructed edge selector that the planner should use.
[in]_roadmapFileNameThe path to the .graphml file that encodes the roadmap vertices
[in]_startGoalRadius(Only for Single Batching) The radius to connect start and goal vertices to the roadmap
[in]_incrementThe increment in the value of alpha after each POMP search
[in]_pruneThresholdThe fractional change in cost above which pruning of samples should be done

Member Function Documentation

◆ checkAndSetEdgeBlocked()

bool batching_pomp::BatchingPOMP::checkAndSetEdgeBlocked ( const Edge &  e)

Evaluate an edge to determine its collision status and assign it to the underlying property of the edge.

Parameters
[in]Theedge ID to check for
Returns
True or False depending on if the edge is in collision or not

◆ computeAndSetEdgeFreeProbability()

double batching_pomp::BatchingPOMP::computeAndSetEdgeFreeProbability ( const Edge &  e)

Compute the collision measure of an edge and assign it to the underlying property of the edge. Also return the value to the caller.

Parameters
[in]eThe edge ID
Returns
The computed collision measure of e as per the current model

◆ initializeEdgePoints()

void batching_pomp::BatchingPOMP::initializeEdgePoints ( const Edge &  e)

Given a new edge, initialize the embedded configurations along the edge using the resolution of the underlying space. This is a separate method so that it is called only when a new edge is created, i.e. just-in-time.

Parameters
[in]eThe edge ID to initialize with configurations

◆ vertexDistFun()

double batching_pomp::BatchingPOMP::vertexDistFun ( const Vertex &  u,
const Vertex &  v 
) const

The distance function between roadmap vertices to be used by the nearest neighbour manager for vertices. Typically returns the distance between the underlying states of the space.

Parameters
[in]u,vThe end-point vertices of the edge
Returns
The distance between vertices

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