

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
<a name="tutorial-carla-simulation"></a>

Tutorial ini memandu Anda menjalankan sapuan parameter simulasi mengemudi [ otonom ](https://carla.org/) 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 ](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/autonomous_driving_carla) 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.

[![AWS Videos](http://img.youtube.com/vi/xitKHbbBHDw/0.jpg)](http://www.youtube.com/watch?v=xitKHbbBHDw)


**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
<a name="tutorial-carla-overview"></a>

Untuk menyelesaikan tutorial ini, ikuti langkah-langkah berikut:

1. Lengkapi prasyarat.

1. Siapkan peternakan Anda.

1. Membangun dan mendorong image Docker.

1. Kirim pekerjaan simulasi.

1. Pantau pekerjaan.

1. Tinjau output.

1. Pembersihan sumber daya 

## Prasyarat
<a name="tutorial-carla-prerequisites"></a>

Sebelum Anda mulai, selesaikan pengaturan berikut:

1. [Buat AWS akun ](https://aws.amazon.com/resources/create-account/) jika Anda belum memilikinya, pastikan akun tersebut memiliki akses ke instans GPU (`g6.4xlarge`disarankan).

1. Instal [ Docker ](https://docs.docker.com/get-docker/) secara lokal untuk membangun image CARLA.

1. Buat [ repositori ](https://aws.amazon.com/ecr/) Amazon ECR di akun Anda untuk meng-host gambar yang dibuat.

1. Instal De [ adline Cloud CLI ](https://github.com/aws-deadline/deadline-cloud) secara lokal.

## Siapkan peternakan Anda
<a name="tutorial-carla-setup"></a>

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 ](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/host_configuration_scripts/docker_nvidia_container_toolkit) ke armada Anda. Untuk informasi selengkapnya, lihat [Jalankan kontainer Docker dengan GPU NVIDIA pada pekerja Deadline Cloud](examples-host-config-docker-nvidia.md).

## Membangun dan mendorong image Docker
<a name="tutorial-carla-build-image"></a>

Pekerjaan berjalan di dalam wadah Docker berdasarkan image dasar:0.9.16 di Docker Hub [carlasim/carla. ](https://hub.docker.com/r/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}}
   ```

1. 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.

1. 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
<a name="tutorial-carla-submit"></a>

**Untuk mengirimkan pekerjaan dengan pengirim GUI**

1. Dari direktori bundel, buka pengirim:

   ```
   cd autonomous_driving_carla
   deadline bundle gui-submit .
   ```

1. 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.

1. 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.

1. 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.

1. 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
<a name="tutorial-carla-monitor"></a>

Pantau kemajuan di konsol Deadline Cloud. Setiap tugas menunjukkan nilai parameternya (`EgoSpeed``NpcSpeed`,,`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
<a name="tutorial-carla-output"></a>

**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}}
   ```

1. 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
<a name="tutorial-carla-limitations"></a>
+ **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
<a name="tutorial-carla-cleanup"></a>

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.

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

## Sumber daya terkait
<a name="tutorial-carla-related"></a>

Sumber daya berikut memberikan informasi tambahan:
+ [Contoh kode sumber pada GitHub ](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/autonomous_driving_carla)
+ [Simulator CARLA ](https://carla.org/)
+ [Skrip konfigurasi host Docker dan NVIDIA Container Toolkit aktif GitHub ](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/host_configuration_scripts/docker_nvidia_container_toolkit)
+ [Jalankan kontainer Docker dengan GPU NVIDIA pada pekerja Deadline Cloud](examples-host-config-docker-nvidia.md)
+ [Buka templat Deskripsi Pekerjaan (OpenJD) untuk Deadline Cloud](build-job-bundle.md)