1 #ifndef MULTIHANDOVERALGOS_H
2 #define MULTIHANDOVERALGOS_H
4 #include "MultiAgentHandOvers.h"
5 #include "MultiHandOverUtils.hpp"
17 setLogger(&_dummy_logger);
26 virtual double distanceCost(
double d,
unsigned int a) =0;
27 virtual double distanceCostNoTime(
double d,
unsigned int a) =0;
31 virtual double timeCost(
double t,
unsigned int a)=0;
34 virtual double handOverCostEstimation(
unsigned int i,
unsigned int j)=0;
35 virtual double handOverCost(FrontierPtr frontier,
double *time=0) =0;
37 virtual double handOverMaxDist(
unsigned int a1,
unsigned int a2) =0;
50 setLogger(&_dummy_logger);
75 void setRobots(
unsigned int a1,
unsigned int a2);
80 double getReach(
unsigned int a);
81 double getReach(
unsigned int a1,
unsigned int a2);
83 static double distanceCostStatic(
void *the_this,
double d,
unsigned int agent){
return ((
ToolSet*)the_this)->solutionTools->distanceCost(d,agent);}
85 double getStatsCheckHoFull(
double &mean,
double &variance,
unsigned int &n);
89 FrontierCells::FrontierCheckStatus _max_check_status;
92 unsigned int _full_ho_cnt;
93 double _full_ho_time_mean;
94 double _full_ho_time_M2;
107 double distanceCostNoTime(
double d,
unsigned int a);
108 double distanceCost(
double d,
unsigned int a);
110 double timeCost(
double t,
unsigned int a);
112 double handOverCostEstimation(
unsigned int i,
unsigned int j);
113 double handOverCost(FrontierPtr frontier,
double *time=0);
115 double handOverMaxDist(
unsigned int a1,
unsigned int a2);
146 confPtr_t getQMiddle(){
return q_middle;}
147 virtual std::string getName(){
return _name;}
149 void setOrientationObjectForHO(Eigen::Vector3d & dir1);
150 Configuration confForBBAxisAlign(Eigen::Vector3d
const & main_dir, Eigen::Vector3d
const & second_dir);
152 std::vector<Eigen::Vector3d> _object_bb_vects;
153 std::vector<int> _object_directions_sorted_for_ho;
158 static const std::string _name;
173 void setUseDummySmooth(
bool dummy){_use_dummy_smooth=dummy;}
174 confPtr_t getQMiddle(){
return q_middle;}
175 virtual std::string getName(){
return _name;}
178 void setObjectLimits();
179 void resetObjectLimits();
180 void saveObjectLimits();
182 bool computeRRT(
double time_limit_ms);
183 static inline Eigen::Vector2d v3dto2d(Eigen::Vector3d v3);
185 vector<double> object_limits_bkp;
187 std::pair<Eigen::Vector3d,Eigen::Vector3d> bb;
188 bool _use_dummy_smooth;
192 static const std::string _name;
197 #endif // MULTIHANDOVERALGOS_H
Definition: HRICS_MultiHandOver.h:16
Plannar HRI Grid considering multiple agents systems for HRi operations.
Definition: HRICS_MultiAgentGrid.hpp:28
This class holds a the robot represented by a kinematic chain.
Definition: robot.hpp:42
The FrontierTester class is a unique interface for all available/desired handover/frontier testers...
Definition: MultiAgentHandOvers.h:60
The HandOverDirectChecker class makes the object go in a straigh line from its goal to target...
Definition: MultiHandOverAlgos.h:141
Definition: MultiHandOverAlgos.h:47
Plannar HRI Cell.
Definition: HRICS_MultiAgentGrid.hpp:462
Definition: MultiHandOverUtils.hpp:141
Classe représentant une Configuration d'un Robot.
Definition: configuration.hpp:25
The AlgoLoggerInterface class defines dummy logging methods that will be used for textual log and dis...
Definition: MultiHandOverUtils.hpp:36
The AbstracHandOverObjectCheck class is an abstract class providing tools to check the possibility of...
Definition: MultiAgentHandOvers.h:106
The HandOverWindowCheckerRRT class gives tools to check the possibility of a hand over...
Definition: MultiHandOverAlgos.h:167
Definition: MultiHandOverAlgos.h:122