List of Options

For convenience, we provide a list of options in the ALTRO solver, along with a brief description:

OptionDescriptionImportanceDefault
constraint_toleranceAll constraint violations must be below this value.High1e-6
cost_toleranceThe difference in costs between subsequent iterations must be below this value.High1e-4
cost_tolerance_intermediateCost tolerance for intermediate iLQR solves. Can speed up convergence by increase to 10-100x the cost_tolerance.Med1e-4
gradient_toleranceTolerance for 2-norm of primal optimality residual.Low1
gradient_tolerance_intermediatePrimal optimality residual tolerance for intermediate solve.Low10
iterations_innerMax iLQR iterations per iLQR solve.Med300
dJ_counter_limitMax number of times iLQR can fail to make progress before exiting.Low10
square_rootEnable the square root backward pass for improved numerical conditioning (WIP).Medfalse
line_search_lower_boundLower bound for Armijo line search.Low1e-8
line_search_upper_boundUpper bound for Armijo line search.Low10.0
iterations_linesearchMax number of backtracking steps in iLQR line searchLow20
max_cost_valueMaximum cost value. Will terminate solve if cost exeeds this limit.Low1e8
max_state_valueMaximum value of any state. Will terminate solve if any state exeeds this limit.Low1e8
max_control_valueMaximum value of any control. Will terminate solve if any control exeeds this limit.Low1e8
static_bpEnable the static backward pass. Only advisable for state + control dimensions < 20. Turn off if compile time is exessive.Lowtrue
save_SSave the intermediate cost-to-go expansions in the iLQR backward pass.Lowfalse
bp_regEnable iLQR backward pass regularization (WIP).Medfalse
bp_reg_initialInitial backward pass regularization.Low0.0
bp_reg_increase_factorMultiplicative factor by which the regularization is increased.Low1.6
bp_reg_maxMaximum regularization.Low1e8
bp_reg_minMinimum regularization.Low1e-8
bp_reg_fpAmount of regularization added when foward pass failsLow10.0
penalty_initialInitial penalty term on all constraints. Set low if the unconstrained solution is a good approximate solution to the constrained problem, and high if the initial guess provided is a good esimate. If NaN uses values in each constraint param, which defaults to 1.0.Very HighNaN
penalty_scalingMultiplicative factor by which the penalty is increased each outer loop iteration. High values can speed up convergence but quickly lead to poor numerical conditioning on difficult problems. Start with small values and then increase.If NaN defaults to 10 in the per-constraint parameter.Very HighNaN
iterations_outerMax number of outer loop (Augmented Lagrangian) iterations.Med30
verbose_pnTurn on printing in the projected newton solver.Lowfalse
n_stepsMaximum number of projected newton steps.Low2
projected_newton_toleranceConstraint tolerance at which the solver will exit the Augmented Lagrangian solve and start the projected newton solve. Typically sqrt(constraint_tolerance)High1e-3
active_set_tolerance_pnTolerance for the active constraints during the projected newton solve. Includes some barely satisfied constraints into the active set. Can fix singularity issues during projected newton solve.Med1e-3
multiplier_projectedEnable updating the dual variables during the projected newton solve. Also provides a calculation of the optimality residual in the stats output.Lowtrue
ρ_cholRegularization on the projected newton Cholesky solve.Med1e-2
ρ_primalRegularization on the primal variables during the projected newton solve. Required if cost Hessian is positive-semi-definite.Low1e-8
ρ_dualRegularization on the dual variables during the multiplier projection step.Low1e-8
r_thresholdImprovement ratio threshold for projected newton solve. If the ratio of constraint violations between subsequent steps is less than this value, it will update the cost and constraint expansionsLow1.1
projected_newtonEnable projected newton solve. If enabled, projected_newton_solve is used as the constraint_tolerance for the AL-iLQR solve. Projected newton solve is still a WIP and not very robust.Hightrue
iterationsMax number of total iterations (iLQR + projected newton).Med1000
verboseControls output during solve. 0 is zero output, 1 outputs AL iterations, and 2 outputs both AL and iLQR iterationsLow0