Sürü İnsansız Hava Aracı Yarışması Teknik Aşama – 1
Tasarım ve Simülasyon Sunuşu
...Airbender...
Özet
Airbender takımımız 2 lisans ve 1 yüksek lisans öğrencisinden oluşmaktadır.Öğrendiğimiz bilgileri kulanarak insansız hava araçlarına yönelik çalışmalara katkı sağlamak istemekteyiz.Yarışma başvurusundan itibaren belirlenen sorunlara çözüm üretmek ve jenerik kontrol algoritması oluşturmak için çalışmaktayız.Ayrıca akademik ilgi alanlarımızdan olan sürü kontrolü alanında TEKNOFEST’in sağladığı olanaklar ile bu alandaki bilgi ve becerilerimizi geliştirmeyi fırsat olarak görmekteyiz.
Proje Yönetimi
• Literatür Taraması
Ocak-Şubat-Mart aylarında literatür taraması yapılmıştır.
• Geçmiş Yıl Raporlarının İncelenmesi
Mart ayında geçmiş yıl raporları incelenmiştir.
• Görev Gereksinimlerinin Belirlenmesi
Mart ayında görev gereksinimleri belirlenmiştir.
• Algoritma ve Problem Tespitleri
Mart ve Nisan ayında algoritma ve problem tespitleri yapılmıştır.
• Formasyon Kontrol,Çarpışma Engelleme, Rota Planlama
Mart ayından itibaren Formasyon, Çarpışma Engelleme ve Rota Planlama işlemleri yapılmaktadır.
Takım Organizasyonu
Proje Gereksinimleri
1. İHA Bireysel Kalkış ve Havada Formasyon Oluşturma Görevi
Bireysel işlem için her İHA kalkış işlemine başladığı anda belirtilen irtifaya ulaşması gereken süreyi yükselme hızına oranlayarak irtifayı tamamlamalıdır. Her bireyin irfia alması bittiğinde formasyon kontrol algoritması çalıştırılarak ( formasyon kontrolü Macar Algoritması ile yapılacaktır ) istenilen süre kadar formasyonda kalması sağlanacaktır.
2. Formasyon Halinde Kalkış Görevi
Bireyler kalkış öncesi formasyon noktalarından başlatılarak ve az hata ile formasyonda kalarak irtifa almalıdır yada belirtilen sürenin yarısı kadar irtifa alarak kalan zamana oranla hızını arttırıp daha sert tepkilerle formasyon halinde irtifa almalıdır.
3. Sürü halinde Yükselme -Alçalma Görevi
İHA’ların sürü halinde aralarındaki mesafeyi bozmadan formasyon halinde belirli irtifalara yükselip alçalması gerekmektedir.
4. Sürü Halinde Eş Zamanlı/Sıralı Otomatik İniş
Bu görevin gerçekleşmesi için threading ( iş parçacığı ) yöntemi kullanılarak eş zamanlı işlem gerçekleştirebilir. Sıralı işlem için formasyon türüne bağlı olarak seçilen İHA matrisi her iterasyonda iniş bilgisi kontrolü ile bir sonraki adıma gönderilmelidir.
Asenkron işlemlerde ise await ( işlem bekletme ) yöntemi ile bağımlılık oluşturularak sıralı işlemler yapılabilir.
Proje Gereksinimleri
5. Sürüden birey Çıkarma Görevi
Bu işlem için tüm İHA’ların bilgisinin bulunduğu matris işleme alınarak sürüden çıkarılacak ihanın ID’si bu matristen çıkarılarak iniş yapması beklenir ve kalan bireyler formasyonu belirlenen süre boyunca korumalıdır.
6. Sürüye Yeni Birey Ekleme Görevi
Yeni birey eklenmesi için İHA’ların bilgisinin bulunduğu matris işleme alınarak eklenecek ihanın ID’si bu matrise eklenir ve formasyon halindeki sürü 1 İHA eklenecek kadar genişler.
7. Sürü Ayrılma Görevi
Sürü sayısı ve birey sayısı bilgilerinin bulunduğu matrisin satırı sürü ayrılma görevi esnasında ikiye ayrılır ve ayrılan bölüm ikinci satır olarak tanımlanır ve böylece yeni sürü oluşmuş olmaktadır.
8. Sürü Birleşmesi Görevi
Sürü sayısı ve birey sayısı bilgilerinin bulunduğu matrisin içindeki sürü satırları birleştirilerek sürülerin birleşmesi sağlanır.
Proje Gereksinimleri
9. Formasyon Koruma İle Sürü Halinde Yön Değiştirme Görevi
Sürü üyelerinin belirli süreler boyunca formasyonu koruyarak sürü halinde dönüş yapmaları gerekmektedir ve bu dönüş işleminden sonra yine belirli süre boyunca formasyonu koruması ve ardından iniş yapması gerekmektedir.
10. Formasyon Değiştirme Görevi
Formasyon değiştirme talebi geldiğinde formasyon merkezi belirlenip formasyon noktaları oluşturulur ve ardından formasyon matrisi güncellenir daha sonra da formasyon değişikliği uygulanır.Formasyon koruma ve iniş işlemleri belirli süreler dahilinde olmaktadır.
11. Sürü Halinde Navigasyon Görevi
Sürünün navigasyon görevini gerçekleştirebilmesi için ara nokta işlemi ile rota planlama işlemi yapılmalıdır ve her nirengi bir ara nokta olarak varsayılarak her noktada belirli süre boyunca formasyon korunmalıdır. Her noktaya ulaşıldığında ise bir sonraki nirengi ile ulaşılan nirengi açısı kontrol edilerek sürü bireylerinin baş açısı düzeltilmeli ve rotasyon işlemi gerçekleştirilmelidir.
Tasarım Çözümü
Formasyon
Formasyon işlemi için Macar Algoritması kullanılmıştır.Bu algoritma doğru bir atama bulmak için pozitif tamsayı değerleri gerektirir ve böylece maliyet matrisi oluşur.Bunun sonucunda sürü üyelerinin konumlarına en uygun şekilde formasyon noktaları oluşturulur.
Tasarım Çözümü
Çarpışma Engelleme
İtme Yönteminde doğrusal hareket halindeyken ajanlar arasındaki mesafe belirlenen sınırdan az olduğunda r0’a bağlı olarak bir karşıt hız üretilmektedir.
Rota Planlama
Euclidean uzaklık fonksiyonunu kullanarak robotun gideceği yolun planlanması, olası gidilecek nokta ve hedef nokta arasında düz bir şekilde hareket ettirilmesi ile yapılır diğer yandan enlemi ve boylamı bilinen iki koordinat arasındaki mesafenin hesaplanması için ise Haversine Formülü kullanılmaktadır.
Rota planlanırken en önemli unsurlardan biri rota üzerindeki engellerdir.Bu engellerin tespiti için denklemi bilinen bir doğrunun bir noktaya olan uzaklığı formülü kullanılabilmektedir.
Algoritmalar
Başlangıç Formasyon
Bilgilerini Oku
Çarpışma Var mı?
Gereksinimleri Karşıla Gereksin
imler Yüklendi
mi?
Görev Tamaml andı mı?
Hayır
Evet
Evet
Hayır
Eş Zamanlı Atama Uygula
İtme Yöntemini Uygula
Başlangıç Noktasına Geri
Dön
Evet
Hayır
Temel Görev İsterlerinin Doğrulandığının Gösterilmesi
Çarpışma engelleme
Çarpışmadan kaçınmak için her sürü üyesinin konum ve hız bilgilerini alması gerekmektedir.A Tunable Self-Propelled Flocking Modeli kullanılarak her İHA diğer İHA’lar ile olan mesafesini tarar ve güvenli alan aşıldığında itme kuralını uygular ve diğer birey yaklaşma hızı kadar itilir.
𝑉𝑟𝑒𝑝0 = ቐ𝑝𝑟𝑒𝑝 × 𝑟0𝑟𝑒𝑝 − 𝑟𝑖𝑗 × 𝑟𝑖−𝑟𝑗
𝑟𝑖𝑗 𝑖𝑓 𝑟𝑖𝑗 < 𝑟0𝑟𝑒𝑝 0
İtme Kuralı Öncesi Rastgele Konumlandırılan İHA’lar
Temel Görev İsterlerinin Doğrulandığının Gösterilmesi
Test Sonucu İHA’ların durumu 1 Test Sonucu İHA’ların Durumu 2
Temel Görev İsterlerinin Doğrulandığının Gösterilmesi
Test Sonucu İHA’ların durumu 3
Temel Görev İsterlerinin Doğrulandığının Gösterilmesi
Formasyon oluşturma
Formasyon işleminin kontrolü için Macar Algoritması kullanılarak formasyonun sağlanması ve oluşturulan formasyonun da devamlılığı sağlanmıştır.Kontrol girişi her birey i. eleman için diğer bireylerin konumlarının farkından belirlenen formasyon mesafesi çıkarılarak sürünün tüm bireyleri için uygulanarak formasyona girmesi beklenmektedir.
𝑓 𝑢𝑖 =
𝑗=1 𝑁
𝑃𝑖 − 𝑃𝑗 − 𝛿𝑖𝑗
Temel Görev İsterlerinin Doğrulandığının Gösterilmesi
Formasyon noktalarının belirlenmesi
Bu işlem için sürünün uzaydaki dağılımından formasyon merkezi belirlenir ve formasyon çeşidine göre formasyonun noktaları oluşturulur.
Örnek olarak üçgen formasyon oluşturulmak istendiğinde aşağıdaki formül ile oluşturulabilir.
𝑃𝑖𝑥 = 𝑢𝑎𝑣_𝑥_𝑐𝑒𝑛𝑡𝑒𝑟 + 𝑢𝑎𝑣_𝑝𝑒𝑟_𝑑𝑖𝑠𝑡 × sin(90 + 90 × (𝑖 − 1) 𝑃𝑖𝑦 = uav_x_center + cember_yaricap × sin((uav_theta
2 ) × 𝑖 − 2 Formül her i. birey için uygulanıp tüm bireylerin ağırlık merkezine formasyon noktaları oluşturarak maliyet azaltılmayı amaçlanmıştır.
Üçgen Formasyon
Temel Görev İsterlerinin Doğrulandığının Gösterilmesi
Kare Formasyon Beşgen Formasyon V Formasyon
Temel Görev İsterlerinin Doğrulandığının Gösterilmesi
Hilal Formasyon Yıldız Formasyon
Temel Görev İsterlerinin Doğrulandığının Gösterilmesi
Kare Formasyon MATLAB Kodu
Temel Görev İsterlerinin Doğrulandığının Gösterilmesi
Hilal Formasyon Python Kodu
Temel Görev İsterlerinin Doğrulandığının Gösterilmesi
Formasyon noktalarına atama
Eş zamanlı atama algoritması kullanılarak formasyon noktaları oluşturulup maliyet hesaplanır.Maliyet hesabı ile i. elamanın maliyeti hesaplanırken kendisi hariç diğer tüm elemanlara olan uzaklığı iki nokta arası uzaklık formülü ile bulunur ve cost matrisine aktarılır.
𝐶𝑜𝑠𝑡𝑖𝑗 = 𝑃𝑖 − 𝑃𝑗
Buna ek olarak her İHA’nın gitmesi gereken minimum uzaklık bulunarak goal noktası belirlenir ve bu işlemden sonra matris sıralanır ve her İHA gitmesi gereken formasyon noktasını belirlemiş olur.
𝐺𝑜𝑎𝑙𝑖 = min(𝐶𝑜𝑠𝑡𝑖)
Eş zamanlı atama maliyet matrisi düzenlenmeden önce
Temel Görev İsterlerinin Doğrulandığının Gösterilmesi
Eş zamanlı atama düzenlenmiş matris formu Eş zamanlı atama en düşük maliyet ile düzenlenmiş matris
Temel Görev İsterlerinin Doğrulandığının Gösterilmesi
Sürüden eleman çıkarma
Sürü matrisinden istenilen İHA’nın çıkarılma talebi geldiğinde o İHA’nın matrisdeki değeri 0 olark güncellenir ve çıkan İHA başlangıç noktasına ilerler.Başlangıç noktasına ilerlerken çarpışma kontrol algoritmaları kapsamında olur.
Sürü birleştirme işlemleri
2x4 formatında oluşturulan sürü matrisleri birleştirilerek 1x4 formatında matris elde edilir.Güncellenen matris sonrası 2 ayrı sürü tek sürü haline gelir.Sürü matrisindeki ilk eleman 0 olduğunda o sürüde eleman olmadığı ve işleme alınmayacağı bilinmektedir.
Sürü Birleşmesi
Temel Görev İsterlerinin Doğrulandığının Gösterilmesi
Sürü Çarpışma Simülasyon
Temel Görev İsterlerinin Doğrulandığının Gösterilmesi
Sürü ayrılma işlemleri
Oluşturulan sürü matrisleri ikiye ayrılıp diğer satıra yazılır ve her satır bir sürüyü oluşturur. Böylece 2 sürü oluşmuş olur.Daha sonra her 2 sürüye kontrol algoritmaları uygulanır.
Sürü Ayırma ve 2 Farklı Sürü Oluşturma
Temel Görev İsterlerinin Doğrulandığının Gösterilmesi
Rotasyon oluşturma
𝑋′𝑌′ = cos(𝛼) −sin(𝛼)
sin(𝛼) cos(𝛼) × 𝑋 𝑌
Rotasyon matrisine 𝛼 açısı 0 olarak verildiğinde simülasyon sonucunda ihaların x eksenine dik olarak geldiği görülmüştür.
Hedef ile İHA’lar arasındaki açı farkını kapatmak için eğim formülü ile hesaplama yapılarak 𝛼 açısı 90 derece döndürülüp hedef ile baş açısı eğiminin 0 olması
sağlanmıştır.
Rotasyon İşlemi Öncesi Rotasyon İşlemi Sonrası
Temel Görev İsterlerinin Doğrulandığının Gösterilmesi
Navigasyon ve Ara Nokta Takibi
Hedef ile sürü arasında noktalar oluşturulur ve sürünün bu noktalara uğrayarak ilerlemesi beklenir.Sürünün ağırlık merkezi hesaplanır.Gidiş noktası ile hedef arasındaki fark zamanla 0’a doğru gidiyorsa sürünün o noktaya gitmesi beklenir.Gerekli formüller şu şekildedir:
𝑡−∞lim 𝑃∗ − ത𝑃 = 0 , 𝑡 ≥ 0.
𝑃 =ത 1
𝑁
𝐽=1 𝑁
𝑝𝑗
𝑢𝑡=𝑘𝑡𝑝(𝑃∗ (t)- ത𝑃)+ 𝑘𝑡𝑑(Ṗ∗(𝑡)- ሶത𝑃)+ ሷ𝑝∗(𝑡)