Releases: alphaville/optimization-engine
OpEn v0.12.0 and Opengen v0.11.0
Key changes
This release brings several bug fixes, improvements, and the following brand new features:
- Single and double precision (
f64andf32) are supported in Rust - Opengen generates ROS2 packages
- A new MATLAB API that allows to interface solvers generated in Python (incl. ones generated with the new OCP module)
- Transparent error handling (not just "solver failed" messages)
- Significantly updated documentation on the website
Autogenerated changelog
- Python packaging with pyproject.toml by @alphaville in #395
- Rust constraints: additional unit tests by @alphaville in #396
- OpEn: good error handling by @alphaville in #407
- Support float types in Rust by @alphaville in #399
- Replace instant with web-time by @alphaville in #389
- ROS2 support by @alphaville in #400
- Better error handling and reporting (Rust & TCP) by @alphaville in #406
- Handling errors via py bindings by @alphaville in #411
- ROS2: error handling by @alphaville in #412
- New MATLAB-to-Python API by @alphaville in #404
- Update CI badge link in README.md by @alphaville in #415
- C bindings error handling by @alphaville in #414
- GA CI: tests on Windows and more by @alphaville in #417
- Cleanup folder structure by @alphaville in #418
- Constraint dimension checking and lazy imports by @alphaville in #421
- 🎯 New OpEn/opengen/matlab releases by @alphaville in #408
Full Changelog: v0.11.1...v0.12.0
Opengen v0.10.1
What's Changed
- Python packaging with pyproject.toml by @alphaville in #395
Published version on pypi
See opengen 0.10.1
Full Changelog: v0.11.1...opengen-0.10.1
OpEn v0.11.1
What's Changed
- Return best inner solution by @alphaville in #388
Published version
- OpEn v0.11.1 on crates.io
Full Changelog: v0.11.0...v0.11.1
Opengen v0.10.0
What's Changed
Added
- New high-level
opengen.ocppackage for constructing optimal control problems from dynamics, stage/terminal costs, named parameters, and OCP-oriented constraints - Support for both single-shooting and multiple-shooting formulations, including penalty- and ALM-based constraint lowering
GeneratedOptimizerwrapper withsolve(x0=..., xref=...)API and persistent optimizer metadata viaoptimizer_manifest.jsonplusrollout.casadi- Continuous-time dynamics discretization helpers in
opengen.ocp.DynamicsDiscretizer, including Euler, midpoint, Heun, RK4, and multistep discretizations - Extended
OcpSolutionwith solver diagnostics such as cost, penalty, iteration counts, infeasibility, fixed-point residual, and Lagrange multipliers - Detailed documentation available here, incl. Google Colab notebooks, and updated API docs
Changed
- Changed the default penalty weight update factor to
1.75 - Added and refined OCP documentation, docstrings, notebook examples, and automated tests
- Improved readability of printed OCP solver results
Fixed
- Avoid duplicate builder log messages by disabling propagation to the root logger
- Use reliable package version lookup when recording the installed CasADi version in optimizer manifests
- Check valid version in
with_version
Full Changelog: opengen-0.9.6...opengen-0.10.0
Opengen 0.10.0a2 (preview, RFC)
Main changes: documentation available on the website, simplification of Cartesian products of multiple rectangles and sets OcpSolution. Default penalty update parameter is now 1.75.
Full Changelog: opengen-0.10.0a1...opengen-0.10.0a2
Opengen 0.10.0a1 (preview, RFC)
This is a preview alpha version of opengen version 0.10.0. See the details and write your comments in #390. You can try it out using this Python notebook. This addresses the issue #313.
Main changes: New Python package in opengen that facilitates the construction of optimal control problems.
Full Changelog: opengen-0.9.6...opengen-0.10.0a1
OpEn v0.11.0 and Opengen v0.9.6
Published versions
What's Changed
In OpEn (Rust)
- Implementation of
BallPin Rust: projection on lp-ball - Algorithmic improvements in
EpigraphSquaredNorm(numerically stable Newton refinement) and more detailed docs - Assertion in
Ball1,Ball2, andBallInfto check that that dimensions ofxandxcare compatible (with unit test) - Added validation in
RectangleandHyperplanefor invalid constructor inputs and strengthened dimension checks in hyperplane projection - Added validation in
Sphere2for empty inputs and incompatible center dimensions - Added validation in
FiniteSetfor incompatible projection dimensions and corrected convexity detection for singleton sets - Added unit tests for invalid
Rectangle,Simplex,Hyperplane,Sphere2, andFiniteSetedge cases - Typos and doctest annotations in docs of
CartesianProduct(in Rust),Rectangle, andHyperplane, with more detailed documentation
In Opengen
- Clippy fixes (minor)
Full Changelog: v0.10.0...v0.11.0
OpEn v0.10.0 and Opengen v0.9.5
Published versions
What's Changed
- Update ndarray requirement from 0.15 to 0.16 by @dependabot[bot] in #354
- Update docker image by @alphaville in #340
- Support for affine spaces in code generation by @alphaville in #344
- Getting rid of warning in TCP iface by @alphaville in #342
- Issue with multiple solvers by @alphaville in #363
- Update email in setup.py by @alphaville in #365
- Fix cross compilation issue by @alphaville in #368
- Update modcholesky requirement from 0.1 to 0.2 by @dependabot[bot] in #359
- Increase of testing coverage by @alphaville in #339
- Update rand requirement from 0.9 to 0.10 by @dependabot[bot] in #377
- Update lbfgs requirement from 0.2 to 0.3 by @dependabot[bot] in #375
- Update icasadi_test requirement from 0.0.2 to 0.0.3 by @dependabot[bot] in #371
- Safer templates_dir implementation by @alphaville in #382
- Fix #378 and #380 by @alphaville in #381
Full Changelog: v0.9.1...v0.10.0
opengen-0.9.4
What's Changed
- Fix cross compilation issue by @alphaville in #368
Full Changelog: opengen-0.9.3...opengen-0.9.4
Opengen 0.9.3
What's Changed
- Update email in setup.py by @alphaville in #365
Full Changelog: opengen-0.9.2...opengen-0.9.3