Skip to content

v1.4 - New Mujoco Backend

Latest
Compare
Choose a tag to compare
@cremebrule cremebrule released this 30 Nov 07:48
· 4 commits to v1.4 since this release
fbee584

robosuite 1.4.0 Release Notes

  • Highlights
  • New Features
  • Improvements
  • Critical Bug Fixes
  • Other Bug Fixes

Highlights

This release of robosuite refactors our backend to leverage DeepMind's new mujoco bindings. Below, we discuss the key details of this refactoring:

Installation

Now, installation has become much simpler, with mujoco being directly installed on Linux or Mac via pip install mujoco. Importing mujoco is now done via import mujoco instead of import mujoco_py

Rendering

The new DeepMind mujoco bindings do not ship with an onscreen renderer. As a result, we've implented an OpenCV renderer, which provides most of the core functionality from the original mujoco renderer, but has a few limitations (most significantly, no glfw keyboard callbacks and no ability to move the free camera).

Improvements

The following briefly describes other changes that improve on the pre-existing structure. This is not an exhaustive list, but a highlighted list of changes.

  • Standardize end-effector frame inference (#25). Now, all end-effector frames are correctly inferred from raw robot XMLs and take into account arbitrary relative orientations between robot arm link frames and gripper link frames.

  • Improved robot textures (#27). With added support from DeepMind's mujoco bindings for obj texture files, all robots are now natively rendered with more accurate texture maps.

  • Revamped macros (#30). Macros now references a single macro file that can be arbitrarily specified by the user.

  • Improved method for specifying GPU ID (#29). The new logic is as follows:

    1. If render_device_gpu_id=-1, MUJOCO_EGL_DEVICE_ID and CUDA_VISIBLE_DEVICES are not set, we either choose the first available device (usually 0) if macros.MUJOCO_GPU_RENDERING is True, otherwise use CPU;
    2. CUDA_VISIBLE_DEVICES or MUJOCO_EGL_DEVICE_ID are set, we make sure that they dominate over programmatically defined GPU device id.
    3. If CUDA_VISIBLE_DEVICES and MUJOCO_EGL_DEVICE_ID are both set, then we use MUJOCO_EGL_DEVICE_ID and make sure it is defined in CUDA_VISIBLE_DEVICES
  • robosuite docs updated

  • Add new papers

Critical Bug Fixes

  • Fix Sawyer IK instability bug (#25)

Other Bug Fixes

  • Fix iGibson renderer bug (#21)

Contributor Spotlight

We would like to introduce the newest members of our robosuite core team, all of whom have contributed significantly to this release!
@awesome-aj0123
@snasiriany
@zhuyifengzju