View a markdown version of this page

Jalankan sapuan simulasi mengemudi otonom dengan CARLA - Awan Batas Waktu

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Jalankan sapuan simulasi mengemudi otonom dengan CARLA

Tutorial ini memandu Anda menjalankan sapuan parameter simulasi mengemudi otonom CARLA dengan penangkapan multi-sensor yang dapat dikonfigurasi. Anda membuat image Docker, mendorongnya ke Amazon Elastic Container Registry (Amazon ECR), dan mengirimkan bundel pekerjaan CARLA mengemudi otonom GitHub ke armada GPU di farm Deadline Cloud Anda.

Pekerjaan menjalankan skenario cut-in perubahan jalur di mana kendaraan NPC mulai di belakang kendaraan ego, berakselerasi untuk memposisikan dirinya 20 meter di depan ego selama fase maju 105 detik, kemudian memotong jalur ego. Ini menyapu kecepatan ego yang dapat dikonfigurasi, kecepatan NPC, dan jarak awal NPC, menciptakan tugas untuk setiap kombinasi parameter (default 2 × 2 × 2 = 8 tugas). Setiap tugas menangkap data multi-sensor dari sudut pandang kamera yang Anda pilih dan menghasilkan output berikut:

  • Bingkai RGB dari setiap sudut pandang kamera yang dipilih

  • Kerangka segmentasi semantik

  • Awan titik LiDAR () .ply

  • Kotak pembatas 2D dan 3D (format KITTI)

  • Per-camera video skenario (H.264 MP4)

  • Video grid yang dijahit (jika Anda memilih beberapa kamera)

Video berikut menunjukkan alur kerja penyapuan simulasi CARLA di Deadline Cloud.

Perkiraan waktu: 1-2 jam, termasuk pembuatan image Docker. Tugas biasanya diselesaikan dalam waktu sekitar 13 menit masing-masing.

Menjalankan tutorial ini dikenakan biaya untuk instans pekerja GPU yang memproses tugas dan untuk penyimpanan gambar Amazon ECR.

Gambaran umum

Untuk menyelesaikan tutorial ini, ikuti langkah-langkah berikut:

  1. Lengkapi prasyarat.

  2. Siapkan peternakan Anda.

  3. Membangun dan mendorong image Docker.

  4. Kirim pekerjaan simulasi.

  5. Pantau pekerjaan.

  6. Tinjau output.

  7. Pembersihan sumber daya

Prasyarat

Sebelum Anda mulai, selesaikan pengaturan berikut:

  1. Buat AWS akun jika Anda belum memilikinya, pastikan akun tersebut memiliki akses ke instans GPU (g6.4xlargedisarankan).

  2. Instal Docker secara lokal untuk membangun image CARLA.

  3. Buat repositori Amazon ECR di akun Anda untuk meng-host gambar yang dibuat.

  4. Instal De adline Cloud CLI secara lokal.

Siapkan peternakan Anda

Anda memerlukan farm Deadline Cloud dengan antrian yang memiliki lingkungan antrian conda (channel:conda-forge, packages:ffmpeg) dan armada GPU (minimal: 1 GPU NVIDIA dengan 16 vCPU dan memori 64 GiB).

Izin IAM — Peran antrian Anda memerlukan izin tarik Amazon ECR, karena skrip tugas berjalan docker pull di bawah kredentif peran antrian. Lampirkan kebijakan seperti berikut ini:

{ "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": "*" } ] }

Konfigurasi host armada — Pekerja armada Anda membutuhkan Docker dan NVIDIA Container Toolkit. Lampirkan skrip konfigurasi host Docker dan NVIDIA Container Toolkit GitHub ke armada Anda. Untuk informasi selengkapnya, lihat Jalankan kontainer Docker dengan GPU NVIDIA pada pekerja Deadline Cloud.

Membangun dan mendorong image Docker

Pekerjaan berjalan di dalam wadah Docker berdasarkan image dasar:0.9.16 di Docker Hub carlasim/carla. Gambar CARLA dasar menyertakan simulator tetapi tidak memiliki lingkungan Python, pelari skenario, dan skrip penangkapan sensor yang diperlukan untuk pekerjaan ini. Lapisan gambar khusus pada Python 3.10,scenario_runner, dan skrip titik masuk dan tangkapan sehingga setiap tugas Deadline Cloud dapat mem-boot CARLA, menjalankan skenario mengemudi, dan merekam data sensor dalam satu wadah.

Untuk membangun dan mendorong image Docker
  1. Buat repositori Amazon ECR jika Anda tidak memilikinya:

    aws ecr create-repository --repository-name carla-deadline --region REGION
  2. Dari docker/ direktori autonomous_driving_carla bundel, buat gambar:

    cd docker/ docker build -t carla-deadline:0.9.16 .
    catatan

    Dockerfile menarik carlasim/carla:0.9.16 dari Docker Hub sebagai gambar dasar. Versi pertama mengunduh sekitar 8 GB.

  3. Dorong gambar ke Amazon ECR:

    aws ecr get-login-password --region REGION | \ docker login --username AWS --password-stdin ACCOUNT_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 push ACCOUNT_ID.dkr.ecr.REGION.amazonaws.com/carla-deadline:0.9.16

Kirim pekerjaan simulasi

Untuk mengirimkan pekerjaan dengan pengirim GUI
  1. Dari direktori bundel, buka pengirim:

    cd autonomous_driving_carla deadline bundle gui-submit .
  2. Pada tab Job-specific pengaturan, di bawah Pengaturan S kenario, konfigurasikan kecepatan ego, kecepatan NPC, dan jarak NPC sebagai bilangan bulat yang dipisahkan koma. Produk silang membuat grid tugas Anda.

  3. Di bawah Camera Viewpoints, pilih kamera mana yang akan diambil. Depan adalah pilihan default. Posisi yang tersedia adalah Depan, Depan Kiri, Depan Kanan, Belakang, Kiri Belakang, dan Kanan Belakang.

  4. Di bawah Lanjutan, atur URI Gambar Kontainer Anda ke ACCOUNT_ID.dkr.ecr.REGION.amazonaws.com/carla-deadline:0.9.16 dan Wil AWS ayah tempat repositori Amazon ECR Anda berada.

  5. Pilih Kirim.

Atau, kirimkan dengan CLI:

deadline bundle submit . \ --farm-id FARM_ID \ --queue-id QUEUE_ID \ --name "CARLA Lane Change Demo" \ -p ImageURI=ACCOUNT_ID.dkr.ecr.REGION.amazonaws.com/carla-deadline:0.9.16 \ -p AwsRegion=REGION

Memantau tugas

Pantau kemajuan di konsol Deadline Cloud. Setiap tugas menunjukkan nilai parameternya (EgoSpeedNpcSpeed,,NpcDistance) dalam tabel tugas. Tugas biasanya diselesaikan dalam waktu sekitar 13 menit masing-masing.

Output log menunjukkan:

  • Pembuatan skenario dan nilai parameter

  • Boot dan kesiapan server CARLA

  • Kemajuan penangkapan sensor (jumlah bingkai per kamera)

  • Pengkodean video untuk setiap kamera

  • Jahitan video grid (jika Anda memilih beberapa kamera)

Tinjau output

Untuk mengunduh output
  1. Setelah pekerjaan selesai, jalankan perintah unduh dari direktori yang sama yang Anda gunakan pada waktu pengiriman, sehingga OutputDir jalur (default./outputs) diselesaikan ke tempat yang sama:

    deadline job download-output --job-id job-id
  2. Deadline Cloud mengembalikan output ke OutputDir direktori yang Anda pilih saat mengirimkan pekerjaan.

Setiap tugas menghasilkan output dalam subdirektori yang dinamai parameternya:

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

Keterbatasan yang Sudah Diketahui

  • Hanya Linux — Gambar CARLA Docker memerlukan host Linux dengan driver GPU NVIDIA. Pekerja harus berjalan di armada Linux.

  • x86_64 saja - Gambar CARLA Docker tidak mendukung arsitektur ARM.

  • Gambar mosaik — Pekerjaan menghasilkan gambar RGB/semantic mosaik saat Anda memilih 2 atau lebih kamera. Tata letaknya adalah 2 × 3 ketika semua 6 aktif, atau kisi yang lebih kecil sebaliknya.

  • Tingkat pengambilan skala dengan jumlah kamera — Skrip pengambilan menulis PNG secara serempak per flush. Dengan semua 6 kamera, setiap flush menulis 14 PNG, bukan 2 dengan satu kamera, dan peningkatan perlambatan I/O flush di bawah target 7 FPS. Encoder video ditetapkan pada 7 FPS, sehingga skenario yang sama menghasilkan video per kamera yang lebih panjang dengan beberapa kamera diaktifkan dan video multi-view yang lebih pendek dan lebih padat dengan banyak kamera diaktifkan. Desain sinkron ini merupakan pertukaran yang disengaja untuk menjaga arsitektur sampel tetap kecil dan mudah diadaptasi. Pipa produksi akan memparalelkan sensor. I/O

Bersihkan

Untuk menghindari biaya yang sedang berlangsung, bersihkan sumber daya yang Anda buat untuk tutorial ini:

Untuk membersihkan sumber daya tutorial
  1. Jika Anda membuat armada GPU khusus untuk tutorial ini, hentikan atau hapus. Jika Anda menggunakan armada bersama yang sudah ada sebelumnya, biarkan tetap di tempatnya.

  2. Hapus repositori carla-deadline Amazon ECR jika Anda tidak lagi membutuhkan gambar.

Sumber daya berikut memberikan informasi tambahan: