Swarms in nature exhibit vastly complex behaviours in contrast to the simplistic reactive behaviours being carried out by the individuals. This is best illustrated in the way that termites build elaborate architectural structures or that ants forage for food via stigmergic processes. The fundamental property of a swarm, whether it be natural or artificial, is that the complex behaviour of the swarm is produced by the relatively simple behaviours carried out by the individuals - the product is by far greater than the sum of its parts.
There is a growing interest in using robotic swarms in real life problems thanks to a number of important properties they have over single robot systems: robustness to individual failure, scalability in terms of swarm size and environmental size and finally their ability to solve a problem in parallel . Furthermore, the falling costs of hardware and the improvements in communications, sensing and processing power are also driving the recent increase in interest . Although the algorithmic and technological advancements have been significant in recent years, there are still a number of obstacles left standing between robotic swarms being used in scenarios such as search-and-rescue, area monitoring and the protection of safety critical infrastructure.
Particle Swarm Optimisation (PSO) is an optimisation procedure first introduced in order to visually represent the movement of a flock of birds . It was soon discovered that making minor modifications to the simple flocking rules results in a very effective optimisation procedure. This procedure considers a number of “particles”, each with a velocity, as points in a search space. This velocity is modified according to the personal best of the individual and global best of the swarm in relation to a fitness function. In this way, the movement of the particles across the search space is influenced by exploiting their own best known point and the best known point of the swarm. This information sharing via the global best allows the “knowledge of the swarm” to be accessed by the individual members. PSO has been successfully applied as a generalised optimisation procedure to various areas such as control systems and electrical engineering .
Given that PSO is an effective search procedure, it seems natural to apply this concept to a swarm of real robots attempting to locate a goal. A swarm of this nature would be able to carry out safety critical tasks such as search-and-rescue, land mine detection and patrolling a border. However, one of the main problems with PSO, as highlighted in , is that each particle is assumed to be an infinitesimally small, massless point; this is suitable for search over mathematical functions but not for use in real world robotics applications. Applying the original PSO algorithm directly to a robotic swarm would lead to individuals crashing into or coming dangerously close to one another as they move through the search space, especially in aerial swarms.
To make PSO applicable on aerial robotic swarms, we propose a novel algorithm named Force Field Particle Swarm Optimisation (FFPSO) that takes into account the repelling force field of each swarm member by adding an additional velocity component to the original PSO equation. Both the simulation tests (of which a snapshot is shown in Fig. 1) and experiments on real Micro-Aerial Vehicles (MAVs) have shown that FFPSO is efficient at finding the location of a goal in 3-dimensional space using a swarm of aerial robots: it outperforms the original PSO algorithm in terms of convergence time and the number of crashes between individuals of the swarm.
Ii Related Work
We begin by reviewing the most related work in the area of PSO, Potential Field methods and Flocking. PSO itself is a vast field with applications in many different areas (see  for details), our aim here is not to cover the entirety of this but only what is relevant to aerial and swarm robotics. We also review some relevant work in the area of Potential Field methods, which are almost identical in nature to the “force field” used in this work. However, we feel the alternative name is more appropriate in our work due to the 3-dimensional and finite nature of our fields acting around aerial robots. Finally, we review similar collision avoidance strategies employed in flocking algorithms.
Ii-a PSO in aerial robotic settings
PSO has been applied to Unmanned Aerial Vehicles (UAVs) and MAVs in various ways already. Optimal route planning for MAVs is an optimisation problem that is tackled in [4, 5] by constructing complex fitness functions consisting of a number of different metrics that would affect the success of an MAV carrying out reconnaissance missions. These works modify the fitness function, whereas our work modifies the PSO equation directly. In the case of complicated fitness functions, the computational requirements of evaluating them for each individual at each time step could be far greater than our proposed method. In [6, 7], PSO is used to tune the parameters of a PID controller for an AR.Drone by constructing a multi-objective fitness function that takes into account a number of performance metrics w.r.t. the PID controller. In 
, PSO is hybridised with a Genetic Algorithm (GA) in order to optimise formation reconfiguration in swarms of UAVs. A hybrid algorithm is proposed that combines the advantages of both optimisation methods and is shown to outperform PSO in a series of simulated experiments. This algorithm optimises the control inputs of the UAVs such that optimal swarm reconfiguration can be achieved in battle-like simulations.
Ii-B Potential Field methods
Potential Field (PF) methods are a set of algorithms that involve the simulation of artificial potential fields around objects or goals thus causing agents interacting in this environment to be repelled from objects and attracted to goals. PF methods have been applied in robotic motion planning [9, 10, 11], simulated swarms [12, 13, 14], and more recently have been applied in real robotic swarms, including MAVs [15, 16]. In particular, in  PFs are applied to a swarm of MAVs under the remote control of a human operator. The operator controls the swarm as a single body and the potential fields generated by the robots and other objects in the environment help to prevent collisions, whilst keeping the formation of the swarm.
, a centralised strategy for controlling a swarm of UAVs is devised for sowing seeds in a simulated field. Each individual is aware of the location of the seeds and sowing locations and moves in a straight line towards the target. The system employs a simple collision avoidance strategy that determines whether two drones are within a collision radius and if so, the agents move in the opposite direction of the collision. Despite not using an explicit potential field, the collision avoidance scheme uses similar vector operations to repel agents from collisions. In contrast with our work, when avoiding collisions the agents enter into a separate state, which interrupts the flow of the underlying search procedure and only accounts for one collision at a time. Our work amalgamates this collision vector with the vector of the trajectory to the goal (PSO velocity), thereby removing the need for a finite state machine and the separation of the collision avoidance state and the target locating state. We provide evidence for the fact that this state switching collision avoidance mechanism leads to a slower convergence speed in SectionV-A. Although  and  employ these methods on real MAV swarms, they do not use PSO. Furthermore, both of these works only consider collision avoidance in 2 dimensions.
The work most related to ours in theoretical approach is . In this work each individual ePuck robot represents a particle in the PSO algorithm where the aim is to find an area of interest. However, the main contributions of our work compared to  is that we extend this model to 3 dimensions for aerial vehicles and we show our algorithm operating on a real swarm, whereas  only tests the algorithm in simulation. Similar to ,  employs a simple Braitenburg collision avoidance scheme in which particles instantaneously move in opposite directions after a collision and then continue to follow the original velocity before the collision occurred.
The flocking algorithms that originally inspired PSO employ a variety of collision avoidance strategies that are worth noting. According to Reynolds, flocking can be accurately simulated according to three individual principles: short range repulsion, local velocity alignment and long range attraction to the flock center . Due to this, collision avoidance mechanisms must be implemented in order to adhere to the short range repulsion requirement. Some of the work on flocking implements collision avoidance using a linearly decreasing repulsion force between members of the flock [19, 20] and other work uses a non-linear force decrease [21, 22]. The flocking principles are often implemented by accumulating the vectors of the respective influences (short range repulsion, long range attraction etc.) into one direction vector. This is very similar to the PSO method, however, the environmental influences on the particle are different, for example there is no requirement for the particles to group together (in fact this would be highly detrimental to search).
To the best of the authors’ knowledge, force field like methods have not yet been combined with PSO in our proposed way nor applied to a swarm of real MAVs. With this work we aim to contribute to developing biologically inspired algorithms such that they are suitable, and useful, in real world robotic swarms.
Iii-a Particle Swarm Optimisation
Particle Swarm Optimisation  aims to maximise a fitness function by initialising a population of particles in an n-dimensional search space111For the experiments in this paper Equation 8 is used as a fitness function, however, any function can be used.. The n-dimensional position and velocity of particle at are initialised randomly. The velocity and position of particle are updated according to Equations 1 and 2 respectively. Equation 1 calculates the new velocity at the next time step according to the current velocity , the current position , the personal best of the individual particle (according to the fitness function) and the global best of the population . The values and
are random numbers generated in order to add stochasticity to the algorithm. The tuneable hyperparameters, and can be altered in order to change the influence of the respective components. Equation 2 applies this new velocity to the old position in order to get the new position .
Equation 1 consists of three separate components that represent conceptually different ideas. The first component represents the inertia of the particle. Physical inertia is defined as the resistance of a physical object to a change in motion, therefore, in the case of PSO, the inertial component provides a resistance of its current velocity to the effects of the other components. The second component of the equation represents the individual knowledge of the particle or the “cognition” part  that pulls the particle in the direction of its best known position so far. The third component is known as the “social” part that pulls the particle in the direction of the global best of the population. The interaction of these 3 components results in an algorithm that is relatively successful at finding global optima due to the fact that knowledge about the global best is shared by all particles in the search space. Each of these particles will be in different places in the search space which leads to a greater global knowledge about that space, as opposed to an individual point performing gradient descent.
Iii-B Force Field Particle Swarm Optimisation
The newly proposed FFPSO algorithm works by introducing an additional component into Equation 1. This component is a force field component and aims to affect the PSO velocity of the individual particle by taking into account the force fields of the other particles such that they are repelled from one another at close distances. Fig. 2 shows a 2 dimensional snapshot of the effect of these fields from a top-down viewpoint. Equation 3 describes the new FFPSO equation for particle :
where is the sum of the fields from all the surrounding particles as in Equation 4, and is a tunable hyperparameter that determines the influence of the force field component in the overall PSO equation.
The type of force field applied to each particle affects the performance of the algorithm - we consider two different field types. The first type of field is a linearly decreasing field (FFPSO-LIN), the force field component, , between particle and particle for this field is calculated as in Equation 5:
where ; is the magnitude of the vector , i.e., the distance between particle and particle ; is the unit vector between particles and defined in Equation 6; is the safety distance after which there is zero effect from the field.
The second type of field is inspired by Newton’s Law of Gravitation in that the force field component is inversely proportional to the distance between the two particles (FFPSO-GRAV). Using this field, is calculated as in Equation 7 as opposed to the linear field in Equation 5:
where is a variable that determines how quickly the strength of the field decreases with distance, and where and are the respective radii of particle and particle . is mainly used to account for large robot diameters that need to be considered in order to avoid collisions. Furthermore, the separation of into and accounts for particles of different radii.
To show the different effects of the two proposed force fields, Fig. 3 illustrates how the strength of the respective force fields change w.r.t. the distance between two particles. It shows that FFPSO-LIN provides a linear increase in force strength as particles approach one another. By contrast, FFPSO-GRAV induces a very small force near the safety distance which gradually increases as the particles come closer to each other. However, when the distance between the two particles is relatively small a dramatic increase in force strength ensues. The force strength for FFPSO-GRAV approaches infinity as the distance between the edges of the particles approaches 0, this theoretically prevents any crashes from occurring. The same cannot be said of FFPSO-LIN given that a maximum force strength of is achieved when the distance is 0, therefore if an opposing vector from the PSO equation is large enough it can override this force field resulting in a crash. Nonetheless, and can be altered in the equations to get different behaviours.
Iv Experimental Setup
Experiments were conducted in the simulator ARGoS  and also in a physical lab on a real swarm of Crazyflie 2.0s (CF) from Bitcraze222https://www.bitcraze.io/crazyflie-2/. The CF drones have a small size of 9 and are very light, about 27 .
ARGoS is a multi-physics robot simulator that has been written in such a way that makes the simulation of large swarms highly efficient. The simulations are designed to be as close to real robots as possible, with very accurate models of real world robots already being available. For our simulations a generic quadrotor model was used, which is accurate enough to test the viability of the proposed algorithms and then transfer them to real CFs with minimal behavioural differences.
The experiments were ran in a virtual arena of size in order to simulate a real indoor environment in which a swarm of drones have to locate two goal locations one after the other. Only one member of the swarm is required to find the goal in order for the goal to be registered as found. At the beginning of each run, each agent was placed at a random position in the 3 dimensional space and assigned a random initial velocity. The goals are presented in the same position each time: the first goal is presented initially at position and then only after that goal is found by one member of the swarm the second goal is presented at position . The fitness function at each point in space used for all of the algorithms is simply the negative of the distance between the particle and the goal as illustrated in Equation 8:
where g and x are 3-dimensional vectors representing the goal position and particle position respectively. After both goals have been found, or the maximum number of iterations has been reached which was 1,200, the simulation ends. After the simulation ends the number of iterations required to find both goals was recorded as well as the total number of crashes between agents.
Given that PSO does not employ any collision avoidance scheme, we also compare an algorithm: PSO-CA, which is a modified version of PSO that does include a very simple collision avoidance mechanism. The collision avoidance scheme used is similar in nature to that used in  and : if two agents come within a safety distance of each other, the agents suspend their current computation and move in opposite directions to one another until out of the crash radius. Given that PSO has no explicit collision avoidance mechanism, we also compare the performance of our proposed methods against PSO-CA to further validate the effectiveness of our methods.
Each algorithm: PSO, PSO-CA, FFPSO-LIN (Equation 5) and FFPSO-GRAV (Equation 7) was tested on a swarm size ranging from 2 to 10 for 500 runs. The mean value of the number of iterations taken and the number of crashes were recorded for each set of runs. The original PSO hyperparameters used were , and . For the FFPSO variants was used and specifically for FFPSO-GRAV and were used given that the diameter of the drones used in simulation were negligible. A safety distance of was used for PSO-CA, FFPSO-LIN and FFPSO-GRAV. These values appeared most optimal according to a hyperparameter sweep. Fig. 1 shows a snapshot of these experiments in the ARGoS simulator.
Iv-B Real Robots
The proposed algorithms were then implemented on a real swarm of three CFs, as shown in Fig. 4. This was to show the suitability of the algorithm on a swarm of real drones and to consider any potential problems in a real robotic setting. Furthermore, we consider how the performance of the algorithm w.r.t. the time taken to find the goal is affected by transference from simulation to a real system. The quadcopters are stabilised using a Motion Capture System and a low level PID controller that accepts velocity commands as input and accelerates the CF to the desired speed.
The CFs were placed randomly in an arena of size and took off to a height of after which the algorithm was started. The two goals were set apart. The hyperparameters were adjusted for these experiments such that: , , and . is reduced to stop the CFs velocities from being too large. The safety distance used in these experiments was . This experiment was ran 10 times and the time taken in seconds for the drones to move from the first goal to the second goal was recorded along with the flight path of each CF. During these experiments it was discovered that the downward draft from the CFs caused stability issues to CFs below it. Therefore, in the experiments the CFs were not allowed to fly beneath one another at a certain distance. This distance is known as the Motor Thrust distance and was set to 1.0m in our experiments; this is not integrated into the FFPSO-LIN equation it just completely disallows one CF flying beneath another CF.
V Experiments & Analysis
In this section, the results for both the simulations and the real robotic experiments are given and analysed.
Table I compares the mean number of crashes over 500 runs for each algorithm whilst also showing how this was affected by the number of agents in the swarm. It illustrates that having no collision avoidance scheme leads to a very high number of crashes, which is the case with PSO. The other three algorithms that do implement some form of collision avoidance either have 0 crashes over all of the experiments or have a very small number of crashes as is the case for FFPSO-LIN.
The small number of crashes in FFPSO-LIN can be attributed to the fact that there exists a finite maximal force field strength when there is no space between the MAVs, which can be seen in Fig. 3. Therefore, there exists a very small number of situations where this maximal value can be overridden by other components in Equation 3. The frequency of this occurrence was observed to be much higher with 2 drones due to the fact that each individual can attain a higher velocity. The configuration of a smaller swarm does not sufficiently hinder the momentum of the individuals such that crashes do not occur. Swarms of size 3 or more induce larger overall force field effects on one another which decelerates individuals more quickly, thereby preventing crashes.
Nonetheless, Table I illustrates that the simple collision avoidance scheme added to PSO and our own force field schemes are very successful at eliminating crashes in a simulated swarm of agents carrying out the PSO search procedure. This is a highly desirable property that is essential for the application to a real swarm of MAVs.
Number of Drones
Fig. 5 shows how the number of time steps taken to find both goals changes w.r.t. swarm size for each of the algorithms tested. The general trend is that search time decreases as swarm size increases. This is expected from PSO and its variants whereby more information about the search space is generated by running more particles in parallel. Fig. 5 illustrates that FFPSO-LIN had a lower average time of completion than PSO-CA and FFPSO-GRAV for all swarm sizes and PSO for almost all swarm sizes. FFPSO-LIN was 1.42 times faster on average over all swarm sizes compared to PSO. This can be attributed to the collision avoidance mechanism forcing the drones away from each other. This causes a larger swarm divergence and greater coverage across the search space leading to faster convergence to the goal than PSO without collision avoidance. This is most interesting to us and suggests that the inclusion of force fields into PSO does not hinder the convergence rate of the search in this domain. Furthermore, FFPSO-GRAV outperforms PSO-CA in all of the swarm sizes apart from one. Given that both these algorithms lead to no crashes at all, FFPSO-GRAV is the superior algorithm thanks to its increased convergence rate.
V-B Real Environment
The experiments in the real environment were performed using the FFPSO-LIN algorithm on a swarm of 3 Crazyflie 2.0s. Due to battery limitations, the Crazyflie can only fly for a maximum of 1.5 minutes. As observed in Fig. 5, it takes around 2 minutes (10 time steps for each second in the simulation) for FFPSO-GRAV to find both of the goals for a swarm size of 3. To this end, only FFPSO-LIN algorithm was implemented on the real swarm.
The time taken in seconds from locating the first goal ( - in Fig. 6) to locating the second goal ( - in Fig. 6) was recorded for each run. The average time taken was 18.05 seconds over 10 runs which is a reasonably low amount of time for a swarm of 3 drones in this domain and there were no collisions. Fig. 6 shows the flight paths of each of the three CFs in one test. Each CF has their own coloured line representing their path and has a small black circle representing their starting position. As the CFs start searching CF1, shown as the blue line, and CF3, shown as the yellow line, avoid colliding and move away from each other. Later in the run CF1 locates the first goal as indicated by the blue line running near the first goal, then all the CFs change direction and travel in the direction of the second goal. As CF1 travels towards the second goal, CF3 has to avoid colliding with it as intended from the FFPSO algorithm. CF2, shown as the orange line, locates the second goal when it is within distance of detecting it. All of the CFs search for the goals while avoiding crashing into each other.
Fig. 6(a) shows how the distance between the CFs changes through time. The closest two CFs throughout the run are CF1 and CF3 as highlighted by the blue line. The graph shows that although the distance between these two MAVs does drop slightly below the safety threshold during the run, whenever it does, the force field component increases in strength and drives them apart again. Furthermore, Fig. 6(b) illustrates how the distance between the 3 members of the swarm and the second goal changes through time. For the first 200 time steps, all members move gradually towards the first goal (the opposite direction to the second goal). After this peak distance at approximately 200 time steps, all members of the swarm change direction and head towards the second goal, thereby reducing the distance between the members and the goal. Both of these figures illustrate both the collision avoidance and the PSO search procedure working effectively on a real MAV swarm.
Vi Conclusion & Future Work
In this paper, we propose a new algorithm named Force Field Particle Swarm Optimisation by combining force field methods with PSO. We provide a formal mathematical description of the modified PSO and we present and compare two different field types that are used as force fields. To test the performance of the newly proposed algorithm, it is compared in simulation on a varying size swarm of model MAVs to demonstrate its scalability. It is shown that FFPSO greatly reduces the number of crashes between particles to almost zero, whilst not affecting the search time in the case of FFPSO-LIN. The fact that FFPSO-LIN has a smaller search time than the original PSO method may highlight potential improvements that can be implemented in PSO as a generalised search procedure by continuing to impose a greater degree of coverage in the population throughout search; similar principles are employed in ideas such as Novelty Search . We also demonstrate the applicability of our newly proposed algorithm to real aerial robotics via testing on a swarm of MAVs - this shows that the algorithm has the ability to be applied in a real world setting. We believe that our proposed force field methods will be a powerful tool in the future for providing simplistic collision avoidance mechanisms in the field of multi-agent aerial robotics.
Although the FFPSO implementation works well on a real swarm in this work, it is still dependent on a centralised server collecting personal bests, determining the global best and then passing this information to each individual in the swarm. This centralised approach relies on the server being in operation at all times and is less robust than a decentralised approach. Furthermore, it might not be applicable in real world scenarios where communication links with a central server might be severed due to adverse weather conditions, impenetrable materials or the individuals of a swarm drifting out of communication range.
In future, we will look at converting our FFPSO algorithm implementation into a fully decentralised one in which the global best can be propagated to all individuals of the swarm without the use of a central server. We also plan on implementing our algorithms on swarms of greater size. Other MAV platforms such as Parrot drones that have longer flight time will be used to test the robustness of our algorithms on different platforms. This platform also has access to a high quality camera which we can use in order to perform tasks requiring vision such as search-and-rescue.
This work incorporates results from the research project “Aerial Swarm Robotics for Active Inspection of Bridges” funded by the Centre for Digital Built Britain (CDBB), under Innovate UK grant number 90066.
-  S. Chung, A. A. Paranjape, P. Dames, S. Shen, and V. Kumar, “A Survey on Aerial Swarm Robotics,” IEEE Transactions on Robotics, vol. 34, no. 4, pp. 837–855, aug 2018.
J. Kennedy and R. Eberhart, “Particle swarm optimization,” in
Proceedings of ICNN’95 - International Conference on Neural Networks, vol. 4, nov 1995, pp. 1942–1948 vol.4.
-  Y.-D. Zhang, S. Wang, and G. Ji, “A Comprehensive Survey on Particle Swarm Optimization Algorithm and Its Applications,” Mathematical Problems in Engineering, vol. 2015, pp. 1–38, 2015.
-  G. Wang, Q. Li, and L. Guo, “Multiple UAVs Routes Planning Based on Particle Swarm Optimization Algorithm,” in 2010 2nd International Symposium on Information Engineering and Electronic Commerce, jul 2010, pp. 1–5.
-  Z. Wang, X. Chen, and L. Xu, “An Improved Particle Swarm Optimization Algorithm Used for Unmanned Aerial Vehicle Fixed-point Reconnaissance Route Planning,” International Journal of Simulation – Systems, Science & Technology, vol. 16, no. 4B, pp. 221–225, 2015.
-  T. T. Mac, C. Copot, T. T. Duc, and R. D. Keyser, “AR.Drone UAV control parameters tuning based on particle swarm optimization algorithm,” in 2016 IEEE International Conference on Automation, Quality and Testing, Robotics (AQTR), may 2016, pp. 1–6.
-  J. Estevez and M. Graña, “Robust Control Tuning by PSO of Aerial Robots Hose Transportation,” in Bioinspired Computation in Artificial Systems, J. M. Ferrández Vicente, J. R. Álvarez-Sánchez, F. de la Paz López, F. J. Toledo-Moreo, and H. Adeli, Eds. Cham: Springer International Publishing, 2015, pp. 291–300.
-  H. Duan, Q. Luo, Y. Shi, and G. Ma, “Hybrid Particle Swarm Optimization and Genetic Algorithm for Multi-UAV Formation Reconfiguration,” IEEE Computational Intelligence Magazine, vol. 8, no. 3, pp. 16–27, aug 2013.
-  E. Rimon and D. Koditschek, “Exact Robot Navigation Using Artificial Potential Functions,” Robotics and Automation, IEEE, vol. 8, no. 5, pp. 501–518, 1992.
P. Vadakkepat, K. C. Tan, and W. Ming-Liang, “Evolutionary artificial
potential fields and their application in real time robot path planning,”
Proceedings of the 2000 Congress on Evolutionary Computation. CEC00 (Cat. No.00TH8512), vol. 1, jul 2000, pp. 256–263 vol.1.
-  S. S. Ge and Y. J. Cui, “New potential functions for mobile robot path planning,” IEEE Transactions on Robotics and Automation, vol. 16, no. 5, pp. 615–620, oct 2000.
-  V. Gazi and K. M. Passino, “Stability analysis of swarms,” IEEE Transactions on Automatic Control, vol. 48, no. 4, pp. 692–697, apr 2003.
-  D. D. Dudenhoeffer and M. P. Jones, “A formation behavior for large-scale micro-robot force deployment,” in 2000 Winter Simulation Conference Proceedings (Cat. No.00CH37165), vol. 1, dec 2000, pp. 972–982 vol.1.
-  D. H. Kim, H. O. Wang, G. Ye, and S. Shin, “Decentralized control of autonomous swarm systems using artificial potential functions: analytical design guidelines,” in 2004 43rd IEEE Conference on Decision and Control (CDC) (IEEE Cat. No.04CH37601), vol. 1, dec 2004, pp. 159–164 Vol.1.
-  D. Zhou and M. Schwager, “Assistive collision avoidance for quadrotor swarm teleoperation,” in 2016 IEEE International Conference on Robotics and Automation (ICRA), may 2016, pp. 1249–1254.
-  K. Loayza, P. Lucas, and E. Peláez, “A centralized control of movements using a collision avoidance algorithm for a swarm of autonomous agents,” in 2017 IEEE Second Ecuador Technical Chapters Meeting (ETCM), oct 2017, pp. 1–6.
-  J. Pugh and A. Martinoli, “Inspiring and Modeling Multi-Robot Search with Particle Swarm Optimization,” in 2007 IEEE Swarm Intelligence Symposium, apr 2007, pp. 332–339.
-  C. W. Reynolds, “Flocks, Herds and Schools: A Distributed Behavioral Model,” in Proceedings of the 14th Annual Conference on Computer Graphics and Interactive Techniques, ser. SIGGRAPH ’87. New York, NY, USA: ACM, 1987, pp. 25–34.
-  G. Vásárhelyi, C. Virágh, G. Somorjai, N. Tarcai, T. Szörényi, T. Nepusz, and T. Vicsek, “Outdoor flocking and formation flight with autonomous aerial robots,” IEEE International Conference on Intelligent Robots and Systems, 2014.
-  C. Virágh, G. Vásárhelyi, N. Tarcai, T. Szörényi, G. Somorjai, T. Nepusz, and T. Vicsek, “Flocking algorithm for autonomous flying robots,” Bioinspiration & Biomimetics, vol. 9, 2013.
-  S. Hauert, S. Leven, M. Varga, F. Ruini, A. Cangelosi, J. Zufferey, and D. Floreano, “Reynolds flocking in reality with fixed-wing robots: Communication range vs. maximum turning rate,” in 2011 IEEE/RSJ International Conference on Intelligent Robots and Systems, 2011, pp. 5015–5020.
-  A. E. Turgut, H. Çelikkanat, F. Gökçe, and E. cSahin, “Self-organized flocking in mobile robot swarms,” Swarm Intelligence, vol. 2, no. 2, pp. 97–120, dec 2008. [Online]. Available: https://doi.org/10.1007/s11721-008-0016-2
-  C. Pinciroli, V. Trianni, R. O’Grady, G. I. Pini, A. Brutschy, M. Brambilla, N. Mathews, E. Ferrante, G. Di Caro, F. Ducatelle, M. Birattari, L. M. Gambardella, and M. Dorigo, “ARGoS: A Modular, Parallel, Multi-Engine Simulator for Multi-Robot Systems,” Swarm Intelligence, vol. 6, no. 4, pp. 271–295, 2012.
-  J. Lehman and K. Stanley, Novelty Search and the Problem with Objectives, 2011, pp. 37–56.