This is my M.S. thesis work at UC Irvine's Center for Resilient Autonomous Systems, under an NSF-funded project on using networked UAVs to fight wildfires. The thesis is titled Dynamic Deployment of UAV Networks for Wireless Communication and Sensing, and I expect to finish it in December 2026.

The Problem

Consider the scenario where you want to send a group of drones out over a wildfire to find the hotspots. Getting one drone to fly toward a hotspot is easy. The difficulty is that a useful swarm has to satisfy several constraints at once, and these constraints tend to conflict with each other.

The drones should spread out to cover as much ground as possible, but they also have to stay close enough to keep radio contact, because a drone that has flown out of range is a drone whose data you will never see. They have to avoid colliding with each other. They have to stay inside the airspace they are cleared to fly in, and out of any region that is hazardous or off-limits. And the vehicles are not necessarily identical. They may carry different sensors, fly differently, and have different radio capabilities.

Classical coverage control handles the spreading-out part well and largely ignores the rest. My work is about enforcing all of it simultaneously, without giving up the coverage behavior that made the original approach worth using.

The Approach

The controller has two layers. The first is a nominal, gradient-based coverage controller: it produces the command that would maximize sensing performance over the region if nothing else mattered. The second layer is a quadratic program that takes that command and changes it as little as possible to satisfy the constraints.

The constraints are encoded as control barrier functions, which is a method of representing "never let this happen" constraints using inequalities on the control input that get checked and enforced constantly during flight. Collision avoidance, geofencing, staying out of hazardous regions, and maintaining network connectivity all become barrier constraints in the same optimization. Because several of these constraints have to hold at once, the formulation uses non-smooth control barrier functions, which handle multiple simultaneous constraints on a single UAV without needing to reparameterize the trajectory or apply a separate safety override kludge.

The useful property here is that safety and connectivity are guaranteed by construction rather than by tuning. The QP layer minimally modifies the coverage command, so the underlying optimization behavior is preserved and the drones still converge to the positions where sensing performance is optimal, only now with the added guarantee that their motion will not break their network connectivity or cause a crash or collision.

Simulation

Most of the development happens in miSim, a 3D MATLAB simulation I built for this research. It is modular and has both unit tests and scenario-level tests, which makes it quick and easy to develop, run, and debug the algorithms.

The design decision that paid off most was putting a shared interface behind the sensor model. The same framework serves an optical fire-detection scenario and a communications scenario where the UAVs are modeled as broadcast antennas, without forking the codebase or forcing significant refactoring.

Getting from simulation to real aircraft would normally mean rewriting everything in C++ by hand, which is slow, tedious, and difficult to debug, and which introduces the chance for fundamental differences between what was simulated and what was flown. To circumvent this challenge, I use the MATLAB Coder toolbox to generate C++ code from the original simulation code, so the flight code and the simulated code come from the same source. This proved invaluable in rapidly iterating on the algorithms as flight tests were first being set up.

Flight Testing

I designed and flew a campaign of four experiments with two UAVs on NSF's AERPAW testbed, an outdoor facility in North Carolina for aerial wireless research. The experiments put the vehicles through virtual obstacle courses containing columns, walls, and compound obstacles designed to create a challenging environment for the UAVs. In these flight tests, I found that the UAVs largely behaved in flight the way they were predicted to in simulations. I also collected UAV-to-UAV wireless link quality data at the same time, which helps us understand the real-world communications performance that these guidance algorithms can deliver.

These were the first multi-UAV experiments run on AERPAW by an external user without direct implementation support from testbed staff, and AERPAW staff wrote up my success story for their website.

Publications

This research work is primarily for my thesis, but has also led to some opportunities to publish along the way. Read more about the publications here.