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();
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__