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 - Various minor patches and bug fixes

Published by duburcqa about 4 years ago

  • [Viewer] Set default backend at class level automatically
  • [Viewer] Fix 'fix_mesh_path' method returning None for package only mesh paths
  • [Viewer] Fix Meshcat index.html event handling on closing ipython comm
  • [Viewer] Bypass Chrome/WebGL GPU backlisting with Pypetter recording backend
  • [Viewer] Fix chrome executable path for Google Colab
  • [Viewer/play_trajectories] Do not delete robot automatically in Notebooks
  • [Viewer/server] Use set to manage comm pool instead of list
  • [BasicSimulator] Fix callback
  • [engine_async] Update default engine_async camera pose
  • [misc] Fix corrupted example notebook
  • [misc] OpenCV is now an optional dependency (only used for Gepetto-gui backend)
  • [misc] Generate pip wheel artefacts systematically when running the CI
jiminy - Native support of Jupyter and Google Colaboratory

Published by duburcqa about 4 years ago

New features and improvements:

  • [Viewer] Native and full support of Jupyter, using directly kernel communication to avoid websockets and port forward all together
  • [Viewer] Remove the support of port forwarding, since it is not longer relevant
  • [Viewer] Create display cell in notebook mode when instantiating a viewer while no display cell is already available

Patches and bug fixes:

  • [Viewer] Make sure the backend browser is killed at exit
  • [Viewer] Do NOT catch KeyboardInterrupt anymore
  • [Viewer] Avoid timeout on low-hand machine when starting video recording
  • [Viewer] Improve the reliability of running Meshcat server detection.
  • [Viewer] Remove heartbeat check since it is impossible to estimate appropriate response time
  • [Viewer] Make sure that the viewer backend is alive before executing commands
  • [Viewer] Make sure the backend processes are terminated cleanly in any cases
  • [Viewer] Do NOT close backend automatically when 'close' is called by an instance
  • [Viewer] Check for browser availability when calling 'open_gui', and wait for the client to be ready

Various other minor fixes. More details in #187 .

jiminy - Speed-up video recording for Meshcat

Published by duburcqa about 4 years ago

New features and improvements:

  • [Viewer] 'wait' methods no longer requires being parent of meshcat server
  • [Viewer] Enable to set replay speed of recorded video
  • [Viewer] Improve recording speed for meshcat from 2 fps to 10 fps by using latest Chrome version and Javascript WebM Writer
  • [Viewer] Recorded video format is now '.webm' instead of '.mp4'

Patches and bug fixes:

  • [Viewer] Make sure no orphan process is left behind at exit, with a clean backtrace, even for SIGTERM signal and Python exceptions
  • [Viewer] Detach camera if it has been attached by play_trajectory
  • [Viewer] Capture frame using Meshcat in ".webp" format instead of ".png" to improve efficiency
  • [Viewer] Fix meshcat client redirection error when trailing backslash is missing in url
jiminy - Enhanced video recording capability

Published by duburcqa about 4 years ago

New features:

  • [viewer/Viewer] Add viewer 'attach_camera' / 'detach_camera' mechanism and use it for travelling

Patch and bug fixes:

  • [viewer/Viewer] Remove misused signal handling
  • [viewer/Viewer] Do not enforce multiprocess spawn on linux
  • [viewer/Viewer] Fix meshcat camera using capture_frame
  • [viewer/Viewer] Fix logger warning filtering
  • [viewer/Viewer] Fix relative camera pose wrong computation
  • [viewer/play_trajectory] Fix video recording not working with Gepetto-gui
  • [viewer/play_trajectory] Enforce video framerate and file format automatically (30fps, mp4)
  • [viewer/play_trajectory] Add video compatibility with HTML5 (can be embedded in markdown...etc)
  • [viewer/play_trajectory] Enable robots offset during video recording
  • [viewer/play_trajectory] Add support of camera travelling for both video recording and "human" mode
  • [viewer/play_trajectory] Enable custom relative camera pose during travelling
  • [Gym/Robot] Remove 'depth_array' rendering mode since it is not available
  • ... Various other minor bug fixes.
jiminy - Fix Windows / Jupyter support. New features for Gym interface.

Published by duburcqa about 4 years ago

This release improves Jupyter notebook and Windows support using meshcat as Viewer backend. It also introduces new features to the Gym robot interface and updates its API to be closer to Gym Mujoco.

New features:

  • [python/engine_asynchronous] Properly handle viewer backend exception.
  • [viewer/Viewer] Viewer now creates unique robot_name if not specified.
  • [viewer/Viewer] Enable capture frame on Windows and in Jupyter notebook using background process and IPC.
  • [viewer/Viewer] Add option to disable viewer automatic gui opening at viewer backend startup.
  • [viewer/Viewer] Redirect meshcat 'static' url without trailing '/' for convenience
  • [viewer/play_trajectory] Do not throw exception if viewers in input are no longer available.
  • [viewer/play_trajectory] Merge video recording options in a single one.
  • [gym/robot] Catch engine exception to avoid step failure.
  • [gym/robot] Improve temp file management.
  • [gym/robot] Remove robot name attribute
  • [gym/robot] Support and extend standard methods of Mujoco/Gym interface.
  • [gym/robot] Support user-defined reward info in dedicated field (usually, each individual component of total step reward)
  • [gym/robot] Support 'rgb_array' rendering mode
  • [gym/robot] Add terminal reward computation
  • [gym/robot] Add whole episode replay (including video recording capability)
  • [gym/robot] Remove extra bounds to observation space to deal with soft joint bounds. Rather clamp the observation and set 'is_done' to True.

Patches and bug fixes:

  • [misc] Fix opencv requirement not building on manylinux
  • [python/engine_asynchronous] Do not require a meshcat client during rendering
  • [gym/robot] Do not delete log file in debug mode
  • [viewer/Viewer] Do not throw error but warning if 'wait' is not available.
  • [viewer/Viewer] Do not kill meshcat server and recorder when SIGINT signal is emitted.
  • [viewer/Viewer] Make sure multiprocessing IPC managers are properly closed when viewer is closed.
  • [viewer/Viewer] Improve running meshcat server detection.
  • [viewer/Viewer] Improve default meshcat initial camera pose.
  • [viewer/Viewer] Fix capture frame not waiting for mesh loading.
  • [viewer/Viewer] Fix viewer open_gui if already existing meshcat server.
  • [viewer/Viewer] Fix broken viewer in Jupyter even on Linux
  • [viewer/Viewer] Fix favicon request warning using meshcat
  • [viewer/play_trajectory] Fix video recording.
  • [gym/robot] Fix clamped observation computation
jiminy - Jiminy 1.3.0

Published by duburcqa about 4 years ago

It has been a long way since the first open-source release of Jiminy in February 2019. Even if no significant breaking changes have been introduced since 1.2.43, many have been since release of 1.2.0. Now that the API is more stable, it is time to bump up the minor version tag, with the hope to not introduce breaking changes in patch release anymore.


Changelog since 1.2.43

  • [gym_jiminy] Jiminy is using soft bounds for the joint position and velocity limits. Adding some margins to avoid out-of-bounds observations.
  • [jiminy/viewer] Add capture frame capability using meshcat backend
  • [jiminy/viewer] Add set camera transform capability to meshcat backend
  • [jiminy/viewer] Enable customization for meshcat viewer environment
  • [jiminy/viewer] Enable bi-directional communication between meshcat web client and python zmq socket
  • [jiminy/viewer] Enable synchronization with client for meshcat. Enable to wait for loading meshes in meshcat clients
  • [jiminy/viewer] More robust subprocess termination. Improved exception handling.
  • [jiminy/viewer] Add option to record trajectories in viewer
  • [misc] Update Jiminy dependencies versions to use the latest version available for all of them
  • [misc] Dependency version parity between linux and windows.
  • [misc] Create patch files instead of hard-to-maintain on-the-fly source modifications for dependency build scripts