  This paper presents the SCvx algorithm, a successive convexification
algorithm designed to solve non-convex constrained optimal control problems
with global convergence and superlinear convergence-rate guarantees. The
proposed algorithm can handle nonlinear dynamics and non-convex state and
control constraints. It solves the original problem to optimality by
successively linearizing non-convex dynamics and constraints about the solution
of the previous iteration. The resulting convex subproblems are numerically
tractable, and can be computed quickly and reliably using convex optimization
solvers, making the SCvx algorithm well suited for real-time applications.
Analysis is presented to show that the algorithm converges both globally and
superlinearly, guaranteeing i) local optimality recovery: if the converged
solution is feasible with respect to the original problem, then it is also a
local optimum; ii) strong convergence: if the Kurdyka-Lojasiewicz (KL)
inequality holds at the converged solution, then the solution is unique. The
superlinear rate of convergence is obtained by exploiting the structure of
optimal control problems, showcasing that faster rate of convergence can be
achieved by leveraging specific problem properties when compared to generic
nonlinear programming methods. Numerical simulations are performed for a
non-convex quad-rotor motion planning problem, and corresponding results
obtained using Sequential Quadratic Programming (SQP) and general purpose
Interior Point Method (IPM) solvers are provided for comparison. The results
show that the convergence rate of the SCvx algorithm is indeed superlinear, and
that SCvx outperforms the other two methods by converging in less number of
iterations.
