Dieser Beitrag wurde in Zusammenarbeit mit Antoine Pirrone, Augustin Crampette, Matthieu Lapeyre, Coralie Deplanne, Anne-Charlotte Passanisi und Thomas Wolf geschrieben.
TL;DR
Microduck ist ein kürzlich erschienener, erschwinglicher Open-Source-Zweibeinroboter von Pollen Robotics und Hugging Face. Und jetzt können Sie Microduck das Gehen mit Isaac Lab und Newton beibringen. Testen Sie die Policy, exportieren Sie sie als ONNX und deployen Sie sie auf dem echten Roboter. Teilen Sie sie auf dem Hugging Face Hub oder validieren Sie sie für den Wettbewerb in der Microduck Arena, und erkunden Sie dann anspruchsvollere Aufgaben mit NVIDIA Isaac Lab.
Einführung
Eine in der Simulation trainierte Geh-Policy muss auch mit Reibung, Verzögerungen und mechanischem Spiel der Servomotoren eines echten Roboters umgehen können.. NVIDIA Isaac Lab ist ein Open-Source-Framework zum Trainieren von Policies über Tausende GPU-parallelisierte Simulationen hinweg. Mit Newton, Aktuatormodellierung und Domain Randomization können Entwickler Policies für echte Hardware vorbereiten. Microduck bringt diesen Workflow zum Leben: Trainieren Sie eine Geh-Policy in der Simulation, exportieren Sie sie als ONNX und deployen Sie sie auf einem echten Zweibeinroboter.
Dieses Tutorial führt Sie durch das Training und die Evaluierung von Microduck mit Isaac Lab und Newton und dann durch den Export der Policy für das Deployment. Von dort aus können Sie Ihr Modell auf dem Hugging Face Hub teilen, seine Kompatibilität testen und in der Microduck Arena antreten, oder es auf Ihrem eigenen Microduck einsetzen. Gehen ist der Ausgangspunkt – mit verlinkten Beispielen, die Ihnen helfen, mehr von Isaac Lab 3.0 zu erkunden.
1. Isaac Lab installieren und das Microduck-Training vorbereiten
Für den Simulations- und Trainingsteil benötigen Sie:
Eine Linux-Workstation mit einer unterstützten NVIDIA-GPU und Treiber. Siehe requirements.
Git und uv.
Für das Deployment benötigen Sie außerdem:
Einen konfigurierten physischen Microduck.
Die onboard Roboter-Software ist installiert und funktioniert.
Eine unterstützte Steuerungsschnittstelle, wie z. B. einen gekoppelten Gamepad.
Schnellinstallation
Installieren Sie unter Linux mit einer unterstützten NVIDIA-GPU und Treiber uv (überspringen Sie die ersten zwei Zeilen, falls es bereits verfügbar ist), klonen Sie Isaac Lab und installieren Sie dessen Abhängigkeiten:
curl -LsSf https://astral.sh/uv/install.sh | sh
source "$HOME/.local/bin/env"
git clone --branch develop https://github.com/isaac-sim/IsaacLab.git
cd IsaacLab
uv sync
Bestätigen Sie, dass die Microduck-Tasks und -Presets verfügbar sind:
uv run isaaclab list_envs --keyword MicroDuck --show_presets
2. Verstehen der fertig trainierbaren Microduck-Umgebung
Isaac Lab stellt bereits Microducks Robotermodell, Szene, Beobachtungen, Aktionen, Belohnungen und Domain-Randomisierung bereit. Beginnen Sie mit der Flat-Walking-Aufgabe; die Rough-Variante fügt Treppen, Steigungen und unebenes Gelände hinzu.
Abbildung 2. Microduck-Umgebungen nebeneinander: flaches Gelände (links) und unebenes Gelände (rechts).
Die Richtlinie nimmt 61 Beobachtungswerte entgegen und gibt 14 Gelenkpositionen aus. Achten Sie beim Export und der Bereitstellung auf eine konsistente Reihenfolge der Beobachtungen, Normalisierung und Aktionsskalierung. Siehe die Microduck-Task-Konfiguration für die vollständigen Beobachtungen, Belohnungen und Simulationseinstellungen.
3. Beschleunigung des Locomotion-Trainings mit parallelen Isaac Lab-Umgebungen
Isaac Lab beschleunigt das Locomotion-Training von Microduck, indem simulierte Umgebungen parallel auf der GPU ausgeführt werden. Isaac Lab kann auch verteiltes Training über mehrere GPUs hinweg durchführen, beispielsweise Training mit 16 GPUs, um das Training zu beschleunigen und die Robustheit zu erhöhen. In dieser Konfiguration können wir mit aktiviertem rough terrain und backlash bis zu 1.25M Schritte pro Sekunde erreichen.
In diesem Tutorial verwenden wir Newton mit dem MJWarp-Solver und Newton-basierte Better Actuator Models (BAM) um die Servoantwort zu modellieren, zusammen mit der بازی-Voreinstellung – nein, korrekt: zusammen mit dem Spiel-Backlash-Preset, um Positionsziele durch Modellierung der Firmware-Regelung, der elektrischen Grenzen des Motors, Reibung und Verzögerung in realistische Servomomente umzuwandeln. Damit die Policy von der Simulation übertragen werden kann, nutzen wir Domain Randomization. Bei jeder Ente randomisieren wir Masse/Schwerpunkt, Bodenreibung, Gelenkträgheit, Encoder-Offsets, Batteriespannung/Spannungseinbruch und Befehls-Latenz. Wir variieren auch das Terrain und wenden Schubkräfte an; ebenso Backlash unabhängig pro Gelenk, um ungleichmäßigen Verschleiß darzustellen.
„Backlash“ ist das mechanische Spiel in einem Getriebe: Wenn ein Gelenk die Richtung wechselt, kann sich die Übertragung leicht bewegen, bevor sie greift. Die Modellierung dieses Effekts und seine Variation über die Gelenke hinweg während des Trainings setzt die Richtlinie Unterschieden aus, denen sie auf dem realen Roboter begegnen kann.
Führen Sie diesen Befehl aus, um das Training zu starten:
uv run isaaclab train \
--rl_library rsl_rl \
--task IsaacContrib-Velocity-Rough-MicroDuck \
--num_envs 4096 \
presets=backlash
Wir haben das unwegsame Gelände für die Bereitstellung verwendet, aber alternativ können Sie die flache Geländeumgebung mit diesem Befehl trainieren:
uv run isaaclab train \
--rl_library rsl_rl \
--task IsaacContrib-Velocity-Flat-MicroDuck \
--num_envs 4096 \
presets=backlash
4. Bewerten Sie die Microduck-Gehrichtlinie und exportieren Sie sie nach ONNX
Um eine Microduck-Walking-Policy auf dem physischen Roboter einzusetzen, exportieren Sie sie nach ONNX, nachdem Sie sie in der Simulation evaluiert haben. Isaac Labs RSL-RL-Playback-Workflow exportiert automatisch sowohl TorchScript- (policy.pt) als auch ONNX-Dateien (policy.onnx). Verwenden Sie policy.onnx mit Microducks Onboard-Runtime und halten Sie die Beobachtungsreihenfolge, Normalisierung und Aktionsskalierung konsistent mit dem Training.
Führen Sie den neuesten Checkpoint im Newton-Visualizer aus:
uv run isaaclab play \
--rl_library rsl_rl \
--task IsaacContrib-Velocity-Rough-MicroDuck \
--checkpoint latest \
--num_envs 16 \
--viz newton_gl \
presets=backlash
Ersetzen latest mit dem Pfad zu einem bestimmten Checkpoint.
Abbildung 4. Microducks führen eine Gehpolitik über unebenes Gelände in der Simulation aus.
Exportieren Sie die Richtlinie für Microduck
Für die Bereitstellung verwenden wir die Richtlinie für die Geländeumgebung (rough-terrain environment). Die aktuelle RSL-RL-Playback-Implementierung exportiert sowohl TorchScript- als auch ONNX-Dateien in ein exported „directory associated with the selected run:" → „Verzeichnis, das dem ausgewählten Lauf zugeordnet ist:"
exported/
├── policy.pt
└── policy.onnx
Microducks Onboard-Runtime lädt ONNX-Policies. Verwende policy.onnx für die Hardware-Übergabe. Der automatische Export ist in Isaac Labs RSL-RL-Playback-Backend.
5. Policies auf Hugging Face teilen und in der Microduck Arena evaluieren
Mit der policy.onnx exportierten Policy kannst du:
Sie vergleichen in der Microduck Arena, einem Hugging Face Space zum Testen kompatibler Policies an gemeinsamen Challenges und zum Vergleichen von Leaderboard-Ergebnissen. Die Arena akzeptiert Modelle mit 61 Beobachtungswerten, 14 Aktionswerten und einer maximalen Größe von 64 MiB. Folge der Einreichungsanleitung, um die Kompatibilität zu prüfen und an einer Challenge teilzunehmen.
Sie auf dem echten Microduck ausführen. Nach dem Prüfen der Beobachtungs- und Aktionschnittstelle aus Abschnitt 4 verwende die ONNX-Datei mit dem Onboard-Runtime des Roboters; Abschnitt 6 behandelt die Übertragung auf die Hardware.
Sie auf dem Hugging Face Hubteilen. Lade deine Policy hoch, damit andere sie entdecken und herunterladen können. Wir empfehlen, eine kurze Model Card hinzuzufügen, die erklärt, wie man sie verwendet. Du kannst auch die Trainingskonfiguration beifügen, um anderen die Reproduktion deiner Ergebnisse zu erleichtern.
6. Die ONNX-Locomotion-Policy auf einem echten Microduck bereitstellen
Nachdem die Policy in der Simulation validiert und ihre Schnittstelle geprüft wurde (Abschnitt 4), deploye policy.onnx auf einem konfigurierten Microduck:
- Kopiere die Policy von deiner Workstation und ersetze dabei ROBOT_HOST durch den Hostnamen oder die IP-Adresse des Roboters:
scp exported/policy.onnx microduck@ROBOT_HOST:/home/microduck/my_walking.onnx
- Verbinde dich mit dem Roboter und prüfe seine aktuellen Policies:
ssh microduck@ROBOT_HOST
robotctl policy list
- Stützen Sie den Roboter auf seinem Gestell, und laden Sie dann die Walking-Policy. Falls er bereits läuft, bringt das Laden ihn in seine Home-Pose zurück und setzt die Bewegung fort.
sudo robotctl policy load walk /home/microduck/my_walking.onnx
- Testen Sie Stehen, langsames Gehen, Drehen und Stoppen mit den dokumentierten Steuerungen. Überwachen Sie seinen Zustand; stellen Sie bei Bedarf die Standard-Walking-Policy wieder her:
robotctl monitor
sudo robotctl policy reset walk
Folgen Sie dem Microduck-Policy-Ladungsleitfaden für die Laufzeit-Einrichtung und das Verhalten. Abbildung 5 zeigt die Robustheit der bereitgestellten Policy gegenüber Stürzen: Microduck findet nach dem Umwerfen wieder Halt und läuft weiter.
Abbildung 5. Echter Microduck beim Gehen mit der in Isaac Lab trainierten Locomotion-Policy.
7. Erweiterung des Microduck-Trainings auf raues Terrain und Perzeptionsaufgaben mit Isaac Lab
Isaac Lab 3.0 ermöglicht GPU-paralleles Robotik-Lernen über Locomotion, feinmotorische Manipulation und visionbasierte Aufgaben hinweg, mit erweiterbaren Umgebungen sowie konfigurierbaren Physik- und Rendering-Backends. Erkunden Sie diese Beispiele und Werkzeuge:
Komplexere Fortbewegung: Passen Sie Microducks Grobgelände-Aufgabe für Treppen, Hänge und unebenen Boden an, mit einem Curriculum, das die Geländeschwierigkeit erhöht.
Wahrnehmungs- und Navigationsaufgaben: Erweitern Sie Microducks Gehrichtlinie um Tiefenbeobachtungen der Kopf-Kamera und Roboterzustandsbeobachtungen, um wahrnehmungsbasierte Aufgaben in der Simulation zu erkunden. Das folgende GIF zeigt die Überquerung einer Rampe. Erkunden Sie kamerabasierte Beobachtungen in den Kuka–Allegro-Beispielen für visionsgestützte Manipulation.
Geschickte Manipulation: Versuchen Sie die Kuka–Allegro-Anhebe- und Neuorientierungsaufgaben um einen Arm und eine mehrfingrige Hand zum Manipulieren von Objekten zu trainieren.
Eigene Umgebungen: Verwenden Sie den Projektgenerator um Ihre eigene Aufgabe zu erstellen, fügen Sie dann simulationsgerechte (SimReady) Assets aus der SimReady Central Libraryhinzu und passen Sie Beobachtungen und Belohnungen an neue Herausforderungen an.
Abbildung 7. Paralleles Training in NVIDIA Isaac Lab lässt simulierte Microducks üben, verschiedene Rampen und Plattformen zu überqueren, während sie lernen, das Gleichgewicht zu halten und Stürze zu vermeiden
Abbildung 8. Microduck-Wahrnehmungsaufgabe in der Simulation, mit einer Außenansicht oben und RGB-, Tiefen- und Segmentierungsansichten unten.
Bauen Sie Ihre nächste Gehrichtlinie
Beginnen Sie mit der Microduck-Aufgabe in Isaac Labtrainieren Sie Ihre erste Gehrichtlinie und teilen Sie das exportierte ONNX-Modell auf dem Hugging Face Hub. Validieren Sie sie in der Microduck Arena, nehmen Sie an einer Challenge teil und sehen Sie, wie Ihre Richtlinie im Vergleich abschneidet. Bauen Sie dann auf dem auf, was Sie gelernt haben—probieren Sie raueres Gelände, fügen Sie Wahrnehmung hinzu oder erstellen Sie Ihre eigene Aufgabe.
Ressourcen
Microduck-Homepage (Bestellung, Schnellstart, Installation)
Danksagungen
Dieser Workflow baut auf der Microduck-Hardware und -Software von Pollen Robotics auf, dem ursprünglichen Microduck-Reinforcement-Learning-Projekt, BAM-Aktuatormodellierungsarbeitsowie den Isaac-Lab- und Newton-Integrationen.