Drone Koordinasyonu : Ortak Hareketi Yazılım ve Donanım
Drone Koordinasyonu : Ortak Hareketi Yazılım ve Donanım
✨ Giriş
İnsansız hava aracı (drone) teknolojisi, bireysel kullanımın ötesine geçerek birden fazla drone’un ortak çalışmasıyla gerçekleşen “sürü davranışına” evrilmektedir. Bu yazıda, 2 veya 3 drone’un birbirine bağlanarak senkronize bir şekilde hareket etmesini sağlayan sistemlerin hem yazılım hem donanım açısından nasıl kurulduğunu inceleyeceğiz.
💼 Drone Koordinasyonu Nerelerde Kullanılır?
Drone’ların birbiriyle koordineli hareket etmesi, yalnızca teknik bir başarı değil, aynı zamanda farklı alanlarda devrimsel yenilikler sunar. İşte uygulama alanları:
🚒 Afet ve Arama Kurtarma:
- Birden fazla drone, farklı noktalarda senkronize şekilde tarama yaparak hayatta kalanları tespit edebilir.
- Gaz veya yangın gibi tehlikeli ortamlarda girilemeyen bölgelerde haritalama yapar.
🌾 Tarım:
- Alan tarama, ilaçlama ve mahsul takibi için drone sürüleri kullanılır.
- Ortak komutla belirli desenlerle hareket ederek tüm araziyi verimli şekilde kapsayabilirler.
🏛️ Askeri ve Güvenlik:
- Gözetleme, devriye ve hedef takibi gibi senaryolarda kullanılır.
- Düşman bölgelere dağıtık şekilde gözlem yapabilirler.
🚚 Lojistik ve Teslimat:
- Koordineli çalışan drone’lar toplu dağıtım yapabilir.
- Özellikle şehir içinde trafikten bağımsız bir teslimat ağı kurulabilir.
🎥 Gösteri ve Sanat:
- Intel’in Işık Gösterisi gibi sürü drone gösterileri.
- Drone’lar ile senkronize danslar, 3D yazılar veya animasyonlar oluşturulabilir.
💻 Yazılım Teknolojileri
Dil | Kullanım Amacı | Avantajları |
---|---|---|
Python | DroneKit, ROS, MAVLink entegrasyonu | Kolay, modüler, açık kaynak |
C/C++ | Firmware geliştirme (Pixhawk, STM32) | Gerçek zamanlı, düşük seviyeli kontrol |
JavaScript/WebSocket | Web tabanlı kontrol arayüzleri | Canlı görsel kontrol imkanı |
En popüler kombinasyon: Python + MAVLink + DroneKit
⚙️ Gerekli Donanımlar
Her Drone için:
- Pixhawk veya benzeri Flight Controller
- GPS Modülü (UBlox M8N gibi)
- Telemetry Modülü (433MHz / 915MHz)
- ESC + Motorlar + Pervaneler
- IMU (Jiroskop, ivmeölçer)
- Raspberry Pi / Jetson Nano (yüksek seviye işlemler)
Haberleşme Yöntemleri
- MAVLink protokolü (telemetry veya UDP)
- Wi-Fi (UDP broadcast)
- Mesh Network (sürü için ideal)
🚀 Yazılım Yapısı (Python + DroneKit)
1. Bağlantı Kurma
from dronekit import connect
vehicle1 = connect(‘udp:127.0.0.1:14550’, wait_ready=True)
vehicle2 = connect(‘udp:127.0.0.1:14560’, wait_ready=True)
2. Arm + Kalkış
def arm_and_takeoff(vehicle, altitude):
vehicle.mode = VehicleMode(“GUIDED”)
vehicle.armed = True
while not vehicle.armed:
time.sleep(1)
vehicle.simple_takeoff(altitude)
3. Koordineli Hareket
def move_forward(vehicle, north, east):
msg = vehicle.message_factory.set_position_target_local_ned_encode(
0, 0, 0, mavutil.mavlink.MAV_FRAME_LOCAL_NED,
0b0000111111111000, north, east, 0, 0, 0, 0, 0, 0, 0)
vehicle.send_mavlink(msg)move_forward(vehicle1, 5, 0)
move_forward(vehicle2, 5, 5)
🌍 Simülasyon Ortamı
- Gazebo: 3D fiziksel simülasyon
- ROS (Robot Operating System): Drone veri akışı ve mesajlaşma
- MAVROS: ROS + MAVLink entegrasyonu
roslaunch px4 multi_uav_mavros_sitl.launch
🔄 Lider-Takip Modeli
leader_position = vehicle1.location.global_relative_frame vehicle2.simple_goto(LocationGlobalRelative(leader_position.lat + 0.00001, leader_position.lon, 5))
Alternatif Algoritmalar:
-
1. Boid Modeli: Drone Sürüsünün Akıcı Dansı
Drone sürüsünün temel, anlık hareketlerini yöneten en temel model Boid modelidir. Her bir drone, bir “boid” gibi davranır ve sürünün akıcı, çarpışmasız ve birleşik hareketini sağlamak için üç basit kuralı sürekli olarak uygular:
-
Ayrılma (Separation) – Çarpışmayı Önleme: Her drone, sürekli olarak yakındaki diğer drone’larla arasındaki mesafeyi ölçer. Eğer bir drone diğerine tehlikeli bir şekilde yaklaşırsa, ondan uzaklaşmak için anında bir manevra yapar. Bu, havadaki en temel güvenlik kuralıdır ve drone’ların birbirine çarpmasını engeller. Drone’lar üzerindeki sensörler (kamera, lidar, ultrasonik) bu kuralın işlemesi için kritik veriyi sağlar.
-
Hizalanma (Alignment) – Aynı Yönde Akma: Her drone, kendi lokal çevresindeki (örneğin 50 metre yarıçapındaki) komşu drone’ların ortalama hızını ve yönünü hesaplar. Daha sonra kendi hızını ve yönünü bu ortalamayla eşleştirmeye çalışır. Bu kural, sürünün dağılmadan, bir bütün olarak aynı yöne doğru akmasını sağlar. Tıpkı bir otoyoldaki arabaların aynı yönde ve benzer hızlarda gitmesi gibi.
-
Bütünleşme (Cohesion) – Sürüyü Bir Arada Tutma: Her drone, komşu drone’ların ortalama konumunu (sürünün lokal merkezini) hesaplar ve bu merkeze doğru hafifçe yönelir. Bu kural, sürünün zamanla dağılıp parçalara ayrılmasını engeller ve grubun bir arada kalmasını sağlar. Özellikle dış etkenler (rüzgar vb.
-
-
2. Consensus (Uzlaşma) Algoritmaları: Sürünün Ortak Karar Alması
Boid modeli anlık hareketleri yönetirken, Consensus algoritmaları sürünün daha üst düzey, stratejik kararlar almasını sağlar. Bir drone sürüsü sadece uçmaz; bir görevi yerine getirir. Bu görev sırasında tüm sürünün hemfikir olması gereken durumlar ortaya çıkar.
- Görev Üzerinde Anlaşma: “Arama-kurtarma görevinde, aranacak bölgeyi hangi alt bölgelere ayıracağız ve hangi drone hangi alt bölgeyi arayacak?” veya “Hedef tespit edildi, şimdi tüm sürü olarak hedefi takip mi edelim, yoksa sadece bir alt grup mu takip etsin?” gibi kararların tüm sürü tarafından onaylanması gerekir.
- Lider Seçimi: Sürü içinde görevleri dağıtan veya yer istasyonuyla iletişimi sağlayan bir “lider” drone olabilir. Eğer mevcut liderin şarjı azalırsa veya arızalanırsa, sürünün geri kalanının kendi aralarında yeni bir lider üzerinde anlaşması gerekir. Consensus algoritmaları, bu seçimin adil ve hızlı bir şekilde yapılmasını sağlar.
- Durum Tutarlılığı: Tüm drone’ların “görevin güncel durumu” hakkında aynı bilgiye sahip olması kritik öneme sahiptir. Örneğin, bir drone kayıp bir kişiyi bulduğunda, bu bilginin tüm sürüye güvenilir bir şekilde yayılması ve tüm drone’ların haritalarını “hedef bulundu” olarak güncellemesi gerekir. Consensus, bu ortak “gerçek” üzerinde uzlaşmayı sağlar.
-
3. Swarm Intelligence (Sürü Zekası): Görevi Başarmak İçin Zeki Davranış
Sürü Zekası, Boid modelini ve Consensus algoritmalarını bir araya getirerek drone sürüsüne adaptif ve akıllı bir davranış yeteneği kazandıran çatı kavramdır. Sadece hareket etmek veya anlaşmak değil, aynı zamanda çevresel koşullara ve görevin gerekliliklerine dinamik olarak uyum sağlamaktır.
- Optimizasyon ve İş Bölümü: Bir tarım arazisinin ilaçlanması görevini düşünün. Sürü zekası algoritmaları, arazinin şekline, rüzgar yönüne ve drone’ların batarya seviyelerine göre en verimli ilaçlama rotalarını ve drone’lar arasındaki en uygun iş bölümünü otomatik olarak hesaplar. Karınca kolonilerinin en kısa yoldan yiyecek kaynağını bulması gibi, drone’lar da en verimli görev tamamlama yolunu bulur.
- Dinamik Yeniden Planlama: Görev sırasında beklenmedik bir durum olursa (örneğin, bir drone arızalanırsa veya aniden güçlü bir rüzgar çıkarsa), sürü zekası sayesinde görev anında yeniden planlanır. Kalan drone’lar, arızalanan drone’un görevini kendi aralarında paylaşır veya rüzgardan kaçınmak için yeni bir formasyon oluştururlar. Bu, merkezi bir operatörün müdahalesine gerek kalmadan gerçekleşir.
- Stigmergy (İşaretle Haberleşme): Karıncaların feromon izleri bırakarak haberleşmesi gibi, drone’lar da çevreye veya dijital bir haritaya “işaretler” bırakarak dolaylı yoldan iletişim kurabilir. Örneğin, bir arama görevinde bir drone aradığı bölgeyi “temiz” olarak işaretler ve diğer drone’lar bu bilgiye bakarak aynı yeri tekrar aramaz. Bu, verimliliği muazzam ölçüde artırır.
⚠️ Yasal ve Güvenlik Kuralları
- SHGM kayıt zorunluluğu (500g+ drone)
- Uçuş izni, alan ve yükseklik sınırları
- Fail-safe sistemleri (otomatik iniş, batarya uyarıları)
🏁 Sonuç
Drone koordinasyonu, yazılım (DroneKit, ROS) ve donanım (Pixhawk, GPS) bileşenlerinin entegre çalışmasıyla mümkün olur. Bu alanda adım atmak isteyen geliştiriciler için Python ile başlayan bir senkronizasyon altyapısı, gerçek uçuş öncesi simülasyonlarla desteklenmelidir.