RRT.h
Go to the documentation of this file.
1 #ifndef __RRT_H__
2 #define __RRT_H__
3 
4 #include <vector>
5 #include <string>
6 #include <iostream>
7 #include <stdio.h>
8 
9 #include "PathPlanner.h"
10 #include "Algorithm.h"
11 #include "Roadmap.h"
12 
13 namespace PathEngine {
14 
18  class RRT
19  : public Algorithm {
20  public:
24  typedef boost::function1<bool, const Configuration &> extraConnectionCheckFunc;
25 
26  private:
30  enum ExtendResult {
34  };
35 
40 
45 
50 
55 
63  int extend(RoadmapPtr tree, Configuration& qRand, bool reverse=false);
64 
72  int connect(RoadmapPtr tree, const Configuration& qNew, bool reverse=false);
73 
74  void swapTrees();
75 
79  double eps_;
80 
84  int times_;
85 
90 
95 
99  extraConnectionCheckFunc extraConnectionCheckFunc_;
100 
101  public:
106  RRT(PathPlanner* planner);
107 
111  ~RRT();
112 
116  bool calcPath();
117 
122  void extendFromStart(bool b) { extendFromStart_ = b; }
123 
128  void extendFromGoal(bool b) { extendFromGoal_ = b; }
129 
133  void extractPath();
134 
138  void extractPath(std::vector<Configuration>& o_path);
139 
145 
150  void setForwardTree(RoadmapPtr tree);
151 
157 
163 
168  void setBackwardTree(RoadmapPtr tree);
169 
174  bool extendOneStep();
175 
180  void epsilon(double e) { eps_ = e; }
181 
186  void setExtraConnectionCheckFunc(extraConnectionCheckFunc i_func);
187  };
188 };
189 
190 
191 #endif // __RRT_H__
int times_
Definition: RRT.h:84
RRTアルゴリズム実装クラス
Definition: RRT.h:18
~RRT()
デストラクタ
Definition: RRT.cpp:29
干渉のため、近づくことができなかった
Definition: RRT.h:32
void extendFromStart(bool b)
スタートからツリーをのばすか否かを設定
Definition: RRT.h:122
RoadmapPtr Tb_
Definition: RRT.h:54
void extendFromGoal(bool b)
ゴールからツリーをのばすか否かを設定
Definition: RRT.h:128
bool extendFromGoal_
Definition: RRT.h:94
RoadmapPtr Tstart_
RRT-connect において、初期位置からのツリー
Definition: RRT.h:39
RoadmapPtr Tgoal_
RRT-connect において、終了位置からのツリー
Definition: RRT.h:44
long b
Definition: jpegint.h:371
extraConnectionCheckFunc extraConnectionCheckFunc_
Definition: RRT.h:99
int connect(RoadmapPtr tree, const Configuration &qNew, bool reverse=false)
RRT-connect の connect 関数。伸ばせなくなるまで extend する
Definition: RRT.cpp:104
void extractPath()
計画した経路を抽出し、path_にセットする
Definition: RRT.cpp:117
int extend(RoadmapPtr tree, Configuration &qRand, bool reverse=false)
ランダムな点に向かってツリーを伸ばす。
Definition: RRT.cpp:33
void setBackwardTree(RoadmapPtr tree)
ゴールからのツリーを設定する
Definition: RRT.cpp:238
RoadmapPtr TlastExtended_
a tree extened in the last phase
Definition: RRT.h:49
RRT(PathPlanner *planner)
コンストラクタ
Definition: RRT.cpp:12
RoadmapPtr getLastExtendedTree()
get a tree extened in the last phase
Definition: RRT.h:162
指定の位置に近づいた
Definition: RRT.h:31
boost::function1< bool, const Configuration & > extraConnectionCheckFunc
Definition: RRT.h:24
bool extendFromStart_
Definition: RRT.h:89
void swapTrees()
Definition: RRT.cpp:227
経路計画アルゴリズム基底クラス
Definition: Algorithm.h:23
RoadmapPtr getForwardTree()
スタートからのツリーを取得する
Definition: RRT.h:144
RoadmapPtr Ta_
ツリーの交換のために用いる変数。どちらか一方がTstart_をもう一方がTgoal_を指す
Definition: RRT.h:54
RoadmapPtr getBackwardTree()
ゴールからのツリーを取得する
Definition: RRT.h:156
double eps_
Definition: RRT.h:79
void setExtraConnectionCheckFunc(extraConnectionCheckFunc i_func)
スタートからのツリーとゴールからのツリーが接続できたかの追加チェックを行うユーザ関数を設定する ...
Definition: RRT.cpp:242
void epsilon(double e)
サンプリングしたコンフィギュレーションに向かって伸ばす距離を設定
Definition: RRT.h:180
指定の位置に到達した
Definition: RRT.h:33
boost::shared_ptr< Roadmap > RoadmapPtr
Definition: Roadmap.h:13
void setForwardTree(RoadmapPtr tree)
スタートからのツリーを設定する
Definition: RRT.cpp:234
bool calcPath()
親クラスのドキュメントを参照
Definition: RRT.cpp:186
bool extendOneStep()
ツリーを伸ばす処理を1回だけ行う
Definition: RRT.cpp:154


openhrp3
Author(s): AIST, General Robotix Inc., Nakamura Lab of Dept. of Mechano Informatics at University of Tokyo
autogenerated on Thu Sep 8 2022 02:24:05