Framework for Efficient Robotic Manipulation

FERM is a framework that enables robots to learn tasks within an hour of real time training. Project Page:

The project and this codebase are joint work by Albert Zhan*, Ruihan (Philip) Zhao*, Lerrel Pinto, Pieter Abbeel, Misha Laskin. The implementation is based off of RAD.

Getting Started

Create a conda environment, and install the necessary packages.

conda create -n ferm python=3.7
pip install -r requirements.txt

Running Experiments

Sample scripts are included in the scripts folder. This includes training, evaluating, as well as behavior cloning baselines. To launch the experiments, navigate the project root folder and run


Robotic Experiments

To run robotic experiments, create your gym environment interface with your robotic setup, and substitute the --domain_name flag with your registered environment name.

Using Demonstrations

Real world demonstrations

To use demonstrations, save the (obs, next_obs, actions, rewards, not_dones) demonstration tuple (a tuple of X length lists) into, where X is the number of entries saved. Include the --replay_buffer_load_dir=work_directory_path/

Sim demonstrations

Our sim experiments use large amounts of demonstrations, which are generated on the fly through an expert policy that uses state input. Include the tags --demo_model_dir=path_to_expert --demo_model_step=X, where the expert policy is saved as path_to_expert/model/ and path_to_expert/model/