Skip to content

Env pipeline refactoring

Compare
Choose a tag to compare
@duburcqa duburcqa released this 27 Jun 07:36
· 49 commits to master since this release

The implementation of pipeline design for learning environments (block diagram paradigm) has been completely revamped to be more versatile and modular. In addition, it now induces almost no overhead thanks to a new zero-copy architecture. Following these changes, the existing PID control block has been greatly improved and a Mahony filter block estimating IMU orientations from measurements has been added. The pipeline for Atlas leveraging these feratures has a real time factor of 30 on a single core.

New features

  • [core|python] Enable to register int64 to controller telemetry. (#616)
  • [python/viewer] Support specifying relative camera pose in 'play_trajectories' method. (#608)
  • [gym_jiminy/common] 'PIDController' action is now N-th order deriv. of target motors positions. (#616)
  • [gym_jiminy/common] Full support of observer/controller internal state in pipelines. (#616)
  • [gym_jiminy/common] Add Mahony filter pipeline block and activate it for all robotics envs. (#618)
  • [gym_jiminy/toolbox] Add vectorized quat to rpy math utils. (#608)

Improvements

  • [core] IMU sensors no longer measure quaternion directly. (#618)
  • [core|python] More robust log loading. (#612)
  • [python/log] More consistent custom mesh search path handling. (#613)
  • [python/viewer] Exception handling when creating graphics pipe for panda3d. (#608)
  • [python/viewer] Update floor tiling and skybox to look the same in meshcat and panda3d. (#616)
  • [gym_jiminy/common] FrameRateLimiter only applies to 'human' render mode by default. (#614)
  • [gym_jiminy/common] Refactor pipeline for consistency, versatility, and efficiency (zero-copy). (#618)
  • [gym_jiminy/common] Automatically register pipeline observers features to jiminy telemetry. (#618)

Patches and bug fixes

  • [core] Fix SensorsDataMap without shared memory. (#616)
  • [python] Fix memory leak due to circular reference.
  • [python/simulator] Fix handling of extra keyword arguments in 'render' method. (#616)
  • [python/viewer] Fault tolerance at init. (#608)
  • [python/viewer] Fix default viewer robot name in Simulator. (#608)
  • [python/viewer] Fix wrong camera rotation when relative to itself. (#616)
  • [gym_jiminy/toolbox] Consistent in-out types in math utils. (#611)
  • [gym_jiminy/rllib] Fix user-specified 'log_root_path' arg ignored by "initialize' method. (#607)
  • [gym_jiminy/rllib] Fix exception in 'train' method when 'reward_threshold' not defined by env. (#607)
  • [gym_jiminy/rllib] Fix 'PPO' init by reverting changes. (#609)
  • [gym_jiminy/rllib] Fix 'evaluate_local_worker' for 'num_envs_per_worker' > 1. (#609)

Miscellaneous

  • [core/python] Do not support 'np.matrix' anymore. (#618)
  • [misc] Clarify TLMC specification. (#604)
  • [misc] Add manual collision detection example script. (#608)
  • [misc] Add TorchRL-based acrobot training example. (#615)
  • [misc] Update pinocchio and hpp-fcl deps. (#608)
  • [gym_jiminy/common] Migrate from 'gym<0.24' to 'gymnasium>=0.26,<0.29'. (#616)
  • [gym_jiminy/rllib] Migrate from 'ray~=2.2.0' to 'ray~=2.5.0'. (#616)
  • [misc] Full support of Python 3.11 on Linux. (#616)