robomimic v0.3 Release Notes
Highlights
- 🧠 New Algorithms (BC-Transformer, IQL)
- 🤖 Full compatibility with robosuite v1.4 and DeepMind's MuJoCo bindings
- 👁️ The ability to use pre-trained image representations for policy learning
- 📈 Support for wandb logging
- Better data augmentation support
- Other quality of life improvements
New Algorithms
BC-Transformer
Transformer-based policies are becoming increasingly prevalent in the research community. We provide an implementation of BC-Transformer (Behavioral Cloning with a Transformer). It is a strong baseline for the robomimic datasets, often outperforming BC-RNN. We hope that this provides an easy way for our users to start using transformer-based policies.
We provide a template configuration file for BC-Transformer that contains suggested parameters for the model. To learn how to train a transformer, either with our default configuration file or with custom parameters, please refer to our tutorial.
IQL
Implicit Q-Learning (IQL) is a popular offline RL method that has seen widespread use in the research community. We provide an implementation along with benchmarking results on D4RL. Reproducing these results is easy -- see the instructions here.
Pre-trained Image Representations
We make it easy to use pre-trained image representations such as R3M and MVP for image-based agents in robomimic. See instructions here.
Wandb Logging
We now support logging with wandb (in addition to tensorboard). Using it is simple. Follow this guide for more details.
Better Data Augmentation Support
We now support observation randomizers, including crop randomizer, color randomizer, and gaussian randomizer. They will correctly detect the train/eval mode and change their behaviors accordingly.
CropRandomizer
: Take random crops of image-like observations.ColorRandomizer
: Samples random color jitters in terms of brightness, contrast, saturation, and hue. Applies to RGB image observations.GaussianRandomizer
: Add Gaussian noise to input. Applies to any observations.
For more details on how they work, please refer to the documentation
Full compatibility with robosuite v1.4 and DeepMind's MuJoCo bindings
Our original robomimic datasets are now compatible with robosuite v1.4 (the latest robosuite release) and the DeepMind MuJoCo bindings. The best part of this is that MuJoCo installation is much less painful now!
We highly recommend updating robosuite and switching from mujoco-py to DeepMind's MuJoCo bindings. All our tests now assume robosuite v1.4 is installed, and our dataset download script download the versions compatible with robosuite v1.4 by default. You can still use the old versions by using the download script in robomimic v0.2, or using the download links in the v0.2 documentation.
Other Improvements
We outline other improvements here.
- Image datasets can use significantly less storage now -- we provide an option to use image compression and also exclude the
next_obs
key (which is unneeded for imitation learning algorithms) in our image extraction script. More details here. - A new colab notebook to get started easily
- Users must now specify train and validation hdf5 keys explicitly in the config when setting
config.experiment.validate = True
. This avoids any ambiguity in what data is being used for training and for validation, and offers more flexibility for using different training and validation splits. See more notes here. - Moved some core observation processing models into
models/obs_core.py
- Updated docs and tutorials
Contributor Spotlight
We would like to introduce the newest member of our robomimic core team Matthew Bronars, who helped with this release!
This release was a major team effort. Here is a breakdown of contributed features by team member.
- BC-Transformer (@snasiriany, @MBronars, @amandlek)
- IQL (@snasiriany)
- Pre-trained image representations (@j96w, @danfeiX, @MBronars)
- Wandb logging (@snasiriany)
- Better Data Augmentation Support (@danfeiX, @cremebrule)
- Compatibility with robosuite v1.4 (@snasiriany)
- Colab notebook (@danfeiX)
- Improvements to dataset storage and train-valid splits (@amandlek)