IKEA three-task, 46-dim state β best at pick table leg without arm velocity
GR00T 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.
Why this checkpoint
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.
What it does and does not do
Three instructions only:
pick table leginsert table leg to table baserotate leg to tighten
No turn the tabletop square, no flip table. Feeding it either string is
undefined β it was never trained on them.
Setup
| 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 |
Open-loop accuracy
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.
Caveats
- Open-loop only; closed-loop behaviour on hardware unverified for this checkpoint.
- Arms are RELATIVE, grippers ABSOLUTE;
get_action()returns unnormalized absolute values. - The waist is not commanded; recordings are from a fixed stance (waist pitch bimodal at ~2.6/10.4 deg β set the robot near 10.5 deg, the majority mode).
- Trained on 178 episodes / 79,205 frames. A later recording roughly doubles the
insertdata; models trained on that are separate.
- Downloads last month
- 10
Model tree for URL-RFM/gr00t-n1.7-g1-dex1-ikea-3task-46d-30hz-h40
Base model
nvidia/GR00T-N1.7-3B