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)