Algorithm overview¶
This page is work in progress..
Regularization¶
The Hessian of the QP is computed in the ocp_nlp_sqp
, ocp_nlp_sqp_rti
module respectively.
The following steps are carried out:
ocp_nlp_approximate_qp_matrices()
sets all Hessian blocks to 0.0
for
i in range(N+1)
if
i<N:
add to the diagonal of the Hessian of block
i
the termin->Ts[i] * opts->levenberg_marquardt
add the contribution of the dynamics module (can be turned off via
exact_hess_dyn
)
if
i==N:
add to the diagonal of the Hessian of block
N
the termopts->levenberg_marquardt
.
add the cost contribution to the Hessian
Gauss-Newton Hessian (available in least-squares case)
or exact Hessian (always used with
EXTERNAL
cost module) if no “custom hessian” is set (seecost_expr_ext_cost_custom_hess
,cost_expr_ext_cost_custom_hess_0
,cost_expr_ext_cost_custom_hess_e
)
add the inequality constraints contribution to the Hessian (can be turned off via
exact_hess_constr
)
call the regularization module (
regularize_hessian
, seeregularize_method
)