Speed-up pipeline env and add useful blocks
This release aims at making pipeline environment more efficient and practical for training real robots using RL. In particular, highly-efficient pre- and post- processing wrappers have been added, including flattening and normalization of observations and actions. A pipeline env leveraging these new features on Atlas has a real time factor of 55 on a single core.
New features
- [gym_jiminy/common] Add 'build_map', 'build_reduce' generic utils for nested spaces. (#641)
- [gym_jiminy/common] Add 'NormalizeObservation' and 'NormalizeAction' wrappers. (#639, #644)
- [gym_jiminy/common] Add 'FlattenObservation' and 'FlattenAction' wrappers. (#644)
- [gym_jiminy/common] Add 'FilterObservation' wrapper. (#639, #644)
- [gym_jiminy/common] Add motor safety control block. (#639, #644)
- [gym_jiminy/common] Deal with twist estimate drift in Mahony Filter. (#645)
Improvements
- [core] Skip useless forward kinematics when updating telemetry. (#635)
- [core] Refactor telemetry sender to improve efficiency. (#635)
- [core] Monitor number of successive constraint solving failure. (#644)
- [core/python] Add optimized 'array_copyto' helper method. (#641)
- [gym_jiminy/common] Better handling of maximum simulation duration. (#621)
- [gym_jiminy/common] Speed-up env pipeline. (#632, #633, #634, #635, #641)
- [gym_jiminy/common] Improve motor to encoder handling in control blocks. (#635, #641)
- [gym_jiminy/common] Add custom velocity limit to PID controller. (#637)
- [gym_jiminy/common] Refactor build pipeline to avoid dynamic class definition. (#637)
- [gym_jiminy/common] Add internal block state to telemetry. (#639)
- [gym_jiminy/common] Add tolerance to env obs contain check. (#639)
- [gym_jiminy/common] Add option to MahonyFitler block to remove twist from estimate. (#644)
Patches and bug fixes
- [core] Fix propagation of rotor inertia and command limit. (#621)
- [core] Fix Euler updating derivative at beginning instead of end of step. (#625)
- [core/python] Fix sensors map iterator
__iter__
. (#633) - [core/python] Fix 'Robot.constraints' and 'JointConstraint.rotation_dir' accessors. (#637)
- [python/plot] Fix various visual glitches and improve layout. (#643)
- [python/viewer] Fix exception for negative sleep time. (#622)
- [gym_jiminy/rllib] Fix custom config handling. (#631)
- [gym_jiminy/common] Remove useless action buffer from ControllerBlock. (#635)
Miscellaneous
- [misc] Full support of Python 3.11 for MacOS. (#621)
- [misc] Fix embedded shared library optional loading. (#622)
- [misc] Update all C++ dependencies and move to C++17. (#631)
- [misc] Cleanup cmake instruction set propagation to pip c++ modules. (#637)
- [misc] Add support of CppADCodeGen. (#637)
- [misc] Enable numba cache for faster startup. (#641)