libmove3d-planners
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Friends Macros Groups Pages
manipulationTask.hpp
1 #ifndef MANIPULATIONTASK_HPP
2 #define MANIPULATIONTASK_HPP
3 
4 #include "GTP/Tasks/privateTask.hpp"
5 
7 {
8  MOVE3D_STATIC_LOGGER;
9 public:
11  //virtual bool init(); //should be called after setting main agent
12  virtual bool findCandidateSolutions() = 0;
13  virtual bool getRandomSol() = 0;
14  virtual bool setToSolution(int solutionId, bool computeMP);
15  virtual TaskSolution *createSolution(bool computeMP) = 0;
16 // virtual vector<TaskSubSolution*> setNextTraj(TaskSubSolution* doneTSS) =0;
17  virtual bool computeSolutionTrajectories(int alternativeId);
19  virtual bool computeSolutionTrajectories(TaskSolution *ts) = 0;
20 
21  virtual bool run(std::multimap<std::string,std::string> agents_name,
22  std::multimap<std::string,std::string> objects_name,
23  std::multimap<std::string,p3d_point> point3d,
24  std::multimap<std::string,std::string> additionalData,
25  WorldState* WS, bool computeMP);
26 
32  TaskSolution* findAlternative(bool computeMP);
38  TaskSolution* createAlternative(bool computeMP);
39 
40  std::vector<confPtr_t> compute_manipulation_data(int armId, Robot *object, gpGrasp grasp);
41 
42  bool setMainObject(std::multimap<std::string,std::string> objects_name);
43 
44  Robot* getMainObject(){return mainObject;}
45 
46  virtual void showMainObjectRandomTransform();
47 
48  bool attachObject();
49  bool detachObject();
50  bool checkHRIAgent(Robot* r);
51  bool setMainAgentHand();
52  bool isObjectInCollision(Robot *supportObject);
53  bool isHandInCollision();
54 
55  void removeVirtualObjects();
56  void moveBackVirtualObjects();
57 
58 
59 
64  bool checkAttachement();
65 
71  bool checkAndSetArmAndObj();
72 
78 
83  int getArmIdFromAtt();
84 
89  bool checkArmAtt();
90 
91 protected:
92 
93  Robot* mainObject;
94 
95  confPtr_t graspConfClosed;
96  confPtr_t graspConfOpen;
97  confPtr_t approachConf;
98  confPtr_t escapeConf;
99 
100  int currentTransfo;
101  std::map<int, Robot*> _hands;
102  gpGrasp _curGrasp;
103 
104  std::vector<std::pair<Robot*,configPt> > virtualObjs;
105 
106  std::vector<std::pair<double,TaskSolution*> > exploredSolutions;
107 
108  bool _noArm;
109 
110 
111 };
112 
113 #endif // MANIPULATIONTASK_HPP
Definition: taskSolution.hpp:9
int getArmIdFromAtt()
use the attachement to find the object
Definition: manipulationTask.cpp:608
Definition: manipulationTask.hpp:6
bool checkArmAtt()
check if there is an attachement in _WS of the main object in the good hand
Definition: manipulationTask.cpp:631
This class holds a the robot represented by a kinematic chain.
Definition: robot.hpp:42
TaskSolution * findAlternative(bool computeMP)
get an alternative created by createAlternative and add it to results, or create a new one if no more...
Definition: manipulationTask.cpp:207
Definition: worldState.hpp:30
Robot * getMainObjectFromAtt()
use the arm to find the object attached
Definition: manipulationTask.cpp:586
bool checkAndSetArmAndObj()
check if the arm and objects coresponds
Definition: manipulationTask.cpp:544
Definition: privateTask.hpp:6
TaskSolution * createAlternative(bool computeMP)
randomly create a solution
Definition: manipulationTask.cpp:270
bool checkAttachement()
check the attachements
Definition: manipulationTask.cpp:529