This release mainly streamlines environment composition (i.e. plug-and-play rewards and termination conditions). Several API has been refactor to be more convenient and intuitive. Notably, the official gym wrapper API (gymnasium>=1.0) to get/set nested attributes has been adopted (i.e. (get|set)_wrapper_attr
). Besides, a few additional quantities have been added. As usual, several bugs, this time mainly related to ray[RLLib], have been fixed, and task curriculum has been refactored to be implemented as a pipeline wrapper rather than a mixin class to integrate nicely with environment pipeline design.
New features
- [gym_jiminy/common] Add instantaneous mechanical power quantity. (#862)
- [gym_jiminy/common] Add support of ellipsis to 'MaskedQuantity'. (#862)
- [gym_jiminy/common] Add generic concatenation quantity. (#862)
- [gym_jiminy/common] Add quantity mixing reference position vector with true odometry pose. (#862)
Improvements
- [core|python] Ground profile now included in persistent log files and automatically loaded for replay. (#867)
- [gym_jiminy/common] Flatten info hierarchy for reward components. (#862)
- [gym_jiminy/common] Do not store individual termination condition states in info. (#862)
- [gym_jiminy/common] Use asymmetric sigmoid normalization for stability reward. (#862)
- [gym_jiminy/common] Trajectory time mode is not specific to each trajectory in the dataset. (#863)
- [gym_jiminy/common] Trajectory time offset is now a global attribute of the dataset. (#863)
- [gym_jiminy/common] 'QuantityManager' now has its own API instead of abusing mutable dict. (#863)
- [gym_jiminy/common] Stop relying on confusing dark-magic '__getattr__' in favor of explicit delegation. (#863)
- [gym_jiminy/common] Add option to allow registering variables to the telemetry in training mode. (#862)
- [gym_jiminy/common] Move initial state sampling after reset all of the layers of the pipeline. (#867)
- [gym_jiminy/toolbox|rllib] Task-settable capability is now provided by a wrapper. (#864)
Patches and bug fixes
- [gym_jiminy/common] Fix hard-coded termination conditions not being recorded in 'info'. (#862)
- [gym_jiminy/common] Fix 'log_path' not properly reset at setup. (#862)
- [gym_jiminy/common] Fix 2D Euclidean space angle algebra for drift and shift termination conditions. (#865)
- [gym_jiminy/rllib] Fix evaluation sampling. (#863)