MRXT: The Multi-Robot eXploration Tool
Multi-Robot autonomous exploration and mapping simulator.
include/architecture/reactive/reactiveGauss.h
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
 All Classes Functions Variables Typedefs