Advertisement

Performance benchmarking of quadrotor systems using time-optimal control

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 time-optimality. 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 two-dimensional first-principles quadrotor model. The minimum principle is applied to this model to find that time-optimal trajectories are bang-bang in the thrust command, and bang-singular in the rotational rate control. This paper presents a procedure allowing the computation of time-optimal 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.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12

Notes

  1. 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. 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. 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. 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

  1. Bernstein, D. S. (2005). Matrix mathematics. Princeton: Princeton University Press.

  2. Bertsekas, D. P. (2005). Dynamic programming and optimal control Vol. I (3rd edn.). Athena Scientific.

  3. 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.

  4. Bouktir, Y., Haddad, M., & Chettibi, T. (2008). Trajectory planning for a quadrotor helicopter. In Proceedings of the Mediterranean conference on control and automation.

  5. 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.

  6. Dahlquist, G., & Björck, A. (2003). Numerical methods. New York: Dover.

  7. Geering, H. P. (2007). Optimal control with engineering applications. Berlin: Springer.

  8. Gurdan, D., Stumpf, J., Achtelik, M., Doth, K. M., Hirzinger, G., & Rus, D. (2007). Energy-efficient autonomous four-rotor flying robot controlled at 1 kHz. In Proceedings of the IEEE international conference on robotics and automation.

  9. Hehn, M., & D’Andrea, R. (2011). Quadrocopter trajectory generation and control. In Proceedings of the IFAC world congress.

  10. 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.

  11. 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.

  12. How, J. P., Bethke, B., Frank, A., Dale, D., & Vian, J. (2008). Real-time indoor autonomous vehicle test environment. IEEE Control Systems Magazine, 28(2), 51–64.

  13. 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.

  14. Lai, L. C., Yang, C. C., & Wu, C. J. (2006). Time-optimal control of a hovering quad-rotor helicopter. Journal of Intelligent & Robotic Systems, 45(2), 115–135.

  15. Ledzewicz, U., Maure, H., & Schattler, H. (2009). Bang-bang and singular controls in a mathematical model for combined anti-angiogenic and chemotherapy treatments. In Proceedings of the conference on decision and control.

  16. Lupashin, S., & D’Andrea, R. (2011). Adaptive open-loop aerobatic maneuvers for quadrocopters. In Proceedings of the IFAC world congress.

  17. Lupashin, S., Schöllig, A., Sherback, M., & D’Andrea, R. (2010). A simple learning strategy for high-speed quadrocopter multi-flips. In Proceedings of the IEEE international conference on robotics and automation.

  18. 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.

  19. Michael, N., Mellinger, D., Lindsey, Q., & Kumar, V. (2010). The GRASP multiple micro UAV testbed. IEEE Robotics & Automation Magazine, 17(3), 56–65.

  20. Pounds, P., Mahony, R., & Corke, P. (2006). Modelling and control of a quad-rotor robot. In Proceedings of the Australasian conference on robotics and automation.

  21. Purwin, O., & D’Andrea, R. (2011). Performing and extending aggressive maneuvers using iterative learning control. Robotics and Autonomous Systems, 59(1), 1–11.

  22. Roxin, E. (1962). The existence of optimal controls. The Michigan Mathematical Journal, 9(2), 109–119.

  23. 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.

  24. Zandvliet, M., Bosgra, O., Jansen, J., Vandenhof, P., & Kraaijevanger, J. (2007). Bang-bang control and singular arcs in reservoir flooding. Journal of Petroleum Science & Engineering, 58(1–2), 186–200.

Download references

Acknowledgements

This research was funded in part by the Swiss National Science Foundation (SNSF).

Author information

Correspondence to Markus Hehn.

Electronic Supplementary Material

Below is the link to the electronic supplementary material.

Performance benchmarking. (MP4 18.1 MB)

Performance benchmarking. (MP4 18.1 MB)

Performance benchmarking of quadrotor systems using time-optimal control. (TAR 2.4 MB)

Appendix: Algorithm for calculation of time-optimal maneuvers

Appendix: Algorithm for calculation of time-optimal 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.19.3, and then showing modifications for bang-singular maneuvers in Sect. 9.4.

Figure 13 shows a flowchart diagram of the algorithm for bang-bang maneuvers, and in the following, the three steps are introduced in detail.

Fig. 13
figure13

Flowchart diagram of the algorithm that computes bang-bang maneuvers satisfying the minimum principle. The three steps are presented in detail in Sects. 9.19.3. In this graph, ≈ is used to denote that the equation must be solved to acceptable accuracy

9.1 Switching time optimization

Due to the assumption that the optimal solution is a bang-bang 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

$$\begin{array}{l@{\quad}l}\{{T}_{u_R}\} = {T}_{u_R}^i & \hspace {7mm} \text{for}~i = 1,2,\dots,N_R, \\[3pt]\{{T}_{u_T}\} = {T}_{u_T}^j &\hspace{7mm} \text{for}~j = 1,2,\dots,N_T.\end{array} $$
(39)

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

$$P_{\mathit{res}}\bigl(\{{T}_{u_R}\},\{{T}_{u_T}\},{T}\bigr) = \bigl(\mathbf {x}({T}) - \mathbf {x}_T\bigr)^T W \bigl(\mathbf {x}({T}) - \mathbf {x}_T\bigr), $$
(40)

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

$$\begin{array}{l@{\quad}l}\multicolumn{2}{l}{\text{find} \quad \{{T}_{u_R}\}, \{{T}_{u_T}\}, {T}} \\[3pt]\text{subject to} & P_{\mathit{res}}\bigl(\{{T}_{u_R}\},\{{T}_{u_T}\},{T}\bigr) = 0, \\[3pt]& {T} \leq\{{T}\}_{ach},\end{array} $$
(41)

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 two-step 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 derivative-free optimization algorithms have shown to perform significantly better in this optimization). After the minimization, T is increased using the secant method

$${T}_{i+1} = {T}_i + \frac{{T}_i-{T}_{i-1}}{(P_{\mathit{res},i-1}/P_{\mathit{res},i})-1}, $$
(42)

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 bang-bang 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

$$\Phi_R\bigl({T}_{u_R}^i\bigr) = 0 \quad \text{for}~i =1,2,\dots,N_R. $$
(43)

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 time-optimal) can be used to compute Φ R . Recalling the Hamiltonian (14) and using the definition Φ R =p 5 yields

$$\Phi_R = \frac{1 + p_1 \dot{{x}} + p_2 u_T\sin{\theta } + p_3 \dot{{z}} + p_4 (u_T\cos{\theta} - 1)}{ -u_R}. $$
(44)

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:

(45)

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],

(46)

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

(47)

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.

$$[0,{T}] = \bigcup\bigl\{\bigl[0,{T}_{u_R}^1\bigr],\bigl[{T}_{u_R}^1,{T}_{u_R}^2\bigr],\dots,\bigl[{T}_{u_R}^{N_R},T\bigr] \bigr\}. $$
(48)

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

$$\Phi_T\bigl({T}_{u_T}^i\bigr) = 0 \quad \text{for}~i =1,2,\dots,N_T $$
(49)

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:

$$\Phi_T = -c_1 t \sin{\theta} + c_2 \sin{\theta} - c_3 t \cos{\theta} + c_4 \cos{\theta}. $$
(50)

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

$$A \mathbf{c} = r. $$
(51)

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:

$$N_c = 2N_R + N_T + 1. $$
(52)

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

$$\mathbf{c}^* = \bigl(A^T A\bigr)^{-1} A^T r. $$
(53)

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 time-optimal 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

$$\begin{array}{l@{\quad}l}\multicolumn{2}{l}{\text{minimize} \quad P_{\mathit{res}}(\mathbf{c},{T})} \\[3pt]\text{subject to} & \dot{\mathbf{x}}_a = f_a({t},\mathbf{x}_a), \\[3pt]& \mathbf{x}_a(0) = \bigl(\mathbf {x}_0,\Phi_R(0)\bigr). \\\end{array} $$
(54)

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 bang-singular 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 time-optimal maneuver is bang-singular, 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. 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. 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 bang-singular solutions.

Fig. 14
figure14

Flowchart diagram of the algorithm to compute bang-singular maneuvers that satisfy the minimum principle. The symbol ≈ is used to denote that the equation must be solved to acceptable accuracy

9.4.1 Switching time optimization with embedded parameter extraction

For bang-singular 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 bang-singular maneuver is characterized by the sets

$$\begin{array}{l@{\quad}l}\{{T}_{u_R}\} = {T}_{u_R}^i &\text{for}~i = 1,2,\dots,N_R, \\[3pt]\{{D}_{s,u_R}\} = {D}_{s,u_R}^i&\text{for}~i = 1,2,\dots,N_R, \\[2pt]\{{T}_{u_T}\} = {T}_{u_T}^j &\text{for}~j = 1,2,\dots,N_T.\end{array} $$
(55)

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

(56)

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

$$C_{\mathit{res}}\bigl(\{{T}_{u_R}\},\{{T}_{u_T}\},\{{D}_{s,u_R}\},\mathbf{c},{T}\bigr) = (A \mathbf{c} -r)^T W_c (A \mathbf{c} - r), $$
(57)

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 bang-singular maneuvers can be written as

$$\begin{array}{l@{\quad}l}\multicolumn{2}{l}{\text{find} \quad \{{T}_{u_R}\}, \{{T}_{u_T}\}, \{{D}_{s,u_R}\}, \mathbf{c},{T}} \\[3pt]\text{subject to} & P_{\mathit{res}}(\{{T}_{u_R}\},\{{T}_{u_T}\},\{{D}_{s,u_R}\},\mathbf {c},{T}) = 0, \\[3pt]& C_{\mathit{res}}(\{{T}_{u_R}\},\{{T}_{u_T}\},\{{D}_{s,u_R}\},\mathbf{c},{T}) = 0, \\[3pt]& {T} \leq\{{T}\}_{ach},\end{array} $$
(58)

where {T} ach denotes the set of all T for which P res =0 and C res =0 is achievable.

For bang-singular 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 bang-singular maneuvers

For the parameter extraction of bang-singular 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 bang-singular maneuvers, the rotational switching function Φ R must not only have a zero-crossing 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:

$$\begin{array}{l@{\quad}l}\Phi_R\bigl({T}_{u_R}^i\bigr) = 0 & \text{for}~i =1,2,\dots,N_R, \\[3pt]\Phi_R\bigl({T}_{u_R}^i+{D}_{s,u_R}^i\bigr) = 0 &\text{for}~i = 1,2,\dots,N_R.\end{array} $$
(59)

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 bang-bang 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 bang-bang maneuvers. For bang-singular 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

$$\begin{array}{rcl}[0,{T}] & = & \bigcup\bigl\{\bigl[0,{T}_{u_R}^1\bigr],\bigl[{T}_{u_R}^1,T_{s,u_R}^1\bigr],\bigl[T_{s,u_R}^1,{T}_{u_R}^2\bigr],\dots\\[6pt]& & \hphantom{\bigcup\bigl\{} \dots,\bigl[T_{s,u_R}^{N_R-1},{T}_{u_R}^{N_R}\bigr],\bigl[{T}_{u_R}^{N_R},T_{s,u_R}^{N_R}\bigr],\bigl[T_{s,u_R}^{N_R},T\bigr] \bigr\},\end{array} $$
(60)

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 bang-bang 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 bang-singular maneuvers, N R +N s +1 linear conditions on the constant vector c result. Compared to a bang-bang 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:

$$\begin{array}{l@{\quad}l}\dot{\Phi}_R\bigl({T}_{u_R}^i\bigr) = 0 &\text{for}~i = 1,2,\dots,N_s, \\[3pt]\dot{\Phi}_R\bigl({T}_{u_R}^i+{D}_{s,u_R}^i\bigr)= 0 & \text{for}~i = 1,2,\dots,N_s .\end{array} $$
(61)

The derivative of the rotational switching function is given by

$$\dot{\Phi}_R = (c_1 {t} - c_2)u_T\cos{\theta} + (c_4 - c_3 {t})u_T\sin{\theta}, $$
(62)

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 bang-singular maneuver, the condition matrix equation

$$A \mathbf{c} = r $$
(63)

has N c rows, with a total number of conditions of

$$N_c = 2N_R + N_T + 4N_s + 1. $$
(64)

The condition matrix equation is overdetermined as soon as the maneuver has at least one singular arc.

9.4.3 BVP solver for bang-singular maneuvers

Similar to the algorithm for bang-bang 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 bang-singular maneuvers becomes

$$\begin{array}{l@{\quad}l}\multicolumn{2}{l}{\text{minimize}\quad P_{\mathit{res}} + C_{\mathit{res}}} \\[3pt]\text{subject to} & \dot{\mathbf{x}} = f(\mathbf {x},\mathbf {u}), \\[3pt]& \mathbf {x}(0) = \mathbf {x}_0,\end{array} $$
(65)

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

$$N_{c,u_R} = 2N_R + 4N_s + 1 $$
(66)

rows, since the conditions resulting from u T can be neglected.

For bang-singular 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 time-optimality.

Rights and permissions

Reprints and Permissions

About this article

Cite this article

Hehn, M., Ritz, R. & D’Andrea, R. Performance benchmarking of quadrotor systems using time-optimal control. Auton Robot 33, 69–88 (2012). https://doi.org/10.1007/s10514-012-9282-3

Download citation

Keywords

  • Aerial robotics
  • Motion planning and control
  • Quadrotor control
  • UAV design
  • Benchmarking of UAV controllers