28.12.2014 Views

Distributed Reactive Collision Avoidance - University of Washington

Distributed Reactive Collision Avoidance - University of Washington

Distributed Reactive Collision Avoidance - University of Washington

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Distributed</strong> <strong>Reactive</strong> <strong>Collision</strong> <strong>Avoidance</strong><br />

Emmett Lalish<br />

A dissertation submitted in partial fulfillment<br />

<strong>of</strong> the requirements for the degree <strong>of</strong><br />

Doctor <strong>of</strong> Philosophy<br />

<strong>University</strong> <strong>of</strong> <strong>Washington</strong><br />

2009<br />

Program Authorized to Offer Degree: Aeronautics and Astronautics


<strong>University</strong> <strong>of</strong> <strong>Washington</strong><br />

Graduate School<br />

This is to certify that I have examined this copy <strong>of</strong> a doctoral dissertation by<br />

Emmett Lalish<br />

and have found that it is complete and satisfactory in all respects,<br />

and that any and all revisions required by the final<br />

examining committee have been made.<br />

Chair <strong>of</strong> the Supervisory Committee:<br />

Kristi A. Morgansen<br />

Reading Committee:<br />

Kristi A. Morgansen<br />

Mehran Mesbahi<br />

Juris Vagners<br />

Date:


In presenting this dissertation in partial fulfillment <strong>of</strong> the requirements for the doctoral<br />

degree at the <strong>University</strong> <strong>of</strong> <strong>Washington</strong>, I agree that the Library shall make its copies<br />

freely available for inspection. I further agree that extensive copying <strong>of</strong> this dissertation<br />

is allowable only for scholarly purposes, consistent with “fair use” as prescribed in the U.S.<br />

Copyright Law. Requests for copying or reproduction <strong>of</strong> this dissertation may be referred<br />

to Proquest Information and Learning, 300 North Zeeb Road, Ann Arbor, MI 48106-1346,<br />

1-800-521-0600, to whom the author has granted “the right to reproduce and sell (a) copies<br />

<strong>of</strong> the manuscript in micr<strong>of</strong>orm and/or (b) printed copies <strong>of</strong> the manuscript made from<br />

micr<strong>of</strong>orm.”<br />

Signature<br />

Date


<strong>University</strong> <strong>of</strong> <strong>Washington</strong><br />

Abstract<br />

<strong>Distributed</strong> <strong>Reactive</strong> <strong>Collision</strong> <strong>Avoidance</strong><br />

Emmett Lalish<br />

Chair <strong>of</strong> the Supervisory Committee:<br />

Pr<strong>of</strong>essor Kristi A. Morgansen<br />

Aeronautics and Astronautics<br />

<strong>Collision</strong> avoidance is an important aspect <strong>of</strong> multivehicle coordination because it prevents<br />

vehicles from disrupting or destroying each other. The work contained in this dissertation<br />

concerns a novel approach to the n-vehicle collision avoidance problem. The vehicle model<br />

used here allows for three-dimensional movement and represents a wide range <strong>of</strong> vehicles.<br />

The algorithm works in conjunction with any desired controller to guarantee all vehicles<br />

remain free <strong>of</strong> collisions while attempting to follow their desired control. This algorithm<br />

is reactive and distributed, making it well-suited for real-time applications, and explicitly<br />

accounts for actuation limits. A robustness analysis is presented which provides a means to<br />

account for delays and unmodeled dynamics. Robustness to an adversarial vehicle is also<br />

presented.


TABLE OF CONTENTS<br />

Page<br />

List <strong>of</strong> Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .<br />

iii<br />

List <strong>of</strong> Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv<br />

Chapter 1: Introduction to <strong>Collision</strong> <strong>Avoidance</strong> . . . . . . . . . . . . . . . . . . 1<br />

1.1 Definitions <strong>of</strong> Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />

1.2 Literature Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6<br />

1.3 Introduction to DRCA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11<br />

Chapter 2: Problem Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />

Chapter 3: Conflicts and <strong>Collision</strong>s . . . . . . . . . . . . . . . . . . . . . . . . 17<br />

Chapter 4: DRCA Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20<br />

4.1 Deconfliction Maneuvers . . . . . . . . . . . . . . . . . . . . . . . . . . . 23<br />

4.1.1 Constant-Speed Maneuver . . . . . . . . . . . . . . . . . . . . . . 25<br />

4.1.2 Variable-Speed Maneuver . . . . . . . . . . . . . . . . . . . . . . 29<br />

4.1.3 Heuristic Performance . . . . . . . . . . . . . . . . . . . . . . . . 34<br />

4.2 Deconfliction Maintenance . . . . . . . . . . . . . . . . . . . . . . . . . . 36<br />

4.2.1 Control Law . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36<br />

4.2.2 Guarantee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39<br />

4.2.3 Priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43<br />

4.2.4 Behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44<br />

4.2.5 Liveness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45<br />

Chapter 5: Robustness Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . 48<br />

5.1 Robust Stability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48<br />

5.2 Robust <strong>Avoidance</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51<br />

i


Chapter 6: Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54<br />

6.1 Variable Speed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54<br />

6.2 Preferential Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56<br />

6.3 Three-dimensional <strong>Avoidance</strong> . . . . . . . . . . . . . . . . . . . . . . . . 58<br />

6.4 Heuristic Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59<br />

6.5 Computational Scaling . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62<br />

6.6 Formations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63<br />

6.7 Comparison to an SGT Algorithm . . . . . . . . . . . . . . . . . . . . . . 65<br />

Chapter 7: Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69<br />

7.1 Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70<br />

Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72<br />

ii


LIST OF FIGURES<br />

Figure Number<br />

Page<br />

1.1 Air traffic control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2<br />

3.1 Geometric definition <strong>of</strong> the collision cone. . . . . . . . . . . . . . . . . . . 18<br />

4.1 Flow chart <strong>of</strong> the DRCA algorithm. . . . . . . . . . . . . . . . . . . . . . 21<br />

4.2 Example optimization <strong>of</strong> a constant-speed maneuver. . . . . . . . . . . . . 25<br />

4.3 Example <strong>of</strong> an infeasible constant-speed maneuver problem. . . . . . . . . 30<br />

4.4 Example optimization <strong>of</strong> a variable-speed maneuver. . . . . . . . . . . . . 31<br />

4.5 Example <strong>of</strong> an infeasible variable-speed maneuver problem. . . . . . . . . 34<br />

4.6 Block diagram <strong>of</strong> the deconfliction maintenance controller. . . . . . . . . . 36<br />

4.7 Geometry <strong>of</strong> the conflict measures p t and p n . . . . . . . . . . . . . . . . . 37<br />

4.8 Example <strong>of</strong> the control function, F . . . . . . . . . . . . . . . . . . . . . . 39<br />

5.1 Geometry <strong>of</strong> worst case adversary . . . . . . . . . . . . . . . . . . . . . . 53<br />

6.1 Five vehicle simulation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55<br />

6.2 Excess separation <strong>of</strong> vehicles in Fig. 6.1. . . . . . . . . . . . . . . . . . . . 55<br />

6.3 Preferential routing comparison for three vehicles. . . . . . . . . . . . . . . 57<br />

6.4 Three-dimensional collision avoidance. . . . . . . . . . . . . . . . . . . . 58<br />

6.5 Excess separation <strong>of</strong> vehicles in Fig. 6.4. . . . . . . . . . . . . . . . . . . . 59<br />

6.6 Comparison <strong>of</strong> the constant and variable-speed deconfliction maneuvers. . . 60<br />

6.7 Merging two groups. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61<br />

6.8 Fifty-vehicle swarm avoiding a static obstacle. . . . . . . . . . . . . . . . . 64<br />

6.9 <strong>Collision</strong> avoidance <strong>of</strong> 32 aircraft using the DRCA algorithm. . . . . . . . 66<br />

6.10 <strong>Collision</strong> avoidance <strong>of</strong> two perpendicular flows. . . . . . . . . . . . . . . . 68<br />

6.11 Excess separation for vehicles in 6.10. . . . . . . . . . . . . . . . . . . . . 68<br />

iii


LIST OF TABLES<br />

Table Number<br />

Page<br />

6.1 Algorithmic computation times. . . . . . . . . . . . . . . . . . . . . . . . 63<br />

iv


ACKNOWLEDGMENTS<br />

The author wishes to express sincere appreciation to Katie Marshall and the reading<br />

committee for editing and improving this dissertation, to the many scholarships that made<br />

his education possible, to Kristi Morgansen for employing him, and to the rest <strong>of</strong> the Department<br />

<strong>of</strong> Aeronautics & Astronautics for the superb education received.<br />

v


DEDICATION<br />

To my parents, Greg and Paula Lalish.<br />

vi


1<br />

Chapter 1<br />

INTRODUCTION TO COLLISION AVOIDANCE<br />

The study <strong>of</strong> multi-vehicle systems has become a major field in control theory. The<br />

fundamental reason that groups <strong>of</strong> vehicles are interesting is that <strong>of</strong>ten a group can perform<br />

tasks that a single agent cannot (for instance an ant colony, or human organization). These<br />

groups are also more immune to single point failures, since the loss <strong>of</strong> one agent does not<br />

necessarily doom the group. Unfortunately, causing a group <strong>of</strong> individual agents to cooperate<br />

in a useful manner is also more complex than controlling a single agent. Sharing<br />

pertinent information between members <strong>of</strong> the group through some combination <strong>of</strong> sensing<br />

and communication is nontrivial, not to mention finding the proper maneuvers to accomplish<br />

the assigned task efficiently.<br />

As multi-vehicle autonomous systems are studied and implemented, the issue <strong>of</strong> conflict<br />

resolution becomes increasingly important. From mobile robots performing a cooperative<br />

search to air traffic control for unmanned aerial vehicles, collision avoidance is <strong>of</strong> utmost<br />

importance for safety. Much <strong>of</strong> the work so far on collision avoidance has been sponsored<br />

by the FAA to support a potential move to free-flight air traffic control [1, 2], whereby<br />

aircraft can avoid each other in a decentralized manner rather than relying on a land-based<br />

controller. Similar concepts have been discussed regarding autonomous harbor control<br />

for ships [3, 4]. These scenarios will become more important as unmanned vehicles are<br />

introduced, because safety will need to be guaranteed for them to be accepted by their<br />

manned counterparts.<br />

As more vehicles are added to a system, collision avoidance gets significantly more<br />

difficult. Air traffic control is already a difficult problem given the number <strong>of</strong> aircraft<br />

currently in operation (Fig. 1.1), but as this number increases it may be necessary to develop


2<br />

Figure 1.1: A snapshot <strong>of</strong> the US airspace showing the magnitude <strong>of</strong> the air traffic control<br />

task (photo courtesy <strong>of</strong> NASA).<br />

automated algorithms to decrease the workload <strong>of</strong> human operators.<br />

<strong>Collision</strong> avoidance is a difficult and interesting problem in the study <strong>of</strong> control theory<br />

because the goal is fundamentally different from that <strong>of</strong> a classical control system. The vast<br />

majority <strong>of</strong> classical control problems (and their current nonlinear counterparts) demand<br />

the system attain a particular point in the state space (be it stationary or moving). Most<br />

<strong>of</strong> the methods for this type <strong>of</strong> task use asymptotic analysis, whereby the system can be<br />

said to approach the goal regardless <strong>of</strong> the starting position or the route taken. <strong>Collision</strong><br />

avoidance is completely different in that there is no inherent end goal. The goal instead is<br />

to not enter particular regions <strong>of</strong> the state space at any time. <strong>Collision</strong> avoidance therefore<br />

has the effect <strong>of</strong> making the allowable set in the state space nonconvex, and in the case <strong>of</strong><br />

avoiding moving vehicles, the set is also time varying. Adding these restrictions to the state<br />

space makes otherwise simple problems extremely difficult. One <strong>of</strong> the primary reasons is<br />

that transient response is difficult to completely characterize using classical control, yet it<br />

is exactly these transients that cause most collisions. Now, instead <strong>of</strong> only considering the


3<br />

system state as time goes to infinity, one has to consider the system state at all times.<br />

When one factors in the highly nonlinear nature <strong>of</strong> the nonholonomic dynamics that<br />

govern most real vehicles, the problem truly balloons in complexity. Control authority limitations<br />

become far more important than in most classical control problems because control<br />

saturation primarily affects transient behavior. When two vehicles are on a collision course,<br />

it is exactly that transient behavior that determines their ability to avoid each other. If saturation<br />

is not accounted for explicitly, then collision avoidance becomes a trivial problem<br />

where a vehicle simply applies infinite control in the direction away from a collision. Of<br />

course this concept is unrealistic in practice, but nonetheless, many papers have been written<br />

on collision avoidance which rely on exactly this principle for their pro<strong>of</strong>s.<br />

The typical goal for designing a nonlinear control algorithm is to prove global asymptotic<br />

stability. Unfortunately, guaranteed global collision avoidance does not exist because<br />

all real vehicles have inertia and control authority limits, which place fundamental limits on<br />

their safe set <strong>of</strong> initial conditions. Two vehicles heading towards each other can always be<br />

placed close enough that nothing can be done to avoid a collision. Therefore no approach<br />

can possibly guarantee collision avoidance for arbitrary initial conditions. Determining the<br />

exact set <strong>of</strong> initial conditions for which avoidance is impossible becomes extremely complex<br />

as the number <strong>of</strong> vehicles increases, so generally the best that can be done is to define<br />

a bound or test, which if passed, yields a conservative guarantee.<br />

1.1 Definitions <strong>of</strong> Terms<br />

A wide range <strong>of</strong> methods have attempted to solve the collision avoidance problem, and<br />

the authors <strong>of</strong> a survey paper [5] split those methods into three categories: prescribed,<br />

optimized, and force field. In prescribed maneuver approaches, all vehicles follow a set<br />

protocol, not unlike the rules <strong>of</strong> the road. This approach tends to yield a discrete event<br />

controller, which when combined with the vehicle’s continuous dynamics, forms a hybrid<br />

system. Optimization methods attempt to find the best route for all the vehicles to take to<br />

avoid each other while minimizing a cost function. Generally, these methods use a look-


4<br />

ahead or time horizon so that the solution does not have to be recalculated <strong>of</strong>ten. Force field<br />

approaches use continuous feedback mechanisms to compute the control. Commonly, the<br />

force field between two vehicles is akin to the repulsion between two like-charged particles,<br />

however there are many possible alternatives for feedback schemes. These approaches are<br />

generally reactive, in that the control reacts to the current state <strong>of</strong> the system, rather than<br />

planning a trajectory ahead <strong>of</strong> time.<br />

The next differentiator between collision avoidance algorithms is their degree <strong>of</strong> centralization.<br />

Centralized means that all <strong>of</strong> the information about the vehicles is sent to a<br />

single server where the controls are calculated for each vehicle and sent back. The current<br />

air traffic control system uses centralization (with human operators), as do most optimization<br />

schemes. The other extreme is decentralization, in which no central server exists and<br />

each vehicle computes its own control based only on other vehicles within a particular range<br />

<strong>of</strong> itself. This situation is ideal from a computational perspective because there is a limit to<br />

how many vehicles can be within range at once, and therefore there is a limit to how much<br />

time the algorithm will take to run, regardless <strong>of</strong> the total number <strong>of</strong> vehicles involved. In<br />

between is a category termed distributed, in which there is still no central server and each<br />

vehicle computes its own control but may need more than local information to do so. In this<br />

case, computations scale with the number <strong>of</strong> vehicles involved (n), but the scaling is at least<br />

O(n) better than the centralized case, because now n separate processors are computing in<br />

parallel, rather than one server doing all the work.<br />

The vehicle model used in each formulation is also <strong>of</strong> utmost importance to the algorithm’s<br />

applicability to real systems. First, for collision avoidance to be nontrivial, the<br />

dynamics must be at least second order (acceleration-level control input), and the control<br />

inputs must be bounded to model the difficulties <strong>of</strong> overcoming inertia. Many vehicles<br />

(cars, ships, airplanes, etc.) have nonholonomic constraints, and as such are <strong>of</strong>ten modeled<br />

at a high level by unicycle dynamics. The inputs to this model are forward acceleration<br />

and heading rate (which is equivalent to acceleration normal to the velocity). All vehicles<br />

have a maximum speed, but some vehicles (notably airplanes) also have a positive min-


5<br />

imum speed. The constant-speed unicycle is one <strong>of</strong> the most broadly applicable vehicle<br />

models because it is the most constrained (less constrained vehicles can still duplicate its<br />

movements, but not vice-versa). Ideally an algorithm should use all <strong>of</strong> the capabilities a<br />

vehicle has to <strong>of</strong>fer, but still function under the constraints <strong>of</strong> a constant-speed unicycle if<br />

necessary.<br />

Another important aspect <strong>of</strong> a collision avoidance algorithm is whether it works for<br />

a heterogeneous group <strong>of</strong> vehicles. Heterogeneity can be due to differences in vehicle<br />

size, dynamics, speed range, control authority, etc. Many algorithms are developed for a<br />

homogeneous group <strong>of</strong> vehicles for convenience and ease <strong>of</strong> notation, but could be easily<br />

extended to a heterogeneous case. Others, especially constant-speed algorithms, can have<br />

difficultly generalizing from a homogeneous scenario. Another important consideration is<br />

that vehicle size, maximum speed, and control authority are <strong>of</strong>ten important parameters<br />

for the other vehicles in the system to know in order to properly avoid each other. In a<br />

homogeneous system these parameters are known implicitly because they are the same<br />

for every vehicle, but in a heterogeneous system, these parameters must be exchanged.<br />

Communication is the most obvious tool, though sensors could be employed to identify<br />

the vehicle type and compare it to some known list, the same way a captain can identify a<br />

sailboat or a ferry and infer their size and maneuverability. Until such technology is fully<br />

mature, heterogeneity may require some degree <strong>of</strong> inter-vehicle communication.<br />

A final aspect important to collision avoidance is liveness, which denotes the ability<br />

<strong>of</strong> the vehicles to attain their goals. Liveness is important to consider because one simple<br />

way to avoid collisions is to have everyone stop moving. While this method may avoid<br />

collisions, it is not useful because the vehicles cannot arrive at their destinations. This type<br />

<strong>of</strong> situation is called a deadlock. Another problem scenario is a livelock, where the vehicles<br />

continue to move, but in such a way that they cannot reach their goals.


6<br />

1.2 Literature Review<br />

Much work has been done on the collision avoidance problem to date, and a wide variety<br />

<strong>of</strong> solutions have been proposed. While each <strong>of</strong> these answers solves a piece <strong>of</strong> the puzzle,<br />

they also have limitations that keep them from solving the wide range <strong>of</strong> applications that<br />

the work in this dissertation seeks to address. However, they also form the foundation <strong>of</strong><br />

tools and ideas on which this work has been built.<br />

An early theoretical work on collision avoidance [6] showed a method <strong>of</strong> designing<br />

avoidance controllers for a general class <strong>of</strong> vehicle models and constraints. The mathematical<br />

foundation is solid in that it presents a pro<strong>of</strong> to avoid not just another vehicle, but<br />

an adversary. The method is limited because it requires finding an appropriate Lyapunov<br />

function, which is <strong>of</strong>ten a nontrivial task, and it only works for two-vehicle systems.<br />

The collision cone concept, introduced in [7] and subsequently used in the deconfliction<br />

literature [8, 9, 10, 11, 12], is a first order look ahead for detecting conflicts. The collision<br />

cone is a set <strong>of</strong> velocities for one vehicle that will cause it to collide with another, assuming<br />

each <strong>of</strong> their velocities are constant. While most algorithms using the collision cone define<br />

collision by the distance between two points (as though each vehicle is a disk or sphere),<br />

[7] shows how the method also works for irregularly shaped objects. An extension <strong>of</strong> the<br />

collision cone concept to accelerating vehicles was shown in [9], but the resulting conflict<br />

region is nonlinear and difficult to describe analytically, which limits its use for collision<br />

avoidance.<br />

A three-dimensional version <strong>of</strong> the original collision cone was used in [10] to avoid<br />

conflicts pairwise. Separate solutions were found using speed changes, heading changes,<br />

and flight path angle changes, but not in combination. An extension <strong>of</strong> that work to handle<br />

simultaneous speed, heading, and flight path angle changes was shown in [11]. Extensive<br />

real-world simulations were shown for two aircraft, but the algorithm is not designed for<br />

larger numbers <strong>of</strong> interacting vehicles.<br />

An application <strong>of</strong> the collision cone to three-dimensional air traffic control is presented


7<br />

in [12], where the rates <strong>of</strong> change <strong>of</strong> the collision cones are used to prioritize the evasion <strong>of</strong><br />

potentially adversarial vehicles. However, the protocols for handling multiple vehicles are<br />

not completely described, and no guarantees are given for safety, even in the two vehicle<br />

case.<br />

A combination <strong>of</strong> repulsive and vortex functions are used as force fields in [13], causing<br />

vehicles to form roundabout avoidance maneuvers, as tend to crop up in many <strong>of</strong> the collision<br />

avoidance methods. The algorithm provides no guarantees regarding safe separation,<br />

especially in the presence <strong>of</strong> control authority limits. Often parameters <strong>of</strong> the functions can<br />

be adjusted to give adequate results for a given situation, but it is unclear how to choose<br />

these parameters in general.<br />

A function involving more look-ahead is presented in [14], which shows good qualitative<br />

performance, but again lacks guarantees. Their simulations consistently show a significant<br />

percentage <strong>of</strong> the vehicles violating their separation bounds. A somewhat similar<br />

approach was taken by this author in [15], which avoided three dimensional conflicts by<br />

maneuvering out <strong>of</strong> the plane <strong>of</strong> the conflict. Again, simulations showed promise, but no<br />

guarantees could be found for safety.<br />

Gyroscopic and braking forces are used for collision avoidance in [16], resulting in a<br />

decentralized control law. However, safety can only be guaranteed so long as each vehicle<br />

only sees one other vehicle at a time within the detection range. Therefore no guarantees<br />

exist for systems with more than two vehicles, though simulations are shown for manyvehicle<br />

cases.<br />

A simple potential function method is employed for collision avoidance in [17], while<br />

simultaneously attaining a desired formation <strong>of</strong> the agents involved. The guarantee <strong>of</strong> collision<br />

avoidance given proves that the vehicles never attain the exact same position at the<br />

same time by using unbounded control authority. Problematically, no minimum separation<br />

distance or any concept <strong>of</strong> vehicle size is used in this method.<br />

Another force field approach that guarantees collision avoidance is presented in [18].<br />

Unfortunately, the guarantee is based on a potential function that goes to infinity at the mini-


8<br />

mum vehicle separation. Effectively, for the guarantee to apply, the vehicle must be capable<br />

<strong>of</strong> infinite control authority, which is an unreasonable assumption for any real vehicle.<br />

A realistic situation in which force-field collision avoidance is necessary is given in<br />

[19]. The idea is to use electrostatic charges on spacecraft to create enough repulsion force<br />

to avoid collisions in high orbit and deep space. This situation results in a different kind<br />

<strong>of</strong> underactuated system, but one for which collision avoidance is guaranteed, even in the<br />

case <strong>of</strong> control saturation, given restrictions on the initial conditions. These results use a<br />

Lyapunov function and only apply to the two-vehicle case.<br />

The work in [20] uses a navigation function to combine the tasks <strong>of</strong> collision avoidance<br />

and waypoint navigation into a single gradient-following routine. The navigation function<br />

is useful in its ability to guarantee liveness in a static environment. Unfortunately, adequate<br />

separation is not proven because the dynamics <strong>of</strong> the vehicle make it unable to follow the<br />

gradient in all cases. A vortex is added to the function to better the heuristic performance,<br />

but its effect on safety is unclear.<br />

A collision avoidance approach for a three-dimensional unicycle model that uses dipole<br />

navigation functions to avoid static obstacles while maneuvering to a goal is presented in<br />

[21]. While the dipole navigation functions provide smooth controls for the vehicle, still no<br />

way is given to choose the parameters such that particular rate limits are observed. These<br />

control limits can therefore cause collisions in certain situations.<br />

A high-performance force-field method is presented in [22], which uses a concept similar<br />

to an abbreviated collision cone to take into account how much space an avoidance<br />

maneuver will need based on the relative velocity between the vehicles. Simulations show<br />

promising results for large numbers <strong>of</strong> vehicles, and the computation time is kept low by<br />

the decentralized nature <strong>of</strong> the algorithm. While this algorithm does guarantee safety for a<br />

homogeneous system <strong>of</strong> two or three vehicles with acceleration constraints, its performance<br />

in larger systems is heuristic, and it does not allow unicycle-type dynamics in its vehicle<br />

model.<br />

The optimization scheme presented in [23] is performed over the reachable set <strong>of</strong> a


9<br />

hybrid system that describes each aircraft involved. Safety is guaranteed, but only in the<br />

two-vehicle case. An n-vehicle optimization approach is presented in [8] that uses a relaxation<br />

approach to turn the collision avoidance problem into a semidefinite program, solved<br />

with convex optimization. This achievement is impressive given the highly nonconvex<br />

nature <strong>of</strong> collision avoidance. Unfortunately, the solution must be centralized, and the algorithm<br />

is randomized, which means that to get an optimal solution, the optimization must<br />

be run several times. While convex optimization is computationally efficient compared to<br />

general nonlinear optimization, it is still less scalable than prescribed maneuver or force<br />

field approaches.<br />

A method showing better computation time is presented in [24], which uses mixed<br />

integer programming. This method allows for either speed changes or heading changes,<br />

but not both concurrently. It is still a centralized solution, and like many <strong>of</strong> the other<br />

optimization approaches, no mention is made <strong>of</strong> restrictions on the initial conditions to<br />

ensure that a feasible solution exists.<br />

Another convex relaxation approach to optimizing collision avoidance is shown in [25]<br />

for an n-spacecraft system using 3D double integrator dynamics. The algorithm works by<br />

computing an optimal set <strong>of</strong> new velocities each time any vehicles get too close together.<br />

These new velocities cause the vehicles to bounce away from each other, and in this way<br />

collision avoidance is guaranteed for the system as is liveness <strong>of</strong> the solution. However,<br />

in addition to the optimization being centralized, the control is designed to attain the new<br />

velocity in a single time step, meaning the magnitude <strong>of</strong> the control force is unbounded<br />

as the time step goes to zero. Alternatively, one could choose the time step to enforce a<br />

control limit, but given the discrete time nature <strong>of</strong> the constraints, motion during the time<br />

step would become significant and could cause collisions.<br />

An approach to distributing an optimization scheme across the vehicles involved is<br />

presented in [26]. This approach is much broader than collision avoidance, as the optimization<br />

occurs across a whole host <strong>of</strong> constraints, from visiting targets to avoiding danger<br />

zones. The authors use market-based task trading and evolutionary optimization to find


10<br />

paths dynamically for the vehicles. While most <strong>of</strong> the computations are distributed, a central<br />

server is still required to make the trades. Additionally, no guarantee has been made<br />

that a collision-free set <strong>of</strong> paths will be found.<br />

The authors <strong>of</strong> [27] also use a negotiation process to optimize collision avoidance maneuvers,<br />

but another algorithm must be present to give collision-free paths for the vehicles<br />

to start from for the guarantees to work. The idea is that this other algorithm need not be<br />

optimal, but merely feasible. Then the second stage enables the vehicles to negotiate a more<br />

optimal solution derived from the first. The algorithm for finding a set <strong>of</strong> feasible paths is<br />

not given, assuming instead that one <strong>of</strong> the other approaches discussed here will suffice.<br />

A major improvement in the computation time <strong>of</strong> optimization methods is shown in<br />

[28], which uses satisficing game theory to make a truly decentralized optimization scheme.<br />

This algorithm is efficient enough to make real-time computation reasonably scalable to<br />

large numbers <strong>of</strong> vehicles. The price paid for efficient computation is a loss <strong>of</strong> the safety<br />

guarantees, as simulation results show that collisions are rare, but that they do occur.<br />

In [29], a distributed collision avoidance algorithm with guaranteed safety is presented<br />

for a homogeneous group <strong>of</strong> n aircraft. This prescribed maneuver approach involves two<br />

discrete heading and speed changes for each aircraft, where each aircraft turns the same<br />

way. The method is based upon perturbations from an exact conflict, where all vehicles<br />

are headed toward a single collision point. This algorithm was extended in [30] to work in<br />

3D and to account for bounded acceleration. Since the algorithm is computed only once,<br />

it is unclear how it could account for a dynamically changing environment where vehicles<br />

are not necessarily capable <strong>of</strong> performing the exact maneuver prescribed. Additionally, the<br />

algorithm may run into trouble with extremely inexact conflicts, since it is based upon a<br />

transformation to an exact conflict.<br />

Probably the safest collision avoidance algorithm to date is that <strong>of</strong> [31], which considers<br />

a homogeneous group <strong>of</strong> constant-speed unicycles. This method uses a completely decentralized,<br />

prescribed maneuver algorithm for n vehicles which has an absolute guarantee <strong>of</strong><br />

safety in the presence <strong>of</strong> constrained control authority. While this solution might appear


11<br />

at first to be the holy grail <strong>of</strong> collision avoidance, it has some undesirable performance<br />

characteristics. To achieve this guarantee, the vehicles must keep a region the size <strong>of</strong> their<br />

turning diameter free <strong>of</strong> other vehicles at all times. For mobile robots this requirement may<br />

be reasonable, but for aircraft and ships that tend to have a turning radius much larger than<br />

their physical size, this requirement becomes overly conservative. Additionally, the system<br />

can suffer from deadlocks and livelocks.<br />

1.3 Introduction to DRCA<br />

The <strong>Distributed</strong> <strong>Reactive</strong> <strong>Collision</strong> <strong>Avoidance</strong> (DRCA) algorithm presented here fills an<br />

important gap in the current collision avoidance literature. Namely, this algorithm presents<br />

a distributed, computationally efficient method to guarantee collision avoidance between n<br />

vehicles in the presence <strong>of</strong> arbitrary control authority limitations. Plus, liveness <strong>of</strong> the solutions<br />

can be guaranteed, as well as robustness to modeling errors and adversarial behavior.<br />

The vehicle model used for the formulation <strong>of</strong> the problem is the 3D double-integrator.<br />

Specific vehicles are then modeled by restricting the control authority in particular directions<br />

by time- or state-dependent functions, rather than by adjusting the dynamics themselves.<br />

In this way, this single model can represent two-dimensional systems, or even<br />

nonholonomic vehicles <strong>of</strong> the constant-speed unicycle variety. Likewise, static obstacles<br />

can be avoided since they can be represented as a vehicle with zero speed and zero control<br />

authority. Higher order dynamics (like an airplane banking to turn) can be accounted for<br />

with the robustness analysis.<br />

The DRCA algorithm is a two-step process, consisting <strong>of</strong> an optimization-based deconfliction<br />

maneuver, followed by the longer-term deconfliction maintenance phase, which is a<br />

reactive, force-field type approach. Both <strong>of</strong> the steps are based upon the collision cone concept.<br />

The optimization schemes are uniquely distributed and scale well computationally.<br />

Though they do not find a global optimum, they do guarantee finding a feasible solution<br />

under given restrictions on the initial conditions. The deconfliction maintenance controller<br />

ensures that the vehicles follow their arbitrary outer-loop controllers as much as possible


12<br />

without sacrificing safety. This framework also allows vehicles to be given different priorities,<br />

such that lower priority vehicles will make way for higher priority ones.<br />

This algorithm requires little (though nonzero) communication between vehicles, and<br />

can safely add new vehicles to the system as they reach sensor range. While the algorithm<br />

is distributed, it is not quite decentralized, in that all-to-all information is needed within a<br />

connected group. The information exchange can be easily implemented through a broadcast,<br />

and if there is enough bandwidth for vehicles to rebroadcast the information they<br />

receive, then a quasi-all-to-all topology can be achieved. The robustness analysis accounts<br />

for the corresponding time delays. Additionally, the algorithm can be run in a completely<br />

decentralized fashion, and while some <strong>of</strong> the guarantees no longer apply, simulations are<br />

given that demonstrate significant capability nonetheless.<br />

No homogeneity is required among the vehicles that make up the system. The DRCA<br />

algorithm allows the vehicles to perform completely different tasks and to have different<br />

size, speed, actuation limitations, and control gains.<br />

The remainder <strong>of</strong> this dissertation is organized as follows. The problem statement is<br />

given in Chapter 2, including the vehicle model. Specific definitions <strong>of</strong> collision and the<br />

collision cone are given in Chapter 3. In Chapter 4 the DRCA algorithm is described, which<br />

forms the bulk <strong>of</strong> the dissertation. A robustness analysis is given in Chapter 5. Finally,<br />

simulation results are presented in Chapter 6 and concluding remarks in Chapter 7.


13<br />

Chapter 2<br />

PROBLEM STATEMENT<br />

The work here presents a method for deconflicting n vehicles.<br />

Each vehicle has a<br />

nominal desired control input, u d (t), which comes from an arbitrary outer-loop controller.<br />

This controller is designed for the vehicle to perform a desired task, which could range<br />

from target tracking to waypoint navigation, to area searching, etc. The goal <strong>of</strong> the DRCA<br />

algorithm is to adjust the control input on each vehicle to guarantee collision avoidance<br />

while simultaneously staying close to the desired control input (keeping in mind that this<br />

desired control can change with time).<br />

For this approach to collision avoidance, the only vehicle states that matter are position<br />

and velocity. Orientations affect performance, as they <strong>of</strong>ten have bearing on the magnitude<br />

<strong>of</strong> acceleration available in a particular direction, but they do not affect the underlying<br />

concepts <strong>of</strong> conflict and collision. In this way, many different vehicle models work equivalently<br />

with this approach. To simplify the math, a simple vehicle model will be used for<br />

most <strong>of</strong> the following analysis: a 3D double integrator, which for the i th vehicle is given by<br />

⎡ ⎤ ⎡ ⎤<br />

r<br />

d<br />

i v i<br />

⎢ v<br />

dt ⎣ i ⎥<br />

⎦ = ⎢ u<br />

⎣ i ⎥<br />

⎦ , (2.1)<br />

Θ i Ω i Θ i<br />

where r i , v i , u i ∈ R 3 are the position, velocity, and control input, respectively. The matrix<br />

Θ i<br />

= [ˆt i , ˆn i , ˆb i ] defines the orientation and Ω i is the cross product matrix <strong>of</strong> the body<br />

rotation vector ω = [ω t , ω n , ω b ] T . The notation throughout this paper will use bold face<br />

for vectors, hats over unit-vectors, script capital letters for sets, standard capital letters for<br />

matrices and functions, and everything else is assumed scalar. Quantities subscripted with<br />

t, n, or b refer to the tangent, normal, or binormal direction, respectively.


14<br />

Note that the orientation (defined by the ˆt, ˆn, and ˆb vectors) is only used as a local<br />

coordinate frame for the DRCA algorithm. The orientation does not directly affect the<br />

dynamics (r and v), and as such can be arbitrary. However, many vehicle’s input constraints<br />

are related to their orientation, and so it can be useful to tie this local coordinate frame to<br />

the actual body coordinates <strong>of</strong> the vehicle.<br />

We constrain the input by use <strong>of</strong> an arbitrarily varying constraint set, u i ∈ C i . The only<br />

requirement is that C i always contain the origin. A simple example <strong>of</strong> an input constaint set<br />

that limits maximum acceleration and velocity is<br />

C i =<br />

{<br />

u i ∈ R 3∣ }<br />

∣ ‖ui ‖ ≤ u max , ‖v i ‖ ≥ v max =⇒ u T i v i ≤ 0 . (2.2)<br />

For the DRCA algorithm, one must choose a set <strong>of</strong> rectangular constraints R i (which<br />

can also vary with time, state, etc.)<br />

for each vehicle that encloses its C i , as well as a<br />

corresponding saturation function, S i : R i → C i . The function S i must be continuous, must<br />

become the identity map for any u ∈ C i , and must preserve the sign <strong>of</strong> each component <strong>of</strong><br />

u when projected onto the ˆt, ˆn, and ˆb directions. In this example, one can choose<br />

R i = { u i ∈ R 3∣ ∣ − umaxi ≤ u ti ≤ u maxi , . . . } , (2.3)<br />

and<br />

⎧<br />

u<br />

u max i<br />

⎪⎨<br />

, ‖u ‖u i ‖ i‖ > u max<br />

S i = u i − v iu T i v i<br />

v max<br />

, ‖v i ‖ ≥ v max , u T i v i ≥ 0<br />

⎪⎩ u i , otherwise.<br />

(2.4)<br />

An example <strong>of</strong> how more complex vehicle dynamics can be represented by this simple<br />

model with an appropriate choice <strong>of</strong> input constraint set follows. Let us model a vehicle<br />

which can go forward with variable speed, can turn in two axes (a 3D unicycle model), and<br />

has limits on its turn rate, forward acceleration, and maximum speed. One way to describe<br />

the model mathematically is by


15<br />

⎡ ⎤ ⎡ ⎤<br />

r sˆt<br />

d<br />

⎢ s ⎥<br />

dt ⎣ ⎦ = ⎢ u<br />

⎣ a ⎥<br />

⎦ , (2.5)<br />

Θ ΩΘ<br />

where |u a | ≤ u amax , |ω n | ≤ ω nmax , |ω b | ≤ ω bmax , and |s| ≥ s max =⇒ u a s ≤ 0.<br />

Alternatively, an equivalent representation <strong>of</strong> the system is (2.1) with u = u aˆt+‖v‖ ω bˆn−<br />

‖v‖ ω nˆb. The tangent vector must be initialized to the same direction as the velocity vector,<br />

but the dynamics will keep them aligned from then on. In this case, R can be defined by<br />

u tmax = −u tmin = u amax<br />

u nmax = −u nmin = ‖v‖ ω bmax<br />

u bmax = −u bmin = ‖v‖ ω nmax , (2.6)<br />

and the accompanying saturation function is<br />

⎧<br />

⎪⎨ u − vuT v<br />

s<br />

S =<br />

max<br />

, ‖v‖ ≥ s max , u T v ≥ 0<br />

⎪⎩ u, otherwise.<br />

(2.7)<br />

Normally one would not equate a holonomic model to a nonholonomic one, largely<br />

because <strong>of</strong> differences in controllability. However, controllability is not essential to the<br />

DRCA algorithm since orientations are arbitrary, and only position and velocity matter.<br />

The DRCA algorithm is designed to use any control authority available, but it does not<br />

require the state space to be locally accessible.<br />

The relative position vector from vehicle i to vehicle j is denoted ˜r ij ≡ r j − r i , while<br />

the relative velocity vector is defined in the opposite sense: ṽ ij ≡ v i − v j . Note that these<br />

definitions imply that ˙˜r ij = −ṽ ij , and ˙ṽ ij = u i − u j .<br />

It is useful to define the dimensionless Deconfliction Difficulty Factor, η, to compare<br />

different systems in which collision avoidance is to be implemented. This factor is defined<br />

as<br />

η =<br />

v2 max<br />

u max d sep<br />

. (2.8)


16<br />

Conceptually, this factor is the ratio <strong>of</strong> the worst case turning radius to the required separation<br />

distance. It can also be thought <strong>of</strong> in terms <strong>of</strong> stopping distance.<br />

The DRCA algorithm was designed primarily for systems with large η (greater than<br />

unity) such as aircraft and ships, where the collision avoidance task is difficult because<br />

<strong>of</strong> the dominance <strong>of</strong> vehicle inertia. Vehicles with small η (significantly less than unity)<br />

such as mobile robots can <strong>of</strong>ten be modeled as having a direct velocity command, since<br />

the inertia becomes insignificant. In such cases, potential function methods for collision<br />

avoidance may be preferable to the DRCA algorithm because <strong>of</strong> their simplicity and ability<br />

to closely pack vehicles. The downside <strong>of</strong> potential function methods is their general lack<br />

<strong>of</strong> guarantees, especially when inertia is considered.


17<br />

Chapter 3<br />

CONFLICTS AND COLLISIONS<br />

The vehicles considered here are modeled as point masses, however physical vehicles<br />

have finite size. Therefore, to account for physical constraints in the theoretical model, the<br />

condition for collision is not to occupy the same position in space at the same time, but<br />

rather to come within a minimum allowed distance at some point in time. This minimum<br />

distance could be, for example, the five nautical mile separation between aircraft required<br />

by the FAA or the sum <strong>of</strong> the radii <strong>of</strong> two vehicles.<br />

Definition 1 (<strong>Collision</strong>). A collision occurs between vehicles i and j when<br />

‖˜r ij ‖ < d sep,ij , (3.1)<br />

where d sep,ij is the minimum allowed separation distance between the vehicles’ geometric<br />

centers.<br />

For two vehicles not actively in a collision, the next question is whether they will collide<br />

if they remain on their present headings. This situation will be called a conflict.<br />

Definition 2 (Conflict). A conflict occurs between vehicles i and j if they are not currently<br />

in a collision, but with zero control input (i.e. constant velocity), at some future point in<br />

time they will enter a collision:<br />

d min,ij min<br />

t>0 ‖˜r ij‖ < d sep,ij . (3.2)<br />

The following lemma provides a useful way to check for conflicts. To simplify the<br />

notation in the rest <strong>of</strong> this paper, the ij subscripts will generally be suppressed (for example,<br />

˜r ij will be written as ˜r).


18<br />

ṽ ij<br />

d sep,ij<br />

d sep,ij<br />

β<br />

Vehicle j<br />

α<br />

˜r ij<br />

α<br />

Vehicle i<br />

Figure 3.1: A 2D section <strong>of</strong> the collision cone along the ˜r ij -ṽ ij plane. The area between<br />

the two dotted lines is the collision cone; a conflict occurs when the relative velocity vector,<br />

ṽ ij , lies within this area.<br />

Lemma 1. Let β = ∠ṽ − ∠˜r 0 , α = arcsin<br />

( )<br />

dsep<br />

‖˜r 0<br />

and ˜r<br />

‖ 0 be the relative position vector<br />

at the time conflict is being checked. A necessary and sufficient condition for no conflict to<br />

occur is<br />

|β| ≥ α. (3.3)<br />

The angle α represents the half-width <strong>of</strong> the collision cone ([7, 8, 10]), which is depicted<br />

in Fig. 3.1.<br />

Pro<strong>of</strong>. First, define ˜r min as the position vector corresponding to the closest approach <strong>of</strong><br />

one vehicle to another in (3.2). By definition, at ˜r min the time derivative <strong>of</strong> ‖˜r‖ 2 = 0.<br />

Therefore:<br />

Next, note that for constant velocity, ṽ:<br />

d (˜rT˜r ) = 0<br />

dt<br />

ṽ T˜r min = 0. (3.4)<br />

˜r min = ˜r 0 − ṽt, (3.5)


19<br />

where t is the time to closest approach. To find t, multiply by ṽ T on both sides <strong>of</strong> (3.5),<br />

apply (3.4) and solve:<br />

ṽ T˜r min = ṽ T˜r 0 − ṽ T ṽt<br />

0 = ‖ṽ‖ ‖˜r 0 ‖ cos β − ‖ṽ‖ 2 t<br />

t = ‖˜r 0‖<br />

‖ṽ‖<br />

cos β. (3.6)<br />

Now, using (3.4), (3.5) and (3.6), a concise expression for the closest approach distance<br />

is given by<br />

d min =<br />

√<br />

˜r T min˜r min<br />

= √ (˜r 0 − ṽt) T˜r min<br />

√<br />

= ˜r T 0 (˜r 0 − ṽt)<br />

√<br />

=<br />

=<br />

‖˜r 0 ‖ 2 − ‖ṽ‖ ‖˜r 0 ‖ cos β<br />

√<br />

‖˜r 0 ‖ 2 (1 − cos 2 β)<br />

( ‖˜r0 ‖<br />

‖ṽ‖ cos β )<br />

= ‖˜r 0 ‖ |sin β| . (3.7)<br />

For no conflict to occur, the converse <strong>of</strong> (3.2) must be true:<br />

d sep ≤ d min<br />

= ‖˜r 0 ‖ |sin β| . (3.8)<br />

Therefore, to remain free <strong>of</strong> conflict it is necessary that:<br />

( )<br />

dsep<br />

|β| ≥ arcsin = α. (3.9)<br />

‖˜r 0 ‖<br />

exists.<br />

For sufficiency, if |β| ≥ α, then (3.9) and (3.8) still hold, thus implying that no conflict<br />

For notational simplicity below, ˜r 0 will be denoted simply by ˜r, as only its immediate<br />

value is used for the control (because the controller is reactive).


20<br />

Chapter 4<br />

DRCA ALGORITHM<br />

The DRCA algorithm uses a two-step process: a deconfliction maneuver and a deconfliction<br />

maintenance phase. The guarantees <strong>of</strong> n-vehicle collision avoidance rest upon three<br />

results. The first is that a deconfliction maneuver will keep the vehicles from colliding so<br />

long as they are each separated by at least a given bound. The second is that this deconfliction<br />

maneuver will result in a conflict-free state for the vehicles. The final result is that<br />

once a group <strong>of</strong> vehicles is conflict-free, the deconfliction maintenance controller will keep<br />

them that way.<br />

These steps yield the flow chart for the DRCA algorithm that is shown in Fig. 4.1.<br />

When the vehicles are sufficiently separated, no avoidance is necessary, so the vehicles<br />

can simply use their desired control. The deconfliction maintenance phase also takes the<br />

desired control into account, though there is no guarantee that it is followed at all times.<br />

In general, vehicles will not all see each other at the same time and perform one synchronous<br />

maneuver. Rather, they must avoid each other as they come into sensing/communication<br />

range (this will be referred to as communication from here on since some communication<br />

is required even if sensing is used). This maneuver does not require all-to-all communication,<br />

but does require some assumptions about connectivity and separation in order for the<br />

full collision avoidance guarantees to hold. However, if these assumptions are relaxed, the<br />

DRCA algorithm will still function as a high-performance heuristic, albeit without the full<br />

safety guarantee.<br />

The first step <strong>of</strong> the DRCA algorithm is to decide when a vehicle needs to perform its<br />

deconfliction maneuver. Let D be the set <strong>of</strong> vehicles who are currently deconflicting (either<br />

performing the deconfliction maneuver or deconfliction maintenance). Define a binary


21<br />

Enter<br />

Desired<br />

Control<br />

Deconfliction<br />

Maintenance<br />

Yes<br />

Yes<br />

Separated<br />

No<br />

Conflict−Free<br />

No<br />

Deconfliction<br />

Maneuver<br />

Figure 4.1: Flow chart <strong>of</strong> the DRCA algorithm.<br />

condition, χ i : D → {true,false}, which designates that the separation between vehicle<br />

i and the vehicles in D is enough to guarantee that vehicle i can avoid those vehicles. This<br />

condition will be derived later. Define a second binary condition, ξ i (D), which designates<br />

when vehicle i executes avoidance. The condition ξ i can be chosen for a longer or shorter<br />

look-ahead, but at the crossover point, χ i must be true.<br />

The DRCA algorithm causes vehicle i to follow its desired control until ξ i (D) becomes<br />

false. At this point vehicle i becomes a member <strong>of</strong> D and performs its deconfliction maneuver,<br />

which amounts to choosing a conflict-free velocity vector, broadcasting it to the<br />

group, and then accelerating to attain it as quickly as possible. Once this vehicle attains<br />

a conflict-free state with the other vehicles in D, it switches to deconfliction maintenance.<br />

The other vehicles in D that are already performing deconfliction maintenance avoid this<br />

new vehicle using its broadcast velocity instead <strong>of</strong> its actual velocity until its maneuver is<br />

complete. Conceptually, this method is akin to a turn signal, where the new vehicle tells<br />

the group how it will be accelerating, and the group can then work around that decision. As<br />

such, each vehicle will see no conflicts with a newly added member <strong>of</strong> the group. To implement<br />

this algorithm, each vehicle in D must be able to broadcast to all the other vehicles


22<br />

in D.<br />

If D is empty, then each vehicle uses ξ i (j) to determine when to maneuver, where j is<br />

the nearest vehicle. If vehicle i is less maneuverable than vehicle j, then ξ i (j) will turn<br />

false before ξ j (i) does. In this case, vehicle i becomes an element <strong>of</strong> D, making D = {i},<br />

but vehicle i does not perform a deconfliction maneuver, since vehicle j will be able to<br />

safely deconflict even if the vehicles move closer together. Now that D is nonempty, the<br />

system then follows the previous directions. Once ξ i (D) becomes true again, vehicle i is<br />

removed from D and solely follows its desired control.<br />

The deconfliction maneuvers used here are in fact simple optimization schemes with<br />

the goal <strong>of</strong> finding the smallest velocity change necessary to attain a conflict-free state.<br />

In this sense, the maneuvers are most similar to [8, 24] (in fact, because these authors’<br />

optimization schemes use the same definition <strong>of</strong> conflict, they could also be used as deconfliction<br />

maneuvers here). However, these two optimization schemes are centralized and<br />

computationally expensive. More importantly, they do not give a bound on how far apart<br />

the vehicles must be for a feasible solution to exist. This bound is <strong>of</strong> the utmost importance<br />

for designing a safe system.<br />

This algorithm is greedy in the sense that each vehicle minimizes its own cost function<br />

(‖∆v i ‖), meaning that the solution will not be a global optimum for some overarching cost<br />

function <strong>of</strong> the group. However, given the nonconvexity <strong>of</strong> the problem, finding any global<br />

optimum is nontrivial. For instance [8] used a semidefinite relaxation, but still required a<br />

random initial guess, and hence could not guarantee a global optimum either. Additionally,<br />

the actual cost function for the system is unknown in general, since any desired controller<br />

can have its own unique cost function associated with it, depending on the task. Therefore,<br />

instead <strong>of</strong> attempting to minimize an arbitrary cost function, a suboptimal solution will be<br />

allowed, with the focus instead on feasibility and low computation load.<br />

The only information the DRCA algorithm needs on a continuous basis is the position<br />

and velocity <strong>of</strong> each vehicle in D, which can either come from broadcast communication<br />

(e.g. a transponder) or sensing (e.g. radar). If the system is heterogeneous, then the vehicles


23<br />

must know a bound on the maximum speed and the minimum separation distance <strong>of</strong> the<br />

other vehicles in D, which can be accomplished by a broadcast communication or vehicle<br />

identification. Finally, the vehicles must know who is in D, and must receive the intended<br />

velocity <strong>of</strong> any vehicle performing a deconfliction maneuver. This information cannot be<br />

attained through sensing, so some form <strong>of</strong> broadcast communication is necessary to disseminate<br />

it. Any vehicle not yet in D only needs the information at a range just outside <strong>of</strong><br />

where ξ i (D) becomes false. In the case <strong>of</strong> D being empty, this information is required only<br />

<strong>of</strong> the nearest vehicle.<br />

There are two caveats with respect to the assumptions in this algorithm. First, two<br />

separate deconfliction groups cannot safely merge. The reason is that vehicles performing<br />

deconfliction maintenance are in general separated by as little as d sep , for which χ i (D) is<br />

false, but vehicles joining D must have χ i (D) true.<br />

In many applications, vehicles are added to a group singly. For example in an airport,<br />

if one considers the congested airspace <strong>of</strong> the airport itself as a group, wherein all vehicles<br />

are in the deconfliction maintenance phase with each other, then new aircraft arrive from<br />

all around where the airspace is not as congested. These aircraft can safely integrate one at<br />

a time as long as they stay separated from each other by enough space such that when one<br />

joins D it does not cause χ i (D) <strong>of</strong> the others to become false.<br />

The second caveat concerns communication range. While the communication range<br />

must be chosen such that vehicle i can talk to vehicle j by the time ξ i (j) becomes false,<br />

this range only ensures that D is connected, not necessarily all-to-all. This problem can be<br />

overcome by having vehicles rebroadcast information they have received. This multi-hop<br />

method will tend to accrue more time delay, however the robustness analysis in Chapter 5<br />

shows how the algorithm can be made robust to these delays.<br />

4.1 Deconfliction Maneuvers<br />

The purpose <strong>of</strong> the deconfliction maneuver is to bring a vehicle to a conflict-free state as<br />

quickly as possible with a guarantee that no collisions will occur during this maneuver,


24<br />

given certain bounds on the separation. The separation bounds are necessary because a<br />

wide class <strong>of</strong> initial conditions exist for which collision avoidance is impossible, usually<br />

due to a lack <strong>of</strong> sufficient control authority.<br />

While the deconfliction maintenance phase can operate with arbitrarily small control<br />

authority, the deconfliction maneuver requires control authority to get out <strong>of</strong> conflict before<br />

a collision occurs. Therefore it is important when designing a maneuver that the vehicle<br />

will have sufficient control authority to complete it. The problem with using speed changes<br />

in the maneuver is that all vehicles have a maximum speed, so their control authority to<br />

accelerate forward goes to zero as this maximum speed is approached.<br />

Therefore, turning as a means <strong>of</strong> deconfliction is applicable to a wider range <strong>of</strong> vehicles,<br />

since there is almost never a maximum heading angle. In addition, most vehicles have<br />

more acceleration available in turning than in speeding up or slowing down, since the latter<br />

requires work and former does not. Vertical acceleration can be as easy as turning for a<br />

buoyant vehicle, or require a significant change in potential energy for a vehicle such as<br />

an airplane. Therefore it may be prudent to restrict some vehicles to a 2D deconfliction<br />

maneuver in order to ensure they are capable <strong>of</strong> completing it.<br />

Two deconfliction maneuvers will be presented here, first a constant-speed maneuver<br />

that nearly any vehicle is capable <strong>of</strong>, and second a variable speed maneuver that has better<br />

performance at the cost <strong>of</strong> computational complexity. Both <strong>of</strong> these maneuvers are 2D, but<br />

deconfliction maintenance works for 3D as well. In order to use these maneuvers in a 3D<br />

application one would have to project the vehicle’s positions and velocities onto the plane,<br />

perform the maneuver, then add back in the original vertical component to the resulting<br />

velocity. The guarantees <strong>of</strong> attaining conflict-freedom will still apply (though the solutions<br />

will be more conservative) and once deconfliction maintenance takes over, the 3D nature <strong>of</strong><br />

the system will be accounted for in a less conservative way.


25<br />

Figure 4.2: Example optimization <strong>of</strong> a constant-speed maneuver. The black vector is v i ,<br />

the red vector is v ′ i, the circle is the allowable space <strong>of</strong> solutions and the blue regions are<br />

the collision cones.<br />

4.1.1 Constant-Speed Maneuver<br />

The optimization vehicle i performs is to find a new velocity vector, v i, ′ which is free <strong>of</strong><br />

conflict with the other vehicles in D and minimizes ‖∆v i ‖, where ∆v i = v i ′ − v i . While<br />

this minimization is nonconvex in general (see Fig. 4.2), it can be solved relatively quickly<br />

because only a small number <strong>of</strong> possible points must be checked. The algorithm for solving<br />

this works as follows.<br />

The allowable space for v i ′ is a circle, centered at the origin, <strong>of</strong> radius ‖v i ‖. The collision<br />

cones split this space into several disjoint regions, each <strong>of</strong> which is an arc <strong>of</strong> the circle.<br />

The optimal solution to each region must lie on one <strong>of</strong> its two ends, unless there are no<br />

conflicts, in which case v i ′ = v i . The only possible end points are points where a collision<br />

cone intersects the allowable circle. Therefore the first step <strong>of</strong> the optimization is to calculate<br />

each <strong>of</strong> the intersections for each collision cone. This is done by first computing the<br />

unit-vector ĉ for each side, representing the direction <strong>of</strong> the edge <strong>of</strong> the collision cone (see


26<br />

Figure 3.1):<br />

where R is the 2 × 2 rotation matrix. Now v ′ i = v j − aĉ where<br />

a = ĉ T v j ±<br />

ĉ = R(±α) ˜r<br />

‖˜r‖ , (4.1)<br />

√<br />

(ĉ T v j ) 2 − v T j v j + v T i v i, (4.2)<br />

and only solutions with real and positive values <strong>of</strong> a are valid. The list <strong>of</strong> v is ′ are ordered<br />

by increasing ∆v i and checked consecutively for conflicts with the other vehicles. Because<br />

<strong>of</strong> the ordering, as soon as a point is found which is conflict free for all j, it is the optimal<br />

solution and the algorithm terminates.<br />

There are a finite number <strong>of</strong> points to check as possible optima, which bounds the<br />

maximum possible time the deconfliction maneuver will take to compute. For a vehicle<br />

deconflicting with n other members <strong>of</strong> D, there are a maximum <strong>of</strong> 4n points to check. Each<br />

<strong>of</strong> these much be checked against a maximum <strong>of</strong> n − 1 other collision cones. Therefore<br />

the maximum computation time is upper-bounded by cn 2 , where c is related to the time<br />

each type <strong>of</strong> computation requires. In general, the computation times are less than this<br />

bound because as soon as a feasible point is found, the algorithm terminates, so most points<br />

are never computed or checked. This bound is better than a general “polynomial time”<br />

guarantee (as with convex optimization, for instance), since in this case the polynomial is<br />

known to be quadratic.<br />

This analysis would guarantee a conflict-free solution if the vehicle could attain its<br />

desired velocity vector instantaneously. However, the limited control authority available<br />

makes this impossible. Instead, it takes a finite amount <strong>of</strong> time for the vehicle to attain<br />

its desired velocity, and during that time it and the other vehicles move, which causes the<br />

collision cones to move. In order to ensure that the system is still conflict-free after this<br />

motion, the initial collision cones must be enlarged to the point <strong>of</strong> enclosing all possible<br />

movements.<br />

To bound the collision cone, one must simply bound ‖∆˜r‖ ≤ δ, or how much the vehicles<br />

can change position before the maneuver is complete. Then the width <strong>of</strong> the collision


27<br />

cone is enlarged from (3.9) to<br />

( )<br />

dsep + δ<br />

α e = arcsin<br />

. (4.3)<br />

‖˜r‖<br />

Note that this expression implies an initial separation <strong>of</strong> ‖˜r‖ ≥ d sep + δ, or else α e will be<br />

undefined.<br />

Lemma 2. Let there be two vehicles (i and j), each modeled by a planar version <strong>of</strong> (2.1).<br />

Vehicle j is subject to the maximum speed constraint ‖v j ‖ ≤ v j,max . Vehicle i is subject<br />

to ‖u i ‖ ≤ u i,max and ‖v i ‖ constant and is turning as quickly as possible from its initial<br />

velocity, v i , to its desired velocity, v ′ i. The relative motion between the vehicles in the time<br />

it takes vehicle i to attain its desired velocity is bounded by ‖∆˜r‖ ≤ δ, where<br />

δ = ‖v i‖<br />

u i,max<br />

(2 ‖v i ‖ + πv j,max ) . (4.4)<br />

Pro<strong>of</strong>. The longest time, t, the maneuver could take is if v ′ i = −v i , so t ≤ π ‖v i ‖ /u i,max .<br />

Likewise, since vehicle i is tracing an arc, its motion is bounded by ‖∆r i ‖ ≤ 2 ‖v i ‖ 2 /u i,max .<br />

Finally, vehicle j is bounded by ‖∆r j ‖ ≤ v j,max t. Therefore,<br />

‖∆˜r‖ ≤ ‖∆r i ‖ + ‖∆r j ‖ ≤ 2 ‖v i‖ 2<br />

u i,max<br />

+ π ‖v i‖ v j,max<br />

u i,max<br />

= ‖v i‖<br />

u i,max<br />

(2 ‖v i ‖ + πv j,max ) . (4.5)<br />

This bound can in turn be used in (4.3) to size the enlarged collision cone. Note that for<br />

a homogeneous group <strong>of</strong> vehicles this bound can be written in terms <strong>of</strong> the deconfliction<br />

difficulty factor as δ = (2 + π)ηd sep . The following theorem states how this bound can be<br />

used to keep vehicles from colliding during a deconfliction maneuver.


28<br />

Theorem 1. Let there be a set <strong>of</strong> vehicles, D, which are not in conflict with each other.<br />

When another vehicle, i, is in conflict with some or all members <strong>of</strong> D and performs the<br />

constant-speed maneuver, the system will be conflict-free in time t, where<br />

t ≤ π ‖v i‖<br />

u i,max<br />

, (4.6)<br />

and no vehicles will collide during the maneuver. The vehicles are all modeled by a planar<br />

version <strong>of</strong> (2.1), have speed constraints ‖v j ‖ ≤ v j,max and vehicle i has the input constraint<br />

‖u i ‖ ≤ u i,max . It is assumed that a feasible solution to the optimization problem, v ′ i, exists<br />

and that the vehicles in D maintain a conflict-free state with v ′ i, using a cone with width<br />

defined by (4.3) and (4.4).<br />

Pro<strong>of</strong>. If a feasible point exists for the optimization problem, then the optimal solution is<br />

guaranteed to be found and this point will satisfy<br />

( )<br />

|∠ṽ ′ dsep + δ<br />

− ∠˜r| ≥ arcsin<br />

. (4.7)<br />

‖˜r‖<br />

The maximum amount <strong>of</strong> time required for vehicle i to get from its initial v i to v ′ i is t =<br />

π ‖v i ‖ /u i,max , and during this time ∆˜r ≤ δ from Lemma 2. Therefore, once the desired<br />

velocities have been attained, one still has<br />

|∠ṽ ′ − ∠(˜r + ∆˜r)| ≥ arcsin<br />

( )<br />

dsep<br />

, (4.8)<br />

‖˜r‖<br />

meaning the vehicles are not in conflict. The vehicles cannot collide during this time because<br />

as stated earlier, the pairs must be initially separated by at least ‖˜r‖ ≥ d sep + δ,<br />

which means after the maneuver, they still must be outside <strong>of</strong> collision because ‖˜r + ∆˜r‖ ≥<br />

d sep .<br />

Of course, all <strong>of</strong> this is for naught if a feasible solution does not exist for the optimization.<br />

The following theorem gives a conditional bound, χ i (D), on initial separation that is<br />

sufficient to guarantee the existence <strong>of</strong> a solution.


29<br />

Theorem 2. For vehicle i <strong>of</strong> an n-vehicle system in the plane, let vehicle i’s speed be<br />

the constant ‖v i ‖, while each other vehicle’s speed is constrained by the uniform bound<br />

‖v j ‖ ≤ v max . There exists an admissible velocity vector, v ′ i, which is conflict-free with the<br />

other n − 1 vehicles, given that vehicle i is separated from the other vehicles such that<br />

⎧ (<br />

∑<br />

√ )<br />

‖v<br />

⎪⎨ arccos cos(2α e ) − sin(2α e ) i ‖ 2<br />

− 1 , ‖v<br />

vmax<br />

2 i ‖ < v max<br />

j∈D<br />

π ≥<br />

(4.9)<br />

∑<br />

⎪⎩ 2α e , ‖v i ‖ ≥ v max .<br />

j∈D<br />

Pro<strong>of</strong>. In order for a conflict-free point to exist, the collision cones from the other vehicles<br />

cannot completely cover the admissible circle <strong>of</strong> possible headings <strong>of</strong> vehicle i. When<br />

another vehicle’s maximum speed is higher, the largest range <strong>of</strong> headings, θ, it can cover<br />

occurs when one edge <strong>of</strong> its collision cone is tangent to the admissible circle (see Fig. 4.3).<br />

Some geometry can show that the relationship between the width <strong>of</strong> the expanded collision<br />

cone, α e , and θ is given by<br />

⎛<br />

θ ≤ 2 arccos ⎝cos(2α e ) − sin(2α e )<br />

√<br />

‖v i ‖ 2<br />

v 2 max<br />

⎞<br />

− 1⎠ . (4.10)<br />

As long as the sum <strong>of</strong> those θs is less than 2π, then not all <strong>of</strong> the possible headings can be<br />

in conflict. When the other vehicle’s maximum speeds are less, then θ takes on its limiting<br />

value <strong>of</strong> 4α e . Putting this all together yields the full bound (4.9).<br />

4.1.2 Variable-Speed Maneuver<br />

If a vehicle has no minimum speed (i.e. it can stop), then it can use a variable-speed deconfliction<br />

maneuver, which has better performance than the constant-speed maneuver. The<br />

better performance comes from the fact that any constant-speed maneuver is admissible for<br />

a variable-speed vehicle, so this optimization is less constrained than the previous, meaning<br />

the solution must be equal to or better than the constant-speed solution. The cost <strong>of</strong> this<br />

optimality is higher computational load.


30<br />

Figure 4.3: Example <strong>of</strong> a borderline case for five vehicles where no conflict-free constantspeed<br />

maneuver exists. The circle is the allowable set (radius ‖v i ‖) and the blue regions<br />

are the collision cones (shown with all equal velocities, <strong>of</strong> magnitude greater than ‖v i ‖).<br />

The allowable space for v ′ i is a disk, centered at the origin, <strong>of</strong> radius v i,max . The optimal<br />

solution to each region must lie on its boundary because the zero-cost point is not<br />

feasible (otherwise there would be no conflicts). This optimal solution must either be a<br />

vertex between two collision cones, the nearest point on a single collision cone, or the vertex<br />

between one collision cone and the edge <strong>of</strong> the allowable space. An example <strong>of</strong> this<br />

optimization is shown in Fig. 4.4.<br />

The first step <strong>of</strong> the algorithm is to compute each <strong>of</strong> the nearest points on each collision<br />

cone (there is a right and a left solution for each cone), which is v ′ i = ĉĉ T ṽ + v j . This<br />

list <strong>of</strong> points is checked to make sure each ‖v ′ i‖ ≤ v i,max . If this is not the case, then v ′ i is<br />

replaced with<br />

√<br />

v i ′ = v j − ĉĉ T v j ± ĉ (ĉ T v j ) 2 − vj Tv j + vi,max 2 , (4.11)<br />

where only the solution with the smaller ∆v i is kept. These points account for the only<br />

possible optima on the intersection <strong>of</strong> a cone and the edge <strong>of</strong> the space. Next, all <strong>of</strong> the twocone<br />

intersection points are found using linear equations (keeping only those with ‖v ′ i‖ ≤<br />

v i,max ). All <strong>of</strong> these points are ordered by increasing ∆v i and checked consecutively for


31<br />

Figure 4.4: Example optimization <strong>of</strong> a variable-speed maneuver. The black vector is v i , the<br />

red vector is v ′ i, the circle is the edge <strong>of</strong> the allowable disk <strong>of</strong> solutions and the blue regions<br />

are the collision cones.<br />

conflicts with the other vehicles. Because <strong>of</strong> the ordering, as soon as a point is found which<br />

is conflict free for all j, it is the optimal solution and the algorithm terminates.<br />

As with the constant-speed maneuver, this optimization has a bound on its computation<br />

time since there are still a finite number <strong>of</strong> possible optima to check. However, since there<br />

are now points that are a combination <strong>of</strong> two cones, there are O(n 2 ) points to check. Since<br />

these still need to be checked for conflict with the other n−2 collision cones, the maximum<br />

computation time is now upper-bounded by cn 3 , rather than cn 2 , where c is related to the<br />

time each type <strong>of</strong> computation requires.<br />

Just as with the previous optimization, this algorithm usually terminates far before its<br />

maximum computation time. However, if a particular application has very little computational<br />

resource available, the constant-speed maneuver can still be used on a variable-speed<br />

vehicle. The solution will not in general be as optimal as the variable-speed maneuver, but<br />

it will be feasible and does scale better in computation time.


32<br />

Once again the time required to attain this new velocity vector must be accounted for<br />

in order to ensure the system actually comes to a conflict-free state and that there are no<br />

collisions. The following lemma parallels Lemma 2, but obtains a smaller bound by use <strong>of</strong><br />

the now 2D acceleration vector.<br />

Lemma 3. Let there be two vehicles (i and j), each modeled by a planar version <strong>of</strong> (2.1).<br />

Vehicle j is subject to the maximum speed constraint ‖v j ‖ ≤ v j,max . Vehicle i is subject to<br />

‖u i ‖ ≤ u i,max and ‖v i ‖ ≤ v i,max and is accelerating as quickly as possible from its initial<br />

velocity, v i , to its desired velocity, v ′ i. The relative motion between the vehicles in the time<br />

it takes vehicle i to attain its desired velocity is bounded by ‖∆˜r‖ ≤ δ, where<br />

δ = v i,max<br />

u i,max<br />

(v i,max + 2v j,max ) . (4.12)<br />

Pro<strong>of</strong>. Let the angle between v i and v ′ i be 2γ and let t be the time required for the maneuver.<br />

Then ‖∆v i ‖ = u i,max t, ‖∆r i ‖ = t ‖v i + v ′ i‖ /2, and ‖∆r j ‖ ≤ v j,max t. Also,<br />

‖v i + v ′ i‖ ≤ 2v i,max cos γ and ‖∆v i ‖ ≤ 2v i,max |sin γ|. Therefore,<br />

‖∆˜r‖ ≤ ‖∆r i ‖ + ‖∆r j ‖ ≤ 2v2 i,max |cos γ sin γ|<br />

u i,max<br />

+ 2v i,maxv j,max |sin γ|<br />

u i,max<br />

≤ v i,max<br />

u i,max<br />

(v i,max + 2v j,max ) . (4.13)<br />

This bound can in turn be used in (4.3) to size the enlarged collision cone. Note that for<br />

a homogeneous group <strong>of</strong> vehicles this bound can be written in terms <strong>of</strong> the deconfliction<br />

difficulty factor as δ = 3ηd sep . Also note that if one decides to use the constant-speed<br />

maneuver on a vehicle that fits the assumptions <strong>of</strong> Lemma 3, then one can still use the δ<br />

bound <strong>of</strong> (4.12), since the pro<strong>of</strong> is only based on the vehicle’s capabilities.<br />

Theorem 1 still applies to the variable-speed maneuver, with the slight adjustment <strong>of</strong><br />

(4.6) to t = 2v i,max /u i,max (see above). However, Theorem 2 requires some adjustments to<br />

the bound χ i (D):


33<br />

Theorem 3. For vehicle i <strong>of</strong> an n-vehicle system in the plane, let vehicle i’s speed be constrained<br />

by ‖v i ‖ ≤ v i,max , while each other vehicle’s speed is constrained by the uniform<br />

bound ‖v j ‖ ≤ v max . There exists an admissible velocity vector, v ′ i, which is conflict-free<br />

with the other n − 1 vehicles, given that vehicle i is separated from the other vehicles such<br />

that<br />

⎧ ( )<br />

∑<br />

⎪⎨<br />

vi,max<br />

arcsin<br />

v<br />

α e ≤<br />

max<br />

, v i,max < v max<br />

j∈D<br />

⎪⎩ π<br />

, v 2 i,max ≥ v max .<br />

(4.14)<br />

Pro<strong>of</strong>. In order for a conflict-free point to exist, the collision cones from the other vehicles<br />

cannot completely cover the admissible disk <strong>of</strong> possible velocities <strong>of</strong> vehicle i. The worst<br />

case for this coverage when the other vehicles are capable <strong>of</strong> higher speed than vehicle i is<br />

when all the vehicles have the same velocity, with their maximum speed, and their positions<br />

splay out their collision cones so as to form one large, continuous cone (see Fig. 4.5). The<br />

interior angle <strong>of</strong> this large cone must be less than 2 arcsin(v i,max /v max ) to ensure that it<br />

cannot cover the entire admissible circle. When vehicle i’s speed is higher than the other<br />

vehicles, the arcsine takes on its limiting value <strong>of</strong> π/2 and becomes conservative because<br />

it only allows the combined collision cone to cover a half-space within the disk. Together<br />

these constraints form (4.14).<br />

In the special case where all <strong>of</strong> the vehicles are exactly the same distance away (as in<br />

Fig. 4.5), the bound (4.14) can be simplified to a bound on distance. First note that the sum<br />

<strong>of</strong> the collision cones is just (n − 1)α e and rearranging (4.3) gives ‖˜r‖ ≥ (d sep + δ)/ sin α e .<br />

Then the distance bound is<br />

⎧<br />

⎪⎨<br />

‖˜r‖ ≥<br />

⎪⎩<br />

sin<br />

d sep+δ<br />

arcsin ( v i,max<br />

vmax )<br />

n−1<br />

d sep+δ<br />

π<br />

sin(<br />

!, v i,max < v max<br />

2(n−1)) , v i,max ≥ v max .<br />

(4.15)


34<br />

Figure 4.5: Example <strong>of</strong> a borderline case for six vehicles where no conflict-free variablespeed<br />

maneuver exists. The circle is the edge <strong>of</strong> the allowable disk (radius v i,max ) and the<br />

blue regions are the collision cones, shown with all equal velocities, <strong>of</strong> magnitude greater<br />

than v i,max .<br />

Note that for large n, the small angle approximation can be used to simplify (4.15) to<br />

⎧<br />

⎪⎨<br />

‖˜r‖ ≥<br />

⎪⎩<br />

(n−1)(d<br />

„ sep+δ)<br />

vi,max<br />

«,<br />

arcsin v j,max<br />

v i,max < v j,max<br />

2(n−1)<br />

π<br />

(d sep + δ), v i,max ≥ v j,max ,<br />

(4.16)<br />

however the result is not actually conservative, so (4.15) should still be used for safety<br />

purposes. It is interesting to note though, that as n gets large, the bound approaches a linear<br />

relationship with n − 1. This makes intuitive sense in that as more vehicles are in a space,<br />

they must be spaced out more to ensure a safe trajectory exists between them.<br />

4.1.3 Heuristic Performance<br />

The guarantees provided by the previous maneuvers are ideal if one can ensure the vehicles<br />

always have enough warning <strong>of</strong> each other’s presence. However, some systems may not<br />

always be that capable. We know from the previous analysis that these requirements are<br />

conservative, so it may still be possible to deconflict the system, though not in a guaranteed


35<br />

fashion. The goal then is to have a heuristic backup algorithm that will do a qualitatively<br />

good job <strong>of</strong> attempting to deconflict vehicles which do not meet the requirements <strong>of</strong> the<br />

guarantees. Handily, this heuristic backup algorithm can be seamlessly joined with the<br />

normal deconfliction maneuvers. Basically it operates the exact same way, but guarantees<br />

that a solution is returned regardless <strong>of</strong> feasibility.<br />

The first thing that could cause a solution to not exist is if ‖˜r‖ < d sep + δ, causing<br />

α e to be undefined. In this situation, let the heuristic be to define α e = π/2 (its limiting<br />

value). The only other thing that could cause a solution to not exist is if the collision cones<br />

cover the entire admissible space, making the optimization find no feasible solution. In this<br />

case, let the heuristic return the solution v i ′ = −v i . This solution was chosen because it is<br />

a velocity the vehicle can attain and it will take maximum acceleration to get there. The<br />

intuition behind the choice is that when vehicles are in conflict, it is better to do something<br />

than nothing, and by continuing to use maximum acceleration, there is more chance that<br />

the system will stumble upon a conflict-free state.<br />

The vehicle in this case does not join D until it attains a conflict-free state, since the<br />

deconfliction maintenance controller that the other vehicles in D are running cannot cope<br />

with vehicles in conflict. As a worst case, it is better for the new vehicle to collide with one<br />

<strong>of</strong> the members <strong>of</strong> D than to cause them all to collide with each other.<br />

Now the DRCA algorithm can be compared to other collision avoidance algorithms<br />

that are completely decentralized or have other assumptions that violate the requirements<br />

for guaranteed avoidance. Most <strong>of</strong> these algorithms are also heuristic, in that they do not<br />

guarantee collision avoidance in the presence <strong>of</strong> limited available acceleration and a minimum<br />

separation distance, d sep > 0. Therefore the algorithms can be compared qualitatively<br />

based on how <strong>of</strong>ten collisions occur and how well the vehicles attain their goals. This performance<br />

comparison is shown in Chapter 6.


36<br />

Desired<br />

Control<br />

u d<br />

Deconfliction<br />

Maintenance<br />

u<br />

Vehicle<br />

z i<br />

z<br />

Figure 4.6: Block diagram <strong>of</strong> the system when using the deconfliction maintenance controller.<br />

The vector z = [z 1 , z 2 , . . . , z n ] T and z i = [r i , v i ] T . Note that the deconfliction<br />

maintenance block acts as a type <strong>of</strong> saturation on the desired control, u d .<br />

4.2 Deconfliction Maintenance<br />

Once the deconfliction maneuver has been performed and the system is in a conflict-free<br />

state, then the deconfliction maintenance controller can be used to keep the system conflictfree.<br />

This controller allows each vehicle to use its desired control input unless that input<br />

would cause the vehicle to come into conflict with another vehicle. A basic block diagram<br />

<strong>of</strong> this setup is shown in Fig. 4.6.<br />

4.2.1 Control Law<br />

In order to smoothly transition from the desired control to the avoidance control, each<br />

vehicle needs a way to measure how close its velocity vector is to causing a conflict. The<br />

first step is to construct a unit-vector, ĉ, representing the side <strong>of</strong> the collision cone nearest<br />

ṽ (like (4.1), but now in 3D). The vector ĉ is found by rotating ˜r by α around a vector<br />

q = ˜r × ṽ and normalizing:<br />

ĉ =<br />

˜r ( ) q × ˜r<br />

‖r‖ cos α + sin α. (4.17)<br />

‖q‖ ‖r‖<br />

Next, construct a normal vector, e, from the collision cone to the relative velocity vector,<br />

ṽ (see Fig. 4.7). If ĉ T ṽ > 0, then e = (I − ĉĉ T )ṽ, but if ĉ T ṽ ≤ 0 (the vehicles are headed<br />

away from each other), then no normal exists, and the nearest point on the collision cone is


37<br />

v ĩ<br />

v<br />

e<br />

p t,ijˆt i<br />

v j<br />

p n,ijˆn i<br />

d sep<br />

ĉ<br />

β<br />

α<br />

˜r<br />

α<br />

d sep<br />

Figure 4.7: Geometry <strong>of</strong> the e and ĉ vectors, as seen in an ˜r-ṽ section through the 3D<br />

collision cone (dotted lines). The conflict measures p t and p n are shown, but ˆb points into<br />

the page, so p b is infinite (ĉ T ṽ > 0 in this example).<br />

the tip, so e = ṽ. Therefore:<br />

⎧<br />

⎪⎨ ṽ, ĉ T ṽ ≤ 0<br />

e =<br />

⎪⎩ (I − ĉĉ T )ṽ, ĉ T ṽ > 0.<br />

(4.18)<br />

In order to combine the effects <strong>of</strong> multiple collision cones, it is helpful to decompose<br />

the system into three component directions and analyze those directions separately. Let the<br />

coordinate system be defined by the orthonormal vectors ˆt, ˆn, and ˆb. The orientation <strong>of</strong> this<br />

coordinate system is arbitrary, but the convention <strong>of</strong> using tangent, normal, and binormal<br />

notation is chosen since fixing the coordinates to the body <strong>of</strong> the vehicle <strong>of</strong>ten simplifies<br />

analysis.<br />

The next step is to determine how much control (change in velocity) can be applied in<br />

each <strong>of</strong> these directions before a conflict forms. For simplicity, a conservative approach<br />

is taken whereby the signed distance is found from ṽ to the tangent plane enclosing the<br />

collision cone (defined by the normal vector e) in each <strong>of</strong> the ˆt, ˆn, and ˆb directions. These<br />

signed distances are<br />

p t,ij = ‖e ij‖ 2<br />

, p<br />

e T n,ij = ‖e ij‖ 2<br />

ijˆt i e T ijˆn , and p b,ij = ‖e ij‖ 2<br />

, (4.19)<br />

i<br />

e T ijˆb i


38<br />

which are described graphically in Fig. 4.7.<br />

Define ɛ t , ɛ n , ɛ b > 0 as thresholds such that when |p t | > ɛ t , the conflict is far enough<br />

away that it can be ignored (and likewise for p n and p b ). The n-vehicle deconfliction maintenance<br />

controller running on vehicle i computes p t , p n , and p b to each <strong>of</strong> the other vehicles<br />

and then finds the closest conflict in each direction, i.e.<br />

p + t i<br />

p − t i<br />

= min<br />

j∈D {p t,ij > 0, ɛ ti }<br />

= − max<br />

j∈D {p t,ij < 0, −ɛ ti } ,<br />

(4.20)<br />

and likewise for p n and p b . Note that by definition 0 < p ± ≤ ɛ. To simplify notation, in any<br />

case where a relation holds in the tangent, normal, and binormal directions, the subscript<br />

will be suppressed.<br />

The input is constructed using a function, F , such that in each direction u = F (p + , p − ).<br />

The control function chosen for this implementation <strong>of</strong> the DRCA algorithm is<br />

F (p + , p − ) = u min<br />

ɛ<br />

p + + u max<br />

p − + u d − u max − u min<br />

p + p − , (4.21)<br />

ɛ<br />

ɛ 2<br />

because it is a bilinear interpolation <strong>of</strong> the following ordered triples <strong>of</strong> the form (p + , p − , u):<br />

P 1 = (0, 0, 0) P 2 = (ɛ, 0, u min )<br />

P 3 = (0, ɛ, u max ) P 4 = (ɛ, ɛ, u d ).<br />

(4.22)<br />

An example <strong>of</strong> this control function is shown in Fig. 4.8. Because F depends on the desired<br />

control, u d must be saturated such that<br />

u min ≤ u d ≤ u max . (4.23)<br />

This choice <strong>of</strong> control function means that once the u vector is constructed from its<br />

three components, then u ∈ R. Then the saturation function S will give the final resultant<br />

control vector, which will be in C. The octant-preserving nature <strong>of</strong> S will ensure this final<br />

saturation step does not violate the requirements for the pro<strong>of</strong> <strong>of</strong> collision avoidance.<br />

A more intuitive way to choose values for ɛ is to relate it to a gain-like parameter,<br />

k = u max − u min<br />

. (4.24)<br />

ɛ


39<br />

Figure 4.8: Example <strong>of</strong> the control function, F . Note that P 4 moves up and down with<br />

changing u d .<br />

Note that k has units <strong>of</strong> inverse seconds. Also, one can see that the magnitude <strong>of</strong> the<br />

gradient <strong>of</strong> the control function will always be less than or equal to k, regardless <strong>of</strong> the<br />

desired control.<br />

Assuming there are n vehicles in the deconfliction group, D, this algorithm’s computation<br />

time on each vehicle scales as O(n), since it only requires the computation <strong>of</strong> each<br />

other vehicle’s collision cone and then substituting these results into the control function.<br />

Technically there are O(n 2 ) computations happening in the entire group, but since these<br />

computations are independent <strong>of</strong> each other (only linked by the sensed or communicated<br />

states), they can happen in parallel in a distributed fashion, so only the per-vehicle scaling<br />

matters.<br />

4.2.2 Guarantee<br />

The following theorem and pro<strong>of</strong> guarantee that the system can maintain its conflict-free<br />

state despite arbitrary control authority restrictions. Each time a new vehicle is added to the


40<br />

deconfliction group, D, it performs its deconfliction maneuver, broadcasting a conflict-free<br />

velocity to the group. Since it is this broadcasted velocity that is used by the deconfliction<br />

maintenance algorithm until the new vehicle really is conflict-free, the deconfliction group<br />

never sees any new conflicts.<br />

Theorem 4. The deconfliction maintenance controller described above, when implemented<br />

on n vehicles with dynamics (2.1) and inputs constrained by C i , will keep the system collision<br />

free for all time if the system starts conflict-free.<br />

Pro<strong>of</strong>. To measure the distance to a collision, define m as a signed version <strong>of</strong> ‖e‖ (in terms<br />

<strong>of</strong> ṽ from the geometry in Fig. 4.7):<br />

⎧<br />

⎪⎨ ‖ṽ‖ , ĉ T ṽ ≤ 0<br />

m =<br />

⎪⎩ ‖ṽ‖ sin(|β| − α), ĉ T ṽ > 0.<br />

Note that m is negative during conflict and positive during no conflict.<br />

(4.25)<br />

To ensure that a conflicted state is never reached (i.e. m is always greater than zero), it<br />

is sufficient to show that for every pair <strong>of</strong> vehicles there is a neighborhood on the positive<br />

side <strong>of</strong> m = 0 where ṁ ≥ 0. This condition implies that as the boundary <strong>of</strong> a collision cone<br />

approaches, it will either stop approaching or recede before a conflict is formed. The fact<br />

that this is a one-sided neighborhood is important because ṁ does not exist at m = 0 for<br />

the same reason that d ‖ṽ‖ does not exist at ṽ = 0. However, if this condition is satisfied,<br />

dt<br />

then m > 0 for all time, ensuring that m ≠ 0.<br />

For ĉ T ṽ ≤ 0 (using the ij notation again briefly for clarity),<br />

ṁ = eT ˙ṽ<br />

m = êT ˙ṽ, (4.26)<br />

where ê = e<br />

‖e‖ . Expanding u i into its components yields u i = [u ti t i + u ni n i + u bi b i ]. Next<br />

substitute for ṽ ij in (4.26) to get<br />

ê T ij ˙ṽ ij = u ti ê T ijˆt i + u ni ê T ijˆn i + u bi ê T ijˆb i − u tj ê T ijˆt j − u nj ê T ijˆn j − u bj ê T ijˆb j . (4.27)


41<br />

Because <strong>of</strong> the symmetry <strong>of</strong> the problem e ji = −e ij , so<br />

ê T ˙ṽ ij ij =u ti ê T ijˆt i + u ni ê T ijˆn i + u bi ê T ijˆb i + u tj ê T jiˆt j + u nj ê T jiˆn j + u bj ê T jiˆb j<br />

(<br />

uti<br />

=m ij + u n i<br />

+ u b i<br />

+ u t j<br />

+ u n j<br />

+ u )<br />

b j<br />

. (4.28)<br />

p t,ij p n,ij p b,ij p t,ji p n,ji p b,ji<br />

For ĉ T ṽ > 0, the derivative <strong>of</strong> (4.25) becomes<br />

ṁ = sin(|β| − α) d ‖ṽ‖<br />

dt<br />

+ ‖ṽ‖ cos(|β| − α) d (|β| − α). (4.29)<br />

dt<br />

The derivative exists because m > 0 implies ‖ṽ‖ ≠ 0, |β| ≥ α > 0, and ‖˜r‖ ≥ d sep > 0.<br />

From the geometry,<br />

d |β|<br />

dt<br />

( d∠ṽ<br />

= sgn(β) − d∠˜r )<br />

dt dt<br />

= sgn(β) d∠ṽ<br />

dt<br />

The derivative <strong>of</strong> α is somewhat less straight-forward:<br />

dα<br />

dt = d ( ( ))<br />

dsep<br />

arcsin<br />

dt ‖˜r‖<br />

= d dt<br />

( ) (<br />

dsep<br />

1 −<br />

‖˜r‖<br />

⎛<br />

= d sep ‖ṽ‖ cos β<br />

‖˜r‖ 2<br />

Combining the above two terms gives<br />

+ ‖ṽ‖ |sin β| . (4.30)<br />

‖˜r‖<br />

( ) ) 2 −1/2<br />

dsep<br />

‖˜r‖<br />

⎞<br />

⎝<br />

‖˜r‖<br />

√ ⎠<br />

‖˜r‖ 2 − d 2 sep<br />

= ‖ṽ‖ cos β tan α. (4.31)<br />

‖˜r‖<br />

d<br />

‖ṽ‖<br />

(|β| − α) = (|sin β| − cos β tan α) + sgn(β)d∠ṽ<br />

dt ‖˜r‖ dt , (4.32)<br />

which can be substituted into (4.29) to get<br />

ṁ = sin(|β| − α) d ‖ṽ‖<br />

dt<br />

+ cos(|β| − α) sgn(β) ‖ṽ‖ d∠ṽ<br />

dt<br />

+ cos(|β| − α) ‖ṽ‖2 (|sin β| − cos β tan α). (4.33)<br />

‖˜r‖


42<br />

To simplify the above, note that in the case <strong>of</strong> ĉ T ṽ > 0, the geometry <strong>of</strong> the vectors (Fig.<br />

4.7) gives<br />

Therefore (4.33) reduces to<br />

ê T ˙ṽ = sin(|β| − α) d ‖ṽ‖<br />

dt<br />

+ cos(|β| − α) sgn(β) ‖ṽ‖ d∠ṽ<br />

dt . (4.34)<br />

ṁ = ê T ˙ṽ + cos(|β| − α) ‖ṽ‖2 (|sin β| − cos β tan α). (4.35)<br />

‖˜r‖<br />

This expression can be further simplified by recognizing that<br />

m<br />

‖ṽ‖ cos α<br />

=<br />

sin |β| cos α − sin α cos |β|<br />

cos α<br />

= |sin β| − cos β tan α. (4.36)<br />

Therefore<br />

ṁ = ê T ˙ṽ + m<br />

‖ṽ‖ cos(|β| − α)<br />

. (4.37)<br />

‖˜r‖ cos α<br />

The second term is always positive because ĉ T ṽ > 0 implies that cos(|β| − α) > 0, and<br />

α ≤ π/2 by definition. Combining this result with (4.26) implies that<br />

for any value <strong>of</strong> ĉ T ṽ. Recalling (4.28),<br />

ṁ ≥ ê T ˙ṽ (4.38)<br />

(<br />

uti<br />

ṁ ij ≥ m ij + u n i<br />

+ u b i<br />

+ u t j<br />

+ u n j<br />

+ u )<br />

b j<br />

. (4.39)<br />

p t,ij p n,ij p b,ij p t,ji p n,ji p b,ji<br />

As long as the controller ensures that u ti has the same sign as p t,ij , etc. then ṁ ≥ 0 for that<br />

pair <strong>of</strong> vehicles. Note that each vehicle need only calculate its control from its own point <strong>of</strong><br />

view, and this rule will automatically cause the vehicles to cooperate in avoiding conflicts.<br />

Combining this result with the definitions (4.20), any continuous control function that<br />

satisfies<br />

lim<br />

p + t i<br />

→0 + u ti ≥ 0,<br />

lim u ni ≥ 0,<br />

p + n i →0 +<br />

lim u bi ≥ 0,<br />

p + b →0 + i<br />

lim<br />

p − t i<br />

→0 + u ti ≤ 0,<br />

lim u ni ≤ 0,<br />

p − n i →0 +<br />

lim u bi ≤ 0,<br />

p − b →0 + i<br />

(4.40)


43<br />

also ensures that there is a neighborhood on the positive side <strong>of</strong> m = 0 for which ṁ ≥ 0,<br />

guaranteeing the system cannot enter a conflicted state.<br />

The control function used in this implementation (4.21) satisfies (4.40), so the deconfliction<br />

maintenance controller will cause the n-vehicle system to remain conflict-free for<br />

all time, assuming it started that way.<br />

Note that this result holds for arbitrary (even time varying) u d , u min and u max , so long<br />

as they satisfy (4.23) and R contains the origin at every instant. In addition, u can be<br />

further saturated using S in order conform to the non-rectangular constraint set C without<br />

affecting the guarantee. The key for this saturation to work is that S preserve the octant <strong>of</strong><br />

u, such that (4.40) is still satisfied.<br />

4.2.3 Priority<br />

Vehicle priority can be assigned through the choice <strong>of</strong> the vehicles gains, k. If a vehicle has<br />

a higher gain, it has a higher priority, meaning it gets routing preference over vehicles with<br />

lower gains. When the gains are equal, the system will tend to come to quasi-equilibrium<br />

where each vehicle’s control goes to zero and m stays roughly constant. This equilibrium<br />

will tend to occur near m = ɛ/2 (though many factors will alter it slightly). By raising the<br />

gain, one shrinks the corresponding ɛ, meaning the higher gain vehicle will approach an<br />

equilibrium m value that is smaller than the lower gain vehicle. This situation is characterized<br />

by the higher gain vehicle always getting slightly closer to conflict with the lower gain<br />

vehicle, while the lower gain vehicle moves away. In the overall solution, the lower gain<br />

vehicle will give way so that the higher gain vehicle can follow its desired control more<br />

closely, but without causing conflict among any <strong>of</strong> the vehicles.<br />

Likewise, each vehicle can also have different gains in different directions, i.e. k t ≠ k n ,<br />

etc. For instance, if k t > k n , the vehicle will tend to turn more (accelerate in the normal<br />

direction) rather than speed up or slow down in trading <strong>of</strong>f with the other vehicles. This<br />

choice gives the control designer another knob to tune how the system behaves.


44<br />

4.2.4 Behavior<br />

One thing to notice about the DRCA algorithm is that the deconfliction maneuvers are set<br />

up in a conservative way (by enlarging the collision cones). Since it is unlikely that the<br />

vehicles will actually move in a worst-case way, once the maneuver is complete and the<br />

new vehicle switches to the deconfliction maintenance phase, it will likely not be near the<br />

edges <strong>of</strong> the real collision cones. However, at this point the deconfliction maintenance<br />

algorithm acts like a second stage optimization, whereby the desired controller can bring<br />

the vehicles together until they are near, but not quite in, conflict.<br />

In a qualitative sense, the DRCA algorithm works in the following way. First, the<br />

deconfliction maneuver solves the nonconvex optimization problem to find a feasible optimum.<br />

Next, the deconfliction maintenance algorithm continuously adjusts that solution<br />

to keep it locally optimal, accounting for changing desires, vehicle priority, etc. The same<br />

idea was used in [27], though implemented completely differently. This method is much<br />

more computationally efficient than the method in [8, 24], wherein the entire optimization<br />

routine was rerun periodically to adjust the trajectories, because the deconfliction maintenance<br />

algorithm requires only O(n) computation time instead <strong>of</strong> O(n 2 ) or O(n 3 ) for the<br />

deconfliction maneuvers (or unknown scaling for [8, 24]).<br />

Additionally, while the deconfliction maneuver is fundamentally two-dimensional, the<br />

deconfliction maintenance algorithm is more general. If one considers a three-dimensional<br />

group <strong>of</strong> vehicles in conflict, they would have to be projected onto the plane in order to compute<br />

a deconfliction maneuver. One can then add back the z-components <strong>of</strong> their velocities<br />

to the solution obtained without affecting the guarantees, and while this three-dimensional<br />

solution is grossly conservative, the deconfliction maintenance algorithm will effectively<br />

reoptimize it while taking into account the three-dimensional nature <strong>of</strong> the system.<br />

Likewise, vehicles with a minimum speed must use the constant-speed deconfliction<br />

maneuver even if they have the ability to vary their speed. The original optimization is<br />

therefore quite conservative, but the deconfliction maintenance phase will again allow them


45<br />

to adjust their trajectories to a more optimal solution once a conflict-free state has been<br />

reached.<br />

4.2.5 Liveness<br />

Liveness <strong>of</strong> a deconfliction algorithm refers to the ability <strong>of</strong> the vehicles to attain their<br />

goals in addition to not colliding. Liveness is difficult to prove in general because <strong>of</strong> its<br />

dependence on the desired controller’s interaction with the DRCA algorithm. For instance,<br />

if the desired control is for two vehicles to attain the same waypoint the DRCA algorithm<br />

will always choose safety over performance, so the goal will not be met in favor <strong>of</strong> keeping<br />

the vehicles from colliding.<br />

Likewise, if the desired controller is a cooperative search<br />

algorithm, it becomes unclear how one would define the liveness <strong>of</strong> a solution. In light<br />

<strong>of</strong> these facts, liveness will be shown here for a very strict set <strong>of</strong> assumptions, though the<br />

arguments should hold qualitatively for a wider range <strong>of</strong> situations.<br />

Theorem 5. Let the deconfliction group, D, contain n constant-speed vehicles that are not<br />

in conflict. Let their desired controllers be heading regulators where each vehicle has some<br />

constant desired heading. If each vehicle has an avoidance gain, k n , such that its speed is<br />

separated from the other’s speeds by at least the avoidance threshold, ɛ n , then all <strong>of</strong> the<br />

vehicles will attain their desired headings while remaining conflict-free.<br />

Pro<strong>of</strong>. Theorem 4 already guarantees that the system will remain conflict-free for all time.<br />

Any vehicle for which p n ≥ ɛ n will follow its desired control exactly, and hence will attain<br />

its heading as long as the collision cones remain at least ɛ away.<br />

Any vehicle for which p n < ɛ n must have ĉ T ṽ > 0, because if ĉ T ṽ ≤ 0 then from<br />

(4.18), e = ṽ and ‖ṽ‖ ≥ ɛ n and since p n ≥ ‖e‖, then p n ≥ ɛ n , which is a contradiction.<br />

Since ĉ T ṽ > 0, (4.37) applies, so<br />

ṁ = ê T ˙ṽ + m<br />

‖ṽ‖ cos(|β| − α)<br />

. (4.41)<br />

‖˜r‖ cos α<br />

The only reason a conflict is a problem is if the desired controllers want to accelerate<br />

the vehicles such that the e T ˙ṽ term is negative, since the DRCA algorithm adjusts those


46<br />

inputs such that ṁ ≥ 0. However, we already know that the second term is strictly positive<br />

since the vehicles are not in conflict and ĉ T ṽ > 0 (see pro<strong>of</strong> <strong>of</strong> Theorem 4). Therefore<br />

e T ˙ṽ can be negative while allowing the DRCA algorithm to keep ṁ ≥ 0. Recall from<br />

(4.28) that e T ˙ṽ ij ij = u ni e T ijˆn i + u nj e T ijˆn j . Even though each vehicle wants its own term to<br />

be negative, and even though the sum is allowed to be negative, the DRCA algorithm may<br />

cause one vehicle’s term to be positive (go away from its goal) in order to allow the other<br />

to be more negative (approach its goal faster), which is the idea behind preferential routing<br />

and vehicle priority. However, once the vehicle with priority attains its goal heading, then<br />

its u n goes to zero, which allows the lower priority vehicle to start moving toward its goal.<br />

Even though these conflicts can be daisychained such that each vehicle is in conflict<br />

with the next vehicle over, this analysis still guarantees that at least one vehicle in the<br />

group is moving toward its goal at all times, and so some vehicle must eventually attain its<br />

goal and allow another to progress. Therefore all the vehicles in the group must eventually<br />

attain their desired headings.<br />

This theorem may seem limited, but attaining a fixed heading is effectively equivalent<br />

to moving towards a distant waypoint, which is a common goal for a wide range <strong>of</strong> applications.<br />

Additionally, even for changing desires this analysis still shows some net progress<br />

will be made, but it is unclear how that progress will be distributed between the vehicles.<br />

The main limiting assumption in this theorem is the speed separation. The reason for<br />

this assumption is to guarantee that ĉ T ṽ > 0, because otherwise ṁ = ê T ˙ṽ and there<br />

may be no net progress. This situation can only occur if the relative velocity is small:<br />

‖ṽ‖ < ɛ. Most desired controllers tested so far on equal-speed vehicles or variable-speed<br />

vehicles have shown this situation to be unstable, such that the vehicles will move to a<br />

different configuration where progress toward goals can be made. However, it is possible<br />

to stabilize this situation and form a livelock, which must be avoided in the design <strong>of</strong> a<br />

desired controller or else goals may never be attained.<br />

One whole class <strong>of</strong> desired controllers is eliminated by this logic: flocking or schooling


47<br />

controllers. The goal <strong>of</strong> these controllers is to make ṽ = 0, which amounts to m = 0,<br />

which the DRCA algorithm does not allow. The vehicles cannot progress toward their goal<br />

<strong>of</strong> ṽ = 0 because the DRCA algorithm sees this situation as being on the edge <strong>of</strong> not safe.<br />

On the plus side, for vehicles which can stop, a deadlock is impossible because only one<br />

vehicle is allowed to stop at a time (since two stopped vehicles would also have m = 0).<br />

However, that is not sufficient to prove liveness in general.


48<br />

Chapter 5<br />

ROBUSTNESS ANALYSIS<br />

Robustness for this system can be split into two areas: robust stability and robust avoidance.<br />

Robust stability encompasses the traditional ideas <strong>of</strong> linear stability analysis, focused<br />

on how much gain can be applied to the system before time delays or other unmodeled<br />

dynamics drive the system to oscillate explosively. Robust avoidance is a higher-level idea<br />

relating to how relaxation <strong>of</strong> the assumptions (in this case cooperation) affects the validity<br />

<strong>of</strong> the collision avoidance guarantees.<br />

5.1 Robust Stability<br />

As complex as this control algorithm may appear, it can still be analyzed for robustness<br />

using linear tools. The deconfliction maneuver is a feed-forward control, so robust stability<br />

does not apply, since the input is static. The desired controller is assumed to exhibit an adequate<br />

degree <strong>of</strong> robust stability, since this controller is designed for the system in question.<br />

Therefore, the deconfliction maintenance controller is the part <strong>of</strong> this algorithm that needs<br />

to be analyzed for robust stability. Depending on the system in question, uncertainties can<br />

take many different forms. The following analysis is based upon a complex multiplicative<br />

uncertainty bounded by the transfer function w(jω).<br />

Stability in this case is analyzed about an equilibrium in the conflict space, i.e. where<br />

ṁ = 0 for the pair <strong>of</strong> vehicles in question. This equilibrium refers to the period from<br />

when the vehicles end their deconfliction maneuver to when they begin to pass each other,<br />

characterized by nearly constant-velocity trajectories.<br />

Theorem 6. Let k ij = k ti + k ni + k bi + k tj + k nj + k bj . The system is stable in the presence


49<br />

<strong>of</strong> a complex multiplicative uncertainty bounded by w(jω) if k ij satisfies<br />

k ij<br />

√k 2 ij + ω2 <<br />

1<br />

|w(jω)|<br />

∀ω. (5.1)<br />

Pro<strong>of</strong>. Recalling (4.26), (4.37), and (4.28), one has that<br />

ṁ ij = m ij<br />

(<br />

uti<br />

p t,ij<br />

+ u n i<br />

p n,ij<br />

+ u b i<br />

p b,ij<br />

+ u t j<br />

p t,ji<br />

+ u n j<br />

p n,ji<br />

+ u b j<br />

p b,ji<br />

+ h ij<br />

)<br />

, (5.2)<br />

where h ij is a positive quantity given by<br />

⎧<br />

⎪⎨ ‖ṽ‖ cos(|β|−α)<br />

, |β| − α ≤ π ‖˜r‖ cos α 2<br />

h ij =<br />

(5.3)<br />

⎪⎩ 0, |β| − α > π. 2<br />

The worst case for robust stability is when the feedback gain is the largest (most negative),<br />

and one can see by looking at Fig. 4.8 that the largest gain in terms <strong>of</strong> p + will occur when<br />

p − = ɛ and u d = u min . One can assume without loss <strong>of</strong> generality that the nearest conflict<br />

is in the positive direction, i.e p > 0. In this case,<br />

Applying to (5.2) yields<br />

m u t<br />

= m F (p t, ɛ)<br />

p t<br />

= m<br />

p<br />

( t<br />

ut,max<br />

p t<br />

+ u )<br />

t,min − u t,max<br />

ɛ t<br />

= −k t m + ê Tˆtu t,max . (5.4)<br />

ṁ ij = − (k ij − h ij ) m ij + ê T Θ i u i,max + ê T Θ j u j,max , (5.5)<br />

where u i,max = [u ti,max , u ni,max , u bi,max ] T . The second two terms are always positive (p t ><br />

0 =⇒ ê Tˆt > 0, etc.) and only serve to push the equilibrium to an m that is greater than<br />

zero. Only the first term has bearing on the robust stability <strong>of</strong> the system. One can open<br />

the loop on this negative feedback system and examine the loop gain as a transfer function,<br />

L(s):<br />

L(s) = k ij − h ij<br />

. (5.6)<br />

s


50<br />

Note that h ij<br />

analysis does not apply.<br />

< k ij or else this system does not have an equilibrium and the stability<br />

The complementary sensitivity function, T (s), is given by<br />

T (s) =<br />

L<br />

1 + L = k ij − h ij<br />

s + k ij − h ij<br />

. (5.7)<br />

For a system perturbed by a complex multiplicative uncertainty, the perturbed loop gain,<br />

L p (s), is given by<br />

L p (s) = L(1 + w∆), |∆(jω)| ≤ 1, ∀ω. (5.8)<br />

In this case, robust stability to an uncertainty bounded by w is guaranteed if<br />

|T (jω)| <<br />

1<br />

|w(jω)|<br />

∀ω, (5.9)<br />

as shown in [32]. From (5.7),<br />

|T (jω)| ≤<br />

k ij − h ij<br />

√<br />

(kij − h ij ) 2 + ω 2 . (5.10)<br />

Since 0 ≤ h ij ≤ k ij , then<br />

k ij − h ij<br />

√<br />

(kij − h ij ) 2 + ω 2 ≤<br />

k ij<br />

√k 2 ij + ω2 , (5.11)<br />

which implies that (5.1) is a sufficient bound for stability.<br />

Depending on the nature <strong>of</strong> the system on which this algorithm is implemented, the<br />

uncertainty, w, could take many forms. As an example, one common type <strong>of</strong> unmodeled<br />

dynamics is time delay. Delays can be caused by sensors, communication, or even the<br />

discretization <strong>of</strong> this continuous-time system.<br />

Lemma 4. The system is stable in the presence <strong>of</strong> a pure time delay no greater than τ, if<br />

k < 1.47<br />

τ . (5.12)


51<br />

Pro<strong>of</strong>. A multiplicative uncertainty, w, that bounds this time delay is given in [32]:<br />

⎧<br />

⎪⎨ |1 − e −jωτ | , ω < π/τ<br />

w(ω) =<br />

⎪⎩ 2, ω ≥ π/τ.<br />

(5.13)<br />

If the limiting case is when ω ≥ π/τ, then (5.1) becomes<br />

k<br />

√<br />

k2 + ω 2 < 1 2<br />

If the other case is limiting, then<br />

k < ω √<br />

3<br />

<<br />

π<br />

τ √ 3 . (5.14)<br />

k<br />

√<br />

k2 + ω < 1<br />

2 |1 − e −jωτ |<br />

k<br />

√<br />

k2 + ω < 1<br />

√ 2 2 − 2 cos(ωτ)<br />

k 2 (1 − 2 cos(ωτ)) < ω 2<br />

kτ <<br />

ωτ<br />

√<br />

1 − 2 cos(ωτ)<br />

. (5.15)<br />

The right hand side is now in terms <strong>of</strong> a single variable (ωτ), and the minimum can be<br />

calculated numerically:<br />

min<br />

ωτ<br />

ωτ<br />

√<br />

1 − 2 cos(ωτ)<br />

≈ 1.4775. (5.16)<br />

This case is indeed limiting because 1.4775 < π/ √ 3. Therefore (5.12) is sufficient to<br />

guarantee stability in the presence <strong>of</strong> the time delay τ.<br />

This type <strong>of</strong> analysis can be used to find similar bounds on the gain <strong>of</strong> the system to<br />

guarantee stability to other types <strong>of</strong> unmodeled dynamics and uncertainty, for instance noise<br />

or lags caused by filtering.<br />

5.2 Robust <strong>Avoidance</strong><br />

Another possible problem for this system is a vehicle which does not cooperate, i.e. does<br />

not satisfy (4.40). This vehicle is regarded as antagonistic, regardless <strong>of</strong> its actual goals.


52<br />

Note that a vehicle which does not run the DRCA algorithm, but rather holds a constant<br />

velocity always satisfies (4.40) and is therefore not considered antagonistic.<br />

One can see that in a multivehicle scenario, several antagonistic vehicles could surround<br />

another vehicle’s velocity vector with their collision cones, bringing them together<br />

until no conflict-free region was left, leaving the hapless vehicle with no guarantee <strong>of</strong> collision<br />

avoidance. Indeed, in some situations collision avoidance may be impossible against<br />

adversaries. Likewise even a single adversary can pin another vehicle between itself and<br />

one or more constant-velocity vehicles (or vehicles with very small control authority). This<br />

problem is fundamental to pursuit-evasion within groups <strong>of</strong> vehicles, and this algorithm<br />

does not provide an easy solution. However, for a two-vehicle system with a single adversary,<br />

the DRCA algorithm still provides a guarantee.<br />

Theorem 7. For a two-vehicle system in which the vehicle’s dynamics are restricted by<br />

(2.3), and vehicle one runs the deconfliction maintenance controller, and vehicle two is an<br />

adversary using an unknown controller, the vehicles will remain conflict-free for all time<br />

provided they started that way and that<br />

which implies also that v 1,max > v 2,max .<br />

u 1,max ≥ u √<br />

2,maxv 1,max 3<br />

√<br />

, (5.17)<br />

v1,max 2 − v2,max<br />

2<br />

Pro<strong>of</strong>. The choice <strong>of</strong> the control function (4.21) ensures that at the edge <strong>of</strong> a conflict,<br />

not only does vehicle one not approach the conflict any further, but it actually applies its<br />

maximum control authority in the opposite direction. Rederiving (5.5) for only vehicle one<br />

using deconfliction maintenance yields<br />

ṁ = − (k t + k n + k b − h) m + ê T Θ i u 1,max + ê T Θ j u 2 , (5.18)<br />

where one can see that the first term goes to zero as m → 0. The second term is always<br />

greater than or equal to u 1,max because ê Tˆt 1 ≥ 0, etc. However, the last term is upperbounded<br />

by u 2,max<br />

√<br />

3, so u1,max ≥ u 2,max<br />

√<br />

3 is sufficient to guarantee limm→0 + ṁ ≥ 0<br />

and thus that conflict is avoided.


53<br />

u 1<br />

u 2<br />

θ<br />

γ<br />

v 2,max<br />

v 1,max<br />

Figure 5.1: Geometry <strong>of</strong> the worst situation for avoiding an adversary. The dotted lines<br />

represent the collision cone and the circles represent the set <strong>of</strong> allowable velocity vectors<br />

for the two vehicles.<br />

A problem with this analysis is that the control authority limits <strong>of</strong> the vehicles are not<br />

actually fixed, but get restricted when the maximum speed, v max , is reached. The worst<br />

case occurs when vehicle one is at its maximum speed and is on the edge <strong>of</strong> a conflict with<br />

vehicle two, which is nearly at its own maximum speed. The angle that the collision cone<br />

makes with the boundary <strong>of</strong> vehicle one’s allowable velocity set defines the ratio <strong>of</strong> control<br />

authority needed to avoid vehicle two’s worst action. As can be seen in Fig. 5.1, the worst<br />

angle for the collision cone to have is when γ is maximized. The law <strong>of</strong> sines gives<br />

sin γ<br />

= sin θ , (5.19)<br />

v 2,max v 1,max<br />

so γ is maximized when sin θ = 1, and the maximum is γ = arcsin(v 1,max /v 2,max ). The<br />

required control authority to both stay out <strong>of</strong> conflict and stay within v 1,max is then<br />

u 1,max ≥ u 2,max sec γ √ 3. (5.20)<br />

Substituting the maximum γ from above and simplifying yields the bound (5.17).


54<br />

Chapter 6<br />

PERFORMANCE<br />

This chapter will demonstrate the performance <strong>of</strong> the DRCA algorithm in simulation.<br />

The following sections are intended to illustrate a variety <strong>of</strong> possible applications as well<br />

as showcase the nominal and <strong>of</strong>f-nominal behavior <strong>of</strong> the algorithm. The first section<br />

shows the standard way the algorithm functions, comforming to all <strong>of</strong> the requirements<br />

for the guarantees <strong>of</strong> safety in a 2D, variable-speed, heterogeneous system. The next section<br />

demonstrates how vehicle priority can be changed and how it affects the trajectories.<br />

Most <strong>of</strong> the simulations shown in this chapter are two-dimensional in order to make them<br />

clear when printed, however section 6.3 shows a three-dimensional case for completeness.<br />

Section 6.4 shows a number <strong>of</strong> simulations where various requirements <strong>of</strong> the guarantees<br />

are broken and demonstrates the limits <strong>of</strong> the heuristic performance <strong>of</strong> the algorithm. This<br />

section also serves to compare the constant and variable-speed deconfliction maneuvers.<br />

Section 6.5 discusses computational scaling and compares the various parts <strong>of</strong> the DRCA<br />

algorithm to another collision avoidance algorithm in terms <strong>of</strong> computation time. The next<br />

section discusses how the DRCA algorithm can be adjusted to work with swarms <strong>of</strong> vehicles<br />

and shows an example. The final section compares the DRCA algorithm to a Satisficing<br />

Game Theory (SGT) algorithm in two classically difficult situations.<br />

6.1 Variable Speed<br />

This simulation (Fig. 6.1) is <strong>of</strong> a heterogeneous group <strong>of</strong> five vehicles performing target<br />

tracking. Each vehicle has a target that moves at constant velocity (0.4 m/s), whose position<br />

the vehicle is attempting to attain using a standard target following controller. Circles<br />

around each vehicle in Fig. 6.1a denote their size, in that overlapping circles imply colli-


55<br />

speed (m/s)<br />

(a)<br />

0.5<br />

0.4<br />

0.3<br />

0.2<br />

0.1<br />

0<br />

0 10 20 30 40 50 60<br />

Time (s)<br />

‖u‖ (m/s 2 )<br />

0.25<br />

0.2<br />

0.15<br />

0.1<br />

0.05<br />

(b)<br />

0<br />

0 10 20 30 40 50 60<br />

Time (s)<br />

(c)<br />

(d)<br />

Figure 6.1: Five vehicle simulation: (a) shows the vehicle trajectories. Target paths are<br />

shown as dotted lines. Vehicle images are plotted at 30 seconds, while their initial positions<br />

are denoted by small circles. (b) shows a snapshot <strong>of</strong> the collision cones from the<br />

perspective <strong>of</strong> the red vehicle at 30 seconds. The red arrow denotes the red vehicle’s velocity.<br />

This illustration effectively overlaps several diagrams like Fig. 4.7. Subplots (c) and<br />

(d) show the corresponding speeds and control magnitudes <strong>of</strong> the vehicles, respectively.<br />

‖˜r‖ − dsep (m)<br />

10<br />

5<br />

0<br />

0 10 20 30 40 50 60<br />

Time (s)<br />

Figure 6.2: Excess separation <strong>of</strong> vehicles in Fig. 6.1.


56<br />

sion. In this example k = 5 s -1 , each vehicle’s maximum speed is 0.5 m/s, and its maximum<br />

control authority is 0.2 m/s 2 . Figure 6.2 shows the excess separation distances for each pair<br />

<strong>of</strong> vehicles, demonstrating that no collisions occur.<br />

The initial conditions in this example are contrived such that the vehicles enter the<br />

deconfliction group one at a time, counter-clockwise starting from the red vehicle. Each<br />

vehicle starts its variable-speed deconfliction maneuver just before the bound (4.14), to<br />

ensure all the safety guarantees are met. The deconfliction maneuvers can be seen as short<br />

plateaus in the control magnitude plot (Fig. 6.1d).<br />

The snapshot <strong>of</strong> the simulation in Figs. 6.1a and b shows just how small a conflict-free<br />

region can be. While Theorem 4 guarantees that this region will never disappear, one can<br />

see how if any <strong>of</strong> the green, yellow or purple vehicles became antagonistic, they could easily<br />

cause a collision despite the best efforts <strong>of</strong> the other vehicles to avoid. This type <strong>of</strong> situation<br />

is why the analysis <strong>of</strong> antagonistic vehicles was kept to only two-vehicle scenarios.<br />

6.2 Preferential Routing<br />

A feature <strong>of</strong> the DRCA algorithm is that vehicles can be given different priority by adjusting<br />

the gain, k, <strong>of</strong> one vehicle relative to the other vehicles in the group. Vehicles with lower<br />

gain values will effectively get out <strong>of</strong> the way <strong>of</strong> higher gain vehicles, allowing those with<br />

priority to follow their desired controllers more closely.<br />

In order to isolate the effects <strong>of</strong> preferential routing, the pair <strong>of</strong> simulations in Fig.<br />

6.3 use identical vehicles and initial conditions. This case is geared more toward aircraft,<br />

as the three vehicles are restricted to a constant speed <strong>of</strong> 1 m/s. The vehicles start in an<br />

exact conflict (i.e. without control, all would reach the same point at the same time), and<br />

immediately begin their constant-speed deconfliction maneuver. The red vehicle is the<br />

first vehicle, and so maintains its heading throughout the maneuver. After one second, a<br />

conflict-free state is attained, after which the vehicles attempt to get back to their original<br />

straight paths.<br />

Even though this simulation is symmetric and homogeneous, the red vehicle stays closer


57<br />

un (m/s 2 )<br />

0.2<br />

0<br />

(a)<br />

-0.2<br />

0 5 10 15 20 25<br />

(c)<br />

Time (s)<br />

un (m/s 2 )<br />

0.2<br />

0<br />

(b)<br />

-0.2<br />

0 5 10 15 20 25<br />

(d)<br />

Time (s)<br />

Figure 6.3: Preferential routing comparison for three vehicles. Desired paths are depicted<br />

by dotted lines. The symmetric case is shown in (a) where each vehicle has k n = 5 s -1 ,<br />

while (b) shows the difference when the blue vehicle is given routing preference (k n = 10<br />

s -1 ). (c) and (d) show the corresponding control inputs (vehicles are unit speed).<br />

to its path than the others because it had order preference during the deconfliction maneuver.<br />

In Fig. 6.3b, the blue vehicle was given priority by doubling its gain, k n , relative to the<br />

others. As can be seen, the blue vehicle still performs the same deconfliction maneuver,<br />

but once a conflict-free state is achieved, it begins to turn back toward its path. The other<br />

vehicles are forced to make way for it, while never allowing a conflict to form.


58<br />

5<br />

0<br />

-5<br />

5<br />

0<br />

-5<br />

0<br />

5<br />

-5<br />

Figure 6.4: Four vehicles performing collision avoidance in 3D (vehicle paths are denoted<br />

by thick lines). The initial conditions (black circles) form a tetrahedron and the targets the<br />

vehicles follow (thin lines) intersect exactly at the origin. The vertical position along the<br />

paths are denoted by their fading colors, corresponding to the colorbar on the left.<br />

6.3 Three-dimensional <strong>Avoidance</strong><br />

The simulation in Fig. 6.4 demonstrates the DRCA algorithm’s abilities in three-dimensions.<br />

The vehicles immediately perform a deconfliction maneuver by projecting their positions<br />

and velocities onto the horizontal plane, solving a variable-speed maneuver, then adding<br />

back the original vertical component <strong>of</strong> their velocities. The initial conditions form a tetrahedron,<br />

oriented such that its projection onto the horizontal plane leaves the points adequately<br />

separated for the maneuver.<br />

In this example k = 2 s -1 , the vehicle’s maximum speed is 1 m/s, and their maximum<br />

control authority is 0.2 m/s 2 . Their targets move at 0.7 m/s and the minimum separation<br />

distance is d sep = 2 m. Fig. 6.5 shows the excess separation distances for each pair <strong>of</strong><br />

vehicles, reinforcing that the vehicles do not collide.


59<br />

10<br />

8<br />

‖˜r‖ − dsep (m)<br />

6<br />

4<br />

2<br />

0<br />

0 5 10 15 20 25<br />

Time (s)<br />

Figure 6.5: Excess separation <strong>of</strong> vehicles in Fig. 6.4.<br />

6.4 Heuristic Performance<br />

Unlike the previous sections, these simulations violate some <strong>of</strong> the guarantees <strong>of</strong> safety,<br />

forcing the algorithm to use its heuristic backup to try and avoid collisions. The first simulation<br />

(Fig. 6.6) has ten vehicles arranged in a circle <strong>of</strong> radius 14 m. Their maximum speed<br />

is 1 m/s, their target speed is 0.6 m/s, and their maximum control authority is 0.5 m/s 2 ,<br />

giving these variable-speed vehicles δ = 6 m (4.12). The minimum separation is d sep = 2<br />

m, so the vehicles are initially spaced such that the maximum α e is nearly π/2. Therefore,<br />

(4.14) is not satisfied, so Theorem 3 cannot guarantee that a deconfliction maneuver<br />

solution can be found.<br />

Nonetheless, both the constant-speed maneuver (a) and the variable-speed maneuver<br />

(b), do find solutions for each vehicle that quickly lead to a conflict-free state without any<br />

collisions (see (c) and (d)). However, using cost functions, one can get an idea <strong>of</strong> the relative<br />

efficiency <strong>of</strong> the two maneuvers. The first cost function considered is an H 2 -type (c 1 =<br />

∑ n<br />

∫<br />

i=1 ‖ri − r i,target ‖ dt), while the second is an H ∞ -type (c 2 = max i,t ‖r i − r i,target ‖).


60<br />

‖˜r‖ − dsep (m)<br />

10<br />

5<br />

(a)<br />

0<br />

0 5 10 15 20 25 30 35 40<br />

(c)<br />

Time (s)<br />

‖˜r‖ − dsep (m)<br />

10<br />

5<br />

(b)<br />

0<br />

0 5 10 15 20 25 30 35 40<br />

(d)<br />

Time (s)<br />

Figure 6.6: Ten vehicles performing collision avoidance in the plane. The constant-speed<br />

maneuver is shown in (a), with corresponding excess separation in (c). The variable-speed<br />

maneuver and corresponding excess separation are shown in (b) and (d), respectively. The<br />

randomized initial conditions are identical for both simulations and the vehicles are shown<br />

at 25 seconds.


61<br />

‖˜r‖ − dsep (m)<br />

4<br />

2<br />

0<br />

(a)<br />

0 5 10 15 20 25 30<br />

(c)<br />

Time (s)<br />

‖˜r‖ − dsep (m)<br />

(b)<br />

4<br />

2<br />

0<br />

0 5 10 15 20 25 30<br />

Time (s)<br />

(d)<br />

Figure 6.7: Merging two groups <strong>of</strong> vehicles. The constant-speed maneuver (a) creates a<br />

collision between the green and yellow vehicles (shown at 11 seconds). The excess separation<br />

going negative in (c) shows the collision to last three seconds. The variable-speed<br />

maneuver (b) creates no such collision, as shown in the excess separation plot (d). Vehicles<br />

shown at 19 seconds.<br />

Indeed, using c 1 , the constant-speed maneuver has a cost <strong>of</strong> 936 while the variable-speed<br />

maneuver attains 711. Likewise, for c 2 , constant-speed yields 9.01 to the variable-speed<br />

7.10. So indeed, the extra computational expense <strong>of</strong> the variable-speed maneuver does buy<br />

better performance by optimizing over a larger set.<br />

The next simulation (Fig. 6.7) shows an even more difficult situation. The vehicle<br />

properties remain the same as in Fig. 6.6, but now the vehicles are started much closer<br />

together and in two opposite groups. The first problem is that the nearest vehicles have<br />

‖˜r‖ < d sep + δ, so α e is set to π/2, rather than forcing it to be undefined. The second<br />

problem is that the vehicle’s communication range is only 10% more than d sep + δ (or 8.8<br />

m). These vehicles are set up to rebroadcast information about their neighbors, such that<br />

any connected group will have full information (pseudo all-to-all), which means that the


62<br />

two groups know about their own members, but not about each other until they get close<br />

enough to communicate. This leads to two deconfliction maneuvers: one at the beginning<br />

to avoid the other vehicles in the group, and later a second to avoid everyone.<br />

The constant-speed maneuver is used in Fig. 6.7a, and while the first maneuver works<br />

fine, by the time the groups are close enough to perform the second maneuver the vehicles<br />

are so close that no solution can be found for the two green vehicles, so the heuristic commands<br />

them to turn around. Unfortunately, with no safety guarantees, this maneuver causes<br />

two vehicles to collide before a conflict-free state is reached (see Fig. 6.7c). However, by<br />

using the variable-speed maneuver with its larger optimization set, solutions are found for<br />

each vehicle (Fig. 6.7b) which keep the system collision-free, as shown in Fig. 6.7d.<br />

6.5 Computational Scaling<br />

Though bounds on the computational scaling <strong>of</strong> the various pieces <strong>of</strong> this algorithm have<br />

already been shown, the actual time taken for some realistic scenarios is also <strong>of</strong> interest.<br />

This actual time taken is especially important because the worst-case scaling is conservative.<br />

The simulations run were based on those from [22], to facilitate comparison. Each<br />

scenario consisted <strong>of</strong> n vehicles in a circle with randomized velocities headed generally<br />

toward the center (similar to Fig. 6.6). Table 6.1 gives results on the time taken for each<br />

part <strong>of</strong> the algorithm for various numbers <strong>of</strong> vehicles.<br />

Interesting to note is the wide variety <strong>of</strong> computation time for the maneuvers; <strong>of</strong>ten<br />

there is as much as a factor <strong>of</strong> six between the average time and the maximum time for a<br />

particular vehicle. Part <strong>of</strong> the reason is that the first vehicle needs to avoid no one, while<br />

the last vehicle needs to avoid everyone. Also note the difference in scaling between the<br />

constant-speed and variable-speed maneuvers (recalling that the worst case is O(n 2 ) and<br />

O(n 3 ), respectively): for eight vehicles the variable-speed maneuver costs only about three<br />

times the computations, but for 200 vehicles it costs 16 times more than constant-speed.<br />

These results also compare favorably to the computation times listed in [24] (which is a<br />

centralized optimization scheme), though the setups are not exactly the same.


63<br />

Table 6.1: Comparison <strong>of</strong> computation times between collision avoidance algorithms.<br />

Times reflect computations on a per vehicle basis.<br />

n CS Maneuver VS Maneuver Maint- [22]<br />

Mean Max Mean Max enance<br />

8 2.8 ms 18 ms 20 ms 56 ms 0.96 ms 0.41 ms<br />

32 4.4 ms 25 ms 82 ms 507 ms 3.5 ms 1.6 ms<br />

64 8.3 ms 32 ms 489 ms 4.0 s 7.2 ms 3.6 ms<br />

100 17 ms 67 ms 2.5 s 19 s 11 ms 4.6 ms<br />

200 44 ms 246 ms 44 s 244 s 23 ms 9.2 ms<br />

Computation times for deconfliction maintenance are comparable to those listed in [22],<br />

since both <strong>of</strong> these algorithms must be computed at each time step (as opposed to the<br />

deconfliction maneuvers, which are only computed once). While the DRCA algorithm is<br />

the slower <strong>of</strong> the two, these data show that they both scale linearly with n. Also, these times<br />

are <strong>of</strong>f by some factor, since the DRCA algorithm was run on one core <strong>of</strong> an Intel Core2<br />

Quad 2.4 GHz computer while [22] used a Core Duo 2.16 GHz computer. Additionally, it<br />

is unlikely that either implementation was fully optimized for speed.<br />

6.6 Formations<br />

One limitation <strong>of</strong> the DRCA algorithm is that vehicles moving with identical velocities are<br />

right on the edge <strong>of</strong> conflict (m = 0). Because the deconfliction maintenance controller is<br />

continuous, it will tend to push the vehicles to an equilibrium where m > 0, which means<br />

the vehicles move slightly away from one another. This behavior precludes the use <strong>of</strong> the<br />

DRCA algorithm for collision avoidance within a formation <strong>of</strong> vehicles because the desired<br />

state is for all <strong>of</strong> the vehicles to move with the same velocity.<br />

One way around this problem is to split up the duties <strong>of</strong> the desired controller and the<br />

DRCA algorithm. In the case <strong>of</strong> formation flight, the relative motion <strong>of</strong> the vehicles can


64<br />

(a)<br />

(b)<br />

(c)<br />

Figure 6.8: Fifty-vehicle swarm avoiding a static obstacle, shown at 20 second intervals.


65<br />

be stabilized with any <strong>of</strong> a variety <strong>of</strong> controllers from the literature [33, 34, 35]. By using<br />

a desired controller that guarantees intervehicle spacing, the DRCA algorithm can simply<br />

be turned <strong>of</strong>f between the vehicles in the formation. However, for the more difficult task <strong>of</strong><br />

avoiding objects moving at high relative speed, the DRCA algorithm can take over.<br />

A simulation <strong>of</strong> this situation for a fifty-vehicle swarm avoiding a static obstacle is<br />

shown in Fig. 6.8. In this case the communication topology is broken into two pieces: the<br />

DRCA algorithm uses a star graph, from the static obstacle to each other vehicle, while the<br />

desired controller uses everything else (the complete graph minus the star graph). Therefore<br />

the desired controller has no knowledge <strong>of</strong> the static obstacle; it simply keeps the vehicles<br />

spaced out using potential functions. In this way the vehicles avoid the static obstacle<br />

in a guaranteed fashion using the DRCA algorithm while the desired controller maintains<br />

intervehicle spacing.<br />

The maximum vehicle speed is 1 m/s while the swarm moves at 0.5 m/s and the vehicle’s<br />

maximum control authority is 0.2 m/s 2 . The vehicle diameters are 1 m and the obstacle’s<br />

diameter is 6 m. The vehicles begin their deconfliction maneuver when they have 6.5 m <strong>of</strong><br />

excess separation from the obstacle (13 m center-to-center). The swarm is unzipped around<br />

the obstacle, but the vehicles avoid it by no more than they have to. One can also choose<br />

the distance at which vehicles deconflict such that α e is no more than some threshold,<br />

thus keeping the ‖∆v‖ <strong>of</strong> the maneuver small enough to ensure the desired controller can<br />

adequately attain intervehicle spacing.<br />

6.7 Comparison to an SGT Algorithm<br />

To demonstrate the performance strength <strong>of</strong> the DRCA algorithm, two systems were simulated<br />

to compare with the results <strong>of</strong> a Satisficing Game Theory (SGT) algorithm presented<br />

in [28]. The first scenario is based originally on a model used in [24]). The aircraft have<br />

a constant speed <strong>of</strong> 500 mph, start evenly spaced on a circle <strong>of</strong> radius 50 miles, and each<br />

is attempting to reach a waypoint on the exact opposite side <strong>of</strong> the circle (the starting point<br />

<strong>of</strong> the opposite aircraft). This scenario is referred to as a choke point because without


66<br />

Figure 6.9: <strong>Collision</strong> avoidance <strong>of</strong> 32 aircraft using the DRCA algorithm. Vehicles are<br />

shown 30 seconds before attaining their waypoints. Note that no near misses occur even<br />

though the vehicles start without sufficient separation to guarantee deconfliction (4.14).<br />

deconfliction, all the vehicles would meet at the center (Figure 6.9).<br />

A near miss is defined as two aircraft coming within five miles <strong>of</strong> each other, so d sep was<br />

set to this value. The efficiency <strong>of</strong> the maneuver is defined as the average <strong>of</strong> the percentage<br />

<strong>of</strong> time delay in arrival at the waypoints:<br />

Efficiency = 1 n<br />

n∑<br />

i=1<br />

T r<br />

T i<br />

, (6.1)<br />

where T r = 12 minutes is the reference time (flying straight), and T i is the actual time taken<br />

for the ith vehicle. In [28], the maximum turn allowed was 5 degrees per second, which<br />

corresponds to u max = 64 ft/s 2 . Additionally, the gain chosen was k n = 0.4 s -1 .<br />

In order to fairly compare these two algorithms, the DRCA algorithm has been set up<br />

for this simulation such that each vehicle has information only from those vehicles within a<br />

50 mile radius <strong>of</strong> itself, just as in [28]. While this breaks some <strong>of</strong> the guarantees <strong>of</strong> safety,


67<br />

the heuristic performance will be shown to be more than adequate. Additionally, since the<br />

vehicles start <strong>of</strong>f such that ‖r‖ < d sep + δ, this simulation used half <strong>of</strong> the standard δ value,<br />

because the safety guarantees are already gone, so it makes sense to choose δ such that<br />

‖r‖ > d sep + δ.<br />

Figure 6.9 shows a simulation <strong>of</strong> the DRCA algorithm deconflicting 32 vehicles, the<br />

densest choke pattern demonstrated in [28]. The DRCA algorithm attained an efficiency<br />

<strong>of</strong> 87.6%, compared to 85.7% in [28]. The real achievement was that there were zero near<br />

misses with the DRCA algorithm, as opposed to 19 in [28].<br />

The second scenario is that <strong>of</strong> two perpendicular flows <strong>of</strong> the same aircraft as before.<br />

Like the worst case shown in [28], the aircraft streams are constant, with a starting separation<br />

<strong>of</strong> seven miles between the aircraft. Because the DRCA algorithm does not allow<br />

vehicles to maintain the same velocity as each other, the algorithm was tweaked such that<br />

vehicles only avoid each other within a circle <strong>of</strong> radius 50 miles from the initial crossing<br />

point. That is, for two vehicles to detect each other, they must both be in the circle and<br />

be within 50 miles <strong>of</strong> each other. Unlike the standard implementation <strong>of</strong> the DRCA algorithm,<br />

these vehicles must frequently perform deconfliction maneuvers as new vehicles are<br />

spotted. The δ used is 1 mile, but everything else is the same as the previous simulation.<br />

It was unclear exactly what the goal <strong>of</strong> each vehicle was in the simulation in [28], so<br />

for the simulation in Fig. 6.10 the desired controller points each vehicle toward a distant<br />

waypoint along their original trajectory, which is effectively equivalent to attaining their<br />

original heading. Likewise, the definition <strong>of</strong> efficiency was unclear in this example, and so<br />

is omitted. Fig. 6.11 shows that there were no near misses while [28] recorded 29. The<br />

algorithms were qualitatively similar, forming alternating waves <strong>of</strong> vehicles that flowed<br />

past each other.


68<br />

Figure 6.10: <strong>Collision</strong> avoidance <strong>of</strong> two perpendicular flows. Vehicles only perform the<br />

DRCA algorithm when they are inside <strong>of</strong> the black dashed circle (radius 50 miles).<br />

‖˜r‖ − dsep (m)<br />

20<br />

10<br />

0<br />

0 200 400 600 800 1000<br />

Time (s)<br />

Figure 6.11: Excess separation for vehicles in 6.10. Note that no near misses occurred.


69<br />

Chapter 7<br />

CONCLUSION<br />

The primary contribution <strong>of</strong> this dissertation is a widely applicable, provably safe collision<br />

avoidance algorithm. The DRCA algorithm is designed for the exceedingly simple<br />

3D double-integrator, which can model a vast array <strong>of</strong> vehicles through the application <strong>of</strong><br />

appropriate control saturation functions. Instead <strong>of</strong> using more complex dynamics to model<br />

nonholonomic constraints, state-dependent control saturation can be used to accomplish the<br />

same goal. As shown in the robustness analysis, higher order dynamics can be accounted<br />

for through the proper choice <strong>of</strong> gains.<br />

The most important aspects <strong>of</strong> the DRCA algorithm are the complete guarantees <strong>of</strong><br />

safety at every phase. Almost no other collision avoidance algorithms in the literature<br />

give complete safety guarantees for n vehicles in the presence <strong>of</strong> acceleration or force<br />

limitations. Even the other optimization schemes frequently give no mention <strong>of</strong> when a<br />

feasible solution exists.<br />

The information required by this algorithm in order to maintain safety guarantees is<br />

higher than for some others, and may be higher than is practical for certain systems. However,<br />

it has been demonstrated that even when these requirements are relaxed, for instance<br />

by making the system truly decentralized with only local information, the heuristic performance<br />

is still better than other algorithms. Part <strong>of</strong> the reason is that though the deconfliction<br />

maneuver may not be proven safe, if the system becomes conflict-free, the deconfliction<br />

maintenance controller will guarantee it stays that way.<br />

As the name <strong>Distributed</strong> <strong>Reactive</strong> <strong>Collision</strong> <strong>Avoidance</strong> implies, this algorithm ensures<br />

real-time operability by distributing the computations among the agents, bounding the computational<br />

scaling, and requiring no central server. The computation time has been shown


70<br />

to not only scale well, but to compare favorably with the computation time <strong>of</strong> other fast,<br />

distributed algorithms.<br />

7.1 Future Work<br />

There are many avenues for potential future research building on what has been presented<br />

here. Some are direct extensions to the presented work while others include humanmachine<br />

interaction and even human decision modeling.<br />

The section on robust avoidance <strong>of</strong> a single adversary came about from looking at the<br />

DRCA algorithm from a game theory point <strong>of</strong> view. An interesting extension would be to<br />

further this analysis to more than two vehicles, and perhaps more than one adversary and<br />

see what can be proven about avoidance. The inverse problem could also be interesting:<br />

what adversarial behaviors can guarantee a collision Perhaps this would give some insight<br />

into how the DRCA algorithm can be improved to better handle adversaries.<br />

One major restriction on this implementation is that the algorithm does not allow vehicles<br />

to move in formation, because zero relative velocity is on the tip <strong>of</strong> the collision cone.<br />

It might be possible to cut the tip <strong>of</strong>f <strong>of</strong> the collision cone, perhaps where the amount cut <strong>of</strong>f<br />

is proportional to the distance between the vehicles, such that vehicles moving slowly toward<br />

each other at enough distance would no longer be considered in conflict. This method<br />

would allow formation flight within the DRCA architecture, but the guarantees would have<br />

to be reproven.<br />

All <strong>of</strong> the bounds given in this dissertation are conservative in one way or another.<br />

Fundamentally, this is why the algorithm still works so well heuristically when the bounds<br />

are violated. New methods <strong>of</strong> pro<strong>of</strong> that allow less conservative bounds will bring the most<br />

significant improvement to the guaranteed performance and will correspondingly help any<br />

implementation.<br />

The three-dimensional case needs a better deconfliction maneuver the most, and perhaps<br />

this can be accomplished through some other optimization. Granted, there are fewer<br />

systems that require true three-dimensional deconfliction, but for those that do, the current


71<br />

system <strong>of</strong> projecting everything to a plane is insufficient. Some type <strong>of</strong> relaxation should be<br />

developed to make optimizing deconfliction in three-space tractable. Keeping in mind that<br />

feasibility is far more important than optimality will probably make solving the problem<br />

easier.<br />

The whole point <strong>of</strong> developing this algorithm is to implement it on real systems to<br />

improve safety. Perhaps one day it can join the ranks <strong>of</strong> TCAS and ADS-B as air traffic<br />

becomes more automated and the skies become denser-trafficked with UAVs and such. It<br />

could even serve in a centralized role as a load relief for air traffic controllers by creating<br />

default flight paths and giving warnings associated with conflicts. Along this line, an<br />

interesting research topic would be how to make this algorithm effectively interact with a<br />

human, to reduce the operator’s work load while utilizing his skill at nonlinear optimization<br />

to improve performance.<br />

The original inspiration for this algorithm came from observing crowds <strong>of</strong> people walking<br />

across a large square and avoiding collisions with each other. Therefore it may be that<br />

people and other animals use a thought process akin to this algorithm to control their own<br />

motion. Using the DRCA algorithm as a benchmark to study human behavior may give<br />

insight into how our brains process control and planning.


72<br />

BIBLIOGRAPHY<br />

[1] R. A. Paielli and H. Erzberger, “Conflict probability estimation for free flight,” Journal<br />

<strong>of</strong> Guidance, Control, and Dynamics, vol. 20, pp. 588–596, 1997.<br />

[2] D. B. Kirk, W. S. Heagy, and M. J. Yablonski, “Problem resolution support for free<br />

flight operations,” IEEE Transactions on Intelligent Transportation Systems, vol. 2,<br />

pp. 72–80, 2001.<br />

[3] M.-D. Le, “An automatic control system for ship harbour manoeuvres using decoupling<br />

control,” in Proc. IEEE International Conference on Robotics & Automation,<br />

2001.<br />

[4] C.-N. Hwang, “The integrated design <strong>of</strong> fuzzy collision-avoidance and h-infinity autopilots<br />

on ships,” Journal <strong>of</strong> Navigation, vol. 55, pp. 117–136, 2002.<br />

[5] J. Kuchar and L. Yang, “A review <strong>of</strong> conflict detection and resolution modeling methods,”<br />

IEEE Transactions on Intellingent Transportation Systems, vol. 1, no. 4, pp.<br />

179–189, 2000.<br />

[6] G. Leitmann and J. Skowronski, “<strong>Avoidance</strong> control,” Journal <strong>of</strong> Optimization Theory<br />

and Applications, vol. 23, pp. 581–591, 1977.<br />

[7] A. Chakravarthy and D. Ghose, “Obstacle avoidance in a dynamic environment: A<br />

collision cone approach,” IEEE Transactions on Systems, Man, and Cybernetics,<br />

vol. 28, no. 5, pp. 562–574, September 1998.<br />

[8] E. Frazzoli, Z. Mao, J. Oh, and E. Feron, “Resolution <strong>of</strong> conflicts involving many<br />

aircraft via semidefinite programming,” AIAA Journal <strong>of</strong> Guidance, Control, and Dynamics,<br />

vol. 24, no. 1, pp. 79–86, 2001.<br />

[9] Z. Shiller, F. Large, and S. Sekhavat, “Motion planning in dynamic environments: Obstacles<br />

moving along arbitrary trajectories,” in Proc. IEEE International Conference<br />

on Robotics and Automation, 2001.<br />

[10] C. Carbone, U. Ciniglio, F. Corraro, and L. Luongo, “A novel 3D geometric algorithm<br />

for aircraft autonomous collision avoidance,” in Proc. IEEE Conference on Decision<br />

and Control, 2006.


73<br />

[11] G. Fasano, D. Accardo, and A. Moccia, “Multi-sensor-based fully autonomous<br />

non-cooperative collision avoidance system for unmanned air vehicles,” Journal <strong>of</strong><br />

Aerospace Computing, Information, and Communication, vol. 5, pp. 338–360, 2008.<br />

[12] A. Smith, D. Coulter, and C. Jones, “Uas collision encounter modeling and avoidance<br />

algorithm development for simulating collision avoidance,” in AIAA Modeling and<br />

Simulation Technologies Conference, 2008.<br />

[13] J. Kosecka, C. Tomlin, G. Pappas, and S. Sastry, “Generation <strong>of</strong> conflict resolution<br />

maneuvers for air traffic management,” in Proc. International Conference <strong>of</strong> Intelligent<br />

Robotic Systems, 1997, pp. 1598–1603.<br />

[14] M. Eby and W. Kelly, “Free flight separation assurance using distributed algorithms,”<br />

in Proc. IEEE Aerospace Conference, 1999, pp. 429–441.<br />

[15] E. Lalish, K. A. Morgansen, and T. Tsukamaki, “Formation tracking control using virtual<br />

structures and deconfliction,” in Proc. IEEE Conference on Decision and Control,<br />

2006.<br />

[16] D. E. Chang, S. Shadden, J. Marsden, and R. Olfati-Saber, “<strong>Collision</strong> avoidance for<br />

multiple agent systems,” in IEEE Conference on Decision and Control, 2003.<br />

[17] D. Dimarogonas and K. Kyriakopoulos, “<strong>Distributed</strong> cooperative control and collision<br />

avoidance for multiple kinematic agents,” in Proc. IEEE Conference on Decision and<br />

Control, 2006.<br />

[18] S. Mastellone, D. M. Stipanovic, C. R. Graunke, K. A. Intlek<strong>of</strong>er, and M. W. Spong,<br />

“Formation control and collision avoidance for multi-agent non-holonomic systems:<br />

Theory and experiments,” International Journal <strong>of</strong> Robotics Research, vol. 27, no. 1,<br />

pp. 107–126, 2008.<br />

[19] S. Wang and H. Schaub, “Spacecraft collision avoidance using coulomb forces with<br />

separation distance and rate feedback,” Journal <strong>of</strong> Guidance, Control, and Dynamics,<br />

vol. 31, pp. 740–750, 2008.<br />

[20] A. Rahmani, K. Kosuge, T. Tsukamaki, and M. Mesbahi, “Multiple uav deconfliction<br />

via navigation functions,” in AIAA Guidance, Navigation and Control Conference,<br />

2008.<br />

[21] G. P. Roussos, D. V. Dimarogonas, and K. J. Kyriakopoulos, “3D navigation and<br />

collision avoidance for a non-holonomic vehicle,” in Proc. IEEE American Control<br />

Conference, 2008.


74<br />

[22] G. H<strong>of</strong>fmann and C. Tomlin, “Decentralized cooperative collision avoidance for acceleration<br />

constrainted vehicles,” in Proc. IEEE Conference on Decision and Control,<br />

2008.<br />

[23] C. Tomlin, G. Pappas, and S. Sastry, “Conflict resolution for air traffic management:<br />

a study in multiagent hybrid systems,” IEEE Transactions on Automatic Control,<br />

vol. 43, no. 4, pp. 509–521, April 1998.<br />

[24] L. Pallottino, E. Feron, and A. Bicchi, “Conflict resolution problems for air traffic<br />

management systems solved with mixed integer programming,” IEEE Transactions<br />

on Intelligent Transportation Systems, vol. 3, no. 1, pp. 3–11, March 2002.<br />

[25] Y. Kim, M. Mesbahi, and F. Y. Hadaegh, “Multiple-spacecraft reconfiguration through<br />

collision avoidance, bouncing, and stalemate,” Journal <strong>of</strong> Optimization Theory and<br />

Applications, vol. 122, pp. 323–343, 2004.<br />

[26] A. Pongpunwattana and R. Rysdyk, “Real-time planning for multiple autonomous<br />

vehicles in dynamic uncertain environments,” Journal <strong>of</strong> Aerospace Computing, Information,<br />

and Communication, vol. 1, pp. 580–604, 2004.<br />

[27] S. Wollkind, J. Valasek, and T. Ioerger, “Automated conflict resolution for air traffic<br />

management using cooperative multiagent negotiation,” in AIAA Guidance, Navigation,<br />

and Control Conference, 2004.<br />

[28] J. C. Hill, J. K. Archibald, W. Stirling, and R. L. Frost, “A multi-agent system architecture<br />

for distributed air traffic control,” in Proc. AIAA Guidance, Navigation and<br />

Control Conference, 2005.<br />

[29] I. Hwang and C. Tomlin, “Protocol-based conflict resolution for air traffic control,”<br />

Stanford <strong>University</strong>, Tech. Rep. SUDAAR-762, 2002.<br />

[30] A. Stanley, “Flight path deconfliction <strong>of</strong> autonomous uavs,” in Infotech@Aerospace,<br />

2005.<br />

[31] L. Pallottino, V. G. Scordio, A. Bicchi, and E. Frazzoli, “Decentralized cooperative<br />

policy for conflict resolution in multivehicle systems,” IEEE Transactions on<br />

Robotics, vol. 23, no. 6, pp. 1170–1183, 2007.<br />

[32] S. Skogestad and I. Postlethwaite, Multivariable Feedback Control. Wiley, 2005.<br />

[33] J. H. Reif and H. Wang, “Social potential fields: A distributed behavioral control for<br />

autonomous robots,” Robotics and Autonomous Systems, vol. 27, no. 3, pp. 171–194,<br />

May 1999.


75<br />

[34] R. Skjetne, S. Moi, and T. I. Fossen, “Nonlinear formation control <strong>of</strong> marine craft,” in<br />

Proc. IEEE Conference on Decision and Control, 2002.<br />

[35] V. Gazi, “Swarm aggregations using artificial potentials and sliding-mode control,”<br />

IEEE Transactions on Robots, vol. 21, pp. 1208–1214, 2006.


76<br />

VITA<br />

Emmett Lalish was born and raised on the tiny island <strong>of</strong> Marrowstone in the Puget<br />

Sound. He dropped out <strong>of</strong> high school and moved away from home at the age <strong>of</strong> 16 to<br />

attend Olympic College in Bremerton, where he earned an Associate <strong>of</strong> Science in Engineering.<br />

After transferring to the <strong>University</strong> <strong>of</strong> <strong>Washington</strong>, he earned his B.S. in the<br />

Aeronautics & Astronautics department in 2005. He stayed for graduate school, earning<br />

his Master’s in 2007 and Ph.D. in 2009, all the while employed at Kristi Morgansen’s Nonlinear<br />

Dynamics & Control Lab. From 2006 to 2009 he also lead the UW’s Design, Build,<br />

Fly team, culminating in a 10 th place finish in Tucson, AZ against 54 other teams. At the<br />

age <strong>of</strong> 24, he is among the youngest to receive a doctorate from the UWAA department.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!