Skip to content

Releases: Simple-Robotics/aligator

aligator v0.9.0

11 Oct 08:56
v0.9.0
Compare
Choose a tag to compare

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

aligator v0.8.0

18 Sep 21:56
v0.8.0
Compare
Choose a tag to compare

This is a majorly API-breaking release following the corresponding proxsuite-nlp release, which started the work on introducing value semantics for all models in the library (without requiring clone() methods everywhere)

What's Changed

  • Switch shared_ptr<T> for polymorphic<T> for several classes by @edantec in #159
  • [modelling/costs] Add getResidual() templated getter for composite cost functions by @ManifoldFR in #198
  • Fixing include of LU from Eigen by @quentinll in #200
  • [modelling] Change CostStack backend to an unordered_map type by @ManifoldFR in #199

Full Changelog: v0.7.0...v0.8.0

aligator v0.7.0

12 Sep 08:39
v0.7.0
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.6.1...v0.7.0

v0.6.1

27 May 11:03
v0.6.1
Compare
Choose a tag to compare

What's Changed

Added

  • Add force and wrench cone costs #151
  • Add centroidal momentum cost

Changed

  • Do not compile or use gar::ParallelRiccatiSolver<> when OpenMP support is disabled (#160)

Full Changelog: v0.6.0...v0.6.1

v0.6.0

23 May 14:50
v0.6.0
Compare
Choose a tag to compare

What's changed

Added

  • Added constrained LQR example (#145)
  • Adds tracy as a profiling tool
  • Adds a new sublibrary called gar to represent and solve time-varying linear-quadratic subproblems
  • Adds a parallel, block-sparse factorization for the implicit/proximal Riccati algorithm
  • Integrates the CHOLMOD solver from the SuiteSparse library into gar
  • Add a C++ example and benchmark of Talos walking by @edantec
  • Add a BlkMatrix<> template class for dealing with block Eigen matrices effectively
  • Copy the headers from boost::core::span
  • Add SE2 car benchmark bench/se2-car.cpp
  • Split part of macros.hpp into new header eigen-macros.hpp, add ALIGATOR_NOMALLOC_SCOPED macro to disable Eigen's malloc per-scope and a caching system to restore the malloc status
  • Add context.hpp file for aligator/modelling/dynamics

Changed

  • Standardized CMake output directories (#147)
  • Split derivative computation into first- and second-order functions per stage by @fabinsch
  • Changed minimum version of C++ to C++17 (no longer use boost::optional or boost::filesystem)
  • SolverProxDDP now uses linear solvers provided by gar (API breaking), add LQSolverChoice enum
  • Minimum version of eigenpy upgraded to 3.4 (for supporting std::unique_ptr)
  • Move cost functions to aligator/modelling/costs
  • Deprecate ControlBoxFunction
  • Remove LDLTChoice enum (API breaking)
  • Refactor computation of problem Lagrangian's gradient
  • Remove aligator/core/stage-data.hxx
  • StageModel/StageData now store dynamics model/data separate from other constraints, add dynamics_data to StageData
  • Rewrite the Logger class (rename from BaseLogger) using map data structures to store line formatting info + content
  • Merge struct ODEData into ContinousDynamicsData, rename continous-base.hpp header to continuous-dynamics-abstract
  • Optimize a few includes for faster compilation:
    • aligator/modelling/dynamics/fwd.hpp
    • aligator/core/stage-model.hpp no longer includes aligator/core/cost-abstract.hpp
    • Split traj-opt-data.hpp out of traj-opt-problem.hpp

Python API

  • Rename ContinousDynamicsBase to ContinousDynamicsAbstract
  • Rename CostBase to CostAbstract
  • Expose TrajOptData.init_data
  • Remove LDLTChoice enum and SolverProxDDP.ldlt_solver_choice attribute

Full Changelog: v0.5.1...v0.6.0

aligator v0.5.1 - kinodynamical models for robots

24 Apr 10:07
v0.5.1
Compare
Choose a tag to compare

What's changed

Fixed

  • Fix finite difference function in python unittest (#128)

Added

  • Add kinodynamics forward scheme
  • Add centroidal dynamics derivative cost to regularize the time derivative of centroidal dynamics
  • Add Python example of Solo stepping in place
  • Add wrench cone cost for 6D contact in centroidal dynamics
  • Add a 6D contact formulation for every centroidal cost and dynamics, including kinodynamics

Full Changelog: v0.5.0...v0.5.1

aligator v0.5.0 - Nonlinear centroidal dynamics and filter line-search

13 Feb 09:52
v0.5.0
d9add4a
Compare
Choose a tag to compare

What's Changed

Added

  • Add a pair filter strategy as an alternative to linesearch methods
  • Add a python example of a locomotion OCP with the robot Talos
  • Add two nonlinear centroidal dynamical models, where the control is respectively contact forces and their time derivative
  • Add a set of cost functions to generate a centroidal problem with user-defined contacts
  • Add unittests and example of typical centroidal problem

Full Changelog: v0.4.1...v0.5.0

aligator v0.4.1

25 Jan 15:51
v0.4.1
93a61a8
Compare
Choose a tag to compare

What's Changed

Changed

  • CMake: fetch submodule if not available in (#103)
  • CMake: move benchmark dependency speecification in main file
  • Document and simplify the LQR example
  • Finish the se2-car.cpp example (#110)
  • Add template instantiation for IntegratorAbstract, ExplicitIntegratorAbstract and IntegratorRK2 (#114)
  • Don't output numpy matrices in example-talos-arm

Fixed

  • Fix name of frame parent attribute in examples
  • Export C++ definitions in CMake config file
  • Fix Doxyfile python bindings directory (#110)
  • Fix for eigenpy 3.3 (#121)

Full Changelog: v0.4.0...v0.4.1

aligator v0.4.0

15 Jan 10:57
v0.4.0
Compare
Choose a tag to compare

What's Changed

  • This is the first release of aligator. This library is a joint effort between INRIA and LAAS-CNRS, and will be maintained and expanded in the future. Please provide constructive feedback and contribute!

Full Changelog: v0.3.0...v0.4.0