  This paper presents a Successive Convexification ($ \texttt{SCvx} $)
algorithm to solve a class of non-convex optimal control problems with certain
types of state constraints. Sources of non-convexity may include nonlinear
dynamics and non-convex state/control constraints. To tackle the challenge
posed by non-convexity, first we utilize exact penalty function to handle the
nonlinear dynamics. Then the proposed algorithm successively convexifies the
problem via a $ \textit{project-and-linearize} $ procedure. Thus a finite
dimensional convex programming subproblem is solved at each succession, which
can be done efficiently with fast Interior Point Method (IPM) solvers. Global
convergence to a local optimum is demonstrated with certain convexity
assumptions, which are satisfied in a broad range of optimal control problems.
The proposed algorithm is particularly suitable for solving trajectory planning
problems with collision avoidance constraints. Through numerical simulations,
we demonstrate that the algorithm converges reliably after only a few
successions. Thus with powerful IPM based custom solvers, the algorithm can be
implemented onboard for real-time autonomous control applications.
