Hello,
I am trying to run a min time problem for a dubins vehicle going from x0 to xf.
We are also using parallel workers/pool in a MATLAB environment. This seems to have forced me to build once at a high level with minimal settings and then passing off just the ocp structure to each worker as an input to the parfeval MATLAB function. We then use the following to tell each worker to do a minimal build to get their own ocp_solver object. This has been allowing for fast execution on each call.
build_opts = struct();
build_opts.build = false;
build_opts.generate = false;
build_opts.compile_mex_wrapper = false;
build_opts.compile_interface = false;
ocp_solver = AcadosOcpSolver(ocp, build_opts);
After that, we use the ocp_solver.set command to populate the remaining needed values that change over many calls/solves
Our issue is that ocp_solver.set does not seem to support some of the values, like cost_yref_0, constr_lbx_0, etc. For example, this command ….
ocp_solver.set('cost_y_ref_0',[x0(1); x0(2); x0(3); 0])
… causes the following error:
identifier: ''
message: 'ocp_set: field cost_y_ref_0 not supported, supported values are:...'
cause: {}
stack: [7x1 struct]
Correction: []
Error Message:
ocp_set: field cost_y_ref_0 not supported, supported values are:
p, constr_x0, constr_lbx, constr_ubx, constr_C, constr_D, constr_lg, constr_ug, constr_lh, constr_uh, constr_lbu, constr_ubu, cost_y_ref[_e], sl, su, x, xdot, u, pi, lam, z, cost_Vu, cost_Vx, cost_Vz, cost_W, cost_Z, cost_Zl, cost_Zu, cost_z, cost_zl, cost_zu, init_x, init_u, init_z, init_xdot, init_gnsf_phi, init_pi, nlp_solver_max_iter, qp_warm_start, qp_solver_mu0, qp_print_level, warm_start_first_qp, print_level
Is there a way around this? Does the Python interface have more flexibility? Maybe another way to formulate a min time problem while still enforcing an ‘initial position constraint’?
Thanks!