Swarm robotics is a dynamic research field that integrates two important concepts: Swarm Intelligence (SI) and Multi-Robotics System (MRS).
Swarm Intelligence (SI) is inspired by simple behaviors and self-organization of organisms such as ants, birds, bees, fishes, bacteria, wolves, and so on 
. It can be defined as the collective intelligence that emerges from simple interactions between a large group of autonomous agents 
. SI systems usually consist of a simple agents group, where all individuals interact locally with each other and their environment, with the purpose of achieving a global behavior 
. Generally, agents do not possess global data about the state of its world, nor the task they are working on.
On the other hand, MRS consists of multiple robots sharing a workspace in order to perform assigned tasks. These tasks can be difficult or impossible to accomplish for a single robot 
. There are several advantages of using MRS, such as an increasing ability to resolve task complexity and improving performance, reliability and simplicity in design 
Swarm robotics (SR) is an area of knowledge within multi-robotics systems, and has its origins in the application of Swarm Intelligence to the field of robotics 
. Particularly, SR studies how to design a large number of relatively simple physically embodied agents. SR seeks a collective behavior based on local interactions among agents and their environment 
In order to be considered a swarm and not only a MRS, a group of robots should have most of the following characteristics:
it is defined as the ability to perform planned tasks based on current state and sensing, without human intervention 
. Thus, all robots of the swarm must have a real body and be able to physically interact with the world without outside intervention 
each robot must have the same design, functionalities and share the same control algorithm 
. Homogeneity is usually wanted because heterogeneity lowers the degree of redundancy, which may reduce robustness if it is not considered carefully 
. However, it has become more common to find works that employ a restrained heterogeneous swarm. In these, robots are designed as a small set of different agent types, that can be put together in order to accomplish a task collaboratively 
the formal definition of a swarm implies having “a large number” of agents, however, a minimum group size is difficult to decide on and justify. For instance, a swarm of 10 to 20 robots may seem enough for laboratory tests, but if they are deployed in an area of several square kilometers, this number may seem insignificant 
a key idea in SR systems is to use relatively simple robots. Thereby, robots might not be able to efficiently carry out tasks on their own, but they would be highly efficient by cooperating with others 
. As mentioned in 
, even though robots must be simple, this does not impose any restrictions on the hardware or software complexity of the robots. The simplicity of individual robots should not be taken in absolute terms, but relative to the task.
Communication and control schemes:
two main approaches can be used to manage communication and control of a robotic system: centralize and decentralize. Centralized schemes have a main entity which collects and synthesizes data from all the agents and, in some occasions, tells them how they should operate on a global level 
. They have the advantage of offering direct control over each agent and making it easy to predict the overall system behavior. On the other hand, decentralized systems use distributed communication and control mechanisms 
. Among their advantages are the following: (i) It reduces delays and bottle necks associated with centralized processing; (ii) It reduces failures associated with agent loss; (iii) It naturally exploits parallelism.
The swarm algorithm and collective behavior should be effective enough to allow scalability, robustness and flexibility of the system.
Scalability is accomplished when the system can operate under a wide range of group sizes (from a small number to several thousand individuals or more) without decreasing performance 
. In 
it is mentioned, as a good practice, to use local sensing and communication to accomplish scalability 
Robustness is defined as fault tolerance and fail-safety 
. The system should be able to continue functioning even with the loss or malfunction of some robots. Robustness can be attributed to (i) redundancy in the system, in which any individual can be compensated by another one, (ii) decentralized coordination and (iii) simplicity of the individuals 
Finally, flexibility refers to the ability of adapting to new, different and/or changing requirements of the environment 
Even though SR use derives plenty of advantages, it is often difficult to design a robot’s behavior in order to achieve the desired global performance 
. For this reason, simulation, modeling and learning approaches are used.
Simulation, where a virtual scenario and swarm are created, is used to analyze robot capabilities (sensors and actuators) and programming algorithms. By replicating simulation experiments, the swarm performance can be improved without run-time-consuming experiments with real robots 
. Since it is not always possible to build large groups of physical robots, simulations are a good option to test swarm algorithms on a large scale 
2. Simulators for Swarm Algorithms
Simulators are an intermediate step between abstraction, such as mathematical models, and real validation using physical robots. Simulations and modeling are some of the most used tools to analyze and validate swarm robotics systems 
2.1. Software Examples
There are many kinds of platforms, software, and algorithms to simulate robots based on different objectives and types of robot. For example, there are 2D and 3D simulators with specific algorithms to design, analyze and compare swarms.
is a free C++ library that simulates multiple mobile robots with a size capacity of up to 100,000 agents. It presents advantages such as code reuse, transparency, experiment replication and modification. Stage is able to simulate mobile robots with several sensors and actuator models, such as infrared rangers, scanning laser rangefinder, color-blob tracking, fiducial tracking, bumpers, grippers and mobile robot bases with global localization (odometric) 
. It provides good performance on tasks such as exploration and foraging, but not for modeling trail-following or cooperative behaviors.
is a robotic simulator in which collective interaction is exploited by the swarm intelligence mechanism. Its control layer can be extended to the physical level and its use has been reported in experiments with up to 40 robots 
. It is a powerful tool, but it is not publicly available. It allows to simulate properties such as robustness, flexibility, and it has the ability to solve complex problems by exploiting parallelism and self-organization 
2.2. From Simulation to Reality
Most of the time, it is not possible to simulate all aspects of reality. For instance, some simulated sensors and actuators are free of noise and interference. Moreover, simulators usually do not take into account all environment interactions such as friction, luminosity, temperature, wind or dust. Robot internal interactions are also challenging to consider on simulators. This may include battery life and energy level, component degradation and failure, sensors and actuators limitations due to static friction, backslash, hysteresis or saturation.
Simulated data sets and environments are far from interactions, details, and situations experienced in the real world. In that sense, virtual reality comes to generate realistic and plausible data for a wide variety of problems. For instance, UnrealROX is an environment built to reduce that reality gap, in which robot agents explore environments and interact with real objects in a simulated world 
3. Real-Life Swarm Robotics Platforms
Research on swarm robotics uses simulations and real-life implementations to test and evaluate swarm behavior designs. Most swarm robotics use several identical mobile robots as swarm agents. A buoyant development of these robots has been noted in the last few years, all of them looking for a balance between cost and capabilities.
Mobile robots such as E-puck, Khepera and Kilobot have been widely popular among swarm robotics researchers, appearing in publications across the globe and still present nowadays. It should be noted that these robots share the feature of being commercially available, which increases their accessibility to research groups.
were developed by École Polytechnique Fédérale de Lausanne (EPFL) and are differential drive robots with two stepper motors. Notably, they can perform odometry by tracking step counts 
features 8 infrared (IR) sensors, a color camera, which can be used for obstacle detection, and some other sensors such as accelerometers and microphones 
. Inter-robot communication is achieved by using the IR sensors and Bluetooth. Additionally, they are controlled by a dsPIC30 microcontroller 
. An E-puck robot is sold at a retail price of USD 1000 
robots are notorious in academia, they are developed and sold by K-Team (an EPFL spin-off). Kheperas
have gone through several iterations, with Khepera IV
being the latest. It is a differential drive robot with two DC motors and several options for odometry: magnetic encoders, accelerometer and gyroscope. Additionally, it presents a large array of sensors to be used for obstacle detection, such as 12 IR sensors, 5 ultrasonic sensors, and a color camera 
. Communication with other robots or with a base is achieved by Bluetooth or WiFi 
. Moreover, they present a control architecture with an ARM Cortex-A8 processor and a dsPIC33 microcontroller 
. Khepera IV
robots have a price of approximately USD 3200, with documentation and support available in 
4. Swarm Robotics Applications
Swarm robotics can be applied in many fields, for example, formations, mapping, localization, path planning, object transport and manipulation, coverage, aggregation, foraging, object assembly, self-assembly, tracking, and others 
Navigation in swarm robotics refers to the scenarios where a robot, with limited sensing and localization capabilities, is able to reach a target in an unknown location with the help of other robots 
Cardona and Calderon in 
develop research on swarm robotics navigation aimed at victim detection. The navigation strategy is based on the application of particle swarm theory, where the attraction and repulsion forces of swarm particle systems are used to avoid obstacles, keep the swarm compact, and navigate to a target location. Once an agent finds a victim, it separates from the main swarm by creating a sub-swarm. The sub-swarm agents use a modified rendezvous consensus algorithm to perform formation control around the victim.
In SR, foraging refers to finding items scattered in environments and bringing them back to a specific area called the “nest” 
Talamali et al. in 
propose a collective foraging system based on virtual pheromones. It was tested both as a computer simulation and with 200 real robots. The physics-based simulations were conducted with ARGoS. For the real swarm, an augmented reality for kilobot software (ARK) was used in order to simulate the pheromone. The results showed that simple behaviors generally reduce the impact of the reality gap and preserve consistent dynamics in reality.
Castello et al. in 
present a division of labor algorithm for a simple foraging task that acts to maintain a target amount of food at the nest despite consumption rates that vary over time. Its algorithm, the adaptive response threshold model (ARTM), showed to be efficient in achieving adaptive workload distribution for a small-sized robot swarm. ARTM also reduces a common problem of real robots: the duration of collisions among them. The experiments were carried out both in simulation and with a real swarm. For the simulation, a multi-robot simulation library STAGE was used. For the physic swarm, they used five e-pucks.
Exploration in SR systems refers to the collective behavior in which robots cooperate to explore an environment in order to accomplish some tasks such as monitoring, surveillance, space coverage, and others 
Duarte et al. in 
propose the use of swarm robotics systems to carry out marine environmental monitoring missions, focusing on the control of temperature. They conduct a simulation-based evaluation of the robot’s performance over large areas and with large swarm sizes. Moreover, they implemented their proposal in a real aquatic swarm composed of eight units. The results showed that the use of swarm systems is useful in environmental monitoring tasks that involve covering areas.
Aggregation is one of the most fundamental swarm behaviors frequently observed in nature. It refers to the task in which each individual positions themselves close enough to each other in one specific place 
Amjadi et al. in 
propose a method that combines the BEECLUST algorithm with pheromone-following behavior to solve the problem of finding the source of a chemical leakage and clean the contaminated area. They conducted experiments with a simulated model of a Mona robot in the Webots software. The effects of population size and robot speed on the ability of the swarm in a decontamination task were analyzed. The results showed the feasibility of deploying robotic swarms in an exploration and cleaning task in an extreme environment.
4.5. Other Applications
Collective Decision or Consensus behaviors are the general names for the collective generation of a choice in a swarm. E-puck robots were validated with this type of behavior. Each robot sent its current action (right or left wall following) to the rest of the swarm. Therefore, based on actions from fellow robots, a single agent can change its direction with a probabilistic decision. In addition, the power of the communication transmission was varied during the experiment. An inverse correlation between power intensity and time to achieve consensus has been observed 
Thymio robots have been validated both as an educational tool and as a robotic swarm platform. The latter was achieved by implementing a Collective Decision algorithm inspired by house-hunting honeybees 
. In this case, Thymio robots were assigned a role as bee or nest. Bees looked out for a nest and committed to it based on a value-sensitive decision. Consequently, consensus was achieved in a few minutes in all cases 
A branch of Consensus behavior is Rendezvous
algorithms. They, in general, consist of a group of robots that seek to meet in a physical space and create a cluster. For example, GRITSbot robots were validated by performing random walks on two agents until they enter a mutual sensing range and reach each other. Successful rendezvous was achieved with two robots in 
and with six robots in 
A biologically inspired behavior, commonly used in robotic swarms, is Formation Control
. Kilobots were also validated with this behavior in 
. A swarm of six Kilobots successfully achieved a collective performance by following a leader through a path. Additionally, GRITSbots were validated with Formation Control in 
. A group of six robots started at random positions and then achieved a hexagon formation.
Swarm robotics combines Swarm Intelligence with Multi-Robot Systems. In order to be considered a swarm, a group of robots should have autonomy, homogeneity, large number, limited capabilities, and a specific communication and control scheme. In most cases, swarms of robots are designed and defined for a specific behavior or application.
Simulation and modeling are useful tools to approach or deepen the designs and behaviors of robots. In general, robot simulators are developed with a specific objective, for that reason, most of the time, it is not possible to compare them. Each researcher must take into account the specific characteristics of each software, and choose the one whose features best suit their needs.
Virtual reality is a possible middle step between simulation and reality in robotics research. Even though it is not possible to simulate all aspects of reality, these kinds of simulations are often used to allow having a glimpse of how a swarm will behave in real life. These types of experiments have been increasing, mainly because they are faster to generate and less expensive and time-consuming.
However, working and experimenting with real-life robots is a necessary stage towards evolving the research around the subject. Nowadays, robots are developed with different intentions, for instance, they might focus on education or industrial production. When robots are intended for swarm robotics research, usually, they are validated by creating a robotic swarm with a known behavior, and then the collective response is tracked.
Most real robot experiments presented in the literature were performed in controlled environments, far from the scenarios which they are assumed to recreate. This shows that there are still many open problems around the subject. Only further research will help in taking swarm robotics to next level.