This release makes it possible to add visco-elastic (spring-damper mechanism) coupling force between two frame on the same or different robots, without having to implement them manually. It brings a huge speedup wrt doing it in Python (even using Numba). In addition, a few redundant computations have been removed, resulting in a minor overall speedup.
New features
* [core] Add viscoelastic coupling force between frames.
Improvements
* [core] Disable stepper 'iterMax' by default.
* [core] Abort simulation if 'nan' detected in 'q', 'v', 'a' instead of 'a' only.
* [core] Increase maximum simulation timestep.
* [core] Do not call rnea directly in 'computeAcceleration' to avoid redundant computations.
* [python/controller] Improve efficiency by making controller/observer handles optional.
* [gym/common/env] Return is_done=True if simulation is not running anymore.
* [gym/common/env] Use OrderedDict instead of dict to avoid conflicts with ray[rllib].
Bug fixes
* [core] Fix segfault when initializing sensor using unvalid robot.
* [core] Fix Euler Explicit stepper not working as expected.
* [python] Fix potential infinite recursion loop during custom attribute lookup.
* [python/log] Fix 'Global.Time' not in seconds when reading hdf5 logfiles.
* [python/viewer] Fix legend warning wrongly displayed.
* [gym/common/wrapper] Rework 'PartialFrameStack' to be consistent with official 'FilterStack'.
Miscellaneous
* [misc] Update gitignore to ignore log folders.
* [misc] Increase stepper tolerance in unit test to be consistent with check accuracy.
* [misc] Fix new Cmake policy CMP0111.
* [misc] Fix type checking to support latest mypy/pylint releases.
* [misc] Assume pip 21.0 for Cmake and install it on Windows CI. Minor improvements of Cmake files.
* [misc] Remove useless boost submodules dependencies.
* [misc] Do NOT support Numpy >= 1.20 explicitly, since not compatible with Python3.6.
* [misc] Fix toy model learning unit tests.
Co-authored-by: Alexis Duburcq <alexis.duburcqwandercraft.eu>