This repository contains code for the paper:
"TuneNet: One-Shot Residual Tuning for System Identification and Sim-to-Real Robot Task Transfer"
Adam Allevato, Elaine Schaertl Short, Mitch Pryor, and Andrea Thomaz
This includes all code needed to make the plots contained in the paper (Figure 2), showing parameter error as a function of simulation rollouts.
- Python 3.5+
TuneNet is implemented using PyTorch.
The network architecture is defined in
The network train and test code is in
Some numbers (# of tuning iterations, # of training epochs) have been modified for faster runtime, at the cost of reduced performance. To achieve full performance, search the codebase for "PAPER VALUE" and update the defined variables to their original values as specified in the comments.
- Import the conda environment
conda env create -f environment.yml conda activate tunenet pip install -e .
- Generate bouncing-ball dataset
python bin/generate_ball_dataset.py generate_tune_gt
- Train TuneNet and TuneNet "Direct Prediction" models
Tensorboard runs are automatically saved to the
- Install kernel and launch Jupyter notebook
python -m ipykernel install --user --name tunenet --display-name "Python (tunenet)" jupyter notebook
switch to the new kernel
Run the entire notebook to generate performance plots and compare with other gradient-free estimation techniques