Closed dfridovi closed 3 years ago
Got first cut of most constraints up now. TODOs before finishing PR:
AugmentedLagrangianSolver
- right now it treats all constraints as equality constraints.AugmentedLagrangianSolver
in an example and tune/fix issues that arise.AugmentedLagrangianSolver
in relevant examples.nolinesearch
in DubinsOriginExample
. Other examples mostly untested.Getting a segfault when attempting to use new solver. Tracking down in #46.
Added automatic downscaling of multipliers when unconstrained solver fails (because of line search failure). This is probably a good longer term feature, but for now it is definitely a necessary holdover until the linesearch is more sophisticated.
All major features of this PR are done. As above, it will be important to improve the linesearch in the future, but for now the basics are there.
Merging now. Note that not all examples will run normally, but at least they shouldn't error out... I anticipate that tuning will be necessary in examples with constraints, but that should happen in separate PRs.
This is going to be a relatively large PR since it should include:
As a small side note, I noticed that
ILQFlatSolver
is completely superfluous and can be subsumed byILQSolver
with minor modifications. Although we have not yet begun such integration, I anticipate handling equality constraints within theILQSolver
class optionally and creating anActiveSetSolver
parallel to theAugmentedLagrangianSolver
that makes use of that equality constrained lower level solver.This PR will be marked as ready to merge when most/all changes are complete.