Recent Releases of aligator

aligator - aligator v0.15.0

This PR accounts for the end of Ubuntu 20.04 support, and increases the minimum required version of CMake to 3.22, in line with jrl-umi3218/jrl-cmakemodules#764.

What's Changed

  • CMakeLists.txt : Update minimum required version of CMake to 3.22 by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/320

Full Changelog: https://github.com/Simple-Robotics/aligator/compare/v0.14.1...v0.15.0

- C++
Published by ManifoldFR 10 months ago

aligator - aligator v0.14.1

This is a patch release to include a change to the Results struct's Python bindings.

Thanks @Tordjx !

What's Changed

  • Exposing vs in ProxDDP result by @Tordjx in https://github.com/Simple-Robotics/aligator/pull/317

New Contributors

  • @Tordjx made their first contribution in https://github.com/Simple-Robotics/aligator/pull/317

Full Changelog: https://github.com/Simple-Robotics/aligator/compare/v0.14.0...v0.14.1

- C++
Published by ManifoldFR 10 months ago

aligator - aligator v0.14.0

This release brings many major changes to aligator.

We officially drop support for Pinocchio 2. As we start looking forward to Pinocchio 4, aligator will require at least Pinocchio 3.4. If you need support for a lower version of Pinocchio 3, please contact us and suggest patches.

Furthermore, aligator no longer depends on the proxsuite-nlp library, which will be archived in the near future - all functionality (manifolds, constraints) has been merged into aligator itself.

What's Changed

  • Change work in progress branch by @jorisv in https://github.com/Simple-Robotics/aligator/pull/297
  • Add CMake macro aligator_create_python_extension() to export by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/298
  • Merge expose-stage-data.cpp into expose-stage.cpp by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/299
  • [gar] Add LqrProblemTpl::isApprox() and helper lqrKnotsSameDim, check dimensions in LqrKnotTpl::isApprox() by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/300
  • [gar] Add fwd header, rename { riccati-impl.hpp => riccati-kernel.hpp } by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/301
  • [python] make BlkMatrixPythonVisitor an incomplete type when template argument is wrong by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/304
  • .gersemirc : add bench dir by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/305
  • Update pixi lockfile by @update-pixi-lockfile in https://github.com/Simple-Robotics/aligator/pull/306
  • Add memory allocator support for LQ subproblem types, merge gar into main aligator library, slight refactor of DenseRiccatiSolver by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/243
  • Officially remove support for Pinocchio 2, require Pinocchio >= 3.4 by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/307
  • Move constraint sets from proxsuite-nlp by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/310
  • Add polymorphic value wrapper, remove dependence on proxsuite-nlp headers by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/312
  • Merge parts of proxsuite-nlp (manifolds and constraints) into aligator, remove dependency on proxsuite-nlp by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/309
  • Managed matrix by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/313

Full Changelog: https://github.com/Simple-Robotics/aligator/compare/v0.13.0...v0.14.0

- C++
Published by ManifoldFR 10 months ago

aligator - aligator v0.13.0

This release introduces API breaking changes for the LqrKnot, LqrProblem classes as well as StateErrorResidual.

Read on for more details.

What's Changed

  • Update pixi lockfile by @update-pixi-lockfile in https://github.com/Simple-Robotics/aligator/pull/282
  • [gar] Rename {LQRKnot,LQRProblem} to {LqrKnot, LqrProblem} by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/283
  • Correct references to equations. by @abussy-aldebaran in https://github.com/Simple-Robotics/aligator/pull/284
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/Simple-Robotics/aligator/pull/286
  • Update CITATIONS.bib and CITATION.cff by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/291
  • Reverse sign of StateErrorResidual by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/292
  • macos-linux-pixi workflow: change branch rules by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/293
  • Fix segfault in FrameCollisionResidual, add corresponding test in test_frames.py by @oomcth in https://github.com/Simple-Robotics/aligator/pull/294

New Contributors

  • @oomcth made their first contribution in https://github.com/Simple-Robotics/aligator/pull/294

Full Changelog: https://github.com/Simple-Robotics/aligator/compare/v0.12.0...v0.13.0

- C++
Published by ManifoldFR 10 months ago

aligator - aligator v0.12.0

This release increases the minimum version of Crocoddyl to 3.0.1 for users of the compatibility module.

What's Changed

  • croco v3: boost -> std pointers by @nim65s in https://github.com/Simple-Robotics/aligator/pull/278

Full Changelog: https://github.com/Simple-Robotics/aligator/compare/v0.11.0...v0.12.0

- C++
Published by ManifoldFR 11 months ago

aligator - aligator v0.11.0

What's Changed

  • [cmake] Add cmake submodule dir to gersemi definitions by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/253
  • Change macro ALIGATOR_DOMAIN_ERROR to use variadic args by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/255
  • Update pixi lockfile by @update-pixi-lockfile in https://github.com/Simple-Robotics/aligator/pull/259
  • Don't link against all pinocchio by @jorisv in https://github.com/Simple-Robotics/aligator/pull/260
  • topic/cmake sync submodule by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/262
  • Use more Pinocchio instantiated functions by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/261
  • Collision residual by @edantec in https://github.com/Simple-Robotics/aligator/pull/264
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/Simple-Robotics/aligator/pull/263
  • Fix copy of TrajOptProblem by @abussy-aldebaran in https://github.com/Simple-Robotics/aligator/pull/265
  • Changed CMAKEINSTALLFULL to CMAKEINSTALL_ by @abussy-aldebaran in https://github.com/Simple-Robotics/aligator/pull/267
  • Prevent duplication of log columns. by @abussy-aldebaran in https://github.com/Simple-Robotics/aligator/pull/271
  • Update pixi lockfile by @update-pixi-lockfile in https://github.com/Simple-Robotics/aligator/pull/269
  • Nix by @LudovicDeMatteis in https://github.com/Simple-Robotics/aligator/pull/268
  • Add MPC test/example. by @abussy-aldebaran in https://github.com/Simple-Robotics/aligator/pull/272
  • Allow customization of the initial solution. by @abussy-aldebaran in https://github.com/Simple-Robotics/aligator/pull/274

New Contributors

  • @abussy-aldebaran made their first contribution in https://github.com/Simple-Robotics/aligator/pull/265

Full Changelog: https://github.com/Simple-Robotics/aligator/compare/v0.10.0...v0.11.0

- C++
Published by ManifoldFR 12 months ago

aligator - v0.10.0

What's Changed

  • Change from deprecated ConstraintSetBase<T> to ConstraintSetTpl<T> by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/233
  • Add a multibody friction cone cost, rename FrictionConeResidual to CentroidalFrictionConeResidual by @edantec in https://github.com/Simple-Robotics/aligator/pull/234
  • Add gravity compensation residual by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/235
  • Add pixi support by @jorisv in https://github.com/Simple-Robotics/aligator/pull/240
  • Fixes to ProxDDP by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/242
  • Change linear friction cone to ice cream cone by @edantec in https://github.com/Simple-Robotics/aligator/pull/238
  • topic/gar/devel by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/236
  • Update pixi lockfile by @update-pixi-lockfile in https://github.com/Simple-Robotics/aligator/pull/245
  • Fix build instruction by @jorisv in https://github.com/Simple-Robotics/aligator/pull/249
  • Fully support building aligator without Pinocchio support (including without proxsuite-nlp Pinocchio support) by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/250
  • Switch to nonmonotone linesearch by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/244

New Contributors

  • @update-pixi-lockfile made their first contribution in https://github.com/Simple-Robotics/aligator/pull/245

Full Changelog: https://github.com/Simple-Robotics/aligator/compare/v0.9.0...v0.10.0

- C++
Published by ManifoldFR about 1 year ago

aligator - aligator 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 https://github.com/Simple-Robotics/aligator/pull/203
  • [core | modelling] Add templated getters for cost and dynamics by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/205
  • [tests/python] Restore Pinocchio 3 tests, add check for Pinocchio features from Python by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/206
  • [ci] Cancel PR workflow on new push by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/210
  • [autodiff] separate out CostFiniteDifferenceHelper by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/212
  • [solvers] Remove constraint prox scalers by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/214
  • Fix the cycling of problem data in MPC by @edantec in https://github.com/Simple-Robotics/aligator/pull/215
  • Force API updates by @edantec in https://github.com/Simple-Robotics/aligator/pull/216
  • Re-define ALM params struct internally to aligator by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/219
  • core/constraint.hpp : add cast-getter by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/222
  • SolverProxDDP: remove solver parameter rho_ by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/221
  • Scale the dynamics' AL parameter instead of the constraints, remove deprecated functions, rename TrajOptProblemTpl::init_condition_ to init_constraint_ by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/223
  • Cycle the Riccati solver by @edantec in https://github.com/Simple-Robotics/aligator/pull/217
  • Deprecate struct StageConstraint, add option to set dual tolerance on SolverProxDDP, re-implement TrajOptProblemTpl::checkIntegrity() by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/226
  • Switch from cmake-format to gersemi for CMake formatting by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/227
  • Make DynamicsModelTpl separate from StageFunctionTpl class hierarchy by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/229
  • Change formatting of exceptions, using variadic macro and type-erased implementation by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/230
  • Fix support for fmt version 10 by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/231

Full Changelog: https://github.com/Simple-Robotics/aligator/compare/v0.8.0...v0.9.0 (commits) | CHANGELOG

- C++
Published by ManifoldFR over 1 year ago

aligator - aligator v0.8.0

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 https://github.com/Simple-Robotics/aligator/pull/159
  • [modelling/costs] Add getResidual() templated getter for composite cost functions by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/198
  • Fixing include of LU from Eigen by @quentinll in https://github.com/Simple-Robotics/aligator/pull/200
  • [modelling] Change CostStack backend to an unordered_map type by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/199

Full Changelog: https://github.com/Simple-Robotics/aligator/compare/v0.7.0...v0.8.0

- C++
Published by ManifoldFR over 1 year ago

aligator - aligator v0.7.0

What's Changed

  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/Simple-Robotics/aligator/pull/161
  • Simplify CMake by @jorisv in https://github.com/Simple-Robotics/aligator/pull/162
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/Simple-Robotics/aligator/pull/163
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/Simple-Robotics/aligator/pull/164
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/Simple-Robotics/aligator/pull/165
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/Simple-Robotics/aligator/pull/166
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/Simple-Robotics/aligator/pull/167
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/Simple-Robotics/aligator/pull/171
  • Update CITATION.cff by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/170
  • Fix RiccatiSolverDense initialization by @jorisv in https://github.com/Simple-Robotics/aligator/pull/174
  • Update minimal fmt version by @jorisv in https://github.com/Simple-Robotics/aligator/pull/173
  • Enable jrl-cmakemodules workspace compatiblity by @jorisv in https://github.com/Simple-Robotics/aligator/pull/172
  • Set policy CMP0167 and CMP0169 to avoid warnings with CMake 3.30 by @jorisv in https://github.com/Simple-Robotics/aligator/pull/176
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/Simple-Robotics/aligator/pull/175
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/Simple-Robotics/aligator/pull/181
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/Simple-Robotics/aligator/pull/182
  • [solvers] use placement-new for creating worksapce and results structs by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/183
  • [fwd.hpp] add deprecations for uses of Eigen::aligned_allocator by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/184
  • Remove Tracy from link interface, change it to a submodule, install selected headers to new aligator/third-party include dir by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/186
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/Simple-Robotics/aligator/pull/190
  • Call destructor first before doing placement-new on workspace and results objects by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/192
  • Use tracy.cmake to easily set/remove tracy dependency by @jorisv in https://github.com/Simple-Robotics/aligator/pull/191

Full Changelog: https://github.com/Simple-Robotics/aligator/compare/v0.6.1...v0.7.0

- C++
Published by ManifoldFR over 1 year ago

aligator - v0.6.1

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: https://github.com/Simple-Robotics/aligator/compare/v0.6.0...v0.6.1

- C++
Published by ManifoldFR almost 2 years ago

aligator - v0.6.0

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: https://github.com/Simple-Robotics/aligator/compare/v0.5.1...v0.6.0

- C++
Published by ManifoldFR almost 2 years ago

aligator - aligator v0.5.1 - kinodynamical models for robots

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: https://github.com/Simple-Robotics/aligator/compare/v0.5.0...v0.5.1

- C++
Published by ManifoldFR almost 2 years ago

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

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: https://github.com/Simple-Robotics/aligator/compare/v0.4.1...v0.5.0

- C++
Published by jorisv about 2 years ago

aligator - aligator v0.4.1

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: https://github.com/Simple-Robotics/aligator/compare/v0.4.0...v0.4.1

- C++
Published by jorisv about 2 years ago

aligator - v0.4.0

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: https://github.com/Simple-Robotics/aligator/compare/v0.3.0...v0.4.0

- C++
Published by jorisv about 2 years ago