Robotics
LeRobot
Safetensors
pi05
so101
imitation-learning
File size: 2,579 Bytes
e801777
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13f5974
e801777
13f5974
e801777
13f5974
 
 
 
 
e801777
13f5974
e801777
13f5974
 
e801777
13f5974
e801777
13f5974
 
e801777
13f5974
e801777
13f5974
e801777
13f5974
e801777
13f5974
e801777
13f5974
 
e801777
13f5974
 
 
 
e801777
13f5974
e801777
 
13f5974
e801777
13f5974
e801777
 
 
 
13f5974
e801777
 
 
13f5974
e801777
 
13f5974
e801777
13f5974
 
 
e801777
13f5974
e801777
13f5974
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
---
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=<env> --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)).