{'fraction_non_alphanumeric': 0.026235879995141504, 'fraction_numerical': 0.0037349690270861166, 'mean_word_length': 4.4219624629568655, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 1, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Multi-robot Task Assignment for Aerial Tracking with Viewpoint Constraints

We address the problem of assigning a team of drones to autonomously capture a set desired shots of a dynamic target in the presence of obstacles. We present a two-stage planning pipeline that generates offline an assignment of drone to shots and locally optimizes online the viewpoint. Given desired shot parameters, the high-level planner uses a visibility heuristic to predict good times for capturing each shot and uses an Integer Linear Program to compute drone assignments. An online Model Predictive Control algorithm uses the assignments as reference to capture the shots. The algorithm is validated in hardware with a pair of drones and a remote controlled car.


I. INTRODUCTION
We wish to develop algorithms for coordinating heterogeneous systems of aerial and ground agents when the ground agents are not cooperating with the aerial vehicles. One class of problems within this broad scope is following a groundbased moving agent (e.g. robot or human) with an aerial vehicle, subject to constraints such as "keep a certain feature of the agent in the field of view while avoiding environmental obstacles". This problem is challenging because it requires a real time adaptive solution for the local control with global objectives and constraints. Practical and robust solutions will enable new applications such as autonomous drone videography that go beyond today's recording capabilities. Current drone videography can follow an actor. In this paper we describe a solution that supports finer-grain specifications, such as "keep the actor's face in the field of view". The solution has to combine real-time local response with global planning to accommodate the presence of obstacles (e.g. avoid bridges).
More specifically, we enable a team of videography drones to autonomously track and capture a sequence of desired shots of a moving target such as a ground robot or a person. Framing a scene for videography is a complicated process that depends on a range of aesthetic preferences of the videographer. However, many of the important framing primitives can be distilled into a small set of parameters that define the camera's desired viewpoint, such as size of the target in the frame, position of the target in the image, and position of the camera relative to the target. We would like for a videographer to be able to specify a set of desired shots based on these parameters, and have the team of drones determine the best trajectories for capturing the video of the  subject as it moves through the environment. We assume access to a good prediction of the subject's motion, as otherwise there is little use in pre-planning long sequences of shots.
We present a two-stage viewpoint optimization pipeline that enables a team of drones to capture a series of shots that match desired aesthetic qualities. A high-level planner uses a visibility heuristic and an Integer Linear Program (ILP) optimization routine to choose when each drone should capture which shot. This assignment results in a reference trajectory that can be tracked by an online Model Predictive Control (MPC) algorithm with a cost function based on the specified viewpoint parameters. The controller can locally optimize the drones' trajectories to account for stochastic target motion. We demonstrate a videography scenario with a pair of drones assigned to capture several shots of a remote controlled racecar in the presence of ellipsoidal obstacles.
Related work A large body of literature exists related to defining shot aesthetics for a videography drone [1]. These works explore parameterizing desired shot qualities and controls [2][3][4] [5], feasibility of dynamic shots [6], and assigning sequences of shots [7] [8]. Other work as focused on algorithmic frameworks for helping directors achieve desirable aesthetic qualities of their shots [9] [10].
Contributions We build upon the authors' previous work in [12] and focus on the problem of optimizing sequences of shots from multiple cameras and perspectives subject to constraints. In contrast to [12] and other recent work [16] [26] that has focused on reactively finding good viewpoints in unstructured scenes, we assume that the operational environment is known and the subject's motion can be estimated ahead of time. In this context, a director may have a set of desired shots that should be captured during the scene. It is nontrivial to decide when each shot should be taken so that the shots are minimally obstructed and the ordering is feasible for the drones. A higher-level global planner is used to augment the online local planner and ensure the desired viewpoints can all be captured. The main contributions of the paper are: • Presenting a novel high-level videography planner based on a visibility heuristic to globally optimize ordering of shots of a dynamic target • Showing that the reference trajectory generated by this assignment can be followed by a viewpoint-aware receding horizon controller to locally optimize shot aesthetics • Demonstrating these algorithms in hardware experiments with a pair of drones and remote control racecar videography target The remainder of this paper is organized as follows: we briefly summarize shot aesthetic specifications and formalize the minimization of the viewpoint costs in Section II. Section III presents the high-level global planner which generates a sequence of shots and reference trajectory to guide each drone. In Section IV we explain the videography MPC formulation used for local viewpoint optimization. Section V describes our experimental results.

II. PROBLEM DEFINITION
When a predictable subject is operating in a known environment, we would like to be able to coordinate a set of desired shots such that each shot is captured with minimal occlusion. For example, repeated takes on a movie set or a well-trodden mountain bike path are scenarios where the subject's motion is fairly restricted and can be estimated ahead of time, even if the exact path is not known. Existing videography approaches focus on reactive planning to maintain good views of a target. We are more interested in global planning that ensures a team of videography drones sequences the set of desired shots to ensure they are all fit in within the allotted time and with minimal obstruction.

A. Preliminaries
Throughout this paper vectors are denoted in bold lowercase letters, w, matrices in plain uppercase, M , and sets in calligraphic, S. w denotes the Euclidean norm of x and w 2 Q = w T Qw denotes the weighted squared norm. We use matrices Q that appear in these weighted norms are used to represent tuneable parameters in cost functions that allow the user to express the relative importance of different desiderata.
We assume that n d videography drones operate in an environment with known set of obstacles O. While the MPC formulation we use requires obstacles to be represented as ellipsoids, our main contribution of the higher-level planner supports any obstacle set representation that allows for computing ray intersections efficiently. We also assume access to a probability distribution over the videography subject's future trajectory, denoted Y. We sample from this distribution to predict good times for shots to be taken.

B. Defining Desired Shots
Much of the defining aesthetic of a camera framing is determined by: 1) Orientation of the camera relative to the film subject, denoted by azimuth and elevation, (ψ, θ), 2) Subject's Distance to the camera, ρ, 3) Subject's Position in the frame, (C x , C y ). as presented in [12]. We also note that it is usually desirable for the videography subject not to be occluded in the image.
In addition to the spatial viewpoint parameters, we consider a time window within which a shot should be taken, [t 0 , t f ], and a desired duration τ i .
is set of viewpoint parameters and timing constraints define each shot. We denote the set of desired shot specifications S. Figure 2 illustrates these parameters. The viewpoint properties depend on the drone state x b , target state x t , and obstacles in the environment O. We briefly define a cost function associated with each parameter, and refer to [12] for derivation. Let r ct and r c ct denote the vector from the camera origin to the target expressed in the world and camera reference frames respectively. Let r c d denote the desired vector from the camera origin to target as defined by image position parameters C x and C y . Let α d represent the unit vector corresponding to the desired angles (θ, ψ) for the drone relative to the target. With these definitions, we can define cost functions that penalize a drone's state as it deviates from the desired viewpoint. Let c image denote the cost for the target's position in the image: The cost c scale penalizes distance deviation from the target, and c angle is a cost that depends on the deviation of the drone's angles relative to the target: Finally, c occlusion penalizes drone positions that have an obstructed view of the target. This cost is based on the position of the target compared to the occlusion cone associated with the camera and each obstacle. We define a cost based on d v , the distance by which the target is within an obstacle's occlusion cone. Let r o co represent the vector from the camera to an obstacle in the obstacle's reference frame. We define Otherwise, the target is closer to the camera than the obstacle is and c occlusion = 0. Each obstacle contributes a separate occlusion cost. A similar visibility cone concept can be used to penalize mutual visibility between drones as in [13], although we do not employ that cost here.

C. Defining Desired Sequences
These costs c aid in quantifying the quality of a single shot. Our viewpoint objective is to minimize these costs over a sequence of shots.
is the set of all shots assigned to drone i. Each assigned shot S ta j corresponds to a shot specification S j and a time when the drone should be capturing that shot, t a . A j i denotes the j-th shot assigned to drone i. The set of all assigned shots across all drones and times is For each shot, we define a vector of cost functions J j i that penalizes drone i's state from deviating from the parameters defined by shot S j . J j i contains penalties for deviating from the desired location of the target in the image plane, its size in the image plane, and the camera position relative to the target. J j i also penalizes drone states that have an obstructed view of the target. Intuitively, Given the trajectory of the videography target, J j i is a function of drone i's state and time. For a given set of shots S, our goal is to then find the trajectories for all drones such that J is minimized over all shots.
Problem 1. For a desired set of shots S and a target trajectory Y , we define the total videography cost L as a function of the trajectories of the n d drones: In general, Y is stochastic, and by extension J j i is as well. We seek a control policy for each drone that will minimize the expected videography cost L.
We use a two stage approach to find good policies for minimizing L. First, a high-level planning algorithm uses a simple heuristic to predict good times for capturing each shot. A discrete optimization algorithm assigns each drone to a sequence of shots that minimizes the heuristic cost. Next, the optimized assignment and expected target trajectory are used to generate a reference trajectory for a videographic Model Predictive Control (MPC) algorithm that locally optimizes the aesthetic parameters online.

III. SHOT ASSIGNMENT
The high-level shot planning is carried out by a centralized algorithm that finds a sequence of shots for each drone to capture, as well as a reference trajectory to follow. The algorithm requires the desired set of shots S, a distribution over target trajectories Y, and a set of obstacles in the environment O. It relies on a heuristic to choose a low-cost reference trajectory that guarantees visibility of the target. The heuristic provides an estimate of the best times to start capturing each shot. We sample the lowest-cost times for each shot and assign each drone a sequence of shots and times based on an ILP minimization.

A. Assignment Heuristic
We seek a simple heuristic for each shot i that maps time to a reference position, while ensuring that the target is visible. We refer to the position given by this heuristic asx i (t), and H i (t) as the associated cost. By focusing on a single cost and position at each time, the problem of optimizing shot cost over all possible trajectories simplifies to choosing a sequence of shots and times for each drone.
The target is visible from the drone if and only if a ray cast from the target to the drone hits no obstacles before reaching the drone. This observation inspires a heuristic for the reference shot position -cast a ray from the target's position x t in the desired shot direction, stopping at the desired shot distance or the intersection with an obstacle, whichever is first. Let and d is the smaller of ρ i and the closest obstacle intersection along α. Intuitively, x * is the drone position that would have zero viewpoint cost, andx is as close as we can get to that position along the desired direction from the target, before hitting an obstacle. We similarly definex(t) as a ray cast from E(x(t)) in the expected direction of α. The pathx will be used as the reference path to transition between shots. As the reference position is constructed such that it satisfies the desired relative angles ψ and θ, c scale is the only nonzero viewpoint cost. The reference trajectory is also guaranteed to have visibility of the target. For shot i, we consider a heuristic videography cost H i vid that is a function of only time: . The position heuristicx does not enforce continuity of the trajectory, so we add an additional discontinuity cost H dis for each shot: where q dis is a tuning parameter that adjusts the importance of ensuring the reference trajectory can be perfectly tracked.
Together, H vid and H dis sum to the heuristic for instantaneous cost, H f ine . Each shot S i lasts for a duration τ i . We define a shot cost H i shot that estimates the cost incurred by  capturing shot S i starting at time t by setting H i shot (t) to be the average value of H f ine in the interval [t, t + τ i ]. We take the expectation over the target's trajectory distribution and calculate it by sampling.
We can now use this heuristic H shot to find good times to capture each shot by finding an assignment of shots to drones such that the sum of H shot over all of the chosen shot times is minimized and each drone can be expected to feasibly capture all of its assigned shots. The size of the optimization problem depends on how finely we sample H shot . We reduce the number of times considered for starting each shot by sampling p random time indices t i sampled for each shot, biasing the samples toward lower-cost times. The sampling process greatly reduces the size of the problem.

B. Choosing the Best Shots
An assignment of drones to shots can now be computed by finding an assignment that minimizes the total heuristic cost incurred. Recall from Definition 2 that S ta j denotes the shot j that has been assigned to begin at time t a , A i denotes the sequence of shots that have been assigned to drone i, and A = ∪ i A i is the set of all assigned shots and times. We must search for an assignment A that minimizes the total sum of shot costs, while ensuring that each drone has enough time to transition between the shots it has been assigned.
The distance between shots is not deterministic, as it depends on the target's stochastic trajectory. Moreover, even if the drone cannot fully complete the transition between shots in the allotted time, its actual position at the beginning of the next shot may be as good as the desired reference positionx(t), especially if it can get close tox. Instead of hard transition feasibility constraints, we introduce a cost function that penalizes transitions that may be dynamically infeasible. For a pair of shot assignments S ta j , S t b k , the transition cost H trans is defined as where d max is the maximum distance the drone can travel between time t a and t b and d trans is the distance required to transition between the end of shot S ta j and the beginning of shot S t b k . The weighting Q t is set such that H trans incurs a very large penalty when the transition distance between shots is expected to be too long (i.e. d trans > d max ), and a smaller penalty based on d trans which encourages assignments that result in the drones traveling shorter distances.
In addition to this cost term, we require that if one shot precedes another in the assignment ordering, the first shot must end before the second begins. We define slightly different notation for the heuristic cost H shot to refer to the cost of an assignment rather than the cost of a shot. For assignment A j i = S ta k , we notate the assignment cost as H(A j i ) = H k (t a ). We want to solve the following minimization: Constraints (3b) and (3c) ensure that each shot appears exactly once in the ordering. Constraints (3d) and (3e) force the chosen times to be from t sampled and satisfy the temporal consistency previously discussed.
The cost associated with (3) acts like an upper bound on (2). For each shot, the assignment associates a time window, a drone, and a heuristic reference path that minimizes most of the constituent costs in J (the exception being c scale ). The cost is not truly an upper bound becausex may not result in a feasible trajectory, but it provides intuition for why we expect minimizing the cost in (3) will provide a good reference trajectory for minimizing the final videography cost from (2).

C. Constructing a Graph Formulation
To find a minimizing solution to (3), we draw inspiration from minimum-cost flow assignment methods [27]. While this assignment problem cannot actually be solved with minimum-cost flow solvers, encoding it in a graph yields a straightforward interpretation as a constrained minimumcost path problem in a Partitioned Directed Acyclic Graph (PDAG), which can be solved with an ILP.

Definition 3 (PDAG). A Partitioned Directed Acyclic Graph (PDAG) is a Directed Acyclic
Graph G, such that each vertex is assigned one of k labels.
For this purposes of illustration, we will refer to these labels of the PDAG by k different colors. We now define Problem 2 on finding a set of minimum-cost paths through the PDAG.
Problem 2 (PDAG-Minimum-Paths). Consider a weighted PDAG, G. Given a maximum number of paths m, PDAG-Minimum-Paths(m, G) is the problem of finding the lowestweight set of paths P such that |P| ≤ m and exactly one vertex of each color is on some path or determining that there is no such satisfying P. Figure 3 demonstrates how a solution to a PDAG-Minimum-Paths problem with m = 2 encodes the shot assignment problem. By design, a path must visit each of the graph partitions, which means that it passes through every color label of the graph. We now discuss how to construct a PDAG that encodes the constraints of (3).
Note that (3e) implies that the assignment of shots must satisfy a strict partial ordering that ensures the sequence is monotonically increasing in time and has no shot overlaps assigned to a single drone. We use this partial order to generate a DAG G shot , where vertices represent each S t i , for t ∈ t i sampled . This selection of vertices enforces (3d). We choose the color label of each vertex S t i ∈ G shot to be its shot index i. We also add a vertex in G shot for each of n d drones that can be assigned a shot. These drone vertices are connected to all existing vertices in G shot and each have a unique color. The directed edge between S ta j and The cost for edges connected to the drone nodes is denoted We now present Proposition 1, which connects G shot to (3).
Proof. We will show that the constraints and costs in (3) are equivalent to the constraints and costs of solutions to PDAG-Minimum-Paths(n d , G shot ) (PMP). Let each shot s ∈ S correspond to a color in G shot . If we consider the set of assigned shots A as corresponding to the set of vertices in G shot that are on paths selected by PMP, then enforcing each shot s ∈ S to appear in the assignment A as in (3b) is equivalent to enforcing that every color appears on the solution to PMP. Enforcing |S| = |A| as in (3c) is then equivalent to restricting each color to appear at most once on the PMP solution.
The vertices of G shot are chosen by construction to respect constraint (3d). The connectivity of G shot was defined by the partial ordering implied by (3e), so every solution to PMP respect this ordering constraint. Each path in the solution of PMP corresponds to the assignment ordering A i for a drone. The cost of the path consists of the shot cost connected to each vertex and the transition cost connected to each edge, as in (4) and (5), the same expressions used to express the costs of assignments A i in (3a). As the constraints and costs are equivalent, the solution to PDAG-Minimum-Paths(n d , G shot ) also minimizes (3).

D. Solving PDAG-Minimum-Paths
We now formulate PDAG-Minimum-Paths as an ILP. Consider a weighted PDAG G = (V, E). To solve PDAG-Minimum-Paths(n d , G), we first construct a modified graph G = (V , E ) which is the same as G, but it contains an extra n d vertices. Each of the extra vertices is connected to all of the original vertices, and they each have a unique color. These additional vertices are denotedV. 1 We construct an ILP that contains a variable x i for each edge e i ∈ E . The cost of each variable C x is the same as the cost of its corresponding edge. LetX denote the set of variables corresponding to edges connected toV. Let X * ,i denote the set of variables corresponding to edges incident on V i . Let X i, * denote the set of variables corresponding to edges directing away from V i . Let X k denote the set of variables corresponding to edges incident on color k. The ILP solving PDAG-Minimum-Paths(D, G) can be defined as: ∀k, The edges corresponding to variables with a value of one in X * \X are considered to be the set of edges in the solution to PDAG-Minimum-Paths. If there is no satisfying assignment for X * , then there is no solution to PDAG-Minimum-Paths. Proof. Constraint (6c) ensures that the total number of edges incident on a color set is equal to one. This satisfies that all colors are part of some path. Constraints (6d) and (6e) restrict the solution set to contain at most D paths, by limiting the number of selected edges attached toV to D and requiring that all other edges start at a node with an incident edge. Thus, every solution of (6) encodes a valid set of paths in PDAG-Minimum-Paths. By the construction of (6), every PDAG-Minimum-Paths problem can be represented by the ILP. Thus, (6) solves PDAG-Minimum-Paths, and by Proposition 1, it minimizes (3) as well.
The size of the ILP necessary to solve the drone assignment depends on the number of shots |S|, the number of samples we choose per shot p, and the number of drones, n d . The ILP has variables corresponding to transitions between the O(|S|p) sampled times of the set of shots. For each drone, there is also a variable associated with each sampled time. This results in a ILP with O((|S|p) 2 +|S|pn d ) variables. There area total of 2|S|p+|S| constraints. We find in practice that the number of shots we can define is limited by the horizon over which we can make predictions of the target's motion rather than by computational burden of the assignment algorithm.
The full high-level shot assignment pipeline is summarized in Algorithm 1.

IV. ONLINE VIEWPOINT OPTIMIZATION
The assignment A * from (3) is used to guide the online MPC. For each shot assignment S ta j ∈ A * i , drone i will attempt to minimize the viewpoint cost for shot j in the range [t a , t a + τ j ]. In the intermediate time between successive assignments S ta j and S t b k , the MPC follows a reference path that leads it from the expected end of one shot to the expected beginning of another,x(t a + τ j ) tox(t b ). We precompute a Probabilistic Roadmap (PRM) [28] of free space in the environment, and use it to compute the reference path betweenx(t a + τ j ) andx(t b ). During each shot period, the MPC locally optimizes the viewpoint costs. The MPC solves for drone trajectories and gimbal controls in real-time separately for each drone. The rest of the MPC formulation is materially the same as the method presented in [12], but we summarize it here for completeness. For speed considerations and analysis of the nonlinear videography MPC performance, we refer to [12].

A. Drone and Camera Model
We assume the drone's motion model follows some nonlinear differential equationẋ = f (x, u), with x(0) = x 0 and x k ∈ X ⊂ R nx denotes the state of the drone and u k ∈ U ⊂ R nu the control inputs at time step k. X and U are the admissible state space and control space, respectively. While x has been used in previous sections to denote only position, here it represents the full state. x 0 is the initial state of the drone. Our experiments use the Parrot Bebop 2 quadrotor with its integrated front camera and electronic gimbal. It accepts desired roll and pitch angles, yaw rate, vertical velocity, and gimbal angles as input.

B. MPC Formulation
For each drone in the team, we formulate a receding horizon constrained optimization problem with N time steps and planning horizon N ∆t, where ∆t is the sampling time. The optimization seeks to minimize the weighted squared norm of a cost vector Ĵ 2 Q . Recall that J j i denotes the instantaneous viewpoint cost incurred by drone i capturing shot j. As desired viewpoint and drone are unambiguous in the MPC formulation, we drop the sub-and superscripts in this section. We augment J to include the control inputs, distance from reference state x ref , and collision avoidance slack variables S: A matrix of weightings Q defines the relative importance of each cost function. When the drone is assigned to take a shot, the weighting matrix does not penalize reference position error. When the drone transitions between shots, the relative viewpoint and distance are not penalized, although the image position cost c image is kept. This keeps the drones pointing toward the target while repositioning for the next shot.
We use a third order collocation method that implicitly represents the drone's trajectory as a third order spline and the control inputs as piecewise linear functions of time as described in [29]. The dynamics constraints are applied at the collocation points t c,n , and the drone state. The full MPC optimization can be written as: At each time step, the drone solves the formulated nonlinear constrained optimization problem online to generate a local trajectory and executes the first time step controls in a receding horizon fashion. The optimization is performed using CasADi [30] for automatic differentiation and IPOPT [31] for optimization. Note that the optimization is not necessarily solved to completion -the current iterate after 40 ms of computation is used to select the next control output.
In order to estimate the costs at each timestep in the horizon, the drone must have an estimate for the future trajectories of dynamic obstacles and the videography target. Our prediction model assumes constant linear and angular velocity in the target's body frame, based on current estimated velocity. For our experiments the velocity estimate is provided by a motion capture system.
We implement the MPC for multiple drones in an asynchronous manner: the MPC is solved independently for each drone, and the expected trajectory each drone generates is used to compute collision avoidance by future iterations of the other drones' MPC as described in detail in [32].

V. EXPERIMENTAL RESULTS
We validated the tracking system with a pair of Bebop 2 drones tracking a human-driven RC racecar 2 . In order to generate the predictive target distribution necessary to calculate expected shot costs, the racecar was driven around two obstacles in a loosely defined pattern for ten warmup laps. Figure 6 shows the paths from these ten runs and their mean. Note that the car's speed varies within each run and comes to a stop at several locations. The warmup runs were used to model a multivariate Gaussian distribution over the car's trajectory. Nine desired shots were specified for the drone, varying in length from four to six seconds and all constrained to occur within the ninety second duration of the car's lap. The image position parameters C x and C y were set the center the target in the frame in all shots. The settings for the other parameters are shown in Figure 5. The highlevel shot planner assigned each drone a sequence of shots. The cost H shot (t) for heuristic positionx(t) for each shot is shown in Figure 4. The planner is able to find an assignment of shots to the drones such that the expected viewpoint cost for each shot is quite low. We note that the planner assigns overlapping shots to the two drones resulting in a sequence of shots that would have been infeasible with a single drone.
The resulting assignments were tracked over a series of ten trials in which the racecar was manually driven along the same route as the warmup laps. Figure 6 shows the trajectories for the drones during one of the runs, in addition to the car's nominal path and two obstacles. The figure also demonstrates that the planning algorithm's penalty for transition distance between shots H trans leads to the assigned shots being spatially segmented between the drones, reducing the total distance each has to travel. Figure 5 illustrates the relative viewpoint achieved by each drone relative to the desired parameters during each shot. During each assigned shot window (denoted in green), the viewpoint parameters (in blue) are close to their desired values (in orange). The high-level planning heuristic and reference trajectory places the drones near the desired viewpoints, so in many cases the desired viewpoint is reached before the shot even starts. The drones are able to achieve lower-deviation trajectories during some shots compared to others. The higher-deviation shots occur when the desired drone position is obstructed (because of a static obstacle or other drone), or if the trajectory necessary to follow the desired position is dynamically infeasible (most commonly when the car is turning quickly). Even in cases where there is significant deviation from the desired viewpoint, such as the distance in Drone 1's third shot (at about T = 25s in (5(e))), we note that the other two parameters have low deviation and the drone maintains an unoccluded view of the target as shown in the accompanying video. Instances where the observed viewpoint deviations are greater than expected from the heuristic costs in Figure 4 are mostly due to the drones acting more conservatively when close to obstacles than expected by the planner.
The performance bottleneck for the high-level assignment algorithm is solving the ILP. The size of the ILP depends on the number of shots and the number of sampled times per shot. Our scenario contained nine shots, with twenty times sampled for each shot. The resulting ILP solved in under thirty seconds on a laptop with a 2.6 GHz Intel Core i7-9750H 6-Core processor and 16 GB RAM. Different balances between optimality and solution speed can be achieved by tuning the number of sampled times. We note that while the ILP does not run in real time, it would have had time to run at least once during the scenario to reassign shots based (a) Expected cost H shot (t) of path heuristicx(t) for each of the five shots ultimately assigned to Drone 1.
(b) Expected cost H shot (t) of path heuristicx(t) for each of the four shots ultimately assigned to Drone 2.   6. The predicted mean of the racecar trajectory (opaque blue/yellow curve) and its training runs (transparent blue/yellow curves). Car speed shown on color axis. The drone trajectories for one run are shown in red and blue. Circular markers denote times when the drones were taking a shot.
on updated predictions of the target trajectory.

VI. CONCLUSIONS
This paper has demonstrated a practical algorithm for assigning a team of drones to capture a series of desired shots and locally optimizing the drone trajectories to ensure each shot is captured as well as possible. Our experiments have shown that the planning and control pipeline works on physical systems in the presence of obstacles and uncertainty over the videography target's trajectory. Future work will explore an increased uncertainty of the target's trajectory, as well as multi-target tracking.