  Drone racing is becoming a popular sport where human pilots have to control
their drones to fly at high speed through complex environments and pass a
number of gates in a pre-defined sequence. In this paper, we develop an
autonomous system for drones to race fully autonomously using only onboard
resources. Instead of commonly used visual navigation methods, such as
simultaneous localization and mapping and visual inertial odometry, which are
computationally expensive for micro aerial vehicles (MAVs), we developed the
highly efficient snake gate detection algorithm for visual navigation, which
can detect the gate at 20HZ on a Parrot Bebop drone. Then, with the gate
detection result, we developed a robust pose estimation algorithm which has
better tolerance to detection noise than a state-of-the-art perspective-n-point
method. During the race, sometimes the gates are not in the drone's field of
view. For this case, a state prediction-based feed-forward control strategy is
developed to steer the drone to fly to the next gate. Experiments show that the
drone can fly a half-circle with 1.5m radius within 2 seconds with only 30cm
error at the end of the circle without any position feedback. Finally, the
whole system is tested in a complex environment (a showroom in the faculty of
Aerospace Engineering, TU Delft). The result shows that the drone can complete
the track of 15 gates with a speed of 1.5m/s which is faster than the speeds
exhibited at the 2016 and 2017 IROS autonomous drone races.
