Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Esegui una simulazione di guida autonoma con CARLA
Questo tutorial illustra l'esecuzione di una scansione dei parametri di simulazione di guida autonoma
Il lavoro prevede uno scenario di cambio di corsia in cui un veicolo NPC parte dietro il veicolo egoico, accelera fino a posizionarsi 20 metri davanti all'ego durante una fase di avanzamento di 105 secondi, quindi entra nella corsia dell'ego. Varia tra velocità dell'ego configurabili, velocità degli NPC e distanze iniziali degli NPC, creando un'attività per ogni combinazione di parametri (2×2×2 di default = 8 attività). Ogni attività acquisisce dati multisensore dai punti di vista della telecamera selezionati e produce il seguente output:
-
Fotogrammi RGB da ogni punto di vista della telecamera selezionato
-
Cornici di segmentazione semantica
-
Nuvole di punti LiDAR ()
.ply -
riquadri di delimitazione 2D e 3D (formato KITTI)
-
Per-camera video di scenari (MP4) H.264
-
Video a griglia cucita (se si selezionano più fotocamere)
Il video seguente illustra il flusso di lavoro di scansione della simulazione CARLA su Deadline Cloud.
Tempo stimato: 1—2 ore, inclusa la creazione dell'immagine Docker. Le attività in genere vengono completate in circa 13 minuti ciascuna.
L'esecuzione di questo tutorial comporta costi per le istanze GPU Worker che elaborano le attività e per lo storage delle immagini di Amazon ECR.
Panoramica di
Per completare questo tutorial, segui questi passaggi:
-
Completare i prerequisiti .
-
Allestisci la tua fattoria.
-
Crea e invia l'immagine Docker.
-
Invia il lavoro di simulazione.
-
Monitora il lavoro.
-
Esamina l'output.
-
Eliminare le risorse.
Prerequisiti
Prima di iniziare, completa la seguente configurazione:
-
Crea un AWS account
se non ne hai già uno, assicurandoti che abbia accesso alle istanze GPU ( g6.4xlargeconsigliato). -
Installa Docker
localmente per creare l'immagine CARLA. -
Crea un repository
Amazon ECR nel tuo account per ospitare l'immagine creata. -
Installa la CLI Deadline Cloud localmente
.
Configura la tua fattoria
È necessaria una farm Deadline Cloud con una coda dotata di un ambiente di coda conda (canali:conda-forge, pacchetti:ffmpeg) e una flotta di GPU (minimo: 1 GPU NVIDIA con 16 vCPU e 64 GiB di memoria).
Autorizzazioni IAM: il tuo ruolo di coda richiede le autorizzazioni pull di Amazon ECR, perché lo script dell'attività viene eseguito con le credenziali del ruolo di coda. docker pull Allega una policy come la seguente:
{ "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": "*" } ] }
Configurazione degli host del parco veicoli: i dipendenti della tua flotta hanno bisogno di Docker e di NVIDIA Container Toolkit. Allega lo script di configurazione host di Docker e NVIDIA Container Toolkit alla tua flotta. GitHub
Crea e invia l'immagine Docker
Il lavoro viene eseguito all'interno di un contenitore Docker basato sull'immagine base:0.9.16 carlasim/carla su Docker Hub. scenario_runner
Per creare e inviare l'immagine Docker
-
Crea un repository Amazon ECR se non ne hai uno:
aws ecr create-repository --repository-name carla-deadline --regionREGION -
Dalla
docker/directory delautonomous_driving_carlapacchetto, crea l'immagine:cd docker/ docker build -t carla-deadline:0.9.16 .Nota
Il Dockerfile attinge
carlasim/carla:0.9.16da Docker Hub come immagine di base. La prima build scarica circa 8 GB. -
Invia l'immagine ad 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
Invia il lavoro di simulazione
Per inviare il lavoro con il mittente della GUI
-
Dalla cartella del pacchetto, apri il mittente:
cd autonomous_driving_carla deadline bundle gui-submit . -
Nella scheda delle Job-specific impostazioni, in Impostazioni dello scenario, configura le velocità ego, le velocità NPC e le distanze degli NPC come numeri interi separati da virgole. Il cross-product crea la tua griglia delle attività.
-
In Punti di vista della fotocamera, seleziona le fotocamere da catturare. Front è la selezione predefinita. Le posizioni disponibili sono anteriore, anteriore sinistro, anteriore destro, posteriore, posteriore sinistro e posteriore destro.
-
In Avanzato, imposta l'URI dell'immagine del contenitore su
e la AWS regione in cui risiede il tuo repository Amazon ECR.ACCOUNT_ID.dkr.ecr.REGION.amazonaws.com/carla-deadline:0.9.16 -
Seleziona Invia.
In alternativa, invia con la CLI:
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
Monitoraggio del processo
Monitora i progressi nella console Deadline Cloud. Ogni attività mostra i valori dei parametri (EgoSpeed,NpcSpeed,NpcDistance) nella tabella delle attività. Le attività in genere vengono completate in circa 13 minuti ciascuna.
L'output del registro mostra:
-
Generazione di scenari e valori dei parametri
-
Avvio e disponibilità del server CARLA
-
Avanzamento dell'acquisizione del sensore (numero di fotogrammi per telecamera)
-
Codifica video per ogni telecamera
-
Cucitura video a griglia (se hai selezionato più videocamere)
Rivedi l'output
Per scaricare l'output
-
Al termine del processo, esegui il comando di download dalla stessa directory utilizzata al momento dell'invio, in modo che il
OutputDirpercorso (predefinito./outputs) si risolva nella stessa posizione:deadline job download-output --job-idjob-id -
Deadline Cloud ripristina l'output
OutputDirnella directory selezionata al momento dell'invio del lavoro.
Ogni attività produce un output in una sottodirectory denominata in base ai suoi parametri:
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
Limiti noti
-
Solo Linux: l'immagine CARLA Docker richiede un host Linux con driver GPU NVIDIA. I lavoratori devono lavorare su flotte Linux.
-
Solo x86_64: l'immagine CARLA Docker non supporta le architetture ARM.
-
Immagini a mosaico: il lavoro genera immagini a RGB/semantic mosaico quando si selezionano 2 o più fotocamere. Il layout è 2×3 quando tutte e 6 sono attive, altrimenti una griglia più piccola.
-
La velocità di acquisizione si ridimensiona in base al numero di fotocamere: lo script di acquisizione scrive i PNG in modo sincrono per ogni flush. Con tutte e 6 le fotocamere, ogni flush scrive 14 PNG anziché 2 con una singola videocamera, e l'aumento dei I/O rallentamenti scende al di sotto dell'obiettivo di 7 FPS. Il codificatore video è fisso a 7 FPS, quindi lo stesso scenario produce un video per telecamera più lungo con poche fotocamere attivate e un video multiview più corto e denso con molte fotocamere attivate. Questo design sincrono è un compromesso intenzionale per mantenere l'architettura del campione piccola e facile da adattare. Una pipeline di produzione parallelizzerebbe il sensore. I/O
Eliminazione
Per evitare addebiti continui, pulisci le risorse che hai creato per questo tutorial:
Per ripulire le risorse del tutorial
-
Se hai creato una flotta di GPU appositamente per questo tutorial, interrompila o eliminala. Se hai utilizzato un parco veicoli condiviso preesistente, lascialo al suo posto.
-
Elimina il repository
carla-deadlineAmazon ECR se l'immagine non ti serve più.
Risorse correlate
Le seguenti risorse forniscono informazioni aggiuntive: