⟵ Back to projects

Narcan Delivery Drone

August 20259 min read

Narcan Delivery Drone cover

Eight months as software lead on Purdue’s Narcan delivery drone, a team of nursing, biomedical, mechanical, and software students. Software covered everything from launch command to the drone sitting beside the patient.

  • Autonomy pipeline in ROS 2: one stereo depth camera feeds the RRT* route planner and the final land-or-abort call.
  • Precision landing: RANSAC lets the points vote on a ground plane, then the code scores slope, bumpiness, and size. One run cleared 37.44 m² of usable ground.
  • Simulation first: Gazebo worlds plus the PX4 firmware that flies the real drone.
  • Coverage model: a fleet at 60 mph more than doubles Indiana’s 5-minute household coverage from 37.44% to 78.65%.

An overdose gives you six minutes, so we designed the drone that shows up in five.

I led the software team on Purdue’s Narcan delivery drone, a Vertically Integrated Projects group that ran January to August 2025. Software owned everything between “launch command” and “drone sitting safely on a stranger’s lawn.” A fleet of these drones would more than double the share of Indiana households reachable in 5 minutes. Purdue’s engineering college wrote about the team in 2024.

Why a drone

In an opioid overdose, the problem is time.

Narcan itself is cheap, safe, and simple enough for a bystander to use. Delivery is the bottleneck. A phone charger reaches a doorstep in two hours, but medicine cannot reach a dying person in six minutes. That mismatch bothered me enough to give it eight months.

The mission handed us three requirements:

My role

The autonomy pipeline

Everything starts with a stereo depth camera, two lenses side by side that measure distance the way our two eyes do. It hands the code a point cloud, thousands of little distance measurements. One branch of the software uses that cloud to get the drone there without hitting anything. The other reads the ground below and hunts for a safe spot. Both feed one final call. Land or abort.

Flowchart: depth camera feeds terrain classification and RRT* path planning, converging in a landing decision pipeline
One camera feed splits into navigation and landing. Both branches report to the final decision.

Route-finding was the first big decision. The three classic planners, in plain terms:

PlannerHow it thinksThe catch
A*Checks a map square by square, like a chessboard.Needs the world chopped into squares first. Ours is a messy 3D scatter of points.
RRTFlings branches out at random until one touches the goal.Fast, but the first route it finds is jagged.
RRT*Same, but keeps rewiring its branches into shorter, smoother routes.Costs more computing per step.

I picked RRT*. The extra compute is worth it when the drone draws the route live from whatever the camera sees.

RRT* planner output: a smooth path from start to goal weaving between point cloud obstacles
My RRT* planner threading obstacles pulled from real camera data. Green branches are routes it considered. Blue is the one it kept.

Simulation first

Crashing a real drone with medicine on board is an expensive way to find bugs. We validated the flights in simulation instead. The setup is essentially a video game the flight code cannot distinguish from reality:

The same code runs in sim and on hardware, which is the whole point. The custom worlds exist to stress-test the landing code:

Precision landing

GPS gets the drone to the right address. The last ten meters are the actual problem, because nobody prepared a helipad next to the patient. From the point cloud over the ground below, the code has to pick a spot the way a picky camper picks a tent site. Flat, clear, and big enough.

  1. Guess a flat ground plane 400 times and keep whichever guess the most points agree with. The algorithm is called RANSAC. Think of it as letting the points vote.
  2. Points hugging that plane are trustworthy ground.
  3. Points sticking out get flagged as obstacles.
  4. Score the spot on slope, bumpiness, and size, then decide. The drone does not get a second opinion.
3D point cloud with fitted plane, green inlier landing zone, and red obstacle marks
Grey is the raw camera data. The blue plane is the best flat-ground guess. Green points voted for it, and red marks are obstacles.

A representative run:

CheckReading
Slope0.334°, flatter than most driveways
Bumpiness0.014 m of bump between the ground and the flat plane, about a centimeter and a half
Usable area37.44 m², roughly a two-car garage
Points in agreement3,744
DecisionLAND

The 3D analysis then flattens into a top-down view, like the elevation shading on a hiking map. The pipeline circles its final pick on that view.

Impact

Hardware demos are easy to dismiss as stunts, so we scored every ambulance station in Indiana on how many households it could reach within 5 minutes:

Chart of Indiana household coverage percentage versus drone speed
Coverage climbs steeply with speed. At 60 mph the fleet clears three quarters of Indiana households.

That 60 mph target is highway speed in a straight line over the cornfields. It drove the build team through 40+ simulated motor and propeller combinations. The real drone has hit 45 mph in flight tests. The simulations promise 74. Simulated propellers are reliably faster than real ones. Closing the 15 mph gap to 60 is the open problem.

Speed was only half the test. The first human trial at Purdue’s Alexander Field dropped real bystanders into a staged, high-stress overdose scenario. Over half could not administer the Narcan within the 30-second goal, which is all the 6-minute window leaves after 5 minutes of flight and 30 seconds of dispatch. Panic eats instructions. The interface went back for three redesigns that ask less of a frightened helper, plus an ethics-board proposal for the next round of trials.

What’s next

The Ultimate Takeaway

A drone that lands itself is a neat demo. A fleet that doubles how much of Indiana gets Narcan in five minutes becomes a public health argument. Making that argument took both the landing math and the spreadsheet. An overdose gives you six minutes. We designed the drone that shows up in five.