The environment pipeline design has been streamlined. It is not only more versatile and faster but also less buggy. It should be ready now to be used for real-world applications.
New features
- [gym_jiminy/common] Add 'AdaptLayoutObservation' that generalizes 'FilterObservation'. (#835)
- [gym_jiminy/common] Add 'QuantityObserver' block. (#838)
- [gym_jiminy/common] Enable env composition to augment the observation space with trajectory reference. (#838)
- [gym_jiminy/common] Add 'ScaleObservation', 'ScaleAction' env pipeline wrapper blocks. (#839)
Improvements
- [python/dynamics] Take into account stride offset when trajectory time is wrapping. (#838)
- [python|gym_jiminy] More natural figure layout to improve readability. (#837)
- [gym_jiminy/common] Do not permanently alter original simulation options with enabling debug and/or evaluation modes. (#832)
- [gym_jiminy/common] Rewrite binary log file automatically when calling 'BaseJiminyEnv.stop' in debug or evaluation mode. (#832)
- [gym_jiminy/common] Add previous action as input argument for evaluation policy callback. (#832)
- [gym_jiminy/common] Automatic environment pipeline update. (#832)
- [gym_jiminy/common] Improve numerical stability and speed of 'swing_from_vector'. (#834)
- [gym_jiminy/common] Add support of 'none' in pipeline config files. (#834)
- [gym_jiminy/common] Add 'ignore_unbounded' optional argument to flatten obs/act wrappers. (#834)
- [gym_jiminy/common] Add 'compute_rpy' optional argument to mahony observer. (#837)
- [gym_jiminy/common] Add 'compute_rpy' optional argument to deformation estimator. (#837)
- [gym_jiminy/common] Add locking mechanism to trajectory databaset. (#838)
- [gym_jiminy/common] More robust pipeline registration mechanism. (#838)
- [gym_jiminy/common] Support string representation of enums in pipeline config. (#838)
- [gym_jiminy/common] Faster env pipeline. (#841) (#842)
- [gym_jiminy/toolbox] Add support of arbitrarily nested task-settable env. (#832)
- [gym_jiminy/envs] Add mirror mat to obs/action spaces. (#832)
Patches and bug fixes
- [core] Fix symbol visibility issues for some classes on windows. (#836)
- [core] Fix bindings and serialization of convex geometry meshes. (#836)
- [core] Fix 'array_copyto' helper. (#841)
- [python/viewer] Fix 'add_camera'. (#831)
- [python/viewer] Use firefox instead of chromium for offscreen rendering with meshcat to fix rendering on MacOS VM. (#832)
- [python/viewer] Fix support of '-' in robot name. (#834)
- [python/viewer] Fix conversion of 'hppfcl.Convex' to Panda3D. (#836)
- [gym_jiminy/common] Disallow switch between evaluation and training mode when a simulation is running. (#832)
- [gym_jiminy/common] Fix replay if no simulation is running. (#832)
- [gym_jiminy/common] Fix composed reward computation. (#832)
- [gym_jiminy/common] Use metaclass instead of inheritence for abstract classes. (#832)
- [gym_jiminy/common] Enable typing of the obs and action spaces for 'gym.Env'. (#832)
- [gym_jiminy/common] Fix nested gym space helpers. (#832)
- [gym_jiminy/common] Fix missing final state when writing eval/debug log. (#834)
- [gym_jiminy/common] Fix 'quat_multiply' to support in-place operation. (#834)
- [gym_jiminy/common] Add twist estimate in internal mahony state if estimated. (#834)
- [gym_jiminy/common] Fix mahony filter leaky integration for very small time constant. (#834)
- [gym_jiminy/common] Check IMU and flex frames not empty when adding Mahony filter. (#834)
- [gym_jiminy/common] Fix base 'BaseJiminyEnv.stop' not called in pipeline. (#834)
- [gym_jiminy/common] Support pipelines without any layer. (#834)
- [gym_jiminy/common] Make sure that the initial PD controller state is within bounds. (#835)
- [gym_jiminy/common] Fix trajectory file never closed if loading fails. (#838)
- [gym_jiminy/common] Add composition wrapper before observer-controller blocks. (#838)
- [gym_jiminy/common] Fix 'AdditiveMixtureReward' for 'order=inf'. (#838)
- [gym_jiminy/common] Fix partially broken 'spaces.build_reduce'. (#839)
- [gym_jiminy/rllib] Full refactoring to support ray-rllib 2.38. (#832)
- [misc] Drop support of Python<3.10. (#831)