Yapay Zekâ Destekli Otonom Drone Projesi
Bilgisayarlı görü, nesne tespiti ve otonom rotalama algoritmalarını bir araya getirerek kendi yapay zekâ destekli İHA sisteminizi adım adım geliştirin.
Geleneksel insansız hava araçları (İHA) yalnızca bir pilotun kumanda komutlarıyla hareket ederken, yapay zekâ destekli otonom dronelar çevresini görüntü işleme algoritmalarıyla analiz eder, hedefleri tespit eder ve anlık kararlar alarak görev icra eder.
Bu projemizde; bir mikrobilgisayar (Raspberry Pi / Jetson Nano), kameradan alınan canlı görüntüyü işleyen OpenCV kütüphanesi ve uçuş kartıyla MAVLink üzerinden haberleşen DroneKit yapısını birleştirerek hedefine kilitlenen ve otonom iniş gerçekleştiren bir yapay zekâ dronu tasarlayacağız.
1 Gerekli Donanım Bileşenleri
Gelişmiş bir otonom drone sistemi kurmak için doğru mekanik ve elektronik parçaları seçmek kritik önem taşır. Proje mimarimizde kullanacağımız ana donanımlar şunlardır:
- Gövde (Frame): F450 veya F550 karbon fiber / plastik dayanıklı şasi.
- Motor ve ESC: 920KV fırçasız motorlar ve 30A ESC sürücüler.
- Güç Yönetimi: 3S / 4S LiPo Batarya ve Raspberry Pi için 5V 3A BEC güç modülü.
2 Sistem ve Yazılım Mimarisi
Yapay zekâlı drone projesi üç ana katmandan oluşur: Görüntü İşleme (Sense), Karar Mekanizması (Plan) ve Uçuş Kontrolü (Act).
İletişim Mimarısı
Kamera → Raspberry Pi (OpenCV + Python) → MAVLink Protokolü → Pixhawk Uçuş Kartı → ESC ve Motorlar
Raspberry Pi üzerindeki Python betiği, kameradan aldığı karelerde hedefi bulur. Hedefin merkeze olan piksel uzaklığını hesaplayarak Pixhawk'a anlık hız (velocity) komutları iletir.
3 Python ve OpenCV ile Hedef Takip Kodu
Aşağıdaki Python kodu, drone üzerindeki kameradan alınan canlı akışta kırmızı renkli bir hedef objeyi (örneğin iniş pisti pedini) tespit eder ve hedefin merkez koordinatlarını hesaplar:
import cv2
import numpy as np
# Kamerayı başlat
cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
while True:
ret, frame = cap.read()
if not ret:
break
# BGR görüntüyü HSV renk uzayına dönüştür
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
# Kırmızı renk aralığı maskelemesi
lower_red = np.array([0, 120, 70])
upper_red = np.array([10, 255, 255])
mask = cv2.inRange(hsv, lower_red, upper_red)
# Konturları bul
contours, _ = cv2.findContours(mask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
for cnt in contours:
area = cv2.contourArea(cnt)
if area > 500:
x, y, w, h = cv2.boundingRect(cnt)
cx, cy = x + w//2, y + h//2
# Hedef merkezini çiz
cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2)
cv2.circle(frame, (cx, cy), 5, (0, 0, 255), -1)
# Ekran merkezine göre sapma miktarını hesapla (320, 240)
error_x = cx - 320
error_y = cy - 240
print(f"Hedef Sapması - X: {error_x}, Y: {error_y}")
cv2.imshow("Drone AI Vision", frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
4 MAVLink ve DroneKit ile Otonom İniş
Hesaplanan sapma miktarları (error_x ve error_y), PID kontrolcü mantığıyla yumuşatılarak DroneKit üzerinden uçuş kartına set_velocity_body komutu olarak gönderilir. Drone, hedef tam ekran ortasına gelene kadar kendini hizalar ve ardından otonom olarak alçalarak hassas iniş gerçekleştirir.
- Otonom Kalkış (Takeoff): Drone belirlenen güvenli irtifaya (örneğin 3 metre) yükselir.
- Arama Modu (Search): Kamera görüş alanında hedef algılanana kadar belirlenen waypoint noktalarında gezinir.
- Hizalanma (Center Alignment): Hedef algılandığı anda sapma değerlerini sıfırlamak için yatayda düzeltme yapar.
- Hassas İniş (Precision Landing): Hedef merkezdeyken dikey hızı kademeli düşürerek inişi tamamlar.
5 Başarılı Yapay Zekâ Drone Projesi İçin Altın Kurallar
- Önce Simülasyonda Test Edin: Gerçek uçuş yapmadan önce SITL (Software In The Loop) ve Gazebo simülatör ortamında kodlarınızı doğrulayın.
- Güvenlik Anahtarını Unutmayın: Acil durumlarda otonom moddan manuel kumanda moduna (POSHOLD / STABILIZE) geçebilecek bir kumanda anahtarı tanımlayın.
- Işık Şartlarına Dikkat Edin: Yalnızca renk tabanlı tespit yerine YOLOv8-tiny veya MobileNet SSD gibi derin öğrenme modelleri kullanmak farklı hava koşullarında çok daha kararlı sonuç verir.
Sıkça Sorulan Sorular
Yapay zekâlı drone projesi için hangi uçuş kartı kullanılmalıdır?
Otonom görevler ve companion computer (Raspberry Pi/Jetson Nano) entegrasyonu için Pixhawk veya MAVLink protokolünü destekleyen APM serisi uçuş kartları en ideal tercihtir.
Drone üzerinde görüntü işleme için Raspberry Pi yeterli midir?
Temel renk takibi ve hafif OpenCV modelleri için Raspberry Pi 4/5 yeterlidir. Ancak YOLOv8 gibi ağır derin öğrenme modelleriyle yüksek FPS almak istiyorsanız NVIDIA Jetson Orin Nano tercih edilebilir.
Geliştirilen otonom drone yazılımı hangi dille kodlanır?
Drone kontrol protokolleri (DroneKit, MAVSDK) ve bilgisayarlı görü kütüphaneleri (OpenCV) bakımından zengin ekosisteme sahip olduğu için Python dili yaygın olarak kullanılır.
Kendi Robotik ve İHA Projenizi Geliştirin!
Eğitim materyallerimiz, simülatör araçlarımız ve kaynak kodlarımız ile robotik kodlama dünyasına hemen adım atın.
Eğitim Materyallerini İncele
