CoolFace
Datasetpublic

EdwardoSunny/xarm_cube_binmarker

xarm_cube_binmarker xArm7 phone-teleop dataset for cube ("pick up the cube") with the binmarker tactile overlay burned into the camera frames: one arrow per gripper finger (anchored at the finger center pad via forward kinematics) with fixed length AND fixed direction (the sensor-frame pad normal — a rigid "flag" on the finger), drawn iff that finger's binary contact state is ON. Ported from LIBERO_contact_overlay's binbars style, presented spatially. The overlay carries only… See the full description on the dataset page: https://huggingface.co/datasets/EdwardoSunny/xarm_cube_binmarker.

sourceHugging Facemitupdated 2mo agoView on Hugging Face
0likes311downloads
Dataset Card

xarmcubebinmarker

xArm7 phone-teleop dataset for cube ("pick up the cube") with the binmarker tactile overlay burned into the camera frames: one arrow per gripper finger (anchored at the finger center pad via forward kinematics) with fixed length AND fixed direction (the sensor-frame pad normal — a rigid "flag" on the finger), drawn iff that finger's binary contact state is ON. Ported from LIBERO_contact_overlay's binbars style, presented spatially.

The overlay carries only the per-finger contact bit — NO force magnitude and NO force direction. Pure binary-contact ablation rung between points9arrowlen0 (positions only) and points9_arrow (full force field).

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

  • —100 episodes / 13103 frames @ 10 Hz, LeRobot v2.1 format
  • —image (224x224x3, agent view) and wrist_image (224x224x3) — overlay burned in
  • —state (8-dim: eeposm, eeaxisangle_rad, grasp, grasp)
  • —actions (7-dim world-frame deltas: dxyzm, daxisangle_rad, grasp in {-1,+1})

Same source recordings as every other overlay variant of this task — only the burned-in pixels differ.

Paired model

EdwardoSunny/pi05_xarm_cube_binmarker_lora