Bu bir tasarım demosu: yarış tarayıcıda üretilir; ders adı, öğrenciler ve notlar örnektir.

Algoritman kaosa dayanıyor mu?

Robodrome, üniversite dersleri için otonom sürüş sınav platformu. Öğrenciler Python'da yazar ve dönem boyunca tek başına pratik yapar. Sınav günü hoca yarışı başlatır: herkes aynı pistte, rüzgârda, kaygan zeminde, birbirinin arasında. Tek koşu. Ne olduysa o.

Otonom Sistemler · canlı sınav · seri 3canlı

    Seviye 3rüzgâr ➜ 0.0 m/sıslak zemin: 2 bölgetümsek + rampakapalı pist
    ● kayıt alınıyor · 0.0 s
    3D görünüm bu cihazda açılamadı. Aşağıdaki çizimler kaos seviyelerini ve kuralları gösteriyor.

    Dönem boyunca pratik, sınav günü tek koşu

    Kod platformda, her öğrenci için ayrı ve kapalı bir ortamda çalışır. Herkes aynı dünyada, aynı işlemci payıyla yarışır. Kodu yavaş olan geç tepki verir; tıpkı gerçek bir robotta olduğu gibi.

    1

    Hoca ödevi açar

    Pisti ve kaos seviyesini seçer, teslim tarihini ve not şemasını belirler. Lidarlı araçlar bariyerli kapalı pistte, kameralılar açık pistte de yarışabilir. Sınav pisti gizli kalır.

    2

    Öğrenci tek başına çalışır

    Yerel simülatörü kurar, açık pistlerde istediği kadar tur atar. Rüzgârın, zeminin ve engellerin aralığını bilir; ne zaman ve nerede olacağını bilmez.

    3

    Sınav günü herkes pistte

    Hoca yarışı başlatır, sınıf projeksiyondan izler. Tek koşu: birinci de olabilirsin, pistten çıkıp diskalifiye de. Sonuç, o koşunun kaydıdır.

    from robodrome import Bot, Command
    
    class MyBot(Bot):
        def setup(self, track):
            # pist ekseni, sol/sağ sınırlar, kaos seviyesinin aralıkları (rüzgâr, sürtünme…)
            self.line = plan_racing_line(track)
    
        def step(self, obs) -> Command:
            # obs.pose, obs.v, obs.imu, obs.scan (gürültülü lidar), obs.rivals, obs.lap
            # her çağrı için 5 ms işlemci süren var; geç kalırsan son komutun tekrar edilir
            mu = self.estimate_grip(obs)          # zemin kaygan mı? sürüşte tahmin et
            return Command(throttle=speed_for(mu), steer=pure_pursuit(self.line, obs))

    Dört kaos seviyesi, dönem boyunca artan zorluk

    Simülasyon robotik kadar kaotiktir: aynı kod iki koşuda farklı sonuç alır. Hoca her ödevde seviyeyi seçer; müfredat ilerledikçe pist de zorlaşır.

    0 Temiz pist

    Sadece en hızlı tur ve pistte kalmak.

    Konu: yol planlama, yarış çizgisi, hız profili.

    ıslakyağ

    1 Değişken sürtünme

    Islak, yağlı, çakıllı bölgeler. Girince tutuş düşer, fazla hız kaydırır.

    Konu: tutuş tahmini, uyarlamalı kontrol.

    2 Rüzgâr, gürültü, gecikme

    Ani esintiler, gürültülü lidar ve konum, komutun araca geç ulaşması.

    Konu: filtreleme (Kalman), öngörülü kontrol (MPC).

    çukur

    3 Çukur, tümsek, rampa

    Sarsıntıda anlık tutuş kaybı; havadayken direksiyon işe yaramaz, inişte kayma riski.

    Konu: engel bilinçli planlama, durum tahmini.

    Kurallar basit, kayıt kesin

    Yarış bir kez olur. Sabit olan tek şey kayıttır: her an her aracın durumu, bota giden sensör verisi, botun verdiği komut, rüzgâr, zemin ve her çarpışmanın kusur kararı. Not ve itiraz bu kayda göre değerlendirilir.

    • Kapalı pist: sert çarpma diskalifiye

      Lidarlı araçlar bariyerli pistte yarışır. Bariyere sürtmek hız kaybettirir; sert çarpan (dik hız > 1.5 m/s) yarış dışı kalır. Kameralı araçların açık pistinde ise pist dışı diskalifiyedir.

    • Tek koşu

      Sıralama da canlı yarış da tek seferdir. Ortalama, en iyi deneme ya da tekrar hakkı yoktur.

    • Çarpışmada kusur

      Arkadan çarpan kusurludur; sollayan en az bir araç genişliği boşluk bırakır. Kusurlu +3 s ceza alır, üç kusurda yarış dışı kalır.

    • Hasar kalıcıdır

      Sert darbe lidar ve kamera yuvasını kaydırır, direksiyonu bozar, motoru zayıflatır. Bot bunu bildirimle değil, kendi verisinden anlamak zorundadır.

    • Eşit koşullar

      Aynı yarıştaki herkes aynı dünyada yarışır; her bota aynı işlemci payı ayrılır. Altyapı arızasında seri yeniden koşulur.

    Seri 3 · olay kaydı (örnek)
    zamanolaykarar
    00:07.4rüzgâr esintisi 5.8 m/s, viraj 2—
    00:12.9040210 → 040233 arkadan temaskusur: 040210, +3 s
    00:19.2040245 ıslak bölgede kaydı, sol bariyere 2.3 m/s ile çarptıdiskalifiye (kaza)
    00:12.9040233 arkadan 11 J darbe, arka lidar yuvası 3.4° kaydıhasar (telafi yok)
    00:23.1güneş virajı: 040218 kamerası 0.3 s doygun—
    00:27.6040233 rampadan 0.9 s havada, iniş temiz—
    00:41.0040218 adım süresini 3 kez aştı (7.1 ms)son komut tekrarlandı
    01:58.3yarış bitti, kayıt kapandı—

    kayıt parmak izi (SHA-256): 9f3a61c0e2b4…d17e · kayıt kapandıktan sonra tek bayt değişirse anlaşılır

    Hoca paneli: başlat, izle, notu al

    Sınıf 8'erli serilere ayrılır; seriler, çeyrek final ve final. Her seri tek koşudur. Not, hocanın belirlediği şemayla sıralamadan hesaplanır ve üniversitenizin not sistemine (Moodle, Canvas, Blackboard vb.) yüklenecek biçimde indirilir.

    Otonom Sistemler · canlı sınav

    61 öğrenci · Seviye 3 · gizli pist "Liman" · 12 Ocak 14:00

    Seriler

    Seri 1bitti · 1 DSQ
    Seri 2bitti · 0 DSQ
    Seri 3canlı · tur 3/5
    Seri 4–8sırada
    Finalseriler sonrası

    Not önizlemesi (örnek şema: sıralamaya göre, DSQ en alt)

    #Öğrenci noSonuçCezaNot
    10402xx182:01.4—AA
    20402xx332:03.9—AA
    30402xx102:05.2+3 s kusurBA
    ……………
    —0402xx45diskalifiye, bariyere sert çarpma 00:19.2—FF*

    * Diskalifiyenin notu hocanın şemasına bağlıdır (ör. en düşük not ya da tek başına sıralama turunun notu).

    Yol haritası

    Sonra: durum kestirimi. Üst seviyelerde konum verilmez; öğrenci IMU, enkoder ve lidarı kendi Kalman ya da parçacık filtresiyle birleştirir. Tekrarda kestirim ile gerçek yan yana görünür.
    Sonra: drone sezonu. Kapılardan geçen parkur; PX4 offboard mantığıyla Python'dan uçuş.
    Sonra: kara + hava. Takım halinde bayrak kapma; drone gözcü, kara robotu taşıyıcı.
    Sonra: üniversiteler arası lig. Sınavların en iyileri canlı yayında; pist kenarı panoları sponsorlara mezatla açılır.