Releases: acados/acados
v0.5.0
Highlights
- Documentation update with videos of real-world examples: https://docs.acados.org/real_world_examples/index.html
- Enable specifying problems with
N_horizon=0
- Improvements of solution sensitivity functionality
Breaking changes
C interface:
Changes introduced in #1333
ocp_nlp_out_set
now requiresnlp_in
as additional argumentocp_nlp_constraints_model_set
now requiresnlp_out
as additional argumentocp_nlp_out
needs to be created beforeocp_nlp_in
What's Changed
- Consistent mask and multipliers by @sandmaennchen in #1333
- Globalization: fix iteration number in merit backtracking by @FreyJo in #1492
- C: cleanup
qp_res
option and memory by @FreyJo in #1494 - Step norm logging by @FreyJo in #1495
- C: avoid using local variable
sqp_iter
by @FreyJo in #1496 - Template: avoid openmp dependency when not batched by @FreyJo in #1497
- Allow
solver_options.N_horizon=0
by @Confectio in #1498 - Modify
AcadosOcpBatchSolver
to use flexible batch size by @FreyJo in #1460 - Fix typo: intial -> initial by @FreyJo in #1500
- Python verbosity by @FreyJo in #1501
- Interfaces: check for u, z dependencies of terminal cost and constraints by @FreyJo in #1502
- Condense
qp_out
by @FreyJo in #1474 - Document cmake options by @FreyJo in #1503
- Update README to highlight the most important acados features by @FreyJo in #1504
- Simulink:
levenberg_marquardt
as optional input by @FreyJo in #1507 - Add real-world examples with videos to documentation page by @FreyJo in #1508
- add our application on tiltable quadrotors to "real_world_examples" by @Li-Jinjie in #1510
- Docs: minor changes and update build requirements by @FreyJo in #1509
- Improve Solution Sensitivity related tests and examples by @FreyJo in #1513
- Fix docs by @sandmaennchen in #1514
- Python/MATLAB: Check CasADi expressions of terminal stage by @sandmaennchen in #1506
- Test forward vs. adjoint solution sensitivities on CI with quick settings by @FreyJo in #1515
- Ignore sim stuff in build templates if N==0 by @FreyJo in #1516
- Updates with respect to new HPIPM sensitivity API by @FreyJo in #1512
Full Changelog: v0.4.5...v0.5.0
v0.4.5
Highlights
- New regularization method: Gershgorin Levenberg Marquardt regularization #1473
- More granular error handling in python #1478
What's Changed
- Refactor
ext_fun_expand
option, implement more granular options instead by @FreyJo in #1467 - C: Minor cleanup by @FreyJo in #1465
- Follow up to #1462 by @FreyJo in #1471
- Gershgorin Levenberg Marquardt regularization by @FreyJo in #1473
- Export OCP solver in Python and use it in Matlab by @FreyJo in #1472
- Python: Implement reformulation as external cost with Gauss-Newton for LS/NLS by @FreyJo in #1476
- Python: checks on external checks by @FreyJo in #1477
- Symbolic cost parameters by @dirkpr in #1479
- Fix
get_path_cost_expression
forCONVEX_OVER_NONLINEAR
by @FreyJo in #1480 - MATLAB: migrate example to new interface, add extensive timing evaluation, improve checks by @FreyJo in #1482
- Stagewise translate by @dirkpr in #1481
- Python: Model with properties by @sandmaennchen in #1484
- Dynamic num threads in batch solvers by @Confectio in #1483
- Fix Github Action errors by @FreyJo in #1487
- Update CasADi version to 3.7 by @FreyJo in #1485
- Update automatic CasADi matlab install by @FreyJo in #1488
- Update solution sensitivity examples by @FreyJo in #1489
- Improving Exception Handling in acados Python Template by @Li-Jinjie in #1478
- MATLAB: AS-RTI closed-loop example by @FreyJo in #1490
- Fix globalization calls in AS-RTI by @FreyJo in #1491
New Contributors
- @Li-Jinjie made their first contribution in #1478
Full Changelog: v0.4.4...v0.4.5
v0.4.4
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
- Fix detect constraint for python interface by @aghezz1 in #1393
- MATLAB: fix getter for QP values at terminal stage by @sandmaennchen in #1394
- MATLAB/Python: Add check whether
p_global
is defined, butglobal_data
is empty by @sandmaennchen in #1396 - Python: Cleanup code generation, sim solver by @sandmaennchen in #1397
- Python: update setup.py by @sandmaennchen in #1400
- Python: use context for temporarily changing directory by @sandmaennchen in #1399
- C interface/Python: Getter for numerical values by @sandmaennchen in #1395
- Simulink: Fix
nh_total
dimension in sfunction by @sandmaennchen in #1403 - Python:
build
andgenerate
flags for batch solvers by @sandmaennchen in #1404 - C/Python: Fix solver status in batch solve by @sandmaennchen in #1405
- MATLAB: Use flat getters and setters by @sandmaennchen in #1406
- MATLAB/Python: Cleanup examples by @sandmaennchen in #1409
- MATLAB: Migrate test to new interface by @sandmaennchen in #1411
- Simulink: More effiicient setters/getters using flat format by @sandmaennchen in #1410
- Evaluator by @RudolfReiter in #1402
- MATLAB: no
quit()
by @sandmaennchen in #1412 - Add ACADOS_WITH_SYSTEM_BLASFEO CMake option (by default OFF) to use an external blasfeo instead of building an internal copy of blasfeo by @traversaro in #1408
- C: More total dimension getters by @sandmaennchen in #1416
- MATLAB/C: more flat setters in interface by @sandmaennchen in #1417
- MATLAB: Fix dimension in setter for
W
by @sandmaennchen in #1418 - MATLAB: flat setter example by @sandmaennchen in #1420
- MATLAB/Python: New option to expand CasADi function to SX before code generating by @sandmaennchen in #1419
- CasADi codegen option to avoid unneeded sparsity patterns in MATLAB by @jgillis in #1421
- Follow-up on CasADi
force_canonical
#1421 by @FreyJo in #1424 - Update documentation & contributor list by @FreyJo in #1423
- Simulink: compute n_outputs correctly, taking ifs into account by @FreyJo in #1422
- Remove constraint dimensions from
ocp_nlp_cost_dims_get_from_attr
by @FreyJo in #1425 - Bump jinja2 from 3.1.4 to 3.1.5 in /docs by @dependabot in #1407
- Rename acados main branch: master -> main by @FreyJo in #1427
- QP warm-start in first NLP solver iteration by @FreyJo in #1428
- C: allow using differnt QP solvers in
ocp_nlp_solve_qp_and_correct_dual
by @FreyJo in #1429 - S-function hotfix: swap p_global and p_traj in template by @FreyJo in #1430
- Work on sensitivity solver: add
setup_qp_matrices_and_factorize
and more by @FreyJo in #1432 - Options getter for QP solvers, backup opts in
setup_qp_matrices_and_factorize
by @FreyJo in #1434 - Fix
qp_solver_mu0
in multi-phase template by @FreyJo in #1435 - Quadrotor example: use one-sided constraint and some cleanup by @FreyJo in #1437
- Github Actions: switch to ubuntu-22.04 by @FreyJo in #1438
- Fix
multiphase_nonlinear_constraints
example wrtACADOS_INFTY
, add checks by @FreyJo in #1436 - C templates/MATLAB/Python: OCPs with
p_global
and noglobal_data
by @sandmaennchen in #1401 - Update
print_iterations
by @david0oo in #1440 - Solve relaxed KKT conditions and compute corresponding sensitivities by @FreyJo in #1439
- MATLAB: check when updating
nlp_solver_max_iter
by @FreyJo in #1442 - Fix AS-RTI-C by @FreyJo in #1443
- Fix adjoint sensitivity timings by @FreyJo in #1445
- Python: fixes regarding x0 constraint and sanity checks by @FreyJo in #1446
- Ignore equalities when evaluating complementarity residual if
tau_min > 0
by @FreyJo in #1448 - Improve docstrings for warm start options by @Confectio in #1447
- Fix
acados_batch_setup_qp_matrices_and_factorize
by @FreyJo in #1449 - Solution sensitivity examples by @FreyJo in #1451
- Fix type hints in chain_mass solution sensitivity example by @dirkpr in #1452
- Remove: no global data warnings by @JasperHoffmann in #1459
- Condensing: call
d_cond_qp_expand_sol
with options asd_cond_qp_expand_primal_sol
was removed in HPIPM by @FreyJo in #1457 - Implement adaptive epsilon for regularizations:
MIRROR
andPROJECT
by @FreyJo in #1462 - Use dedicated routine to solve for adjoint solution sensitivities by @FreyJo in #1454
- Python:
detect_cost_type
by @josipkh in #1461 - New
nlp_solver_type
:SQP_WITH_FEASIBLE_QP
by @david0oo in #1444 - Compute size of globalization memory correctly by @FreyJo in #1464
- Logging and priniting of multipliers in
SQP_WITH_FEASIBLE_QP
by @david0oo in #1466
New Contributors
- @RudolfReiter made their first contribution in #1402
- @traversaro made their first contribution in #1408
- @dependabot made their first contribution in #1407
- @Confectio made their first contribution in #1447
- @JasperHoffmann made their first contribution in #1459
Full Changelog: v0.4.3...v0.4.4
v0.4.3
Highlight
- User guide and feature by example list on the acados docs pages π
Breaking changes
Python:
- The return type of
eval_solution_sensitivity
has changed: The function now return a dict with fieldssens_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]
andidxbu
by @josipkh in #1390
Full Changelog: v0.4.2...v0.4.3
v0.4.2
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)
- signature of
- setters for
lb
andub
have been removed
Python interface
- concerns options
with_solution_sens_wrt_params
,with_solution_sens_wrt_params
eval_solution_sensitivity
with argumentwith_respect_to ="params_global"
eval_and_get_optimal_value_gradient
with argumentwith_respect_to = "params_global"
- rename option
with_respect_to='params_global'
to'p_global'
with deprecation warning - Changed
nlp_solver_type
default fromSQP_RTI
toSQP
Matlab interface
- Changed
nlp_solver_type
default fromSQP_RTI
toSQP
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 forlh_0
anuh_0
.
Now the portslh
,uh
only contain the intermediate stages 1 to N
What's Changed
- Rework
p_global
to useglobal_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
andadaptive_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
forAcadosOcpBatchSolver
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
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 thanSQP_RTI
is not supported anymore.
Changes in C API:
- external function creation methods
external_function_*_create
got an
additional argumentexternal_function_opts *opts_
. - The functions:
sim_solver_create
,sim_solver_calculate_size
,
sim_solver_assign
now need an additional argumentsim_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 argumentsim_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
- Python: minor update to minimal MOCP example by @FreyJo in #1256
- Code generation: more checks whether exact Hessian contributions are needed by @sandmaennchen in #1257
p_global
follow up usingcasadi.blazing_spline
by @sandmaennchen in #1258- Move Globalization functionality into modules, rename related options by @david0oo in #1254
- Remove
rti_phase
from DDP and SQP by @FreyJo in #1260 - Move NLP timings to common by @FreyJo in #1261
- C: add QP solve function to simplify solver codes by @FreyJo in #1263
- Add
ocp_nlp_memory_get
function by @david0oo in #1265 - Fix globalization status check in RTI by @FreyJo in #1264
- Core cleanup: add functions
extract_module_name
,ocp_nlp_compute_qp_objective_value
by @david0oo in #1266 - fix MATLAB make_consistent checks on slack dimensions by @FreyJo in #1267
- Update
options_set
python function with globalization options by @david0oo in #1268 - MATLAB: Blazing MOCP example by @FreyJo in #1270
- Simulink slack functionality by @FreyJo in #1269
- Remove
rti_phase
in generated main file by @FreyJo in #1272 - MATLAB: compile only OCP solver lib in
compile_ocp_shared_lib
by @FreyJo in #1273 - Create external function list in code generation by @FreyJo in #1271
- Simulink: prepare for MOCP by @FreyJo in #1274
- Simulink: add optional input port
p_global
, test blazing splines in Simulink by @FreyJo in #1275 - Store intermediate iterates by @sandmaennchen in #1262
- MATLAB: Minor cleanup of GenerateContext and blazing spline example by @sandmaennchen in #1276
- Fix for
extract_module_name
by @FreyJo in #1277 - Initialization of
p_global
by @sandmaennchen in #1278 - Add dimension
nx_next
to OCP interface by @FreyJo in #1280 p_global
: fix typo in generated cost header by @FreyJo in #1282p_global
related header fix for constrainth_e
by @FreyJo in #1283- Simulink MOCP interface by @FreyJo in #1281
- Remove unused internal variable
max_iter
in DDP and SQP by @FreyJo in #1284 - CMake always uses / separators by @FreyJo in #1285
- Update qpOASES with cmake update by @FreyJo in #1289
- MATLAB: rename endsWith -> endsWith_custom to avoid warnings by @FreyJo in #1286
- Interfacing: Getters for QP data by @FreyJo in #1288
- Set
sim_method_newton_tol
in solver templates by @sandmaennchen in #1290 - Solver templates: improve whitespace control by @FreyJo in #1291
- C: generalize
ocp_nlp_solve_qp_and_correct_dual
with optional arguments by @FreyJo in #1293 - C: cleanup external function code by @FreyJo in #1294
- Separate functionality for computing z and algebraic sensitivities by @sandmaennchen in #1295
- get_iterate: check if
nlp_solver_type
is supported in interfaces by @FreyJo in #1297 - Cmake: replace \ by / in
ext_fun_compile_flags
by @sandmaennchen in #1298 - Add option to reuse workspace of external CasADi functions by @FreyJo in #1296
- Simulink: fix ztraj output port by @FreyJo in #1300
- Minor cleanup: Python, ext_dep_off example by @FreyJo in #1299
- fix
ocp_nlp_dynamics_disc_compute_fun_and_adj
by @FreyJo in #1303 - MATLAB: add option to set json_file to old interface by @sandmaennchen in #1302
- Fix RTI residuals by @FreyJo in #1304
- Avoid empty structs; MSVC doesn't like it by @jgillis in #1305
- MATLAB - update linear MPC example by @josipkh in #1307
- MATLAB: add shooting nodes to solver transcription by @sandmaennchen in #1308
- MATLAB/python: p_global examples with timinigs by @sandmaennchen in #1311
- Python: Store/Load iterate to/from AcadosOcpIterate by @sandmaennchen in #1310
- MATLAB/python: Default value for
ext_fun_compile_flag
from environment variable by @sandmaennchen in #1312 - MATLAB: generic NLP example by @josipkh in #1309
- Github Actions: use Release in full_build, and Debug in ext_dep_off by @FreyJo in #1314
Full Changelog: v0.4.0...v0.4.1
v0.4.0
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
= 1qp_solver_cond_ric_alg
= 1nlp_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 anAcadosOcpSolver
object which no longer provides the fieldsmodel_struct
andopts_struct
, but the propertyocp
which is an object of typeAcadosOcp
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 viadims.N
.
What's Changed
- Matlab interface overhaul by @FreyJo in #1193
- migrate
dims.N
tosolver_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
toAcadosOcpOptions
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 includingocp_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
toset_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
What's Changed
- One sided constraint support for HPIPM solvers by @FreyJo in #1174
- Fix
external_function_external_param_casadi
by @sandmaennchen in #1189 - Minor documentation update by @sandmaennchen in #1187
- Matlab: Getter for condensed QP matrices by @sandmaennchen in #1188
- Compile acados with
BUILD_TYPE = DEBUG
on Github actions by @FreyJo in #1191 - Matlab example cleanup by @FreyJo in #1192
- Use
d_mask
in DAQP interface to handle one-sided constraints by @FreyJo in #1175 - Minor Python changes from aligning Matlab by @FreyJo in #1197
- MEX: always use CMake for generated code by @FreyJo in #1198
- Add references to documentation by @FreyJo in #1200
- Print note if QP solver does not support one-sided constraints by @sandmaennchen in #1202
Full Changelog: v0.3.5...v0.3.6
v0.3.5
What's Changed
- Funnel globalization by @david0oo in #1151
- Align python and MATLAB classes for problem formulation by @sandmaennchen in #1160
- Fix external casadi functions with sparse parameter definitions, remove unused memory, add tests by @FreyJo in #1162
- Stagewise parameter values for OCP NLP solver by @FreyJo in #1163
- Fix setting globalization options in template for funnel by @FreyJo in #1164
- Detect Nan and Inf in merit function based line search by @FreyJo in #1166
- Merit backtracking cleanup by @FreyJo in #1167
- Small improvements by @FreyJo in #1169
- MATLAB: Code generation of CasADi functions based on
AcadosOcp
/AcadosSim
by @sandmaennchen in #1170 - Drone example by @AkashJohnSubash in #1165
- Matlab QP conditioning by @FreyJo in #1172
- Python: improve checks in setters by @FreyJo in #1171
- Sparse parameter update in Matlab and parameter getters by @FreyJo in #1176
- Hotfix sparse parameter setter Matlab for empty parameter and MSVC compiler by @FreyJo in #1178
- Update docs build requirements by @FreyJo in #1179
- Simulink sparse parameter update and testing by @FreyJo in #1177
- Update HPIPM by @FreyJo in #1181
- Add new acados logo and favicon. Switch docs to
sphinx-book-theme
by @FreyJo in #1180 - Fix links to OSQP to point to its new GitHub organization by @imciner2 in #1183
- MATLAB: condition number per block and global by @sandmaennchen in #1182
Breaking:
- Removed
t
slacks in 23bedb3. Related interface functionality such as getters and setters fort
and
initialize_t_slacks
have been removed.
New Contributors
Full Changelog: v0.3.4...v0.3.5
v0.3.4
What's Changed
- Python cleanup by @FreyJo in #1146
- Getters for partial condensing matrices Q, R, S by @FreyJo in #1145
- Add timers:
time_preparation
,time_feedback
by @FreyJo in #1147 - Documentation update by @josipkh in #1141
- Remove
t
slacks fromocp_nlp_out
by @FreyJo in #1148 - Remove main mex template by @FreyJo in #1149
- Update problem formulation description by @sandmaennchen in #1150
- Fix small typo in Makefile by @josipkh in #1152
- Visualize cost-to-go in MOCP example by @FreyJo in #1153
- Add
reset
function in MEX OCP solver interface by @FreyJo in #1156 - Fix QP status issue by @FreyJo in #1155
- Cmake for multi-phase OCP solver by @sandmaennchen in #1157
- Simulink interface: add initialization functionalities and tests by @FreyJo in #1158
- Python interface: default for
sim_method_num_stages
by @sandmaennchen in #1159
Full Changelog: v0.3.3...v0.3.4