oopsie-debug / README.md
harrywang01's picture
swap-animal: README + config; drop the block config
8a64aad verified
|
Raw History Blame Contribute Delete
1.88 kB
---
license: mit
tags: [diffusion-policy, robotics, franka]
---
# 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.