Warum ACT sich bei bimanuellen Aufgaben auszeichnet

ACT (Action Chunked Transformers) wurde ursprünglich speziell für die bimanuelle Manipulationsforschung entwickelt. Seine Kernerkenntnis – dass die Vorhersage von Sequenzen zukünftiger Aktionen (Chunks) anstelle von Einzelschrittaktionen den zusammengesetzten Fehler reduziert – ist besonders wertvoll für bimanuelle Aufgaben, bei denen ein kleiner Fehler in der Flugbahn eines Arms zu einem Kaskadenfehler bei der Ausführung des anderen Arms führen kann.

Der Action-Chunking-Mechanismus gibt der Politik effektiv einen Planungshorizont. Anstatt sich bei jedem 50-Hz-Zeitschritt auf einen einzigen gemeinsamen Befehl festzulegen, plant ACT 100 Schritte im Voraus und sorgt für eine reibungslose Ausführung. Für eine Übergabeaufgabe bedeutet dies, dass die Richtlinie die Annäherung beider Arme an den Übergabepunkt als Teil einer geplanten Sequenz „sehen“ kann, anstatt auf jeden Frame unabhängig zu reagieren. Empirisch gesehen halbiert dies die Rate von Übertragungsfehlern in der Mitte im Vergleich zu nicht-chunked-Ansätzen bei bimanuellen Datensätzen.

Eine Warnung: ACT geht davon aus, dass die Demonstrationen in Ihrem Datensatz eine darstellen konsequente Strategie. Wenn verschiedene Demos grundlegend unterschiedliche Arten der Ausführung des Handoffs zeigen – unterschiedlicher Arm, der initiiert, unterschiedliche Handoff-Höhe – wird es der CVAE-Komponente schwerfallen, einen einzigen Stil zu kodieren. Ihre 100 Demos sollten alle die gleiche Bewegungsstrategie ausführen.

Ausbildungskommando

Quelle ~/dk1-env/bin/activate python -m lerobot.scripts.train \ --policy-type act \ --dataset-repo-id Cube-handoff-v1 \ --root ~/dk1-datasets \ --output-dir ~/dk1-policies/cube-handoff-v1 \ --config-overrides \ Policy.action_dim=14 \ Policy.chunk_size=100 \ Policy.n_action_steps=100 \ Policy.dim_feedforward=3200 \ Policy.n_heads=8 \ Policy.n_encoder_layers=4 \ Policy.n_decoder_layers=7 \ training.num_steps=80000 \ training.eval_freq=5000 \ training.save_freq=5000 \ training.batch_size=16 # policy.action_dim=14 tells ACT the action space is 14-dimensional (6+6 joints + 2 grippers) # Run this before sleeping — checkpoints save every 5k steps
Benötigte GPU für die praktische Ausbildungszeit: Auf einer RTX 3080 (10 GB) dauern 80.000 Schritte etwa 90 Minuten. Auf einer RTX 4090 etwa 50 Minuten. Erwarten Sie auf der CPU 10–14 Stunden. Benutzen Sie die --device cuda Flag, wenn Sie eine GPU haben. Cloud-GPU-Optionen (Lambda Labs, Vast.ai) kosten etwa 0,50–1,50 $/Stunde für die benötigte Hardware.

Bimanuelle Trainingskurven lesen

Bimanuelle Trainingskurven unterscheiden sich von einarmigen Trainingskurven in einem wichtigen Punkt: Sie haben zwei Aktionsräume, und der Trainer muss lernen, diese zu koordinieren. Achten Sie auf diese Muster in Ihren Verlustkurven (siehe TensorBoard unter tensorboard --logdir ~/dk1-policies/):

L_Rekonstruktion (Gesamtaktionsverlust)

Sollte in 60.000 Schritten von ~3,0 auf unter 0,4 sinken. Ein Plateau über 0,7 nach 40.000 Schritten weist auf Probleme mit der Datensatzqualität hin – wahrscheinlich zu große Abweichungen beim Zeitpunkt oder der Position der Übergabe.

L_kl (CVAE-Regularisierung)

Beginnt nahe 0 und steigt langsam auf 5–15 an. Steigt er über 30, hat das CVAE Schwierigkeiten, eine kompakte Stileinbettung zu finden. Dies bedeutet oft, dass Ihre Demonstrationen zu viel Verhaltensvielfalt aufweisen. Erwägen Sie, die unteren 20 % der am wenigsten konsistenten Demos auszusortieren und erneut zu schulen.

Aktionsfehler: links vs. rechts

Wenn Sie die Aktionsfehlerprotokollierung pro Arm aktivieren (über training.log_per_action_dim=true Überschreiben) werden separate Verlustkurven für die linke und rechte Aktionsdimension angezeigt. Eine große anhaltende Lücke zwischen den beiden weist darauf hin, dass die Demonstrationen eines Arms konsistenter sind als die des anderen – überprüfen Sie Ihre Qualitätscheckliste für Einheit 4 für den nacheilenden Arm.

Bimanuell-spezifische Hyperparameter

Parameter Standard (einarmig) DK1 Bimanuell empfohlen Warum
action_dim 7 14 Zwei 6-DOF-Arme + 2 Greifer = 14 Aktionsdimensionen
chunk_size 100 100 Das Gleiche gilt: Action Chunking eignet sich bereits gut für bimanuelle Koordinationszeitskalen
dim_feedforward 3200 3200 Keine Änderung erforderlich – der größere Aktionsraum wird vom Aktionskopf verwaltet, nicht von der Transformatorbreite
num_steps 50000 80000 Die bimanuelle Koordination erfordert mehr Trainingsschritte, um zuverlässig zu konvergieren. 80.000 sind das praktische Minimum für 100 Demos
batch_size 32 16 Reduziert, um die größeren bimanuellen Datensatzbeispiele (Dual-Kamera-Feeds) im GPU-Speicher unterzubringen
kl_weight 10 10 Standard funktioniert gut; nur dann auf 20 erhöhen, wenn L_kl nach 30.000 Schritten nahe Null bleibt (CVAE lernt nicht)

Checkpoint-Auswahl

Kontrollpunkte alle 5.000 Schritte speichern (training.save_freq=5000). Gehen Sie nicht davon aus, dass der letzte Kontrollpunkt der beste ist. Bei bimanuellen Richtlinien kann es bei hohen Schrittzahlen zu einer Überanpassung kommen. Die Richtlinie lernt, Trainingsdemonstrationen perfekt zu reproduzieren, verliert jedoch die Verallgemeinerung gegenüber den geringfügigen Abweichungen in der realen Welt, denen Sie während der Evaluierung begegnen.

Wählen Sie den Prüfpunkt an dem Schritt aus, an dem L_reconstruction erreichte sein Minimum, bevor er ein Plateau erreichte oder leicht anstieg. Normalerweise liegt dieser Bereich bei bimanuellen Datensätzen mit 100 Demos im Bereich von 60.000 bis 80.000 Schritten. Setzen Sie zwei Kontrollpunkte ein (den Kontrollpunkt mit minimalem Verlust und den letzten) und vergleichen Sie ihre reale Leistung in Einheit 6.

Einheit 5 abgeschlossen, wenn...

Das Training hat 80.000 Schritte absolviert und Kontrollpunkte werden gespeichert ~/dk1-policies/cube-handoff-v1/. Das Finale L_reconstruction Wert liegt unter 0,5. Anhand der Verlustkurven haben Sie Ihren besten Kontrollpunkt identifiziert. Sie verstehen, warum sich die L_kl-Kurve in Ihrem Lauf so verhält. Sie sind bereit für den Einsatz auf echter Hardware in Einheit 6 – die angestrebte Erfolgsquote bei der Cube-Übergabe liegt bei >60 % (bimanuell ist schwieriger als einarmig, und dies ist ein starkes Ergebnis beim ersten Durchlauf).