|
batching_pomp
1.0
This is an implementation of an algorithmic framework for anytime motion planning on large dense roadmaps.
|
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, EProps > | Graph |
| 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. | |
The OMPL Planner class that implements the algorithm.
| 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 |
||
| ) |
| [in] | si | The OMPL space information manager |
| [in] | _batchingPtr | The pointer to the constructed batching manager that the planner should use |
| [in] | _beliefModel | The pointer to the constructed C-space belief model that the planner should use |
| [in] | _selector | The pointer to the constructed edge selector that the planner should use. |
| [in] | _roadmapFileName | The 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] | _increment | The increment in the value of alpha after each POMP search |
| [in] | _pruneThreshold | The fractional change in cost above which pruning of samples should be done |
| 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.
| [in] | The | edge ID to check for |
| 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.
| [in] | e | The edge ID |
| 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.
| [in] | e | The edge ID to initialize with configurations |
| 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.
| [in] | u,v | The end-point vertices of the edge |
1.8.13