GR00T N1.7 – AGCO Korb entladen (Real Robot)
Fine-Tuning von nvidia/GR00T-N1.7-3B
für den Task "Korb ausladen" — erstmals auf echten Teleop-Aufnahmen eines
Unitree-G1-Humanoiden statt auf Isaac-Lab-Simulationsdaten. Trainiert mit dem
offiziellen gr00t-leapp-export
Real-Robot-Workflow (Tag gr00t_workflow_0.1), siehe
agco_real_robot_finetuning_leapp.md
für den vollständigen Ablauf.
Privates Projekt — kein öffentliches Release, keine gesonderten Lizenzbedingungen.
Basis-Modell
- Foundation Model:
nvidia/GR00T-N1.7-3B(3B Parameter, Vision-Language-Backbone + Flow-Matching-Action-Transformer) - Trainierbare Parameter: 1.620.515.968 / 3.144.016.000 (51,54 %) — identisches
eingefrorenes/trainierbares Schema wie beim vorherigen Sim-Finetune
(
README_Groot_N1.7_AGCO.md)
Trainingsdaten
Fine-Tuning auf
HS-Kempten/AGCO_entladen_real
(20 Episoden, 18190 Frames, LeRobot-v2-Format). Echte Teleoperation per
XR-Headset am realen Unitree G1 (Dex3-Trihand-Greifer) — keine Simulation.
Task-Beschreibung: "Pick up the inlay tray from the assembly basket and move it to the blue crate."
Embodiment-Tag: new_embodiment (eigene Modality-Config, siehe unten).
State/Action (43 dim je Vektor): left_leg(0:6), right_leg(6:12),
waist(12:15), left_arm(15:22), right_arm(22:29), left_hand(29:36),
right_hand(36:43). Zusätzliche Action-Komponenten: effort_left_leg(6),
effort_right_leg(6), effort_waist(3), effort_left_arm(7),
effort_right_arm(7), effort_left_hand(7), effort_right_hand(7),
navigate_command(3), base_height_command(1).
Kamera (1× RGB): ego_view (Kopf-/Ego-Perspektive, 480×640, AV1) — anders als
die 4-Kamera-Sim-Datensätze dieses Projekts.
Modality-Config: new_embodiment_config_defaults.py
(Teil des Dataset-Repos — nicht kompatibel mit examples/AGCO/agco_wbc_config.py
aus dem Sim-Projekt, da abweichende Kamera-Keys und zusätzliche Bein-/Effort-/
Navigate-Felder).
Trainingskonfiguration
| Parameter | Wert |
|---|---|
| Workflow | gr00t-leapp-export @ gr00t_workflow_0.1 |
| Max Steps | 10000 |
| Save Steps | 2000 |
| Global Batch Size | 32 |
| Dataloader Workers | 4 |
| GPU | 1× (CUDA_VISIBLE_DEVICES=0) |
| Trainierbare Parameter | 1.620.515.968 / 3.144.016.000 (51,54 %) |
| Logging | TensorBoard (report_to-Patch nötig, siehe Anleitung) |
| Trainingsdauer | 5904,7 s (~98,4 Min.) auf 1 GPU |
| Steps/s | 1,694 |
| Samples/s | 54,19 |
Finaler train_loss (Ø über alle 10000 Steps) |
0,0871 (Step 1 ~1,27 → letzte Steps ~0,015–0,02) |
Checkpoints
| Ordner | Steps |
|---|---|
checkpoint-2000 … checkpoint-10000 |
alle 2000 Steps (letzte 5, save_total_limit=5 — lückenlos, da genau 5 Speicherpunkte bis max_steps) |
Top-Level (config.json, model-*.safetensors) |
finaler Stand nach 10000 Steps, identisch zu checkpoint-10000 |
save_only_model=false — anders als beim Sim-Finetune wird hier auch der
Optimizer-State mitgespeichert (resumable Checkpoints, größerer Speicherbedarf).
Nutzung
Noch nicht closed-loop evaluiert (weder in Sim noch am echten Roboter).
Vorgesehener Inferenzweg analog zum Sim-Modell
(gr00t/eval/run_gr00t_server.py mit --embodiment-tag new_embodiment und der
dataset-eigenen new_embodiment_config_defaults.py als --modality-config-path).
Bekannte Einschränkungen
- Nur 20 Trainings-Episoden vom realen Roboter — kleiner Datensatz.
- Nur eine Kamera (
ego_view) statt der 4 Kameras im Sim-Setup — Modell hat weniger visuellen Kontext (keine Handgelenk-Nahaufnahmen). - Kein Eval-Split — der finale
train_loss(0,0871) beschreibt reine Trainings-Konvergenz, keine Generalisierung auf ungesehene Trajektorien. Noch keine Closed-Loop-Evaluation auf dem echten Roboter durchgeführt. - Task-Beschreibung im Real-Datensatz nennt "blue crate", das parallele
Sim-Datensatz-Repo (
AGCO_Korb_entladen_annotated) wurde zuvor auf "blue tote" vereinheitlicht — Formulierungen bewusst nicht angeglichen, da unterschiedliche Datenquellen (real vs. Sim).
- Downloads last month
- 7
Model tree for Fichtl00/Groot_N1.7_AGCO_real
Base model
nvidia/GR00T-N1.7-3B