Mobility.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 
3 #ifndef __MOBILITY_H__
4 #define __MOBILITY_H__
5 
6 #include <vector>
7 #include "Configuration.h"
8 
9 namespace PathEngine {
10  class PathPlanner;
11 
20  class Mobility {
21  protected:
29  public:
34  Mobility(PathPlanner* planner) {planner_ = planner;}
35 
39  virtual ~Mobility() {;}
40 
49  virtual bool getPath(Configuration &from, Configuration &to,
50  std::vector<Configuration> &o_path) const;
51 
56  virtual bool isReversible() const = 0;
57 
62  bool isReachable(Configuration& from, Configuration& to, bool checkCollision=true) const;
63 
71  virtual Configuration interpolate(const Configuration& from, const Configuration& to, double ratio) const = 0;
72 
79  virtual double distance(const Configuration& from, const Configuration& to) const = 0;
84  static void interpolationDistance(double d) { interpolationDistance_ = d;}
85 
90  static double interpolationDistance() { return interpolationDistance_;}
91  private:
95  static double interpolationDistance_;
96  };
97 
101  typedef Mobility* (*MobilityNewFunc)(PathPlanner* planner);
102 
106  typedef void (*MobilityDeleteFunc)(Mobility* mobility);
107 
111  template <class _New>
113  return new _New(planner);
114  }
115 
119  template <class _Delete>
120  void MobilityDelete(Mobility* mobility) {
121  delete mobility;
122  }
123 };
124 #endif // __MOBILITY_H__
static void interpolationDistance(double d)
補間時の隣接する2点間の最大距離を設定する
Definition: Mobility.h:84
virtual double distance(const Configuration &from, const Configuration &to) const =0
static double interpolationDistance()
補間時の隣接する2点間の最大距離を取得する
Definition: Mobility.h:90
static double interpolationDistance_
補間時の隣接する2点間の最大距離
Definition: Mobility.h:95
void(* MobilityDeleteFunc)(Mobility *mobility)
移動アルゴリズム解放関数
Definition: Mobility.h:106
PathPlanner * planner_
計画経路エンジン
Definition: Mobility.h:28
移動アルゴリズム実装用抽象クラス
Definition: Mobility.h:20
virtual bool getPath(Configuration &from, Configuration &to, std::vector< Configuration > &o_path) const
開始位置から目標地点への移動を補間して生成された姿勢列を取得する。
Definition: Mobility.cpp:26
void MobilityDelete(Mobility *mobility)
移動アルゴリズム解放関数生成テンプレート
Definition: Mobility.h:120
typedef void(PNGAPI *png_error_ptr) PNGARG((png_structp
bool isReachable(Configuration &from, Configuration &to, bool checkCollision=true) const
fromからtoへ干渉なしに移動可能であるかどうか
Definition: Mobility.cpp:8
virtual bool isReversible() const =0
この移動アルゴリズムでA→Bへ移動可能である時に、B→Aが同じ経路で移動可能であるかどうか ...
virtual ~Mobility()
デストラクタ
Definition: Mobility.h:39
Mobility * MobilityCreate(PathPlanner *planner)
移動アルゴリズム生成関数生成テンプレート
Definition: Mobility.h:112
Mobility(PathPlanner *planner)
コンストラクタ
Definition: Mobility.h:34
virtual Configuration interpolate(const Configuration &from, const Configuration &to, double ratio) const =0


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