AIP Conference Proceedings 2226, 030012 (2020); https://doi.org/10.1063/5.0002616 2226, 030012
© 2020 Author(s).
Centralized swarming UAV using ROS for
Cite as: AIP Conference Proceedings 2226, 030012 (2020); https://doi.org/10.1063/5.0002616
Published Online: 22 April 2020
T. Indriyanto, A. R. Rizki, M. L. Hariyadin, M. F. Akbar, and A. A. A. Syafi
Centralized Swarming UAV Using ROS for Collaborative
T. Indriyanto1, A. R. Rizki1, a), M. L. Hariyadin1, M. F. Akbar2, A. A. A. Syafi2
1Faculty of Mechanical and Aerospace Engineering, Institut Teknologi Bandung, Indonesia
2School of Electrical and Informatics Engineering, Institut Teknologi Bandung, Indonesia
a)Corresponding author: email@example.com
Abstract. Recently, UAV technology is growing rapidly. One of the technologies in the UAV is swarming. Many
applications of UAV can utilize the swarming technology, such as collaborative searching, monitoring, and mapping. In
this research, basic structure of swarming system was created. The objective is to develop a system with the ability to
adapt to various operational conditions, such as UAV connection loss and system failure in some UAVs. In such
conditions, the system should be able to generate new mission plan for each UAV based on the number of remaining
UAVs. Since swarming technology can be applied to many purposes, the swarming system has to be created to
accommodate various missions. For this research, ROS framework was chosen because it has been equipped with
complete tools. The swarming system created was then tested using SITL simulation because it can connect to the
swarming system with ease. Several simulations were performed with various number of UAV. Results show that the
created swarming system was able to finish the given missions regardless of the failure in some UAVs. The more number
of UAV utilized, the faster the mission can be finished.
UAV is a developing technology in the community. The AIAA defines a UAV as “an aircraft which is designed
or modified, not to carry a human pilot and is operated through electronic input initiated by the flight controller or
by an onboard autonomous flight management control system that does not require flight controller intervention.”
Many people are competing to develop sophisticated technology of UAV in order to solve many challenges. There
are also remarkable development of UAVs and MAVs for military use. However, it can be said that the infinite
possibilities of utilizing their outstanding characteristics for civil applications remain hidden.1 Many activities are
greatly assisted with UAV technology, such as mapping, monitoring, searching, etc. Many researches have
developed the swarming UAV technology, either for quadcopter or fixed wing, to perform several missions as
described in Refs. 2–6.
In swarming technology, system architecture is important. The use of Unmanned Aerial Vehicles (UAVs) which
can operate autonomously in dynamic and complex operational environments is becoming increasingly more
common.7 Therefore, a system that can be customized to any missions is necessary. In addition to being modular for
any mission, the system has to respond to any disturbance in the field. Various problems can also be solved
using this swarming technology.
The cooperation of heterogeneous vehicles requires the integration of sensing, control, and planning in an
appropriated decisional architecture. These architectures can be either centralized or decentralized depending on
assumptions on the knowledge’s scope and accessibility of the individual vehicles, their computational power, and
the required scalability. A centralized approach will be relevant if the computational capabilities are compatible with
7th International Seminar on Aerospace Science and Technology – ISAST 2019
AIP Conf. Proc. 2226, 030012-1–030012-10; https://doi.org/10.1063/5.0002616
Published by AIP Publishing. 978-0-7354-1985-8/$30.00
the amount of information to process and the exchange of data meets both the requirements of speed (up-to-date
data) and expressivity (quality of information enabling well-informed decision-taking).8
The swarming system that we use is centralized, which means that communication only occurs between the
vehicle and its center, the GCS (Ground Control System). Centralized swarming does not require communication
among the vehicles. If the vehicle wants to give data to another vehicle, it can be passed through the GCS.
In this research, ROS framework was used to develop the system of swarming. SITL simulation was then used to
prove the algorithm of swarming system. Swarming UAV is an advanced technology that can be implemented on
various utilities, especially on a mission involved large area. This research is purposed to create the swarming
system that can adapt to alteration of UAV condition and various number of UAV. At first, the swarming system is
created using ROS. After the creation, the system is tested using SITL simulation.
Robot Operating System (ROS)
Robot Operating System (ROS) has been used as a framework for many robotic applications. The ROS was
chosen because it is an easy to use system with a neat structure and contains many packages developed by many
users. Besides that, ROS also has many tools to facilitate its operation. The ROS was designed to meet a specific set
of challenges encountered when developing large-scale service robots.9
The ROS architecture was designed and divided into three sections or levels of concepts. The levels are File
System level, Computation Graph level and Community level.10 On the File System level, ROS is divided into
several folders, just like general operating system. The smallest part of ROS is a package, in which there are
manifest, messages, services, code, etc. Messages and services are useful for transferring data between nodes, while
nodes are useful for processing existing data. Manifest functions to provide comprehensive information about the
package. The package collection is called stacks.
On the Computational Graph level, ROS already has a structure that connects all existing processes. There are
several important components in this section, namely master, nodes, server parameters, messages, topics, services,
and bags. Nodes function as executable files that contain data processing that can be connected to each other. Nodes
The master is the main core of ROS. Without a master, ROS will not work. The master is in charge of knowing
the location of all existing nodes, so that communication between nodes can be established.
Messages are data sent between nodes. Using message, nodes can communicate between one another. To
distinguish available messages, ROS uses topics so that a channel for messages is created. This concept is used so
that one topic can be subscribed by more than one node.
In addition to using messages, there are other ways to communicate with nodes, namely with services. With the
concept of services user can communicate with node and receive a reply. With the same concept, service parameters
work, parameters of a node or a system can be set with the service concept.
In addition to the components mentioned above, there is also file launcher. File Launcher functions to run
various nodes at once. Furthermore, the file launcher can also run other launcher files. One feature of the file
launcher that is very important is that nodes or launchers can be grouped and given namespace. As a result all t he
topics and services generated in that group will have namespaces.
Mavros is a package that provides communication driver for various autopilots with MAVLink communication
protocol.11 With the Mavros Package, ROS can be used to manage UAV system. Mavros is used by calling an
existing package, namely apm.launch or px4.launch. With the launcher called, topics and services related to UAVs
are ready to use. A list of topics and services that can be used is shown in Fig. 1 and Fig. 2. Users then only have to
create a node to process data from available topics and services.
FIGURE 1. List of Mavros' topics
FIGURE 2. List of Mavros' services
Software in the Loop (SITL) Simulation
SITL (software in the loop) simulator allows users to run Plane, Copter or Rover without any hardware. It is built
on the autopilot code using ordinary C++ compiler, giving users a native executable code that allows testing the
behaviour of the code without the need of hardware.12
FIGURE 3. SITL communication scheme12
Using SITL users can test system that has been created by utilizing UDP connections with port 14550 to Other
GCS as shown in Fig. 3. The results can be checked by looking at the GCS application with a TCP connection port
SITL can be called more than once. One argument when calling SITL is instance. More than one SITL can be
called by giving different instances. Using different instances, different communication ports will be formed, so that
communication between one instance and the other will not collide.
In creating swarming system in ROS, a robust and dependable architecture to control more than one vehicle is
needed. In theory, the system needs to be able to manage countless vehicles.
The system shall also include multiple failsafe actions in reaction to the higher chance of failure in case of higher
quantity swarming, which requires methods to disarm specific failing vehicles safely. After ensuring the safety and
maturity of the system, user need to give the system missions to be performed by the vehicles through swarming
management. The ROS architecture of swarming management for N number of vehicles to do M number of
missions are depicted in Fig. 4.
FIGURE 4. The architecture of swarm system
The swarming system developed in this research is centralized, meaning that all managing algorithm for the
UAVs are put in the GCS. Two main packages were built for development, i.e. swarming management package and
mission management package. The separation are done to ensure that each package is focussing on its own tasks as
part of the whole framework.
The swarming package focuses on managing N number of vehicles currently active and doing the mission, by
monitoring their status and making sure that the vehicles are in the condition to continue the mission. Meanwhile,
the mission package focuses on making sure the vehicles do their mission correctly and efficiently. However, this
does not mean that the package are isolated from each other because topics can be used to communicate between the
two packages if needed.
Swarm Management Package
Two main roles of the swarming management package are to separate data from all the participating vehicles and
separate failsafe management for each vehicles in the mission. Both are key roles in a working swarming system.
Data separation were done by a launcher file, which is named “initialization.launch.” Using this launch file users
can call other launcher by giving namespaces, in this case the apm.launch will be called and will give namespaces to
topics and services which will be generated by the nodes in apm.launch.
For every vehicle connected to the swarming management, the initialization launch will be launched. Not only
does it separate data, it will also forward the already separated data to the GCS application interface. To make this
possible, the use of the gcs_bridge node is needed. The scheme of the data transfer is depicted in Fig. 5.
FIGURE 5. Scheme of data transfer
One of the failsafe functionality is to determine the number of vehicles that are connected and able to continue
the mission. Sometimes some vehicles might suffer from specific conditions that refrain them from continuing on
with the mission, which is why determination of the number of mission-ready vehicles is needed, so that the mission
management can manage the vehicles to cover up for vehicles that are not able to continue the mission. The failsafe
functionality also needs to make sure that the vehicles are safe from harm while doing their mission. In this case the
battery and telemetry parameters can be used to decide whether or not the vehicles can continue their mission. If the
battery and telemetry state are below acceptable status, the vehicle(s) will trigger the RTL mode, make the UAV
returns to the home point.
Mission Management Package
The mission management package varies depending on the mission that need to be done using the swarming
method. Each mission management package will need to share the tasks to all vehicles available and ensure the
mission is done as efficiently as possible. The mission management package will also ensure that each vehicle gets
its share of work and will update every vehicle’s mission every time new vehicle is added to the swarming system.
In this research only simple case of sharing mission is performed.
Two cases were simulated. In the first simulation four quadcopters were used to do a four waypoint monitoring
mission. The test includes simulating connection lost on the fourth vehicle and setting the third one to RTL. The
mission for the quadcopters is depicted in Fig. 6. When the swarming system started, the overall mission divided
into four, initial number of quadcopter. The next scenario is the fourth UAV is disconnected for several reasons.
After that, the overall mission is automatically divided into three because that alteration. The third scenario is the
third UAV enter the failsafe condition (ex: telemetry or battery below the limit). On the third scenario, the overall
mission is automatically divided into two, the number of remainder UAV.
FIGURE 6. The mission for all UAVs in first simulation (indicated by yellow line)
In the second simulation, various numbers of UAV, quadcopter and fixed wing were used. All UAVs monitor
border between the USA and Mexico in straight line. The mission for the UAVs is given in Fig. 7. The length of the
border is 7.5 km and the longest distance from home to border is 4 km. The average speed of the quadcopter is 8 m/s
and the fixed wing is 22 m/s. All UAVs start from the same point, home position in the north of the border line, then
start the mission from the west of each mission. Each UAV monitor in a cycle, starting from the west to the east then
turn around to west again.
FIGURE 7. The mission of UAVs in second mission (indicated by yellow line)
RESULT AND DISCUSSION
In Fig. 8 the response of ROS system using four quadcopter swarming system is shown. In this simulation a new
message type with topic “/swarm/uav_status” was made. The message contains three data, i.e. the connected UAV,
still connected UAV and Mission-ready UAV.
FIGURE 8. Ground Control Station view for second simulation
The waypoints for the swarming mission on the UAV1 was then loaded. An algorithm in the system was
developed to calculate and assign mission automatically. The whole mission is shown on Fig. 9, as well as the
division for each UAV: Fig. 9(a) for UAV1, etc.
FIGURE 9. The mission for four UAVs
UAV4 was then disconnected. The system recognized only three connected and active UAVs. As a result, the
system will automatically calculates and assign new waypoint to cover UAV4’s share of the mission: Fig. 10(a) for
FIGURE 10. The mission for three UAVs after UAV4 disconnected
UAV3 flight mode was then set to RTL to simulate failsafe function. This event made the number of mission-
ready UAV decrease again to two, so the system will generate newer waypoint for the remaining UAV: Fig. 11(a)
for UAV1 and 11(b) for UAV2.
FIGURE 11. The mission for two UAVs after UAV3 returned home
In the second simulation, time needed to complete the mission was recorded. The mission is completed when all
UAVs have performed a full circle two times to monitor their own line. The time is started when the UAV’s mode is
AUTO in home position.
TABLE 1. Simulation with various number of quadcopter UAV.
Number of UAV
Time for Completing Mission
41 minutes 4 seconds
26 minutes 19 seconds
20 minutes 21 seconds
17 minutes 5 seconds
16 minutes 1 second
Table 2. Simulation with various number of fixed wing UAV.
Number of UAV
Time for Completing Mission
16 minutes 8 seconds
8 minutes 35 seconds
6 minutes 37 seconds
Simulation showed that the architecture of swarm system can be operated for any number of UAVs. The
flexibility in the number of UAV is important because each mission has different needs, so the number of UAV can
be varied. The system also showed resistance from interference caused by lost signal or UAV return to home. If
there is an interference amid mission, the system will generate new mission for each UAV automatically. When a
UAV lost connection, new missions are generated for each remaining UAVs. When a UAV do a failsafe by
returning home, new missions are generated for each remaining UAVs as well. This system can be developed for
different types of missions, based on mission packages that were created. For collaborative mission, it has been
proven that using more UAVs, there is a decrease in time for completing the mission. By adding number of UAV
from one to two, there is a significant decrease; however, with more number of UAVs the time reduction is less and
The research is funded by ITB through its research program P3MI 2019 ITB. This work is supported by
Aksantara UAV Research and Development Team ITB.
1. K. Nonami, et al., Autonomous Flying Robots: Unmanned Aerial Vehicles and Micro Aerial Vehicles
(Springer, Tokyo, 2010), p. 2.
2. A. Bandala, et al., “Swarming Algorithm for Unmanned Aerial Vehicle (UAV) Quadrotors: Swarm Behavior
for Aggregation, Foraging, Formation, and Tracking,” J. Adv. Comput. Intelligence and Intelligent Inf. 18,
3. X. Zhua, Z. Liu, and J. Yang, “Model of Collaborative UAV Swarm toward Coordination and Control
Mechanisms Study,” J. Procs. 51, 493 (2015).
4. H. V. D. Parunak, S. A. Brueckner, and J. J. Odell, “Swarming coordination of multiple UAV’s for
collaborative sensing,” in Proceedings of 2nd AIAA Unmanned Unlimited Systems (AIAA, San Diego,
5. A. L. Alfeo1, et al., “Swarm coordination of mini-UAVs for target search using imperfect sensor,” Intelligent
Decision Technologies 12, 1 (2018).
6. A. P. Lamping, et al., “FlyMASTER: Multi-UAV control and supervision with ROS,” in 2018 Aviation
Technology, Integration, and Operations Conference (AIAA, Atlanta, Georgia, 2018).
7. K. Dalamagkidis, K. P. Valavanis, and L. A. Piegl, “Current status and future perspectives for unmanned
aircraft system operations,” J. Intell. Robot Syst. 52, 313.
8. I. Maza, et al., in Handbook of Unmanned Aerial Vehicles, edited by K. P. Valavanis and G. J. Vachtsevanos
(Springer, Dodrecht, 2015), p. 957.
9. M. Quigley, et al., “ROS: an open-source Robot Operating System,” in ICRA Workshop on Open Source
Software (Kobe, Japan, 2009), p. 5.
10. A. Martinez and E. Fernandez, Learning ROS for Robotics Programming (Packt Publishing, Birmingham,
2013), p. 25.
11. V. Ermakov, Mavros documentation, 2018, available at http://wiki.ros.org/mavros [Accessed on 21 August
12. Ardupilot Development Team, SITL Simulator (Software in the Loop), 2019, available at
http://ardupilot.org/dev/docs/sitl-simulator-software-in-the-loop.html) [Accessed on 21 August 2019].