Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Führen Sie mit CARLA eine Simulation des autonomen Fahrens durch
Dieses Tutorial führt Sie durch die Ausführung einer CARLA-Simulation von Parametern für
Der Job führt ein Cut-In-Szenario für einen Spurwechsel durch, in dem ein NPC-Fahrzeug hinter dem Ego-Fahrzeug startet, beschleunigt, um sich während einer 105 Sekunden dauernden Startphase 20 Meter vor dem Ego zu positionieren, und biegt dann in die Fahrspur des Egos ein. Es durchläuft konfigurierbare Ego-Geschwindigkeiten, NPC-Geschwindigkeiten und NPC-Startentfernungen und erstellt für jede Parameterkombination eine Aufgabe (Standard 2×2×2 = 8 Aufgaben). Jede Aufgabe erfasst Multisensordaten von den ausgewählten Kameraperspektiven aus und erzeugt die folgende Ausgabe:
-
RGB-Bilder aus jedem ausgewählten Kamerabildpunkt
-
Frames für die semantische Segmentierung
-
LiDAR-Punktwolken ()
.ply -
2D- und 3D-Begrenzungsrahmen (KITTI-Format)
-
Per-camera Szenario-Videos (MP4) H.264
-
Zusammengefügtes Rastervideo (wenn Sie mehrere Kameras auswählen)
Das folgende Video zeigt den CARLA-Simulations-Sweep-Workflow in Deadline Cloud.
Geschätzte Zeit: 1—2 Stunden, einschließlich der Erstellung des Docker-Images. Aufgaben werden in der Regel in jeweils etwa 13 Minuten abgeschlossen.
Bei der Ausführung dieses Tutorials fallen Gebühren für die GPU-Worker-Instances an, die die Aufgaben verarbeiten, und für den Amazon ECR-Bildspeicher.
-Übersicht
Gehen Sie folgendermaßen vor, um dieses Tutorial abzuschließen:
-
Sorgen Sie dafür, dass die -Voraussetzungen erfüllt sind.
-
Richten Sie Ihre Farm ein.
-
Erstellen Sie das Docker-Image und pushen Sie es.
-
Reichen Sie den Simulationsjob ein.
-
Überwachen Sie den Job.
-
Überprüfen Sie die Ausgabe.
-
Bereinigen Sie die Ressourcen.
Voraussetzungen
Bevor Sie beginnen, schließen Sie die folgende Einrichtung ab:
-
Erstellen Sie ein AWS Konto,
falls Sie noch keines haben, und stellen Sie sicher, dass es Zugriff auf GPU-Instances hat ( g6.4xlargeempfohlen). -
Installieren Sie Docker
lokal, um das CARLA-Image zu erstellen. -
Erstellen Sie in Ihrem Konto ein Amazon
ECR-Repository, um das erstellte Image zu hosten. -
Installieren Sie die Deadline Cloud CLI
lokal.
Richten Sie Ihre Farm ein
Sie benötigen eine Deadline Cloud-Farm mit einer Warteschlange, die über eine Conda-Warteschlangenumgebung (Kanäle:conda-forge, Pakete:ffmpeg) und eine GPU-Flotte (mindestens: 1 NVIDIA-GPU mit 16 vCPU und 64 GiB Speicher) verfügt.
IAM-Berechtigungen — Ihre Warteschlangenrolle benötigt Amazon ECR-Pull-Berechtigungen, da das Task-Skript docker pull unter den Anmeldeinformationen der Warteschlangenrolle ausgeführt wird. Hängen Sie eine Richtlinie wie die folgende an:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "ecr:BatchCheckLayerAvailability" ], "Resource": "arn:aws:ecr:REGION:ACCOUNT_ID:repository/*" }, { "Effect": "Allow", "Action": "ecr:GetAuthorizationToken", "Resource": "*" } ] }
Flottenhost-Konfiguration — Ihre Flottenmitarbeiter benötigen Docker und das NVIDIA Container Toolkit. Hängen Sie das Host-Konfigurationsskript für Docker und das NVIDIA Container Toolkit an Ihre Flotte an GitHub
Erstellen Sie das Docker-Image und übertragen Sie es
Der Job wird in einem Docker-Container ausgeführt, der auf dem Basisimage :0.9.16 carlasim/carla auf Docker Hub basiert. scenario_runner, sodass jede Deadline Cloud-Aufgabe CARLA starten, das Fahrszenario ausführen und Sensordaten in einem einzigen Container aufzeichnen kann.
Um das Docker-Image zu erstellen und zu pushen
-
Erstellen Sie ein Amazon ECR-Repository, falls Sie keines haben:
aws ecr create-repository --repository-name carla-deadline --regionREGION -
Erstellen Sie das Image aus dem
docker/Verzeichnis desautonomous_driving_carlaPakets:cd docker/ docker build -t carla-deadline:0.9.16 .Anmerkung
Das Dockerfile wird als
carlasim/carla:0.9.16Basis-Image von Docker Hub abgerufen. Der erste Build lädt ungefähr 8 GB herunter. -
Übertragen Sie das Image auf Amazon ECR:
aws ecr get-login-password --regionREGION| \ docker login --username AWS --password-stdinACCOUNT_ID.dkr.ecr.REGION.amazonaws.com docker tag carla-deadline:0.9.16 \ACCOUNT_ID.dkr.ecr.REGION.amazonaws.com/carla-deadline:0.9.16 docker pushACCOUNT_ID.dkr.ecr.REGION.amazonaws.com/carla-deadline:0.9.16
Reichen Sie den Simulationsjob ein
Um den Job mit dem GUI-Absender einzureichen
-
Öffnen Sie im Bundle-Verzeichnis den Submitter:
cd autonomous_driving_carla deadline bundle gui-submit . -
Konfiguriere auf der Registerkarte „Job-specific Einstellungen“ unter „Szenarioeinstellungen“ Ego-Geschwindigkeiten, NPC-Geschwindigkeiten und NPC-Entfernungen als kommagetrennte Ganzzahlen. Das Kreuzprodukt erstellt dein Aufgabenraster.
-
Wählen Sie unter Kameraansichtspunkte aus, welche Kameras aufgenommen werden sollen. Vorne ist die Standardauswahl. Verfügbare Positionen sind Vorne, Vorne Links, Vorne Rechts, Hinten, Hinten Links und Hinten Rechts.
-
Stellen Sie unter Erweitert Ihre Container-Image-URI auf
und die AWS Region ein, in der sich Ihr Amazon ECR-Repository befindet.ACCOUNT_ID.dkr.ecr.REGION.amazonaws.com/carla-deadline:0.9.16 -
Wählen Sie Absenden aus.
Senden Sie es alternativ mit der CLI ab:
deadline bundle submit . \ --farm-idFARM_ID\ --queue-idQUEUE_ID\ --name "CARLA Lane Change Demo" \ -p ImageURI=ACCOUNT_ID.dkr.ecr.REGION.amazonaws.com/carla-deadline:0.9.16 \ -p AwsRegion=REGION
Überwachen des Auftrags
Überwachen Sie den Fortschritt in der Deadline Cloud-Konsole. Jede Aufgabe zeigt ihre Parameterwerte (EgoSpeed,NpcSpeed,NpcDistance) in der Aufgabentabelle an. Aufgaben werden in der Regel in jeweils etwa 13 Minuten abgeschlossen.
Die Protokollausgabe zeigt:
-
Generierung von Szenarien und Parameterwerte
-
Start und Bereitschaft des CARLA-Servers
-
Fortschritt der Sensorerfassung (Anzahl der Bilder pro Kamera)
-
Videokodierung für jede Kamera
-
Grid-Video-Stitching (wenn Sie mehrere Kameras ausgewählt haben)
Überprüfen Sie die Ausgabe
Um die Ausgabe herunterzuladen
-
Führen Sie nach Abschluss des Jobs den Download-Befehl in demselben Verzeichnis aus, das Sie beim Senden verwendet haben, sodass der
OutputDirPfad (Standard./outputs) an derselben Stelle aufgelöst wird:deadline job download-output --job-idjob-id -
Deadline Cloud stellt die Ausgabe in dem
OutputDirVerzeichnis wieder her, das Sie beim Senden des Jobs ausgewählt haben.
Jede Aufgabe erzeugt eine Ausgabe in einem Unterverzeichnis, das nach ihren Parametern benannt ist:
outputs/ └── ego20_npc30_dist10/ ├── rgb/ │ ├── front/frame_000001.png ... frame_000062.png │ └── rear/frame_000001.png ... frame_000062.png ├── semantic/ │ ├── front/... │ └── rear/... ├── lidar/frame_000001.ply ... ├── bbox_2d/{front,rear}/frame_*.txt ├── bbox_3d/frame_*.txt └── video/ ├── front_scenario.mp4 ├── rear_scenario.mp4 └── grid_scenario.mp4
Bekannte Beschränkungen
-
Nur Linux — Das CARLA Docker-Image erfordert einen Linux-Host mit NVIDIA-GPU-Treibern. Die Arbeiter müssen auf Linux-Flotten laufen.
-
Nur x86_64 — Das CARLA Docker-Image unterstützt keine ARM-Architekturen.
-
Mosaikbilder — Der Job generiert RGB/semantic Mosaikbilder, wenn Sie 2 oder mehr Kameras auswählen. Das Layout ist 2×3, wenn alle 6 aktiv sind, andernfalls ein kleineres Raster.
-
Die Aufnahmerate skaliert mit der Anzahl der Kameras — Das Aufnahmeskript schreibt PNGs synchron pro Flush. Bei allen 6 Kameras schreibt jeder Flush 14 PNGs statt 2 mit einer einzelnen Kamera, und mit der erhöhten Geschwindigkeit werden Flushs unter die Zielvorgabe von 7 Bildern I/O pro Sekunde gebracht. Der Video-Encoder ist fest auf 7 Bilder pro Sekunde eingestellt, sodass im gleichen Szenario ein längeres Video pro Kamera mit wenigen aktivierten Kameras und ein kürzeres, dichteres Multiview-Video mit vielen aktivierten Kameras erzeugt wird. Dieses synchrone Design ist ein bewusster Kompromiss, um die Architektur der Probe klein und leicht anpassbar zu halten. Eine Produktionspipeline würde den Sensor parallelisieren. I/O
Bereinigen
Um laufende Gebühren zu vermeiden, sollten Sie die Ressourcen, die Sie für dieses Tutorial erstellt haben, bereinigen:
So bereinigen Sie die Ressourcen für das Tutorial
-
Wenn Sie speziell für dieses Tutorial eine GPU-Flotte erstellt haben, beenden oder löschen Sie sie. Wenn Sie eine bereits vorhandene gemeinsame Flotte verwendet haben, lassen Sie sie unverändert.
-
Löschen Sie das
carla-deadlineAmazon ECR-Repository, wenn Sie das Image nicht mehr benötigen.
Zugehörige Ressourcen
Die folgenden Ressourcen bieten zusätzliche Informationen: