Skip to content

aligator v0.9.0

Latest
Compare
Choose a tag to compare
@ManifoldFR ManifoldFR released this 11 Oct 08:56
· 76 commits to main since this release
v0.9.0

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 and computeJacobians) now take arguments (x,u), no more y (corresponding to the next state in the OCP); StageData objects no longer have the Jacobian field StageData::Jy_
  • the DynamicsModel class and its subclasses are no longer subclasses of StageFunction following this change. These are now distinct class hierarchies
  • the BCLParams struct is no longer used in SolverProxDDP. Now there is an inner AlmParams 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 of solver.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_ to init_constraint_ by @ManifoldFR in #223
  • Cycle the Riccati solver by @edantec in #217
  • Deprecate struct StageConstraint, add option to set dual tolerance on SolverProxDDP, re-implement TrajOptProblemTpl::checkIntegrity() by @ManifoldFR in #226
  • Switch from cmake-format to gersemi for CMake formatting by @ManifoldFR in #227
  • Make DynamicsModelTpl separate from StageFunctionTpl 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