ACT on ALOHA TransferCube, trained from scratch on an Apple M4 laptop

An ACT policy for the AlohaTransferCube-v0 simulation task, trained with LeRobot 0.7.0 on the lerobot/aloha_sim_transfer_cube_human dataset (50 human demonstrations). Training ran on an Apple M4 MacBook Pro (MPS, no NVIDIA GPU) for 80k steps at batch size 8, about 10 hours in total. LeRobot's default ACT hyperparameters, nothing tuned.

Code, evaluation scripts, per-checkpoint results and training curves: github.com/ChadSaglam/lerobot-sim-transfer-cube.

Evaluation

Same simulator, same episode seeds (--seed=1000), 200 episodes, 95% Wilson intervals from lerobot-eval.

Policy Training steps Success 95% CI
official lerobot/act_aloha_sim_transfer_cube_human 80k 81.0% (162/200) 75.0-85.8
this model (seed 1000) 80k 75.5% (151/200) 69.1-80.9
same run at 50k steps 50k 64.0% (128/200) 57.1-70.3
second seed (1001) at 50k steps 50k 62.0% (124/200) 55.1-68.4

The intervals of this model and the official checkpoint overlap; the two are statistically indistinguishable at this sample size. The 50k checkpoints are clearly below the baseline.

Two things the per-checkpoint evaluations showed (details in the GitHub README): the training loss did not predict task success (two seeds with identical loss curves differed by 34 points in success at 10k steps), and 50-episode evaluations cannot rank neighbouring checkpoints.

How to use

pip install 'lerobot[aloha]==0.7.0'

lerobot-eval \
  --policy.path=ChadSaglam/act_aloha_sim_transfer_cube \
  --env.type=aloha \
  --env.task=AlohaTransferCube-v0 \
  --eval.n_episodes=200 \
  --eval.batch_size=10 \
  --seed=1000 \
  --policy.device=cuda          # mps on Apple Silicon; add --eval.use_async_envs=false on macOS

Training

lerobot-train \
  --policy.type=act \
  --policy.device=mps \
  --policy.push_to_hub=false \
  --dataset.repo_id=lerobot/aloha_sim_transfer_cube_human \
  --env.type=aloha \
  --env.task=AlohaTransferCube-v0 \
  --env_eval_freq=0 \
  --seed=1000 \
  --steps=50000 \
  --batch_size=8 \
  --save_freq=10000 \
  --output_dir=outputs/train/act_transfer_cube_seed1000
# then resumed from the 50k checkpoint with --resume=true --steps=80000
  • Policy: ACT, ResNet-18 backbone (ImageNet init), chunk size 100, 100 action steps, VAE on, KL weight 10, AdamW, learning rate 1e-5, batch size 8. train_config.json in this repository has every setting.
  • Throughput on the M4: 2.2 steps/s. 50k steps in 6 h 22 min, the 30k-step extension in 3 h 47 min.
  • Checkpoint format: LeRobot 0.7.0 processor pipeline (policy_preprocessor.json, policy_postprocessor.json).

Limitations

  • Simulation only; one task; one evaluation seed set. Another --seed would move every number by a few points.
  • Success is the gym-aloha definition (cube lifted by the right arm and transferred to the left gripper).
  • No hyperparameter tuning; LeRobot defaults throughout.
Downloads last month
-
Safetensors
Model size
51.7M params
Tensor type
F32
·
Video Preview
loading

Dataset used to train ChadSaglam/act_aloha_sim_transfer_cube

Paper for ChadSaglam/act_aloha_sim_transfer_cube

Evaluation results

  • success rate over 200 episodes (95% Wilson CI 69.1-80.9) on aloha_sim_transfer_cube_human
    self-reported
    75.500