File size: 1,990 Bytes
e99c15a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
---
license: other
license_name: gemma-terms-of-use
license_link: https://ai.google.dev/gemma/terms
tags:
- robotics
- pi0.5
- openpi
- lora
- tactile
- xarm
base_model: physical-intelligence/pi05_droid
---

# pi05_xarm_dishwasher_points9_arrow_len0_lora

pi0.5 (openpi) LoRA fine-tune for the xArm **dishwasher** task (`"pull the basket outside of the dishwasher and pick up the mug and put it into the basket"`), trained on
camera frames with the **points9_arrow_len0** tactile overlay: 9 tactile-pad dots per
finger at FK-projected positions, force arrows at **zero length** — the force-information
ablation of points9_arrow.

## Training

| | |
|---|---|
| Base | `pi05_droid` (knowledge-insulated pi0.5, DROID pre-training) |
| Recipe | LoRA r16/a16 on Gemma-2B backbone + r32/a32 on 300M action expert, attn+ffn |
| Batch / LR | 8 / cosine 1e-4 -> 1e-5, 500 warmup, AdamW, grad-clip 1.0 |
| Data | [EdwardoSunny/xarm_dishwasher_points9_arrow_len0](https://huggingface.co/datasets/EdwardoSunny/xarm_dishwasher_points9_arrow_len0) (100 eps, 28096 frames) |
| Early stop | step 7800 (rolling-1k-window <0.5% rel. improvement, 2 consecutive checks) |
| Final train loss | **0.0287** (baseline no-overlay: 0.029; full points9_arrow: 0.024) |

Training-loss comparison across this task's variants (identical hyperparameters/protocol,
only the burned-in overlay differs) — see the collection for all four tasks.

## Contents

- `params/` — merged base+LoRA weights (orbax), self-contained for inference
- `assets/local/xarm_dishwasher_points9_arrow_len0/norm_stats.json` — state/action normalization
- Optimizer state stripped (inference-ready). Config name: `pi05_xarm_dishwasher_points9_arrow_len0_lora`

## Deployment note

At inference, render the live camera frames with the SAME overlay
(`SensorDrawer` mode `points9_arrow`, `arrow_length_scale=0`, thickness 8, dot size 22)
or the policy will be out-of-distribution. See `tactile-data-collection/scripts/render_arrowlen0.py`.