libmove3d-planners
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Friends Macros Groups Pages
taskSubSolution.hpp
1 #ifndef TASKSUBSOLUTION_H
2 #define TASKSUBSOLUTION_H
3 
4 #include "API/Device/robot.hpp"
5 #include "GTP/Tasks/task.hpp"
6 
7 
8 class TaskSolution;
9 
11 {
12  MOVE3D_STATIC_LOGGER;
13 public:
15  TaskSubSolution(TaskSolution* sol, std::string name, int id, p3d_traj* traj, Robot* r, double initRP);
16 
17  ~TaskSubSolution();
18 
19 
20  bool refineTraj(); //smoothing mainly
21  bool reComputeTraj();
22 
23  std::string getSubSolutionName() {return _subSolutionName;}
24  void setSubSolutionName(std::string name){_subSolutionName = name;}
25 
26  Robot* getRobot() {return _robot;}
27  int getId() {return _id;}
28  void setId(int id) {_id = id;}
29 
30  std::vector<TaskSubSolution*> getPrevious() {return _previous; }
31  void addToPrevious(TaskSubSolution* prev);
32  void setPrevious(std::vector<TaskSubSolution*> prev) {_previous = prev;}
33 
34  std::vector<TaskSubSolution*> getNext() { return _next; }
35  void setNext(std::vector<TaskSubSolution*> next);
36  void addNext(TaskSubSolution* next);
37 
38  p3d_traj* getTraj();// {return _trajectory;}
39  void setTraj(p3d_traj* traj) {_trajectory = traj;}
40 
41  Task* getTask();
42  TaskSolution* getSolution() {return _sol;}
43 
44  void setIsLast(bool v) {_isLast = v;}
45  bool isLast() {return _isLast;}
46  void setIsSmoothed(bool v) {_isSmoothed = v;}
47  bool isSmoothed() {return _isSmoothed;}
48 
49  void setStartState(WorldState* WS) { _start_WS = WS;}
50  void setEndState(WorldState* WS) { _end_WS = WS;}
51 
52  WorldState* getStartState() {return _start_WS;}
53  WorldState* getEndState() {return _end_WS;}
54 
55  double getInitRangeParam() {return _initRangeParam;}
56 
57  std::string getDescr();
58 
59  bool setTrajInRobotStruct();
60 
61  double getDuration();
62 
63  void setNavigation(bool nav);
64  bool isNavigation();
65 
66  void setNavTraj(std::vector<p3d_point> p);
67  std::vector<p3d_point> getNavVector();
68 
69  void saveToDisk(FILE *file);
70 
71  int getArmId() {return _armId;}
72  void setArmId(int i) {_armId = i;}
73 
74  Sem::PlanningPart getPlanningPart() const {return _planningPart;}
75  void setPlanningPart(Sem::PlanningPart part){_planningPart = part;}
76 private:
77  std::string _subSolutionName;
78  int _id;
79  std::vector<TaskSubSolution*> _previous;
80  std::vector<TaskSubSolution*> _next;
81 
82  double _initRangeParam;
83 
84  p3d_traj* _trajectory;
85 
86  TaskSolution* _sol;
87 
88  bool _isLast;
89 
90  WorldState* _start_WS;
91  WorldState* _end_WS;
92 
93  bool _isSmoothed;
94  Robot* _robot;
95 
96  std::vector<p3d_point> _nav_path;
97  bool _navigation;
98 
99  //0 for right, 1 for left, 2 for both
100  int _armId;
101  Sem::PlanningPart _planningPart;
102 };
103 
104 
105 
106 #endif // TASKSUBSOLUTION_H
Definition: taskSolution.hpp:9
Definition: Sem_PlanParts.hpp:35
Definition: taskSubSolution.hpp:10
This class holds a the robot represented by a kinematic chain.
Definition: robot.hpp:42
Definition: worldState.hpp:30
Definition: task.hpp:44