Altro.jl Documention
Overview
ALTRO (Augmented Lagrangian TRajectory Optimizer) is a fast solver for solving nonlinear, constrained trajectory optimization problems of the form:
where is either the negative orthant or the second-order cone.
ALTRO uses iterative LQR (iLQR) as the primary solver, which is used to generate locally-optimal linear feedback policies and satisfy the nonlinear dynamics constraints. Generic stage-wise state and control constraints are handled using an augmented Lagrangian.
Once the augmented Lagrangian solver has converged to coarse tolerances, ALTRO can switch to an active-set projected Newton phase that provides fast convergence to tight constraint satisfaction.
ALTRO has demonstrated state-of-the-art performance for convex conic MPC problems, beating SOCP solvers such as Mosek, ECOS, and SCS. For quadratic MPC problems, ALTRO has performance on-par or better than OSQP.
ALTRO builds off the interfaces provided by TrajectoryOptimization.jl and RobotDynamics.jl. Please see the documentation for those packages for a more in-depth treatment of defining dynamics models and setting up trajectory optimization problems. The purpose of this documentation is to provide insight into the ALTRO algorithm, it's Julia implementation, and the options this solver provides.