This project explored collaborative mechanisms to solve complex tasks through simple individuals (agents). In this case, from a swarm of these agents, an intelligence behavior emerges when they interact together to complete an activity. We can find this kind of interactions in nature; that is, bees, ants, birds, etc, are capable to develop coordination among them and achieve satisfactory results.

Inspired in the nature of living swarms, a technological proposal to design swarm intelligence algorithms using nano drones and simulations was develop at the Information Technology Center (Centro de Tecnologías de Información – CTI) at ESPOL university in 2017. This proposal takes into account a controller to move agents towards specific targets, those targets are considered virtual holes where a seed is going to be planted as part of an agriculture application. For this project, I designed the algorithms and implemented the simulations as well as the physical setup that is explained in the following sections.

Part I: A Centralized Approach.

The first algorithm was a centralized solution. That means, every agent is controlled by a main manager which is sending and receiving data from each individual.

In this approach, the main manager controls the task allocation for the agents by checking the availability of them in order to assign the undone tasks to available agents. Also, the manager runs a collision avoidance algorithm, since it is aware of every agent in the swarm and moves them away from each other if they are close enough to collide.

As simulated environment was developed by using the Unity3D Game Engine. The following images are screenshots taken at different timestamps for a swarm of 30 agents.

Simulation for planting virtual seeds by using 30 agents in a field of 100 targets. The black circles represents the agents, the yellow squares the targets, and the red diamonds are static obstacles. The darker targets are already planted.

Using the same approach, a swarm of 5 Crazyflie 2.0 nano drones were used to test the solution. The physical setup uses a motion capture (MOCAP) as a positioning system. The workstation that controls the MOCAP, captures and sends the position of each drone to another computer which distributes this data together with the target positions given by the algorithm towards the drones, via radio communication. The next video shows the drones performing movements and simulating the planting of seeds.

Five-drones swarm performing movements for planting virtual seeds.

In order to provide feedback regarding the planting action, an interactive projection was implemented. This solution checks the drones’ positions from the MOCAP and changes the color of circles projected on the floor to confirm the task completion, as the video below shows.

Four-drones swarm using the feedback setup. Complete video explained by Oscar Moreno in Spanish here

For more details about this centralized approach, please refer to the conference paper here.

Part II: A Distributed Approach.

The second part of this project was focused on the decentralization of the first solution explained before. Some of the most important benefits of swarm intelligence applications are scalability and stability; that is, more agents can be easily added to the swarm, and the whole system will not fail if some of them stop working. That is the idea of a distributed strategy.

For this approach, there is no such main manager and the logic resides on each agent. Thus, they use local communication to interact with each other and save local data that is shared in a radius limited by the characteristics of the agent. In addition, the task allocation was optimized to reduce completion times by improving the task-allocation method via a fuzzy logic approach. For a complete explanation about the algorithm, please refer to the publication here.

The figure below shows how the agents moves across the field with this different approach in a simulation. They try to reach initially the center of the field, then they spread out to complete the activity by selecting the right target according to the fuzzy allocator. The results, compared to the centralized solution, are better in terms of completion times and collision avoidance attempts.

Simulation for planting virtual seeds by using 30 agents in a field of 100 targets. The circles represents the agents, the yellow squares the targets, and the red diamonds are static obstacles. The darker targets are already planted. Note the difference in movements in contrast with the centralized approach shown before.

I presented the paper at the International Conference on Fuzzy Systems (FUZZ-IEEE 2018) hosted on the IEEE World Congress on Computational Intelligence (IEEE WCCI 2018), which is the largest technical event in the field of computational intelligence.

Publications.