00001 /* 00002 * dense_planner.h 00003 * 00004 * Created on: Feb 9, 2015 00005 * Author: ros developer 00006 */ 00007 00008 #ifndef DENSE_PLANNER_H_ 00009 #define DENSE_PLANNER_H_ 00010 00011 #include <descartes_core/path_planner_base.h> 00012 #include <descartes_planner/planning_graph.h> 00013 00014 namespace descartes_planner 00015 { 00016 00017 class DensePlanner: public descartes_core::PathPlannerBase 00018 { 00019 public: 00020 DensePlanner(); 00021 00022 virtual ~DensePlanner(); 00023 00024 virtual bool initialize(descartes_core::RobotModelConstPtr model); 00025 virtual bool setConfig(const descartes_core::PlannerConfig& config); 00026 virtual void getConfig(descartes_core::PlannerConfig& config) const; 00027 virtual bool planPath(const std::vector<descartes_core::TrajectoryPtPtr>& traj); 00028 virtual bool getPath(std::vector<descartes_core::TrajectoryPtPtr>& path) const; 00029 virtual bool addAfter(const descartes_core::TrajectoryPt::ID& ref_id, descartes_core::TrajectoryPtPtr tp); 00030 virtual bool addBefore(const descartes_core::TrajectoryPt::ID& ref_id, descartes_core::TrajectoryPtPtr tp); 00031 virtual bool remove(const descartes_core::TrajectoryPt::ID& ref_id); 00032 virtual bool modify(const descartes_core::TrajectoryPt::ID& ref_id, descartes_core::TrajectoryPtPtr tp); 00033 virtual int getErrorCode() const; 00034 virtual bool getErrorMessage(int error_code, std::string& msg) const; 00035 00036 protected: 00037 00038 descartes_core::TrajectoryPt::ID getPrevious(const descartes_core::TrajectoryPt::ID& ref_id); 00039 descartes_core::TrajectoryPt::ID getNext(const descartes_core::TrajectoryPt::ID& ref_id); 00040 descartes_core::TrajectoryPtPtr get(const descartes_core::TrajectoryPt::ID& ref_id); 00041 bool updatePath(); 00042 00043 00044 protected: 00045 boost::shared_ptr<descartes_planner::PlanningGraph> planning_graph_; 00046 int error_code_; 00047 descartes_core::PlannerConfig config_; 00048 std::vector<descartes_core::TrajectoryPtPtr> path_; 00049 std::map<int,std::string> error_map_; 00050 00051 }; 00052 00053 } /* namespace descartes_core */ 00054 #endif /* DENSE_PLANNER_H_ */