Abstract
Frequently hailed for their dynamical capabilities, quadrotor vehicles are often employed as experimental platforms. However, questions surrounding achievable performance, influence of design parameters, and performance assessment of control strategies have remained largely unanswered. This paper presents an algorithm that allows the computation of quadrotor maneuvers that satisfy Pontryagin’s minimum principle with respect to timeoptimality. Such maneuvers provide a useful lower bound on the duration of maneuvers, which can be used to assess performance of controllers and vehicle design parameters. Computations are based on a twodimensional firstprinciples quadrotor model. The minimum principle is applied to this model to find that timeoptimal trajectories are bangbang in the thrust command, and bangsingular in the rotational rate control. This paper presents a procedure allowing the computation of timeoptimal maneuvers for arbitrary initial and final states by solving the boundary value problem induced by the minimum principle. The usage of the computed maneuvers as a benchmark is demonstrated by evaluating quadrotor design parameters, and a linear feedback control law as an example of a control strategy. Computed maneuvers are verified experimentally by applying them to quadrocopters in the ETH Zurich Flying Machine Arena testbed.
This is a preview of subscription content, log in to check access.
Access options
Buy single article
Instant unlimited access to the full article PDF.
US$ 39.95
Price includes VAT for USA
Subscribe to journal
Immediate online access to all issues from 2019. Subscription will auto renew annually.
US$ 99
This is the net price. Taxes to be calculated in checkout.
Notes
 1.
It can be seen from (15) that, depending on the initial state x _{0} and the constants c, either Φ_{ R }(t=0)=0 is the only allowable initial value of the switching function (\(u_{R}^{*}(t=0)\) is then in a singular arc), or there are two allowable values that only differ in sign (\(u_{R}^{*}(t=0)\) is then in a regular arc, and its sign is dictated by the sign of Φ_{ R }(t=0)).
 2.
We conjecture that the assumption that u _{ T } does not switch at the edges of the singular arcs is valid for almost all initial and final conditions, with an appropriately defined measure. For all maneuvers considered here, results have shown that this condition has been fulfilled.
 3.
Numerical discrepancies are to be expected from both the accuracy to which the STO optimization was solved, and numerical integration errors. The tolerance to which the system of equations must be satisfied is defined by the user based on values seen in other maneuvers.
 4.
It is necessary to additionally specify whether u _{ R } switches to −1 or +1 at the end of the singular arc. We employ the convention that u _{ R } switches to the opposing value of the one before the singular arc. A singular arc where u _{ R } returns to the same value after the singular arc can be modeled by an additional switch at the end of the singular arc, with the corresponding duration of the additional singular arc being zero.
References
Bernstein, D. S. (2005). Matrix mathematics. Princeton: Princeton University Press.
Bertsekas, D. P. (2005). Dynamic programming and optimal control Vol. I (3rd edn.). Athena Scientific.
Bouabdallah, S., Noth, A., & Siegwart, R. (2004). PID vs LQ control techniques applied to an indoor micro quadrotor. In Proceedings of the international conference on intelligent robots and systems.
Bouktir, Y., Haddad, M., & Chettibi, T. (2008). Trajectory planning for a quadrotor helicopter. In Proceedings of the Mediterranean conference on control and automation.
Cowling, I. D., Yakimenko, O. A., & Whidborne, J. F. (2007). A prototype of an autonomous controller for a quadrotor UAV. In Proceedings of the European control conference.
Dahlquist, G., & Björck, A. (2003). Numerical methods. New York: Dover.
Geering, H. P. (2007). Optimal control with engineering applications. Berlin: Springer.
Gurdan, D., Stumpf, J., Achtelik, M., Doth, K. M., Hirzinger, G., & Rus, D. (2007). Energyefficient autonomous fourrotor flying robot controlled at 1 kHz. In Proceedings of the IEEE international conference on robotics and automation.
Hehn, M., & D’Andrea, R. (2011). Quadrocopter trajectory generation and control. In Proceedings of the IFAC world congress.
Hoffmann, G. M., Huang, H., Waslander, S. L., & Tomlin, C. J. (2007). Quadrotor helicopter flight dynamics and control: theory and experiment. In Proceedings of the AIAA guidance, navigation and control conference.
Hoffmann, G. M., Waslander, S. L., & Tomlin, C. J. (2008). Quadrotor helicopter trajectory tracking control. In Proceedings of the IEEE conference on decision and control.
How, J. P., Bethke, B., Frank, A., Dale, D., & Vian, J. (2008). Realtime indoor autonomous vehicle test environment. IEEE Control Systems Magazine, 28(2), 51–64.
Huang, H., Hoffmann, G. M., Waslander, S. L., & Tomlin, C. J. (2009). Aerodynamics and control of autonomous quadrotor helicopters in aggressive maneuvering. In Proceedings of the IEEE international conference on robotics and automation.
Lai, L. C., Yang, C. C., & Wu, C. J. (2006). Timeoptimal control of a hovering quadrotor helicopter. Journal of Intelligent & Robotic Systems, 45(2), 115–135.
Ledzewicz, U., Maure, H., & Schattler, H. (2009). Bangbang and singular controls in a mathematical model for combined antiangiogenic and chemotherapy treatments. In Proceedings of the conference on decision and control.
Lupashin, S., & D’Andrea, R. (2011). Adaptive openloop aerobatic maneuvers for quadrocopters. In Proceedings of the IFAC world congress.
Lupashin, S., Schöllig, A., Sherback, M., & D’Andrea, R. (2010). A simple learning strategy for highspeed quadrocopter multiflips. In Proceedings of the IEEE international conference on robotics and automation.
Mellinger, D., Michael, N., & Kumar, V. (2010). Trajectory generation and control for precise aggressive maneuvers with quadrotors. In Proceedings of the international symposium on experimental robotics.
Michael, N., Mellinger, D., Lindsey, Q., & Kumar, V. (2010). The GRASP multiple micro UAV testbed. IEEE Robotics & Automation Magazine, 17(3), 56–65.
Pounds, P., Mahony, R., & Corke, P. (2006). Modelling and control of a quadrotor robot. In Proceedings of the Australasian conference on robotics and automation.
Purwin, O., & D’Andrea, R. (2011). Performing and extending aggressive maneuvers using iterative learning control. Robotics and Autonomous Systems, 59(1), 1–11.
Roxin, E. (1962). The existence of optimal controls. The Michigan Mathematical Journal, 9(2), 109–119.
Schoellig, A., Hehn, M., Lupashin, S., & D’Andrea, R. (2011). Feasibility of motion primitives for choreographed quadrocopter flight. In Proceedings of the American control conference.
Zandvliet, M., Bosgra, O., Jansen, J., Vandenhof, P., & Kraaijevanger, J. (2007). Bangbang control and singular arcs in reservoir flooding. Journal of Petroleum Science & Engineering, 58(1–2), 186–200.
Acknowledgements
This research was funded in part by the Swiss National Science Foundation (SNSF).
Author information
Electronic Supplementary Material
Below is the link to the electronic supplementary material.
Performance benchmarking. (MP4 18.1 MB)
Appendix: Algorithm for calculation of timeoptimal maneuvers
Appendix: Algorithm for calculation of timeoptimal maneuvers
This appendix discusses the numerical algorithm presented in Sect. 4 in more detail, with a focus on how the individual steps were implemented. This implementation (in Matlab) of the algorithm is available for free use on the first author’s website, and is submitted along with this article.
This appendix follows the outline of Sect. 4, first introducing maneuvers containing no singular arcs in Sects. 9.1–9.3, and then showing modifications for bangsingular maneuvers in Sect. 9.4.
Figure 13 shows a flowchart diagram of the algorithm for bangbang maneuvers, and in the following, the three steps are introduced in detail.
9.1 Switching time optimization
Due to the assumption that the optimal solution is a bangbang maneuver, the control trajectory u can be efficiently parameterized by the initial control vector u(t=0) and the switching times of the two control inputs, denoted by the sets
N _{ R } and N _{ T } are the number of switches of the rotational control input and the thrust input, respectively. The principle of STO is to choose N _{ R } and N _{ T }, and to then improve an initial choice of the switching times \(\{{T}_{u_{R}}\}_{\mathit{ini}}\) and \(\{{T}_{u_{T}}\}_{\mathit{ini}}\), until a control trajectory is found that guides the quadrotor from x _{0} to x _{ T } with an acceptable accuracy. The final state error is measured using the scalar final state residual function
where the matrix W=diag(w _{1},w _{2},w _{3},w _{4},w _{5}) contains the weights of the different state errors. The final state x(T) resulting from the chosen switching times can be obtained by numerically integrating the system dynamics f(x,u) over the interval [0,T], where u is defined by the initial control inputs u(t=0) and the switching times \(\{{T}_{u_{R}}\}\) and \(\{{T}_{u_{T}}\}\). The maneuver duration T is not known a priori and we seek the minimum T for which P _{ res }=0 can be obtained. The problem can be written as
where {T}_{ ach } is the set of all T for which P _{ res }=0 is achievable, implying that the maneuver to be found is the one with the shortest possible duration.
The solution of (41) is computed by a twostep algorithm: For an initially small, fixed maneuver duration T, the state residual P _{ res } is minimized by varying the switching times \(\{{T}_{u_{R}}\}\) and \(\{{T}_{u_{T}}\}\) using a simplex search method (this choice was based on the observation that derivativefree optimization algorithms have shown to perform significantly better in this optimization). After the minimization, T is increased using the secant method
or by a constant value if convergence of the secant method is not assumed, see Dahlquist and Björck (2003). These two steps are repeated until P _{ res }=0 is achieved. Since the initial value of T is chosen to be too small to complete the maneuver, and since T is successively increased, the algorithm delivers a value close to the smallest T for which P _{ res }=0 is achievable.
The choice of the number of switches is based on the user’s intuition and experience from the computation of other maneuvers. If the number is chosen too high, the algorithm can converge to the correct result by producing dispensable switching times, as discussed below. The initial guess for the duration of the maneuver T must be chosen to be too short to complete the maneuver, and can be obtained from a guess based on the vehicle’s translational acceleration capabilities, or on similar maneuvers.
9.2 Parameter extraction
After having found a bangbang trajectory that brings the quadrotor from the initial state x _{0} to the desired final state x _{ T }, it is necessary to verify that it is a solution to BVP (32). Therefore, the constant vector c=(c _{1},c _{2},c _{3},c _{4}) must be determined, based on the trajectories resulting from the STO.
9.2.1 Dispensable switching times
If the number of switches N _{ R } and N _{ T } was chosen too high, then the STO may converge to a solution containing dispensable switching times, which in fact do not represent switches. Therefore, before the constant vector c is computed, all switches at t=0 and t=T are removed, and the initial control vector u(0) is adjusted accordingly. Furthermore, two switches of the same control input, which occur at the same time, are dispensable as well and must, consequently, also be removed.
9.2.2 Conditions on the trajectory of Φ_{ R }
The switching function Φ_{ R } must be zero whenever the control input u _{ R } switches. From the STO, the set of switching times \(\{{T}_{u_{R}}\}\) is given, and for each element of this set, Φ_{ R } must vanish. This leads to the conditions
As shown in Sect. 3, only the derivative \(\dot{\Phi}_{R}\) of the switching function is known a priori. However, once the state trajectories are known from the STO, the condition H≡0 (which must hold if the maneuver is timeoptimal) can be used to compute Φ_{ R }. Recalling the Hamiltonian (14) and using the definition Φ_{ R }=p _{5} yields
As shown in (17), the first four costates p _{ i } are all linear in c. The above equation can therefore be written as a linear function of c:
Given the linear form of Φ_{ R }, (43) states N _{ R } linear conditions on the constant vector c.
The derivative \(\dot{\Phi}_{R}\) is given by (31). For a trajectory that satisfies the minimum principle, the integral of \(\dot{\Phi}_{R}\) must coincide with the trajectory of Φ_{ R } given by (45). Hence, for an arbitrary interval [t _{1},t _{2}]∈[0,T],
must hold, where the left side of the equation is computed using H≡0, i.e. by (45). The costates p _{2} and p _{4} are linear functions of c, and the above equation can be written as
To set up conditions on c based on (47), the maneuver interval [0,T] is divided into N _{ R }+1 subintervals that are separated by the switching times \(\{{T}_{u_{R}}\}\), i.e.
This choice is beneficial with respect to the computational effort, because the switching function Φ_{ R } must vanish at the switching times; the left side of (47) can be set to zero for all intervals, except for the first and the last one. The N _{ R }+1 intervals describe N _{ R }+1 additional linear conditions on the constant vector c.
9.2.3 Conditions on the trajectory of Φ_{ T }
Since the thrust switching function Φ_{ T } is known explicitly, the conditions resulting from \(\{{T}_{u_{T}}\}\) are straightforward. From the fact that Φ_{ T } must vanish at each switch of u _{ T }, the condition
must be satisfied, where the set \(\{{T}_{u_{T}}\}\) is given by the STO. The thrust switching function (26) is a linear function of the costates p _{2} and p _{4}, and again linear in c:
This linear form of the thrust switching function Φ_{ T } allows one to define N _{ T } additional linear conditions on the elements of the constant vector c, based on the conditions from (49).
9.2.4 Condition matrix equation
For the minimum principle to be satisfied, a constant vector c that fulfills all the linear conditions to an acceptable accuracy must exist. The conditions on c derived above are therefore combined into a matrix equation, which we denote as
The matrix A is of size (N _{ c }×4) and the vector r has the length N _{ c }, where N _{ c } is the total number of linear conditions:
For all maneuvers considered here, the system of (51) is overdetermined, permitting no exact solution. Therefore, the least squares solution of (51) is computed (Bernstein 2005), which is given by
To verify that a solution to the overdetermined system of equations exists, c ^{∗} is substituted back into (51). If the error vector exceeds the expected numerical discrepancies,^{Footnote 3} then the solution is considered to be invalid. In the context of the optimal control problem, this implies that there exists no constant vector c for which the minimum principle is fulfilled, and consequently the trajectories x and u resulting from the STO do not satisfy the minimum principle. A possible reason is that the chosen number of switches N _{ R } and N _{ T } and the initial values \(\{{T}_{u_{R}}\}_{ini}\) and \(\{{T}_{u_{T}}\}_{ini}\) did not cause the STO to converge to the desired maneuver. This may be corrected by varying these parameters. Another reason for the lack of a solution could be that the timeoptimal maneuver for the given boundary conditions contains singular arcs, a case that will be discussed in Sect. 9.4.
If the condition matrix equation is satisfied to an acceptable accuracy, then a valid parameter vector c has been found and the parameter extraction step is complete.
9.3 BVP solver
To verify that BVP (32) is fulfilled and to minimize numerical errors, a last step is performed where the BVP is solved numerically: The state residual P _{ res } is minimized by varying the constant vector c and the maneuver duration T. The problem can be written as
The constants c resulting from the parameter extraction and the maneuver duration T obtained by the STO are used as initial values. The optimization over the constants c and the terminal time T is carried out using a simplex algorithm. As these initial values are close to the exact solution, the BVP solver converges quickly, provided that the solution resulting from the STO is indeed a solution to the minimum principle. The initial value of the switching function Φ_{ R }(0) can be obtained by the condition H≡0, i.e. by (45), evaluated at t=0. If P _{ res } is sufficiently small after the minimization, the maneuver satisfies the boundary conditions of the final state being reached, and the algorithm has terminated successfully.
9.4 Modified algorithm for bangsingular maneuvers
The algorithm described above is able to solve BVP (32), provided that the resulting maneuver does not contain singular arcs. In the general case, however, the timeoptimal maneuver is bangsingular, and the algorithm needs to be modified to take possible singular arcs into account.
Within a singular arc, the trajectory of u _{ R } is given by (23) and depends on the constants c. Due to this dependency, computing the constants c after the STO is no longer sufficient, since they determine the singular input and have an impact on the maneuver trajectory. The parameter extraction is therefore embedded into the STO, and the resulting algorithm consists of two successive steps:

1.
Applying STO, a maneuver that brings the quadrotor to the desired final state is found, and in parallel, a constant vector c that fulfills the condition matrix equation resulting from the parameter extraction is computed.

2.
Having a reasonable initial guess of the switching times, of the maneuver duration T, and of the constant vector c, a BVP solver that computes a solution to BVP (32) is applied.
Figure 14 shows a flowchart diagram of the algorithm to find bangsingular solutions.
9.4.1 Switching time optimization with embedded parameter extraction
For bangsingular maneuvers, u _{ R } may stay within a singular arc for a particular duration each time it switches. We introduce a new set of parameters that describes the durations of the singular arcs, and denote the duration within the singular arc at the switching time \({T}_{u_{R}}^{i}\) as \({D}_{s,u_{R}}^{i}\). At the time \({T}_{u_{R}}^{i}\) the control input u _{ R } enters the singular arc, and at time \({{T}_{u_{R}}^{i}+{D}_{s,u_{R}}^{i}}\) the singular arc is left and u _{ R } switches to −1 or +1.^{Footnote 4} A bangsingular maneuver is characterized by the sets
Within a singular arc, u _{ R } is given by (23) and its trajectory depends on the constants c. The final state residual P _{ res } is therefore not only a function of the maneuver duration T and of the sets of the switching times, but also of the constant vector c. Accordingly, the state residual may be written as
The new parameter set \(\{{D}_{s,u_{R}}\}\) and the constant vector c are additional optimization variables during the STO.
If the solution is to satisfy the minimum principle, the optimization variables overconstrain the problem: For the solution to satisfy the optimality conditions, the control inputs must be the optimal control inputs, as specified by (24) and (30). These optimal inputs could be found using c to compute the switching functions. This is avoided, however, because the separate optimization of the switching times and c has shown to be more robust.
Because only constants c that satisfy the condition matrix equation A c=r from the parameter extraction are a valid choice, we define the condition residual to be
where W _{ c } is a diagonal matrix containing the weights of the different linear conditions. It is important to note that the matrix A and the vector r are functions of the switching times \(\{{T}_{u_{R}}\}\) and \(\{{T}_{u_{T}}\}\), of the singular arc durations \(\{{D}_{s,u_{R}}\}\), of the maneuver duration T, and of the constants c. For a maneuver that satisfies the minimum principle, the condition residual C _{ res } must vanish. Consequently, the STO problem for bangsingular maneuvers can be written as
where {T}_{ ach } denotes the set of all T for which P _{ res }=0 and C _{ res }=0 is achievable.
For bangsingular maneuvers, the sum of the state and the condition residual P _{ res }+C _{ res } is minimized during the STO. For the computation of C _{ res }, the matrix A and the vector r are required: The parameter extraction is no longer an isolated step, but needs to be performed for each evaluation of C _{ res } within the STO minimization. The parameter extraction is not used to compute the constants c (which are optimization variables), but to compute A and r.
9.4.2 Additional linear conditions for bangsingular maneuvers
For the parameter extraction of bangsingular maneuvers, which is needed to obtain A and r, there exist additional linear conditions that take the requirements on the switching functions within singular arcs into account.
Additional conditions on the trajectory of Φ_{ R }
Considering bangsingular maneuvers, the rotational switching function Φ_{ R } must not only have a zerocrossing at each \({T}_{u_{R}}^{i}\), but it must also stay at zero for the duration of the corresponding singular arc \({D}_{s,u_{R}}^{i}\). An additional set of constraints is introduced, requiring that Φ_{ R } is zero at the beginning and at the end of the singular arcs:
Because these conditions do not imply that Φ_{ R } is zero during the entire singular arc, it is necessary to verify the trajectory of Φ_{ R } after the computation. If a switch \({T}_{u_{R}}^{i}\) has no singular arc, i.e. if \({D}_{s,u_{R}}^{i}=0\), then the corresponding two conditions in (59) are identical. From this it follows that one additional condition results for each singular arc. We denote the number of singular arcs as N _{ s }, hence (59) describes N _{ R }+N _{ s } conditions. This means that N _{ s } additional conditions have been identified, compared to the bangbang case. As derived in Sect. 9.2, these conditions are linear with respect to c.
As the derivative of the rotational switching function \(\dot{\Phi}_{R}\) is known explicitly, we demand that the integration value of \(\dot{\Phi }_{R}\) between two switches of u _{ R } is zero for bangbang maneuvers. For bangsingular maneuvers, we pose similar conditions, but extra time intervals over the singular arcs are created. An integration value of zero does not imply that Φ_{ R } stays at zero during the whole singular arc, but constant drifts of Φ_{ R } are penalized. Hence, the intervals over which \(\dot{\Phi}_{R}\) is integrated are
where \(T_{s,u_{R}}^{i}={T}_{u_{R}}^{i}+{D}_{s,u_{R}}^{i}\) is used for a more compact notation. Analogously to the bangbang case, a linear condition for each of these intervals can be constructed using (47). If a switch has no singular arc, then \({{D}_{s,u_{R}}^{i}=0}\) and the corresponding interval vanishes. Hence, for bangsingular maneuvers, N _{ R }+N _{ s }+1 linear conditions on the constant vector c result. Compared to a bangbang maneuver, N _{ s } additional conditions are introduced.
Assuming that the thrust input u _{ T } does not switch at the edges of the singular intervals, \(\dot{\Phi}_{R}\) is continuous over the border of the singular arcs, as can be seen from (21). Consequently, the switching function Φ_{ R } enters and leaves a singular arc tangentially. We therefore impose the conditions that the derivative \(\dot{\Phi}_{R}\) is zero at the edges of every singular arc. For each singular arc, i.e. for each \({D}_{s,u_{R}}^{i}>0\), two additional conditions result:
The derivative of the rotational switching function is given by
which has been derived in Sect. 3. This is a linear function of the constants c, and yields 2N _{ s } additional conditions.
General condition matrix equation
In total, 4N _{ s } additional conditions have been identified. It follows that in the case of a bangsingular maneuver, the condition matrix equation
has N _{ c } rows, with a total number of conditions of
The condition matrix equation is overdetermined as soon as the maneuver has at least one singular arc.
9.4.3 BVP solver for bangsingular maneuvers
Similar to the algorithm for bangbang maneuvers, the final step is the reduction of errors through the application of a BVP solver. If the maneuver contains singular arcs, Φ_{ R } stays at zero for a nontrivial interval of time. Since the system is integrated numerically, Φ_{ R } is near zero during the singular arcs, but does not vanish completely due to numerical inaccuracies. As Φ_{ R } enters and leaves the singular arcs tangentially, defining a threshold value below which Φ_{ R } is considered to be zero is not a straightforward task. For this reason, the rotational control trajectory u _{ R } is not determined using the optimal control law (i.e. based on its switching function Φ_{ R }), but is based on the sets \(\{{T}_{u_{R}}\}\) and \(\{{D}_{s,u_{R}}\}\). Consequently, \(\{{T}_{u_{R}}\}\) and \(\{{D}_{s,u_{R}}\}\) are optimizing variables during the BVP minimization, because they impact the control trajectory u. Further, since the switching times of u _{ R } are not determined based on the constants c, the optimal control laws are not implicitly satisfied. One must thus ensure that the condition matrix equation is fulfilled, which is the case if C _{ res } vanishes. Thus, as during the switching time optimization, the sum of the state residual P _{ res } and the condition residual C _{ res } is minimized. The BVP solver problem for bangsingular maneuvers becomes
where the control trajectory u _{ R } is computed according to the switching times and singular arc durations, and u _{ T } according to the optimal control law (30). Note that the arguments \((\{{T}_{u_{R}}\},\{{D}_{s,u_{R}}\},\mathbf{c},{T})\) of P _{ res } and C _{ res } have been omitted for reasons of clarity.
In the BVP Solver step, the N _{ T } linear conditions resulting from the thrust input are trivially satisfied, because u _{ T } is computed based on its switching function Φ_{ T }. Hence, when the matrix condition equation is computed for the evaluation of C _{ res } during the BVP minimization, it has only
rows, since the conditions resulting from u _{ T } can be neglected.
For bangsingular maneuvers, the BVP solver is similar to the STO. The only differences are that the thrust input u _{ T } is determined based on its control law (30), and that the maneuver duration T is an optimization variable, too, and not kept constant during the minimization of P _{ res }+C _{ res }.
Because u _{ R } is not determined by its control law, and since a vanishing condition residual C _{ res } does not guarantee that the control law holds, it is necessary to verify that the control law (24) is satisfied by inspecting the switching function Φ_{ R }.
If the residuals P _{ res } and C _{ res } are sufficiently small after the minimization, and if the control law for the rotational input u _{ R } is fulfilled, then the maneuver is a solution to BVP (32), and therefore satisfies the minimum principle with respect to timeoptimality.
Rights and permissions
About this article
Cite this article
Hehn, M., Ritz, R. & D’Andrea, R. Performance benchmarking of quadrotor systems using timeoptimal control. Auton Robot 33, 69–88 (2012). https://doi.org/10.1007/s1051401292823
Received:
Accepted:
Published:
Issue Date:
Keywords
 Aerial robotics
 Motion planning and control
 Quadrotor control
 UAV design
 Benchmarking of UAV controllers