Abstract
This paper presents a distributed, guidance and control algorithm for reconfiguring swarms composed of hundreds to thousands of agents with limited communication and computation capabilities. This algorithm solves both the optimal assignment and collision-free trajectory generation for robotic swarms, in an integrated manner, when given the desired shape of the swarm (without pre-assigned terminal positions). The optimal assignment problem is solved using a distributed auction assignment that can vary the number of target positions in the assignment, and the collision-free trajectories are generated using sequential convex programming. Finally, model predictive control is used to solve the assignment and trajectory generation in real time using a receding horizon. The model predictive control formulation uses current state measurements to resolve for the optimal assignment and trajectory. The implementation of the distributed auction algorithm and sequential convex programming using model predictive control produces the swarm assignment and trajectory optimization (SATO) algorithm that transfers a swarm of robots or vehicles to a desired shape in a distributed fashion. Once the desired shape is uploaded to the swarm, the algorithm determines where each robot goes and how it should get there in a fuel-efficient, collision-free manner. Results of flight experiments using multiple quadcopters show the effectiveness of the proposed SATO algorithm.
1. Introduction
Motion planning (often called guidance in the aerospace community) and feedback control of multi-agent systems have been major areas of research over the past decades. The majority of this work focused on swarm robotics (Alonso-Mora et al., 2012; Cheah et al., 2009; Earl and D’Andrea, 2005; Hsieh et al., 2008; Jadbabaie et al., 2003; Kingston and Egerstedt, 2010; Milutinović and Lima, 2006; Yu et al., 2015; Zhao et al., 2011). However, in recent years the idea of multi-agent systems has been extended to spacecraft (Alfriend et al., 2009; Breger and How, 2007; Campbell, 2003, 2005; Hadaegh et al., 2014; Scharf et al., 2003, 2004; Vaddi et al., 2005; Zanon and Campbell, 2006). The most recent idea is to fly a swarm containing a large number (hundreds to thousands) of femtosatellites (100-gram-class spacecraft) (Hadaegh et al., 2014).
For a swarm to have a cost benefit compared to a monolithic agent or a smaller formation, the individual agents need to be smaller and cheaper. Due to their small size and low cost, the agents in a swarm have limited actuation, communication, and computation capabilities, which require the guidance and control algorithms of the swarm to be both fuel and computationally efficient. Swarms of agents create interesting challenges in guidance and control due to the large number of agents, the small size of each individual agent, and the complicated dynamics. Specifically, the large number of vehicles moving in three dimensions makes collision avoidance a major challenge (Morgan et al., 2012, 2014). Also, the limited computation and communication capabilities of each agent require the swarm reconfiguration algorithm to be very simple so that it can be run on board each small robot or vehicle in real time.
The swarm reconfiguration problem consists of two parts: assignment and trajectory generation. The assignment problem consists of finding the optimal mapping from a set of agents to a set of targets or tasks in order to minimize the total cost of interest. This problem has been well researched and many methods exist for finding the optimal assignment, including the Hungarian algorithm (Kuhn, 1955) and iterative methods (Bertsekas, 1981; Hung, 1983). The drawback to many of these algorithms is that they are centralized with respect to communication and computation. On the other hand, the auction algorithm (Bertsekas and Castanon, 1991; Bertsekas, 1992) possesses a distributed nature suitable for distributed systems. More recent research on the auction algorithm (Choi et al., 2009; Zavlanos et al., 2008) has shown that it can be implemented in a distributed manner. In contrast with the prior work, one important aspect of the assignment algorithm in this paper is its versatility to adapt to information, specifically collision avoidance and disconnected communication networks.
The second part of the swarm reconfiguration is optimal trajectory generation and collision avoidance. This part requires an algorithm that can solve the nonlinear optimization that minimizes the cost of the trajectory while satisfying collision avoidance and dynamic constraints. The trajectory optimization has been solved using a variety of methods, including mixed integer linear programming (Richards et al., 2003), pseudospectral methods (Ross and Fahroo, 2003), convex programming (Schulman et al., 2013), and sequential convex programming (SCP) (Morgan et al., 2014).
In this paper, we simultaneously solve both the target assignment and trajectory optimization problems using: a variable-swarm, distributed auction assignment (VSDAA), which allows the swarm size to change over time, to solve the assignment problem; and our prior work on SCP (Morgan et al., 2014) to solve the trajectory optimization. Additionally, we integrate these algorithms using model predictive control (MPC) (Bemporad and Morari, 1999; Mayne et al., 2000) in order to run the algorithms in real time and on swarms with distributed communication networks. The integration with the trajectory optimizer is what allows the auction algorithm the ability to adjust its assignment based on collisions that were previously undetected.
The contributions of this paper, compared with the existing literature including our own work (Morgan et al., 2014), are in the development of VSDAA, its integration with trajectory optimization in the MPC-SCP formulation, and the convergence proof for SCP as well as in the experimental validation using multiple quadrotors. The variable-swarm characteristic means that VSDAA can adapt the number of targets in the assignment to match the number of agents. This is incredibly useful when the number of agents in the swarm changes. In the case of a significant loss of agents due to an external object or fuel/battery depletion, VSDAA would adjust the number of targets to match the number of remaining agents and the agents would fill in the gap left by the external object. This allows the swarm to handle the loss of a significant number of agents and still maintain the desired shape. On the other hand, VSDAA will also increase the number of targets if there are more agents than targets. This is a situation that will break a typical auction algorithm (Bertsekas and Castanon, 1991; Bertsekas, 1992; Choi et al., 2009; Zavlanos et al., 2008) since the agents cannot all be assigned to a target so they bid indefinitely. Also, it should be noted that VSDAA can handle an arbitrary distribution shape of targets, as opposed to the use of uniform target distributions (Yu et al., 2015).
Another contribution is that the SCP method is shown to converge to a Karush–Kuhn–Tucker (KKT) point (Boyd and Vandenberghe, 2004; Ruszczynski, 2006) of the nonconvex program. This proof shows that once a feasible solution is found, the sequence of optimal solutions resulting from the convex programs will converge. Additionally, the trajectory to which they converge satisfies the KKT conditions, which are necessary conditions for an optimal trajectory.
Additionally, the implementation of VSDAA with SCP using MPC allows an assignment to be achieved even in a disconnected communication network. Since the assignment is updated throughout the reconfiguration, the distance-based swarm communication network will be different every time an assignment is computed. Therefore, the agents do not need to be fully connected to every other agent at all times. In fact, if two agents from separate, disconnected networks are assigned to the same target, they will eventually move close enough to become connected and will be assigned to different targets.
The result of the MPC implementation of VSDAA and SCP is the swarm assignment and trajectory optimization (SATO) algorithm. SATO, the main algorithm of this paper, is distributed in both communication and computation, and provides near-optimal, collision-free trajectories for swarm reconfiguration. In contrast to other methods that simultaneously solve the assignment and trajectory optimization (Turpin et al., 2014), SATO uses SCP as underlying trajectory optimization, which allows it to handle complex dynamic environments. Additionally, this algorithm works with disconnected communication networks and is robust to the loss or gain of a significant number of agents. Finally, the model predictive control formulation allows SATO to run on board each agent and provides robustness to unmodeled disturbances. A preliminary version of this paper was previously presented at a conference (Morgan et al., 2015), but this paper adds significant results of experimental validation along with detailed description of dynamic modeling and nonlinear control design.
The paper is organized as follows. In Section 2, the swarm reconfiguration problem is formulated as a constrained, nonlinear optimal control problem and converted to a nonlinear optimization. In Section 3, the swarm reconfiguration problem is broken into an assignment problem and a trajectory optimization problem. Then, the assignment is solved using VSDAA. In Section 4, the trajectory optimization problem is converted to a convex optimization and the SCP algorithm is described. Additionally, the SCP algorithm is shown to converge to a trajectory that satisfies the KKT conditions of the nonconvex problem. In Section 5, MPC is used to integrate VSDAA and SCP, and to implement a finite horizon so that the resulting algorithm, SATO, can be run on board each agent in real time with a disconnected communication network. In Section 6, SATO is run for both a two-dimensional (2-D) double integrator dynamics scenario and a three-dimensional (3-D) relative orbit dynamics scenario. The results of the two scenarios are analyzed and discussed. In Section 7, we elaborate on our experimental setup, the feedback control law design to track the desired trajectories obtained by SATO, and the experimental results.
2. Problem statement
In this section, the optimal swarm reconfiguration is presented as a continuous, finite horizon optimal control problem. The swarm reconfiguration involves the transfer of hundreds to thousands of agents from their current shape to a desired shape while satisfying various constraints, such as collision avoidance, and minimizing the total fuel used during the transfer. A visualization of a swarm reconfiguration and communication networks is shown in Figure 2.
Figure 1(a) shows a visualization of the swarm reconfiguration problem. The agents begin at their current positions (green) and move towards the desired formation (red). The agents are interchangeable so any agent can go to any target. In Figure 1(b), the connectedness of various agents is shown. The dashed arrows represent communication links between the agents and the different colors represent different communication networks. In other words, the blue agents are connected to the other blue agents (agents 1 and 4) but not to the red agents (agents 2 and 5). Two agents that have a communication link between them are called neighboring agents (agents 7 and 8).

Visualization of problem statement and communication networks. (a) Visualization of a swarm reconfiguration. (b) Visualization of connected and disconnected networks. Dashed lines represent communication links.
2.1 Nonlinear optimal control problem
The objective of the optimal swarm reconfiguration is to minimize the
where
2.2. Convexification of differential equations
In this section, the dynamics constraints in equation (2) are converted to affine equality constraints. This is done by linearizing equation (2) and discretizing Problem 1. This results in a finite number of linear equality constraints, which are acceptable in a convex programming problem.
In order to rewrite the dynamics in equation (2) as a constraint that can be used in a convex programming problem, these equations must first be linearized about the nominal trajectory
where
The next step in the process of converting equation (2) into a constraint that can be used in convex programming is to convert the ordinary differential equation in equation (7) to a finite number of algebraic constraints. In order to do this, the problem is discretized using a zero-order-hold approach such that
where
where
Now that the nonlinear, continuous-time equations of motion from (2) have been rewritten as linear, finite dimensional constraints in (9), they can be used in a convex programming problem. The constraints from equations (3)–(6) can be written in discretized form as
Note that the only constraints that do not satisfy the requirements of convex programming are equations (12) and (14). These constraints will be modified in the following sections so that the problem can be efficiently solved using convex programming.
3. Distributed optimal target assignment
In this section, the nonlinear optimal control problem (Problem 1) is broken into two parts: an optimal assignment problem and an optimal trajectory-planning problem. This separation allows us to rewrite the terminal constraints in equation (14), which are nonconvex and require the problem to include integer variables. By solving an assignment problem to determine the terminal states of each agent, the remaining trajectory-planning problem can be approximated by a convex program and efficiently solved.
Now, the assignment problem can be written as shown below.
where
The solution to the assignment problem (Problem 2) will yield the desired terminal points for each agent (
The resulting trajectory optimization can be written as follows.
3.1. Distributed auction algorithm
To solve the assignment problem (Problem 2), an auction algorithm is used. This algorithm is typically used to solve a centralized assignment problem (Bertsekas, 1992; Bertsekas and Castanon, 1991), but its structure allows it to be implemented in a distributed manner (Zavlanos et al., 2008) even in some less desirable situations, including limited communication and changes in the number of agents.
In a typical auction algorithm, the computations can be centralized or decentralized, but the current bid prices, current highest bidders, and current bid for each agent must all be stored in shared memory that can be accessed by all of the agents. This requires all-to-all or all-to-one (star) communication, which is an impractical requirement of a large swarm. Additionally, the agents take turns bidding, which requires that each agent knows how many agents are in the swarm.
A distributed auction algorithm, VSDAA, is developed to solve the assignment problem for a swarm containing a varying number of agents that do not have all-to-all or all-to-one communication. VSDAA (Method 1) follows the same steps as a typical auction algorithm with a few exceptions. First, all of the computations are run in parallel and all of variables are stored locally (values for agent
In VSDAA (Method 1), each agent runs the algorithm in parallel (line 8) and all computations are done locally. First, we assume that each agent knows the cost (
3.2. Properties of variable-swarm, distributed auction assignment
In addition to distributing the computation and communication requirements of the auction algorithm, Method 1 also allows for the number of target locations to adjust based on the number of agents in the swarm. This is done by only using the bidding information so no additional consensus algorithm is needed to determine the number of agents. This is a very useful property when the number of agents in the swarm is large and the loss of some agents needs to be overcome to achieve the goal.
In Method 1, each agent keeps track of the number of targets it thinks the swarm needs (
In addition to increasing
The ability of Method 1 to adjust the number of targets in the assignment to match the number of agents in the swarm allows the algorithm to handle a variety of situations that a typical auction algorithm cannot handle. The main benefit of having the algorithm vary the number of targets is in the case where the number of agents is changing. This is a likely scenario when the swarm has a very large number of agents (over 100) because in this situation, the loss of a few agents is acceptable provided that the swarm can maintain its shape. However, the desired targets will need to be reduced so that the desired shape does not have holes in it. Additionally, varying the number of targets also allows the algorithm to run when the communication network is disconnected. In this case, the agents can only communicate with other agents connected to them in the network, which means that as the network changes and more agents can communicate, there might need to be more targets added to the assignment.
In addition to the aforementioned properties, Method 1 maintains the termination and optimality properties of a typical auction algorithm. The proofs in this section are based on those for a typical auction algorithm (Zavlanos et al., 2008), but are modified to account for the changing number of agents and the use of negative price values. In the following proposition, we show that Method 1 terminates in a finite number of bidding iterations and determine an upper bound on the number of iterations.
where ⌈·⌉ represents the ceiling operator (round up to next integer).
Proof. To determine the maximum number of bids, the worst case scenario is considered. In this scenario, only minimum bids of increment
First, we consider the case when there are at least as many targets as agents (
Next, it will bid on targets
Once an agent has
Additionally, each bid can take up to
Now we consider
In addition to showing that the VSDAA (Method 3.1) terminates in finite time, we show in the following proposition that the assignment that results from this algorithm is near optimal.
where
Proof. Since Method 1 waits for all bids to be communicated throughout the swarm before terminating and all agents are connected, we now can define
Since
since summing over
which is equivalent to equation (22) and completes the proof.□
4. Optimal trajectory generation
In this section, the optimization problem described in Problem 3 is solved to determine the optimal, collision-free trajectories that take each agent from its current position to its desired target, which was found using VSDAA (Method 1) in the previous section. To solve Problem 3 efficiently, the collision avoidance constraints (12) are convexified and decoupled so that each agent can use SCP to determine its optimal trajectories. The SCP method is described in more detail in Morgan et al. (2014).
4.1. Decoupling and convexification of collision avoidance constraints
The collision avoidance constraints are dependent on the position of other agents. This makes the optimization coupled in the sense that every agent must know the optimal trajectory of every other agent, which requires the entire optimization to be solved at once. This is undesirable since it requires centralized computations. In order to decouple the optimizations, the nominal trajectories (
The decoupled version of Problem 3 is written as the following optimization for each agent
where
To use convex programming to solve the trajectory optimization (Problem 4), the nonconvex collision avoidance constraint must be converted to a convex constraint. The best convex approximations of the collision avoidance constraints will be affine constraints. In other words, the circle (2-D) or sphere (3-D) which defines the prohibited region is replaced by a line (2-D) or plane (3-D) which is tangent to the circle (2-D) or sphere (3-D) and perpendicular to the line segment connecting the nominal positions (

Convexification of the 2-D collision avoidance constraint (Morgan et al., 2014). (a) Nonconvex prohibited zone. (b) Convex approximation of prohibited zone.
Figure 2(a) shows the prohibited zone for the nonconvex collision avoidance constraint. Figure 2(b) demonstrates the convex approximation of the constraint. As can be seen in Figure 2(b), the new prohibited zone includes the old prohibited zone so the convex collision avoidance constraint is a sufficient condition for the original, nonconvex constraint. Therefore, collision avoidance is still guaranteed using this approximation.
The convex approximation of the nonconvex program in Problem 4 is shown below for agent
4.2. Sequential convex programming
The approximations used to make the trajectory optimization into a convex program require nominal trajectories (
To enforce the collision avoidance constraints, each agent communicates its own nominal trajectory to its neighboring agents.
The SCP method is described in Method 2. First, an initial trajectory is generated for each agent without considering collision avoidance (line 2). Then, the iterative process begins with each agent solving for its optimal trajectory (line 9). Next, each agent stores the current trajectory as the nominal trajectory for the next iteration (line 12) and communicates that trajectory to its neighboring agents (line 13). Finally, the iteration is repeated until the trajectories converge and the agents are collision free (line 14).
Because the convex optimizations can be solved efficiently, the run time is now on the order of a time step or two so VSDAA and SCP can be implemented using MPC by updating the future assignments and control commands based on the current state, which may have drifted off the optimal trajectories due to unmodeled disturbances or other errors. MPC can provide some robustness to disturbances and allows the communication network to be distributed and disconnected.
4.3. Convergence of SCP
In this subsection we will show that SCP (Method 2) converges to a point, which satisfies the KKT conditions of the nonconvex optimization in Problem 4. In order to do this, we will show that the sequence of convex programs for agent
Proof. Since
Next, we will show that SCP converges for agent
Proof. Since
The last equation in (39) shows that
The above proposition shows that any solution to the convex program is a feasible solution to the nonconvex program. Next, this fact will be used to establish that a sequence of optimal solutions exist.
Proof. Since
The last equation in (40) shows that
Proposition 5 shows that once a feasible solution to CP(
where
Proof. Since
Substituting
This proposition establishes that a sequence of optimal solutions
We will now use the propositions developed in this section to show that a sequence of optimal solutions exists and converges to an optimal solution of Problem 4. The following theorem establishes these claims.
Proof. Since
Since every solution in the sequence
We define a mapping
Additionally, the mapping
Additionally,
This process can be repeated to show that all subsequences
Finally, we will show that
where
We note that the cost
Now let
Therefore,
Proposition 3 and Theorem 7 show that the SCP algorithm (Algorithm 2) applied to the convex program (Problem 5) converges to a trajectory that satisfies the KKT conditions of the nonconvex program (Problem 4). Proposition 3 applies when there are no collision avoidance constraints (
If there is a feasible solution to Problem 4 for each agent and
Proof. Since
Now there exists an agent
Additionally, since
5. Swarm assignment and trajectory optimization
In this section, MPC is used to implement the VSDAA and SCP methods in real time, creating the swarm assignment and trajectory optimization (SATO) algorithm. Additionally, the communication requirement in the swarm is reduced so that the network does not need to be centralized or even connected for the algorithm to work. MPC uses a receding horizon to update the optimal assignments and trajectories based on the current state information. Once an optimal control sequence or optimal assignment is calculated, those values are used until updated values are calculated.
5.1. Model predictive control formulation
SATO updates the state (
where
and
Since we are only considering collisions between neighboring agents, it is important to guarantee that no agents can start in positions where they cannot communicate and end up colliding before a new trajectory is generated. To do this, an artificial velocity constraint is introduced so that a bound can be placed on the distance two agents can move relative to each other in a limited amount of time. This constraint is shown below
where
Next, we define two modifications of Problem 5. The first modification is used in SATO to estimate the costs used in VSDAA. The problem is defined as follows.
It is important to note that this problem does not include collision avoidance. This is due to the fact that collisions are highly dependent on the assignment, which has not been determined when this problem is used. Additionally, the number of collisions will generally be small for the optimal assignment so excluding them should not have a large effect on the cost.
The other modified problem that will be introduced will be used when SATO uses SCP. This problem is defined below.
This problem uses the new collision avoidance constraint, which considers collisions only in the short term, with respect to both position and time.
SATO is described in Method 3. First, the auction costs are generated for each agent going to each target position (line 5). Then, VSDAA is used to compute the optimal assignment (line 9). Next, SCP is used to generate the optimal trajectory and corresponding control sequence (line 14). Finally, the optimal control sequence is applied until a new optimal control is generated (line 16). The current time and state are then updated and the process is repeated until the terminal time is reached.
After the optimal assignment is computed, the algorithm checks to see if the number of targets that have been bid upon has changed from the previous iteration. If the number of bids has changed, that means that the number of agents in the communication network has changed. This can result in significantly different assignments due to new information about other agents. To prevent the new assignment from creating an infeasible trajectory optimization, the current time or the terminal time is reset to give each agent enough time to go to its new target.
5.2. Disconnected communication network
A typical auction algorithm cannot achieve a proper assignment when the communication network is disconnected. Without the assumption of a connected network, the proof of Proposition 2 breaks down. In fact, we cannot even guarantee that every target has at most one agent assigned to it since the bid of one agent cannot reach all of the other agents. However, we will show that using the MPC implementation contained in SATO allows the assignment algorithm to achieve an optimal assignment. First, we develop a condition that guarantees that two robots, which cannot communicate, will not collide before the end of the MPC horizon.
Proof. The amount of time in the current horizon is the number of time steps (
This condition guarantees that any agent that could potentially cause a collision before the end of the MPC horizon is detected and therefore considered in the optimization. An illustration of a pair of robots that violate this condition is shown in Figure 3(a). Furthermore, the drift of each agent off of its desired trajectory can be bounded based on the robust nonlinear tracking control law design given in Section 7 and measurement/modeling errors. This error bound can then be used to increase the collision radius (

Visualization of an undetectable collision and an assignment conflict being resolved. (a) Illustration of an undetectable collision. (b) Resolution of an assignment conflict.
While Proposition 9 was created in our prior work (Morgan et al., 2014) with respect to trajectory optimizations, it also applies to the assignment part of SATO. This condition guarantees that before two agents, which are in disconnected communication networks and assigned to the same target, collide, a new assignment will be run with those agents being able to communicate. At this point, VSDAA guarantees that they will be assigned to different targets and that within their connected network, the assignment will be optimal. This idea allows each connected network to perform its own assignment, which will be optimal. If there is no conflict between the networks, no two agents in different networks have bid on the same target so all of the current bids are the highest bids and the solution is optimal. On the other hand, if there is a conflict, the conflicting agents will go to the same target resulting in them being able to communicate before they collide. At this point, they are on the same communication network and will resolve the conflict. Figure 3(b) shows an assignment conflict being resolved once the agents can communicate. When the agents are at the solid circles, they cannot communicate and they choose the same target. However, as they move towards the target, they reach the open circles and become connected. At this point, they will be assigned to different target, which resolves the conflict.
Although each individual conflict will eventually be resolved, there is no guarantee that the new assignment does not cause a conflict with another robot that is outside of the communication radius. Once again, this conflict will be resolved, but the resolution could cause another conflict. This process will not repeat indefinitely due to the bound on the number of bids that can be placed in the auction algorithm, but an individual vehicle can run out of fuel before all of the conflicts are resolved. The most likely scenario where this can occur is when one vehicle is moving back and forth between two disconnected networks. In this case, a single vehicle essentially becomes a messenger between the two networks and must physically move between the networks to transfer the bids. This vehicle runs the risk of using all of its fuel before an optimal assignment is achieved. Additionally, if the maximum available fuel is used to set the cost of unreachable targets to infinity, the problem can become infeasible since some of the vehicles are using fuel to move between the networks.
This problem is more likely to occur when the communication network is disconnected and targets are far apart from one another. The simplest solution is to ensure that the targets are sufficiently close together so that the target swarm has a connected communication network. The other solution is to decrease the probability that the communication network can become disconnected. The probability of having a connected communication network is dependent on the number of agents and the size of the communication radius relative to the volume in which the robots are located. The following equation (Corollary 6 in Yu et al. (2015)) determines the number of agents required to achieve a certain probability of connectedness
where
6. Simulation results
In this section, we apply SATO to swarms in two different dynamic environments. First, we apply SATO to a 2-D environment with double integrator dynamics. This simulation represents the most common problem in the swarm robotics community and can be used to compare SATO to the existing algorithms in that field. In the second simulation, we apply SATO to a swarm of spacecraft in 3-D using the high-fidelity dynamic models of spacecraft in low Earth orbit. This simulation shows that SATO can be used even when the dynamics are nonlinear and state dependent.
6.1. Simulation with 2-D double integrator dynamics
In the 2-D double integrator simulation, a swarm of 123 agents is randomly initialized and undergoes four reconfigurations forming the letters ‘U’, ‘I’, ‘U’, and ‘C’, respectively. As discussed in Remark 4, we use the squared distance between the initial and the terminal points as the assignment cost function. During the first reconfiguration, the communication network is initially disconnected since the swarm is randomly distributed. As the agents begin to form the ‘U’, they move closer to each other and the communication network becomes more connected. As the agents become more connected conflicting assignments are resolved and the swarm achieves the desired shape. After the second reconfiguration (‘I’ shape), a significant number of agents are lost causing the communication network to become disconnected. As the agents reconfigure from ‘I’ to ‘U’, they still believe there are 123 agents in the swarm, which results in some holes in the target shape. However, after completing the ‘U’, the agents adjust the number of targets in the assignment based on the number of bids they received while reconfiguring from ‘I’ to ‘U’. This is seen when the swarm successfully achieves a ‘C’ without any holes. The results of the simulation are shown in Figures 4 and 5.

Various time instances in the UIUC reconfiguration simulation. See Extension 1. (a) Initial swarm (k = 0). (b) ‘U’-shaped swarm (k = 34). (c) ‘I’-shaped swarm (k = 56). (d) ‘I’-shaped swarm after loss of agents (k = 57). (e) ‘U’-shaped swarm (k = 76). (f) ‘C’-shaped swarm (k = 104).

Various time instances in the reconfiguration simulation from a random swarm to a ‘U’ shape. (a) k = 0. (b) k = 7. (c) k = 14. (d) k = 21. (e) k = 28. (f) k = 34. See Extension 1.
Figure 4 shows the swarm shape after each reconfiguration. Each agent is shown with a given marker shape and color, which denotes its communication network. Agents with the same shape and color are connected and agents with different shapes or colors are not connected. Additionally, the dotted circle around each agent represents half of the agents communication radius. Therefore, any agents whose communication circles touch can communicate with each other.
Figure 4(a) shows the initial swarm distribution and the disconnected communication networks due to the random distribution. Figure 4(b) shows the ‘U’-shaped swarm after the first reconfiguration. In Figure 4(c), the ‘I’-shaped swarm that occurs after the second reconfiguration is shown. Figure 4(d) shows the ‘I’-shaped formation after many of the agents have been lost. This loss of agents results in two disconnected groups of agents (red and blue). In Figure 4(e), the swarm forms a ‘U’ shape but due to the loss of agents there are holes in the formation. Finally, Figure 4(f) shows the ‘C’ shape swarm after the final reconfiguration. Although the ‘C’ is not complete due to the loss of agents, VSDAA adjusts the number of targets in the assignment so that there are no large gaps in the desired shape.
Figure 5 shows several time instances of the first reconfiguration. In this reconfiguration, a random swarm transforms into a ‘U’ shape. As with Figure 4, the connected agents are shown with the same color and shape while the dotted circle represents half of the communication radius. Figure 5 shows the evolution of the communication network as the swarm converges to its desired shape.
Figure 5(a) shows the initial swarm with many disconnected communication networks. In Figure 5(b), over half of the swarm is connected (blue) and the agents are roughly starting to form a ‘U’. In Figure 5(c), all but one of the agents are connected so the assignment is nearly complete and the agents are moving towards their targets. Figures 5(d)–(f) show the movement of the swarm once the agents are all connected and the assignment is complete. These figures show the trajectory optimization part of SATO as the agents reach their desired positions in Figure 5(f).
6.2. Simulation with 3-D relative orbital dynamics with
The objective of this simulation study is to show that the SATO algorithm can effectively handle complex dynamic models defined for 3-D motions. In the 3-D spacecraft swarm simulation, the agents are randomly initialized and reconfigured to form a circle. In this simulation, the relative orbital dynamics with
Figure 6 shows the reconfiguration of a swarm of 48 spacecraft from a random distribution to a circular formation. The reference orbit used for this simulation is a circular orbit with a semimajor axis of 6878 km, and an inclination of 45 degrees. The reconfiguration occurs in a quarter of an orbit, which is equal to about 24 minutes. The time step size (

Various time instances in the reconfiguration simulation of a swarm of spacecraft in the LVLH frame. The out-of-plane (
Figure 6(a) shows the initial swarm distribution where the spacecraft are randomly distributed. Figures 6(b), (c) and (d) show the reconfiguration after 8, 16, and 24 minutes, respectively. In Figure 6(d), the swarm has achieved its desired formation of a circle. The results of this simulation show that SATO still achieves the optimal assignment and trajectory generation when the dynamics are as complicated as the relative dynamics of a spacecraft in low Earth orbit.
7. Hardware experimental results using nonlinear tracking controller
We first describe the position controller and the nonlinear attitude tracking controller that are used to track the desired position trajectories computed by SATO. The experimental results from flight tests are presented in Section 7.3. The algorithm was tested on our formation flying testbed at the University of Illinois at Urbana-Champaign. The experimental setup is composed of sixteen VICON motion capture cameras, the communication dongles for sending signals to the agents and a single computer for implementing the flight control algorithms. The computer uses a 3.4 GHz Intel Core i7 chip with 12 GB of DDR3 RAM and runs on Windows 8. The communication dongle used is a Crayradio 2.4GHz radio USB dongle which connects to the computer via a USB hub. Each dongle communicates with one quadrotor at a data rate of 250Kbps. The entire software back-end (except the motion capture system) was developed in-house (in Python 2.7) and integrates the path planner, controller, motion capture system, and radio communication into a single package. The quadrotor vehicle used for the experiments are called ‘Crazyflies’, sold by the company Bitcraze, and can be obtained commercially (see Figure 7). This platform is open-source which provides us with access to the onboard attitude sensors and actuators, hence allowing us to design our own flight control strategies for the quadrotor.

The position controller takes the current position and desired positions to generate the total desired force and the attitude commands which are tracked by the nonlinear attitude controller (71). (a) Crazyflie quadrotor. (b) Block diagram of quadrotor control.
7.1. Robust nonlinear attitude tracking control
The control law is broken down into two parts, namely: the feedback attitude control loop (inner loop) and the feedback position control loop (outer loop), as shown in Figure 7. While there have been a lot of controllers designed for quadcopters, many of them tend to linearize the dynamic model about hover or some other points and try to apply a controller on the linearized model. Even though this might be good for slow and gradual movements, it is not ideal for demanding trajectories and aggressive maneuvers. The nonlinear flight control law given in this section utilizes the full dynamic model of the quadrotor while being able to guarantee global exponential stability and bounded tracking errors with respect to bounded disturbance. This stability result allows us to tightly bound and control the size of the trajectory error for collision-free motion planning. The attitude dynamics and the corresponding kinematics equation of a rigid body are given as
where
The following robust nonlinear tracking control law for the attitude dynamics (70) is used
where the positive-definite matrix
The stability proof of equation (71), obtained by following the standard setup detailed in our prior work (Bandyopadhyay et al., 2016; Chung et al., 2013), indicates that all system trajectories converge exponentially fast to a single trajectory regardless of initial conditions with a rate given by
This ensures that the speed of convergence to any desired time-varying trajectory
If the constant bias term in
7.2. Position tracking controller
The position control law forms the outer-loop, which generates the desired attitude trajectory
The translational motion along the three axes can be given as
where
Since the yaw angle (
These attitude and desired force commands are then tracked by the inner attitude control loop, thus completing the entire control algorithm as shown in Figure 7. As a result, the squared values of four motor RPMs
where
7.3. Flight test and experimental results using SATO and position/attitude tracking control
In this section, the swarm assignment and trajectory generation are simultaneously solved for 4 agents and 4 targets to generate the desired position trajectories in a MPC fashion. These position trajectories are tracked by the position control law and the nonlinear attitude controller described in Sections 7.1 and 7.2. The agents must determine the optimal assignment in addition to their own optimal trajectories since the agents are not preassigned to specific targets. As discussed in Remark 4, the squared distance between the current initial points and the targets is used as the assignment cost. Two configurations were used to demonstrate SATO. In the first scenario, the agents start close together so that they can all communicate with each other, resulting in a connected network and a conflict-free initial assignment. In the second scenario, the agents are spread apart so that none of them can communicate, which initially results in several assignment conflicts that must be resolved in future iterations of the auction algorithm. In both scenarios, the length of the reconfiguration is 20 s with a time step (
7.3.1. Real-time flight test with a connected communication network
In the first SATO hardware experiment, the quadrotors are placed in a square formation with the targets located 3 m away in a line. The communication radius (

Experimental setup for four quadrotors in a connected communication network (see Extension 2).

Real-time, optimal trajectories generated by SATO (dashed lines) and actual trajectories (solid lines) throughout a reconfiguration of four quadrotors when the initial communication network is connected. Two quadrotors can communicate when their dotted circles intersect. (a) t = 0 s. (b) t = 3 s. (c) t = 7 s. (d) t = 10 s. (e) t = 13 s. (f) t = 16 s.
The quadrotors are initially located in a square formation with agent 1 (blue) in the bottom right, agent 2 (red) in the top right, agent 3 (green) in the bottom left, and agent 4 (magenta) in the top left. Figure 9 also shows the initial positions of the agents. As mentioned before, the agents can communicate with each other initially, as shown by the intersection of the dotted lines.
Additionally, Figure 9 shows the reference trajectories generated by SATO throughout the reconfiguration. In this figure, the targets (‘x’s) are shown in black to emphasize that any quadrotor can choose any target. Due to the fact that the quadrotors are all on the same communication network at the initial time, the trajectories do not change much throughout the reconfiguration and the agents follow nearly straight lines to their assigned targets.
7.3.2. Real-time flight test with a disconnected communication network
In the second SATO hardware experiment, the communication radius (

Experimental setup for four quadrotors in a disconnected communication network (see Extension 3).

Real-time, optimal reference trajectories generated by SATO (dashed lines) and actual trajectories (solid lines) throughout a reconfiguration of four quadrotors when the initial communication network is disconnected. Two quadrotors can communicate when their dotted circles intersect. (a) t = 0 s. (b) t = 3 s. (c) t = 7 s. (d) t = 10 s. (e) t = 13 s. (f) t = 16 s.
Figure 11 shows the reference trajectories generated by SATO and the actual trajectories traversed by all of the quadrotors throughout the reconfiguration. The quadrotors are initially located in a trapezoid formation with agent 1 (blue) in the top left, agent 2 (red) in the top right, agent 3 (green) in the bottom left, and agent 4 (magenta) in the bottom right. In this figure, the targets (‘x’s) are shown in black to emphasize that any agent can choose any target. In Figure 11(a) and (b), the four reference trajectories terminate at only two targets, which is the result of the two assignment conflicts between agents 1 (blue) and 2 (red) and between agents 3 (green) and 4 (magenta). When the third set of assignments and trajectories are generated as shown in Figure 11(c), agents 3 (green) and 4 (magenta) are able to communicate to resolve the assignment conflict and the third (green) agent’s trajectory terminates at a different target. Similarly, Figure 11(d) shows the trajectories generated by the fourth calculation, which results in agent 1 (blue) being assigned to a new target due to its ability to communicate with agent 2 (red). However, this reassignment creates a new conflict between agents 1 (blue) and 3 (green), which now share the same target. At the fifth computation, shown in Figure 11(e), agents 1 (blue) and 3 (green) still cannot communicate so they remain assigned to the same target. By the time of the sixth computation, shown in Figure 11(f), agents 1 (blue) and 3 (green) can communicate and agent 3 (green) is reassigned to the fourth target.
8. Conclusion
In this paper, we developed a new variable-swarm, distributed auction algorithm to solve the optimal assignment problem for a swarm of agents. The variable-swarm quality allowed the algorithm called VSDAA (Method 1) to adjust the number of targets in the assignment to match the number of agents in the swarm that are bidding on targets. This ultimately resulted in a distributed assignment with the same number of agents and targets. This quality was especially useful when the number of agents in the swarm changed or when there were initially more agents than targets. Additionally, VSDAA (Method 1) can be implemented on a swarm of robots or robotic vehicles with distributed communications and computations while still terminating in a finite number of iterations and achieving the optimal assignment.
We also introduced SATO (Method 3) as an algorithm that integrates the optimal assignment solver, VSDAA, and the trajectory optimizer, SCP. This integrated approach used MPC to update the optimal assignment and trajectory in real time so that changes in the state of each agent and the communication network were included in the new solution. This allowed SATO to ultimately achieve the optimal assignment and trajectory even when the communication network was disconnected at the initial time or when errors prevented the agents from following their optimal trajectories.
Finally, we showed through simulation and experimentation that SATO can be implemented in a variety of situations. Results with double integrator dynamics showed that SATO can overcome an initially disconnected communication network and a loss of a significant number of agents, which cause the communication network to become disconnected. Additionally, a 3-D simulation result using relative orbital dynamics showed that SATO can be run on a swarm of spacecraft even when the dynamics are complicated. The results of these simulations and experiments showed that SATO can be used to solve for the optimal assignment and trajectory in a variety of undesirable conditions in a distributed, real-time manner.
Footnotes
Appendix: Index to Multimedia Extensions
Archives of IJRR multimedia extensions published prior to 2014 can be found at
Simulation demonstrating agents forming the shapes U, I, U and C. The simulation also shows the robustness properties of the algorithm.
Experimental validation of the algorithm using 4 quadrotors. In this experiment, all the quadrotors initially form a connected graph.
Experimental validation of the algorithm using 4 quadrotors. In this experiment, all the quadrotors do not form a connected graph in the beginning.
Acknowledgements
Thanks to Saptarshi Bandyopadhyay for stimulating discussions and constructive comments.
Funding
This research was carried out in part at the Jet Propulsion Laboratory, California Institute of Technology, under a contract with the National Aeronautics and Space Administration. © 2016 California Institute of Technology. This work was supported by a NASA Office of the Chief Technologist Space Technology Research Fellowship and an Air Force Office of Scientific Research (AFOSR grant number FA95501210193). Government sponsorship acknowledged.
