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: loro_irb2400_s0, loro_irb5400_s0, loro_irb6640_s0, loro_kr16_2_s0

Main results

not run

Baselines

not run

Ablations

not run

Leave-one-robot-out

held_out_robot base n_seeds unseen robots none net succ_std unseen robots none net pos_mm_med unseen robots none net rot_deg_med unseen robots none full succ_std unseen-robot variants none net succ_std baseline unseen robots dls_multistart_9 succ_std baseline unseen robots pybullet_ik succ_std baseline unseen robots ikpy succ_std
irb2400 loro_irb2400 1 0.9478 0.779 0.02744 0.9888 0.9451 0.9725 0.985 0.85
irb5400 loro_irb5400 1 0.7944 2.129 0.06006 0.9971 0.7771 0.9625 0.9775 0.8875
irb6640 loro_irb6640 1 0.8779 1.949 0.03315 0.9966 0.8586 0.9625 0.985 0.8475
kr16_2 loro_kr16_2 1 0.9578 0.944 0.02589 0.9917 0.9529 0.94 0.955 0.7875
MEAN 0.8945 1.45 0.03664 0.9935 0.8834 0.9594 0.9756 0.8431

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
loro_irb2400 1 178 671.1 121.4 4745 157.3 4.239 1.302
loro_irb5400 1 174.1 674.1 115.6 5015 157.3 4.239 1.302
loro_irb6640 1 174.6 647 120 4608 157.5 4.232 1.302
loro_kr16_2 1 173.9 645 117.3 4596 156.4 4.264 1.302

Load a model

from huggingface_hub import hf_hub_download
import torch
ck = torch.load(hf_hub_download("iFaz/urdf-graph-ik-journal-loro", "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