DexOAK: Object-Aware Kinematic Retargeting
Organizations: Inria and the Departement d’Informatique of Ecole Normale Supérieure, PSL University, France · Soft Robotics Lab, ETH Zürich, Switzerland
Abstract
We introduce DexOAK, a learning-based object-aware kinematic retargeting framework for generating contact-consistent robot hand references from human motion-capture data. DexOAK first minimizes an interaction-graph Laplacian objective over a joint hand-object graph, so the robot reproduces the demonstrated object-relative interaction geometry rather than the human hand pose alone. These per-frame solutions form seed retargeted references, from which a feed-forward network conditioned on human keypoints and object point clouds learns the retargeting function. Object-aware finetuning then refines the network under contact, non-penetration, and self-collision losses that position the fingers on the demonstrated contacts and reduce artifacts destabilizing physics-based refinement. Once trained, the network transfers to unseen data by inference alone, without per-frame optimization. DexOAK references improve dynamic retargeting over the state-of-the-art across bimanual tasks with rigid and articulated objects. On the Inspire hand, success rises from 39.5% to 48.4% on OakInk-v2, and ADD-AUC rises from 62.7% to 77.9% on ARCTIC. Ablations trace the gains to object-aware kinematic retargeting and the amortized network refined with contact losses. Trained on OakInk-v2, it transfers to ARCTIC zero-shot and nears in-domain performance after fine-tuning. On hardware, 46/56 open-loop replays succeed across five tasks, enabling dexterous robot data generation from human data. Visualizations and interactive results are at: https://fspinola.github.io/dexoak/.
Figures & tables
| Kinematic metrics | RL metric | ||
| Kinematic reference | Contact compl. | TPE | SR MT |
| (%) | (mm) | (%) | |
| Without Object (Hand-Only Reference) | |||
| AnyTeleop-Vector [ 13 ] | 3.5 | 59.5 | 18.3 |
| AnyTeleop-Position [ 13 ] | 0.5 | 77.9 | 11.1 |
| AnyTeleop-DexPilot [ 13 , 14 ] | 0.3 | 53.8 | 0.0 |
| Variant | Contact completeness | TPE |
| (%) | (mm) | |
| Interaction-Graph Laplacian Optimizer | ||
| without object anchors | 2.8 | 41.5 |
| without wrist node | 19.6 | 3.51 |
| Architecture and Training | ||
| without object cloud | 20.0 | 3.83 |
| Method | Speed (Hz) | ADD-AUC (%) |
| In-domain on ARCTIC | ||
| DexMachina [ 12 ] | 13.4 | 83.4 |
| Ours: IG optimizer | 15.5 | 88.9 |
| Ours: DexOAK | 1.4 | 91.3 |
| Ours: generalization OakInk-v2 ARCTIC | ||
| Zero-shot | 108.9 | 87.9 |
| Method | SR MT (%) | SR obj (%) | ADD-AUC (%) |
| OakInk-v2 (bimanual), Inspire hand | |||
| ManipTrans [ 11 ] | 39.5 | – | – |
| SPIDER [ 10 ] | – | 47.9 ∗ | – |
| DexOAK +RL | 48.4 | 58.7 | 55.1 |
| OakInk-v2 (bimanual), Allegro hand | |||
| SPIDER [ 10 ] | – | 45.9 ∗ | – |
| Method | Take out | Close gate | Pour | Unplug | Cut |
| DexOAK +RL | 12/12 [90%] | 12/12 [41%] | 10/12 [95%] | 8/12 [93%] | 4/8 [3%] |
| ManipTrans [ 11 ] | 6/12 [83%] | 12/12 [12%] | 8/12 [16%] | 0/4 [1%] | – [0%] |
| Finger | MANO kpt | Allegro tip frame | Inspire tip frame |
| Thumb | 4 | link_15.0_tip | thumb_tip |
| Index | 8 | link_3.0_tip | index_tip |
| Middle | 12 | link_7.0_tip | middle_tip |
| Ring | 16 | link_11.0_tip | ring_tip |
| Pinky | 20 | — | pinky_tip |
| Wrist | 0 | wrist | hand_base_link |
| Interaction-graph optimizer (SLSQP) | |
| Object anchors | 64 |
| Object cloud size | 1024 |
| Adjacency | Delaunay tetra (kNN fallback, ) |
| Joint velocity limit | 12 rad/s |
| Frame step | s |
| Max iterations / tol | 64 / |
| Parallel environments | 4096 |
| Simulation step | s |
| Episode length | 1200 steps |
| Finger control | PD position |
| Action dimension | (wrist + fingers) |
| Discount | 0.99 |
| GAE | 0.95 |
| Clip | Sequence | Frames |
| box30-230-s01-u01 | box_use_01 | 30–230 |
| ketchup30-130-s01-u01 | ketchup_use_01 | 30–130 |
| ketchup40-340-s01-u02 | ketchup_use_02 | 40–340 |
| mixer30-200-s01-u01 | mixer_use_01 | 30–200 |
| mixer40-340-s01-u01 | mixer_use_01 | 40–340 |
| notebook40-340-s02-u02 | notebook_use_02 | 40–340 |
| s01__box_use_01 | s07__mixer_use_01 | s04__notebook_use_01 |
| s02__box_use_01 | s01__mixer_grab_01 | s06__notebook_use_01 |
| s04__box_use_01 | s01__ketchup_use_01 | s07__notebook_use_01 |
| s06__box_use_01 | s01__ketchup_use_02 | s04__notebook_grab_01 |
| s07__box_use_01 | s02__ketchup_use_01 | s01__waffleiron_use_01 |
| s01__box_grab_01 | s04__ketchup_use_02 | s02__waffleiron_use_01 |
| s01__mixer_use_01 | s06__ketchup_use_01 | s04__waffleiron_use_01 |
| Bimanual (Inspire), 39 | Right-hand (Allegro), 27 | Left-hand (Allegro), 11, train | ||||||
| ID | Action | Object | ID | Action | Object | ID | Action | Object |
| c9cd3@0 | scoop | spoon | c9cd3@1 | spread | spoon | e76b2@1 | hold | apple |
| d78fa@0 | open gate | microwave | d7c33@1 | rearrange | spoon | 155cb@4 | place rack | test tube |
| e76b2@0 | cut | knife | e76b2@2 | place in | apple | 81a95@3 | rearrange | tripod |
| e76b2@12 | open gate | microwave | e76b2@4 | pour | bottle | 81a95@4 | place mesh | mesh |
| e76b2@13 | take out | bowl | 5ced9@5 | remove lid | box lid | 81a95@5 | heat beaker | beaker |
Motion Retargeting
Motion retargeting transfers movement across different bodies, skeletons, or robots while preserving its intent and physical feasibility.
See all 96 papers