Macademia'nın robotik ve mühendislik programı · ücretsiz seviye tespiti ve kişisel öğrenme yolu

10. ünite / 10

Güvenlik, failsafe, mevzuat ve bitirme projesi

YazılımSimülasyonParça

Bu ünitenin sonunda

  • Bir drone görevi için tehlike analizi yapmak
  • PX4 failsafe eylemlerini ve sanal çiti parametrelerle ayarlamak
  • Türkiye'deki İHA kayıt ve uçuş kurallarının çerçevesini söylemek
  • Bitirme projesinin gereksinim, mimari ve test planını çıkarmak

Ders notları

Güvenlik bir özellik değil, tasarımın ilk adımıdır. Tehlike analizi ile başla: ne ters gidebilir, sonucu ne olur, nasıl sezilir, sistem ne yapar?

  • Kumanda kaybı → Return ya da Land (NAV_RCL_ACT). Telemetri kaybı → NAV_DLL_ACT.
  • Düşük batarya → kademeli: uyarı, eve dönüş, acil iniş (BAT_*_THR, COM_LOW_BAT_ACT). Eve dönüş için gereken enerjiyi hesaba kat: uçuş süresi simülasyonundaki yedek payı buradan gelir.
  • Sanal çit (geofence) → yatay ve dikey sınır, aşılırsa Return (GF_*). Offboard kaybı → COM_OBL_RC_ACT.
  • GPS/EKF bozulması → konum kiplerinden Altitude'a ya da Land'e düşüş; PX4 ön uçuş kontrolleri ARM'ı engeller.

Türkiye'de mevzuat (genel çerçeve)

Sivil İHA'lar Sivil Havacılık Genel Müdürlüğü'nün (SHGM) İnsansız Hava Aracı Sistemleri Talimatı'na (SHT-İHA) tabidir. 30 Temmuz 2026'da yürürlüğe giren yeni talimat 2016 talimatının yerini aldı; ana hatları:

  • Sınıflar (azami kalkış kütlesi, yük dahil): M0 500 g–4 kg, M1 4–25 kg, M2 25–150 kg, M3 150 kg ve üzeri. 500 g altındaki bir drone da, tasarımı gereği 10 m yarıçap ve 20 m yükseklikten öteye gidemeyen bir "Basit İHA" (oyuncak) değilse M0 hükümlerine tabidir. Eski İHA0/İHA1/İHA2/İHA3 adları bu sınıflara ve yeni lisanslara aktarılıyor.
  • Kayıt: Basit İHA dışında İHA ile operasyon yapan herkes SHGM'nin İHATTYS sistemine kayıt olur (kullanıcı kaydı); talimattan önce edinilen araçlar için son tarih 31 Temmuz 2027. 120 m yükseklik ya da 3.000 m yatay uzaklık ötesinde P2 ile uçacak araçlara ayrıca tescil gerekir.
  • Pilot lisansı aracın ağırlığına değil operasyona göre verilir: P0 amatör, gündüz, görüş hattında (VLOS), en çok 120 m yükseklik ve 3.000 m uzaklık, asgari 10 yaş; P1 ticari VLOS, asgari 18 yaş; P2 görüş hattı dışı (BVLOS), otonom, kalabalık üstü ve diğer yüksek riskli operasyonlar, asgari 18 yaş. Basit İHA için lisans aranmaz.
  • Bölgeler: İHATTYS haritasındaki yeşil bölgede belirlenen irtifa ve şartlarla ayrıca izin gerekmez. Yetkili kurumların kapattığı kırmızı bölgelerde (havalimanı yakınları ve askeri alanlar tipik örnektir) ve yeşil olmayan diğer sahalarda uçuş izne tabidir; izin verilmezse uçulmaz. Kalabalık üstü uçuş yalnız P2 kapsamındadır.
  • Sigorta ve mahremiyet: ticari uçuşlarda üçüncü şahıs mali sorumluluk sigortası zorunludur (SHGM sık sorulan sorular); her uçuşta mahremiyet ve kişisel veri kurallarına uyulur.

Avrupa Birliği'nde açık/özel/sertifikalı kategoriler ve C0–C6 sınıf etiketleri vardır. Bu özet hukuki danışmanlık değildir: kurallar ve sayılar değişebilir, uçmadan önce resmi metni oku. Kaynak: SHGM İHA Talimatı (güncel sürümü kontrol edin).

Bitirme projesi

Simüle otonom görev: kalkış → ara noktalar → ArUco ile hassas iniş, failsafe senaryolarıyla. Ayrıntılar ve teslimler bitirme projesi sayfasında; ESOF 323 drone kolunun yazılım mühendisliği teslimleriyle aynı yapıdadır.

Simülasyonlar

Uçuş süresi tahmini: motor, pervane, batarya

Momentum teorisiyle askıda kalma gücü: P = T^1,5 / √(2ρA), pervane başarım katsayısı ve motor × ESC verimiyle bölünür. Batarya büyüdükçe kütlesi de büyür; eğri, kapasiteyi artırmanın neden giderek daha az süre kazandırdığını gösterir.

Ara nokta görevi ve hassas iniş (3B uçuş + 2B harita)

Kalkış → ara noktalar → iniş pedine iniş. Kontrolcü yalnız kestirilen konumu bilir: GPS hatası yavaşça gezinir. İnişte ArUco kamerası açılınca hata santimetrelere düşer. Haritaya tıklayarak ara nokta ekle (sonuncusu ped), rüzgâr ve GPS hatasını değiştir.

3B sahne yükleniyor…

Simülasyon görevi

Uçuş süresi simülasyonunda kullanılan kapasiteyi %80'den %60'a indir: eve dönüş yedeği uçuş süresinden ne kadar götürüyor? Görev simülasyonunda rotayı eve 80 m uzağa çiz, rüzgârı karşıdan ver ve görev süresine bak: bataryan buna yeter miydi? Durum makinesi koduna "GPS kaybı" olayını ekle ve testini yaz.

Kod

PX4 parametreleri: failsafe ve sanal çit (QGroundControl → Parameters)
# Kumanda (RC) kaybı
COM_RC_LOSS_T   0.5      # s: bu kadar sinyal yoksa kayıp sayılır
NAV_RCL_ACT     2        # 2 = Return (eve dön), 3 = Land
# Telemetri (yer istasyonu) kaybı
COM_DL_LOSS_T   10       # s
NAV_DLL_ACT     2        # görevde bağlantı kesilirse Return
# Batarya (kalan oran)
BAT_LOW_THR     0.25     # uyarı
BAT_CRIT_THR    0.12     # COM_LOW_BAT_ACT eylemi (Return)
BAT_EMERGEN_THR 0.06     # hemen in
COM_LOW_BAT_ACT 3        # 3 = kritikte Return, acil durumda Land
# Sanal çit
GF_ACTION       3        # 3 = Return
GF_MAX_HOR_DIST 200      # m, eve uzaklık
GF_MAX_VER_DIST 100      # m, yasal irtifa sınırının altında tut
RTL_RETURN_ALT  30       # m: eve dönüş irtifası (engellerin üstünde)
COM_OBL_RC_ACT  0        # offboard sinyali kesilirse: 0 = Position
Python: bitirme projesi görev durum makinesi (failsafe geçişleriyle)
from enum import Enum, auto

class S(Enum):
    TAKEOFF = auto(); ROUTE = auto(); SEARCH = auto(); ALIGN = auto(); LAND = auto(); RETURN = auto(); DONE = auto()

def next_state(s, ev):
    """Saf geçiş fonksiyonu: birim testle her geçiş doğrulanır. ev: o adımın olayları (dict)"""
    if ev.get("link_lost") or ev.get("battery") == "CRITICAL":     # failsafe her durumdan önce gelir
        return S.RETURN if s not in (S.LAND, S.DONE) else s
    if s is S.TAKEOFF and ev.get("alt_reached"):
        return S.ROUTE
    if s is S.ROUTE and ev.get("last_wp_reached"):
        return S.SEARCH
    if s is S.SEARCH:
        if ev.get("marker_seen"):
            return S.ALIGN
        if ev.get("search_timeout"):                                # işaretçi yoksa GPS'le in
            return S.LAND
    if s is S.ALIGN:
        if not ev.get("marker_seen"):
            return S.SEARCH
        if ev.get("aligned"):
            return S.LAND
    if s in (S.LAND, S.RETURN) and ev.get("landed"):
        return S.DONE
    return s

assert next_state(S.ROUTE, {"link_lost": True}) is S.RETURN
assert next_state(S.SEARCH, {"marker_seen": True}) is S.ALIGN
assert next_state(S.ALIGN, {}) is S.SEARCH
assert next_state(S.LAND, {"battery": "CRITICAL"}) is S.LAND   # inişi bölme

Sık yapılan hatalar

  • Failsafe'leri varsayılanda bırakıp hiç denememek: SITL'de her birini bilerek tetikle.
  • Eve dönüş irtifasını (RTL_RETURN_ALT) çevredeki engellerden alçak tutmak.
  • Batarya eşiğini eve dönüş mesafesini hesaba katmadan seçmek.
  • Mevzuatı "küçük drone, sorun olmaz" diye atlamak: 500 g altı bir drone da Basit İHA (oyuncak) değilse kayıt ve P0 lisansı ister; sınıf, yük dahil kalkış kütlesiyle belirlenir.

Yazılım mühendisliği bağlantısı

Güvenlik kritik yazılımda izlenebilirlik zinciri kurulur: tehlike → güvenlik gereksinimi → tasarım → test → kanıt.

  • Her failsafe bir gereksinim ("bağlantı kesilirse 10 s içinde Return"), her gereksinim bir SITL testi.
  • Durum makinesinin geçiş fonksiyonunu saf yaz ve tüm geçişleri birim testle kapsa; havacılık standartları (DO-178C) bu kapsama disiplinini zorunlu kılar.

Kendini sına

  1. Türkiye'de SHGM talimatına göre P0 (amatör) lisansıyla görüş hattında uçarken azami yükseklik nedir?

  2. PX4'te telemetri (yer istasyonu) bağlantısı kesilince ne yapılacağını hangi parametre belirler?

  3. Test piramidinde en çok sayıda ve en ucuz testler hangileridir?

  4. Sanal çit (geofence) nedir?

Bu üniteden sonra bitirme projesinde

  • SIL testleri, sunum ve rapor: Rüzgâr, telemetri kesilmesi ve batarya senaryoları otomatik; G1–G6 için kanıt tablosu; 10 dakikalık sunum ve canlı ya da kayıtlı demo; final raporu ve depo.

Bu ünitenin parçaları

3B modelli gerçek Hyvex parçaları:

Esc
  • PanelAna sayfaSayfa
  • ModüllerTüm modüllerSayfa
  • ParçalarParça ansiklopedisiSayfa
  • Mühendislik yoluBüyükler için robotik: 128 parça, 7 seviyeSayfa
  • Robotik dersi (ESOF 323)Üniversite robotik dersi, 14 haftaSayfa
  • Drone dersiBüyükler için: parça, simülasyon, yazılım; 10 üniteSayfa
  • Blok atölyesiSerbest blok programlamaAraç
  • Devre laboratuvarıSanal Arduino ve devreAraç
  • Robot arenasıSanal robot sürüşüAraç
  • OyunlarBloklarla 8 öğretici oyunAraç
  • Mikro Kart atölyesiSanal LED kartı bloklarla programlaAraç
  • Robot atölyesiMikro Kart'ı robota tak, bloklarla görev yapAraç