Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RBE 577 Project 4: Imitation Learning Expert

Authors: Filippo Marcantoni and Prahladh Raja

This repository contains the experiment artifacts for imitation learning on the robosuite PickPlaceCan task. The project uses robomimic to train and evaluate Behavioral Cloning and Diffusion Policy models from successful human demonstrations collected with a Panda robot.

The repository is organized as a reproducibility and reporting artifact: it includes training configurations, training logs, and rollout videos. The raw HDF5 dataset and model checkpoints are expected to be stored externally because of their size.

Project Summary

  • Task: robosuite PickPlaceCan
  • Robot: Panda
  • Control: 7-dimensional OSC_POSE action space
  • Dataset: 59 successful human demonstrations
  • Frameworks: robosuite for simulation and demonstration collection, robomimic for training, evaluation, logging, checkpointing, and rollout video generation
  • Methods evaluated: Behavioral Cloning, recurrent Behavioral Cloning, GMM variants, and Diffusion Policy
  • Primary metric: rollout success rate

Unless otherwise noted, rollout evaluations use 10 episodes with a horizon of 400 environment steps.

Repository Structure

.
|-- README.md
|-- logs/
|   |-- *.txt
|   `-- demo_count/
|       |-- bc/
|       `-- diffusion/
|-- training_configs/
|   `-- *.json
`-- videos/
    |-- bc_rollout.mp4
    |-- diffusion_rollout.mp4
    `-- diff_demo50_rollout.mp4

Included Artifacts

  • training_configs/: robomimic JSON configuration files for the main BC and Diffusion Policy runs.
  • logs/: full terminal logs from training and rollout evaluation.
  • logs/demo_count/: logs for the controlled data-efficiency study using 5, 10, 20, and 50 demonstrations.
  • videos/: representative rollout videos for the best BC run, the diffusion hyperparameter sweep, and the final 50-demonstration diffusion run.

External Artifacts

The following files are referenced by the configs and logs but are not included in the current repository snapshot:

  • datasets/demo_obs.hdf5: processed demonstration dataset.
  • *.pth model checkpoints: saved robomimic policy weights.
  • TensorBoard event directories and generated figures, if used for the final report.

Dataset

The expected training dataset path is:

datasets/demo_obs.hdf5

The dataset contains 59 successful demonstrations for the PickPlaceCan task. The main configurations use the following low-dimensional observation keys:

  • robot0_eef_pos
  • robot0_eef_quat
  • robot0_gripper_qpos
  • object

Image-based experiments additionally use RGB observations from:

  • agentview_image
  • robot0_eye_in_hand_image

Rendered RGB observations are configured at 84 x 84 resolution. The demonstration-count experiments use dataset filters such as demo_count_train_5, demo_count_train_10, demo_count_train_20, demo_count_train_50, and demo_count_valid.

Result Highlights

The success rates below are extracted from the included training logs. Peak reports the best checkpoint-level rollout result observed during training, while Final reports the last logged rollout result for that run.

Result Run Modality Peak Success Final Success
Best overall policy diff_demo50_image Low-dimensional state + RGB 0.90 at epoch 500 0.90
Best BC policy bc_rnn_seq20_lr1e4 Low-dimensional state 0.90 at epoch 950 0.80
Best diffusion sweep run diffusion_image_1000_lr5e5 Low-dimensional state + RGB 0.90 at epoch 650 0.50
Best low-dimensional diffusion run diffusion_lowdim_h32 Low-dimensional state 0.60 at epoch 350 0.40

The strongest overall result came from image-based Diffusion Policy trained on the 50-demonstration subset, which reached and finished at 0.90 rollout success. Recurrent BC also performed strongly: the best sequence-length-20 LSTM BC checkpoint reached 0.90, with a final logged success rate of 0.80.

Behavioral Cloning Experiments

Run Config Log Observations Peak Success Final Success
Original BC baseline training_configs/bc_50_original.json logs/bc_50_log.txt Low-dimensional state 0.04 0.02
Image BC training_configs/bc_image_lr1e4.json logs/bc_image_lr1e4_log.txt Low-dimensional state + RGB 0.20 0.00
Low-dimensional GMM BC training_configs/bc_lowdim_gmm.json logs/bc_lowdim_gmm_log.txt Low-dimensional state 0.20 0.20
Higher-learning-rate BC training_configs/bc_lowdim_lr3e4_b64.json logs/bc_lowdim_lr3e4_b64_log.txt Low-dimensional state 0.10 0.00
RNN-GMM BC, sequence length 10 training_configs/bc_rnn_gmm_seq10.json logs/bc_rnn_gmm_seq10_log.txt Low-dimensional state 0.00 0.00
RNN BC, sequence length 10 training_configs/bc_rnn_seq10_lr3e5.json logs/bc_rnn_seq10_lr3e5_log.txt Low-dimensional state 0.80 0.10
RNN BC, sequence length 20 training_configs/bc_rnn_seq20_lr1e4.json logs/bc_rnn_seq20_lr1e4_log.txt Low-dimensional state 0.90 0.80
RNN BC, sequence length 20, 1500 epochs training_configs/bc_rnn_seq20_lr1e4_1500.json logs/bc_rnn_seq20_lr1e4_1500_log.txt Low-dimensional state 0.90 0.50
RNN BC, sequence length 30 training_configs/bc_rnn_seq30_lr1e4.json logs/bc_rnn_seq30_lr1e4_log.txt Low-dimensional state 0.70 0.50

The main BC improvement came from adding temporal context with an LSTM policy. The sequence-length-20 RNN BC configuration was the strongest and most reliable BC setting in the included experiment set.

Diffusion Policy Experiments

Run Config Log Observations Peak Success Final Success
Image diffusion baseline training_configs/diffusion_image_base.json logs/diffusion_image_base_log.txt Low-dimensional state + RGB 0.70 0.50
Image diffusion, 1e-4 learning rate training_configs/diffusion_image_1000_lr1e4.json logs/diffusion_image_1000_lr1e4_log.txt Low-dimensional state + RGB 0.80 0.30
Image diffusion, 5e-5 learning rate training_configs/diffusion_image_1000_lr5e5.json logs/diffusion_image_1000_lr5e5_log.txt Low-dimensional state + RGB 0.90 0.50
Low-dimensional diffusion, horizon 32 training_configs/diffusion_lowdim_h32.json logs/diffusion_lowdim_h32_log.txt Low-dimensional state 0.60 0.40

The image-based diffusion runs used both low-dimensional state and the two RGB camera views. The strongest diffusion hyperparameter-sweep checkpoint used learning rate 5e-5, sequence length 16, observation horizon 2, action horizon 8, prediction horizon 16, and batch size 16.

Demonstration-Count Study

BC and Diffusion Policy were retrained with controlled subsets of 5, 10, 20, and 50 demonstrations. The BC runs used the sequence-length-20 recurrent BC setup, and the diffusion runs used the image-based diffusion setup.

Demonstrations BC Log BC Peak / Final Diffusion Log Diffusion Peak / Final
5 logs/demo_count/bc/bc_demo5_log.txt 0.20 / 0.10 logs/demo_count/diffusion/diff_demo5_log.txt 0.10 / 0.00
10 logs/demo_count/bc/bc_demo10_log.txt 0.30 / 0.10 logs/demo_count/diffusion/diff_demo10_log.txt 0.20 / 0.10
20 logs/demo_count/bc/bc_demo20_log.txt 0.80 / 0.10 logs/demo_count/diffusion/diff_demo20_log.txt 0.60 / 0.60
50 logs/demo_count/bc/bc_demo50_log.txt 0.90 / 0.80 logs/demo_count/diffusion/diff_demo50_log.txt 0.90 / 0.90

The demonstration-count study shows that performance improves substantially with more demonstrations. Diffusion Policy showed especially strong final performance at 20 and 50 demonstrations, while BC required more data to reach high final success.

Rollout Videos

File Description
videos/bc_rollout.mp4 Representative rollout from the recurrent BC policy.
videos/diffusion_rollout.mp4 Representative rollout from the image-based diffusion hyperparameter sweep.
videos/diff_demo50_rollout.mp4 Representative rollout from the 50-demonstration image-based diffusion policy.

Reproducing Training

Install robomimic and robosuite in a Python environment with MuJoCo support, then place the processed dataset at:

datasets/demo_obs.hdf5

Example command for the best recurrent BC configuration:

python robomimic/robomimic/scripts/train.py \
  --config training_configs/bc_rnn_seq20_lr1e4.json \
  --dataset datasets/demo_obs.hdf5 \
  --name bc_rnn_seq20_lr1e4

Example command for the strongest diffusion sweep configuration:

python robomimic/robomimic/scripts/train.py \
  --config training_configs/diffusion_image_1000_lr5e5.json \
  --dataset datasets/demo_obs.hdf5 \
  --name diffusion_image_1000_lr5e5

Some robomimic versions rely only on the dataset path stored inside the JSON config. If --dataset is not supported in your local version, update train.data[0].path in the relevant config file before training.

Evaluating a Checkpoint

If a trained .pth checkpoint is available, a rollout evaluation can be generated with robomimic's trained-agent script:

python robomimic/robomimic/scripts/run_trained_agent.py \
  --agent path/to/model.pth \
  --n_rollouts 10 \
  --horizon 400 \
  --video_path videos/rollout.mp4 \
  --camera_names agentview robot0_eye_in_hand

Use --n_rollouts 50 to match the original bc_50_original baseline configuration. Most other included experiments used 10 rollout episodes.

Notes

  • The included logs are the authoritative source for the reported training curves, validation losses, rollout returns, success rates, checkpoint-save events, and rollout video paths.
  • Results can vary across reruns because policy training and physics rollouts are stochastic.
  • This repository snapshot does not include the raw dataset, model checkpoints, or local robomimic / robosuite source trees.

About

Behavioral Cloning and Diffusion Policy for Panda PickPlaceCan manipulation using robosuite, robomimic, RGB observations, and expert demonstrations.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors