Solver Options
Like any nonlinear programming solver, ALTRO comes with a host of solver options. While the default values yield good/acceptable performance on many problem, extra performance can always be gained by tuning these parameters. In practice, there are only a few parameters that need to be tuned. See the AL-iLQR Tutorial for more details.
The ALTRO solver is actually a composition of several different solvers with their own options. Early versions of Altro.jl required the user to manipulate a rather confusing heirarchy of solver options. Newer versions of Altro.jl provide a single options struct that dramatically simplifies setting and working with the solver parameters.
Setting Solver Options
Solver options can be specified when the solver is instantiated or afterwards using
the set_options! command. If we have a previously constructed Problem, this looks
like
solver = ALTROSolver(prob, verbose=1, constraint_tolerance=1e-3, square_root=true)
Alternatively, solver options can be set using the set_options! command after the
solver has been instantiated:
set_options!(solver, reset_duals=true, penalty_initial=100, penalty_scaling=50)
Querying Solver Options
The options struct for the ALTROSolver can be directly accessed via solver.opts or
Altro.options(solver). Options can be directly set or retrieved from this mutable
struct.