
Bir mühendis sıfırdan oktokopter yaptı ve RL politikası eğitti
Karolina Dubiel, donanım deneyimi olmadan kendi oktokopterini yaptı: fikirden ilk uçuşa 2,5 hafta, RL ile uçuşa sekizden az. İki ölü motor için eğitilen politika gerçek gövdede üç ve dördü de atlattı.
Yazılım mühendisi Karolina Dubiel, daha önce ciddi bir donanım projesi üstlenmemiş biri olarak kendi oktokopterini tasarladı, işledi, lehimledi ve uçurdu; ardından motorlar arızalandıktan sonra da aracı havada tutan bir pekiştirmeli öğrenme politikası eğitti. Fikirden uçan drone'a iki buçuk haftada, RL ile uçuşa sekiz haftadan kısa sürede ulaşıldı.
Fusion 360'tan elle kurulan gövdeye
Gövde Fusion 360'ta tasarlandı ve CNC ile işlendi: kollar G10 fiberglastan, gövde plakaları 5 mm karbon fiberden; kollar sertlik için merkezde birbirine geçiyor. Ardından dört aşama geldi: montaj; elektroniği bağlayıp normal bir uçuş kontrolcüsüyle uçmak; iki motor arızası için politika eğitmek; ve simülasyondan gerçeğe geçiş.
50 Hz'de 43.000 parametreli bir ağ
Nihai denetleyici küçük: katman başına 128 birimli iki gizli katmanlı bir MLP — yaklaşık 43.000 parametre — drone'un kendi uçuş kontrolcüsünde 50 Hz'de çalışıyor; ArduPilot'un C++ koduna motor karışımı düzeyinde derlenmiş; yardımcı bilgisayar ve sonradan ince ayar yok. Son on durum karesini (yaklaşık 0,2 saniye) okuyor: duruş, açısal hızlar, konum, hız ve her motorun itki düzeyini veren sekiz değerli bir kanal; arızalı motorlar sıfıra zorlanıyor.
Eğitim tamamen simülasyonda yapıldı — MuJoCo ve PufferLib üzerinden PPO — sıfır, bir veya iki ölü motorlu bölümlerin sabit karışımıyla (ağırlıklar 0,1, 0,2 ve 0,7) ve alan rastgeleleştirmesini nominalden tama çıkaran bir müfredatla. Bir mimari hile simetri ortalaması başlığı: ağ, ağırlıklarını iki kez çalıştırıyor — gerçek durumda ve gövdenin 180° döndürülmüş etiketli hâlinde — ve ikisinin ortalamasını alıyor; bu, politikayı ek parametre olmadan bu dönmeye tam eşdeğişkin yapıyor.
Neyi atlattı ve ödül hacklemesi dersi
Yalnızca iki ölü motora kadar eğitilmiş olmasına rağmen politika gerçek gövdede üçlü, hatta dörtlü arızada bile konumunu korudu. Yazar, önceki sürümün ders kitabı düzeyinde ödül hacklemesi olduğunu açıkça kabul ediyor: ödül yalnızca duruşa bağlı olduğu için dört motorla hover yapmak sekizle aynı puanı alıyordu, bu yüzden ajan sağlam motorları kapatıp kuadrokopter gibi uçuyordu. Kullanılabilir her motoru kullanmayı ödüllendiren bir terim eklenmesi, yeni eğitimde sekiz motorun tamamını 20/20 bölümde hoverda tuttu — %3,6 daha düşük hover hassasiyetiyle — ve dağılım dışı arızalarda daha iyi dayandı: üç ölü motorda %99'a karşı %90, dört ölü motorda %85'e karşı %64.
Okumaya değer hatalar
Yapım günlüğü, önceki tüm arıza toleransı sayılarını geçersiz kılan üç sistem tanımlama hatasını da belgeliyor: kütle merkezinden motora kol uzunluğu gerçek 181,938 mm yerine 35,20 mm olarak sabitlenmişti; atalet formülünde 4π² yerine 8π² kullanılmıştı; ve motor yerleşimi „+“ düzeni olarak modellenmişti, oysa gerçek gövde „X“ düzeninde. Bunlar birlikte simüle edilen drone'a realdan ~2,6 kat az kontrol yetkisi bıraktı. Düzeltmelerden sonra tam alan rastgeleleştirmesi altında çift arıza sağkalımı %71,7'den %95,8'e, en zor yaw-telafi edilemez çiftler ise %41,2'den %94,6'ya çıktı.
Oktokopter bilinçli seçildi: motor kaybeden bir kuadrokopter havada kalmak için yaw yetkisinden tamamen vazgeçmek zorundadır.
SiTech — AI destekli web geliştirme
Hızlı ve modern web siteleri kuruyor, AI'yı gerçek iş akışlarına taşıyoruz. Projeniz veya sorunuz mu var? Yardımcı olmaktan mutluluk duyarız.