Robotics Library  0.7.0
Classes | Public Member Functions | Private Member Functions | Private Attributes | List of all members
rl::plan::PrmUtilityGuided Class Reference

Probabilistic Roadmaps with Utility-Guided Sampling. More...

#include <PrmUtilityGuided.h>

Inheritance diagram for rl::plan::PrmUtilityGuided:
Inheritance graph


struct  CompareSample
 A compare structure for nearest neighbor sorting. More...
class  Sample

Public Member Functions

 PrmUtilityGuided ()
virtual ~PrmUtilityGuided ()
void construct (const ::std::size_t &steps)
::std::string getName () const
void seed (const ::std::mt19937::result_type &value)
bool solve ()
 Find collision free path. More...
- Public Member Functions inherited from rl::plan::Prm
 Prm ()
virtual ~Prm ()
NearestNeighborsgetNearestNeighbors () const
::std::size_t getNumEdges () const
::std::size_t getNumVertices () const
VectorList getPath ()
 Get solution path. More...
void reset ()
 Reset planner. More...
void setNearestNeighbors (NearestNeighbors *nearestNeighbors)
- Public Member Functions inherited from rl::plan::Planner
 Planner ()
virtual ~Planner ()
bool verify ()
 Vertify that start and goal configuration are within joint limits and collision free. More...

Private Member Functions

void generateEntropyGuidedSample (::rl::math::Vector &q)
 Samples a point near the middle (+/- variance) of two random nodes from unconnected components of the graph. More...
::rl::math::Real getFreeProbability (const Sample &sample)
 Get an estimated probability that a sample is not colliding with the scene. More...
::std::uniform_real_distribution< ::rl::math::Real >::result_type rand ()

Private Attributes

::std::size_t numNeighbors
::std::size_t numSamples
::std::uniform_real_distribution< ::rl::math::RealrandDistribution
::std::mt19937 randEngine
::std::vector< Samplesamples
::rl::math::Real variance

Additional Inherited Members

- Public Attributes inherited from rl::plan::Prm
::std::size_t degree
 Maximum degree per vertex. More...
::std::size_t k
 Maximum number of tested neighbors. More...
::rl::math::Real radius
 Maximum radius for connecting neighbors. More...
- Public Attributes inherited from rl::plan::Planner
::std::chrono::steady_clock::duration duration
 Upper bound for search. More...
 Goal configuration. More...
 Start configuration. More...
- Protected Types inherited from rl::plan::Prm
typedef ::boost::adjacency_list_traits< ::boost::listS, ::boost::listS, ::boost::undirectedS, ::boost::listS >::vertex_descriptor Vertex
typedef ::boost::adjacency_list< ::boost::listS, ::boost::listS, ::boost::undirectedS, VertexBundle, EdgeBundle, GraphBundleGraph
typedef ::boost::graph_traits< Graph >::edge_descriptor Edge
typedef ::boost::graph_traits< Graph >::edge_iterator EdgeIterator
typedef ::std::pair< EdgeIterator, EdgeIteratorEdgeIteratorPair
typedef NearestNeighbors::Neighbor Neighbor
typedef ::boost::graph_traits< Graph >::vertex_iterator VertexIterator
typedef ::std::pair< VertexIterator, VertexIteratorVertexIteratorPair
typedef ::boost::property_map< Graph, void *VertexBundle::* >::type VertexParentMap
typedef ::boost::property_map< Graph, ::std::size_t VertexBundle::* >::type VertexRankMap
- Protected Member Functions inherited from rl::plan::Prm
Edge addEdge (const Vertex &u, const Vertex &v, const ::rl::math::Real &weight)
Vertex addVertex (const VectorPtr &q)
void insert (const Vertex &vertex)
- Protected Attributes inherited from rl::plan::Prm
Vertex begin
::boost::disjoint_sets< VertexRankMap, VertexParentMapds
Vertex end
Graph graph
- Protected Attributes inherited from rl::plan::Planner
::std::chrono::steady_clock::time_point time

Detailed Description

Probabilistic Roadmaps with Utility-Guided Sampling.

Brendan Burns and Oliver Brock. Toward optimal configuration space sampling. In Proceedings of the Robotics Science and Systems Conference, Cambridge, MA, USA, June 2005.

Constructor & Destructor Documentation

◆ PrmUtilityGuided()

rl::plan::PrmUtilityGuided::PrmUtilityGuided ( )

◆ ~PrmUtilityGuided()

rl::plan::PrmUtilityGuided::~PrmUtilityGuided ( )

Member Function Documentation

◆ construct()

void rl::plan::PrmUtilityGuided::construct ( const ::std::size_t &  steps)

Reimplemented from rl::plan::Prm.

◆ generateEntropyGuidedSample()

void rl::plan::PrmUtilityGuided::generateEntropyGuidedSample ( ::rl::math::Vector q)

Samples a point near the middle (+/- variance) of two random nodes from unconnected components of the graph.

◆ getFreeProbability()

rl::math::Real rl::plan::PrmUtilityGuided::getFreeProbability ( const Sample sample)

Get an estimated probability that a sample is not colliding with the scene.

Here we look how many of the numNeigbors nearest neighbors of the sample are colliding and return "#ofFreeNeighbors"/"#Neighbors".

◆ getName()

std::string rl::plan::PrmUtilityGuided::getName ( ) const

Reimplemented from rl::plan::Prm.

◆ rand()

std::uniform_real_distribution<::rl::math::Real >::result_type rl::plan::PrmUtilityGuided::rand ( )

◆ seed()

void rl::plan::PrmUtilityGuided::seed ( const ::std::mt19937::result_type &  value)

◆ solve()

bool rl::plan::PrmUtilityGuided::solve ( )

Find collision free path.

Reimplemented from rl::plan::Prm.

Member Data Documentation

◆ numNeighbors

::std::size_t rl::plan::PrmUtilityGuided::numNeighbors

◆ numSamples

::std::size_t rl::plan::PrmUtilityGuided::numSamples

◆ randDistribution

::std::uniform_real_distribution< ::rl::math::Real> rl::plan::PrmUtilityGuided::randDistribution

◆ randEngine

::std::mt19937 rl::plan::PrmUtilityGuided::randEngine

◆ samples

::std::vector<Sample> rl::plan::PrmUtilityGuided::samples

◆ variance

::rl::math::Real rl::plan::PrmUtilityGuided::variance

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