A new API for defining quantities in reward and termination conditions computations has been added. The first objective is to make much easier to new comers that are not used to rigid body dynamics, and secondly, to compute them as efficiently as possible. In this regard, a new quantity manager is responsible for keeping track of all quantities involved in computations and optimisation the overall computation path, by avoiding redundant computations through caching and sharing of intermediary quantities, but also by aggregating them whenever possible to take advantage of vectorisation optimally. Apart from that, the multi-robot simulations have been made much easier by supporting them via Python API. Finally, backlash in simple motor transmission are now natively supported, modelled an extra virtual joint together with a massless body.
New features
* [core] Add backlash support at motor-level. (767)
* [python/simulator|python/plot] First-class multi-robot support. (754) (764) (766)
* [gym/common] Introduce new first-class quantity manager. (749) (751) (752) (756)
Improvements
* [core] Clarify terminology: 'Rigid' by 'Mechanical', 'Original' by 'Theoretical', 'Actual' by 'Extended'. (753) (762) (763)
* [core] User is now systematically responsible for serializing constants before telemetry registration. (753)
* [core] Consistent export/import/get/set options between single- and multi-robot simulations. (758) (760) (761)
* [core/python] Add method to query heightmaps on multiple positions at once. (750)
* [gym/common] Plot state, action and features of all pipeline blocks. (750)
* [gym/common] PD controller now satisfies position, velocity and acceleration bounds. (750) (765) (768)
* [gym/common] Allows PD control with position action. (750)
* [gym/common] Decouple PD controller action order adapter from acceleration integration. (764)
Patches and bug fixes
* [core] Fix bias/noise check for EncoderSensor. (744)
* [core] Fix exception not caught during stepper integration. (747)
* [core] More appropriate tolerance when checking GCD to avoid false positive. (753)
* [python/viewer] Fix arrow maker with panda3d backend.
* [python/viewer] Fix viewer automatic closing during replay not working. (756)
* [gym/common] Fix corrupted robot proxy if model changes. (746)
Miscellaneous
* [core] Fix some symbols not exported by mistake. (742)
* [gym/common] Refactor 'compute_command' to operate in-place. (764)
* [gym/rllib] Migrate from ray[rllib]==2.5.0 to 2.9.*. (739)
* [misc] More robust build procedure. (739) (746)
* [misc] Upgrade C++ dependencies. (741)
* [misc] Fix numpy version requirement. (750)