oopsie-debug
Diffusion Policy (image, UNet) checkpoints trained with train.py of
https://github.com/KuanchengWang/oopsie (branch dp-teleop-block) on Franka teleop data.
swap-animal/
Dataset teleop_dataset_20260922_211038 (40 episodes, 15840 steps @ 10 Hz, all demos in
training, no held-out validation). 3000-epoch run started 2026-09-23 (batch 64, ~244
steps/epoch); the run keeps only latest.ckpt, so snapshots are taken when it passes the
listed epochs. Loss values are in-sample train loss.
| file | epoch | mean train loss |
|---|---|---|
| swap-animal/epoch_1600.ckpt | 1600 | 0.0005 |
(epochs 500 / 1000 / 1500 were overwritten before a copy could be taken; epochs 2000 / 2500 /
3000 will be added as the run passes them.) swap-animal/config.yaml is the resolved training
config. The checkpoint's task.dataset.quat_order is wxyz (the corrected quaternion
handling; see the repo README).
Each .ckpt is a full training checkpoint (state_dicts: model, ema_model, optimizer;
pickles: epoch, global_step, rng_state; cfg), loadable with
torch.load(path, pickle_module=dill, map_location='cpu', weights_only=False).
Use state_dicts['ema_model'] for inference, or roll it out with
eval_real_robot_panda_realsense_teleop_block.py -i <ckpt>.
Observation / action contract
- obs:
img_third,img_wrist(3x120x160 RGB, INTER_AREA from 480x640 BGR),robot_eef_pose(9-D: xyz + rotation_6d from the stored (w,x,y,z) quaternion),gripper_state(width m); n_obs_steps 2. - action (10-D):
[x, y, z, rot6d(6), gripper width]= pose/gripper of frame t+1; horizon 16, 8 executed. - Normalization: position min/max -> [-1,1]; rotation_6d identity; gripper fixed [0, 0.08] m -> [-1,1].
The teleop-block checkpoints previously stored at the repo root were removed on 2026-09-23.