Simülasyon, Senaryolar ve Kendi Kendine Sürüş – SAE AutoDrive Yolu

Güncelleme: 20 Mayıs 2021
Simülasyon, Senaryolar ve Kendi Kendine Sürüş – SAE AutoDrive Yolu

Giriş

SAE AutoDrive yarışması, ABD ve Kanada'dan 4 takımın katıldığı 8 yıllık bir üniversite tasarım yarışmasıdır. Bu yarışmanın 3. Yılının üst düzey teknik hedefi, SAE Seviye 4'te tanımlandığı gibi şehir içi sürüş parkurunda otonom sürüş modunda ilerlemektir.

MathWorks ekipleri simülasyon kullanmaya zorluyor

Simülasyon, otonom araç geliştirme için çok faydalı bir araçtır. Model tabanlı testler, algoritma geliştirmeye, birim ve sistem düzeyinde testlere ve uç durum senaryo testlerine yardımcı olabilir. Gerçek dünya algılayıcı Füzyon algoritmalarını ayarlamak için veriler kaydedilebilir ve sisteme oynatılabilir. Gerçek dünya ortamlarını modellemek için bir simülasyon ortamı oluşturulabilir ve çeşitli algoritmaları ve sensör konumlarını test etmek için kullanılabilir. Performans sonuçlarına göre ekibin gereksinimlerini karşılayan en iyi algoritmalar ve sensör konumları seçilebilir.

MathWorks her yıl ekipleri bir Simülasyon Yarışması aracılığıyla Simülasyonu kullanmaya davet ediyor. Bu blog, 1 Challenge'ın 2. ve 2020. sırasını kazananları (Toronto Üniversitesi ve Kettering Üniversitesi), sistem tasarımlarını ve genel yarışma hedeflerine ulaşmaya yardımcı olmak için MathWorks araçlarını nasıl kullandıklarını kısaca ele alacaktır. Takımlar, performans sergilemek için araçları nasıl kullandıklarına göre değerlendirildi:

  • Açık döngü algı testi - açık döngü testi için verilerin sentezlenmesi, algoritmaların doğruluğunun değerlendirilmesi
  • Kapalı döngü kontrol testleri – kapalı döngü senaryolarının sentezlenmesi, kontrol algoritmalarının performansının değerlendirilmesi
  • Kontrol algoritmalarının kod üretimi – algoritmalar için kod üretilmesi, oluşturulan kodun araca entegre edilmesi
  • MathWorks araçlarını kullanarak yenilik – bir teknik/teknoloji yukarıdaki 3 kategoriden açıkça farklı

Toronto Üniversitesi

Toronto Üniversitesi aUToronto'dan gelen öğrenci takımı yarışmada 1. oldu.

Açık döngü algı testi

Bu ekibin ilk adımı, açık döngü algı testi için verileri sentezlemekti. Sensör füzyon algoritmalarını test etmeyi seçtiler. Test amacıyla sentetik verileri sentezlemek için (DSD)'yi kullandılar. Bu uygulama, otonom sürüşünüzü test etmek için sentetik sürüş senaryoları tasarlamanıza olanak tanır. Ekip, sensör füzyon algoritmalarında Şekil 3'de gösterildiği gibi yapılandırılmış bir radar ve 1 kamera kullandı.

Şekil 1: Ekip Sensörü Konumları (© aUToronto)

Sensör füzyon algoritmalarına beslemek üzere sensör verilerini sentezlemek için kamera sensörlerini konumları, yönelimleri ve konfigürasyonlarıyla birlikte DSD uygulamasında modellediler. DSD, ekibin görüntü işleme ve bilgisayarlı görme algoritmalarından sonra kamera çıkışını simüle eder ve verilere gürültü ve aykırı değerler ekler.

Senaryo Okuyucu bloğu, DSD kullanılarak oluşturulan senaryo bilgilerini okumak için kullanıldı. Aktörün pozları çoklu tespit oluşturuculara girdi olarak gönderildi. Bu çeşitli sensörlere yönelik algılamalar daha sonra değişken boyutlu ROS (Robot İşletim Sistemi) mesaj dizileri olarak paketlendi ve belirli ROS konularına özel ROS mesajları olarak gönderildi (Şekil 2).

Şekil 2: Açık döngü testi için Simulink modeli (© aUToronto)

Ekip, nesne takip cihazının çıktılarını araçların temel gerçek değerleriyle karşılaştırdı. Performans değerlendirmesi için RMSE (Kök Ortalama Kare Hata) metriği kullanıldı.

Kapalı döngü kontrol testleri

Ekibin ana odağı, değiştirilmiş planlayıcılarını inşaat bölgeleri için yeniden rota belirleme ve engellerin etrafından dolaşma gibi yeni yetenekler için test etmekti. Planlayıcı, nesnelerin etrafındaki yolları gerektiği gibi bulmak için haritadaki kenarların budandığı bir kafes yapısı kullanacak şekilde yeniden tasarlandı (Şekil 3). Senaryolar oluşturmak için bir kez daha DSD kullanıldı. Senaryolara bariyerler ve trafik ışıkları da eklendi.

Şekil 3: Yol bulmaya yönelik kafes yapısı (© aUToronto)

Ekip, Stateflow'u kullanarak bir trafik ışığı yayıncısını modelledi (Şekil 4). Ego aracı trafik ışıklarının menzilinin (> 50 m) dışına çıktığında bilinmeyen durum yayınlanır. Ego menzile girdiğinde kırmızı ışıklı bir mesaj yayınlanır. Ego 5 saniye durduktan sonra mesaj yeşil ışığa dönüşür.

Şekil 4: Model denetleyiciye durum akışı (© aUToronto)

Kontrolör, planlayıcı ve araç modeli ROS düğümleri başlatıldı. Eğer engel ego aracın 50 m yakınında ise konumu Simulink modeline ROS mesajı olarak gönderiliyordu (Şekil 5).

Şekil 5: Konum mesajını gönderme mantığı (© aUToronto)

Kontrol algoritmalarının kod üretimi

Ekip, dur işareti işleme algoritması için kod üretti (Şekil 6). Simulink Coder, Stateflow'u C++ koduna dönüştürmek için kullanıldı. Bağımsız bir modül kod paketleme işlevi kullanılarak oluşturuldu. Oluşturulan modül daha sonra ekibin kod tabanıyla birleştirildi.

Şekil 6: Durdurma ışığı kontrol mantığı Durum akışı (© aUToronto)

MathWorks araçlarını kullanan yenilik – Lidar kamera kalibrasyonu

Bir sahnedeki nesneleri bir lidar ve kamera sensöründen gelen girdilerle doğru bir şekilde yorumlamak için sensör çıkışlarının bir araya getirilmesi gerekir. Bu nedenle ekip, sensör füzyonu için Lidar noktalarını bir görüntüye yansıtmak veya tam tersini yapmak için Lidar ile ekip kamerası arasında bir dönüşüm gerçekleştirdi. Projeksiyonlar iyi görünene kadar el ölçümleri kullanmak ve kameraları döndürmek yerine ekip, Lidar işleme araç kutusundan yeni geliştirilen Lidar Kamera kalibrasyon aracını kullandı. Bu araç, 3 boyutlu lidar düzlemindeki noktalar ile görüntü düzlemindeki pikseller arasındaki yazışmaları kuran katı bir dönüşüm matrisini tahmin eder

Mevcut olanı alet için çok küçük olduğundan daha büyük bir kalibrasyon panosu oluşturdular. Kameralarının içsel matrisini elde etmek için Kamera kalibrasyon aracı kullanıldı. Her görüntüde dama tahtasının köşeleri ve Lidar verileri bulundu. Lidar ve kamera arasındaki katı dönüşüm matrisi bulundu. Bu işlem, nokta bulutu verilerini görüntülere veya tam tersi şekilde yansıtmak için kullanılabilecek bir dönüşümün çıktısını verir. Bu adımlar Şekil 7'de gösterilmektedir.

Şekil 7: (a) Kameranın içsel matrisi (b) dama tahtası köşeleri (c) Lidar'dan kameraya dönüşüm matrisi (© aUToronto)

Kettering Üniversitesi

The öğrenci takımı Kettering Üniversitesi'nden, yarışmada 2. oldu.

Açık döngü algı testi

Ekip, çeşitli senaryolar oluşturmak için Unreal Engine'i kullandı. Unreal'deki ego-araca simülasyon 3D kamera bloğu kullanılarak bir kamera eklendi. Gerçek dışı görüntüler kullanılarak şerit tespitinin yapılabilmesi için Simulink modeli kullanılmıştır (Şekil 8). Mavi kareler şerit algılama işlevlerini, sarı kareler ise her adımdaki çıktıları gösterir. Bu çıktı rakamları Şekil 9'da gösterilmektedir.

Şekil 8: Açık döngü testi için Simulink modeli (© Kettering University)

Şekil 9: Şerit algılama çıkışları (© Kettering Üniversitesi)

Kapalı döngü kontrol testleri

Ekibin sistem tasarımı, boyuna ve yanal olmak üzere 2 durum makinesinden oluşuyordu. Şekilde gösterilen bu durum makineleri, sensör ve karar verme verilerine dayalı olarak kontrolör seçimi mantığını modellemek için kullanıldı. Bunlar birbirine bağlandı ve denetleyici alt sistemlerini etkinleştirmek ve başlatmak için kullanıldı.

Şekil 10: Durum makineleri (© Kettering Üniversitesi)

Tüm ekip kontrolörlerinin çalışmasını doğrulamak için Şekil 11'deki Simulink modeliyle birleşik kontrolör simülasyonları yapıldı. Bu kontrolörlere girişler kaydırıcılar ve göstergeler kullanılarak sağlandı.

Şekil 11: Kapalı döngü testi için Simulink modeli (© Kettering Üniversitesi)

Boyuna durum makinesinin kontrol alt sistemleri boylamsal hız kontrol cihazını ve Otomatik Acil Durum Frenlemesini (AEB) içerir. Durumlar, hızlanma, hızlanma, yavaşlama, durma ve park etme gibi boylamsal araç dinamikleri tarafından belirlendi.

Yan durum makinesinin denetleyici alt sistemleri arasında Şeritte Kalma Yardımı (LKA), Şerit Değiştirme ve Dönüş denetleyicileri bulunur. Durumlar yanal araç dinamiklerine göre belirlendi (Şekil 12). Boyuna hız, şerit değiştirme ve LKA kontrolörleri aşağıda tartışılmaktadır.

Şekil 12: Yan denetleyici durumları (© Kettering University)

Boyuna denetleyici

Şekil 13, boylamsal denetleyiciyi modellemek için kullanılan Simulink modelini göstermektedir. Hıza dayalı bir PID'den oluşuyordu. Referans ve çıkış tork oranları, rekabet ivmesi ve sarsıntı limitleri dahilinde kalacak şekilde sınırlandırıldı. Sistem girişleri kaydırıcılarla başlatıldı ve düzenlendi ve verileri görüntülemek için bir kapsam kullanıldı. Şekil 14'te hedef ve gerçek boylamsal hız çıktıları gösterilmektedir.

Şekil 13: Boyuna kontrolör Simulink modeli (© Kettering University)

Şekil 14: Boyuna hız karşılaştırmaları (© Kettering University)

Şerit değiştirme denetleyicisi

Ekibin Şerit Değiştirme denetleyicisi uyarlanabilir MPC (Model Tahminli Kontrol) kullandı. Araç hızı ve şerit genişliği gibi şerit değiştirme girdileriyle parametrik işlevler kullanılarak bir referans yolu oluşturuldu. Kontrolörün çıkışları referans yanal konum ve Yaw idi. Araç gövdesini simüle etmek için 3DOF (Serbestlik Derecesi) modeli kullanıldı. Şekil 15 simülasyon için kullanılan Simulink modelini göstermektedir. Şekil 16'da referans ve simüle edilmiş şerit değiştirme yollarıyla birlikte simülasyonun çıktıları ve araç içi testlerden sonra elde edilen yollar gösterilmektedir.

Şekil 15: Şerit değiştirme kontrol cihazı Simulink modeli (© Kettering University)

Şekil 16: Şerit değiştirme yolları karşılaştırmaları (© Kettering Üniversitesi)

Araç modeli

Ekip, 3DOF tek ve çift paletli araç modelini geliştirdi ve doğruladı. İlk doğrulama doğrusal bir bisiklet modeli kullanılarak gerçekleştirildi. Son doğrulama fiziksel test verileriyle gerçekleştirildi. Şekil, test verileri olmadan ve test verileriyle birlikte başlangıç ​​ve son doğrulamalarla yanal ivme karşılaştırma çıktısını göstermektedir.

Şekil 17: (a) Yanal ivme karşılaştırmaları (b) Test verileriyle karşılaştırmalar (© Kettering University)

MathWorks araçlarını kullanarak yenilik – Gerçek dışı şehir

Ekip, tüm kontrol cihazlarının kapalı döngü testi için Unreal'ı kullandı. Kontrol edilebilir yaya hareketleri ve trafik ışıklarıyla gerçek dışı bir şehir yarattılar. Özelleştirilebilir aktörler oluşturuldu ve aktör adı, aktör türü, aktör ayrıntıları, animasyon ayrıntıları ve etiketler gibi bilgiler hızlı erişim için saklandı. Şekil 18'de işaretlenen ışıkların konumuyla birlikte bir trafik ışığı haritası da oluşturuldu.

Şekil 18: Gerçek dışı trafik ışığı haritası (© Kettering Üniversitesi)

Şekil 19'da Simulink-Unreal sisteminin iletişim yapısı gösterilmektedir. Araç konumu, yaya hareketi, trafik ışıkları durumu vb. gibi bilgilerden oluşan Unreal sahnesi için karar verme işlemi Stateflow kullanılarak yapıldı ve kontrolörlere girdi olarak gönderildi (Şekil 20).

Şekil 19: Simulink Unreal sistem iletişim yapısı (© Kettering University)

Şekil 20: Gerçekdışı sahne karar verme süreci için durum akışı (© Kettering Üniversitesi)

Sonuç olarak, Toronto Üniversitesi ve Kettering Üniversitesi'nden öğrenci ekipleri, SAE seviye 4 otonom araç oluşturmaya bir adım daha yaklaşmak amacıyla füzyon, izleme ve navigasyon algoritmalarını tasarlamak, oluşturmak, test etmek ve değerlendirmek için MATLAB ve Simulink'ten yararlanabildiler. simülasyon. Farklı simülasyon ortamlarında trafik ışıkları ve birden fazla aktörle karmaşık senaryolar yazdılar, ortamları Simulink ile entegre ettiler ve seçtikleri algoritmaları bu senaryolar üzerinde konuşlandırıp test ettiler. Açık döngü ve kapalı döngü algılama algoritmaları Simulink kullanılarak modellenip test edildi ve bu sistemler için kod üretildi. Ekipler ayrıca Simulink ve Stateflow'u kullanarak çeşitli kontrolör algoritmaları tasarladı ve test etti. MathWorks araçları bu iki şampiyona takımı tarafından yenilikçi ve kapsamlı bir şekilde kullanıldı.