FERM is a framework that enables robots to learn tasks within an hour of real time training. Project Page: https://sites.google.com/view/efficient-robotic-manipulation.
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.
Create a conda environment, and install the necessary packages.
conda create -n ferm python=3.7
pip install -r requirements.txt
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
./scripts/script_name.sh
To run robotic experiments, create your gym environment interface with your robotic setup, and substitute the --domain_name
flag with your registered environment name.
To use demonstrations, save the (obs, next_obs, actions, rewards, not_dones)
demonstration tuple (a tuple of X length lists) into 0_X.pt
, where X
is the number of entries saved. Include the --replay_buffer_load_dir=work_directory_path/0_X.pt
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/actor_X.pt
and path_to_expert/model/critic_X.pt
.