Nonlinear Trajectory Optimization Problems
Unconstrained Problems
Lets return to the unconstrained trajectory optimization problem The simplest way to solve this problem is using sequential quadratic programming (SQP). As the name suggest the approach involves forming a sequence of quadratic programs. These programs have the same same structure as the linear-quadratic problem which is achieved by evaluating Taylor expansions of cost functions (second-order) and the system’s dynamics (first-order). If we consider a nominal trajectory , (not necessarily dynamically feasible) we may linearize the system’s dynamics along it where and also, using the same notation, create quadratic approximations of the final and running cost Provided an initial nominal trajectory the SQP algorithm repeatedly solves the problem producing an update , to the nominal trajectory in a manor that is not dissimilar to the Newton method for unconstrained optimization. Ideally the nominal trajectory can be updated at every iteration using but typically line-search strategies must be used. Also the quadratic problem is not necessarily convex in which case it must be regularized. The problem (2) itself has the same exact form of the unconstrained linear-quadratic problem we previously described so once line-search and regularization are handled, we can use the same exact techniques.
Constrained Problems
Similarly to how we linearized the system’s dynamics it is common to also linearize additional constraints, e.g. However, for some types of constraints, such as second-order cones, there are specialized ways in which they can be effectively handled (see ADMM).
Due to the special structure of the trajectory optimization problem, many specialized solvers capable of handling additional constraints exist. As nonlinear MPC is still extremely computationally demanding these solvers are tailored to handle specific types of constraints, also making deliberate choices when it comes to how the algorithms converge (Altro, Crocoddyl, MJPC).