Model Predictive Contouring Control for Time-Optimal Quadrotor Flight (TRO 2022)
We tackle the problem of flying time-optimal trajectories through multiple waypoints with quadrotors. State-of-the-art solutions split the problem into a planning task (where a global, time-optimal trajectory is generated) and a control task (where this trajectory is accurately tracked). However, at the current state, generating a time-optimal trajectory that considers the full quadrotor model requires solving a difficult time allocation problem via optimization, which is computationally demanding (in the order of minutes or even hours. This is detrimental for replanning in presence of disturbances. We overcome this issue by solving the time allocation problem and the control problem concurrently via Model Predictive Contouring Control (MPCC). Our MPCC optimally selects the future states of the platform at runtime, while maximizing the progress along the reference path and minimizing the distance to it. We show that, even when tracking simplified trajectories, the proposed MPCC results in a path that approaches the true time-optimal one, and which can be generated in real-time. We validate our approach in the real world, where we show that our method outperforms both the current state-of-the-art and a world-class human pilot in terms of lap time achieving speeds of up to 60 km/h.
Reference:
A. Romero, S. Sun, P. Foehn, D. Scaramuzza
Model Predictive Contouring Control for Time-Optimal Quadrotor Flight
IEEE Transactions on Robotics, 2022
PDF:
Our research in Drone Racing:
Our research in Agile Drone Flight:
Affiliations:
A. Romero, S. Sun, P. Foehn, D. Scaramuzza are with the Robotics and Perception Group, Dep. of Informatics, University of Zurich, and Dep. of Neuroinformatics, University of Zurich and ETH Zurich, Switzerland
Music Credits: under Free Creative Commons License
1 view
228
53
4 months ago 00:03:03 1
Model Predictive Contouring Control for Time-Optimal Quadrotor Flight (TRO 2022)
4 months ago 01:56:20 1
Let’s build GPT: from scratch, in code, spelled out.