February 2021 · NXP HoverGames Challenge 2 · Bonus prize

A Drone That Brings the COVID-19 Test to You

My entry to NXP's HoverGames Challenge 2: a patient requests a drone from an Android app, the drone flies a sample-collection kit to them, and nobody who may be infected has to queue at a crowded test site. I built the app, flew the NXP HoverGames drone, and tested PX4 obstacle avoidance in Gazebo. Autonomous flight to the app's GPS location was the next step when I submitted.

  • NXP HoverGames
  • PX4
  • Android
  • Google Maps API
  • Firebase
  • Gazebo

Competition video

Final video for NXP HoverGames Challenge 2 (5 min). The YouTube player loads only when you press play.

At a glance

Flight controller
NXP RDDRONE-FMUK66 from the HoverGames drone kit, running PX4
Companion computer
NXP NavQ (i.MX 8M Mini) for the camera and image processing
Sensors
NEO-M8N GPS from the kit, camera, ultrasonic sensor
Link to base
SIM800L GSM/GPRS module with a Hologram SIM, location update every 30 seconds
App
Android app built in Android Studio: Google Maps API for the pickup location, Firebase for the request queue
Avoidance
Fork of PX4-Avoidance (ROS node) for obstacle detection, tested in Gazebo

The service, as designed

Safety for the user and for bystanders drove most of the design:

  1. Before the first order, the user watches a short safety video: what happens after the request, after dispatch, on arrival and when the drone leaves.
  2. The user shares their location in the app and requests the drone. Requests go into the Firebase database and are served first come, first served.
  3. The drone takes off with a sample-collection kit (a PCR nasal swab). The app shows order received, dispatched and arrival time, with live tracking, push notifications and SMS updates.
  4. On arrival it uses the camera and the ultrasonic sensor to find a safe place to land. The user drops the sample in the collection box and confirms in the app, and the drone flies back to base.
  5. If nobody confirms within a set time, it texts the user and returns anyway. Before arming to leave, it checks that nobody is standing too close and sounds a buzzer if someone is.

What I built and tested

At submission the app worked end to end, the HoverGames drone flew under manual control (the photo Hackster shows is captioned "Level 0, without autonomy"), and PX4 obstacle avoidance ran in Gazebo simulation. The open item in the repository was autonomous flight to the GPS coordinates that the app sends.

Ajaya standing in a grass field with a radio controller while the HoverGames drone flies overhead
Flying the HoverGames drone.
Android app welcome screen titled COVID-19 Test with a drone image
The Android app's welcome screen.
Gazebo simulation and QGroundControl running on an Ubuntu desktop
Simulation in Gazebo with QGroundControl.

Files and links