54 #ifndef _GAMS_ALGORITHMS_ZONE_COVERAGE_H_
55 #define _GAMS_ALGORITHMS_ZONE_COVERAGE_H_
67 #include "madara/knowledge/containers/Integer.h"
68 #include "madara/knowledge/containers/Barrier.h"
104 const std::string &protectors,
105 const std::string &assets,
106 const std::string &enemies,
107 const std::string &formation,
108 double buffer,
double distance,
109 madara::knowledge::KnowledgeBase * knowledge = 0,
175 typedef std::vector<madara::knowledge::containers::NativeDoubleArray>
MadaraArrayVec;
188 std::vector<pose::Position> &locs)
const;
216 const madara::knowledge::KnowledgeMap & args,
217 madara::knowledge::KnowledgeBase * knowledge,
Copyright(c) 2014 Carnegie Mellon University.
Copyright(c) 2014 Carnegie Mellon University.
Copyright(c) 2016 Carnegie Mellon University.
Copyright(c) 2014 Carnegie Mellon University.
Copyright(c) 2014 Carnegie Mellon University.
Base class for algorithm factories that classes derived from.
The base class that algorithms in GAMS use.
A factory class for creating Formation 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 Formation Coverage Algorithm.
An algorithm for covering an area in formation with a synchronous model of computation.
void operator=(const ZoneCoverage &rhs)
Assignment operator.
gams::groups::GroupBase * protectors_
gams::groups::GroupBase * assets_
gams::groups::AgentVector enemies_members_
pose::Position onion_formation() const
virtual int plan(void)
Plans the next execution of the algorithm.
ZoneCoverage(const std::string &protectors, const std::string &assets, const std::string &enemies, const std::string &formation, double buffer, double distance, madara::knowledge::KnowledgeBase *knowledge=0, platforms::BasePlatform *platform=0, variables::Sensors *sensors=0, variables::Self *self=0)
Constructor.
static formation_func get_form_func(const std::string &form_name)
~ZoneCoverage()
Destructor.
gams::groups::GroupBase * enemies_
gams::groups::AgentVector assets_members_
pose::Position line_formation() const
std::vector< pose::Position > asset_locs_
std::vector< pose::Position > enemy_locs_
void update_locs(const MadaraArrayVec &arrays, std::vector< pose::Position > &locs) const
formation_func form_func_
std::vector< madara::knowledge::containers::NativeDoubleArray > MadaraArrayVec
gams::groups::AgentVector protectors_members_
groups::GroupFactoryRepository group_factory_
factory for interacting with user-defined groups
virtual int analyze(void)
Analyzes environment, platform, or other information.
MadaraArrayVec asset_loc_cont_
virtual int execute(void)
Plans the next execution of the algorithm.
pose::Position arc_formation() const
MadaraArrayVec enemy_loc_cont_
void update_arrays(const gams::groups::AgentVector &names, MadaraArrayVec &arrays) const
Base class for a group of agents.
A repository for group factories.
A container for self referencing information.
std::vector< std::string > AgentVector
A vector of agent names.
std::map< std::string, Sensor * > Sensors
a map of sensor names to the sensor information
std::vector< Agent > Agents
An array of agent knowledge.
Contains all GAMS-related tools, classes and code.
Copyright (c) 2015-2018 Carnegie Mellon University.