Simulasi, Skenario, dan Mengemudi Sendiri - Cara SAE AutoDrive

Pembaruan: 20 Mei 2021
Simulasi, Skenario, dan Mengemudi Sendiri - Cara SAE AutoDrive

Pengantar

Tantangan SAE AutoDrive adalah kompetisi desain perguruan tinggi selama 4 tahun, dengan 8 tim dari AS dan Kanada berpartisipasi. Sasaran teknis tingkat tinggi untuk Tahun ke-3 kompetisi ini adalah untuk menavigasi kursus mengemudi perkotaan dalam mode mengemudi otomatis seperti yang dijelaskan oleh SAE Level 4.

MathWorks menantang tim untuk menggunakan simulasi

Simulasi adalah alat yang sangat berguna untuk pengembangan kendaraan otonom. Pengujian berbasis model dapat membantu dalam pengembangan algoritme, pengujian tingkat unit dan sistem, dan pengujian skenario kasus tepi. Dunia nyata Sensor data dapat direkam dan diputar kembali ke sistem untuk menyesuaikan algoritme fusi. Lingkungan simulasi dapat dibuat untuk memodelkan lingkungan dunia nyata dan dapat digunakan untuk menguji berbagai algoritme dan posisi sensor. Algoritme dan posisi sensor terbaik yang memenuhi persyaratan tim dapat dipilih berdasarkan hasil kinerja.

Setiap tahun MathWorks menantang tim untuk menggunakan Simulasi melalui Tantangan Simulasi. Blog ini akan membahas secara singkat pemenang juara 1 dan 2 Challenge 2020 (Universitas Toronto dan Universitas Kettering), desain sistem mereka, dan cara mereka menggunakan alat MathWorks untuk membantu mencapai tujuan kompetisi secara keseluruhan. Tim dinilai berdasarkan bagaimana mereka menggunakan alat untuk melakukan:

  • Pengujian persepsi loop terbuka - mensintesis data untuk pengujian loop terbuka, menilai kebenaran algoritme
  • Pengujian kontrol loop tertutup - mensintesis skenario loop tertutup, menilai kinerja algoritme kontrol
  • Pembuatan kode dari algoritme kontrol - menghasilkan kode untuk algoritme, mengintegrasikan kode yang dihasilkan ke dalam kendaraan
  • Inovasi menggunakan alat MathWorks – sebuah teknik/teknologi jelas berbeda dari 3 kategori di atas

University of Toronto

Tim mahasiswa dari University of Toronto, aUToronto, memenangkan juara pertama dalam tantangan tersebut.

Pengujian persepsi loop terbuka

Langkah pertama tim ini adalah mensintesis data untuk pengujian persepsi loop terbuka. Mereka memilih untuk menguji algoritma fusi sensor mereka. Untuk mensintesis data sintetis untuk pengujian, mereka menggunakan (DSD). Aplikasi ini memungkinkan Anda merancang skenario mengemudi sintetis untuk menguji mengemudi otonom Anda. Tim menggunakan radar dan 3 kamera dalam algoritma fusi sensor, yang dikonfigurasi seperti yang ditunjukkan Gambar 1.

Gambar 1: Lokasi Sensor Tim (© aUToronto)

Mereka memodelkan sensor kamera - bersama dengan posisi, orientasi, dan konfigurasinya - di aplikasi DSD untuk mensintesis data sensor untuk dimasukkan ke dalam algoritme fusi sensor mereka. DSD mensimulasikan output kamera setelah pemrosesan gambar tim dan algoritme visi komputer, serta menambahkan noise dan outlier ke data.

Blok Scenario Reader digunakan untuk membaca informasi skenario yang dibuat menggunakan DSD. Pose aktor dikirim sebagai masukan ke generator deteksi ganda. Deteksi untuk berbagai sensor ini kemudian dikemas sebagai array pesan ROS (Robot Operating System) berukuran variabel dan dikirim sebagai pesan ROS kustom ke topik ROS tertentu (Gambar 2).

Gambar 2: Model Simulink untuk pengujian loop terbuka (© aUToronto)

Tim membandingkan output dari pelacak objek mereka dengan nilai kebenaran dasar kendaraan. Metrik RMSE (Root Mean Square Error) digunakan untuk penilaian kinerja.

Pengujian kontrol loop tertutup

Fokus utama tim adalah menguji perencana modifikasi mereka untuk kemampuan baru seperti perutean ulang untuk zona konstruksi dan menyenggol rintangan. Planner didesain ulang untuk menggunakan struktur kisi di mana tepi dipangkas dari peta untuk menemukan jalur di sekitar objek yang diperlukan (Gambar 3). DSD sekali lagi digunakan untuk membuat skenario. Pembatas dan lampu lalu lintas juga ditambahkan ke skenario.

Gambar 3: Struktur kisi untuk pencarian jalur (© aUToronto)

Tim membuat model penerbit lampu lalu lintas menggunakan Stateflow (Gambar 4). Ketika kendaraan ego berada di luar jangkauan (> 50m) dari lampu lalu lintas, status tidak diketahui dipublikasikan. Ketika ego berada dalam jangkauan, pesan lampu merah diterbitkan. Pesan dialihkan ke lampu hijau setelah ego berhenti selama 5 detik.

Gambar 4: Stateflow ke model controller (© aUToronto)

Node ROS pengontrol, perencana, dan model kendaraan diluncurkan. Jika rintangan berada dalam jarak 50m dari kendaraan ego, posisinya dikirim sebagai pesan ROS ke model Simulink (Gambar 5).

Gambar 5: Logika untuk mengirim pesan posisi (© aUToronto)

Pembuatan kode dari algoritme kontrol

Tim menghasilkan kode untuk algoritma penanganan tanda berhenti (Gambar 6). Simulink Coder digunakan untuk mengubah Stateflow menjadi kode C++. Mandiri modul dihasilkan menggunakan fungsi pengemasan kode. Modul yang dihasilkan kemudian digabungkan ke dalam basis kode tim.

Gambar 6: Hentikan logika kontrol lampu Stateflow (© aUToronto)

Inovasi menggunakan alat MathWorks - Kalibrasi kamera Lidar

Untuk menginterpretasikan objek secara akurat dalam sebuah pemandangan dengan masukan dari lidar dan sensor kamera, keluaran sensor tersebut perlu digabungkan. Oleh karena itu, tim melakukan transformasi antara Lidar dan kamera tim untuk memproyeksikan titik-titik Lidar ke sebuah gambar atau sebaliknya untuk fusi sensor. Alih-alih menggunakan pengukuran tangan dan memutar kamera hingga proyeksi terlihat bagus, tim menggunakan alat kalibrasi Kamera Lidar yang baru dikembangkan dari kotak peralatan pemrosesan Lidar. Alat ini memperkirakan matriks transformasi kaku yang menetapkan korespondensi antara titik-titik di bidang lidar 3-D dan piksel di bidang gambar

Mereka membuat papan kalibrasi yang lebih besar karena papan kalibrasi mereka saat ini terlalu kecil untuk alat tersebut. Alat kalibrasi kamera digunakan untuk mendapatkan matriks intrinsik untuk kamera mereka. Sudut-sudut papan catur ditemukan di setiap gambar, dan data Lidar. Matriks transformasi kaku antara Lidar dan kamera ditemukan. Proses ini menghasilkan transformasi yang dapat digunakan untuk memproyeksikan data cloud titik ke gambar atau sebaliknya. Langkah-langkah ini ditunjukkan pada Gambar 7.

Gambar 7: (a) Matriks intrinsik kamera (b) sudut papan catur (c) Matriks transformasi Lidar ke kamera (© aUToronto)

Universitas Kettering

Grafik tim mahasiswa dari Kettering University, meraih Juara 2 dalam challenge tersebut.

Pengujian persepsi loop terbuka

Tim menggunakan Unreal Engine untuk membuat berbagai skenario. Kamera ditambahkan ke kendaraan ego di Unreal menggunakan blok kamera 3D simulasi. Model Simulink digunakan untuk melakukan deteksi jalur menggunakan citra yang tidak nyata (Gambar 8). Kotak biru menunjukkan fungsi deteksi jalur dan kuning menunjukkan keluaran di setiap langkah. Angka keluaran ini ditunjukkan pada Gambar 9.

Gambar 8: Model Simulink untuk pengujian loop terbuka (© Kettering University)

Gambar 9: Output deteksi jalur (© Kettering University)

Pengujian kontrol loop tertutup

Desain sistem tim terdiri dari 2 mesin negara - longitudinal dan lateral. Mesin negara ini, ditunjukkan pada gambar, digunakan untuk memodelkan logika pemilihan pengontrol berdasarkan sensor dan data pengambilan keputusan. Mereka saling terkait dan digunakan untuk mengaktifkan dan menginisialisasi subsistem pengontrol.

Gambar 10: Mesin negara (© Kettering University)

Simulasi pengontrol gabungan, dengan model Simulink pada Gambar 11, dilakukan untuk memverifikasi kerja semua pengontrol tim. Input untuk pengontrol ini disediakan dengan menggunakan slider dan pengukur.

Gambar 11: Model Simulink untuk pengujian loop tertutup (© Kettering University)

Subsistem pengontrol mesin keadaan longitudinal mencakup pengontrol kecepatan longitudinal dan Pengereman Darurat Otomatis (AEB). Status ditentukan oleh dinamika kendaraan longitudinal seperti akselerasi, jelajah, perlambatan, berhenti, dan parkir.

Subsistem pengontrol mesin keadaan lateral mencakup pengontrol Lane Keep Assist (LKA), Lane Change, dan Turn. Status ditentukan berdasarkan dinamika kendaraan lateral (Gambar 12). Kecepatan longitudinal, perubahan jalur, dan pengendali LKA dibahas di bawah ini.

Gambar 12: Status pengontrol lateral (© Kettering University)

Pengontrol longitudinal

Gambar 13 menunjukkan model Simulink yang digunakan untuk memodelkan pengontrol longitudinal. Ini terdiri dari PID berdasarkan kecepatan. Tingkat torsi referensi dan keluaran dibatasi agar tetap dalam batas akselerasi dan sentakan kompetisi. Input sistem diinisialisasi dan diedit dengan slider dan ruang lingkup digunakan untuk melihat data. Gambar 14 menunjukkan target dan keluaran kecepatan longitudinal aktual.

Gambar 13: Model Simulink pengontrol longitudinal (© Kettering University)

Gambar 14: Perbandingan kecepatan longitudinal (© Kettering University)

Pengontrol perubahan jalur

Pengontrol Lane Change milik tim menggunakan MPC adaptif (Model Predictive Control). Jalur referensi dibuat menggunakan fungsi parametrik, dengan input perubahan jalur seperti kecepatan kendaraan dan lebar jalur. Output untuk pengontrol adalah referensi posisi lateral dan yaw. Model 3DOF (Degree of Freedom) digunakan untuk mensimulasikan badan kendaraan. Gambar 15 menunjukkan model Simulink yang digunakan untuk simulasi. Gambar 16 menunjukkan output simulasi dengan referensi dan jalur perubahan jalur yang disimulasikan, bersama dengan jalur yang diperoleh setelah pengujian dalam kendaraan.

Gambar 15: Pengontrol perubahan jalur Model Simulink (© Kettering University)

Gambar 16: Perbandingan jalur perubahan jalur (© Kettering University)

Model kendaraan

Tim mengembangkan dan memvalidasi model kendaraan jalur tunggal dan ganda 3DOF. Validasi awal dilakukan dengan menggunakan model sepeda linier. Validasi akhir dilakukan dengan data tes fisik. Gambar menunjukkan keluaran perbandingan percepatan lateral dengan validasi awal dan akhir, tanpa dan dengan data pengujian.

Gambar 17: (a) Perbandingan percepatan lateral (b) Perbandingan dengan data uji (© Kettering University)

Inovasi menggunakan alat MathWorks - Kota yang tidak nyata

Tim menggunakan Unreal untuk pengujian loop tertutup dari semua pengontrol mereka. Mereka menciptakan kota yang tidak nyata dengan pergerakan pejalan kaki dan lampu lalu lintas yang dapat dikontrol. Aktor yang dapat disesuaikan dibuat dan informasi mereka seperti nama aktor, jenis aktor, detail aktor, detail animasi, dan tag, disimpan untuk akses cepat. Peta lampu lalu lintas juga dibuat bersama dengan lokasi lampu berlabel Gambar 18.

Gambar 18: Peta lampu lalu lintas yang tidak nyata (© Kettering University)

Gambar 19 menunjukkan struktur komunikasi sistem Simulink-Unreal. Pengambilan keputusan untuk scene Unreal yang terdiri dari posisi kendaraan, pergerakan pejalan kaki, status lampu lalu lintas dll dilakukan dengan menggunakan Stateflow dan dikirim sebagai input ke pengontrol (Gambar 20).

Gambar 19: Struktur komunikasi sistem Simulink Unreal (© Kettering University)

Gambar 20: Stateflow untuk pengambilan keputusan adegan Unreal (© Kettering University)

Kesimpulannya, tim mahasiswa dari University of Toronto dan Kettering University mampu memanfaatkan MATLAB dan Simulink untuk merancang, membangun, menguji, dan menilai algoritma fusi, pelacakan, dan navigasi untuk selangkah lebih dekat untuk membangun kendaraan otonom SAE level 4 di simulasi. Mereka membuat skenario rumit dengan lampu lalu lintas dan banyak aktor di lingkungan simulasi yang berbeda, mengintegrasikan lingkungan dengan Simulink, dan menerapkan serta menguji algoritme pilihan mereka pada skenario ini. Algoritma persepsi loop terbuka dan loop tertutup dimodelkan dan diuji menggunakan Simulink, dan kode dibuat untuk sistem ini. Tim juga merancang dan menguji berbagai algoritme pengontrol menggunakan Simulink dan Stateflow. Alat MathWorks digunakan secara inovatif dan ekstensif oleh kedua tim juara ini.