Goal — a feasibility check: is it possible in principle to recover per-frame contact force (localization, direction, magnitude) from RGB video alone, with no force sensor at inference?

Is / where it is touching — the contact gate.
F1 vs trivial floor
Which way the force acts (EE frame).
cos − costrivial (lift)
How strong, in newtons.
MAE (N)
Report the direction lift over the best-constant prior (raw cosine is inflated by the −Z insertion prior). End goal: climb to the dexterous-hand rung.
| dataset | robot(s) | force sensor | τ | role |
|---|---|---|---|---|
| FMB | Franka Panda | observer (σ≈2 N) | 10 N | train |
| REASSEMBLE | Franka FR3 | 6-axis wrist (≈0.4 N) | 2 N | train |
| RH20T | flexiv·ur5·kuka·franka | external ATI | per-robot | train |
| crisp_ws | Franka (held-out lab) | server-clean TCP | per-task | OOD eval |
16,772 rollouts · 178 h · ~6.4 M frames · 7 embodiments · 4 force-frame conventions harmonized.
| in-dist metric | frozen feats | + encoder FT |
|---|---|---|
| contact F1 (best) | 0.78 (ceiling) | 0.97 |
| REASSEMBLE F1 | 0.87 | 0.92 |
| REASSEMBLE dir cos (lift) | 0.88 | 0.93 (+0.37) |
| RH20T kuka F1 | 0.71 | 0.92 |
| group (unfrozen) | F1 | dir cos (lift) |
|---|---|---|
| REASSEMBLE | 0.92 | 0.93 (+0.37) |
| RH20T kuka | 0.92 | 0.80 (+0.21) |
| FMB | 0.72 | 0.92 (≈triv) |
| RH20T flexiv* | 0.47→0.79 | 0.38 |
| RH20T ur5 | 0.64 | 0.24 |
*after distillation. Clean-force datasets clear both bars; observer / weak-force sets are data-bound.
Contact-prediction overlays: on-frame contact-probability bar (0.5 threshold), red border = GT contact, live GT/pred ‖F‖.

| scenario | supervised | + SSL |
|---|---|---|
| In-distribution (contact) | 0.92 | 0.92 (tie) |
| OOD crisp lab (contact) | 0.85 | 0.85 (tie) |
| OOD held-out camera (contact) | 0.28 | 0.70 |
| OOD cross-dataset (direction) | 0.40 | 0.85 |


The learned latent space (UMAP), coloured by task: force-anchored SSL pulls same-task episodes together across cameras and datasets — features organize by physics, not appearance.
| metric | OOD peg / eth | trivial |
|---|---|---|
| Contact F1 | 0.82 / 0.86 | 0.76 / 0.68 |
| Direction cos | 0.76 / 0.74 | 0.81 / 0.88 |
| Magnitude MAE | ~3.5 / 4.1 N | — |
Recovering contact force from video works in principle — the idea is validated. What remains is scaling generalization and climbing the embodiment ladder.
Thank you — questions welcome. video2force · KAIST IRiS