martk
April 21, 2020, 6:20am
1
Hi,
setting the regularization method to ‘project_reduc_hess’ crashes Matlab. Maybe a bug?
The last entries of the stack trace are:
Stack Trace (from fault):
[ 0] 0x00007fb79d8b8509 /home/martin/Programs/acados/lib/libblasfeo.so+00177417 blasfeo_dgead+00000009
[ 1] 0x00007fb79df85d55 /home/martin/Programs/acados/lib/libacados.so+00183637 ocp_nlp_reg_project_reduc_hess_regularize_hessian+00001349
[ 2] 0x00007fb79df87bdf /home/martin/Programs/acados/lib/libacados.so+00191455 ocp_nlp_sqp+00002367
[ 3] 0x00007fb79dfb16c5 /home/martin/Programs/acados/lib/libacados.so+00362181 ocp_nlp_solve+00000037
BR
Martin
1 Like
FreyJo
April 21, 2020, 9:32am
2
Hi Martin,
could you post a minimal example to reproduce this somewhere?
Just from the stack trace, it is not clear what the problem is.
Best,
Jonathan
martk
April 28, 2020, 7:44pm
3
Hi Jonathan,
unfortunately I could not find a minimal example where I can reproduce the error so far.
However, while experimenting with the Matlab/Octave example “masses_chain_model/example_closed_loop” I found a parameter combination which causes a Matlab crash during build-time instead of the crash during solver runtime which happens in my project. The stack trace is completely different, so I guess it has nothing to do with my original problem.
Uncommenting
ocp_nlp_solver = 'sqp';
regularize_method = 'project_reduc_hess';
in the above mentioned file leads to the crash on my machine.
BR
Martin
FreyJo
April 29, 2020, 9:00am
4
Hi Martin,
In what you reported, the example crashes due to:
ocp.set('rti_phase', 1);
ocp.solve();
ocp.set('rti_phase', 2);
which does not make sense for SQP, only for SQP_RTI.
I added a check for this yesterday, so it should already be fixed on acados/master
.
committed 09:19AM - 28 Apr 20 UTC
Best,
Jonathan
martk
April 29, 2020, 11:53am
5
What are those “rti_phases”? Is this documented somewhere?
Best
Martin
FreyJo
April 29, 2020, 12:06pm
6
Not on the webpage yet, but in the Code, e.g. here:
obj.opts_struct.nlp_solver = 'sqp';
obj.opts_struct.nlp_solver_exact_hessian = 'false';
obj.opts_struct.nlp_solver_max_iter = 100;
obj.opts_struct.nlp_solver_tol_stat = 1e-6;
obj.opts_struct.nlp_solver_tol_eq = 1e-6;
obj.opts_struct.nlp_solver_tol_ineq = 1e-6;
obj.opts_struct.nlp_solver_tol_comp = 1e-6;
obj.opts_struct.nlp_solver_ext_qp_res = 0; % compute QP residuals at each NLP iteration
obj.opts_struct.nlp_solver_step_length = 1.0; % fixed step length in SQP algorithm
obj.opts_struct.rti_phase = 0; % RTI phase: (1) preparation, (2) feedback, (0) both
obj.opts_struct.qp_solver = 'partial_condensing_hpipm';
obj.opts_struct.qp_solver_iter_max = 50;
% obj.opts_struct.qp_solver_cond_N = 5; % New horizon after partial condensing
obj.opts_struct.qp_solver_cond_ric_alg = 0; % 0: dont factorize hessian in the condensing; 1: factorize
obj.opts_struct.qp_solver_ric_alg = 0; % HPIPM specific
obj.opts_struct.qp_solver_warm_start = 0;
% 0 no warm start; 1 warm start primal variables; 2 warm start primal and dual variables
obj.opts_struct.warm_start_first_qp = 0;
% 0 no warm start in first sqp iter - 1 warm start even in first sqp iter
obj.opts_struct.sim_method = 'irk'; % erk; irk; irk_gnsf
rti_phase = 0; % RTI phase: (1) preparation, (2) feedback, (0) both
martk
May 15, 2020, 8:35am
7
The Matlab crash with regularization method ‘project_reduc_hess’ does not occur any more. It seems that it has been incidentally fixed by one of your last commits.
Greetings
Martin
1 Like