Skip to content
Anton Dukeman edited this page May 19, 2015 · 17 revisions

Prerequisites

MADARA


Introduction

Agents can be instructed to perform algorithms either alone or as part of a team. These are initialized using defined Madara variables read by the Controller. Algorithms are defined by a command and some variable number of parameters. Two basic types of algorithms will be discussed, Area Coverage and Formation.


Area Coverage

Area Coverage algorithms instruct a group of drones to surveil a region or search area. The behavior can determined by a random distribution, sensor data from the swarm, or precomputed before beginning the coverage. More information about these algorithms is on the Area Coverage page.


Formation

The formation algorithm allows any static formation to be defined and used by a group of agents.

device.<id>.command="formation";
device.<id>.command.size=4;

The formation algorithm is initialized by the "formation" command and requires four arguments.

device.<id>.command.0=<lead_id>;

The first argument is the id of the "lead" agent of the formation. This agent is the common reference point for the next argument.

device.<id>.command.1="<rho>,<phi>,<z>";

The second argument is the relative location of this agent in the formation. A comma separated list of values in the cylindrical coordinate system is used with the location of the lead agent as the origin. <rho> is the planar distance from the lead. <phi> is the angular offset in radians from forward of the lead agent with positive phi being to the right and negative phi to the left. <z> is the altitude offset. For example "3,1.57,4" would be the position three meters to the right of and four meters above the lead agent. The lead agent would be at "0,0,0", but will ignore this value regardless.

device.<id>.command.2="<lat>,<long>";

The third argument is the destination of the formation. This allows formation members to determine the forward direction of the lead agent and thus their expected absolute position. It is assumed the formation will stay at the same altitude at which it starts.

device.<id>.command.3="<num_agents>,<agent_list>";

The fourth argument is the list of agents involved in the formation. <num_agents> is the number of agents involved in the formation. <agent_list> is a comma separated list of the IDs of agents involved in the formation. For example, "3,0,1,2" would involve agents with id 0, 1, and 2.

Clone this wiki locally