Drone racing has transformed from a niche activity sparked by enthusiastic hobbyists to an internationally televised sport. In parallel, computer vision and machine learning are making rapid progress, along with advances in agile trajectory planning, control, and state estimation for quadcopters. These advances enable increased autonomy and reliability for drones. More recently, the unmanned aerial vehicle (UAV) research community has begun to tackle the drone-racing problem. This has given rise to competitions, with the goal of beating human performance in drone racing.
At the thirty-third Conference on Neural Information Processing Systems (opens in new tab) (NeurIPS 2019), the AirSim research team is working together with Stanford University and University of Zurich to further democratize drone-racing research by hosting a simulation-based competition, Game of Drones (opens in new tab). We are hosting the competition on Microsoft AirSim (opens in new tab), our Unreal Engine-based simulator for multirotors. The competition focuses on trajectory planning and control, computer vision, and opponent drone avoidance. This is achieved via three tiers:
- Tier 1 – Planning only: The participant’s drone races tête-à-tête with a Microsoft Research opponent racer. The goal is to go through all gates in the minimum possible time, without hitting the opponent drone. Ground truth for gate poses, the opponent drone pose, and the participant drone are provided. These are accessible via our application-programming interfaces (opens in new tab) (APIs). The opponent racer follows a minimum jerk trajectory, which goes through randomized waypoints selected in each gate’s cross section.
- Tier 2 – Perception only: This is a time trial format where the participants are provided with noisy gate poses. There’s no opponent drone. The next gate will not always be in view, but the noisy pose returned by our API will steer the drone roughly in the right direction, after which vision-based control would be necessary.
- Tier 3 – Perception and Planning: This combines Tier 1 and 2. Given the ground truth state estimate for participant drone and noisy estimate for gates, the goal is to race against the opponent racer without colliding with it.
The animation on the left below shows the ground truth gate poses (Tier 1), while the animation on the right shows the noisy gate poses (Tier 2 and Tier 3). In each animation, the drone is tracking a minimum jerk trajectory using one of our competition APIs.
(opens in new tab) | (opens in new tab) |
The following animation shows a segment of one of our racing tracks with two drones racing against each other. Here “drone_2” (pink spline) is the opponent racer going through randomized waypoints in each gate cross section, while “drone_1” (yellow spline) is a representative competitor going through the gate centers.
The competition is being run in two stages—an initial qualification round and a final round. A set of training binaries with configurable racetracks was made available to the participants initially, for prototyping and verification of algorithms on arbitrary racetracks. In the qualification stage (Oct 15th to Nov 21st), teams were asked to submit their entries for a subset or all of the three competition tiers. 117 teams registered for the competition worldwide (opens in new tab), with 16 unique entries that have shown up on the qualification leaderboard (opens in new tab).
We are now running the final round of the competition and the corresponding leaderboard is available here (opens in new tab). All of the information for the competition is available at our GitHub repository (opens in new tab), along with the training, qualification, and final race environments.
Engineering-wise, we introduced some new APIs in AirSim specifically for the competition, and we’re continually adding more features as we get feedback. We highlight the main components below:
- Changing Unreal Engine environments (opens in new tab) at runtime
- Race APIs (opens in new tab) to start and reset a race, get last gate passed, and get racer status
- Low level control APIs (opens in new tab) for multiple combinations of angle and angle rate setpoints, with and without altitude stabilization
- High level black box trajectory planning and tracking (opens in new tab) APIs for users who want to focus on the perception aspect of the competition
- Control gain setter APIs (opens in new tab) for full customization of low level, medium level, and high level controllers
- Object APIs to facilitate drone gate dataset generation (opens in new tab)
In the long term, we intend to keep the competition open, and we will be adding more racing environments after NeurIPS 2019. While the first iteration brought an array of new features to AirSim, there are still many essential ingredients for trustable autonomy in real-world scenarios and effective simulation-to-reality transfer of learned policies. These include reliable state estimation; camera sensor models and motion blur; robustness to environmental conditions like weather, brightness, and diversity in texture and shape of the drone racing gates; and robustness against dynamics of the quadcopter. Over the next iterations, we aim to extend the competition to focus on these components of autonomy as well.
For more of the exciting work Microsoft is doing with AirSim, see our blog post (opens in new tab) on Ignite 2019.
Acknowledgements: This work would not have been possible without the substantial team effort behind the scenes by all members of the organizing team—Ratnesh Madaan, Nicholas Gyde, Keiko Nagami, Matthew Brown, Sai Vemprala, Tim Taubner, Eric Cristofalo, Paul Stubbs, Jim Piavis, Guada Casuso, Mac Schwager, Davide Scaramuzza, and Ashish Kapoor.