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 helperlqrKnotsSameDim, check dimensions inLqrKnotTpl::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
garinto main aligator library, slight refactor ofDenseRiccatiSolverby @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-nlpby @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/310 - Add polymorphic value wrapper, remove dependence on
proxsuite-nlpheaders 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 intest_frames.pyby @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
cmakesubmodule dir to gersemi definitions by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/253 - Change macro
ALIGATOR_DOMAIN_ERRORto 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 CMAKE INSTALL_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>toConstraintSetTpl<T>by @ManifoldFR in https://github.com/Simple-Robotics/aligator/pull/233 - Add a multibody friction cone cost, rename
FrictionConeResidualtoCentroidalFrictionConeResidualby @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
ParallelRiccatiSolverlinear 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
aligatorby @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_toinit_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 onSolverProxDDP, re-implementTrajOptProblemTpl::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
DynamicsModelTplseparate fromStageFunctionTplclass 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>forpolymorphic<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
garto 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.hppinto new headereigen-macros.hpp, addALIGATOR_NOMALLOC_SCOPEDmacro to disable Eigen's malloc per-scope and a caching system to restore the malloc status - Add
context.hppfile foraligator/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::optionalorboost::filesystem) - SolverProxDDP now uses linear solvers provided by
gar(API breaking), addLQSolverChoiceenum - Minimum version of eigenpy upgraded to 3.4 (for supporting
std::unique_ptr) - Move cost functions to
aligator/modelling/costs - Deprecate
ControlBoxFunction - Remove
LDLTChoiceenum (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_datatoStageData - Rewrite the
Loggerclass (rename fromBaseLogger) 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.hppaligator/core/stage-model.hppno longer includesaligator/core/cost-abstract.hpp- Split
traj-opt-data.hppout oftraj-opt-problem.hpp
Python API
- Rename
ContinousDynamicsBasetoContinousDynamicsAbstract - Rename
CostBasetoCostAbstract - Expose
TrajOptData.init_data - Remove
LDLTChoiceenum andSolverProxDDP.ldlt_solver_choiceattribute
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