top of page

Autonomous Drone Delivery

The autonomous GPS-based drone delivery system uses a QR code on the ground as a landing pad to achieve an accurate landing.

Drone top 1_edited - Copy.jpg

Working Principles
First, the drone relies on the GPS to navigate to the coordinates of the delivery location. Next, a downward-facing stabilized camera determines the landing spot when recognizing the QR code on the ground. To improve accuracy, an additional verification code can be encrypted into the QR code.

Real-World Scenario
The delivery location based on the GPS coordinates ends up being on the roof of a customer's house. While the drone seems incapable of continuing its delivery task, the delivery can still be made successful by placing the QR code at a safe location (ex. backyard). The drone will first arrive at the roof, but will soon scan nearby for the pre-placed QR code. After matching the QR code and verification encryption, the drone will safely land on the QR code and successfully deliver the package.

Flowchart

Click the image to open a larger version

Software Description
The program operates on Nvidia TX2's Ubuntu Linux OS with C++, using DJI's Onboard SDK to control the drone and navigate it to the desired GPS coordinates. The onboard computer is responsible for sending motor control commands to the flight controller, which then converts the commands into discrete motor movements (ex. the onboard computer sends "fly forward at 2m/s" and the flight controller will alter the motor speed to be in compliance with the command). The drone implements OpenCV 4.0 for recognition of the QR code. For accurate landing position, the size of the QR code determines the relative height and the location of the QR code, relative to the center of the camera feed, corrects the drone's precise position (see illustration below).

QR Code Assist.png

Click the image to open a larger version

Specifications
Airframe: TBS-Discovery
Flight Controller: DJI N3
Onboard Computer: Nvidia TX2 8GB
TX2 Carrier Board: Auvidea J120
Motors & ESC: DJI E310
Battery: Gen Ace Tattu 4S 5200mAh 35C 4S1P
Gimbal: 3D printed, remixed from adi380's design on Thingiverse
Camera: GoPro Hero 4 Black
Camera Link to TX2: Elgato Cam Link
Transmitter: Walkera Devo F7
Receiver: Walkera S-Bus Receiver
USB 3.0 Hub: Anker 4 Port
TX2 & J120 mount is remixed from vijay609's design on Github
Landing gear extension is designed by McBane55 on Thingiverse

Wiring Diagram

Connection Diagram.png

Click the image to open a larger version

Code Demonstration

bottom of page