Drone Otonomi Sistemi
Drone Otonomi Sistemi: Görüntü İşleme ve Flight Controller Entegrasyonu
Proje Türü: Sistem Mühendisliği ve Entegrasyon Projesi
Rol: Sistem Mimarı ve Geliştirici
Teknolojiler: MAVLink, Python/C++, Kalman Filtreleri, PID Kontrol, Bilgisayarlı Görü (OpenCV/YOLO), ROS/ArduPilot/PX4
Proje Özeti
Bir drone’un havalanması kolaydır. Asıl zorluk, onu anlayan, karar veren ve güvenli şekilde yöneten bir sisteme dönüştürmektir. Bu proje kapsamında, görüntü işleme tabanlı otonom drone uygulamaları için Flight Controller (FC) entegrasyonunu; algı, takip, kontrol ve güvenlik katmanlarını kapsayan uçtan uca bir sistem mühendisliği problemi olarak ele aldım ve çözüm geliştirdim. Projenin temel amacı, yapay zekâ dünyası ile fiziksel gerçeklik arasındaki en kritik köprü olan FC'yi, otonom karar mekanizmaları ile güvenli ve kararlı bir şekilde bütünleştirmekti.
1. Proje Kapsamı ve Sistem Yaklaşımı
Proje, ticari hazır (COTS) bir drone platformu üzerine inşa edildi. Temel hedef, dış ortamda hedef takibi, otonom çevreleme (orbit) ve hedef kaybında kurtarma manevraları yapabilen bir sistem geliştirmekti. Bu hedefe ulaşmak için iki temel sistemin (AI Bilgisayarı ve Flight Controller) sorumluluklarını keskin çizgilerle ayırarak, güvenlik ve performans odaklı bir mimari kurguladım.
Mimari Ayrım: AI Bilgisayarı vs Flight Controller
Bu projedeki en önemli tasarım kararı, işlevlerin net bir şekilde ayrılmasıydı:
| Flight Controller (FC) | AI / Companion Computer |
|---|---|
| Uçuş stabilizasyonu | Görüntü işleme ve nesne tanıma |
| Motor ve ESC kontrolü | Hedef tespiti ve konum tahmini |
| Sensör füzyonu (IMU, GPS, Barometre) | Yüksek seviyeli karar verme |
| Uçuş modları ve güvenlik (Failsafe) | MAVLink üzerinden komut üretme |
Bu iki dünya asla karıştırılmamalıdır. AI sistemi uçuşu yönetmez, uçuşa öneride bulunur. Nihai kontrol her zaman FC’dedir. Bu prensip, projenin güvenlik ve sağlamlık temelini oluşturdu.
2. Teknik Çözümler ve Entegrasyon Katmanı
İletişim Protokolü: MAVLink
Drone–AI entegrasyonunda standart olan MAVLink protokolünü kullandım. Hafif, deterministik ve uçuş modlarıyla uyumlu yapısı, bu protokolü ideal kıldı. AI sistemi, FC ile SET_POSITION_TARGET ve SET_ATTITUDE_TARGET gibi yüksek seviyeli komutlar üzerinden iletişim kurdu. Motor veya servo seviyesine inmekten kaçınıldı; bu, sistem güvenliğini riske atabilecek bir yaklaşım olarak değerlendirildi.
Görüntü İşleme ile Kontrol Arasındaki Kopukluğu Gidermek
Projenin en kritik mühendislik problemlerinden biri, görüntü işleme sisteminin (düşük FPS, gecikmeli, değişken kare hızı) ile Flight Controller'ın (yüksek frekans, 200-1000 Hz, sert zamanlama) doğası arasındaki uyumsuzluktu.
Bu sorunu çözmek için geliştirdiğim akış şu şekildedir:
-
Tespit: AI sistemi (YOLO tabanlı) hedefin piksel koordinatlarını tespit eder.
-
Tahmin: Bu gürültülü ölçümler, bir Kalman Filtresi ile işlenerek hedefin gelecekteki konumu tahmin edilir.
-
Kontrol: Tahmin edilen konum, bir PID denetleyici ile hata sinyaline dönüştürülür.
-
Komut: Oluşturulan hız (velocity) veya yön (yaw rate) komutları MAVLink ile FC'ye gönderilir.
Bu katmanlı yaklaşım, AI’dan gelen gecikmeli veriyi stabilize etmiş ve FC’nin kendi yüksek frekanslı kontrol döngüsüyle uyumlu çalışmasını sağlamıştır.
3. Geliştirilen Otonom Uçuş Senaryoları
Bu sistem mimarisi üzerine üç temel otonom uçuş senaryosu geliştirdim ve test ettim:
-
Target Following (Hedef Takibi): Drone, tespit edilen hedefi kadrajın merkezinde tutacak şekilde yaw (dönüş) ve ileri yön hız komutları alır. İrtifa, güvenlik nedeniyle sabit tutulur.
-
Orbit Mode (Çevreleme): Drone, hedef etrafında dairesel bir yörüngede uçar. Görsel merkezleme ile hız kontrolü eş zamanlı çalışır.
-
Search & Reacquire (Kurtarma): Hedef kaybolduğunda, drone mevcut konumda sabitlenir ve otomatik olarak geniş açılı bir tarama manevrası başlatır. Hedef tekrar tespit edildiğinde takip moduna döner.
4. Güvenlik ve Failsafe Mekanizmaları
Projenin en önemli ayaklarından biri, hata durumlarında sistemin güvenliğini sağlamaktı. Aşağıdaki kuralları katı bir şekilde uyguladım:
-
AI sistemi, FC’nin yerleşik güvenlik fonksiyonlarını (RTL - Return to Launch, Low Battery Failsafe) asla override edemez veya iptal edemez.
-
AI sistemi çöktüğünde veya yanıt vermediğinde, drone otomatik olarak normal bir RC drone gibi davranmaya döner. Bu, otonom sistemlerde olgunluk göstergesi olarak kabul edilir.
5. Gerçek Hayat Dersleri ve Çıkarımlar
Bu proje boyunca saha testlerinden ve karşılaşılan zorluklardan edindiğim en önemli dersler şunlardır:
-
En iyi algoritma, kötü bir entegrasyonu kurtarmaz.
-
FC’yi “akıllandırmaya” çalışmak değil, ona doğru ve güvenli komutlar göndermek esastır.
-
Gecikme yokmuş gibi tasarlanan sistemler sahada çöker. Gerçek zamanlı sistemlerde gecikme ile yaşamayı öğrenmek ve buna göre tasarım yapmak gerekir.
-
Basit, öngörülebilir ve sağlam kontrol her zaman kazanır.
Proje Sonucu ve Değerlendirme
Bu proje, drone uçurmaktan çok, bir sistemi uçurmayı öğreten kapsamlı bir mühendislik deneyimi oldu. Flight controller entegrasyonu; yazılım, kontrol teorisi ve donanım gerçeklerinin birleştiği kritik bir alandır. Burada başarı; AI’nın ne kadar akıllı olduğundan çok, fiziksel dünyaya ne kadar saygılı davrandığıyla ölçülür.
Geliştirdiğim bu sistem, geleceğin otonom drone çözümlerine yönelik olarak; uçuş fiziğini anlayan, gecikmeyi tolere eden ve güvenli davranan bir mimari örneği teşkil etmektedir.
Proje Teknik Detayları (Hızlı Bakış)
-
Donanım: PX4 / ArduPilot tabanlı FC, NVIDIA Jetson / Raspberry Pi (Companion Computer), 4K Kamera
-
Yazılım: Python, C++, ROS, OpenCV, MAVSDK, Kalman Filtresi ve PID Kütüphaneleri
-
İletişim: MAVLink protokolü üzerinden Telemetry/Radyo bağlantısı