00001 00003 #ifndef TSPSOLVER_H_ 00004 #define TSPSOLVER_H_ 00005 #include<coverage_3d_planning/SolverInterface.h> 00006 #include<surfacelet/SurfacePatch.h> 00007 #include<coverage_3d_arm_navigation/TrajectoryPlanner.h> 00008 #include<tf/tf.h> 00009 00010 class TSPSolver: public SolverInterface { 00011 public: 00012 TSPSolver(); 00013 TSPSolver(double max_adjacency); 00014 00015 void getSolution(std::vector<std::vector<double> >& joint_path, std::vector<tf::Pose>& pose_path, 00016 std::vector<unsigned int>& action, std::vector<unsigned int>& res_traj); 00017 void getActions(const std::vector<unsigned int>& traj, std::vector<unsigned int>& actions); 00018 00019 private: 00020 00021 void computeWeightMatrix(Eigen::MatrixXf& weigths); 00022 void transformGTSPToTSP(const Eigen::VectorXi& multinode_mapping, Eigen::MatrixXi& adj_bool, Eigen::MatrixXf& adj_float); 00023 }; 00024 #endif /* TSPSOLVER_H_ */