Robotics Library  0.6.2
Eet.h
Go to the documentation of this file.
1 //
2 // Copyright (c) 2009, Markus Rickert
3 // All rights reserved.
4 //
5 
6 #ifndef _RL_PLAN_EET_H_
7 #define _RL_PLAN_EET_H_
8 
9 #include <boost/random/mersenne_twister.hpp>
10 #include <boost/random/normal_distribution.hpp>
11 #include <boost/random/uniform_real.hpp>
12 #include <boost/random/variate_generator.hpp>
13 #include <rl/util/Timer.h>
14 
15 #include "RrtCon.h"
16 
17 namespace rl
18 {
19  namespace plan
20  {
21  class WorkspaceSphereExplorer;
22 
31  class Eet : public RrtCon
32  {
33  public:
35  {
38 
40  int goalFrame;
41 
44 
47  };
48 
49  Eet();
50 
51  virtual ~Eet();
52 
54 
55  virtual ::std::string getName() const;
56 
57  virtual ::std::size_t getNumEdges() const;
58 
59  virtual ::std::size_t getNumVertices() const;
60 
61  void getPath(VectorList& path);
62 
63  void seed(const ::boost::mt19937::result_type& value);
64 
65  void reset();
66 
67  bool solve();
68 
71 
74 
77 
78  ::std::vector< WorkspaceSphereExplorer* > explorers;
79 
80  ::std::vector< ExplorerSetup > explorersSetup;
81 
84 
87 
90 
93 
96 
97  protected:
98  using RrtCon::connect;
99 
100  using RrtCon::extend;
101 
102  using RrtCon::nearest;
103 
104  Edge addEdge(const Vertex& u, const Vertex& v, Tree& tree);
105 
107 
109 
111 
113 
115 
116  ::boost::variate_generator< ::boost::mt19937, ::boost::normal_distribution< ::rl::math::Real > > gauss;
117 
118  ::boost::variate_generator< ::boost::mt19937, ::boost::uniform_real< ::rl::math::Real > > rand;
119 
120  private:
122 
124  ::std::vector< Vertex > selected;
125 
127  };
128  }
129 }
130 
131 #endif // _RL_PLAN_EET_H_
rl::plan::Eet::getNumEdges
virtual ::std::size_t getNumEdges() const
Definition: Eet.cpp:248
RrtCon.h
rl::plan::Eet::rand
::boost::variate_generator< ::boost::mt19937, ::boost::uniform_real< ::rl::math::Real > > rand
Definition: Eet.h:118
rl::plan::Eet::Eet
Eet()
Definition: Eet.cpp:39
rl::plan::Eet::~Eet
virtual ~Eet()
Definition: Eet.cpp:65
rl::plan::Eet::exploration
::rl::util::Timer exploration
Definition: Eet.h:121
rl::plan::Eet::gamma
::rl::math::Real gamma
Initialization value for exploration/exploitation balance.
Definition: Eet.h:83
rl::plan::Eet::nearest
Neighbor nearest(const Tree &tree, const ::rl::math::Transform &chosen)
Definition: Eet.cpp:266
rl::plan::Eet::reset
void reset()
Reset planner.
Definition: Eet.cpp:285
rl::plan::Eet::distanceWeight
::rl::math::Real distanceWeight
Weight factor translation vs.
Definition: Eet.h:76
rl::plan::Eet::ExplorerSetup::goalFrame
int goalFrame
Goal frame for workspace explorer in goal configuration reference.
Definition: Eet.h:40
rl::plan::Eet::timer
::rl::util::Timer timer
Definition: Eet.h:126
rl::plan::Rrt::connect
virtual Vertex connect(Tree &tree, const Neighbor &nearest, const ::rl::math::Vector &chosen)
Definition: Rrt.cpp:149
rl::math::Vector3
::Eigen::Matrix< Real, 3, 1 > Vector3
Definition: Vector.h:45
rl::plan::Eet::alpha
::rl::math::Real alpha
Control increase/decrease of exploitation.
Definition: Eet.h:70
rl::plan::Eet::max
::rl::math::Vector3 max
Upper workspace limit for workspace frame sampling.
Definition: Eet.h:92
rl::plan::Eet::getExplorationTime
::rl::math::Real getExplorationTime() const
Definition: Eet.cpp:236
rl::plan::Eet::ExplorerSetup
Definition: Eet.h:35
rl::plan::Rrt::tree
::std::vector< Tree > tree
Definition: Rrt.h:191
rl::plan::Eet::goalEpsilon
::rl::math::Real goalEpsilon
Epsilon for goal state.
Definition: Eet.h:86
Timer.h
rl::plan::Eet::getNumVertices
virtual ::std::size_t getNumVertices() const
Definition: Eet.cpp:254
rl::plan::Rrt::Neighbor
::std::pair< Vertex, ::rl::math::Real > Neighbor
Definition: Rrt.h:169
rl::plan::Rrt::VertexBundle
Definition: Rrt.h:82
rl::plan::Eet::min
::rl::math::Vector3 min
Lower workspace limit for workspace frame sampling.
Definition: Eet.h:95
rl::plan::Eet::ExplorerSetup::startFrame
int startFrame
Start frame for workspace explorer in start configuration reference.
Definition: Eet.h:46
rl::plan::Rrt::Vertex
::boost::adjacency_list_traits< ::boost::listS, ::boost::listS, ::boost::bidirectionalS, ::boost::listS >::vertex_descriptor Vertex
Definition: Rrt.h:108
rl::plan::Eet::gauss
::boost::variate_generator< ::boost::mt19937, ::boost::normal_distribution< ::rl::math::Real > > gauss
Definition: Eet.h:116
rl::plan::Rrt::Edge
::boost::graph_traits< Tree >::edge_descriptor Edge
Definition: Rrt.h:159
rl::plan::Rrt::nearest
virtual Neighbor nearest(const Tree &tree, const ::rl::math::Vector &chosen)
Definition: Rrt.cpp:291
rl::plan::Eet::ExplorerSetup::startConfiguration
::rl::math::Vector * startConfiguration
Start configuration reference for workspace explorer setup.
Definition: Eet.h:43
rl::plan::VectorList
::std::list< ::rl::math::Vector > VectorList
Definition: VectorList.h:37
rl::plan::Eet::solve
bool solve()
Find collision free path.
Definition: Eet.cpp:305
rl::plan::Eet::explorers
::std::vector< WorkspaceSphereExplorer * > explorers
Definition: Eet.h:78
rl::plan::Eet::selected
::std::vector< Vertex > selected
Vertices for nearest neighbor search.
Definition: Eet.h:124
rl::plan::Rrt::extend
virtual Vertex extend(Tree &tree, const Neighbor &nearest, const ::rl::math::Vector &chosen)
Definition: Rrt.cpp:222
rl::math::Transform
::Eigen::Transform< Real, 3, ::Eigen::Affine > Transform
Definition: Transform.h:42
rl::plan::Rrt::Tree
::boost::adjacency_list< ::boost::listS, ::boost::listS, ::boost::bidirectionalS, VertexBundle, ::boost::no_property, TreeBundle > Tree
Definition: Rrt.h:92
rl::plan::Eet::distance
::rl::math::Real distance(const ::rl::math::Transform &t1, const ::rl::math::Transform &t2) const
Definition: Eet.cpp:131
rl::plan::Eet::extend
Vertex extend(Tree &tree, const Neighbor &nearest, const ::rl::math::Transform &chosen)
Definition: Eet.cpp:215
rl::plan::Eet::ExplorerSetup::goalConfiguration
::rl::math::Vector * goalConfiguration
Goal configuration reference for workspace explorer setup.
Definition: Eet.h:37
rl::plan::Eet::goalEpsilonUseOrientation
bool goalEpsilonUseOrientation
Include frame orientation in goal epsilon calculation.
Definition: Eet.h:89
rl::math::Vector
::Eigen::Matrix< Real, ::Eigen::Dynamic, 1 > Vector
Definition: Vector.h:41
rl::plan::RrtCon
Definition: RrtCon.h:37
rl::plan::Eet::getPath
void getPath(VectorList &path)
Get solution path.
Definition: Eet.cpp:260
rl::util::Timer
Definition: Timer.h:46
rl::math::Real
double Real
Definition: Real.h:34
rl::plan::Eet::seed
void seed(const ::boost::mt19937::result_type &value)
Definition: Eet.cpp:298
rl::plan::Eet::explorersSetup
::std::vector< ExplorerSetup > explorersSetup
Definition: Eet.h:80
rl::plan::Eet::alternativeDistanceComputation
bool alternativeDistanceComputation
Better performance in certain scenarios.
Definition: Eet.h:73
rl::plan::Eet::addEdge
Edge addEdge(const Vertex &u, const Vertex &v, Tree &tree)
Definition: Eet.cpp:70
rl::plan::Eet
Exploring/Exploiting Trees.
Definition: Eet.h:32
rl::plan::Eet::connect
Vertex connect(Tree &tree, const Neighbor &nearest, const ::rl::math::Transform &chosen)
Definition: Eet.cpp:83
rl::plan::Eet::expand
int expand(const VertexBundle &nearest, const ::rl::math::Transform &nearest2, const ::rl::math::Transform &chosen, const ::rl::math::Real &distance, VertexBundle &expanded)
Definition: Eet.cpp:146
rl::plan::Eet::getName
virtual ::std::string getName() const
Definition: Eet.cpp:242
rl
Definition: Ati.cpp:35