jiminy

Jiminy: a fast and portable Python/C++ simulator of poly-articulated robots with OpenAI Gym interface for reinforcement learning

MIT License

Downloads
21.5K
Stars
196
Committers
6
jiminy - Faster constraint solver

Published by duburcqa over 2 years ago

A new custom constraint solver has been implemented. It is more reliable and convergences faster (less than 10 iterations most of the time). The speed is about the same as before the addition of friction cone and maximum energy dissipation. Hardware compatibility issues of Panda3d with some integrated Intel GPU have been addressed and off-screen parallel rendering is now supported. Finally, the recording speed has been greatly improved with Panda3d (x2).

New features

  • [core] Add random sensor jitter.
  • [python/viewer] Add synchronous panda3d backend for subprocess rendering.
  • [python/viewer] Support opening viewer without robot.

Improvements

  • [core] Faster and more reliable constraint solver.
  • [core] Avoid discontinuities at init by starting with contact enabled and adding transitionEps for joint bounds.
  • [core] Faster computation of extra terms (subtree inertias and com, centroidal dynamics)
  • [python/viewer] Dynamic update of available/default backend.
  • [python/viewer] Speed-up x2 replay video recording for panda3d backend.
  • [gym/common] Automatically render ground profile.

Patches and bug fixes

  • [core] Fix potential mismatch between collision pairs and constraints.
  • [core] Fix engine not reset at start if not done before.
  • [core] Initialize stepper with smallest timestep to avoid peaks at init.
  • [core] Enable config baumgarte freq for user-specified constraints.
  • [core] Remove dedicated tolerance for PGS solver.
  • [python/viewer] Fix support of Intel GPU for rendering and on-demand Nvidia with panda3d.
  • [python/viewer] Default to sync panda3d backend if onscreen impossible.
  • [python/viewer] Disable shader in headless mode with panda3d to avoid segfault.
  • [python/viewer] Use physics-based shader on Intel GPU with Panda3d.
  • [gym/common] Fix init sensor data proxy and send llc command.
  • [gym/common] Use fastest modern rng 'SFC64'.

Miscellaneous

  • [misc] Update ANYmal robot model.
  • [misc] Add support of Gym<0.24.0.
  • [misc] Fix support of ray==1.10.0
jiminy - Maintenance release

Published by duburcqa over 2 years ago

The overall stability and reliability has been improved, with a strong focus on the viewer. The support of 'gepetto-gui' has been dropped as it was platform-specific and missing key features.

New features

  • [python/viewer] Drop support of 'gepetto-gui' backend. (#482)
  • [gym/common] Enable to provide custom robot to 'WalkerJiminyEnv'. (#477)

Improvements

  • [core] Always regenerate original flexible model at reset to allow manual overwrite of rigid original model. (#475)
  • [python/viewer] Fallback to generic direct connection through ipykernel for Meshcat (VSCode, Jupyterlab). (#479)
  • [python/viewer] More robust comm filtering for executing meshcat related requests out of order. (#479)
  • [python/viewer] Speed up frame capture and reduce CPU load in offscreen mode for panda3d backend. (#481)
  • [gym/rllib] PPO supports dict and box spaces for observation/action. (#474)

Patches and bug fixes

  • [core] Fix segfault when adding unspecified constraint. (#476)
  • [core] Fix 'buildReducedModel' for pinocchio < 2.6.0. (#477)
  • [core] Fix segfault when initializing engine with null robot. (#477)
  • [python/viewer] Fix connection to existing meshcat process. (#479)
  • [python/viewer] Fix random segfault at exit for synchronous panda3d backend. (#484)
  • [gym/rllib] PPO L2 reg only on train params. (#485)

Miscellaneous

  • [gym/rllib] Refactor PPO implementation to support 'ray>=1.10.0'. (#474) (#485)
  • [misc] Use Ctest for managing C++ unit tests. (#475)

Co-authored-by: Alexis Duburcq [email protected]

jiminy - More realistic contact model

Published by duburcqa almost 3 years ago

The focus of the release was making the contact model more realistic in Jiminy. As a reminder, it is formulated at acceleration level instead of velocity-level with impulse contact forces. The contact solver has been revamped to improve convergence, to ensure isotropic coulomb friction cone, and to follow maximum energy dissipation principal (except during the short transient sliding/sticking, or for dominant non-linear acceleration effects such as Coriolis). Many long lasting bugs in C++ core and Python have been tracked down and fixed.

New features

  • [core] Enforce isotropic solution for PGS. (#467)
  • [core] Compensate PGS bias to ensure maximum energy dissipation for tangential friction. (#468)
  • [python/viewer] Add 'frame' markers. (#464)
  • [gym/common] Add 'evaluate' method to evaluate a callback policy over a whole episode. (#453)

Improvements

  • [core] Compute PGS error in residual space. (#462)
  • [core] PGS skip parameter update if irrelevant. (#464)
  • [core] Force sensors now measure total external force applied on a body.
  • [core] Split constraint and contact options. (#462)
  • [core] Move to next breakpoint if possible to avoid very small timesteps during integration. (#464)
  • [python/viewer] Add support of 'pin.SE3' object for marker pose. (#465)
  • [python/viewer] Support specifying marker orientation using rotation matrix. (#464)

Patches and bug fixes

  • [core] Fix non-linear PGS solving of friction cone. (#461)
  • [core] Fix 'removeContactPoints' if input vector is empty.
  • [core] Fix timestep adjustment for fixed timestep euler explicit stepper. (#464)
  • [core] Fix baumgarte stabilization of orientation for 'FixedFrameConstraint'. (#465)
  • [core] Fix json dump for empty dictionary. (#466)
  • [core] Remove random permutation from PGS since preserving order is important. (#467)
  • [core] Fix 'JointConstraint' position difference not properly computed. (#469)
  • [core] Fix telemetry header to null terminate leading to segfault. (#469)
  • [core] Fix inconsistency between flexible model and data. (#469)
  • [python/log] Fix segfault when loading robot from log. (#466)
  • [python/viewer] Exception handling and timeout if backend recorder for meshcat fails to open. (#452)
  • [python/viewer] Avoid crashing when replying simulations with 'nan'. (#458)
  • [python/viewer] Fix extraction of available sensor data for replay. (#463)
  • [python/viewer] Keep floor hidden even if updated if it was previously hidden for panda3d backend. (#463)
  • [python/viewer] Fix 'display' method if velocity is not provided. (#463)
  • [python/viewer] Fix body selection for panda3d. (#465)
  • [python/viewer] Do not overwrite color for 'frame' marker by default. (#464)
  • [gym/common] Improve exception handling during 'step'. (#458)
  • [gym/common] Do not try to register action to telemetry if empty.
  • [gym/envs] Reduce KD gain for AkY joints of Atlas to prevent numerical instability. (#464)

Miscellaneous

  • [core] Use 'impulse' contact model as default. (#462)
  • [core] Modify 'FixedFrameConstraint' to set ground normal instead of local rotation. (#464)
  • [core] Order 'FixedFrameConstraint' components by solving order. (#467)
  • [gym/common] Rename 'refresh_*' in 'initialize_' when appropriate. (#466)
  • [gym/common] Rename 'refresh_internal' in 'refresh_buffers' and add 'initialize_buffers' method. (#466)
  • [gym/envs] Automatically detect relevant contact points for Atlas. (#464)
  • [misc] Update python packages description and development status. (#458)
  • [misc] Run unit tests in debug mode on Ubuntu 20.04. (#469)

Co-authored-by: Alexis Duburcq [email protected]

jiminy - Stable native support of Mac OS X

Published by duburcqa almost 3 years ago

This release is mainly intended to improve the support of Mac OS X >= 10.14 (Mojave). Now it is on a par with other platforms, with CI configured to run the unit tests on it. It also fixes a bunch of bugs concerning the viewer and the import of jiminy_py itself for developer users.

Improvements

  • [viewer] 'add_markers' now forward positional arguments.
  • [viewer] Interrupt replay without crashing the display window for all backends.
  • [misc] Significant wheels size reduction (~20Mo for each architecture now).
  • [misc] Enable python unit tests on OSX.

Patches and bug fixes

  • [core] Fix sphere constraint.
  • [viewer] Fix meshcat port detection on OS X.
  • [viewer] Disable physics-based shader is no discrete NVIDIA GPU to avoid graphic glitches. (#448)
  • [viewer] Force using 'spawn' multiprocessing context for meshcat to avoid crashes on OS X.
  • [viewer] Fix 'ipykernel' version detection on some setups.
  • [simulator] Fix wrong 'viewer.f_external' forces if render without simulation running.
  • [misc] Fix import of jiminy if boost is installed on the system but not pinocchio/hppfcl/eigenpy.

Miscellaneous

  • [misc] Fix warnings using 'clang' compilation toolchain.
  • [misc] Build shared libs for boost python dependencies on unix to fix binding issues on OS X.
  • [misc] Fix jiminy pywrap copied twice in OS X wheels.
  • [misc] Build only universal2 wheel on OSX whenever possible.
  • [misc] Fix desired chromium version used by pyppeteer being ignored.
  • [misc] Update chromium version used by pyppeteer for the latest one available of any platform.
  • [misc] Fix OS X wheels deployment on Pypi. (#446)
  • [misc] Upgrade python dependencies.
jiminy - Maintenance release

Published by duburcqa almost 3 years ago

Some limitations of Jiminy have been addressed. First, the friction pyramid has been replaced by an actual friction cone for the impulse contact model. Secondly, it is now possible to simulate a flexible model and impulse contact without numerical instability by introducing a new armature-like inertia parameter. Next, the viewer now uses a physics-based shader for Panda3D backend and a bunch of display issues have been fixed. Finally, it is the first release to officially support OS X, including arm Apple M1 CPU. Pre-compiled binaries are distributed on pypi.

New features

  • [core] Implement friction cone for impulse model. (#440)
  • [core] Fix numerical instability of flexibility model by adding armature-like inertia parameter. (#433)
  • [python/viewer] Add physic based rendering of materials to panda3d.
  • [misc] Initial support of Mac (#441)

Patches and improvements

  • [core] Full support of armature for all joints but mimic.
  • [python/viewer] Change direction of lighting in panda3d to fell natural for default camera pose.
  • [python/viewer] Enhanced rendering in panda3d for discrete gpu.
  • [python/viewer] Render meshes two-sided in panda3d to avoid seeing through them.
  • [gym/rllib] Add option to forward keyword arguments to 'ray.init'. (#436)

Bug fixes

  • [python/robot] Fix default hardware config file generator is both collision and visual meshes are defined.
  • [python/viewer] Fix shadow casting area smaller than floor in panda3d.
  • [python/viewer] Fix window name not set properly in panda3d.

Miscellaneous

  • [core] Rename 'pncCollisionData' to 'collisionData' and 'pncModelRigidOrig_' to 'pncModelOrig_'.
  • [core] Fix some implicit type conversions.
  • [misc] Update Python dependencies.
  • [misc] Update Boost from 1.7.1 to 1.7.6.
  • [misc] Build OSX wheels. (#442)
jiminy - Simulation of procedurally generated robots

Published by duburcqa almost 3 years ago

The simulator and viewer is now compatible with robots created manually from scratch without relying on URDF. Additionally, PGS solver with default parameters is now much faster thinks to SIMD vectorization and lower accuracy. The provided Cassie and Atlas environment have been tuned to improve the real time factor, which is now close to 50 on a single core.

New features

  • [core] Enable to initialize 'jiminy::Robot' pinocchio models directly..
  • [python/robot] Enable to load hardware config on existing robot.
  • [gym/envs] Add atlas env with fixed upper body.

Improvements

  • [core] Faster PGS solver. (#423)
  • [core] Add dedicated contact solver options 'tolAbs', 'tolRel'. (#424)
  • [core] Add 'name' getter to 'jiminy::Model', which is a proxy for URDF name.
  • [core] Add visual model to 'jiminy::Model' to avoid relying on URDF for rendering
  • [core/python] Add helper method to build reduced model.
  • [python] Do not rely on 'Robot.urdf_path' anymore.
  • [python/robot] Check if motors and sensors defined in hardware file can be added successfully.
  • [gym/common] Make sure the provided neutral configuration is valid.

Patches and bug fixes

  • [core] Fix wrong computation of external forces.
  • [python/dynamics] Fix 'compute_freeflyer_state_from_fixed_body' method if fixed body is not provided.

Miscellaneous

  • [gym/envs] Tune Cassie and Atlas to improve numerical stability using impulse contact model.
  • [misc] Fix support of matplotlib >= 3.4.
  • [misc] Stricter gym_jiminy optional deps requirements. (#425)
  • [misc] Fix gym_jiminy wheels deployement on pypi (again!).
  • [misc] Fix documentation generation.
jiminy - Various minor bug fixes

Published by duburcqa about 3 years ago

Minor release mainly fixing bugs introduced recently.

New features

  • [core] Add 'orientation' parameter 'randomTileGround' generator.

Improvements

  • [gym/common] Render ground profile automatically during 'play_interactive'.

Patches and bug fixes

  • [core/python] Fix python bindings of 'resetRandomGenerators' method.
  • [core/python] Fix assert in debug.
  • [python/simulation] Fix 'seed' method not resetting the generator if the seed does not change.
  • [python/viewer] Close panda3d viewer cleanly.
  • [gym/rllib] Fix PPO for 'enable_adversarial_noise' = False and 'caps_global_reg' == 0.0.

Miscellaneous

  • [misc] Build wheels for manylinux2014 instead of manylinux2010 because of 'dm-tree'.
  • [misc] Build in Release and Debug on Ubuntu CI.
jiminy - Easy logging of simulation results

Published by duburcqa about 3 years ago

Random terrain generation tools have been translated from Python to C++ to significantly improve efficiency. New utilities to merge and sum random tile ground has been added to generate feature-rich ground profiles without noticeable slowdown wrt flat ground. In addition, it has been made easier to register new variables to the telemetry dynamically and retrieve data from logfiles.

Nota bene: gym_jiminy release were not deployed on pypi since 1.6.27. This problem has been fixed now but there is no plan to add back the missing ones.

New features

  • [core] Add tools to merge and sum heightmaps.
  • [gym/common] Add 'BaseJiminyEnv.register_variable' method easily log variables.
  • [gym/rllib] Add adversarial obs perturbation sampling for spatial regularization. (#414)

Improvements

  • [core] Write terrain generation tools in C++ for efficiency.
  • [core] Enable to re-initialize controllers.
  • [core/python] It is now possible to extract raw python function from 'HeightMapFunctor' if any.
  • [python/viewer] Faster ground profile rendering.
  • [python/viewer] Do not render ground profile if original flat ground.
  • [gym/common] Generic structured space handling by relying on 'dm-tree' package.
  • [gym/common] Support any observation space in gym pipelines.

Miscellaneous

  • [core] Rename 'HeatMap' in 'Heightmap'.
  • [misc] Fix CI not pushing gym_jiminy wheels on pypi.
jiminy - Uneven ground and torsional friction

Published by duburcqa about 3 years ago

Up to now, several key features were missing for the impulse-based LCP contact model to support most cases, and LCP solver was not mature enough to ensure smooth continuous dynamics. The impulse contact model now can handle any contact normal, which makes it suitable for uneven grounds. Moreover, a fast random tile ground generator has been added to easily create parametric challenging environments suitable for curriculum learning. Ultimately, the rendering of engine ground profile is now fully integrated in the viewer for panda3d backend. It will automatically renders the actual ground profile during replay of simulations. The minor release tag has been updated to highlight that impulse contact model is no longer experimental.

New features

  • [core] Add support of torsional friction and contact normal to impulse contact model.
  • [python/generator] Add random tile ground profile generator.
  • [python/viewer] Add support of contact frames display.
  • [python/viewer] Add method to render floor based on 'HeatMapFunctor'.
  • [python/simulator] 'replay' now display the ground profile used by the engine.
  • [gym/rllib] Add temporal barrier regularizer to PPO.

Improvements

  • [core] Move init of contact solver in reset instead of setOptions.
  • [core] Proper default 'stabilizationFreq' for impulse contact model.
  • [core] 'engine_options.contacts.stabilizationFreq' only applies to contact constraints.
  • [python/viewer] 'update_floor' method in panda3d now expects numpy array instead of callable to fix serialization issues.
  • [python/viewer] Speedup rendering of ground profile and improve visual by providing normal to panda3d.
  • [python/viewer] Add option to enable/disable display of ground profile meshes.
  • [python/simulator] Do not reset camera pose if gui already available.

Patches and bug fixes

  • [python/robot] Fix support of URDF model with a single link for automatic hardware config generation.
  • [python/viewer] Add support of ipykernel 6 for meshcat backend interactive display.
  • [python/dynamics] Mitigate a weird segfault in pinocchio bindings of 'centerOfMass' method.
  • [gym/common] Fix automatic telemetry registration of the action.

Miscellaneous

  • [gym/envs] Set baumgarte frequency for cassie internal constraints.
  • [misc] Enforce scipy>=1.2.0 to fix buggy optimizer.
  • [misc] Update 'typing_extensions' required version to fix pylint support for Python 3.6.
jiminy - Fix meshcat backend

Published by duburcqa about 3 years ago

Meshcat viewer backend was mostly unmaintained since a year and was partially broken. This should now be fixed, with the addition of 3D rendering directly inside local VSCode notebooks and local Jupyterlab !

New features

  • [python/viewer] Add height map rendering capability to Panda3d backend.
  • [python/viewer] Add support of jupyterlab and vscode notebooks locally using Meshcat backend.
  • [gym/common] Add flag to 'play_interactive' to ignore 'is_done' state.
  • [gym/rllib] Support obs normalization for PPO spatial regularization.
  • [gym/rllib] Scale spatial loss by observation distance.

Improvements

  • [core] Shuffle constraint solver iterations iif necessary, no matter if constraint set changes.
  • [core] Move contact point at the interface with the ground for impulse model. (#404)
  • [python/viewer] Properly close opening viewer if raises exception at init.
  • [gym/common] Check that simulation data is available before plotting.
  • [gym/rllib] Raise clear exception if observation space is not dict in PPO.
  • [gym/rllib] Replace L2-norm temporal smoothness regularization by L1-norm.

Patches and bug fixes

  • [core/python] Fix bindings signature of some controller's method.
  • [python/plot] Fix missing grid for single plot tabs.
  • [python/viewer] Fix viewer compatibility with meshcat>=0.3.1.
  • [python/viewer] Fix meshcat viewer 'has_gui' method.
  • [python/viewer] Fix meshcat notebook viewer.
  • [gym/common] Fix 'play_interactive' not disabling 'is_training' flag.
  • [gym/rllib] Fix L2 reg not backpropagating gradient.

Miscellaneous

  • [python/viewer] Increase meshcat recorder timeout.
  • [misc] Fix CI dependency install.
  • [misc] Relax ray version requirement.
jiminy - Fix reproducibility issues of the simulation

Published by duburcqa about 3 years ago

Small release fixing reproducibility issues, and updating RLlib tools to make it easier to assess and compare performance between policies.

New features

  • [gym/common] Add train and eval modes to allow specific evaluation behaviors.
  • [gym/rllib] Add l2 regulization loss to PPO.
  • [gym/rllib] Enable to evaluate policy on multiple trials and report statistics.

Improvements

  • [gym/common] 'seed' method now return the actual sequence of seeds instead of only the first one.
  • [gym/common] Do not cast automatically the action space to float32. (#400)
  • [gym/toolbox] Add 'quat_to_yaw_cos_sin' math helper.
  • [gym/rllib] Use noisy samples instead of the true ones to compute global smoothness.
  • [gym/rllib] Make sure the validation is always the same to make it easier to benchmark performance.

Patches and bug fixes

  • [core] Fix log buffer not refreshed after calling 'stop', making last datapoint not accessible. (#396)
  • [python/robot] Fix non-reproducible simulation results.
  • [python/simulator] Fix running simulation not stopped before updating seed.
  • [python/simulator] Fix unexpected error if 'replay' is called without data.
  • [gym/common] Ensure internal '_action' buffer dtype float64. (#400)

Miscellaneous

  • [gym/common] Do not set the seed by default in '_setup' method.
  • [gym/common] Rename '_is_training' in 'is_training'. Fix 'is_training' False by default. (#397)
  • [gym/common] Remove useless conversion of iterator to list.
  • [gym/rllib] Relax ray dependency version requirement.
jiminy - Maintenance release

Published by duburcqa about 3 years ago

This release fixes a new non-critical bugs and contains some minor improvements for gym tools suite.

Improvements

  • [gym/common] More efficient random number generator.
  • [gym/common] Reset internal '_info' buffer before calling 'is_done' to enable storing extra info. (#386)
  • [gym/common] Faster space 'clip' utility.
  • [gym/common] Do not automatically disable telemetry anymore.
  • [gym/common] Enable 'refresh_observation' to access up-to-date shared internal data. (#384)
  • [gym/common] '_setup' updates frame kinematics for neutral configuration by default.
  • [gym/toolbox] Add more convex hull utilities.
  • [gym/toolbox] Add math utilities to extract yaw only from transform.

Patches and bug fixes

  • [core] Fix model parameters random sampling.
  • [core] Make sure random physics parameters are valid.
  • [python/simulator] Fix default external force display during replay.
  • [python/viewer] Fix support of robot without sensors nor freeflyer.
  • [python/viewer] Check that 'time_interval' is valid. Fix out-of-range edge case.
  • [gym/common] Various minor bug fixes.
  • [gym/toolbox] Fix computation of distance from convex hull.
  • [gym/rllib] Fix connection of existing ray cluster head.
  • [gym/rllib] Clip random obs to space bounds in PPO regularization.
  • [gym/rllib] Fix support of non-dict obs space for 'build_policy_wrapper'.

Miscellaneous

  • [misc] Add mass fixed frame with visual to cartpole.
  • [misc] Disable warnings when building SOUP. (#378)
  • [misc] Fix push gym_jiminy wheels on pypi. (#379)
  • [misc] Fix support of python virtual env for easy-install script. (#383)
jiminy - Improve computional efficiency of BaseJiminyEnv

Published by duburcqa over 3 years ago

All unnecessary copies and function calls in learning pipelines are now avoided. In additional, Python architecture has been refactored to reduce dependencies of main packages jiminy_py, gym_jiminy_common, and gym_jiminy_toolbox.

New features

  • [gym/common] Allow to specify custom observer update period for base env to avoid refresh observation during internal steps.
  • [gym/common] Add optional '_refresh_internal' method to share computation between 'is_done' and 'compute_reward'.

Improvements

  • [gym/common] Improve performance by avoiding deepcopy of action in 'compute_command' methods.
  • [gym/toolbox] More versatile compute action helper for rllib. (#373)

Patches and bug fixes

Miscellaenous

  • [python] Remove unused/unmaintained 'smoothing_filter' processing helper.
  • [misc] More generic github action wheel generation script. (#375)
  • [misc] Move 'processing' module from 'jiminy_py' to 'gym_jiminy.toolbox' to remove numba deps.
  • [misc] Move 'rllib' module from 'gym_jiminy.toolbox' to a dedicated 'gym_jiminy.rllib' package to remove rllib deps.
jiminy - Minor bug fixes

Published by duburcqa over 3 years ago

Small release fixing a few minor bugs.

Improvements

  • [python/dynamics] Remove useless joint jacobians computation.

Patches and bug fixes

  • [core/python] Fix bindings of pinocchio overloads.
  • [python/viewer] Fix calls to super in Panda3dQWidget (#370)
  • [misc] Do not try pushing legacy wheels on pypi. (#368)
jiminy - [core] Various minor improvements and bug fixes.

Published by duburcqa over 3 years ago

Maintenance update fixing minor bugs. Some pre-compiled dependencies have been updated.

Improvements

  • [core] Compute centroidal dynamics derivative systematically. (#365)
  • [gym/toolbox] Refactor Rllib PPO to always perform a single forward pass. (#366)

Patches and bug fixes

  • [core] Fix computation of external forces. (#365)
  • [core/python] Fix wrong output array shape for single row or single element eigen matrix.

Miscellaenous

  • [core] Fix eigen stack memory alignment for support of AVX2 instructions.
  • [misc] Add legacy build of jiminy wheel for python 3.8 (numpy<1.20).
  • [misc] Update dependencies (eigenpy==2.6.4, hppfcl==1.7.4).
  • [misc] Fix wheel manylinux seperated artefacts generation. (#364)
jiminy - [python/dyn] Improve efficiency of inverse dynamics

Published by duburcqa over 3 years ago

Another minor release, focusing only on improving performance of constrained inverse dynamics implementation. A very significant speedup by a factor 5 or 10 can be expected.

Improvements

  • [core] Increase efficiency of inverse dynamics in Python.

Patches and bug fixes

  • [python/viewer] Fix edge case when default-initializing viewer for theoretical model.
jiminy - [misc] Hot fix

Published by duburcqa over 3 years ago

Fix several bugs introduced in previous release.

Patches and bug fixes

  • [core] Fix segfault and compilation bug on Windows.
  • [python/dynamics] Fix wrong application point for spatial velocity and acceleration frames.
  • [python/viewer] Fix viewer edge cases when displaying several robots at once.
  • [python/viewer] Fix legend aspect ratio in Panda3d, and display it in line at bottom.
  • [python/viewer] Fix clock widget for Panda3d.
  • [gym/toolbox] Fix edge case in curriculum task scheduler.
jiminy - [gym/toolbox/rllib] Add discrete task space curriculum learning.

Published by duburcqa over 3 years ago

This release introduces several experimental reinforcement learning features, along with a new inverse dynamics helper. A few bugs long-lasting bugs and inconsistencies in core have finally been addressed.

New features

  • [python/dynamics] Add inverse dynamics helper.
  • [gym/toolbox/rllib] Add policy symmetry regularization to PPO.
  • [gym/toolbox/rllib] Add discrete hierarchical task space curriculum sampling.

Improvements

  • [core] Expose 'Model.computeConstraint' in Python bindings.
  • [core] Do not update forward kinematics (position) in 'Robot.computeConstraints'.
  • [python/dynamics] Simplify helpers to take advantage of new pinocchio features.
  • [gym/toolbox/rllib] Automatically connect to existing cluster if any.
  • [gym/toolbox/rllib] Add helper to restore policy without trainer nor ray redis.
  • [gym/toolbox/rllib] Add memory tracing for memory leaks in debug mode.

Patches and bug fixes

  • [core] Fix memory leaks in Eigen->Numpy Python bindings.
  • [core] Rename 'Model.hasConstraint' in 'Model.hasContraints' for consistency.
  • [core] Fix motor armatures not properly propagated after setting motor options.
  • [python/dynamics] Replace pinocchio methods by jiminy core overloads when appropriate.

Miscellaneous

  • [python] Add some missing documentations.
  • [misc] Fix python executable detection on manylinux sometimes finding pypy instead of cython.
  • [misc] Updating gitignore to support use of virtual environment.
jiminy - [gym/toolbox] Add dedicated gym toolbox for rllib.

Published by duburcqa over 3 years ago

This release introduces a set of reinforcement learning tools based on ray[rllib]. In addition, it is now easier to replay and compare trajectories in different formats (sequence of states, log files, log data, and current simulation).

New features

  • [python/simulator] Replay extra logs/trajectories with current simulation.
  • [gym/toolbox/rllib] Add dedicated rllib toolbox.
  • [gym/toolbox/rllib] Provide PPO CAPS implementation.

Improvements

  • [python/viewer] Refactor Panda3d backend screen refresh and Qt widget to avoid edge cases.
  • [gym/toolbox/rllib] Do not provide default log dir since it is error prone
jiminy - [python/viewer] Hot fix viewer issues.

Published by duburcqa over 3 years ago

Minor patch to fix viewer issues introduced in previous release.