Drone Programlamaya Giriş Ve Simülasyon Teknolojilerine Genel Bakış

Drone Nedir?
Havada insansız ve uçabilen tüm araçlara drone olarak adlandırabiliriz (İHA-UAV). Dronlar, uzaktan kumanda ile kontrol edilebilen (Yada tamamen otonom veya bir arayüz ile kontrol edilen), komut verilebilen, video ve görüntü kaydı yapabilen insansız hava araçlarıdır. Bir drone, pervane, motor, gövde, uçuş kontrol kartı, sensör gibi bileşenlerin bir araya gelmesinden oluşur. Dronlar motor sayılarına göre adlandırılır. Tricopter, Quadcopter, Hexacopter, Octocopter olarak drone çeşitlerini sayabiliriz. Quadcopter en çok kullanılan model olup, “Drone eşittir Quadcopter” olarak anılmaktadır.
Drone’un Temel Bileşenleri
Motor |
![]() |
Gövde |
![]() |
Pervane |
![]() |
Batarya |
![]() |
GPS Modülü |
![]() |
Sensör |
![]() |
Flight Controller |
![]() |
Speed Controller |
![]() |
Landing Gear (İniş Takımı) |
![]() |
Dronların Kullanım Alanları
- Savunma Sanayi
- Sağlık Sektörü
- Tarımsal ve Zirai Uygulamalar
- Fotoğrafçılık ve Sinema Sektörü
- Haritalama
- Kargolama
- Yangın Söndürme
- Bina Güvenliği gibi alanlarda kullanılabilir.
Drone Çeşitleri
|
2\. Fixed-Wing Drones |
3\. Single Rotor Drones |
4\. Fixed-Wing Hybrid VTOL |
---|---|---|---|
![]() |
![]() |
![]() |
![]() |
Sabit kanatlı Drone’lar geniş yüzey alanına sahip kanat bulundururlar ve kalkış (lift) kuvvetini bu kanatlardan sağlarlar. Döner kanatlı drone’ların bu tip kanatları yoktur. Kalkış kuvvetini sadece motorlarından sağlarlar. Sabit kanat ve döner kanatlı drone’ların birbirlerine göre avantaj ve dezavantajları mevcuttur.
Avantajları | Dezavantajları | |
Döner Kanat (Rotary Wing) | Dikey kalkış yapabilmesi Kullanım kolaylığı ve ulaşılabilirlik Kapalı alanlarda kullanılabilirlik |
Kısa uçuş süresi Düşük yük kapasitesi |
Sabit Kanat (Fixed Wing) | Uzun uçuş süresi Geniş alanlarda kullanılabilirlik §Yüksek uçuş hızı |
Kalkış ve iniş için ek alan ihtiyacı Kullanım zorluğu |
Yaygın kullanımı nedeniyle biz döner kanatlı dronelar üzerinde ilerleyeceğiz. Bunlar genel olarak motor sayılarına göre adlandırılıyorlar. Tricopter, Quadcopter, Hexacopter, Multicopter olarak drone çeşitlerini görebiliriz.
En yaygın görülen Quadcopter;
- En çok tercih edilen drone çeşididir. - Hatta bazı yerlerde quadcopter, drone isminin yerini alır. - Dört adet pervanesi bulunduğu gibi sağ ve solda ikişer tane olmak üzere toplamda dört adet de motoru bulunur.
Quadcopter Nasıl Çalışır?
İlk kez 1907 yılında Louis and Jacques Bregueth Professor ve Charles Richet Jacques tarafından quadcopter (4motorlu drone) tasarımı ve uçuşu gerçekleşti. Her ne kadar başarısız olsa da bu gelişme sayesinde dronlar gelişerek günümüzdeki halini aldı. Quadcopterların diğer hava araçları gibi kendilerine özgü bir uçuş prensibi ve aerodinamiği vardır. Devam edeceğimiz bölümlerde ‘Dronlar nasıl uçar?’ sorusunu teorik bir şekilde ve örneklerle açıklayacağız.
Quadcopterin manuel veya otonom şekilde hareket etmesinin ana sebebi Newton’un üç temel hareket yasasına dayanmaktadır.
Quadcopterin kenarlarında 4 tane motor vardır. İkisi motor saat yönünde (AveC) diğer ikiside saat yönünün tersine döner (D ve C), motorların zıt yönde ve aynı hızda dönmesi sayesinde motorların toplam aerodinamik tork ve açısal momenti sıfır olur ve quadcopter dengelenmiş olur. Dronun uçma prensibini kısaca özetleyecek olusarak, Newton’un üç temel hareket kanunlarından biri olan 3. kanunun ‘ETKİ TEPKİ‘ ilkesine dayanır. Eşit hızda dönen pervaneler havayı aşağıya doğru yaptığı iter. Bu ETKİ kuvvetine karşılık, hava drona TEPKİ uygular ve quadcopter havada kalmayı sağlar.
Dronların hareket eksenleri nelerdir? Nasıl hareket eder?
Dronların roll, pitch ve yaw olmak üzere 3 tane hareket ekseni vardır. Dronların bu eksenlerde hareket edebilmesi için pervanelerin hızlarında değişiklikler olur. Bunun ana sebebi net açısal momentumu sıfır yapmak ve havada dengeli bir uçuş gerçekleştirmektir.
Roll(Yuvarlama):
Dronun sağa veya sola dönebimesidir.
Dronun döneceği yöndeki motorların hızı düşürülüp tam zıt motorların hızları artırılarak drone sağa veya sola dönüş sağlar.Bu sayede açısal momentum sabit kalır ve drone dengeli bir şekilde dönüş yapar.
Örnek olarak; sağ tarafa dönecek quadcopterde sağ motorların itme gücü düşürülür ve sol taraftaki motorların itme gücü artırılır
Pitch(Yunuslama):
Dronun ileri veya geri yönde uçuşudur.
Dronun gideceği yöndeki pervanelerin yavaşlar ve zıt yöndeki pervaneler hızlanmaya başlar. Bunun sayesinde net açısal momentum korunur(sıfır olur) ,dron ileri veya geri gönde hareket eder.
Yaw(Sapma):
Dronun kendi etrafında yön değiştirmesidir. Dronun saat yönünde veya tersine dönmesi için dönme yönüne zıt ve dönme yönünde olan pervanelerin hızlarında birtakım değişiklikler olur.
Örnek olarak şekildeki gibi dronun saat yönüne dönebilmesi için saat yönüne dönen dronların pervanelerinin hızı azalır ve saat yönünde dönen dronların hızı artar. Bunun sayesinde drone saat yönüne dönerek toplam net açısal momentum sıfır olur ve dengeli şekilde dönme gerçekleştirilir.
Simülasyon Teknolojileri
Drone gibi araçlar için kullanılan simülasyon teknolojilerine gelecek olursak drone için otonom uçuş kodu yazılmadan önce yazılan kodlar simülasyon ortamlarında denenmelidir. Böylelikle donanıma gelebilecek zararları en aza indirme amaçlanmaktadır.
İki çeşit simülasyon vardır. Bunlar SITL (Software In The Loop) ve HITL (Hardware In The Loop)’dir. SITL simülasyonlarda hiçbir donanım kullanmadan tasarım, test yapılmaktadır. HITL simülasyonları gerçek uçuşa en yakın simülasyonlardır, çünkü hem donanım hem kod gerçek uçuşta kullanılacak olanlarla aynıdır. HITL simülasyonları uçuş planı ve ayarlamalar (tuning) yapıldıktan sonra gerçekleştirilir. Gerçek uçuştan önceki son adım olarak tanımlayabiliriz. SITL simülasyonu, yerdeki bir bilgisayarda havada çalışacak kodu yürütürken, HITL, sensörlerin ve aktüatörlerin simüle edildiği bir ortamda gerçek donanımda otopilot kodunu çalıştırmanın bir yoludur. HITL’de iki ayrı süreç söz konusudur: Kendi IO’su (örneğin akü voltajı, vb.) ile kontrol kartındaki gerçek otopilot kodu, aktüatör ve sensör modeliyle birleştirilmiş bir uçuş modeli.
SITL HITL
Simülasyon teknolojilerinin bir sürü ayırıcı özelliği vardır. Bunlar kullanım kolaylığı, topluluk desteği, SITL/HITL desteği, kullanılacak modellerin geçerliliği vs şeklinde sıralanabilir. En önemlilerden biri ise ROS arayüzü olup olmamasıdır. ROS (Robot Operating System) ne sorusuna gelecek olursak:
ROS, robotunuz için açık kaynaklı, meta işletim sistemidir. Bir işletim sisteminden bekleyeceğiniz, donanım soyutlama, düşük seviyeli cihaz kontrolü, yaygın olarak kullanılan işlevlerin uygulanması, işlemler arasında mesaj iletme ve paket yönetimi gibi hizmetleri sağlar. Ayrıca birden çok bilgisayarda kod almak, oluşturmak, yazmak ve çalıştırmak için araçlar ve kitaplıklar sağlar. ROS sistem olarak publish-subscribe mesajlaşma modelini kullanarak birbirleri ile iletişim kuran node’ların meydana getirdiği bir mimaridir. Burada düğümden kasıt işlem yapabilen birimlerdir. ROS gibi diğer teknolojilere örnek verecek olursak Player, YARP, Orocos, CARMEN, Orca, MOOS ve Microsoft Robotics Studio gibi robot çerçevelerini söyleyebiliriz.
ROS ile ilgili detaylı bilgi ve farklı kullanım amaçları için:
https://www.youtube.com/watch?v=8QfI5a7lTKU
https://www.youtube.com/watch?v=9c6YltIMBSQ
FlightGear
FlightGear Flight Simulator, FlightGear projesi tarafından 1997’den beri geliştirilen ücretsiz, açık kaynaklı ve çok platformlu bir uçuş simülatörüdür. İHA modelleri harici 3D modelleme uygulaması tarafından oluşturulmalı, XML dosyasında tanımlanmalıdır. FlightGear, FDM’leri kullanır. Bir FDM (Flight Dynamics Model), itme, kaldırma ve sürükleme hava aracına simüle olarak etki edecek kuvvetleri hesaplamak için kullanılan bir dizi matematik denklemidir. FlightGear SITL ve HITL modda kullanılabilir. ROS ile birlikte kullanılmaz.
JMavSim
JMavSim, PX4 tarafından geliştirilmiş bir quadcopter simülatörüdür. SITL ve HITL çalıştırılabilir. ROS desteklidir. Bir otopilot firmasının geliştirdiği bir simülasyon teknolojisi olduğu için bağımlı bir teknoloji olarak sınıflandırabiliriz. Simülasyonda ekstra sensörler, farklı senaryolar eklemek zordur.
AirSim
AirSim programı Epic Games Oyun motorunun icerisinde çalışan bir simulasyon programı. 2017 yılıda Microsoft Research tarafından kurulan ve AI araştırmaları ve deneyleri için kurulan bir simulasyon programı olarak bilinmektedir. Otonom araçlar için derin öğrenme, bilgisayarla görme ve pekiştirme algoritmalarını denemek için AI araştırması için platform olarak geliştirilmiştir. Bu amaçla AirSim, veri almak ve araçları platformdan bağımsız bir şekilde kontrol etmek için API’ler de sunar. Kullanımı oldukça kolay olmakla birlikte github sitesinde oldukça yararlı ve detaylı açıklamalarla kullanıcıya yararlı bir site diyebiliriz. AirSim Simulasyon programında Hava araçları hariçinde kara araçlarını simule etme imkanı bulunmakta. Program kullanıcıya hazır çevre sunması yanında kendisi de bir çevre (environment) oluşturmasını sağlamakta. Kod geliştirmelerini tek bir py dosyasında yapmamızı sağlayarak kullanımını oldukça kolay kılmaktadır. AirSim Simulasyon programı Software in the loop’u destekler ve PX4 yada ArduPilot gibi Fligh Controller’ları da destekler. Aynı zamanda PX4’ü hardware in loop ile fiziksel ve görsel olarak gerçekçi bir simulasyon oluşturmamıza katkı sağlar. Bunu dışında, Simulasyondaki araçla programlı olarak etkileşimde bulunabilmemiz için API’ler sunulmuştur. Bu API’ler RPC(Remote procedure call, Aynı çalışma alanında farklı processleri çalıştırmaya yardımcı olur) aracılığı ile sunulur ve C++, Python, C# ve java dahil olmak üzere çeşitli dillerden erişebilir. ROS arayüzü yoktur ama ROS ile entegre çalışması için kütüphaneler vardır.
Airsim Anlatım videosu:
Tübitak Bilgem YTE Drone ve Robotik yazılımı Birliği Takim-A Airsim anlatım videosu. - YouTube
AirSim Programında kodlanmış Sürü Robotları. Kullanılan algoritmalar arasında tracking algoritması, formasyon algoritması(Üçgen form), Çarpışma engelleme algoritmaı(İtme algoritması) gibi algoritmalar kullanılmıştır.
(5) Tübitak Bilgem YTE Drone ve Robotik Yazılım Birliği Takım-A AirSim Uçuş Videosu. - YouTube
Matlab
MATLAB simulasyon programı bize ne katar?
- Drone çalışması başlamadan önce drone dinamiklerini anlmamaıza yardımcı olur.
- Drone kodlarını drona’a yüklemeden önce modellememizi ve test etmemizi sağlar.
- Test durumlarına göre uyarlanmış sanal ortam oluşturmamıza yardımcı olur.
- Birden fazla test durumları çalıştırıp hızlı bir şekilde test edebiliriz.
MATLAB ve Simulinkde drone simulasyonu oluştururken bu komponentlerden oluşur:
-
Drone dynamic model (Plant Model) Drone’un hareketlerinden oluşan denklem.
-
Drone mantığını modelleyen drone uçuş kontrol modeli
-
GPS ve INS sensörlerini simule etmeye yardımcı olan sensör modelleri
-
Çevreyi belirleyen ve engelleri belirleyen algoritmalar
-
Algoritmaları test etmek ve uçuş davranışını görselleştirmek için oluşturulan sanal ortamlar olan Cuboid World ve Unreal engine gibi simulasyon ortamları
Gazebo
Gazebo ücretsiz ve açık kaynak 3 boyutlu bir robotik simülasyonudur. Açık kaynak Ogre3D görselleştirme aracını kullanır ve kullanıcılara ODE, Simbody, Dart ve Bulle gibi seçebilecekleri fizik motorları sunar. Gazebo HITL ve SITL çalıştırma olanağı sunmaktadır. Çevre ve model oluşturma custom bir XML formatı olan SDF ile kolayca yapılabilmektedir. Ayrıca modeller Inkscape ve Solidworks gibi programlardan da aktarılabilmektedir. Gazebo farklı kütüphaneler kullanarak her işlevin birbirinden bağımsız çalışmasını sağlamaktadır. ROS desteği de sunmaktadır.
X-Plane
X-Plane Laminar Research tarafından geliştirilmiş ücretli ve 3 boyutlu uçuş simülasyonudur. Simülasyon bütün Dünya’yı kapsamaktadır. Asıl amacı uçakların uçuşlarının simüle edilmesi olsa da drone gibi daha küçük araçların uçuşlarının simüle edilmesi amacıyla da kullanılabilmektedir. Eklenti mimarisiyle kullanıcıların yeni modüller eklenmesi de sağlanmaktadır bu sayede fonksiyonelliği artmaktadır. X-Plane HITL ve SITL çalıştırma olanağı sunmaktadır fakat doğrudan ROS desteği yoktur.
Ground Control Station (GCS) Nedir?
Bir İHA sisteminin ikinci komponenti GCS (Ground Control Station)’dır. İnsan kontrolüne olanak sağlar. Görev planlama, pozisyon kontrolü, iletişim ve veri transferi gibi aksiyonları ele alır. Gerçek bir uçuştan önce simülasyon üzerinde ground control station kullanmak gereklidir.
QGroundControl, Mission Planner, UGCS ve MavProxy GCS teknolojilerine örnek olarak verilebilir. Aşağıda bu teknolojilerin kıyaslaması mevcuttur.
Kaynaklar
- Simulation_Tools_Environments_and_Frameworks_for_UAV_Systems_Performance_Analysis
- https://aerocorner.com/blog/types-of-drones/
- https://robocraze.com/blogs/post/drone-part-list
- HITL
- http://wiki.ros.org/ROS/Introduction
- https://microsoft.github.io/AirSim/
- https://ch.mathworks.com/discovery/drone-simulation.html
- https://en.wikipedia.org/wiki/Gazebo_simulator
- https://www.x-plane.com/