1. Introduction
In recent years, the concept of smart cities has been developing rapidly. The main goal of smart cities is improving the quality of the life of the residents [
1,
2,
3,
4]. Smart cities deploy many different sensors to capture information from different parts of the city, such as on traffic, air pollution, waste, rain and snow, electric grids, etc. [
5,
6,
7]. Different parts of the smart cities make up the smart environment, such as smart water, smart metering, security and emergency, retail, logistic, industrial control, smart agriculture, smart animal farming, domotic and home automation, and eHealth [
8,
9]. Different types of fixed and mobile means are proposed to achieve the abovementioned goals.
Unmanned aerial vehicles (UAVs) or drones are the main mobile means to perform different functionalities [
10,
11,
12,
13,
14,
15]. For a decade, autonomous systems have received more attention than before, which has led to the invention of a wide range of mobile vehicles with various configurations [
16]. For example, drones are categorized in a broad spectrum and equipped with different types of sensors. Drones can perform various types of missions in urban environments as well as indoor spaces depending on their shape, size, and capabilities [
16]. To perform different types of missions in smart cities, drones should be able to satisfy given performance requirements, such as high performance, high endurance, hovering capabilities, robustness, and the ability to withstand potential obstacles [
17]. In smart city applications, drones equipped with various sensors can be used for reconnaissance, surveillance, delivery, search and rescue, and other missions that cannot be carried out without multifunctional sensors [
18].
As the applications of drones are increasing, it is expected that they will play a key role in the future of smart cities. Information and communication technology (ICT) solutions are used in smart cities for various applications. Generally, the design of smart cities requires the integration of ICT and other physical tools, infrastructure, and services [
8]. Unmanned aerial systems, as one of these physical tools, can contribute to achieving the future goals of smart cities. The use of drones in smart cities will continue to increase at a fast pace, due to their diverse applications.
Different researchers have performed studies on the uses of drones in smart cities. For example, Mohammed et al. in 2014 investigated the applications of drones in smart cities, in addition to their challenges and opportunities [
19]. In 2014, Yu et al. described a cooperative path planning algorithm for tracking a moving target in urban environments using both drones and autonomous ground vehicles. This algorithm was able to consider the vision occlusions due to obstacles in urban environments. In this work, a dynamic occupancy grid was used to model the target state [
20]. In 2015, Ataei and Paschalidis deployed multirotor drones for surveying damage and providing aid after disasters. They provided object avoidance algorithms and path planning that depend only on local environmental sensing [
21]. Foina et al., in 2015, focused on the using of microdrones in highly populated cities to deliver goods and information. They proposed a cloud-based system for city-wide unmanned air traffic management and the analysis of control systems for collision avoidance [
22]. A similar study was also carried out by Gallacher in 2015 for utilizing high- and low-altitude drones for urban environmental analysis and addressing the concerns about their security, privacy, and safety [
23]. In 2016, Vattapparamban et al. discussed the technical and societal concerns and challenges that need to be addressed in smart cities, such as privacy, cybersecurity, and public safety [
24]. In the same year, Jensen also addressed drones and their potential relationship with the city from a “motilities design” point of view [
25].
Menouar et al. highlighted the challenges and potential of drone-enabled ITS for the next generation of smart cities in 2017 [
26]. In 2018, Asghar Khan et al. elaborated the key role of unmanned aerial systems in a smart city for applications such as traffic monitoring, policing, package delivery, ambulance drones, pollution control drones, and firefighting and rescue operations [
27]. In 2018, Yang and Yoo used multi-objective bio-inspired algorithms to develop an optimal flight path planning approach for drones [
28]. In their methodology, they applied ant colony optimization and joint genetic algorithm to find possible drone flight paths, considering energy, time, and risk utilities [
28]. Bahabry et al., in 2019, proposed a path routing approach for multiple multirotor drones in urban environments with the presence of different obstacles with different heights [
29]. The objective of their work was to find the best trajectories in urban areas while ensuring collision-free navigation. In this work, a mixed-integer linear program was developed to achieve the optimal navigation of the fleet [
29]. In 2019, Ghazzai et al. developed a generic management framework of drones for intelligent transportation systems applications [
30]. In this study, they investigated the problem of charging station placement in urban environments to find the best locations for a given number of stations and drones. The flying time and the risk of battery failure of the drone during the mission were taken into consideration. Ghazzai et al. applied particle swarm optimization algorithm and a penalized weighted k-means algorithm for this purpose [
30].
As discussed above, besides the research performed on path planning and collision avoidance in smart cities, the safety and crash resilience of drones in these cluttered environments is important. Thus, the configuration of the drones operating in smart cities should be taken into consideration. There have been some efforts toward designing and manufacturing drones that can fly safely in the presence of people and obstacles. In 2012, Briod et al., inspired by insects, developed a new class of flying robots that can recover from collisions [
31]. Mulgaonkar et al., in 2016, designed, fabricated, and tested a novel lightweight yet sturdy cage for micro aerial vehicle drones [
32]. In 2018, Sareh et al. designed and developed a novel impact protection system for a drone to be able to fly easily, safely, and efficiently in cluttered environments [
33,
34]. Recently, spherical drones and drones with cages have been designed for confined spaces and can be also applied in urban environments [
35,
36].
Most previous studies focused on the applications of drones in smart cities, path planning, and urban obstacle avoidance. There are no consolidated efforts in terms of how drones should be distributed and how they can be more efficient in terms of energy in smart cities. One of the main issues raised about applying drones in smart cities is assigning the charging stations for drones before and after performing the missions. Drones, after performing their missions in a smart environment, should be able to return to their stations to be recharged. The main objective of this paper is to determine which station is most suitable for a drone to land at after accomplishing its mission. Thus, in this paper, we propose an innovative concept for the optimized networking and assigning of stations for drones. The Kuhn–Munkres and greedy algorithms are used to minimize the power required for the drones to land in the defined stations in smart cities.
The rest of this paper is organized as follows. In
Section 2, the applications of drones in smart cities are presented. Drones’ nests and charging stations are discussed in
Section 3. In
Section 4 and
Section 5, drone–nest matching and the Kuhn–Munkres algorithm for power consumption of drone stations are described, respectively. Matching demonstration through Kuhn–Munkres and greedy algorithms is presented in
Section 6. A summary and conclusions are given in
Section 7.
3. Drones’ Nests and Charging Stations
Inspired by the nests of birds, different objects available in cities can be considered as possible stands for drone stations. These stations can be used for charging and protecting the drones. Various stations have been designed by companies like Amazon to charge drones. Amazon has recently patented docking stations that can be integrated into buildings, streetlights, power poles, and cell towers [
37]. In 2017 SkyX Company made a vertical takeoff landing fixed-wing drone that can land on small charging stations set up in fields alongside oil and gas pipelines [
38]. The designed drones are able to fly long distances and leap from station to station to recharge [
38]. Riskmatrix Company has also designed a drone docking station at which drones can be stationed in standby mode and be protected against bad weather conditions [
39]. Some researchers also proposed docking mechanisms for charging the drones. For example, in 2015, a spherical drone-docking concept was designed by Bruni and Sardo to provide a place for drones to settle during bad weather and between tasks [
40].
Since nature has developed processes, objects, and materials to increase its efficiency, it has the best solutions when we seek to improve or optimize a system [
41,
42,
43,
44]. Nature and especially birds’ nests and locations provide ideas for designing stations for drones in smart city applications. In
Figure 2, different types of birds’ nests are shown.
Lighting poles are used as stations for solar panels and traffic control cameras. These lighting poles also can be used as possible places for charging stations of the drones. These lighting poles are mostly available in locations such as parks, beaches, highway interstates, downtown, etc. To this end, different mechanisms/structures can be designed and attached to the lighting poles as drone stations. The drone stations are able to charge the drones and also protect them from rain or other possible dangers. In
Figure 3, a view of the proposed concepts and stations for smart cities is given.
5. Kuhn–Munkres Algorithm for Power Consumption of Drone–Nest Matchings
To minimize the power required for the drones to land in the defined nests in an urban area, the Kuhn–Munkres algorithm, also called the Hungarian matching algorithm, is used. Maximum- and minimum-weight matchings in bipartite graphs can be found through the Hungarian matching algorithm. Drones and their stations form a bipartite graph that can be easily represented by an adjacency matrix. In the matrix formulation of the Kuhn–Munkres algorithm, a nonnegative n×n matrix is considered, where the elements in the i-th row and j-th column represent the cost of assigning the j-th station to the i-th drone. Through this algorithm, the assignment of the nests to the drones will be done: each station is assigned to one drone and each drone is assigned one station, such that the total energy cost is minimal. Two different cases will be investigated in this study. First, it is assumed that all the drones have a similar level of energy and, second, drones have a different level of energy.
The Kuhn–Munkres algorithm can be described using a bipartite graph. For this study, the bipartite graph is represented as
G = (
D,
S;
E) with
n drone vertices (
D) and
n station vertices (
S), and each edge (
E) has a nonnegative cost
c(
i,
j). The main objective is to find the minimum total required energy. In the Hungarian matching algorithm, a potential function is defined as
if
for each
. The value of potential function
y is calculated as the sum of the potential over all vertices (
v) as follows [
45]:
In this algorithm, the total required energy of the matching is the sum of energy for all edges. The energy of each edge is at least the sum of the potentials of its endpoints. Each vertex is considered as an endpoint of exactly one edge since the matching is perfect and the total required energy is at least the total potential. In drone–nest matching, the Kuhn–Munkres algorithm finds a perfect match and a potential such that the matching required energy equals the potential value. In this study, the Hungarian algorithm finds a perfect match of tight edges. For a potential y, if , an edge ij is called tight. If a subgraph of Gy is considered for a tight edge, the required energy or cost for a perfect match in Gy is equal to the value of y. In the Kuhn–Munkres algorithm, a potential y and an orientation are maintained where has the property that the edges oriented from S (station) to D (drone) form a matching M. At first, the potential y is 0 everywhere and all the edges are oriented from D (drone) to S (station). After that, in each step, y is modified so that its value increases or the orientation is changed to achieve matching with more edges.
In general, it is assumed that
and
are the vertices not covered by
M. In other words,
RD and
RS consist of the vertices in
D and
S with no incoming and outgoing edges, respectively.
Z is considered as a set of vertices reachable in
from
RD by a directed path only following edges that are tight. Two different conditions are assessed here, as follows [
45]:
In this case,
since there are no tight edges between
and
. Then, on the vertices of
,
y is increased by
; on the vertices of
,
y is decreased by
. These steps are repeated until
M is a perfect match and provides the minimum energy required for drones to land in the stations. In
Figure 4, a schematic view of the bipartite graphs for drones and their stations is shown.
As noted before, the Kuhn–Munkres algorithm can also be represented by an adjacency matrix. In this case,
n drones and
n stations create an
n×
n matrix containing the cost (energy level) of assigning each drone to a station. The objective of this matrix is to find the cost-minimizing assignment or, in other words, saving the energy for drones. This problem can be written in the form of a matrix. In
Table 2, a view of the matrix interpretation of the Kuhn–Munkres algorithm is shown, where D
1, D
2, D
3, and D
4 are the drones that should land on stations S
1, S
2, S
3, and S
4; and
d,
ED, and
ES represent the distance between the drones and the stations, the energy remaining for each drone, and the energy of the charging stations, respectively.
RED and
F represent the remaining energy and aerodynamic drag force of each drone, respectively. The matrix is square so that each drone can land on one station. Various cases are considered in this study, as will be discussed in the following.
In Scenario (1), it is assumed that all the drones have the same level of remaining energy. In Scenario (2), the matching will be carried out for drones with different levels of energy; in Scenario (3), the drones and charging stations have a different level of energy. It should be noted that in all three cases the drones are the same and have different distances to the stations. The remaining energy for Scenarios ((1) and (2)), and (3) are given by the following equations:
where
RED&S is the total remaining energy for drones and stations.
The general steps for adjacency matrix representation of the Kuhn–Munkres algorithm for the four drones and stations are discussed below:
Step 1: The remaining energy (
RE) is written in the form of a matrix:
Step 2: Row operations are carried out on the above matrix. First, the lowest value of remaining energy of all
REi (
i, 1–4) is subtracted from each element in that row. This will lead to at least one 0 appearing in that row. Multiple zeros can be obtained once there are equal elements. This procedure is repeated for all rows. Therefore, a matrix with at least one 0 per row is achieved. In the next step, stations are assigned to drones such that each drone is landing only on one station and the penalty incurred in each case is 0. The matrix will be as below. The zeros are the assigned stations.
Step 3: In a case where there is more than one 0 in each column, no assignment can be made. In other words, two drones cannot be assigned to one station. To overcome this, the procedure is repeated for all columns. For example, for the case below:
All zeros in the matrix must be covered by marking as few rows and/or columns as possible. To accomplish this, as many stations as necessary are assigned. For example, as shown in the matrix of Equation (8), the first row has one 0, so it is assigned. The 0 in row 3 is crossed out since it is in the same column. The second row has one 0, so it is also assigned. The third row’s only 0 has been crossed out, hence nothing is assigned. The fourth row has two uncrossed zeros; therefore, one can be assigned and others can be crossed out. The shown matrix in Equation (3) will be converted as follows:
In the next step, the third row that does not have an assignment, the first column that has zeros in a newly marked row, and the first row that has an assignment in the newly marked column are marked. This process is also repeated for all non-assigned rows. Lines are drawn through all marked columns and unmarked rows. For this example, the matrix will be shown as:
Step 4: Of the remaining elements, the lowest value is found, subtracted from every unmarked element, and added to every element covered by two lines. Steps 3 and 4 are repeated until an assignment is possible; this is when the minimum number of lines used to cover all the zeros is the maximum. The procedure is repeated until the drones are in stations with the minimum value of expended energy.
As shown in
Table 1, there are different scenarios for matching the drones and stations in smart cities. Different scenarios can be analyzed here based on defined assumptions including (1) drones after performing their missions have the same level of energy (in this case it is assumed that the battery of a drone is charged after accomplishing its task); (2) drones after performing their tasks have a different level of energy, but they will go back to the stations with the same level of energy; (3) drones have different levels of energy and will go back to the stations with different levels of charging.
5.1. Matching of Drones with the Same Energy Level to the Stations
The Kuhn–Munkres algorithm is compared with a preassigned method for deploying drones with the same level of energy towards missions or stations. As an example, for different numbers of missions, stations, and drones with random locations and the same level of energy, the total flight distance or consumed energy can be calculated. In
Figure 5a,b, the comparison between two different matchings including the ordered (each drone goes to its assigned mission/station) and Kuhn–Munkres algorithm is shown.
As can be seen in
Figure 5a, there is a considerable savings in energy if the drones are assigned to missions/stations based on the Kuhn–Munkres algorithm.
Figure 5b indicates that the Kuhn–Munkres algorithm is the best way to save on distance and, consequently, energy for drones. It is clear that for more than 50 drones and missions, there is a more than 80% energy (distance) reduction when the Kuhn–Munkres algorithm is used for matching drones and missions compared to the already assigned ones. The results demonstrate that power and energy can be saved if the Kuhn–Munkres algorithm is applied for assigning stations for different missions in smart cities.
In
Figure 6a,b, the total energy consumed by each individual drone of a group of 500 drones/stations is shown, based on preassigned and Kuhn–Munkres drone–nest matching, respectively. The results indicate that the individual drones that are deployed to the nest/mission through the Kuhn–Munkres algorithm are consuming less energy than the preassigned matchings.
In
Figure 7a,b, the sorted total consumed energy for each drone is shown for preassigned and Kuhn–Munkres matching, respectively. It can be seen from
Figure 7a–c that the trend of sorted total consumed energy for preassigned drone–mission/nest matching is linear, while for Kuhn–Munkres matching it is not, and the changes of energy are almost constant in this case. As shown in
Figure 7a–c, the energy required for each individual drone to be matched with a nest/mission through the preassigned method is more than with the Kuhn–Munkres algorithm.
In
Figure 8, the energy-saving percentage of matching through the Kuhn–Munkres algorithm compared to the preassigned method for each individual drone with similar initial energy is demonstrated. The bar graph indicates that most of the drones can save almost 90% of their energy.
5.2. Matching of Drones with Different Energy Level to Stations
For numbers of missions, stations, and drones with random locations and different levels of energy, the total consumed energy is calculated. In
Figure 9a, the comparisons of total consumed energy for drones with different levels of energy through the Kuhn–Munkres algorithm, greedy algorithm, and preassigned matching are shown. In the greedy algorithm, the matching is initiated with a drone with the lowest level of energy, and it goes to its nearest station.
Figure 9b indicates the energy-saving percentage of the Kuhn–Munkres and greedy algorithms compared to preassigned matching and Kuhn–Munkres compared to the greedy algorithm. As seen in
Figure 9a, preassigned drone–nest matching consumes more energy than the other matching methods. Matching through the Kuhn–Munkres algorithm, in this case, shows a similar trend to the greedy algorithm, but with less energy consumed.
Figure 9b presents an average energy savings of more than 40% for the Kuhn–Munkres and greedy algorithms compared to preassigned matching. The energy savings of matching through the Kuhn–Munkres compared to the greedy algorithm has a smaller value once the number of drones increases. For matching more than 200 drones and stations, an energy savings of more than 2% can be achieved for the Kuhn–Munkres algorithm compared to the greedy algorithm. It is visible from
Figure 9a,b that the Kuhn–Munkres algorithm is the best method for nest matching of drones with different levels of energy.
Figure 10a–c show the total energy consumed by each individual drone of a group of 500 drones with different energy levels, based on preassigned, greedy, and Kuhn–Munkres drone–nest matching, respectively. The following graphs demonstrate that the matching of drones and nests in smart cities through Kuhn–Munkres and greedy algorithms is more efficient in terms of the total consumption of energy compared to preassigned matching.
Figure 10b shows that the total energy consumed by individual drones in matching through the greedy algorithm has lower fluctuations than preassigned and Kuhn–Munkres drone–nest matching due to the type of algorithm. The sorted total consumed energy for each individual drone with different levels of energy is indicated in
Figure 11a–c for preassigned, greedy, and Kuhn–Munkres matching, respectively.
Figure 11a–d shows that the sorted total consumed energy for individual drones through greedy and Kuhn–Munkres matchings is more linear and has lower values than the preassigned matching.
Figure 12 shows the energy-saving percentage of drone–nest matching through the greedy algorithm compared to preassigned, and Kuhn–Munkres algorithm compared to preassigned and the greedy algorithm for each individual drone with a different level of initial energy. The bar graphs in each comparison indicate a mean and median energy savings of 27% and 41% for the greedy algorithm compared to preassigned, 41% and 42% for the Kuhn–Munkres algorithm compared to preassigned, and a median of 4% for Kuhn–Munkres compared to the greedy algorithm. It can be concluded from the results that an energy savings of almost 40% can be achieved for each drone through the Kuhn–Munkres and greedy algorithms compared to preassigned matching.
5.3. Matching of Drones and Stations with Different Energy Levels
In the third scenario, drones with random energy levels will be matched with stations with different levels of energy. As noted before, the drones’ stations can be charged through direct electricity from lighting poles or received solar radiation. In order to save time while performing missions in smart cities, the charging time of drones is important. To this end, drones that have spent most of their energy during the mission should be matched with their nearest stations and a high level of charge. In this case, considering the numbers of drones with random locations and different levels of energy and preassigned stations with different energy levels, the total consumed energy is calculated.
Figure 13a compares the total consumed energy for drones and stations through preassigned, greedy, and Kuhn–Munkres algorithm matchings.
In
Figure 13a, it is visible that the drones that are employing greedy and Kuhn–Munkres algorithms for nest selection are consuming less energy than the preassigned matching. Moreover, the results show that the Kuhn–Munkres algorithm for matching is slightly more efficient than the greedy matching.
Figure 13b is a comparison of different matching mechanisms. It can be seen from the graph that when the number of drones is more than 25, the energy-saving percentage for the whole system (drones and stations) increases. For Kuhn–Munkres and greedy algorithms compared to preassigned matching, the energy savings is 28% and 27%, respectively. In this scenario, the energy efficiency of the whole system can be improved by 1% through the Kuhn–Munkres algorithm compared to greedy algorithm matching.
The total consumed energy for each individual drone and station of a group of 500 drones andstations with different levels of energy, based on preassigned, greedy, and Kuhn–Munkres drone–nest matching, is shown in
Figure 14a–c, respectively. The results indicate that drone–nest matching through greedy and Kuhn–Munkres algorithms saves more energy compared to the preassigned mechanism.
The sorted total consumed energy for each individual drone and the corresponding station with different levels of energy are shown in
Figure 15a–c for preassigned, greedy, and Kuhn–Munkres matching, respectively. The results demonstrate a similar trend of the sorted energy for different types of drone–nest matching. It is apparent from
Figure 15a–d that matchings through greedy and Kuhn–Munkres algorithms are more efficient than the preassigned drone–nest matching.
The energy-saving percentage of each drone matched with a station with different levels of energy for the greedy algorithm compared to preassigned, and Kuhn–Munkres algorithm compared to the preassigned and greedy algorithms, are indicated in
Figure 16. The results in each comparison show a mean and median of saving energy of 23% and 31% for the greedy algorithm compared to preassigned, 30% for the Kuhn–Munkres algorithm compared to preassigned, and a median of 2% for Kuhn–Munkres compared to greedy algorithm. An energy efficiency of almost 30% can be obtained for each drone and its corresponding station through the Kuhn–Munkres and greedy algorithms compared to the preassigned matching.