--- license: apache-2.0 library_name: lerobot pipeline_tag: robotics tags: - lerobot - robotics - pi05 - so101 - imitation-learning datasets: - CoRL2026-CSI/SO101-teleop_close_pot_lid_100epi base_model: lerobot/pi05_base --- # π0.5 — SO-101 `close_pot_lid` Fine-tuned [`lerobot/pi05_base`](https://huggingface.co/lerobot/pi05_base) on 100 teleop episodes of the SO-101 `close_pot_lid` task. ## Model - **Architecture**: π0.5 (PaliGemma-2B VLM + Gemma-300M action expert, flow matching, 10 inference steps) - **Cameras**: `base_0_rgb`, `left_wrist_0_rgb`, `right_wrist_0_rgb` (224×224) - **State / Action dim**: 32 (padded) / 6 (SO-101) - **Action chunk**: 50 - **dtype**: bfloat16 Camera key rename (dataset → policy): ``` observation.images.top → observation.images.base_0_rgb observation.images.wrist → observation.images.left_wrist_0_rgb ``` `right_wrist_0_rgb` is an empty camera slot for this single-arm setup. Action features (SO-101): `shoulder_pan, shoulder_lift, elbow_flex, wrist_flex, wrist_roll, gripper` (`.pos`). Normalization: `ACTION/STATE = MEAN_STD`, `VISUAL = IDENTITY`. ## Data [`CoRL2026-CSI/SO101-teleop_close_pot_lid_100epi`](https://huggingface.co/datasets/CoRL2026-CSI/SO101-teleop_close_pot_lid_100epi) — 100 episodes, 57,173 frames, human teleop. ## Training | | | |---|---| | Hardware | 4 × GPU (DDP, 🤗 Accelerate) | | Per-device batch | 32 | | Gradient accumulation | 2 | | Effective global batch | 256 | | Steps | 11,200 (~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_close_pot_lid.sh`](https://github.com/HyeonseokE/train_with_lerobot/blob/main/scripts/train_pi05_close_pot_lid.sh). ## Usage ```python from lerobot.policies.pi05.modeling_pi05 import PI05Policy policy = PI05Policy.from_pretrained("CoRL2026-CSI/pi05_close_pot").to("cuda").eval() ``` ```bash lerobot-eval --policy.path=CoRL2026-CSI/pi05_close_pot --env.type= --eval.n_episodes=20 ``` ## Limitations - Single task, single seed; no quantitative success rate reported here. - Trained on a single-arm SO-101; the right-wrist camera slot is empty. - 100 episodes only — sensitive to camera/lighting domain shift. ## License Apache 2.0 (inherits from [`lerobot/pi05_base`](https://huggingface.co/lerobot/pi05_base)).