Downloads · 30 days
8
20% of all-time downloads
URL-RFM/gr00t-n1.7-g1-dex1-ikea-3task-46d-30hz-h40
gr00t-n1.7-g1-dex1-ikea-3task-46d-30hz-h40 is a robotics model from URL-RFM. Use it for the robotics task on the model card, and read the license before you ship it in a product. The card lists the license as apache-2.0.
GR00T N1.7 fine-tuned on carroll511/IKEAtableassembly — a Unitree G1 with Dex1 grippers assembling a children's table from a fixed standing position.
Downloads · 30 days
8
20% of all-time downloads
All-time downloads
40
Public
Parameters
3.1B
12.6 GB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors12.6 GB · 100%
From the Hugging Face model README
pick table leg without arm velocityGR00T N1.7 fine-tuned on carroll511/IKEA_table_assembly — a Unitree G1 with Dex1
grippers assembling a children's table from a fixed standing position.
g1_dex1_ikea_relarm_3view_aug_b64_v2 / checkpoint-20000.
Of every model trained here without arm joint velocities, this one has the lowest
wrist error on pick table leg over the window deployment actually executes:
| model | state | tasks | pick EE 1-8 (mm) |
|---|---|---|---|
| this one | 46 | 3 | 8.99 |
..._alltask_s @30000 | 46 | 5 | 9.20 |
..._alltask_u @30000 | 46 | 5 | 9.21 |
..._alltask_m16 @26000 | 46 | 5 | 9.33 |
All four are scored on the same 180 windows, so the numbers line up. The three-task
model wins because it is not paying for the two tasks the five-task models also carry:
adding turn the tabletop square and flip table costs the original tasks about 12% on
insert, and pick pays a smaller share of the same bill.
A 46-dim model is 15-20% behind its 60-dim counterpart. Arm joint velocity has
replicated five times now; if the deployment can supply left_arm_vel/right_arm_vel,
use a 60-dim model instead. This one exists for the case where it cannot.
Three instructions only:
pick table leginsert table leg to table baserotate leg to tightenNo turn the tabletop square, no flip table. Feeding it either string is
undefined — it was never trained on them.
| init | nvidia/GR00T-N1.7-3B (backbone frozen: tune_llm=False, tune_visual=False) |
| modality config | examples/unitree_g1_dex1_ikea/g1_dex1_ikea_relarm_3view_aug_config.py |
| state | 46 — legs(12), waist(3), left_arm(7), right_arm(7), left_gripper, right_gripper, base_gravity(3), left_eef(6), right_eef(6) |
| action | 16 — left_arm(7, RELATIVE), right_arm(7, RELATIVE), left_gripper, right_gripper (ABSOLUTE) |
| horizon | 40 @ 30 Hz |
| cameras | cam_left_high, cam_left_wrist, cam_right_wrist |
| training | effective batch 64, 20,000 steps (cosine, warmup 5%), 2x A100 DDP |
Held-out _v2_val split, stride 10, 4 denoising steps, fixed per-window seed.
| task | n | arm MAE 1-8 (deg) | wrist error 1-8 (mm) | gripper MAE |
|---|---|---|---|---|
| insert table leg to table base | 182 | 1.374 | 13.43 | 0.1685 |
| pick table leg | 180 | 1.226 | 8.99 | 0.2075 |
| rotate leg to tighten | 335 | 1.602 | 12.40 | 0.2768 |
| all | 697 | 1.445 | 11.78 | 0.2306 |
Read the 1-8 step figures: async deployment executes about 8 steps after latency
compensation, so late chunk steps never run. eval_loss does not track action quality on
this task — it rises while open-loop accuracy improves, so checkpoints are selected by
this scan and never by the loss.
Scored on the v2 val split. Not comparable to v1-era numbers — the split differs, so the absolute values differ (v1 baseline EE8 10.66 mm against v2's 11.86 mm for the same recipe). Compare only within this split.
get_action() returns unnormalized absolute values.insert data; models trained on that are separate.