Algorithm.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 
3 #ifndef __ALGORITHM_H__
4 #define __ALGORITHM_H__
5 
6 #include <map>
7 #include <vector>
8 #include <iostream>
9 
10 #include "Configuration.h"
11 #include "Roadmap.h"
12 
13 namespace PathEngine {
14  class PathPlanner;
15 
23  class Algorithm {
24  protected:
31 
38 
44  std::map<std::string, std::string> properties_;
45 
51  bool isRunning_;
52 
58  std::vector<Configuration> path_;
59 
67 
72 
76  bool verbose_;
77 
82 
87 
88  public:
93  Algorithm(PathPlanner* planner);
94 
98  virtual ~Algorithm();
99 
100  void setProperty(const std::string& key, const std::string& value);
101 
106  void setProperties(const std::map<std::string, std::string> &properties);
107 
113  void getProperties(std::vector<std::string> &names,
114  std::vector<std::string> &values);
115 
120  void setStartConfiguration(const Configuration &pos) {start_ = pos;}
121 
126  void setGoalConfiguration(const Configuration &pos) {goal_ = pos;}
127 
132  bool tryDirectConnection();
133 
142  virtual bool calcPath() = 0;
143 
147  void stopPlanning(){isRunning_ = false;}
148 
153  const std::vector<Configuration>& getPath() {return path_;}
154 
160 
165  bool preparePlanning();
166 
171  void verbose(bool b) { verbose_ = b; }
172 
176  void ignoreCollisionAtGoal(bool b) { ignoreCollisionAtGoal_ = b; }
177 
181  void ignoreCollisionAtStart(bool b) { ignoreCollisionAtStart_ = b; }
182  };
183 
187  typedef Algorithm* (*AlgorithmNewFunc)(PathPlanner* planner);
188 
192  typedef void (*AlgorithmDeleteFunc)(Algorithm* algorithm);
193 
194  template <class _New>
196  return new _New(planner);
197  }
198 
199  template <class _Delete>
200  void AlgorithmDelete(Algorithm* algorithm) {
201  delete algorithm;
202  }
203 };
204 
205 #endif // __ALGORITHM_H__
bool preparePlanning()
経路計画の準備をし、初期位置と目標位置が有効なものであることをチェックする
Definition: Algorithm.cpp:64
void setProperties(const std::map< std::string, std::string > &properties)
アルゴリズムに対して各種情報を設定する
Definition: Algorithm.cpp:27
RoadmapPtr roadmap_
ロードマップ
Definition: Algorithm.h:71
void getProperties(std::vector< std::string > &names, std::vector< std::string > &values)
プロパティ一覧を取得する
Definition: Algorithm.cpp:37
Configuration goal_
終了位置
Definition: Algorithm.h:37
virtual ~Algorithm()
デストラクタ
Definition: Algorithm.cpp:18
bool tryDirectConnection()
初期位置と終了位置を直接結べないか検査する
Definition: Algorithm.cpp:51
png_voidp int value
Definition: png.h:2113
bool isRunning_
計算中フラグ
Definition: Algorithm.h:51
Algorithm * AlgorithmCreate(PathPlanner *planner)
Definition: Algorithm.h:195
long b
Definition: jpegint.h:371
bool verbose_
デバッグ出力の制御
Definition: Algorithm.h:76
std::map< std::string, std::string > properties_
プロパティ
Definition: Algorithm.h:44
void verbose(bool b)
デバッグ出力の制御
Definition: Algorithm.h:171
void ignoreCollisionAtStart(bool b)
スタートでの干渉を許容する場合はtrue、それ以外の場合はfalseを設定する。初期状態では許容しない。 ...
Definition: Algorithm.h:181
typedef void(PNGAPI *png_error_ptr) PNGARG((png_structp
std::vector< Configuration > path_
計画された経路
Definition: Algorithm.h:58
bool ignoreCollisionAtStart_
Definition: Algorithm.h:81
void setProperty(const std::string &key, const std::string &value)
Definition: Algorithm.cpp:22
RoadmapPtr getRoadmap()
ロードマップを取得する
Definition: Algorithm.h:159
void ignoreCollisionAtGoal(bool b)
ゴールでの干渉を許容する場合はtrue、それ以外の場合はfalseを設定する。初期状態では許容しない。 ...
Definition: Algorithm.h:176
void stopPlanning()
計算を止める
Definition: Algorithm.h:147
const std::vector< Configuration > & getPath()
結果を取得する
Definition: Algorithm.h:153
経路計画アルゴリズム基底クラス
Definition: Algorithm.h:23
PathPlanner * planner_
計画経路エンジン
Definition: Algorithm.h:66
void setGoalConfiguration(const Configuration &pos)
終了位置を設定する
Definition: Algorithm.h:126
Algorithm(PathPlanner *planner)
コンストラクタ
Definition: Algorithm.cpp:9
void AlgorithmDelete(Algorithm *algorithm)
Definition: Algorithm.h:200
boost::shared_ptr< Roadmap > RoadmapPtr
Definition: Roadmap.h:13
void setStartConfiguration(const Configuration &pos)
初期位置を設定する
Definition: Algorithm.h:120
void(* AlgorithmDeleteFunc)(Algorithm *algorithm)
Definition: Algorithm.h:192
Configuration start_
開始位置
Definition: Algorithm.h:30
virtual bool calcPath()=0
経路計画を実行する


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:02