Isaac Gym: High Performance GPU-Based Physics Simulation For Robot Learning
Autoren: Viktor Makoviychuk, Lukasz Wawrzyniak, Yunrong Guo, Michelle Lu, Kier Storey, Miles Macklin, David Hoeller, Nikita Rudin, Arthur Allshire, Ankur Handa, Gavriel State · arXiv 2021
Lizenzen
- Open Access
- Paper: CC BY 4.0
Alles Folgende stützt sich auf das vollständige Paper unter seiner Lizenz CC BY 4.0; die Abbildung wird mit Nennung der Autoren gezeigt.
Kurz gesagt
Isaac Gym führt PhysX-Simulation, Beobachtungen, Belohnungen und PPO-Training über eine PyTorch-Tensor-API auf einer GPU aus; die Würfelneuorientierung der Shadow Hand sinkt von 30 h auf einem CPU-Cluster auf unter 1 h.
Warum es wichtig ist
Aufgaben, die zuvor einen CPU-Cluster benötigten, lassen sich auf einer einzigen GPU in Minuten bis Stunden trainieren, was die Iterationen in der Forschung zu Fortbewegung und geschickter Manipulation verkürzt. Die Autoren übertragen so trainierte Policies außerdem auf einen realen ANYmal in unebenem Gelände und auf einen entfernt betriebenen realen TriFinger, was darauf hindeutet, dass die simulierte Kontaktphysik Sim-to-Real-Arbeit unterstützt.
Problem
Roboter-RL simuliert Physik in der Regel auf CPUs und trainiert Netze auf GPUs, sodass Daten bei jedem Schritt zwischen Geräten verschoben werden und die Simulationsgeschwindigkeit das Training begrenzt. Die Shadow-Hand-Würfelarbeit von OpenAI etwa nutzte 384 Maschinen mit 6144 CPU-Kernen plus 8 V100-GPUs für 30 Stunden, und ihre Rubik's-Cube-Folgearbeit nutzte fast 30.000 CPU-Kerne.
Lösungsansatz
Isaac Gym führt NVIDIA PhysX auf der GPU mit zwei Ergänzungen aus: Simulationsergebnisse werden nicht mehr nach jedem Schritt zur CPU geholt, und eine direkte GPU-API liest Zustände und wendet Steuerbefehle in GPU-Puffern an. Diese Puffer werden ohne Kopieren als PyTorch-Tensoren gekapselt, sodass Tausende paralleler Umgebungen auf einer GPU fortgeschaltet, beobachtet, belohnt und trainiert werden (mit der PPO-Implementierung von rl_games), wobei Roboter aus URDF oder MJCF geladen werden.
Wichtigste Erkenntnisse
- Wenn Physikzustand, Beobachtungs- und Belohnungsberechnung sowie Policy-Training auf der GPU bleiben, entfallen die CPU-GPU-Kopien, die herkömmliche RL-Pipelines begrenzen.
- Mehr parallele Umgebungen verkürzen das Training, bis der Horizont pro Umgebung zu kurz wird: Humanoid gewinnt bei Horizont 32 jenseits von 4096 Umgebungen nichts und lernt schlechtere Gangarten, lernt aber mit 8192 und 16384 Umgebungen, wenn die Horizonte verdoppelt werden.
- Der Simulationsdurchsatz sinkt mit der Modellkomplexität: bis zu etwa 700K Umgebungsschritte pro Sekunde für Ant, 200K für Humanoid und 150K für die Shadow Hand auf einer A100.
- Asymmetrisches Actor-Critic, bei dem der Critic privilegierten Simulatorzustand und die Policy nur auf einem realen Roboter verfügbare Beobachtungen erhält, wird für die Setups Shadow Hand OpenAI und TriFinger verwendet, um Sim-to-Real-Transfer zu ermöglichen.
- Ein bewegliches Handgelenk hilft bei der Neuorientierung: Die Allegro Hand mit festem Handgelenk und etwas längeren Fingern erreicht weniger aufeinanderfolgende Erfolge als die Shadow Hand, obwohl sie weniger Freiheitsgrade hat.
Hauptergebnisse
- Auf einer einzelnen A100: Ant überschreitet in 20 s eine Belohnung von 3000, Humanoid läuft (Belohnung 5000) in unter 4 min, ANYmal folgt Geschwindigkeitsvorgaben in unter 2 min, und Würfelstapeln mit Franka konvergiert in unter 25 min.
- Shadow Hand mit OpenAI-Beobachtungen und Domänenrandomisierung: mehr als 20 aufeinanderfolgende Erfolge in unter 1 h (Feedforward) und 37 in knapp unter 6 h (LSTM), gegenüber 30 h und etwa 17 h für OpenAI auf 6144 CPU-Kernen plus 8 V100-GPUs; der beste LSTM-Seed erreicht 37 in 2,5 h.
- Shadow Hand Standard (keine Randomisierung): 20 aufeinanderfolgende Erfolge in unter 35 min; die Erhöhung von 256 auf 16384 Umgebungen verkürzt das Training von 5×10⁴ s (etwa 14 h) auf 3×10³ s (etwa 1 h).
- AMP-Animation humanoider Figuren: etwa 39 Millionen Samples in etwa 6 min mit 4096 Umgebungen, gegenüber etwa 30 h auf 16 CPU-Kernen in PyBullet, angegeben als 300× Verbesserung.
- Sim-to-Real: Die ANYmal-Policy für unebenes Gelände wird auf einer RTX A6000 in unter 20 min trainiert und auf den realen Roboter übertragen; der reale TriFinger erreicht eine mittlere Erfolgsrate von 55 %, wobei der Transfer aus der Ferne erfolgte.
- Widersprüchliche Angaben zur Beschleunigung: Die v1-Zusammenfassung nennt 1-2 Größenordnungen gegenüber Training mit CPU-Simulator, während die v1-Einleitung und Fig. 2 von 100×-1000× sprechen; die aktuelle arXiv-Zusammenfassung nennt 2-3 Größenordnungen.
Einschränkungen
- Die Shadow-Hand-Experimente finden nur in der Simulation statt; anders als bei OpenAI wird für die Hand kein Sim-to-Real-Transfer versucht, und die Randomisierungen lassen Aktionsverzögerung und Motorspiel weg.
- Shadow Hand Standard verwendet Beobachtungen, die auf einem realen Roboter möglicherweise nicht verfügbar sind, daher halten die Autoren es für ungeeignet für Sim-to-Real-Transfer.
- Ingenuity ist ein vereinfachtes Modell: Kräfte werden direkt auf die beiden Rotoren aufgebracht, statt die Aerodynamik zu simulieren.
- Mit der FleX-Engine ist nur eingeschränkte Tensor-API-Funktionalität verfügbar, der Szenenaufbau läuft auf der CPU, und die enthaltenen Beispiele nutzen PyTorch, wobei eine TensorFlow-Integration weitere Anpassung erfordert.
- Zusätzliche Umgebungen helfen nicht mehr, sobald die Horizonte kurz werden: Ant zeigt von 8192 auf 16384 Umgebungen keinen Gewinn, und Humanoid trainiert bei Horizont 32 jenseits von 4096 Umgebungen langsamer und lernt suboptimale Gangarten.
Wirkung auf das Fachgebiet
1469 Zitationen. Die Arbeit stellt Isaac Gym als Download von NVIDIA bereit (developer.nvidia.com/isaac-gym), einschließlich einer grundlegenden PPO-Implementierung und eines RL-Aufgabensystems, und zeigt Ergebnisse und Videos auf ihrer Projektseite.
Zusammenfassung
Isaac Gym bietet eine leistungsstarke Lernplattform, um Policies für eine große Vielfalt von Robotikaufgaben direkt auf der GPU zu trainieren. Sowohl die Physiksimulation als auch das Training der neuronalen Netz-Policy liegen auf der GPU und kommunizieren, indem Daten direkt aus Physikpuffern an PyTorch-Tensoren übergeben werden, ohne jemals einen CPU-Engpass zu durchlaufen. Dies führt zu extrem schnellen Trainingszeiten für komplexe Robotikaufgaben auf einer einzigen GPU, mit Verbesserungen um 2-3 Größenordnungen gegenüber herkömmlichem RL-Training, das einen CPU-basierten Simulator und eine GPU für neuronale Netze verwendet. Ergebnisse und Videos stellen wir unter https://sites.google.com/view/isaacgym-nvidia bereit, und isaac gym kann unter https://developer.nvidia.com/isaac-gym heruntergeladen werden.
Links
- arXiv 2108.10470: https://arxiv.org/abs/2108.10470
- DOI https://doi.org/10.48550/arxiv.2108.10470: https://doi.org/https://doi.org/10.48550/arxiv.2108.10470
- PDF: https://arxiv.org/pdf/2108.10470v1
- Projektseite: https://sites.google.com/view/isaacgym-nvidia