Crocoddyl Versions Save

Crocoddyl is an optimal control library for robot control under contact sequence. Its solver is based on various efficient Differential Dynamic Programming (DDP)-like algorithms

v2.0.2

5 months ago

[2.0.2] - 2023-12-07

v2.0.1

11 months ago

Changes in v2.0.1:

  • fix notebooks
  • fix build on aarch64-linux
  • fix CMake for OpenMP with conda
  • fix lints
  • update for example-robot-data 4.0.7
  • add support for 18.04 back:
    • CMake 3.10
    • Boost 1.65
    • Python 3.6

v2.0.0

1 year ago

Changes in v2.0.0:

  • Changed stopping criteria to better evaluate the converge criteria
  • Extended numdiff routines to compute second-order derivatives + other minor improvements
  • Improved the overall project documentation (still many things to be done)
  • Added collision residual unit tests and missing Python bindings
  • Allowed accuracy configuration of verbose callback
  • Closed gaps once feasibility is achieved in FDDP
  • Supported different Python versions
  • Added procedure to check example log files
  • Added support to M1 apple chip + fixed compilation issues with Clang
  • Fixed a small issue in the solver's Armijo condition
  • Added shareMemory unit tests
  • Introduced the notion of resizing data in solvers
  • Added unit test for impulse actions
  • Deprecated set_id functions in contact residuals
  • Supported Ipopt solver with Python bindings
  • Extended (diff)-action API to handle arbitrary constraints + unit tests
  • Introduce the notion of ConstraintManager and used it in diff-actions + unit tests + integrated action support
  • Added the HyQ robot for extra unit testing
  • Updated doxygen documentation in many parts of the project
  • Used std::set for storing cost/constraint activation status
  • Fixed small issues in terminal-node computations
  • Supported Meshcat display of contact forces, friction cone and foot-swing trajectories
  • Introduced the notion of equality constraint feasibility in solvers
  • Created a data collector to store joint effort and accelerations
  • Created joint-effort/acceleration residuals + unit tests
  • Created inverse-dynamics action models + unit tests
  • Added the SolverIntro which handles inverse-dynamics OC problems + unit tests
  • Added invdyn examples and log files + cleaned up filenames
  • Enabled copyable for various objects used in Python
  • Supported different contact/impulse frames + unit test + changes in example/logfiles.
  • Removed deprecated FrameXX code.
  • Updated readme file.
  • Updated CMake configuration
  • Updated numpy usage

v1.9.0

2 years ago

Changes in v1.9.0:

  • Introduced the control parametrization notion and three polynomial parametrization (PolyZero, PolyOne, PolyTwoRK)
  • Improved the documentation of the actuation model and especially the floating-base actuation
  • Improved the efficiency of the RK integrator (added to the benchmarks)
  • Improved the documentation of Euler and RK integrators
  • Added unittests for checking the analytical derivatives of the contact forces/impulses
  • Computed the dynamic feasibility in solvers (also print this relevant information)
  • Improved the documentation of solvers
  • Removed dynamic memory allocation in ContactModel3D
  • Added the notion of terminal (calc, calcDiff) computations (fixed some tiny inaccuracies in the problem formulation + reduced useless computations)
  • Added a class to easily profile the computation cost of any block code (included relevant blocks in the solvers and shooting problem)
  • Fixed error in the documentation of ActivationModel2NormBarrier
  • Added the 2d contact
  • Added method to resized solver data (e.g., it is not needed to allocate the biggest control dimension)
  • Fixed issue in the Gepetto viewer display
  • Improved the CI and fixed a few errors that appears in unittests code compiled with clang
  • Removed dynamics memory allocation in LQR action and CostModelResidual
  • Removed Travis buildfarm and substituted by ROS one
  • Used std::set for contact/impulse active/inactive set (added bindings)
  • Added Python bindings to be able to set state dimensions from a Python derived class.
  • Added Python bindings of StateNumDiff class

v1.8.1

2 years ago

Changes in v1.8.1:

  • fix Vx computation
  • fix memory allocations
  • fix linkage of the python library
  • deprecate FramXX in constructors and frames.hpp
  • cleanups

v1.8.0

2 years ago

ChangeLog:

[example] Updated jupyter notebook
Fixed issue in the plotSolution function for biped robots
Fix typo in README
Run unittests in ROS-CI, deactivate Travis-CI
Align the arguments in python
[cmake] use OPTION to set BUILD_TESTING
Introduced pair collision cost
fix include sequence after pinocchio commit c1ff8821c437e2401b80b7aa7f3f118464e2c051
Introduced the printing functions for action, cost, activation, residual, contact, and impulse models
Only build Python-examples if bindings are built
RK4 unittests
Enable to derive quasiStatic in Python #825
[C++14] Move default C++ standard support to 14
Deprecated BUILD_UNIT_TEST + removed legacy files + updated README file (with pip installation)
Fixed GV display after changes in #911
Created residual models to be shared between cost and constraint models

v1.7.0

3 years ago

Changes in v1.7.0:

  • Updated the examples based on new API in example-robot-data
  • Removed reference in std::sized_t (and other primitives)
  • Improved computation and handled richer conditions in friction and wrench cone (e.g., inner/outer apprx. in wrench cone, and rotation matrix in friction cone)
  • Added more unit-tests for cones
  • Included the CoP support notion
  • Updated minimal version of EigenPy as it fixes a bug with 4x6 matrices
  • Developed a gravity-based cost function for both free and in contact conditions (included its unit-test code)
  • Added assignment operator in FrameXXX structures
  • Replaced isMuchSmallerThan by isZero in all the unit-tests
  • Enabled free-flyer joint in full actuation model
  • Improved multicopter actuation API + unit-tests
  • Exposed in Python ActionModelUnicyle::dt_
  • Fixed multithreading support: running the correct number of threads
  • Enabled that the user can set the number of threads (also in Python)
  • Added publication list and updated README file
  • Registered in Python the shared pointers of all the model classes
  • Fixed Meshcat visualizer after update
  • Added Github Action CI with ROS dependency resolution
  • Improved efficiency of backward pass by defining properly RowMajor matrices
  • Activated all warnings and Werror
  • Improved documentation

v1.6.0

3 years ago

Changes in v1.6.0:

  • Refactored the Cost API with breaking compatibility (cost depends on state abstract, not multibody state)
  • Fixed issue in c++98 compatibility
  • Added shared_ptr registers for solver classes (Python bindings)
  • Initialized missed data in SolverQP (not really producing a bug)
  • Fixed issue with FrameXXX allocators (Python bindings)
  • Created aligned std vectors for FrameXXX (Python bindings)
  • Used the proper nu-dimension in shooting problem and solvers
  • Doxygen documentation of smooth-abs activation
  • Renamed the activation model: smooth-abs to smooth-1norm (deprecated old names)
  • Added the smooth-2norm activation model with Python bindings
  • Updated README file with Credits and committee information
  • Added throw_pretty in Python bindings of action models (checks x,u dimensions)
  • Improved the documentation (doxygen, docstrings), and fixed grammar, of various classes
  • Cleaned up a few things related with cost classes
  • Cleaned up unnecessary typedef in cost models
  • Extended the differential action model for contacts to handle any actuation model (not just floating-base derived ones)
  • Added conda support
  • Added the quadratic-flat activation models
  • Fixed issue with gepetto viewer display (appearing in some OS)
  • Added contact/impulse action unit tests
  • Added contact/impulse cost unit tests
  • Added a proper gap threshold (it was too big and created different behavior in feasibility-driven solvers)
  • Improved the copyright starting year for many files

v1.5.0

3 years ago

Changes in v1.5.0:

  • Improved and cleaned up the bench-marking code for code-generation
  • Fixed bug for computing quasicStatic torques under inactive contacts
  • Added unit-test code that disables contacts
  • Created CoP cost with Python bindings and unit-test
  • Multi-threading support for quasicStatic computation in shooting problem
  • Modifications in Travis CI + included Gepgitlab CI
  • Created contact wrench cone (CWC) cost with Python bindings and unit-test
  • Created RK4 integrator with Python bindings and unit-test
  • Throw exception for setting candidates xs/us in solvers
  • Fixed a few spelling errors in the docstring documentation
  • Exposed the KKT solver in Python
  • Checked the dimension of the warm-start vectors for xs and us
  • Cleaned up some part of the Python code that were using Numpy Matrix (now Numpy Array!)
  • Created the 2d contact
  • Checked the feasibility by the gap values
  • Created the Crocoddyl logo + integrated in the README file

v1.4.0

3 years ago

Changes in v1.4.0:

  • Allowed different values of nu in action models
  • Adapted the contact force cost to accept 3d contacts.
  • Added CppAD support to (weighted) quadratic barrier activation
  • Added the contact impulse cost
  • Added contact CoP cost,
  • fixes:
  • Fixed display of contact forces in Gepetto viewer
  • Fixed a bug in the definition of the terminal node in updateNode (defined in ShootingProblem)
  • Fixed memory allocation produced by Python binds.
  • Fixed printed error message in ShootingProblem
  • and improvements:
  • Added documentation of the differential action model
  • Deprecated legacy functions to define reference in cost functions.
  • Set to zero inactive contact forces for correctness
  • Simplified FDDP code by using calcDiff from DDP solver
  • Improved the display of benchmark timings
  • Improved the documentation of contact force cost
  • Improved few notebooks and added an extra one
  • Removed legacy Python unittest