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
[legend]

Classes

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...
 
Samplersampler
 
Verifierverifier
 
- Public Attributes inherited from rl::plan::Planner
::std::chrono::steady_clock::duration duration
 Upper bound for search. More...
 
::rl::math::Vectorgoal
 Goal configuration. More...
 
SimpleModelmodel
 
::rl::math::Vectorstart
 Start configuration. More...
 
Viewerviewer
 
- 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.

http://www.roboticsproceedings.org/rss01/p15.pdf

Constructor & Destructor Documentation

◆ PrmUtilityGuided()

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

◆ ~PrmUtilityGuided()

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

Member Function Documentation

◆ construct()

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

Reimplemented from rl::plan::Prm.

◆ generateEntropyGuidedSample()

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

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)
private

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
virtual

Reimplemented from rl::plan::Prm.

◆ rand()

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

◆ seed()

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

◆ solve()

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

Find collision free path.

Reimplemented from rl::plan::Prm.

Member Data Documentation

◆ numNeighbors

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

◆ numSamples

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

◆ randDistribution

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

◆ randEngine

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

◆ samples

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

◆ variance

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

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