8000 Releases Β· acados/acados Β· GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Releases: acados/acados

v0.5.0

02 May 10:07
fd23110
Compare
Choose a tag to compare

Highlights

Breaking changes

C interface:

Changes introduced in #1333

  • ocp_nlp_out_set now requires nlp_in as additional argument
  • ocp_nlp_constraints_model_set now requires nlp_out as additional argument
  • ocp_nlp_out needs to be created before ocp_nlp_in

What's Changed

Full Changelog: v0.4.5...v0.5.0

v0.4.5

08 Apr 11:08
0285deb
Compare
Choose a tag to compare

Highlights

  • New regularization method: Gershgorin Levenberg Marquardt regularization #1473
  • More granular error handling in python #1478

What's Changed

New Contributors

Full Changelog: v0.4.4...v0.4.5

v0.4.4

17 Mar 15:40
5c98c31
Compare
Choose a tag to compare

Highlights

  • New nlp_solver_type: SQP_WITH_FEASIBLE_QP, see #1444
  • Solution of smoothed KKT systems, see option tau_min and #1439
  • Improved solution sensitivity functionality, see function setup_qp_matrices_and_factorize #1434

What's Changed

New Contributors

Full Changelog: v0.4.3...v0.4.4

v0.4.3

02 Dec 13:07
09ffc3a
Compare
Choose a tag to compare

Highlight

Breaking changes

Python:

  • The return type of eval_solution_sensitivity has changed: The function now return a dict with fields sens_x, sens_u, sens_pi, sens_lam, sens_su, sens_sl if the corresponding flag has been set.
  • The default types of fields in AcadosModel that might be CasADi symbolics or expressions have changed to [].

What's Changed

  • MATLAB: fix globalization related options in legacy interface by @FreyJo in #1374
  • Fix globalization timing: include last call in SQP and DDP; fix for SQP_RTI by @FreyJo in #1376
  • MOCP template: fix print, remove outdated TODO by @FreyJo in #1379
  • Python: optional parametrization of W when reformulating (non)linear least-squares cost as external cost by @sandmaennchen in #1377
  • Python: Q-function gradient wrt u by @sandmaennchen in #1380
  • Python: allow getting sensitivities wrt. pi, lam, sl, su by @sandmaennchen in #1381
  • Python: use [] as default for CasADi expressions consistently by @FreyJo in #1382
  • Update Octave installation instructions by @FreyJo in #1384
  • Python: improve globalization test by @FreyJo in #1386
  • Python/Matlab: More efficient code generation for MOCP models by @sandmaennchen in #1383
  • MATLAB: improve comment in example by @sandmaennchen in #1387
  • Documentation: User guide and feature by example list by @FreyJo in #1375
  • Globalization Matlab Example by @david0oo in #1388
  • Simulink: investigated copy elimination, enforce more checks in test by @FreyJo in #1391
  • MATLAB: check values in idxbx[_0,_e] and idxbu by @josipkh in #1390

Full Changelog: v0.4.2...v0.4.3

v0.4.2

26 Nov 09:14
d49d47e
Compare
Choose a tag to compare

Highlights

  • more efficient handling of global parameters
  • full support for forward and adjoint solution sensitivities for OCPs with parametric external cost, parametric constraints and parametric discrete dynamics
  • faster solver initialization with flat setters and getters
  • solver timeout
  • more functionality for the batch OCP solver

Breaking changes

C interface

  • remove ocp_nlp_solver_opts_update, opts_update is called in
    ocp_nlp_solver_create
  • cleanup of redundant signatures:
    • signature of ocp_nlp_get_from_iterate changes (takes solver and not solver AND dims)
    • signature of ocp_nlp_set changes (takes solver and not solver AND config)
    • signature of ocp_nlp_get changes (takes solver and not solver AND config)
    • signature of ocp_nlp_get_at_stage changes (takes solver and not solver AND dims AND config)
  • setters for lb and ub have been removed

Python interface

  • concerns options with_solution_sens_wrt_params,with_solution_sens_wrt_params
  • eval_solution_sensitivity with argument with_respect_to ="params_global"
  • eval_and_get_optimal_value_gradient with argument with_respect_to = "params_global"
  • rename option with_respect_to='params_global' to 'p_global' with deprecation warning
  • Changed nlp_solver_type default from SQP_RTI to SQP

Matlab interface

  • Changed nlp_solver_type default from SQP_RTI to SQP

Simulink

  • output port KKT_residuals now also computes the residuals correctly in case of RTI.
    This can significantly increase the turnaround time of the Simulink block when the output port is activated!
  • Input ports lh, uh included the first stage, while there is a separate port for lh_0 an uh_0.
    Now the ports lh, uh only contain the intermediate stages 1 to N

What's Changed

  • Rework p_global to use global_data instead of memory pools by @FreyJo in #1313
  • C cleanup by @FreyJo in #1315
  • Migrate sensitivities of solution and value function of parameters to p_global by @FreyJo in #1316
  • Optimize global data by @FreyJo in #1317
  • Fix Make build system, add deprecation warning by @FreyJo in #1319
  • Fix memory corresponding to p_global in EXTERNAL cost module by @FreyJo in #1321
  • add checks in set_p_global_and_precompute_dependencies by @FreyJo in #1322
  • docs: build c_interface again, as it is included in interface_overview by @FreyJo in #1324
  • Cython wrapper: fix import typing by @FreyJo in #1329
  • Implement solver timeout functionality for SQP by @sandmaennchen in #1320
  • Fix escape-warnings in acados_template by @dirkpr in #1323
  • Minor cleanup by @josipkh in #1327
  • Python: Add translate functionality from LS/NLS/CONL cost to external cost by @sandmaennchen in #1330
  • Adjoint solution sensitivities with respect to global parameters by @FreyJo in #1331
  • Implement getter and setter for values of the whole horizon by @FreyJo in #1334
  • Python: Example improvements, fix checks regarding solution sensitivities by @FreyJo in #1335
  • Templated headers: remove get_pool_double by @FreyJo in #1336
  • Formatting: tabs to spaces by @FreyJo in #1339
  • CI: codeql use upload-artifact@v4 by @FreyJo in #1341
  • C interface, python: Flat setter and getter for stage-varying parameters p by @sandmaennchen in #1340
  • Update BLASFEO to remove POSIX alignment dependency by @FreyJo in #1342
  • Solution sensitivities refactoring by @FreyJo in #1343
  • New QP diagnostics function in acados_ocp_solver.py and adaptive_levenberg_marquardt in multi phase interface by @david0oo in #1338
  • C: work on constraint dimensions by @FreyJo in #1344
  • Fix get_residuals by @FreyJo in #1346
  • MOCP: fixes and test with parameters in MATLAB on CI by @FreyJo in #1347
  • Simulink: add lh, uh, lbx, ubx for MOCP; fix lh, uh in general by @FreyJo in #1348
  • C template/python: set_flat for AcadosOcpBatchSolver by @sandmaennchen in #1349
  • CI: Test with MATLAB on Windows by @sandmaennchen in #1332
  • Python: fix signature and docstring of eval_adjoint_solution_sensitivity by @FreyJo in #1350
  • Solution & value sensitivities with parametric constraints by @FreyJo in #1345
  • C: fix casadi_is_dense by @FreyJo in #1351
  • Fix value function sensitivities, add example varying parameters in certain direction on linear OCP by @FreyJo in #1352
  • Python iterates: expose in interface, implement flatten by @FreyJo in #1353
  • Fix function generation for convex-over-nonlinear constraints, add convex OCP example by @FreyJo in #1354
  • Python/C: Minor cleanup adjoint solution sens by @sandmaennchen in #1355
  • C templates/python: Batched version of adjoint solution sensitivities by @sandmaennchen in #1356
  • Add option cost_scaling in template based interfaces by @FreyJo in #1357
  • Update DAQP submodule by @darnstrom in #1358
  • C templates/python: Extend batch solver with load/store from/to flattenedd batch iterate by @sandmaennchen in #1360
  • Python: avoid calling ascontiguousarray, improve docstings by @FreyJo in #1361
  • Parametric sensitivities with linear least-squares cost by @FreyJo in #1362
  • Implement adjoint sensitivities for SQP-RTI and DDP by @FreyJo in #1363
  • Python: detect_constraint_structure by @aghezz1 in #1337
  • Python: fix type import by @sandmaennchen in #1364
  • MATLAB: Minor fixes in qp_diagnostics by @sandmaennchen in #1366
  • Sensitivities with parametric constraints: follow-up to #1345 by @FreyJo in #1368
  • MATLAB/python: QP diagnostic with consistent names by @sandmaennchen in #1367
  • Matlab: Fix funnel check and options by @sandmaennchen in #1369
  • Python & Matlab: use SQP by default by @FreyJo in #1370
  • Python: Cleanup of batch sensitivity example, vary p_global by @sandmaennchen in #1372
  • Python: improve check/warning on GN Hessian with EXTERNAL cost by @FreyJo in #1371

Full Changelog: v0.4.1...v0.4.2

v0.4.1

25 Oct 08:58
5f01e9c
Compare
Choose a tag to compare

Highlights

  • more functionality in Simulink: slacks, MOCP, p_global
  • smaller memory footprint due to workspace reuse of external functions
  • modularized globalization functionality
  • debug functionality: new option to store intermediate iterates

Breaking changes

Changes in MATLAB/Octave and python:

  • setting option rti_phase for NLP solvers other than SQP_RTI is not supported anymore.

Changes in C API:

  • external function creation methods external_function_*_create got an
    additional argument external_function_opts *opts_.
  • The functions: sim_solver_create, sim_solver_calculate_size,
    sim_solver_assign now need an additional argument sim_in *in, in
    order to make the external functions available when the memory is
    calculated and assigned.
  • The functions: sim_solver_create, sim_solver_calculate_size,
    sim_solver_assign now need an additional argument sim_in *in, in
    order to make the external functions available when the memory is
    calculated and assigned.
  • The function ocp_nlp_solver_create now needs an additional argument
    ocp_nlp_in *nlp_in, in order to make the external functions available
    when the memory is calculated and assigned.
  • With the introduction of the globalization module, all globalization-related options have been renamed: They now start with the prefix globalization_

What's Changed

Full Changelog: v0.4.0...v0.4.1

v0.4.0

16 Sep 11:51
4335444
Compare
Choose a tag to compare

Dear acados community πŸ‘‹

we are excited to announce acados v0.4.0 which comes with significant changes and lots of new features in particular for MATLAB users! πŸŽ‰

New MATLAB interface

The new MATLAB interface fully aligns the solver creation with the python interface for which extensive documentation is available. The solver creation through the legacy interface is still supported but will be deprecated in future releases. Please refer to our announcement in the forum for up-to-date instructions on how to port existing code to the new interface.

Please note that the alignment with the python interface comes with some changes in default values:

  • Default constraints type is now 'BGH'
  • default cost type is now 'LINEAR_LS'
  • qp_solver_ric_alg = 1
  • qp_solver_cond_ric_alg = 1
  • nlp_solver_max_iter = 100
  • dynamic defaults as in Python for: alpha_min, alpha_reduction, eps_sufficient_descent, eval_residual_max_iter, full_step_dual

Other breaking changes:

  • acados_ocp returns an AcadosOcpSolver object which no longer provides the fields model_struct and opts_struct, but the property ocp which is an object of type AcadosOcp

Global parameters with precomputation

With this release, the acados problem formulation is extended with global parameters. In contrast to the existing problem parameters, global parameters cannot change stage-wise and most importantly allow for precomputation, i.e. whenever global parameter values are updated all potentially expensive terms within the CasADi problem functions which only depend on these parameters are precomputed.

Multi-phase OCP solver in MATLAB

The multi-phase interface which was only available in python is now also supported by the MATLAB interface.

Breaking changes

In addition to the breaking changes listed above, this release introduces the following breaking changes:

  • python interface: rename AcadosSimOpts -> AcadosSimOptions
  • MATLAB interface: see above
  • The number of shooting nodes is now specified using AcadosOcp.solver_options.N_horion for both MATLAB and Python, previously via dims.N.

What's Changed

  • Matlab interface overhaul by @FreyJo in #1193
  • migrate dims.N to solver_options.N_horizon by @FreyJo in #1203
  • Matlab interface: improve error messages by @sandmaennchen in #1204
  • MATLAB: minor cleanup of examples, rewrite to new interface by @sandmaennchen in #1206
  • MATLAB: change default cost type from AUTO to BGH by @sandmaennchen in #1205
  • Matlab: Fix qp_diagnostics for partially condensed QP by @FreyJo in #1208
  • MALTAB: switch back to generated Make, keep using CMake on Octave by @FreyJo in #1210
  • Add option qp_solver_mu0 to AcadosOcpOptions by @FreyJo in #1214
  • Update HPIPM to version with new Matlab debug functionality by @FreyJo in #1212
  • Update jsonlab with improved error messages by @FreyJo in #1215
  • Add option qp_print_level for HPIPM solvers by @FreyJo in #1213
  • New MATLAB frontend: change defaults to match Python by @FreyJo in #1216
  • MATLAB multiphase OCP solver by @FreyJo in #1218
  • Correction: Torsion calculation in quadrotor_nav example by @JohnTGZ in #1217
  • Python: rename AcadosSimOpts -> AcadosSimOptions by @FreyJo in #1222
  • Python: cleanup example generic_disc_dyn by @sandmaennchen in #1225
  • MATLAB: custom update and zoRO interfacing by @FreyJo in #1223
  • No code generation for integrator and related files if dynamics are DISCRETE by @sandmaennchen in #1226
  • Update Simulink examples to be based on new interface by @FreyJo in #1228
  • Remove OCP related things in templated Make and CMake when creating integrators by @FreyJo in #1229
  • SQP: fix time_lin by including ocp_nlp_approximate_qp_vectors_sqp by @FreyJo in #1230
  • Include external function needed for ERK adjoints properly in solver templates by @FreyJo in #1231
  • MATLAB/Octave: add note on interfaces to examples by @sandmaennchen in #1232
  • Add vde_adj in make_sfun.in.m by @FreyJo in #1233
  • Add stage info in dynamics, cost and constraints submodules by @FreyJo in #1236
  • Fix compiler warning, forgot to change header in #1236 by @FreyJo in #1238
  • Add p_global to problem formulation in Python by @FreyJo in #1234
  • Update problem formulation by @sandmaennchen in #1221
  • A few typo fixes and minor changes in the problem formulation document by @josipkh in #1242
  • MATLAB: fixes in make_consistent, getting started examples using new interface by @sandmaennchen in #1239
  • Python: improvements to MHE example by @FreyJo in #1244
  • Simplify casadi_function_generation logic by @jgillis in #1245
  • MATLAB: add p_global and GenerateContext by @sandmaennchen in #1241
  • MATLAB: Simple DAE example uses new interface by @sandmaennchen in #1247
  • Fix Multiphase with nondefault code_export_directory by @FreyJo in #1240
  • MATLAB: remove codgen_model by @sandmaennchen in #1248
  • MATLAB: migrate MHE example to new interface by @FreyJo in #1249
  • Fix compilation with EXT_DEP=OFF and test it on Github actions by @FreyJo in #1235
  • Rename set_p_global to set_p_global_and_precompute_dependencies by @sandmaennchen in #1251
  • Add common subexpression elimination to CasADi function creation by @sandmaennchen in #1246
  • Update matlab install script to install CasADi v3.6.6 by @sandmaennchen in #1252
  • Update documentation for python API by @sandmaennchen in #1253

New Contributors

Full Changelog: v0.3.6...v0.4.0

v0.3.6

16 Aug 08:53
5c06b3a
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.3.5...v0.3.6

v0.3.5

02 Aug 14:51
04c91bf
Compare
Choose a tag to compare

What's Changed

Breaking:

  • Removed t slacks in 23bedb3. Related interface functionality such as getters and setters for t and
    initialize_t_slacks have been removed.

New Contributors

Full Changelog: v0.3.4...v0.3.5

v0.3.4

18 Jul 11:57
bf3574e
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.3.3...v0.3.4

0