GAMS  1.4.0
MinTimeAreaCoverage.h
Go to the documentation of this file.
1 
59 #ifndef _GAMS_ALGORITHMS_AREA_COVERAGE_MIN_TIME_AREA_COVERAGE_H_
60 #define _GAMS_ALGORITHMS_AREA_COVERAGE_MIN_TIME_AREA_COVERAGE_H_
61 
63 
64 #include <map>
65 #include <set>
66 #include <string>
67 
68 #include "madara/knowledge/KnowledgeUpdateSettings.h"
69 
70 #include "gams/pose/SearchArea.h"
73 
74 
75 namespace gams
76 {
77  namespace algorithms
78  {
79  namespace area_coverage
80  {
85  {
86  public:
99  const std::string& search_id, double e_time,
100  madara::knowledge::KnowledgeBase * knowledge = 0,
101  platforms::BasePlatform * platform = 0, variables::Sensors * sensors = 0,
102  variables::Self * self = 0, variables::Agents * agents = 0,
103  const std::string& algo_name = "mtac");
104 
109  void operator=(const MinTimeAreaCoverage & rhs);
110 
114  virtual int analyze(void);
115 
116  protected:
118  virtual void generate_new_position(void);
119 
125  virtual double get_utility(const utility::Position& start,
126  const utility::Position& end, std::set<utility::Position>& online);
127 
129  virtual void review_last_move();
130 
133 
136 
138  std::set<utility::Position> valid_positions_;
139 
141  std::map<utility::Position, double> position_value_map_;
142 
144  unsigned int last_generation_;
145  }; // class MinTimeAreaCoverage
146 
151  : public AlgorithmFactory
152  {
153  public:
154 
170  const madara::knowledge::KnowledgeMap & args,
171  madara::knowledge::KnowledgeBase * knowledge,
172  platforms::BasePlatform * platform,
173  variables::Sensors * sensors,
174  variables::Self * self,
175  variables::Agents * agents);
176  };
177  } // namespace area_coverage
178  } // namespace algorithms
179 } // namespace gams
180 
181 #endif // _GAMS_ALGORITHMS_AREA_COVERAGE_MIN_TIME_AREA_COVERAGE_H_
Copyright(c) 2014 Carnegie Mellon University.
Copyright(c) 2014 Carnegie Mellon University.
Copyright (c) 2014 Carnegie Mellon University.
#define GAMS_EXPORT
Definition: GamsExport.h:20
Base class for algorithm factories that classes derived from.
The base class that algorithms in GAMS use.
Definition: BaseAlgorithm.h:95
A factory class for creating minimum time area coverage algorithms.
virtual BaseAlgorithm * create(const madara::knowledge::KnowledgeMap &args, madara::knowledge::KnowledgeBase *knowledge, platforms::BasePlatform *platform, variables::Sensors *sensors, variables::Self *self, variables::Agents *agents)
Creates a minimum time area coverage Algorithm.
Area coverage that minimizes the time taken for covering an area.
unsigned int last_generation_
time step of last position generation
virtual int analyze(void)
Increment sensor values.
std::map< utility::Position, double > position_value_map_
positions we will be passing through and their previous values
void operator=(const MinTimeAreaCoverage &rhs)
Assignment operator.
virtual void review_last_move()
review if last move was good, did we hit all cells we said we would
virtual double get_utility(const utility::Position &start, const utility::Position &end, std::set< utility::Position > &online)
A better way to manage this would probably be to take a function pointer to handle utility calculatio...
MinTimeAreaCoverage(const std::string &search_id, double e_time, madara::knowledge::KnowledgeBase *knowledge=0, platforms::BasePlatform *platform=0, variables::Sensors *sensors=0, variables::Self *self=0, variables::Agents *agents=0, const std::string &algo_name="mtac")
Constructor.
std::set< utility::Position > valid_positions_
discretized positions in search area
pose::SearchArea search_area_
Search Area to cover.
variables::Sensor min_time_
time since last coverage
virtual void generate_new_position(void)
generate new next position
The base platform for all platforms to use.
Definition: BasePlatform.h:113
A utility class for search areas.
Definition: SearchArea.h:72
A position in an x, y, z coordinate system.
Definition: Position.h:78
A container for self referencing information.
Definition: Self.h:70
A container for sensor information.
Definition: Sensor.h:81
std::map< std::string, Sensor * > Sensors
a map of sensor names to the sensor information
Definition: Sensor.h:238
std::vector< Agent > Agents
An array of agent knowledge.
Definition: Agent.h:246
Contains all GAMS-related tools, classes and code.
Copyright(c) 2014 Carnegie Mellon University.