libmove3d-planners
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Friends Macros Groups Pages
privateTask.hpp
1 #ifndef PRIVATETASK_HPP
2 #define PRIVATETASK_HPP
3 
4 #include "task.hpp"
5 
6 class PrivateTask : public Task
7 {
8  MOVE3D_STATIC_LOGGER;
9 public:
10  PrivateTask();
11  virtual bool initAll();
12  virtual bool initialize();
13  virtual bool finalize();
14  virtual bool findCandidateSolutions() = 0;
15  //virtual bool setToSolution(int solutionId, bool computeMP);
16  virtual bool getRandomSol() = 0;
17  virtual bool testConstraints(int alternativeId);
18  virtual bool testConstraints(TaskSolution *TS);
19 // virtual vector<TaskSubSolution*> setNextTraj(TaskSubSolution* doneTSS) =0;
20 
21  bool isPathStraight(Robot *r,p3d_traj *t);
22 
23 
24  virtual bool run(std::multimap<std::string,std::string> agents_name,
25  std::multimap<std::string,std::string> objects_name,
26  std::multimap<std::string,p3d_point> point3d,
27  std::multimap<std::string,std::string> additionalData,
28  WorldState* WS, bool computeMP);
29  virtual double computeCost(int altId);
30  virtual TaskSolution* findAlternative(bool computeMP);
31  armLabel getArmLabelFromId(int armId);
32  bool setArmToUse(armLabel arm_t);
33  bool setArmToUse(int armId);
34  bool initMotionPlaner(Robot *rob);
35  p3d_traj* compute_traj(confPtr_t q_init, confPtr_t q_goal, Robot* object, int& status);
36  p3d_traj* compute_traj_using_localPath(confPtr_t q_init, confPtr_t q_goal, Robot* object, int& status, bool testingStraightPath = true);
37 
38  virtual bool attachObject(Robot* rob, Robot* obj, bool attach);
39  virtual bool attachObject(Robot *rob, Robot *obj, bool attach, int armId); //true for attaching, false for detaching
40 
41  bool computeInverseKinematic(Robot* ag, p3d_matrix4 target_pos, confPtr_t &solution, int armId, bool fromCurPos);
42  bool computeManipulationConfs(confPtr_t &approachC, confPtr_t &graspC, confPtr_t &graspOC, confPtr_t &escapeC, p3d_matrix4 objectPosMat,
43  gpGrasp grasp, p3d_vector3 approachDir, double approachDist, p3d_vector3 escapeDir, double escapeDist);
44 
45  //this is a specific function used in case we need ids.
46  int getArmId();
47 
48  bool setMainAgent(std::multimap<std::string,std::string> agents_name);
49 
50  Robot* getMainAgent(){return mainAgent;}
51 
52  virtual bool isPossibleMainAgent(Robot* r);
53 
54  void openGripper(confPtr_t &q, bool open, int armId);
55 
56  void activateFingertipCol(bool val, Robot* robi, Robot *object, Robot *supportObj);
57 
58  virtual std::pair<Sem::PlanningPart,bool> getPlanPartToUse();
59 
60 
61 
62 protected:
63  std::vector<GTPCell> candidatePoints;
64  //trajs
65  //configurations
66  //WorldState
67  Robot* mainAgent;
68  armLabel m_arm;
69  gpHand_type handType;
70  int _armId;
71 
72  std::map<std::string, ManipulationPlanner*> ManipPlMap;
73 
74  std::vector<HRI_AGENT_TYPE> _possibleMainAgentType;
75 
76 };
77 
78 #endif // PRIVATETASK_HPP
Definition: taskSolution.hpp:9
This class holds a the robot represented by a kinematic chain.
Definition: robot.hpp:42
Definition: worldState.hpp:30
Definition: task.hpp:44
Definition: privateTask.hpp:6