MRXT: The Multi-Robot eXploration Tool
Multi-Robot autonomous exploration and mapping simulator.
|
00001 00002 #ifndef __REACTIVE___GAUSS___ 00003 #define __REACTIVE___GAUSS___ 00004 00005 #include "binMap.h" 00006 #include "gridMapInterface.h" 00007 #include "localPotentialField.h" 00008 #include "reactive.h" 00009 #include "ConfigFile.h" 00010 00011 /** 00012 * @brief Reactive behaviours modelled as a sum of gaussians 00013 * 00014 */ 00015 00016 class reactiveGauss : public reactive{ 00017 00018 private: 00019 00020 pose currentPos; 00021 bool useesz; 00022 int eszdilationradius; 00023 int actionradius; 00024 00025 int setup(); 00026 void onStop(); 00027 void execute(); 00028 ClMutex closing; 00029 bool endReactive; 00030 00031 point goal; 00032 00033 const int lzwidth; 00034 const int lzheight; 00035 00036 localPotentialField total; 00037 speed velo; 00038 00039 pointf update (); 00040 00041 void processOMap(point& cell, gridMapInterface& omap, binMap& esz, localPotentialField& avObs, localPotentialField& goFro, localPotentialField& goUZ); 00042 void processGoPre(point& poscell, binMap& ppmap, binMap& esz, localPotentialField& goPre); 00043 void processGoGoal(point& pos, point& goal, binMap& esz, localPotentialField& goGoal); 00044 void processAvRob(int numrobots, point* robotcells, binMap& esz, localPotentialField& avRob); 00045 00046 void updateField (localPotentialField& global); 00047 00048 public: 00049 00050 reactiveGauss(const ConfigFile& conf); 00051 virtual ~reactiveGauss(); 00052 00053 void setGoal(point goal); 00054 00055 00056 }; 00057 00058 #endif