Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
PathEngine::RRT Class Reference

RRTアルゴリズム実装クラス More...

#include <RRT.h>

Inheritance diagram for PathEngine::RRT:
Inheritance graph
[legend]

Public Types

typedef boost::function1< bool, const Configuration & > extraConnectionCheckFunc
 

Public Member Functions

bool calcPath ()
 親クラスのドキュメントを参照 More...
 
void epsilon (double e)
 サンプリングしたコンフィギュレーションに向かって伸ばす距離を設定 More...
 
void extendFromGoal (bool b)
 ゴールからツリーをのばすか否かを設定 More...
 
void extendFromStart (bool b)
 スタートからツリーをのばすか否かを設定 More...
 
bool extendOneStep ()
 ツリーを伸ばす処理を1回だけ行う More...
 
void extractPath ()
 計画した経路を抽出し、path_にセットする More...
 
void extractPath (std::vector< Configuration > &o_path)
 計画した経路を抽出し、o_pathにセットする More...
 
RoadmapPtr getBackwardTree ()
 ゴールからのツリーを取得する More...
 
RoadmapPtr getForwardTree ()
 スタートからのツリーを取得する More...
 
RoadmapPtr getLastExtendedTree ()
 get a tree extened in the last phase More...
 
 RRT (PathPlanner *planner)
 コンストラクタ More...
 
void setBackwardTree (RoadmapPtr tree)
 ゴールからのツリーを設定する More...
 
void setExtraConnectionCheckFunc (extraConnectionCheckFunc i_func)
 スタートからのツリーとゴールからのツリーが接続できたかの追加チェックを行うユーザ関数を設定する More...
 
void setForwardTree (RoadmapPtr tree)
 スタートからのツリーを設定する More...
 
 ~RRT ()
 デストラクタ More...
 
- Public Member Functions inherited from PathEngine::Algorithm
 Algorithm (PathPlanner *planner)
 コンストラクタ More...
 
const std::vector< Configuration > & getPath ()
 結果を取得する More...
 
void getProperties (std::vector< std::string > &names, std::vector< std::string > &values)
 プロパティ一覧を取得する More...
 
RoadmapPtr getRoadmap ()
 ロードマップを取得する More...
 
void ignoreCollisionAtGoal (bool b)
 ゴールでの干渉を許容する場合はtrue、それ以外の場合はfalseを設定する。初期状態では許容しない。 More...
 
void ignoreCollisionAtStart (bool b)
 スタートでの干渉を許容する場合はtrue、それ以外の場合はfalseを設定する。初期状態では許容しない。 More...
 
bool preparePlanning ()
 経路計画の準備をし、初期位置と目標位置が有効なものであることをチェックする More...
 
void setGoalConfiguration (const Configuration &pos)
 終了位置を設定する More...
 
void setProperties (const std::map< std::string, std::string > &properties)
 アルゴリズムに対して各種情報を設定する More...
 
void setProperty (const std::string &key, const std::string &value)
 
void setStartConfiguration (const Configuration &pos)
 初期位置を設定する More...
 
void stopPlanning ()
 計算を止める More...
 
bool tryDirectConnection ()
 初期位置と終了位置を直接結べないか検査する More...
 
void verbose (bool b)
 デバッグ出力の制御 More...
 
virtual ~Algorithm ()
 デストラクタ More...
 

Private Types

enum  ExtendResult { Advanced, Trapped, Reached }
 

Private Member Functions

int connect (RoadmapPtr tree, const Configuration &qNew, bool reverse=false)
 RRT-connect の connect 関数。伸ばせなくなるまで extend する More...
 
int extend (RoadmapPtr tree, Configuration &qRand, bool reverse=false)
 ランダムな点に向かってツリーを伸ばす。 More...
 
void swapTrees ()
 

Private Attributes

double eps_
 
bool extendFromGoal_
 
bool extendFromStart_
 
extraConnectionCheckFunc extraConnectionCheckFunc_
 
RoadmapPtr Ta_
 ツリーの交換のために用いる変数。どちらか一方がTstart_をもう一方がTgoal_を指す More...
 
RoadmapPtr Tb_
 
RoadmapPtr Tgoal_
 RRT-connect において、終了位置からのツリー More...
 
int times_
 
RoadmapPtr TlastExtended_
 a tree extened in the last phase More...
 
RoadmapPtr Tstart_
 RRT-connect において、初期位置からのツリー More...
 

Additional Inherited Members

- Protected Attributes inherited from PathEngine::Algorithm
Configuration goal_
 終了位置 More...
 
bool ignoreCollisionAtGoal_
 
bool ignoreCollisionAtStart_
 
bool isRunning_
 計算中フラグ More...
 
std::vector< Configurationpath_
 計画された経路 More...
 
PathPlannerplanner_
 計画経路エンジン More...
 
std::map< std::string, std::string > properties_
 プロパティ More...
 
RoadmapPtr roadmap_
 ロードマップ More...
 
Configuration start_
 開始位置 More...
 
bool verbose_
 デバッグ出力の制御 More...
 

Detailed Description

RRTアルゴリズム実装クラス

Definition at line 18 of file RRT.h.

Member Typedef Documentation

スタートからのツリーとゴールからのツリーが接続できたかの追加チェックを行うユーザ関数。通常のチェックで接続できたとみなされるスタート側のコンフィギュレーションとゴール側のコンフィギュレーションを引数にとり、接続可能である場合にはtrueを、それ以外の場合はfalseを返す。

Definition at line 24 of file RRT.h.

Member Enumeration Documentation

extend()の結果

Enumerator
Advanced 

指定の位置に近づいた

Trapped 

干渉のため、近づくことができなかった

Reached 

指定の位置に到達した

Definition at line 30 of file RRT.h.

Constructor & Destructor Documentation

RRT::RRT ( PathPlanner planner)

コンストラクタ

Parameters
plannerパスプランナー

Definition at line 12 of file RRT.cpp.

RRT::~RRT ( )

デストラクタ

Definition at line 29 of file RRT.cpp.

Member Function Documentation

bool RRT::calcPath ( )
virtual

親クラスのドキュメントを参照

Implements PathEngine::Algorithm.

Definition at line 186 of file RRT.cpp.

int RRT::connect ( RoadmapPtr  tree,
const Configuration qNew,
bool  reverse = false 
)
private

RRT-connect の connect 関数。伸ばせなくなるまで extend する

Parameters
treeツリー
qNew伸ばす方向の点
ツリーから点に向かって伸ばす場合はfalse、逆はtrue
Returns
qNewにまで到達できなかった場合はTrapped, できた場合はReachedを返す

Definition at line 104 of file RRT.cpp.

void PathEngine::RRT::epsilon ( double  e)
inline

サンプリングしたコンフィギュレーションに向かって伸ばす距離を設定

Parameters
eサンプリングしたコンフィギュレーションに向かって伸ばす距離

Definition at line 180 of file RRT.h.

int RRT::extend ( RoadmapPtr  tree,
Configuration qRand,
bool  reverse = false 
)
private

ランダムな点に向かってツリーを伸ばす。

Parameters
treeツリー
qRandランダムな点
reverseツリーから点に向かって移動を試みる場合false、点からツリーへ移動を試みる場合はtrue
Returns
伸ばせなかった場合Trapped, eps_だけ伸ばせた場合Advanced, qRandに到達できた場合Readchedを返す。qRandは伸ばした先の点に書き換えられる

Definition at line 33 of file RRT.cpp.

void PathEngine::RRT::extendFromGoal ( bool  b)
inline

ゴールからツリーをのばすか否かを設定

Parameters
btrueでのばす

Definition at line 128 of file RRT.h.

void PathEngine::RRT::extendFromStart ( bool  b)
inline

スタートからツリーをのばすか否かを設定

Parameters
btrueでのばす

Definition at line 122 of file RRT.h.

bool RRT::extendOneStep ( )

ツリーを伸ばす処理を1回だけ行う

Returns
パスが見つかった場合true

Definition at line 154 of file RRT.cpp.

void RRT::extractPath ( )

計画した経路を抽出し、path_にセットする

Definition at line 117 of file RRT.cpp.

void RRT::extractPath ( std::vector< Configuration > &  o_path)

計画した経路を抽出し、o_pathにセットする

Definition at line 121 of file RRT.cpp.

RoadmapPtr PathEngine::RRT::getBackwardTree ( )
inline

ゴールからのツリーを取得する

Returns
ゴールからのツリー

Definition at line 156 of file RRT.h.

RoadmapPtr PathEngine::RRT::getForwardTree ( )
inline

スタートからのツリーを取得する

Returns
スタートからのツリー

Definition at line 144 of file RRT.h.

RoadmapPtr PathEngine::RRT::getLastExtendedTree ( )
inline

get a tree extened in the last phase

Returns
a tree extened in the last phase

Definition at line 162 of file RRT.h.

void RRT::setBackwardTree ( RoadmapPtr  tree)

ゴールからのツリーを設定する

Parameters
treeゴールからのツリー

Definition at line 238 of file RRT.cpp.

void RRT::setExtraConnectionCheckFunc ( extraConnectionCheckFunc  i_func)

スタートからのツリーとゴールからのツリーが接続できたかの追加チェックを行うユーザ関数を設定する

Parameters
i_funcユーザ関数

Definition at line 242 of file RRT.cpp.

void RRT::setForwardTree ( RoadmapPtr  tree)

スタートからのツリーを設定する

Parameters
treeスタートからのツリー

Definition at line 234 of file RRT.cpp.

void RRT::swapTrees ( )
private

Definition at line 227 of file RRT.cpp.

Member Data Documentation

double PathEngine::RRT::eps_
private

ランダムな点に向けてどれだけのばすか

Definition at line 79 of file RRT.h.

bool PathEngine::RRT::extendFromGoal_
private

ゴールからツリーをのばすか否か

Definition at line 94 of file RRT.h.

bool PathEngine::RRT::extendFromStart_
private

スタートからツリーをのばすか否か

Definition at line 89 of file RRT.h.

extraConnectionCheckFunc PathEngine::RRT::extraConnectionCheckFunc_
private

スタートからのツリーとゴールからのツリーが接続できたかの追加チェックを行うユーザ関数

Definition at line 99 of file RRT.h.

RoadmapPtr PathEngine::RRT::Ta_
private

ツリーの交換のために用いる変数。どちらか一方がTstart_をもう一方がTgoal_を指す

Definition at line 54 of file RRT.h.

RoadmapPtr PathEngine::RRT::Tb_
private

Definition at line 54 of file RRT.h.

RoadmapPtr PathEngine::RRT::Tgoal_
private

RRT-connect において、終了位置からのツリー

Definition at line 44 of file RRT.h.

int PathEngine::RRT::times_
private

ツリーを作成する最大試行回数

Definition at line 84 of file RRT.h.

RoadmapPtr PathEngine::RRT::TlastExtended_
private

a tree extened in the last phase

Definition at line 49 of file RRT.h.

RoadmapPtr PathEngine::RRT::Tstart_
private

RRT-connect において、初期位置からのツリー

Definition at line 39 of file RRT.h.


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


openhrp3
Author(s): AIST, General Robotix Inc., Nakamura Lab of Dept. of Mechano Informatics at University of Tokyo
autogenerated on Sat May 8 2021 02:42:45