pi05_xarm_cube_binmarker_lora

pi0.5 (openpi) LoRA fine-tune for the xArm cube task ("pick up the cube"), trained on frames with the binmarker overlay: a fixed-length, fixed-direction arrow per finger (sensor-frame pad normal), shown iff that finger is in binary contact. NO force magnitude and NO force direction — the overlay carries only the per-finger contact bit. Ported from LIBERO_contact_overlay's binbars style.

Training

Base pi05_droid
Recipe LoRA r16/a16 backbone + r32/a32 action expert, attn+ffn
Batch / LR 8 / cosine 1e-4 -> 1e-5, 500 warmup, AdamW, grad-clip 1.0
Data EdwardoSunny/xarm_cube_binmarker (100 eps, 13103 frames)
Early stop step 7800
Final train loss 0.0429

Variant comparison for this task (identical protocol, only overlay pixels differ): baseline 0.0437 / points9_arrow_len0 0.0435 / binmarker 0.0429 / points9_arrow 0.0425.

Contact detection (how the threshold was tuned)

Per-finger binary contact from the 3x3x3-axis tactile array:

  • Normalization offset = median over known-idle frames (first 10 frames of each episode, post-homing, gripper open). The naive whole-dataset median is contact-polluted on tasks that spend most frames in contact (charger: 60% closed frames made idle read as a fake magnitude of ~1.2).
  • Metric = max over the 9 cells of the normalized cell-vector L2 norm ("max-cell"). The cell-sum alternative cannot separate charger idle noise (p99.5 = 0.45) from real light holds (0.5 on tube/dishwasher's weaker finger). Max-cell: idle p99.5 <= 0.24 on every task, real contacts >= ~0.3.
  • Hysteresis + debounce (Schmitt trigger): ON after 2 consecutive frames

    = 0.25, OFF after 3 consecutive frames < 0.18, state reset at episode boundaries. Light-but-real holds (dips to 0.23) stay latched; single-frame noise spikes never trigger.

Validated on all 400 episodes (zero idle false positives in every post-homing window) and visually verified on 5 episodes per task (timelines + frame montages at approach / contact onset / mid-hold / post-release), plus a final spot check on the converted LeRobot frames: no arrows during approach, arrows at contact onset, latched through holds, cleared within <=3 frames of release, and honest negatives (gripper closed around nothing draws nothing).

Contents

  • params/ — merged weights (orbax), self-contained for inference
  • assets/local/xarm_cube_binmarker/norm_stats.json
  • Config name: pi05_xarm_cube_binmarker_lora

Deployment note

At inference, reproduce the SAME overlay on live frames: run the tuned contact detector (max-cell metric, ON>=0.25 / OFF<0.18, 2-on/3-off debounce, idle-window offset) and draw the fixed-direction marker (FIXED_DIRECTION, arrow_length_scale=0.12, thickness 8, dot 22) — see tactile-data-collection/scripts/render_binmarker.py at commit c64c562 or later (earlier revisions used the measured force direction).

Downloads last month

-

Downloads are not tracked for this model. How to track
Video Preview
loading

Collection including EdwardoSunny/pi05_xarm_cube_binmarker_lora