CoRL2026-CSI/SO101-DualArm-teleop_fold_towel_100epi
Viewer β’ Updated β’ 65.2k β’ 63
How to use CoRL2026-CSI/pi05_teleop_fold_towel with LeRobot:
fold_towel
Fine-tuned lerobot/pi05_base on 100 teleop episodes of the dual-arm SO-101 fold_towel task.
base_0_rgb, left_wrist_0_rgb, right_wrist_0_rgb (224Γ224)Camera key rename (dataset β policy):
observation.images.left_top β observation.images.base_0_rgb
observation.images.left_wrist β observation.images.left_wrist_0_rgb
observation.images.right_wrist β observation.images.right_wrist_0_rgb
Action features (12 DoF):
left_{shoulder_pan, shoulder_lift, elbow_flex, wrist_flex, wrist_roll, gripper}.pos
right_{shoulder_pan, shoulder_lift, elbow_flex, wrist_flex, wrist_roll, gripper}.pos
Normalization: ACTION/STATE = MEAN_STD, VISUAL = IDENTITY.
CoRL2026-CSI/SO101-DualArm-teleop_fold_towel_100epi β 100 episodes, 65,151 frames, 30 fps, human teleop.
| Hardware | 4 Γ GPU (DDP, π€ Accelerate) |
| Per-device batch | 32 |
| Gradient accumulation | 2 |
| Effective global batch | 256 |
| Steps | 12,800 (~50 epochs) |
| Optimizer | AdamW, Ξ²=(0.9, 0.95), wd=0.01, grad clip 1.0 |
| LR | cosine decay, peak 2.5e-5 β 2.5e-6, warmup 1000, decay 30000 |
| Gradient checkpointing | on |
| Image aug | ColorJitter (brightness/contrast/saturation/hue), SharpnessJitter, RandomAffine β max_num=3, random order |
| Seed | 1000 |
Training script: scripts/train_pi05_fold_towel.sh.
from lerobot.policies.pi05.modeling_pi05 import PI05Policy
policy = PI05Policy.from_pretrained("CoRL2026-CSI/pi05_teleop_fold_towel").to("cuda").eval()
lerobot-eval --policy.path=CoRL2026-CSI/pi05_teleop_fold_towel --env.type=<env> --eval.n_episodes=20
Apache 2.0 (inherits from lerobot/pi05_base).
Base model
lerobot/pi05_base