The purpose of this project is to have a robot autonomously navigate and drop its payload at designated waypoints within a limited timespan. Our robot will have a Raspberry Pi that will pilot the 3DR drone to desired locations based on GPS and image processing routines to precisely deliver its entire payload using Python scripts. Our robot must race to three separate areas, deliver the payload at each site, and return to its start point all in less than two minutes. Our robot must also perform a delivery towards an emitting radio signal and return faster than the opposing robots.
1st Challenge - "The Individual Delivery"
In the first phase, the teams will run the course one at a time and will be scored primarily on accuracy. The robot can deliver the payload to identified targets in any order it chooses and by any method desired. It is important to point out that each team's robot must not cause any physical harm to participants. Furthermore, there will be three ways the waypoints will be distinguished. One, the GPS coordinates of the delivery locations will be distributed at the time of the competition. Second, in order to augment the limited accuracy of low cost GPS receivers, each delivery location will also be marked with a distinctive color (red, yellow, or blue). Lastly, each waypoint will be uniquely identified with a transmitting beacon of 433MHz OOK. The destination markers will be approximately two inches in diameter and embedded in the earth so that only the painted top is exposed.
2nd Challenge - "The Simultaneous Delivery"
In the second phase of the payload delivery challenge, two of the targets will be disabled and only one will be broadcasting. The teams will compete simultaneously with the goal of delivering a payload within 10 feet of the active target. The first robot to do this will be awarded 15 points. During the second phase, the robots are allowed to interact with each other to gain a competitive advantage. Aggressive robotic behavior will be tolerated. Potential life-threatening designs, however, are prohibited.
A Python script written using DroneKit is loaded to the Raspberry Pi. The script contains the GPS coordinates of each waypoints. The Raspberry Pi then commands the drone's flight controller to go to the designated location.
Computer Vision System
Once over the waypoint, the vision sensor will then scan the field of view to look for the identified waypoint marker. Then, it will calculate the pixel-to-centimeter ratio based on the actual size of the target. With the drone's bearing, which is based on true North, it calculates how far the drone needs to move to make adjustments to center the targer in the frame.
It consists of an enclosed rotary mechanism that holds the designated payload to be delivered. A PIC microcontroller, commanded by the Raspberry Pi, sends corresponding PWM signals to the servo which rotates the 3D-printed dispenser. Each single rotaion will drop a payload at each waypoint once the drone has confirmed its location.