High performance and safe flight of full-scale helicopters from takeoff to landing with an ensemble of planners
Abstract
Autonomous flight of unmanned full‐size rotor‐craft has the potential to enable many new applications. However, the dynamics of these aircraft, prevailing wind conditions, the need to operate over a variety of speeds and stringent safety requirements make it difficult to generate safe plans for these systems. Prior work has shown results for only parts of the problem. Here we present the first comprehensive approach to planning safe trajectories for autonomous helicopters from takeoff to landing. Our approach is based on two key insights. First, we compose an approximate solution by cascading various modules that can efficiently solve different relaxations of the planning problem. Our framework invokes a long‐term route optimizer, which feeds a receding‐horizon planner which in turn feeds a high‐fidelity safety executive. Secondly, to deal with the diverse planning scenarios that may arise, we hedge our bets with an ensemble of planners. We use a data‐driven approach that maps a planning context to a diverse list of planning algorithms that maximize the likelihood of success. Our approach was extensively evaluated in simulation and in real‐world flight tests on three different helicopter systems for duration of more than 109 autonomous hours and 590 pilot‐in‐the‐loop hours. We provide an in‐depth analysis and discuss the various tradeoffs of decoupling the problem, using approximations and leveraging statistical techniques. We summarize the insights with the hope that it generalizes to other platforms and applications.
BibTeX
@article{Choudhury-2019-121274,author = {Sanjiban Choudhury and Vishal Dugar and Silvio Maeta and Brian MacAllister and Sankalp Arora and Daniel Althoff and Sebastian Scherer},
title = {High performance and safe flight of full-scale helicopters from takeoff to landing with an ensemble of planners},
journal = {Journal of Field Robotics},
year = {2019},
month = {December},
volume = {36},
number = {8},
pages = {1275 - 1332},
}