3 #ifndef __PATH_PLANNER_H__ 4 #define __PATH_PLANNER_H__ 10 #include <boost/function.hpp> 24 #include <hrpCorba/ModelLoader.hh> 25 #include <hrpCorba/CollisionDetector.hh> 26 #include <hrpCorba/OnlineViewer.hh> 37 typedef boost::function2<bool, PathPlanner *, const Configuration &>
applyConfigFunc;
38 typedef boost::shared_ptr<hrp::World<hrp::ConstraintForceSolver> >
WorldPtr;
48 typedef std::map<const std::string, std::pair<AlgorithmNewFunc, AlgorithmDeleteFunc> >
AlgorithmFactory;
55 typedef std::map<std::string, std::pair<MobilityNewFunc, MobilityDeleteFunc> >
MobilityFactory;
62 typedef std::map<std::string, std::pair<OptimizerNewFunc, OptimizerDeleteFunc> >
OptimizerFactory;
126 template<
typename X,
typename X_ptr>
151 void _setupCharacterData();
152 void _updateCharacterPositions();
165 bool defaultCheckCollision();
183 void setApplyConfigFunc(applyConfigFunc i_func);
202 void setPointCloud(
const std::vector<hrp::Vector3>& i_cloud,
double i_radius);
212 bool isDebugMode =
false);
250 void initPlanner(
const std::string &nameServer);
257 hrp::BodyPtr registerCharacter(
const char*
name,OpenHRP::BodyInfo_ptr cInfo);
279 void setCharacterPosition(
const char* character,
280 const OpenHRP::DblSequence& pos);
290 void registerIntersectionCheckPair(
const char* char1,
294 CORBA::Double tolerance);
300 void initSimulation();
307 void getMobilityNames(std::vector<std::string> &mobilitys);
314 void getAlgorithmNames(std::vector<std::string> &algorithms);
321 void getOptimizerNames(std::vector<std::string> &optimizers);
330 bool getProperties(
const std::string &algorithm,
331 std::vector<std::string> &names,
332 std::vector<std::string> &values);
338 void setRobotName(
const std::string &model);
345 void setAlgorithmName(
const std::string &algorithm);
353 bool setMobilityName(
const std::string &mobility);
393 std::vector<Configuration> getPath();
399 std::vector<Configuration>& getWayPoints();
423 bool checkCollision();
436 bool checkCollision(
const std::vector<Configuration> &
path);
449 bool optimize(
const std::string& optimizer);
461 double timeCollisionCheck()
const;
463 double timeForwardKinematics()
const;
467 const std::pair<std::string, std::string> &
collidingPair() {
return collidingPair_; }
470 customCollisionDetector_ = i_cd;
474 #endif // __PATH_PLANNER_H__ void setDebug(bool debug)
デバッグモードの変更
void setProperties(const std::map< std::string, std::string > &properties)
アルゴリズムに対して各種情報を設定する
std::vector< hrp::Vector3 > pointCloud_
void(* OptimizerDeleteFunc)(Optimizer *optimizer)
std::vector< hrp::ColdetModelPair > checkPairs_
CollisionDetector * customCollisionDetector_
double radius_
radius of spheres assigned to points
void(* MobilityDeleteFunc)(Mobility *mobility)
移動アルゴリズム解放関数
applyConfigFunc m_applyConfigFunc
ConfigurationSpace * getConfigurationSpace()
コンフィギュレーション空間設定を取得する
void boundingBoxMode(bool mode)
std::vector< Configuration > path_
経路
OptimizerFactory::value_type OptimizerFactoryValueType
png_infop png_charpp name
void setGoalConfiguration(const Configuration &pos)
ゴール位置を設定する
boost::function2< bool, PathPlanner *, const Configuration & > applyConfigFunc
double dt_
デバッグモード時に使用する現在時刻
AlgorithmFactory algorithmFactory_
経路計画アルゴリズムのファクトリ
void setProperties(const std::map< std::string, std::string > &properties)
アルゴリズムに対して各種情報を設定する
boost::shared_ptr< Body > BodyPtr
std::map< std::string, std::pair< MobilityNewFunc, MobilityDeleteFunc > > MobilityFactory
void getWorldState(WorldState &state, WorldBase &world)
OptimizerFactory optimizerFactory_
経路最適化アルゴリズムのファクトリ
OpenHRP::CollisionDetector_var collisionDetector_
void setCollisionDetector(CollisionDetector *i_cd)
const std::pair< std::string, std::string > & collidingPair()
hrp::BodyPtr model_
経路計画の対象とするロボット
Mobility * getMobility()
移動能力を取得する
Mobility * mobility_
使用する移動能力
ConfigurationSpace cspace_
コンフィギュレーション空間
std::string algorithmName_
使用する経路計画アルゴリズム名
Algorithm * getAlgorithm()
計画アルゴリズムを取得する
unsigned int countCollisionCheck() const
干渉チェックを呼び出した回数を取得する
Algorithm * algorithm_
使用する経路計画アルゴリズム
Mobility *(* MobilityNewFunc)(PathPlanner *planner)
移動アルゴリズム生成関数
unsigned int countCollisionCheck_
干渉チェック呼び出し回数
std::map< std::string, std::pair< OptimizerNewFunc, OptimizerDeleteFunc > > OptimizerFactory
RoadmapPtr getRoadmap()
ロードマップを取得する
MobilityFactory mobilityFactory_
移動能力のファクトリ
RoadmapPtr getRoadmap()
ロードマップを取得する
MobilityFactory::value_type MobilityFactoryValueType
OpenHRP::OnlineViewer_var onlineViewer_
デバッグモード時に使用する OnlineViewer への参照
void stopPlanning()
計算を止める
AlgorithmFactory::value_type AlgorithmFactoryValueType
Optimizer *(* OptimizerNewFunc)(PathPlanner *planner)
boost::shared_ptr< hrp::World< hrp::ConstraintForceSolver > > WorldPtr
void stopPlanning()
計算を中止する
TimeMeasure timeForwardKinematics_
void setStartConfiguration(const Configuration &pos)
スタート位置を設定する
std::string mobilityName_
使用する移動能力名
Algorithm *(* AlgorithmNewFunc)(PathPlanner *planner)
std::pair< std::string, std::string > collidingPair_
void setGoalConfiguration(const Configuration &pos)
終了位置を設定する
boost::shared_ptr< Roadmap > RoadmapPtr
void setStartConfiguration(const Configuration &pos)
初期位置を設定する
X_ptr checkCorbaServer(std::string n, CosNaming::NamingContext_var &cxt)
std::map< const std::string, std::pair< AlgorithmNewFunc, AlgorithmDeleteFunc > > AlgorithmFactory
void(* AlgorithmDeleteFunc)(Algorithm *algorithm)
OpenHRP::ModelLoader_var modelLoader_
ModelLoader への参照
OpenHRP::CharacterPositionSequence_var allCharacterPositions_