The robots will be programmed using Arduino. Using RF24/radiohead library to control the NRF24 communications module, the bots will be able to broadcast their state and intention and can receive missions from the swarm. The system will allow the swarm to organize and divide their power to accomplish multiple objectives in the same time.
The decisions in the swarm will be taken collectively, and each robot will have a certain state, and behavior based on his health and mission. This will translate into a availability to receive more missions.
On the low level programming, each individual robot will contain 3 layers:
-Basic control : movement, collision avoidance, receiving radio signal
-Orientation and mission: orientation to objective, accomplish mission
-Role in swarm and behavior: each robot state, availability and emotional state. (this will be adaptive)
The last layer will adapt the robot's role in swarm using a learning algorithm and receiving feedback from the swarm after every action. This changes will lead to efficiency in taking decisions.
The important order of layers is obvious, and the decisions will be taken, analyzing the most important layers first (ex. first avoid an obstacle if it is in the way to objective).