--- 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_charger_points9_arrow_len0_lora pi0.5 (openpi) LoRA fine-tune for the xArm **charger** task (`"pick up the charger and plug it into the nearest plug"`), 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_charger_points9_arrow_len0](https://huggingface.co/datasets/EdwardoSunny/xarm_charger_points9_arrow_len0) (100 eps, 23808 frames) | | Early stop | step 5100 (rolling-1k-window <0.5% rel. improvement, 2 consecutive checks) | | Final train loss | **0.0402** (baseline no-overlay: 0.0413; full points9_arrow: 0.04) | 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_charger_points9_arrow_len0/norm_stats.json` — state/action normalization - Optimizer state stripped (inference-ready). Config name: `pi05_xarm_charger_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`.