|
Robotics Library
0.6.2
|
Go to the documentation of this file.
27 #ifndef _RL_PLAN_PRM_H_
28 #define _RL_PLAN_PRM_H_
31 #include <boost/graph/adjacency_list.hpp>
32 #include <boost/pending/disjoint_sets.hpp>
33 #include <CGAL/Search_traits.h>
57 virtual void construct(const ::std::size_t& steps);
59 virtual ::std::string
getName()
const;
95 typedef ::boost::adjacency_list_traits<
117 typedef ::boost::adjacency_list<
120 ::boost::undirectedS,
126 typedef ::std::pair< const ::rl::math::Vector*, Vertex >
QueryItem;
160 typedef ::CGAL::Search_traits< ::rl::math::Real, QueryItem, const ::rl::math::Real*, CartesianIterator >
SearchTraits;
175 typedef ::boost::graph_traits< Graph >::edge_descriptor
Edge;
187 typedef ::boost::property_map< Graph, ::std::size_t VertexBundle::* >::type
VertexRankMap;
189 typedef ::std::pair< Vertex, ::rl::math::Real >
Neighbor;
208 ::boost::disjoint_sets< VertexRankMap, VertexParentMap >
ds;
220 #endif // _RL_PLAN_PRM_H_
const ::rl::math::Real * operator()(const QueryItem &p) const
Definition: Prm.cpp:332
::boost::property_map< Graph, void *VertexBundle::* >::type VertexParentMap
Definition: Prm.h:185
::rl::math::Real radius
Maximum radius for connecting neighbors.
Definition: Prm.h:81
::std::pair< EdgeIterator, EdgeIterator > EdgeIteratorPair
Definition: Prm.h:179
::boost::shared_ptr< ::rl::math::Vector > VectorPtr
Definition: VectorPtr.h:37
Definition: Orthogonal_k_neighbor_search.h:37
Vertex parent
Definition: Prm.h:108
::rl::math::Real transformed_distance(const ::rl::math::Real &d) const
Definition: Prm.cpp:412
NeighborSearch::Tree NeighborSearchTree
Definition: Prm.h:164
::rl::math::Real max_distance_to_rectangle(const Query_item &q, const ::CGAL::Kd_tree_rectangle< SearchTraits > &r) const
Definition: Verifier.h:39
Sampler * sampler
Definition: Prm.h:83
bool operator()(const Neighbor &x, const Neighbor &y) const
Definition: Prm.cpp:344
::std::pair< Vertex, ::rl::math::Real > Neighbor
Definition: Prm.h:189
::std::vector< NeighborSearchTreePtr > NearestNeighbors
Definition: Prm.h:168
virtual ::std::string getName() const
Definition: Prm.cpp:146
::std::size_t rank
Definition: Prm.h:114
::boost::graph_traits< Graph >::vertex_iterator VertexIterator
Definition: Prm.h:181
::boost::property_map< Graph, ::std::size_t VertexBundle::* >::type VertexRankMap
Definition: Prm.h:187
::std::priority_queue< Neighbor, ::std::vector< Neighbor >, Compare > NeighborQueue
Definition: Prm.h:196
void getPath(VectorList &path)
Get solution path.
Definition: Prm.cpp:176
::std::size_t degree
Maximum degree per vertex.
Definition: Prm.h:72
::boost::shared_ptr< NeighborSearchTree > NeighborSearchTreePtr
Definition: Prm.h:166
::boost::disjoint_sets< VertexRankMap, VertexParentMap > ds
Definition: Prm.h:208
::boost::graph_traits< Graph >::edge_iterator EdgeIterator
Definition: Prm.h:177
::rl::math::Real min_distance_to_rectangle(const Query_item &q, const ::CGAL::Kd_tree_rectangle< SearchTraits > &r) const
Verifier * verifier
Definition: Prm.h:85
::std::pair< const ::rl::math::Vector *, Vertex > QueryItem
Definition: Prm.h:126
::std::size_t k
Maximum number of tested neighbors.
Definition: Prm.h:75
::boost::adjacency_list< ::boost::listS, ::boost::listS, ::boost::undirectedS, VertexBundle, EdgeBundle, GraphBundle > Graph
Definition: Prm.h:124
Vertex addVertex(const VectorPtr &q)
Definition: Prm.cpp:118
::rl::math::Real weight
Definition: Prm.h:90
Model * model
Definition: Prm.h:157
virtual void construct(const ::std::size_t &steps)
Definition: Prm.cpp:134
Graph graph
Definition: Prm.h:212
Prm()
Definition: Prm.cpp:43
VectorPtr q
Definition: Prm.h:112
void insert(const Vertex &vertex)
Definition: Prm.cpp:190
void reset()
Reset planner.
Definition: Prm.cpp:282
::std::pair< VertexIterator, VertexIterator > VertexIteratorPair
Definition: Prm.h:183
typedefconst ::rl::math::Real * result_type
Definition: Prm.h:130
::std::list< ::rl::math::Vector > VectorList
Definition: VectorList.h:37
NearestNeighbors nn
Definition: Prm.h:172
::rl::math::Real distance
Definition: Prm.h:104
Vertex predecessor
Definition: Prm.h:110
bool kd
Use kd-tree for nearest neighbor search instead of brute-force.
Definition: Prm.h:78
QueryItem Query_item
Definition: Prm.h:139
Probabilistic Roadmap.
Definition: Prm.h:51
::std::size_t getNumEdges() const
Definition: Prm.cpp:164
Distance()
Definition: Prm.cpp:349
void addPoint(NearestNeighbors &nn, const QueryItem &p)
Definition: Prm.cpp:82
::boost::adjacency_list_traits< ::boost::listS, ::boost::listS, ::boost::undirectedS, ::boost::listS >::vertex_descriptor Vertex
Definition: Prm.h:93
::std::size_t index
Definition: Prm.h:106
Vertex end
Definition: Prm.h:210
bool solve()
Find collision free path.
Definition: Prm.cpp:291
Vertex begin
Definition: Prm.h:206
Orthogonal_k_neighbor_search< SearchTraits, Distance > NeighborSearch
Definition: Prm.h:162
Edge addEdge(const Vertex &u, const Vertex &v, const ::rl::math::Real &weight)
Definition: Prm.cpp:66
double Real
Definition: Real.h:34
::std::size_t getNumVertices() const
Definition: Prm.cpp:170
::boost::graph_traits< Graph >::edge_descriptor Edge
Definition: Prm.h:175
::CGAL::Search_traits< ::rl::math::Real, QueryItem, const ::rl::math::Real *, CartesianIterator > SearchTraits
Definition: Prm.h:160
::rl::math::Real new_distance(const ::rl::math::Real &dist, const ::rl::math::Real &old_off, const ::rl::math::Real &new_off, const int &cutting_dimension) const
Definition: Prm.cpp:406
virtual ~Prm()
Definition: Prm.cpp:61