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__
PathEngine::Mobility::~Mobility
virtual ~Mobility()
デストラクタ
Definition: Mobility.h:39
PathEngine::Mobility::interpolate
virtual Configuration interpolate(const Configuration &from, const Configuration &to, double ratio) const =0
PathEngine::Mobility::interpolationDistance
static void interpolationDistance(double d)
補間時の隣接する2点間の最大距離を設定する
Definition: Mobility.h:84
PathEngine::Mobility::distance
virtual double distance(const Configuration &from, const Configuration &to) const =0
PathEngine::Mobility::planner_
PathPlanner * planner_
計画経路エンジン
Definition: Mobility.h:28
PathEngine::Mobility
移動アルゴリズム実装用抽象クラス
Definition: Mobility.h:20
PathEngine::Mobility::interpolationDistance
static double interpolationDistance()
補間時の隣接する2点間の最大距離を取得する
Definition: Mobility.h:90
PathEngine::Mobility::interpolationDistance_
static double interpolationDistance_
補間時の隣接する2点間の最大距離
Definition: Mobility.h:95
PathEngine::MobilityDeleteFunc
void(* MobilityDeleteFunc)(Mobility *mobility)
移動アルゴリズム解放関数
Definition: Mobility.h:106
PathEngine::PathPlanner
計画経路エンジン
Definition: hrplib/hrpPlanner/PathPlanner.h:44
PathEngine::MobilityDelete
void MobilityDelete(Mobility *mobility)
移動アルゴリズム解放関数生成テンプレート
Definition: Mobility.h:120
PathEngine::Mobility::getPath
virtual bool getPath(Configuration &from, Configuration &to, std::vector< Configuration > &o_path) const
開始位置から目標地点への移動を補間して生成された姿勢列を取得する。
Definition: Mobility.cpp:26
PathEngine
Definition: Algorithm.h:13
PathEngine::MobilityCreate
Mobility * MobilityCreate(PathPlanner *planner)
移動アルゴリズム生成関数生成テンプレート
Definition: Mobility.h:112
PathEngine::Mobility::isReachable
bool isReachable(Configuration &from, Configuration &to, bool checkCollision=true) const
fromからtoへ干渉なしに移動可能であるかどうか
Definition: Mobility.cpp:8
void
typedef void(PNGAPI *png_error_ptr) PNGARG((png_structp
PathEngine::Mobility::Mobility
Mobility(PathPlanner *planner)
コンストラクタ
Definition: Mobility.h:34
PathEngine::Mobility::isReversible
virtual bool isReversible() const =0
この移動アルゴリズムでA→Bへ移動可能である時に、B→Aが同じ経路で移動可能であるかどうか
Configuration.h
PathEngine::Configuration
Definition: Configuration.h:10


openhrp3
Author(s): AIST, General Robotix Inc., Nakamura Lab of Dept. of Mechano Informatics at University of Tokyo
autogenerated on Wed Sep 7 2022 02:51:03