# FSM Experiment: exp_all_changes - Date: Mon May 25 03:38:37 PM PST 2026 - Poses file: `data/umi/test_fsm_v3/object_poses_10_shared.json` - Successes: **0 0** / Failures: **10** ## FSM constants used in this run ```python _MAX_CARTESIAN_DELTA = 0.020 # slight bump from 0.018 (0.025 was too aggressive and caused knock-offs) _HOVER_Z_OFFSET = 0.15 _GRASP_Z_OFFSET = 0.08 _LIFT_Z_OFFSET = 0.15 # was 0.20; 0.10 was too low (held cutlery clipped plate edge during transport) _RELEASE_Z_OFFSET = 0.06 # was 0.09; 0.04 was too low (gripper fingers hit plate/table) _PHASE_DURATIONS_PER_OBJECT = (80, 70, 25, 70, 100, 30, 25) # cut from (180,130,20,160,170,15,30); old idle time made policy reproduce 25s trajectories vs 20s eval cap _PHASES_PER_OBJECT = len(_PHASE_DURATIONS_PER_OBJECT) def _clamp_delta(delta: torch.Tensor, max_norm: float = _MAX_CARTESIAN_DELTA) -> torch.Tensor: MAX_STEPS: int = len(_PICK_ORDER) * sum(_PHASE_DURATIONS_PER_OBJECT) + 100 self._events_dt: list[int] = list(_PHASE_DURATIONS_PER_OBJECT) * len(_PICK_ORDER) target[:, 2] += _HOVER_Z_OFFSET target[:, 2] += _GRASP_Z_OFFSET target[:, 2] += _GRASP_Z_OFFSET target[:, 2] += _LIFT_Z_OFFSET target[:, 2] += _LIFT_Z_OFFSET target[:, 2] += _RELEASE_Z_OFFSET target[:, 2] += _LIFT_Z_OFFSET ``` ## Videos Per-episode mp4 in `videos/` named `ep_NN_.mp4`. Side-by-side (wrist | front, 1280x480 @ 10 fps). See `CHANGES.md` for what was modified in this version and why.