URDF-conditioned Graph IK

Learned inverse kinematics that reads a robot's URDF as a kinematic graph and solves IK for arms it was not trained on, with no previous joint state required. Each folder experiments/<name>/ holds model.pt, config.json, metrics.json, tables/ (CSV / Markdown / LaTeX) and videos/.

Experiments: abl_mlp_s0, abl_no_attn_s0, abl_no_local_s0, abl_no_synthetic_s0, abl_no_text_s0

Main results

not run

Baselines

not run

Ablations

base n_seeds seen-robot variants none net succ_std seen-robot variants none net pos_mm_med unseen robots none net succ_std unseen robots none net pos_mm_med unseen robots none full succ_std unseen robots uniform net succ_std
abl_mlp 1 0.801 2.468 0.3826 13.29 0.9263 0.2913
abl_no_attn 1 0.8333 1.634 0.3674 12.96 0.9761 0.3035
abl_no_local 1 0.9402 0.8261 0.4963 4.834 0.9739 0.4587
abl_no_synthetic 1 0.9758 0.7515 0.4626 16.33 0.9846 0.4185
abl_no_text 1 0.9434 0.8814 0.4646 4.099 0.9751 0.418

Leave-one-robot-out

not run

Compute

base n_seeds compute cuda b1 ms compute cuda b1024 ms compute cpu b1 ms compute cpu b256 ms train_min train_it_s train_gpu_GB
abl_mlp 1 98.96 145.6 60.56 668.8 45.68 14.6 0.4511
abl_no_attn 1 151.1 397.3 106.2 2367 113 5.9 0.952
abl_no_local 1 154.5 484.8 98.1 3315 130 5.13 0.9669
abl_no_synthetic 1 174.9 629.7 119.2 4350 157.9 4.222 1.31
abl_no_text 1 170.7 647.9 112.4 4209 155.1 4.298 1.282

Load a model

from huggingface_hub import hf_hub_download
import torch
ck = torch.load(hf_hub_download("iFaz/urdf-graph-ik-journal-ablations", "experiments/main_s0/model.pt"), weights_only=False)
# model = build_model(ck["cfg"], ck["text_dim"]); model.load_state_dict(ck["state"])
Downloads last month

-

Downloads are not tracked for this model. How to track
Video Preview
loading