Version 0.9.0 of aligator brings a host of changes:
- some for performance (cycling problems properly, with big thanks to @edantec),
- some for convenience,
- some for the ProxDDP algorithm,
- and big changes to the dynamics class hierarchy
Users should assume these changes are API-breaking (in both C++ and Python). Namely:
- the
StageFunction
methods (e.g.evaluate
andcomputeJacobians
) now take arguments(x,u)
, no morey
(corresponding to the next state in the OCP);StageData
objects no longer have the Jacobian fieldStageData::Jy_
- the
DynamicsModel
class and its subclasses are no longer subclasses ofStageFunction
following this change. These are now distinct class hierarchies - the
BCLParams
struct is no longer used inSolverProxDDP
. Now there is an innerAlmParams
struct with its own fields - scaling of constraints in ProxDDP has completely changed. Non-dynamics constraints are driven by the overall
mu
parameter, with dynamics being scaled down according to the value ofsolver.bcl_params.dyn_al_scale_
Checking the changes to the unit tests and examples is strongly recommended.
Known issues
- cycling the
ParallelRiccatiSolver
linear solver is still broken. This requires a more in-depth look, coming in the next version.
What's Changed
- Change all map types to boost::unordered_map by @ManifoldFR in #203
- [core | modelling] Add templated getters for cost and dynamics by @ManifoldFR in #205
- [tests/python] Restore Pinocchio 3 tests, add check for Pinocchio features from Python by @ManifoldFR in #206
- [ci] Cancel PR workflow on new push by @ManifoldFR in #210
- [autodiff] separate out CostFiniteDifferenceHelper by @ManifoldFR in #212
- [solvers] Remove constraint prox scalers by @ManifoldFR in #214
- Fix the cycling of problem data in MPC by @edantec in #215
- Force API updates by @edantec in #216
- Re-define ALM params struct internally to
aligator
by @ManifoldFR in #219 - core/constraint.hpp : add cast-getter by @ManifoldFR in #222
- SolverProxDDP: remove solver parameter
rho_
by @ManifoldFR in #221 - Scale the dynamics' AL parameter instead of the constraints, remove deprecated functions, rename
TrajOptProblemTpl::init_condition_
toinit_constraint_
by @ManifoldFR in #223 - Cycle the Riccati solver by @edantec in #217
- Deprecate struct
StageConstraint
, add option to set dual tolerance onSolverProxDDP
, re-implementTrajOptProblemTpl::checkIntegrity()
by @ManifoldFR in #226 - Switch from cmake-format to gersemi for CMake formatting by @ManifoldFR in #227
- Make
DynamicsModelTpl
separate fromStageFunctionTpl
class hierarchy by @ManifoldFR in #229 - Change formatting of exceptions, using variadic macro and type-erased implementation by @ManifoldFR in #230
- Fix support for fmt version 10 by @ManifoldFR in #231
Full Changelog: v0.8.0...v0.9.0 (commits) | CHANGELOG