Indoor UAV scheduling with Restful Task Assignment Algorithm

by   Yohanes Khosiawan, et al.
Aalborg University

Research in UAV scheduling has obtained an emerging interest from scientists in the optimization field. When the scheduling itself has established a strong root since the 19th century, works on UAV scheduling in indoor environment has come forth in the latest decade. Several works on scheduling UAV operations in indoor (two and three dimensional) and outdoor environments are reported. In this paper, a further study on UAV scheduling in three dimensional indoor environment is investigated. Dealing with indoor environment— where humans, UAVs, and other elements or infrastructures are likely to coexist in the same space— draws attention towards the safety of the operations. In relation to the battery level, a preserved battery level leads to safer operations, promoting the UAV to have a decent remaining power level. A methodology which consists of a heuristic approach based on Restful Task Assignment Algorithm, incorporated with Particle Swarm Optimization Algorithm, is proposed. The motivation is to preserve the battery level throughout the operations, which promotes less possibility in having failed UAVs on duty. This methodology is tested with 54 benchmark datasets stressing on 4 different aspects: geographical distance, number of tasks, number of predecessors, and slack time. The test results and their characteristics in regard to the proposed methodology are discussed and presented.


Age-Optimal UAV Scheduling for Data Collectionwith Battery Recharging

We study route scheduling of a UAV for data collec-tion from remote sens...

A Benchmark for Multi-UAV Task Assignment of an Extended Team Orienteering Problem

A benchmark for multi-UAV task assignment is presented in order to evalu...

Joint Indoor Localization and Navigation of UAVs for Network Formation Control

In this paper, we propose a joint indoor localization and navigation alg...

Quantitative and Qualitative Assessment of Indoor Exploration Algorithms for Autonomous UAVs

Indoor exploration is an important task in disaster relief, emergency re...

Hover or Perch: Comparing Capacity of Airborne and Landed Millimeter-Wave UAV Cells

On-demand deployments of millimeter-wave (mmWave) access points (APs) ca...

Mobile Wireless Rechargeable UAV Networks: Challenges and Solutions

Unmanned aerial vehicles (UAVs) can help facilitate cost-effective and f...

1 Introduction

In the recent years, there has been a remarkable rise of applications and research interests in UAVs. Outdoor UAV operations has been applied through various domains and enabling systems such as shima2005assignment ; shima2005uav ; ahner2006assignment ; piciarelli2013outdoor ; von2015deploying , while reported works on UAV operations for indoor environment khosiawan2016system are still limited. However, there is an emerging demand to employ UAVs for indoor operations khosiawan2016system . For instance, UAVs can be utilized to perform tasks such as inspection and material handling in a manufacturing environment. To fulfill such tasks, the UAV is equipped with an imaging device and a gripper. UAVs perform the tasks at the designated positions with the required equipment. The execution manner of these tasks also considers the total makespan or/and battery consumption. To accomplish such a goal, a schedule of task executions needs to be generated, and the respective instructions to be sent to the UAVs. During the schedule generation, several constraints need to be satisfied to produce a feasible schedule.

The scheduling problem in this paper includes an optimization problem of assigning execution time of tasks in respect to the available limited resources such as UAVs and positions, whose class has been proven to be NP-hard garey1979computers . Furthermore, the planning horizon may include non-determined recharge actions (as needed) during the operations. Unlike in khosiawan2016task , a variable recharge time is employed in this paper. Any sufficient time range (over the defined threshold) can be used for performing a recharge. Apart from that, other actions such as hover and wait on ground may also be included to represent feasible operations. In such a problem, obtaining an optimum solution takes a non-linear computation time in regard to the problem scale. During the numerical experiments (Section 5), benchmark datasets on both lab scale and industrial scale indoor environments are used. In the lab scale environment itself, with small numbers of tasks, hours of computation time are shown insufficient to complete the optimization process. This entails the need of a heuristic-based approach, where a near optimum (good quality feasible) solution is able to be obtained in a reasonable amount of time. Such computation time, together with the exponentially growing one obtained from experiments with IBM ILOG CPLEX, are presented in Section 5.

In khosiawan2016task , the authors developed a methodology which includes the earliest available time heuristic which is incorporated with a metaheuristic algorithm called Particle Swarm Optimization (PSO) to obtain a good quality feasible solution in a quick computation time. The objective in khosiawan2016task is to find a minimized total makespan. Meanwhile in this paper, the objective of the optimization is to minimize the total energy consumption. The tasks are given time windows, from which can be inferred that as long as the time window constraints are not violated, the execution of the following business process will not be delayed. Hence, optimizing battery consumption become relevant to keep the operational cost minimum, while inducing short flight paths simultaneously. This objective is associated with the awareness of keeping the battery level preserved achieved through the Restful Task Assignment Algorithm (RTAA). Battery is the source of life for the UAV, where battery failure may lead to the failure of the task and the UAV itself. In addition, the map of the operational environment is constructed with directed paths, where the layout is designed to support collision avoidance throughout the operations (described in Section 3). The main contributions in this work are described as follows.

  1. [topsep=0pt]

  2. Developed a methodology for safe scheduling which includes:

    • a novel heuristic based on RTAA for constructing a schedule from a task sequence
      RTAA promotes the preserved battery level of the UAVs throughout the operations. The tendency of the preserved battery level avoids UAVs from suddenly dropping out of the game due to an unforeseen marginal remaining battery level.

    • an incorporation of RTAA-based heuristic with PSO to obtain a good quality feasible solution in a short computation time
      PSO parameters used in Section 5 are inspired by the pilot study in khosiawan2016task , where parameter analysis was extensively performed.

    • a directed-path three-dimensional indoor environment map
      The tasks are to be executed in a particular three-dimensional indoor environment, which is defined in a map. In the map, the paths are constructed in a directed manner, also in coherent with the UAV flying behavior, which altogether supports collision avoidance during the operations.

  3. Performed numerical experiments and analysis on the characteristics of the resulting schedules on multiple datasets. There are 54 benchmark datasets stressing on different aspects, i.e. geographical distance, number of tasks, number of predecessors, and slack time. The characteristics analyzed from the resulting schedules are the total energy consumption, makespan, and computation time.

The remainder of this paper is organized as follows. In Section 2, some related works on scheduling tasks with time windows and UAV scheduling in indoor environment are reviewed. Then, in Section 3, the formulation of the problem in this paper is presented. In Section 4, RTAA and its incorporation with PSO are described. Afterwards, the conducted numerical experiment is presented and analyzed in Section 5, followed with the conclusion in Section 6.

2 Literature review

Scheduling has been a consistently demanding research interest which involves numerous scientists and specific problems in the optimization area. In 1988, a study on deciding the minimum fleet size for minimum traveling salesman problem with time windows desrosiers1988lagrangian was conducted to be integrated into the previous related work desrosiers1984routing in 1986. The evaluation of the optimum number of fleet at the first node of a branch-and-bound tree will reduce the number of infeasible routes and the size of the tree to be explored. This approach, wherein an optimal solution is aimed at, is suitable for scheduling tasks significantly prior to the execution where changes towards the schedule during the execution are less likely to happen, e.g. in school bus transportation problem. When different numerous tasks are performed by multiple agents on a daily basis, where the tasks may come until right before the operation is started, a non-exhaustive near optimal search within a short time becomes more practical.

A work on optimization using column generation approach for the vehicle routing problem with time windows desrochers1992new was carried out in 1992, where four essential rules for reducing the time window width were introduced as a part of the methodology. Rules 2 and 3 can be applied when there is only a single agent or there is no position occupation during the task execution. For instance, when a time window of a predecessor is trimmed upfront because the successor cannot be started sooner anyway (regardless of the predecessor’s sooner completion time), the required position to be accessed may be occupied by another agent later. Executing the predecessor earlier (and the successor is not immediately executed afterwards) may become its only option to satisfy the given time window constraint. In regard to rule 1 and 4, the respective time window examples in desrochers1992new which may lead to some unfeasible task assignments is not the focus of this paper, and hence such a condition is not reflected in the benchmark datasets (they are discussed later in Section 5).

In the following years, heuristic-based approach is viewed to remain as a viable alternative for solving large-scale optimization problem in a short time desrosiers1995time . For scheduling problem with time windows, a study on backtracking techniques for the job shop scheduling constraint satisfaction problem was conducted. To come up with a feasible solution as fast as possible, one essential remark to keep in mind is the expensive computation when a large complex conflict is met, for proving that some particular assignments need to be undone.

The beginning of aircraft scheduling problem desaulniers1997daily was mainly flagged in 1997, using branch-and-bound approach supported by column generation technique. The goal is to gain a substantial profit improvement over the existing airline’s solution. The nature of such problem allows a longer computation time which is deemed reasonable. Recently, the application of aircraft has been widely explored, especially Unmanned Aerial Vehicle (UAV) into various application domains in both outdoor and indoor environments khosiawan2016system . It can be deduced that a system of UAV application mainly comprises environment (mapping and positioning system), Unmanned Aerial System (UAV, ground station, control module), and task (scheduling). Those elements are affecting while enabling one another simultaneously. One problem instance of such kind involves numerous tasks and constraints to be considered in the scheduling process. This brings the appeal of heuristic-based approach being able to solve the problem with a good quality feasible solution in a reasonable time. A modified receding horizon task assignment heuristic which focuses on scheduling split jobs of long surveillance missions to maintain a persistent UAV operations was conducted kim2014concerted , where an indoor system prototype was tested in song2013persistent . Another heuristic-based is also used for UAV scheduling in two-dimensional environment with no constraint semiz2015task . Under the metaheuristic family, PSO has been investigated for job shop and flexible manufacturing (where the employment of unmanned vehicles is found) scheduling problems in liu2007investigation ; mousavi2017multi ; khosiawan2016task , and it is postulated to be effective and efficient. Such a metaheuristic algorithm is fast and easy to implement sorensen2013metaheuristics ; liu2007investigation . Such an approach towards multiple tasks scheduling problem for UAV operations in indoor environment was piloted in khosiawan2016task . The objective is to produce a schedule with a minimized total makespan in a short time. The pilot work serves as the ground to identify further issues and the respective solution - which are discussed in the following sections in this paper.

3 Problem definition

Numerous task executions by UAVs in indoor environment require a thorough scheduling mechanism to reduce cost (e.g. time and energy) and promote safety towards both the users (human-labors) and the system itself (e.g. UAVs, indoor infrastructure). In the previous work khosiawan2016task , the total time of the operation is sought to be minimized to save both time and financial cost, and to allow the following business process to continue (e.g. surface inspections of the wind turbine blades need to be done before the trucks are booked for transporting them). In this study, the goal is to produce a schedule of task executions with a minimized total energy consumption and preserve the battery level throughout the operations. Additionally, a task has a time window attribute, in which the task must be executed. Furthermore, when dealing with UAVs in indoor environment, no sudden out-of-power is expected since it may lead to human injuries or infrastructure damages. Complying to these conditions, a new heuristic-based method which minimizes the total battery consumption with the awareness of keeping the battery level preserved is required; not strictly utilizing the UAV without recharge until the battery is depleted. This is the limitation that is exposed in khosiawan2016task , where a full recharge is done only when the battery is completely or nearly depleted that the UAV can’t perform its following action.

An instance of a task dataset is depicted in Table 1. Each task data consists of a task identifier, a start position, an end position (if it is an inspection task, then the value is the same as the start position; i.e. task





), a processing time, a release date, a due date, and a predecessor list. In this study, the benchmark datasets used in Section 5 are tasks with time windows, while a support for assigning tasks without time window is induced in the proposed methodology - discussed later in Section 4. A characteristic which is introduced by the time window attribute is slack time. Slack time indicates the room where the execution time may be shifted around within the time window. For instance, task

in Table 1 has a time window of 281 seconds from 7261007, and a slack time of (281-44=)237 seconds—since the processing time of task

is 44 seconds.

Task ID Start
Due date Predecessor
(Task ID)
1 c3 c3 10 726 1077 8
2 c1 c1 10 1007 1379 10
3 d4 f2 39 1429 1745 7
4 e2 b2 42 827 1230 9
5 d4 d4 10 0 382 -
6 f1 e2 35 1428 1843 7
7 d1 d1 10 1007 1429 9;10
8 b3 b3 10 292 726 -
9 c4 b3 35 382 827 5
10 a2 c2 44 726 1007 8
Table 1: Example of task dataset with 10 tasks

There are two types of task: inspection and material handling tasks. They expose 3 types of actions: perform task - material handling, perform task - inspection, and fly to. On top of that, there are 3 additional types of action that the UAV perform throughout the operations: hover, wait on ground, and recharge. Those actions are depicted in Table 2. The time for performing material handling is composite, where it comprises 30 seconds for loading and unloading the payload, and a variable flying time from the start to the end position. Such a level of task abstraction is needed to reduce the complexity of the computation. Throughout the operations, actions of perform task (material handling and inspection), fly to, and hover are the contributing factors in the battery consumption.

Action Type Execution time (s)
Perform task - material handling 30 + $fly to$
Perform task - inspection 10
Fly to (as defined in the map)
Hover (as required)
Wait on ground (as required)
Recharge 270
Table 2: Action types

Furthermore, an example of schedule which describes the solution representation for the addressed problem is depicted in Figure 1. It corresponds to the task dataset in the aforementioned Table 1. A schedule consists of the assigned tasks and the other actions, whose composition conforms to the UAV state machine depicted in Figure 2. Upon the completion of its last task, the UAV goes back to a nearest recharge station by default - such an action is not included in the schedule, while the assurance of having enough battery to go back is taken into account - the imposing mechanism is explained later in Section 4.2.

Figure 1: Representation of schedule of the UAV operations
Figure 2: State machine of the UAV throughout the operations

The scenarios of the UAV operations are conducted in both lab scale and industrial scale indoor environments. The lab scale indoor environment is depicted in Figure 3. Each location of interest is indicated by a letter, where positions in the same location are distinguished by a number (following the letter). The green nodes are the recharge locations, where recharge actions take place. The established directed paths (illustrated in Figure 3(b)) are also designed to avoid potential deadlock or collision. This means, with a sensor detecting the area forward where the UAV is going to fly, a short wait upon another UAV ahead will avoid collision among UAVs. In another word, such a situation in Figure 3(a) does not happen, where the UAVs collide or wait for one another continuously (deadlock).

(a) Positioning-system-based representation
(b) Real-world representation
Figure 3: Lab scale indoor environment for the UAV operations
Figure 4: Potentially problematic non-directed paths environment (3(a)) and a more robust directed paths environment (3(b))

The constraints of the task scheduling problem in this study are mentioned as follows.

  1. [topsep=0pt]

  2. A task is executed once by one UAV.

  3. A task is executed within the given time window.

  4. A recharge station can be occupied by multiple UAVs.
    The recharge station has no limited space due to the technology advancement in the space efficient battery recharge or even replacement platform suzuki2012automatic , and a small size of UAV fleet (e.g. 10) may cover the most instances of UAV application in indoor environment. The recharge time for a depleted battery with the capacity of 20 minutes is 45 minutes.

  5. A non-recharge-station position can be occupied by at most one UAV at a particular time.

  6. A UAV can only execute at most one task at a time.

  7. A UAV may only land at a recharge station.

  8. The battery level of a UAV must never be depleted at any non-recharge-station position.

  9. The battery of each UAV is fully charged in the beginning of the planning horizon.

  10. A task can only be executed after all its predecessors are completed.

  11. There is no cyclic nor redundant precedence relationship.


: index of task
: index of UAV
: index of position
: number of recharge stations
: the index of nearest recharge station from the end position of task
: set of recharge stations;
: set of tasks;
: set of UAVs;
: release time of task
: due time of task
: processing time of task
: start position of task
: initial position of UAV
: end position of task
: task is preceded by task
: travel time from to
: travel time from to recharge station

: maximum battery capacity ()
: one full cycle of recharge time

Decision variables
: start time of task
: end time of task
: battery level of UAV before executing task

: start time of a task which is operationally preceded by task
: which is penalized with a large value when or task (or ) is not executed by UAV

: battery consumption when no recharge takes place before the execution of task , which is preceded by , by UAV
: total battery consumption
Note: Task is operationally preceded by task if task is scheduled to be executed right after task by the same UAV; it is different from precedence rule.

Objective function: minimize

Subject to:
1 - end time is the summation of start time and processing time of the task


2 - the start time and end time of a task shall not violate its time window


3 - every task is executed once by one UAV


4 - a UAV can only execute one task at a time


5 - battery condition that will trigger recharge as necessary


6 - no multiple tasks are executed at the same position at a particular time


7 - define what recharge does to the battery level and how the battery is consumed


8 - set the battery to be consumed for the flight from the UAV’s initial position towards the first task; which is an exception case to the defined constraints for battery consumption in 14 and 15.


9 - determine the start time of a task which is the first task of a particular UAV


10 - operational precedence relationship indicates task is executed right after task by the same UAV; operationally precedes


11 - a task can operationally precede and be operationally preceded by at most one other task


12 - no self operational-precedence


13 - no cyclic operational-precedence


14 - guaranteed feasible recharge time in the schedule


15 - precedence constraint


16 - the sum of all UAVs’ battery consumption does not exceed the total battery consumption


The developed MILP model is solved for small-scale problems, and the data is shown later in Section 5. The exponentially growing computation time indicates the need of a heuristic-based approach which is capable of solving the large-scale problem within a reasonable amount of time. Such a methodology is developed in this study, and it is discussed in the following section.

4 Methodology

The proposed Restful Task Assignment Algorithm is described through Algorithm 35 later in this section. To help to minimize the battery consumption while parallelizing task executions when deemed fit (which may lead to a shorter total execution time), Algorithm 3 is presented. The time window attribute on the task encourages the usage of Algorithm 4: Backward Fragment Placement Algorithm (BFPA) to quickly find a feasible solution if it exists and increase the system’s robustness. Moreover, this method tends to preserve the battery level, since some empty time ranges in between the task executions can be used for having recharge actions. The detailed procedure is described in Section 4.2. A support for assigning tasks which couldn’t be assigned in BFPA and those without time window is provided by Algorithm 5: Forward Fragment Placement Algorithm (FFPA). In respect to the route query between positions, Dijkstra’s Algorithm dijkstra1959note is employed in the map module.

RTAA is then incorporated with Particle Swarm Optimization (PSO), where task sequences from the initial swarm and the produced mutations throughout the whole search iterations are the inputs for RTAA. The mechanism of PSO is depicted in Section 4.1, followed by the description of RTAA in detail in Section 4.2.

4.1 Particle Swarm Optimization Algorithm

PSO is an optimization algorithm which falls under the category of metaheuristic approach. It allows explorations to areas which may not look promising in the beginning of the search, alienating it from getting trapped in a local optimum solution. The incorporation of PSO performs the battery consumption minimization process during a reasonable computation time. The calculation of the total battery consumption of a schedule is contributed only by task executions, flight actions (among positions of task execution and recharge stations), and hover actions. The PSO algorithm is depicted in Algorithm 1, where more details of the incorporation with such a problem nature of this paper can be found in khosiawan2016task .

1:Input: Initial Swarm ()
2:Output: schedule of tasks on UAVs ()
3:Initialize (parameters, swarm, local best and global best)
4:while stop condition not met do
5:      updateVelocity(swarm, velocity, local best, global best);
6:      updateSwarm(swarm, velocity);
7:      getLocalBest(fitness(swarm), localbest);
8:      getGlobalBest(localBest, globalBest);
9:     generation++;
10:end while
Algorithm 1 Particle Swarm Optimization Algorithm

The initial swarm has a role in placing initial starting points book:958913 throughout the solution space. There are 10 priority rules used in the initial swarm generation. Eight of them are addressed in khosiawan2016task , while two other rules in regard to the position occupation are introduced in this paper. Those are most and less occupied position rules, task will be sorted based on the projected-occupation-load of its execution position in ascending and descending manner. For material handling task, these two rules see the start position as the execution position. The example of sequences (particles) in the initial swarm created through the priority rules in regard to the dataset in Table 1 is depicted in Table 3.

Heuristic Rules Task Sequence (Task ID)
Minimum Number of Cumulative Predecessors 5 8 1 9 10 2 4 7 3 6
Minimum Total Number Of Predecessors 5 8 1 2 3 4 6 9 10 7
Maximum Number of Cumulative Successors 8 5 9 10 7 1 2 3 4 6
Maximum Total Number of Successors 7 8 9 10 5 1 2 3 4 6
Maximum Task Execution Time 10 4 3 6 9 1 2 5 7 8
Minimum Task Execution Time 1 2 5 7 8 6 9 3 4 10
Maximum Ranked Positional Weight 5 8 9 10 7 1 2 3 4 6
Minimum Inverse Positional Weight 5 8 1 9 10 4 2 7 3 6
Tasks with Less Occupied Position 1 8 7 2 9 6 4 10 3 5
Tasks with Most Occupied Position 3 5 10 4 6 9 2 7 8 1
Table 3: Priority rules for initial particle generation

4.2 Restful Task Assignment Algorithm

The scheduling algorithm is depicted by Algorithm 25. The encapsulation of sub-methods performed in Algorithm 35 provides a more clear top-constitutional-view of the heuristic approach depicted in Algorithm 2: Restful Task Assignment Algorithm (RTAA). The main idea of RTAA is to promote the existence of a continuous free timespan which can be used by the UAV to have a recharge. The algorithm takes input from a sequence of tasks created initially through the priority rules or update of position during a particular iteration. In line 1, the tasks are grouped based on the position occupation time where the task will start. For inspection tasks, it also acts as the position where the task will take place. Through the formed group, the positions will be ranked in a descending order; from the most occupied one to the most idle one. From line 322, a method of creating a preliminary schedule without recharge action is depicted. Based on the ranked position list, tasks in the group will be iterated and tried to be assigned to a UAV to be executed at a particular time range. This provides the structure of the schedule by putting the tasks which are less flexible (i.e. to be executed at one position as many others may yield a smaller execution time range). In line 7, the task is put into schedule in a backward manner. Following the successful assignment, the record of UAV occupation-timestamp fragments (UOF) and position occupation-timestamp fragments (POF) are updated.

Tasks which couldn’t be assigned previously and those without time windows will be attempted to be scheduled in line 1422. Here, the tasks are scheduled on the available time range according to the UOF and POF. When there are multiple possible placements of time fragment in the available time range, the task is assigned at the soonest execution time. If there is a task which still can’t be assigned in this attempt, a return value is returned indicating that another sequence should be checked since the current one does not yield a complete feasible schedule for the given set of tasks. In this manner, assuming that the given tasks are rational, the computation time can be minimized. The distinction of time fragment and time range is depicted in Figure 5.

Figure 5: A time fragment put into the available time range based on the calculation according to a part of the scheduling algorithm

After the preliminary schedule is constructed, the insertion of recharge, hover, and wait-on-ground actions is performed (line 2330). In this regard, a minimum recharge time shall be defined, to determine the amount of time that is worth (long enough) to be used for a recharge action. On the other hand, if the minimum recharge time is too long, then the potential time that actually can be used for recharging the battery would be wasted. The recharge insertion procedure looks for available time ranges which are not used for any task execution and at least equal to or greater than the defined minimum recharge time.

In every attempt to put a task into the schedule, indicated by ’+’ throughout the pseudocode (Algorithm 4 line 8 and Algorithm 5 line 7), there is a check of the required flight’s execution time in respect to the adjacent task(s)’s and possibility to put a recharge action when applicable or necessary. This means, there will be no insufficient time for the UAV to fly from the end position of a preceding task to the start position of the successor task. Furthermore, there will be no insufficient battery value since a task will not be assigned at a particular time fragment when the formed sequence of tasks does not leave enough battery to go at least to the nearest recharge station. During this process, the time fragment for the task execution is ensured not to overlap with the existing UAV occupation time fragments. The reason why it is not done together with the trimming based on the position occupation time fragments is because of the dynamic flights of the UAVs between positions (where a recharge action might be replaced by a hover and a task execution —at a latter task assignment) causing frequent changes throughout the overall schedule construction. On the other hand, position occupation time fragments are stagnant once the assignments are made, regardless of the previous or the following assignments.

The distinction on the characteristic of UAV occupation and position occupation fragments is depicted in Figure 6. Let’s assume that during the schedule construction, several task assignments are performed, where task


, and

are assigned sequentially. In figure 5(b), a particular position occupation time fragment is depicted to be stagnant once the respective task is assigned. However, the UAV occupation task is depicted otherwise in Figure 5(c). In the beginning, a material handling task

is assigned—where the time fragments for flight from the recharge station to (), a load (), flight from to (), and unload () are put at their calculated time ranges. When task

is assigned to the schedule, assuming that the related time-fragments satisfy the considered constraints, a time fragment of flight from the end position of task

: to the start position of task

: is assigned to the respective time-range. Afterwards, task

is assigned according to its time window, and it occupies the time range between the end of task

and the start of task

. This means that the time fragment of flight BD is obsolete now. Instead, fragments of flight , capturing inspection image at , and flight are assigned in the respective time range. In another word, every assigned occupation time fragment of UAV 1 may change over time during the schedule construction.

(a) Information on a sample set of tasks
(b) Occupation time fragments of position A
(c) Occupation time fragments of UAV 1
Figure 6: Position and UAV occupation time fragments
1:Input: sequence of tasks ()
2:Output: schedule of task executions ()
3: groupTasksBasedOnStartPositions()
4: rankPositionUsageFrequencyFromTheBusiestOne()
6:Create schedule without recharge action:
7:for  in  do
8:     .get()
9:     for  in  do
10:         if hasTimeWindow(then
11:               BFPA(, , , )
12:              if  then
13:                  .remove()
14:              end if
15:         end if
16:     end for
17:end for
18:for  in  do
19:      FFPA(, , , )
20:     if  then
21:         return getTotalBatteryConsumption()
22:     else
23:         NO_SCHEDULE -1
24:         return NO_SCHEDULE
25:     end if
26:end for
28:Insert recharge and other actions:
29: getUnallocatedTimeFragments()
30:for  in  do
31:     if  MIN_RECHARGE_TIME then
32:         putActionsForRecharge(, )
33:     else
34:         putActionsForFlightBeetwenPositions(, )
35:     end if
36:end for
Algorithm 2 Restful Task Assignment Algorithm

Prior to the task assignment, a sorting of the preferred UAV list for performing a particular task is done. This process is done based on the precedence relationships of the task to be assigned (1,2,4,5) and the possessed workload (line 3). The motivation behind the utilization of precedence relationship here is the tendency of the successor tasks being able to be executed immediately after its latest predecessor is done.

1:Input: a list of all UAV IDs (), UAV occupation fragment (), current schedule (), upcoming task to be assigned ()
2:Output: a sorted list of UAV IDs —from the most preferred one to the least ()
3: getUAVofTheLatestPredecessorIfExist(, )
4: getUAVofTheEarliestSuccessorIfExist(, )
5: sortUAVIDsBasedOnCurrentWorkload(, )
6:moveUAVIDToTheFrontOfList(, )
7:moveUAVIDToTheFrontOfList(, )
Algorithm 3 Sort the preferred UAV list

The details of the first task assignment attempt is depicted in Algorithm 4: Backward Fragment Placement Algorithm (BFAP). In line 47, possible time fragments for the task to be assigned at are listed. They are obtained by trimming the fragments of the original time window of the given task which overlap with the current record of POF. The trimming based on the end time of a predecessor and the start time of a successor is a consequence of the design of Algorithm 2, where a left to right (time-wise) task assignment procedure is not a must.

In line 8, the task is attempted to be assigned to the schedule in a backward manner to give an enhanced number of possibilities for the other tasks to be arranged without violating the given time window constraints. Once the task is assigned, the occupation fragments of the respective UAV and position are updated (line 10). Furthermore, when assigning tasks with the same precedence level, one with less slack may need to be assigned before the other(s) or maybe the other way around to yield a feasible schedule - as depicted in Figure 7. Task

has less slack than

and one may prefer to assign


. This results in the next task assignment attempt becoming infeasible (depicted in Figure 6(b)), while the other way around in Figure 6(c) is feasible. This is where the role of task sequence representation in the incorporated Particle Swarm Optimization comes in. The various task sequences enable a flexible exploration even towards an unlikely area. Additionally, it also promotes a quick exploration in a large solution space. In this manner, when there is no feasible schedule found, one can conclude that the given tasks (with the defined time windows) are too tight for the available resources (i.e., UAVs and positions). This is also supported by the condition where the tasks are not ranked based on their slack time before the task assignment - such treatment demotes the exploration during the search.

(a) Tasks with time window;

has less slack than

(b) Formerly assign (based on the manner described in Algorithm 4) task

and then

(c) Formerly assign (based on the manner described in Algorithm 4) task

and then

Figure 7: A task with more slack may actually be formerly assigned to yield a feasible solution in BFAP
1:Input: position occupation time fragments (), UAV occupation time fragments (), schedule of task executions (), task to be scheduled ()
2:Output: scheduling completion status
3:if hasNoTimeWindow(then
4:     return false
5:end if
7:List possible time fragments for the task to be assigned at based on the existing position occupation time fragments:
8: getPreferredUAVs(, , ) Get a list of UAVs sorted based on defined preferences: executor of a predecessor of task , executor of a follower of task , least loaded UAV
9: trimTimeWin(.timeWindow, ) Trim time window based on the scheduled predecessor(s) and follower(s)
10: trimOccupiedTimeRange(, .get(.startPos))
11: trimOccupiedTimeRange(, .get(.endPos))
13:Attempt to put the task into the schedule in a backward manner:
14: assignTaskBackward(, , , , )
15:if  then
16:     updateOccupationFragments(, , ) Update position and UAV occupation fragments according to the recently scheduled task
17:end if
Algorithm 4 Backward Fragment Placement Algorithm

After the attempt of assignment of tasks with time windows in Algorithm 4 is performed, the unassigned ones or tasks without time window will be attempted to be assigned based on Algorithm 5: Forward Fragment Placement Algorithm. In this second attempt, several tasks with time window assigned in a tardy manner may be found when the respective time range allows the task to still meet the defined precedence relationships. However, on the opposite, a task with time window shall not be assigned before its release date. This assumption is made according to the accommodated task where the existence of lead task may fail the purpose of the task itself. For example, an inspection task is scheduled to be performed in the middle of the day: when a wind turbine blade would have been manufactured further. In such a situation, another (lead) inspection task executed in advance in the morning (before the given time window in the middle of the day) gives no contribution to the original intention of that task.

Generally, in the second attempt, the task assignment based on Algorithm 5 is attempted on the left side of a particular existing fragment (line 6). When there is a flexibility in the available time range, the soonest feasible time fragment will be chosen over the others (line 7). Such task assignment manner is promoted by the characteristic of Algorithm 4 where it tends to leave an empty area on the left-side of the (scheduled) task fragment. Hence, through Algorithm 5, this condition will be evened out by the insertion of the remaining unassigned tasks and potential recharge actions. In line 15, unscheduled tasks will be lastly attempted to be assigned after the last task in the existing schedule of a particular UAV when possible —satisfying the precedence relationships.

1: getPreferredUAVs(, , ) Get a list of UAVs sorted based on defined preferences: executor of a predecessor of task , executor of a follower of task , least loaded UAV
2: trimTimeWin(.timeWindow, ) Trim time window based on the scheduled predecessor(s) and follower(s)
4:Attempt to put the task into the schedule in a forward manner:
6:for  in  do
7:     for  in .get(do
8:          getFreeFragmentOnTheLeftSideOfScheduledTask(, ) Based on position occupation time fragments
9:          assignTaskForward(, , )
10:         if  then
11:              updateOccupationFragments(, , ) Update position and UAV occupation fragments according to the recently scheduled task
12:              break TRY_FFPA
13:         end if
14:     end for
15:end for
17:Last attempt to schedule the given tasks if all previous ones (including BFPA) failed:
18:if ! then
19:      = assignAfterLastTaskForward(, , )
20:end if
Algorithm 5 Forward Fragment Placement Algorithm

5 Numerical Experiment

The developed MILP in Section 3 is attempted to be solved in IBM ILOG CPLEX, with 3 UAVs and up to 9 tasks. It is run on an Intel Core i7 processor (2.9 GHz) with 32 GB of RAM. The computation time of CPLEX grows exponentially as shown in Table 4. It reaches more than 2.5 hours after only 8 tasks, and this is significantly longer than the heuristic-based computation time for 100 tasks (presented later in this section). This condition essentially drives the need of pursuing a heuristic-based approach to obtain a good quality solution in a reasonable time.

Number of tasks Execution time (s) Solution
4 1.73 optimum
5 6.12 optimum
6 25.82 optimum
7 182.86) optimum
8 10000 (stopped) feasible
9 10000 (stopped) feasible
Table 4: Computation time of small scale problems solved in CPLEX

The proposed methodology has been benchmarked by 54 datasets generated based on the flight demonstrations at the lab facility of the Department of Mechanical, Production and Management Engineering. The datasets have different characteristics, formed by different levels of four parameters: geographical scale, number of tasks, predecessor distribution, and slack time distribution. The summary of the task characteristics interpolated from both lab scale and industrial scale datasets can be illustrated in Figure


  1. [topsep=0pt]

  2. There are 2 geographical scales of the environment: lab scale and industrial scale with the ratio of 1:8. The measurement of the lab environment is within 14 meters in width, 20 meters in length, and 7 meters in height.

  3. For each geographical scale, there are 3 different numbers of tasks: 30, 50, and 100 tasks.

  4. For each number of tasks, there are 3 predecessor distributions: 0, 1, 2. As depicted in Figure 8

    , there exist tasks with 3 or 4 predecessors in a particular dataset. The addressed parameter determines that the number of predecessors in a dataset satisfies the normal distribution with

    and —not the exact number of predecessors for each task.

  5. For each number of predecessor distribution, there are 3 slack time distributions: 300, 600, and 1200 seconds. As depicted in Figure 8, there are some tasks with slack time of at least 100 and up to 1395 seconds. The addressed parameter determines that the slack time in a dataset satisfies the normal distribution with and —not the exact slack time for each task.

  6. Each dataset is used in a scheduling scenario which is run 20 times, whose results can provide a good quality observation.

Figure 8: Summary of characteristics of the benchmark datasets

In alignment with the restful characteristic of Algorithm 2, the overall battery level is desired to be preserved throughout the operations. The battery level of each UAV after each task execution from every feasible schedule constructed during the search (iterations) is recorded, and the cumulative data is depicted through histograms in Figure 9. It is portrayed that the battery level of the UAVs has the tendency of being in a sufficiently preserved level. This condition applies for both lab scale and industrial scale environment, which shows the scalability of the proposed methodology.

Figure 9: Battery level of the UAVs throughout the operations

The set of learning coefficients used for the PSO algorithm is =1, =2, with 40 particles of initial swarm, 40 iterations, and a stop criteria of 10 no-improvement iterations —this is inspired by the pilot study conducted in khosiawan2016task . In this study, the experiment purpose is to stress-test the methodology. Hence, the solution space may get vast in the used datasets, stressing exploration rooms not only for PSO, but also for RTAA. Each sub-figure in Figure 10 represents 180 attempts, which correspond to a particular geographical scale of the environment and number of tasks. There are 9 settings for a particular set of geographical scale and number of tasks, depicted in Table 5. The battery consumption peaks are at setting 1, 4, and 7 for all sub-figures, where the slack time is 300. This behavior is caused by the situation where there is less time in between task executions, where UAVs will be required to hover and wait; since recharging at the recharge station within a very short period will be insignificant or even waste the battery more (due to the flights from and to the recharge station). In addition, it is depicted that the exposure of Algorithm 3 in Algorithm 45 (and Algorithm 2 as a whole) may reduce the battery consumption in the produced schedule through the existence of precedence relationships. The results of the total battery consumption optimization in 1080 scheduling attempts are depicted in Figure 10, and the numerical data of average battery consumption is presented in Table 6.

Setting Predecessor mean Slack time mean (s)
1 0 300
2 0 600
3 0 1200
4 1 300
5 1 600
6 1 1200
7 2 300
8 2 600
9 2 1200
Table 5: Result analysis settings
Geographical distance - lab. scale (1) Predecessor - none (0) Number of tasks Slack time
low (300) medium (600) high (1200)
low - 30 2256.75 1490.4 1298.6
medium - 50 4230.4 3171.2 2531.4
high - 100 9305.05 8249.55 5387.55
Precedents - rare (1) Task Size Slack time
low (300) medium (600) high (1200)
low - 30 2438.1 1547.65 1421.8
medium - 50 3957.65 2980.75 2783.05
high - 100 6953.55 6693.65 6600.65
Precedents - frequent (2) Task Size Slack time
low (300) medium (600) high (1200)
low - 30 2532.75 1381 1610.4
medium - 50 4502.45 2848.75 2540.35
high - 100 7316.45 6466.15 6698.9
Geographical distance - industrial scale (8) Predecessor - none (0) Number of tasks Slack time
low (300) medium (600) high (1200)
low - 30 1921.55 1524.35 1429.4
medium - 50 4298.55 3219.7 2578.3
high - 100 9097.8 7595.45 5257.05
Precedents - rare (1) Task Size Slack time
low (300) medium (600) high (1200)
low - 30 2434.4 1350.85 1407.1
medium - 50 3963.1 2855.2 2831.4
high - 100 8305.9 7516.8 6071.5
Precedents - frequent (2) Task Size Slack time
low (300) medium (600) high (1200)
low - 30 2107.95 1825 1375.95
medium - 50 4173.4 2922.4 2922.05
high - 100 8276.55 6402.4 6766.4
Table 6: Average battery consumption of the UAV operations in regard to the 54 benchmark datasets
(a) 30 tasks, lab scale
(b) 50 tasks, lab scale
(c) 100 tasks, lab scale
(d) 30 tasks, industrial scale
(e) 50 tasks, industrial scale
(f) 100 tasks, industrial scale
Figure 10: Battery consumption on UAV operations with 30, 50, and 100 tasks in lab scale and industrial scale indoor environments

In regard to the computation time, it tends to converge in the reasonable computation time area. The computation time of every 20 scheduling attempts of a particular dataset is recorded, and the respective overview for the benchmark datasets is depicted in Figure 11. In Table 7, the average computation time of every dataset is presented.

(a) 30 tasks, lab scale
(b) 50 tasks, lab scale
(c) 100 tasks, lab scale
(d) 30 tasks, industrial scale
(e) 50 tasks, industrial scale
(f) 100 tasks, industrial scale
Figure 11: Computation time of scheduling attempt on UAV operations with 30, 50, and 100 tasks in lab scale and industrial scale indoor environments
Geographical distance - lab. scale (1) Predecessor - none (0) Number of tasks Slack time
low (300) medium (600) high (1200)
low - 30 19.96 25.50 22.47
medium - 50 58.16 78.56 74.83
high - 100 245.02 297.45 380.85
Precedents - rare (1) Task Size Slack time
low (300) medium (600) high (1200)
low - 30 8.69 8.12 7.68
medium - 50 24.59 26.63 36.51
high - 100 144.69 133.03 119.83
Precedents - frequent (2) Task Size Slack time
low (300) medium (600) high (1200)
low - 30 7.06 6.01 7.21
medium - 50 19.04 19.73 19.05
high - 100 109.60 112.59 121.15
Geographical distance - industrial scale (8) Predecessor - none (0) Number of tasks Slack time
low (300) medium (600) high (1200)
low - 30 24.14 20.51 26.02
medium - 50 63.04 74.14 77.47
high - 100 185.33 306.68 352.62
Precedents - rare (1) Task Size Slack time
low (300) medium (600) high (1200)
low - 30 7.50 6.77 8.60
medium - 50 28.06 27.95 27.27
high - 100 151.92 112.47 160.97
Precedents - frequent (2) Task Size Slack time
low (300) medium (600) high (1200)
low - 30 6.74 5.21 6.83
medium - 50 26.46 23.03 26.01
high - 100 109.90 84.19 116.52
Table 7: Average computation time (s) of scheduling attempts in regard to the 54 benchmark datasets

6 Conclusion

UAV scheduling problem in indoor environment has been emerging with various challenges to solve. In this paper, a study on safe UAV scheduling is conducted, where tasks with time windows are performed by multiple UAVs in indoor environment. A heuristic approach based on RTAA is proposed. Furthermore, an incorporation of PSO with RTAA is performed, where two additional priority rules are proposed apart from the ones utilized in the pilot study khosiawan2016task . The study involves 54 benchmark datasets stressing on different aspects: geographical distance, number of tasks, number of predecessors, and slack time. From the analysis of the results, it can be deduced that the proposed methodology is very effective for producing a restful schedule in a reasonable amount of time. This depicts a safe UAV scheduling, where the battery level is shown to be sufficiently preserved throughout the operations. On top of that, RTAA (specifically Algorithm 3,4, and 5) which is incorporated with PSO generates a drive for the search to obtain minimum total battery consumption. This methodology is also shown to be scalable for both lab scale and industrial scale indoor environments.

Conflicts of Interest

The authors declare that they have no conflicts of interest.


This work has partly been supported by Innovation Fund Denmark under project UAWorld; grant agreement number 9-2014-3.


  • (1) Darryl K Ahner, Arnold H Buss, and John Ruck. Assignment scheduling capability for unmanned aerial vehicles: a discrete event simulation with optimization in the loop approach to solving a scheduling problem. In Proceedings of the 38th conference on Winter simulation, pages 1349–1356. Winter Simulation Conference, 2006.
  • (2) Guy Desaulniers, Jacques Desrosiers, Yvan Dumas, Marius M Solomon, and François Soumis. Daily aircraft routing and scheduling. Management Science, 43(6):841–855, 1997.
  • (3) Martin Desrochers, Jacques Desrosiers, and Marius Solomon. A new optimization algorithm for the vehicle routing problem with time windows. Operations research, 40(2):342–354, 1992.
  • (4) Jacques Desrosiers, Yvan Dumas, Marius M Solomon, and François Soumis. Time constrained routing and scheduling. Handbooks in operations research and management science, 8:35–139, 1995.
  • (5) Jacques Desrosiers, Michel Sauvé, and François Soumis. Lagrangian relaxation methods for solving the minimum fleet size multiple traveling salesman problem with time windows. Management Science, 34(8):1005–1022, 1988.
  • (6) Jacques Desrosiers, François Soumis, and Martin Desrochers. Routing with time windows by column generation. Networks, 14(4):545–565, 1984.
  • (7) Edsger W Dijkstra. A note on two problems in connexion with graphs. Numerische mathematik, 1(1):269–271, 1959.
  • (8) M.R. Garey and D.S. Johnson. Computers and Intractability: A Guide to the Theory of NP-completeness. Books in mathematical series. W. H. Freeman, 1979.
  • (9) Yohanes Khosiawan and Izabela Nielsen. A system of uav application in indoor environment. Production & Manufacturing Research, 4(1):2–22, 2016.
  • (10) Yohanes Khosiawan, Young Soo Park, Ilkyeong Moon, Janardhanan Mukund Nilakantan, and Izabela Nielsen. Task scheduling system for uav operations in indoor environment. arXiv preprint arXiv:1604.06223, 2016.
  • (11) Jonghoe Kim and James R Morrison. On the concerted design and scheduling of multiple resources for persistent uav operations. Journal of Intelligent and Robotic Systems, 74(1-2):479–498, 2014.
  • (12) Uri Kirsch. Structural Optimization: Fundamentals and Applications. Springer-Verlag Berlin Heidelberg, 1st edition, 1993.
  • (13) Zhixiong Liu. Investigation of particle swarm optimization for job shop scheduling problem. In Natural Computation, 2007. ICNC 2007. Third International Conference on, volume 3, pages 799–803. IEEE, 2007.
  • (14) Maryam Mousavi, Hwa Jen Yap, Siti Nurmaya Musa, Farzad Tahriri, and Siti Zawiah Md Dawal.

    Multi-objective agv scheduling in an fms using a hybrid of genetic algorithm and particle swarm optimization.

    PloS one, 12(3):e0169817, 2017.
  • (15) Claudio Piciarelli, Christian Micheloni, Niki Martinel, Marco Vernier, and Gian Luca Foresti. Outdoor environment monitoring with unmanned aerial vehicles. In Image Analysis and Processing–ICIAP 2013, pages 279–287. Springer, 2013.
  • (16) Fatih Semiz. Task assignment and scheduling in UAV mission planning with multiple constraints. PhD thesis, Middle East Technical University, 2015.
  • (17) Tal Shima, Steven J Rasmussen, and Andrew G Sparks. Uav cooperative multiple task assignments using genetic algorithms. In American Control Conference, 2005. Proceedings of the 2005, pages 2989–2994. IEEE, 2005.
  • (18) Tal Shima and Corey Schumacher. Assignment of cooperating UAVs to simultaneous tasks using genetic algorithms. Defense Technical Information Center, 2005.
  • (19) Byung Duk Song, Jonghoe Kim, Jeongwoon Kim, Hyorin Park, James R Morrison, and David Hyunchul Shim. Persistent uav service: An improved scheduling formulation and prototypes of system components. In Unmanned Aircraft Systems (ICUAS), 2013 International Conference on, pages 915–925. IEEE, 2013.
  • (20) Kenneth Sörensen and Fred W Glover. Metaheuristics. In Encyclopedia of Operations Research and Management Science, pages 960–970. Springer, 2013.
  • (21) Koji AO Suzuki, Paulo Kemper Filho, and James R Morrison. Automatic battery replacement system for uavs: Analysis and design. Journal of Intelligent & Robotic Systems, 65(1):563–586, 2012.
  • (22) SK von Bueren, A Burkart, A Hueni, U Rascher, MP Tuohy, and IJ Yule. Deploying four optical uav-based sensors over grassland: challenges and limitations. Biogeosciences, 12(1):163–175, 2015.