Skip to content

Speed-up pipeline env and add useful blocks

Compare
Choose a tag to compare
@duburcqa duburcqa released this 29 Sep 14:22
· 58 commits to dev since this release
d26bc53

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)