# Sequential Convex Programming for Nonlinear Optimal Control in UAV Trajectory Planning
## 1 Introduction
Two recent reviews [22; 23] provide diverse research on motion planning for Unmanned Aerial Vehicles (UAVs). The complexity of trajectory generation is exacerbated by the under-actuated and nonlinear dynamics of the quadcopter and the challenging task of modeling aerodynamics (see [24; 25] for studies on aerodynamic effects and [3] for a learning-based compensation technique). In [26], collision-free trajectories are computed to guide a fleet of UAVs from their starting positions to their destination positions, ensuring that the trajectories maintain a minimum separation distance while minimizing the total thrust produced by the quadcopters. The rapid solutions are obtained using sequential convex programming, with times in the range of seconds. In [27], the paper presents a convex programming approach for a fuel-optimal powered landing problem in the presence of aerodynamic drag forces and new types of non-convex control constraints. Based on the classical methods proposed in the above literature, the mature business software [28] solves the linear problem quickly and effectively. Other methods treat the optimal control problem as a general nonlinear programming problem to better describe the actual model. However, in practice, it is of great difficulty to obtain a solution to nonlinear programming because of its nature, unbounded operation time, and the requirement for an initial guess, which should be provided by humans. Furthermore, the solution has the chance to be a local optimal rather than a global. Due to the above reasons, treating the optimal control problem as a general nonlinear programming approach for solving is not appropriate for onboard applications. To solve nonlinear programming stably and quickly is the primary goal of this paper. Conversely, the problem is solved perfectly if the nonlinear programming can be transformed into convex programming without losing the optimal solution. Here, the local optimal and global optimal are identical, and the solution time is bounded, therefore an initial prediction is unnecessary. Unfortunately, the transformation cannot be identical, and the optimality or the equivalence must be removed. The solution to the approximated problem, which identifies a key point of the original problem, is a feasible alternative. So, we need to find a convex programming formulation or a series of convex programming formulations whose solutions correspond to key points of the original problem. Approximation methodology plays a key role in the process. Regarding the above issue, this paper proposes an algorithm that iteratively uses convex optimization to approximate non-convex optimization. The trajectory planning problem we considered involves solving the trajectory tracking problem using optimization techniques. There are various existing categories of optimization algorithms, such as convex optimization, non-convex optimization, etc. The primary objective of this work was to design and implement a sequential convex programming algorithm (SCP) for quadrotor trajectory planning. Sequential convex programming can be categorized as a non-convex optimization algorithm. Such methods rely on constructingconvex sub-problems via successive linearizations of the original (nonlinear) objective functions and constraints. The resulting sub-problems become convex optimization subproblems, which are typically solved by existing convex programming solvers. Sequential convex programming (SCP) is a technique employed to plan trajectories for numerous agents in three-dimensional (3D) space [29]. The objective is to transition from an initial set of states, including each vehicle's position, velocity, and acceleration, to a final set of states. This must be done while maintaining a minimum distance between the agents and satisfying additional trajectory constraints. The methodology is implemented on quadcopters (Figure 1) but can be easily adapted for various platforms by adjusting the constraints.