AirSim-Entwicklungsumgebung auf Azure#
Dieses Dokument erklärt, wie die Erstellung einer Entwicklungsumgebung auf Azure automatisiert wird und wie eine Python-Anwendung, die mit AirSim verbunden ist, mit Visual Studio Code codiert und debuggt wird.
Azure VM automatisch bereitstellen#
Klicken Sie auf die blaue Schaltfläche, um die Azure-Bereitstellung zu starten (Die Vorlage ist mit der empfohlenen virtuellen Maschinengröße für die Anwendungsfälle der folgenden beiden Tutorials vorab ausgefüllt).
Hinweis: Der Bereitstellungs- und Konfigurationsprozess der VM kann 20+ Minuten dauern.
Hinsichtlich der Bereitstellung der Azure VM#
-
Wenn Sie ein Azure-Testkonto verwenden, reicht die Standard-vCPU-Quote nicht aus, um die erforderliche VM für die Ausführung von AirSim zuzuweisen. In diesem Fall erhalten Sie beim Versuch, die VM zu erstellen, eine Fehlermeldung und müssen eine Anforderung zur Erhöhung der Quote einreichen. **Stellen Sie sicher, dass Sie verstehen, wie und wie viel Ihnen die Nutzung der VM berechnet wird.**
-
Um Gebühren für die Nutzung der virtuellen Maschine zu vermeiden, während sie nicht verwendet wird, denken Sie daran, ihre Ressourcen über das Azure Portal zu deallokieren oder den folgenden Befehl über die Azure CLI zu verwenden.
az vm deallocate --resource-group MyResourceGroup --name MyVMName
Code und debuggen von Visual Studio Code und Remote SSH#
- Visual Studio Code installieren
- Die Erweiterung Remote - SSH installieren
- Drücken Sie
F1und führen Sie den BefehlRemote - SSH: Connect to host...aus. - Fügen Sie die Details der kürzlich erstellten VM hinzu. Zum Beispiel
AzureUser@11.22.33.44 - Führen Sie den Befehl
Remote - SSH: Connect to host...erneut aus und wählen Sie nun die neu hinzugefügte Verbindung aus. - Sobald Sie verbunden sind, klicken Sie in Visual Studio Code auf die Schaltfläche
Clone Repositoryund klonen Sie entweder dieses Repository auf der Remote-VM und öffnen Sie *nur den Ordnerazure*, oder erstellen Sie ein brandneues Repository, klonen Sie es und kopieren Sie den Inhalt des Ordnersazureaus diesem Repository hinein. Es ist wichtig, dieses Verzeichnis zu öffnen, damit Visual Studio Code das spezifische Verzeichnis.vscodefür das Szenario verwenden kann und nicht das allgemeine.vscode-Verzeichnis von AirSim. Es enthält die empfohlenen Erweiterungen zur Installation, die Aufgabe zum Fernstarten von AirSim und die Startkonfiguration für die Python-Anwendung. - Alle empfohlenen Erweiterungen installieren
- Drücken Sie
F1und wählen Sie die OptionTasks: Run Task. Wählen Sie dann die AufgabeStart AirSimaus Visual Studio Code, um das Skriptstart-airsim.ps1von Visual Studio Code auszuführen. - Öffnen Sie die Datei
multirotor.pyim Verzeichnisapp. - Mit Python mit dem Debugging beginnen
- Wenn Sie fertig sind, denken Sie daran, die Azure VM zu stoppen und zu deallokieren, um zusätzliche Kosten zu vermeiden.
Code und debuggen von einem lokalen Visual Studio Code und Verbindung zu AirSim über weitergeleitete Ports#
Hinweis: In diesem Szenario werden zwei Instanzen von Visual Studio Code verwendet. Die erste wird als Brücke verwendet, um Ports über SSH zur Azure VM weiterzuleiten und Remote-Prozesse auszuführen, und die zweite wird für die lokale Python-Entwicklung verwendet. Um die VM von lokalem Python-Code erreichen zu können, ist es erforderlich, die Remote - SSH-Instanz von Visual Studio Code geöffnet zu lassen, während Sie mit dem lokalen Python-Umfeld in der zweiten Instanz arbeiten.
- Die erste Instanz von Visual Studio Code öffnen
- Folgen Sie den Schritten im vorherigen Abschnitt, um sich über
Remote - SSHzu verbinden. - Fügen Sie im Remote Explorer den Port
41451als weitergeleiteten Port zu localhost hinzu. - Führen Sie entweder die Aufgabe
Start AirSimin Visual Studio Code mit der Remote-Sitzung aus, wie im vorherigen Szenario erläutert, oder starten Sie die AirSim-Binärdatei manuell in der VM. - Öffnen Sie eine zweite Instanz von Visual Studio Code, ohne die erste zu trennen oder zu schließen.
- Klonen Sie entweder dieses Repository lokal und öffnen Sie *nur den Ordner
azure* in Visual Studio Code, oder erstellen Sie ein brandneues Repository, klonen Sie es und kopieren Sie den Inhalt des Ordnersazureaus diesem Repository hinein. - Führen Sie
pip install -r requirements.txtim Verzeichnisappaus. - Öffnen Sie die Datei
multirotor.pyim Verzeichnisapp. - Mit Python mit dem Debugging beginnen
- Wenn Sie fertig sind, denken Sie daran, die Azure VM zu stoppen und zu deallokieren, um zusätzliche Kosten zu vermeiden.
Ausführung mit Docker#
Sobald sowohl die AirSim-Umgebung als auch die Python-Anwendung bereit sind, können Sie alles als Docker-Image paketieren. Das Beispielprojekt im Verzeichnis azure ist bereits darauf vorbereitet, eine vorkompilierte AirSim-Binärdatei und Python-Code mithilfe von Docker auszuführen.
Dies wäre ein perfektes Szenario, wenn Sie die Simulation im großen Maßstab ausführen möchten. Sie könnten zum Beispiel mehrere verschiedene Konfigurationen für dieselbe Simulation haben und diese parallel und unbeaufsichtigt mithilfe eines Docker-Images auf Azure Container Services ausführen.
Da AirSim Zugriff auf die Host-GPU benötigt, ist es erforderlich, eine Docker-Laufzeit zu verwenden, die dies unterstützt. Weitere Informationen zur Ausführung von AirSim in Docker finden Sie hier.
Bei der Verwendung von Azure Container Services zum Ausführen dieses Images ist die einzige zusätzliche Anforderung, die GPU-Unterstützung zur Container-Gruppe hinzuzufügen, in der es bereitgestellt wird.
Es können entweder öffentliche Docker-Images von DockerHub oder in einer privaten Azure Container Registry bereitgestellte Images verwendet werden.
Erstellen des Docker-Images#
docker build -t <your-registry-url>/<your-image-name> -f ./docker/Dockerfile .`
Verwendung einer anderen AirSim-Binärdatei#
Um eine andere AirSim-Binärdatei zu verwenden, prüfen Sie zunächst die offizielle Dokumentation unter How to Build AirSim on Windows und How to Build AirSim on Linux, wenn Sie es auch mit Docker ausführen möchten.
Sobald Sie eine ZIP-Datei mit der neuen AirSim-Umgebung haben (oder eine aus den offiziellen Releases verwenden möchten), müssen Sie einige der Skripte im Verzeichnis azure des Repositories ändern, um auf die neue Umgebung zu verweisen: - In azure/azure-env-creation/configure-vm.ps1, ändern Sie alle Parameter, die mit $airSimBinary beginnen, mit den neuen Werten - In azure/start-airsim.ps1, ändern Sie $airSimExecutable und $airSimProcessName mit den neuen Werten.
Wenn Sie das Docker-Image verwenden, benötigen Sie außerdem eine Linux-Binär-ZIP-Datei und müssen die folgenden Docker-bezogenen Dateien ändern: - In azure/docker/Dockerfile, ändern Sie die ENV-Deklarationen AIRSIM_BINARY_ZIP_URL und AIRSIM_BINARY_ZIP_FILENAME mit den neuen Werten - In azure/docker/docker-entrypoint.sh, ändern Sie AIRSIM_EXECUTABLE mit dem neuen Wert.
Wartung dieser Entwicklungsumgebung#
Mehrere Komponenten dieser Entwicklungsumgebung (ARM-Vorlagen, Initialisierungsskripte und VSCode-Aufgaben) hängen direkt von den aktuellen Verzeichnisstrukturen, Dateinamen und Repository-Speicherorten ab. Wenn Sie planen, eines davon zu ändern/zu forken, stellen Sie sicher, dass Sie jedes Skript und jede Vorlage überprüfen, um alle erforderlichen Anpassungen vorzunehmen.