Professional Documents
Culture Documents
İSTANBUL ÜNİVERSİTESİ-CERRAHPAŞA
MÜHENDİSLİK FAKÜLTESİ
BİTİRME PROJESİ
DANIŞMAN
Prof. Dr. Fırat KAÇAR
Mayıs, 2019
İSTANBUL
ÖNSÖZ
i
İçindekiler Sayfa No
ÖNSÖZ ............................................................................................................................. i
İÇİNDEKİLER ............................................................................................................... ii
1. GİRİŞ .......................................................................................................................... 1
2. GENEL KISIMLAR .................................................................................................. 2
3. MATERYAL VE YÖNTEM..................................................................................... 3
3.1 OTONOM KARA ARACININ TEMEL PARÇALARI ........................... 3
3.1.1 L298N Çift Motor Sürücü Kartı ............................................................ 3
3.1.2 Arduino Uno Geliştirme Kartı ............................................................... 3
3.1.3 Motor Tekerlek Seti ............................................................................... 4
3.1.4 Devre Tasarımın Oluşturulması ............................................................ 5
3.1.5 Yazılım .................................................................................................. 6
3.2 QUADROTOR’UN TEMEL PARÇALARI ................................................ 6
3.2.1 Şase ....................................................................................................... 6
3.2.2 Kontrol Kartı ........................................................................................ 9
3.2.3 Motor ve Pervane................................................................................ 11
3.2.4 Motor Sürücüsü(ESC) ....................................................................... 12
3.2.5 Batarya (Pil)........................................................................................ 13
3.2.6 Kumanda + Receiver .......................................................................... 13
3.2.7 GPS ..................................................................................................... 15
3.2.8 Telemetre ............................................................................................ 16
3.2.9 Apm Planner 2 .................................................................................... 16
3.2.10 Quadcopter’ın Devre Şeması ............................................................ 17
3.2.11 Raspberry Pi ..................................................................................... 18
3.2.12 Raspberry Pi Kamera Modülü.......................................................... 18
3.3 QUADROTORUN HAREKET MEKANİZMASI ................................... 19
3.3.1 DİKEY HAREKET ....................................................................................................... 19
3.3.2 YALPALAMA HAREKETİ (ROLL) ........................................................... 20
3.3.3 YUNUSLAMA HAREKETİ (PİTCH) .......................................................... 20
3.3.4 Sapma Hareketi (Yaw) ........................................................................ 21
3.4 GÖRÜNTÜ İŞLEME BİRİMİ ................................................................... 22
3.4.1 Python .................................................................................................. 22
3.4.2 OpenCV ............................................................................................... 22
3.5 RASPBERRY PI’YE UZAKTAN BAĞLANTI ....................................... 23
ii
4. BULGULAR ............................................................................................................. 24
5. TARTIŞMA VE SONUÇ ......................................................................................... 25
KAYNAKLAR .............................................................................................................. 26
EKLER .......................................................................................................................... 27
SEMBOLLER VE KISALTMALAR LİSTESİ ............................................... 27
OTONOM KARA ARACININ KODLARI ...................................................... 28
LABİRENT ÇÖZÜMÜNÜN KODLARI ......................................................... 30
RASPBERRY Pİ’DE OPEN CV KURULUMU .............................................. 31
ii
i
1. GİRİŞ
İHA, İnsansız Hava Aracı'nın kısa adıdır. İngilizce karşılığı, Unmanned Air Vehicle
(UAV)’dir. İnsansız hava aracı (İHA) hava akımı ve itici kuvvetlerinden yararlanarak uçabilen
yerden kumanda edilen (RC-Radio Controlled veya Remote Controlled, uzaktan kumandalı) ya
da otonom yani belli bir uçuş planı üzerinden otomatik hareket eden, uçuş için içerisinde bir
pilota ihtiyaç duymayan hava aracı tipidir.
Bu projede yer istasyonundan havalanan insansız hava aracı (projede sözü geçen araç
quadcopterdır) ilgili bölgeye giderek, havadan görüntü alarak haritalama yapar. Elde ettiği
veriler ışığında en uygun rota hesaplanmaya çalışılır. Bizim için en uygun rota minimum sürede
labirenti tamamlayacak yol bilgisidir. Hesaplanan rota insansız kara aracına gönderilir.
Aracımız elindeki veriler ışığında otonom bir şekilde alandan çıkmaya çalışır.
1
2. GENEL KISIMLAR
İnsansız hava araçları; sabit kanatlı ve pervaneli olmak üzere 2’ye ayrılır. Pervaneli
insansız hava araçlarına drone da denmektedir. Uzaktan kontrol edebilen ve belli bir uçuş planı
üzerinde otomatik hareket edebilen araçlardır. Savunma alanında daha iyi istihbarat ve daha iyi
arazi kontrolü yapabilmek adına birçok İHA modeli geliştirilmiştir.
Bu projede yer alan Quadcopter 4 rotora sahip ve 3 eksen (X, Y, Z) üzerinde 9 serbestlik
derecesine sahiptir. İlk defa drone yaptığımız için koyacağımız malzemelerin ağırlık
merkezlerinin yerlerinin farkından oluşabilecek dengesizliğinden fazla etkilenmemek adına X
tipi drone şasesi kullandık. Böylece çeviklik ve hız açısından olumlu etkiler
gözlemleyebileceğiz. Şase üzerindeki güç kartına esc ve motorların bağlantılarını
gerçekleştirdikten sonra bağlantılarımızın kontrolü için kısa devre testi yaptık. Herhangi bir
problem ile karşılaşmadığımızdan ötürü esclerin kullandığımız kontrol kartı olan arducoptera
bağlantılarını gerçekleştirdik. Arducopter içerisinde ivmeölçer, jiroskop sensörü, manyetometre
sensörü (pusula), barometrik basınç sensörü gibi drone’un etkili bir şekilde uçması için gerekli
sensörler yer alır. Arducopter içersinde gps olmadığından harici bir gps bağladık. Drone’umuzu
uzaktan kablosuz bir şekilde kullanabilmek ve daha sonraki evrelerde görüntüişleme ve kara
aracına sinyal yollamak için en az 6 kanala sahip kumandaya ihtiyacımız vardır. Kumandanın
alıcısının düzgün çalışıp çalışmadığını kontrol etmek için esc motorlarını teker teker takıp
kumandadan sinyal yolladık. Herhangi bir problemle karşılaşmadıktan sonra alıcı ile
arducopterı arasındaki bağlantı yapıldı. Ekipmanlarımızın monte ettikten sonra drone’un
düzgün uçabilmesi için gerekli kalibrasyon işlemlerini yapabilmek için iha ile bilgisayar
arasındaki bağlantıyı usb kablosu ile gerçekleştirdik. İlerleyen zamanlarda bilgisayar ile drone
arasında bağlantıyı kablosuz bir şekilde gerçekleştirmek için telemetre kullanılacaktır.
İha sistemi; yer kontrol istasyonu ve araçolmak üzere ikiye ayrılır. Drone’a temel uçma
işlemini yapabilmesi gerekli olan materyalleri takıldıktan sonra apm yazılımı ile elektronik
cihazların kalibrasyon işlemlerini yapıldı. Apm programında uygun olan drone iskeleti
seçilerek takılı ekipmanlar seçilir, kullanılan kumandanın modu ayarlanılır. Gps’in
kalibrasyonunun yapılabilmesi açık alana çıkarılması gereklidir. Kalibrasyon işleminin düzgün
yapılası son derece önemlidir. Çünkü düzgün kalibrasyonu yapılmamış olan sensörü drone
algılayamayacağından drone motorlara sinyal yollamayacaktır. Bu nedenle havalanmayacaktır.
Quadcopter üzerinde bulunan raspberry pi kamera modülü ile labirentin net bir şekilde
fotoğrafı çekilecektir. Çekilen fotoğraf raspberry pi içerisinde bulunan pyhton programlama
dilinin bir kütüphanesi olan opencv işlenerek çıkışa giden en kısa rota bulunacaktır. Rasperry
pi’ye uzaktan erişerek otonom kara aracı için rota bilgisi anlamlı hale getirilerek kara aracına
iletilecek. Böylece labirent içerisinde engellerden kaçınılmış ve daha kısa zamanda hedefe
ulaşılmış olunacaktır.
2
3. MATERYAL VE YÖNTEM
L298N motor sürücüdevresi (Şekil 3.1) aracılığı ile iki ayrı DC motor kontrol edilebilir.
Çalışma prensipleri çok basittir. Motoru besleyeceğimiz gerilim entegrenin VCC bacağına
bağlanır. GND bacağı ise toprak hattına bağlanır. Motor A ve Motor B bacaklarından DC motor
bağlantıları yapılır.IN1 ve IN2 bacaklarından mantıksal “0” veya “1” uygulanarak motorun
hareket yönü belirlenir. Aynı işlem diğer motor için IN3 ve IN4 bacaklarından yapılır. ENA
bacağına 0V ile 5V arası gerilim uygulanarak motorun hızı belirlenebilir. Aynı işlem diğer
motor için ENB bacağından gerçekleştirilir.
Arduino Uno (Şekil 3.3) ATmega 328 tabanlı bir mikroişlemci geliştirme kartıdır. Kart,
14 adet dijital giriş/çıkış bağlantısına (bunların 6 tanesi PWM çıkışı olarak
kullanılabilmektedir), 6 analog girişe, 16 Mhz kristal osilatöre, USB bağlantısına, güç
bağlantısına, ICSP bağlantısına ve reset tuşuna sahiptir. Bilgisayar ile USB portu üzerinden
bağlanması kartın çalışması için yeterlidir. Buna ilaveten pil ya da adaptör ile de
kullanılabilmektedir.
3
Arduino geliştirme kartı üzerindeki mikroişlemci (AtmegaXX) Arduino programlama
dili ile programlanır ve bu program Processing tabanlı Arduino Yazılım Geliştirme Ortamı (IDE)
yardımı ile karta yüklenir.
6V gerilim ile çalışan ve 250 RPM hıza ulaşabilen DC motor ile çalışır (Şekil 3.4).
Basit uygulamalarda ve projelerde kullanılmak üzere tekerlek ile set halinde olarak
hazırlanmıştır. İki yönlü dönebilirler kullanılışı çok basittir verilen potansiyel farka göre hız
üretirler.
4
3.1.4 Devre Tasarımının Oluşturulması
Devre simülasyonu (Şekil 3.5) Proteus programı ile oluşturulmuştur. Böylece devreyi
somut olarak gerçekleştirmeden önceden olası bir istenmeyen durumun malzemelere zarar
vermeden önce gözlemlenebilmiştir. Böylece elektronik tabanlı projelerde prototipten üretime
geçerken üretim maliyetlerini azaltıp ortaya çıkabilecek fiziksel sorunları en aza indirebiliriz.
Proteus açık kaynaklı bir programdır. Çoğu işletim sistemi bu programı
desteklemektedir.
Malzemelerin açıklamalarındaki bilgiler ışığında şekildeki gibi bir devre şeması
oluşturulmuştur.
5
3.1.5 Yazılım
Motor uygulanan gerilim ile iki yönlü dönme sağlayabilir. Aracımıza yön verme
işlemini bu şekilde yapacağız. Motorlar ileri yönlü dönme yaptığında ileri, motorlar geri yönlü
döndüğünde araç geri hareketi yapacaktır. Aracın sağa dönmesi için sağ motor geri sol motor
ileri dönmeli bu şekilde aracın sağa dönmesi sağlanır. Aracın sola dönmesi için ise sağ dönme
hareketinin tersi sol motor geri sağ motor ileri dönmelidir. Bu dönme hareketlerine araç motor
sürücüden aldığı logic 0’lar ve 1’ler sayesinde yapar.
Opencv ortamında labirentin çözümün çıktısı şekildeki gibi olacaktır. Labirentin gerçek
en ve boy uzunluğu ve otonom kara aracının hızı bilindiğinden Yol=Hız*Zaman formülünden
otonom kara aracımızın kodlarını zamana göre değiştirerek oluşturduk. Araç için gerekli
yazılımlar arduino ide ortamında hazırlanmış olup, kodun tamamı ek-2’dedir.
1) Şase
2) Kontrol kartı
3) Motor ve Pervane
4) Motor sürücüsü(ESC)
5) Batarya
6) Kumanda
7) GPS
8) Telemetre
3.2.1 Şase
6
BOYUTLAR
130-280 boyutları arası en çok kullanılan boyutlardır. Aşağıdaki görselde A-B harfleri
arasında ki uzaklık şasenin sınıfını belirler. Milimetre cinsinden telaffuz edilir. Yani A-B arası
250mm ise 250 sınıfı bir multikopteriniz vardır (Şekil 3.6).
7
FİZİKSEL GÖRÜNÜŞE GÖRE ŞASE TİPLERİ
Temel olarak X ve H olarak ikiye ayrılır:
8
3.2.2 Kontrol Kartı
Bu birim sistemin beynidir ve tüm dengede kalma, kumanda verisi okuma, batarya
kontrolü gibi kritik işlemler bu birim sayesinde gerçekleştirilmektedir. Bu kapsamda sistem
üzerindeki en kritik parçadır. Temel görevi denetim birimi ve algılayıcılardan gelen bilgiyi alma,
işleme ve gerekli şekilde çıkışa aktarmaktır.
Kontrol kartları, yine multikopterin kullanım amacına göre farklı özelliklerde ve farklı
sensörlere sahip olabilmektedir. Bir kontrol kartının olmazsa olmazı jiroskop sensörüdür.
Bunun yanında ivmeölçer barındıran kartlar otomatik denge yeteneğine de sahip olur.
Barometre sensörü bulunduran kartlar kullanılırsa, drone’un sabit bir irtifada kalabilmesi
sağlanır. İleri seviye kartlarda GPS bulunur ve bu sayede drone, bilgisayarda harita üzerinde
belirlenen rotaya bağlı kalarak otonom uçuş gerçekleştirebilir, kumanda ile uçulduğunda menzil
aşılma durumunda kalkış yaptığı yere geri dönebilir (return to home).
9
ARDUCOPTER
APM 2.6 açık kaynaklı bir otopilot sistemidir (Şekil 3.10). Uçak, helikopter, multikopter
veya tekerlekli araçları tam otonom çalışmasını sağlar. Özellikle multikopterler için çok güçlü
bir kontrolcüdür. Kartın bu sürümü dâhili bir pusulaya sahip değildir. Manyetik alandan
etkilenen kolayca etkilenen pusulanın harici olarak bağlanması sayesinde, manyetik alanın
dışına monte edilebilir bir hal almıştır. Özellikle multikopter tasarımları için bu özellik çok
hayati bir önem arz etmektedir. APM 2.6 modülüne güçbağlantısı yaptıktan sonra herhangi bir
modül bağlayıp çıkarmayınız aksi takdirde kart içinde dahili olarak bulunan regülatör
yanabilmektedir ve bu hata garanti kapsamı dışındadır.
Özellikler:
10
3.2.3 Motor ve Pervane
Motor seçiminde motorun itiş gücü önemli bir faktördür. Seçilen motorun itiş gücüne
karar verebilmek için bilinmesi gereken en önemli husus bitmiş haldeki multikopterin, uçuş
sırasındaki toplam ağırlığının ne kadar olacağıdır. Gövde, pervaneler, piller, kartlar, ESC ‘ler,
kablolar, motorlar, eğer varsa FPV donanımları dâhil uçuş sırasındaki toplam ağırlık, AUW
(All-Up-Weight) olarak adlandırılır.
AUW (toplam ağırlık) hesaplandıktan sonra gerekli itiş gücü hesaplanır. Multikopter‘ler
uçaklar gibi kanatların taşıması sonucu değil saf olarak pervanelerin itişi sayesinde
havalanabilirler. Eğer itiş gücü, multikopter ’in ağırlığına eşit olursa multikopter havalanamaz
ya da sadece olduğu yerde durur. Multikopter ’in havalanabilmesi için yerçekimini yenebilmesi
ve bunun üstüne hala itiş kuvveti uygulayabiliyor olması gerekmektedir.
Motor seçiminde fırçasız DC motor tercih edilir. Bu alanda kullanılmalarının ana
sebeplerinden biri diğer motorlara göre yüksek performans sergilemeleridir. Fırçasız motorların
(Şekil 3.11) diğer motorlara göre daha sessiz çalışma, elektriksel gürültü oluşturmama, daha
kolay bakım, daha uzun ömür, daha hızlı çalışma ve daha güçlü torklara sahip olma gibi
avantajları vardır.
11
Şekil 3.12’de görüldüğü gibi quadcopterlarda 2 farklı dönüş yönüne sahip pervane
kullanılır. Bunun sebebi gövde üzerinde oluşabilecek anti tork etkisini yok etmektir.
Motorların 2 farklı yöne düzgünce dönebilmesi için hem pervane yönleri hem de esc-
motor bağlantılarının ters olması gerekmektedir.
Fırçalı ve fırçasız motorların hızını ayarlayan, hız kontrol ünitesidir. Diğer bir ifade ile
pilden aldıkları elektrik enerjisini, alıcının gaz kanalından aldığı sinyal ile sürerek motorlara
ileten ve motor devrini kontrol eden hız kontrolcüleridir. Motor fazla akım çektiğinde motorun
yanmaması için akımı keserek motoru durdurur. Bir diğer önemli görevi ise pil belli bir voltajın
altına düştüğünde motora giden akımı keserek pilin tehlikeli sınırın altında boşalmasını
önlemektir. En önemli seçim ESC’nin amperine bağlı olarak değişir. ESC maksimum amperi
verebilmeli, hatta biraz daha üstünü de verebilmeli ama daha fazlasına izin vermemelidir.
Örneğin motor 20 saniye süreyle 35A akım çekmeye dayanıyorsa ESC’yi 40A seçmek yeterli
olacaktır.
ESC’lerin birbirinin aynısı olması denge açısından çok önemlidir. ESC 'lerin yazılımı
SimonK/BLHeli bile olsa, ESC’lerin PCB ve FET’lerin farklı olması, ESC’lerin birbirinden
farklı davranmasına yol açar. ESC 'ler, SimonK/BLHeli yazılımının sürümü de dâhil olmak
üzere tamamı ile birbirinin aynısı olmalıdır. İstatistik olarak en çok kazaya sebep veren parçadır,
bu sebeple yüksek kaliteli ve önerilen ürünlerin kullanılması önemlidir.
Quadrotor’larda kullanılan fırçasız motorların devir hızları 10000 rpm (Revolutions per
minute – 1 dakika içerisinde gerçekleştirilen dönüş/devir sayısı) civarlarında olmaktadır.
Yüksek rpm sebebiyle fırçasız motorlar yüksek akım veren ve yüksek kapasiteye sahip pillere
ihtiyaçduymaktadırlar. Li-po (lityum-polimer) piller yüksek akım ve yüksek kapasite ihtiyacını
en yüksek verimde karşılayan besleme kaynaklarıdır.
Pilin kapasitesi ve ağırlığı doğru oranda artmaktadır. Çok ağır pil model uçak
kanatlarının taşımayacağı kadar ağır olabilir. Pilin voltajı, motorun özelliklerine göre ve
istenilen devire göre ayarlanır.
Kullanılan pervanenin belirlenen voltaja uygun olması gerekir. Genellikle tercih edilen
11.V = 3S (Şekil 3.14) lipolardır. Amperi ise model uçağın taşıyabileceği, güvenli uçabileceği
ağırlığı geçmeyecek büyüklükte seçilir.
Pilde dikkat edilmesi gereken değer “C” değeridir. Lipoların üzerinde 15C, 20C, 30C
gibi değerler vardır. Bu C değerini pilin amperi ile çarpıldığında liponun anlık olarak
verebileceği amper değeri ortaya çıkar. Örneğin 2200mA 20C lipo (2200×20=44,000) 44A
akım verir. Motor maksimum 35A çekiyorsa, ESC 40A ise bu 44A verebilen pil uçuş sırasında
ısınmadan yeterli beslemeyi sağlayacaktır. Düşük C değerli lipolar kullanılır ise pil ısınır,
yıpranır ve çabuk bozulur.
Kumanda denilince bir verici (Tx) (Şekil 3.17), bir alıcı (Rx) (Şekil 3.18) akla gelmelidir.
Bu projede kullandığımız sistem Spread Spectrum olarak adlandırılan 2.4GHz
13
sistemlerdir. Bu sistemlerde verici ve alıcı birbirine kilitlenip dışarıdan gelen sinyallerden
etkilenmez.
Kullandığımız kanallar:
1- Throttle: Throttle ile uçağın motoru ile üretilen itki kuvveti kontrol edilir ki bu da uçağın daha
hızlı ya da daha yavaş gitmesine olanak sağlar.
3- Aileron: Aileronlar, uçağın dönme hareketini kontrol eder. Çalışma prensipleri elevatörler ile
aynıdır.
14
Kumandalardaki modlar temel olarak aynı işlemi yapar. Sadece mod numarası
değiştikçe sticklerin yaptığı işlerin yeri değişir. Yaygın olarak ülkemizde mode 2 kullanılır.
Kumandaki çeşitli modlardaki stick komutlarını şekil 3.20’de gösterilmiştir.
3.2.7 GPS
GPS (Şekil 3.21) alıcısı ile multikopter dünya üzerinde bulunduğu enlem boylam
bilgisini alır ve bu sayede belli bir enlem boylamda sabitleme yapılabilir. İstenilen
koordinatlarda (waypoint) uçması sağlanabilir veya bulunduğu noktadan ilk kalkış yaptığı
yere geri dönmesi sağlanabilir (return to home özelliği). Gps bağlantısı arducopter üzerinde
kendine ait pini vardır. Gps, arducopter içindeki sensörlerin mayetik alanlarından
etkilenmemek için genellikle bir çubuk ile daha yüksek bir yere sabitlenir. Gps monte edilirken
dikkat edilmesi bir gereken husus ise gps ile arducopter ve dronun önü aynı yöne bakmalıdır.
15
3.2.8 Telemetre
Telemetre (Şekil 3.22), herhangi bir sistemin ulaşılamayan bir kısmının uzaktan kablolu
veya kablosuz olarak izlenmesi veya kontrol edilmesidir. Telemetre kelimesi Yunanca ’dan
türetilmiştir. Tele: Uzak ve Metron: Ölçü kelimelerinden oluşmaktadır. Bir telemetre sensörü,
bir iletim yolu, görüntü, kayıt veya kontrol aygıtından oluşur. Bir aygıtı yer istasyonuna
(bilgisayar) diğer ucu ise arducoptera takılır.
Şekil 3.22: Telemetre ground modülü Şekil 3.23: Drona takılan telemetre modülü
16
Şekil 3.24: Apm planner ekran görüntüsü
3.2.11 Raspberry Pi
18
3.3 QUADROTORUN HAREKET MEKANİZMASI
1) Dikey Hareketi
2) Yalpalama Hareketi (Roll)
3) Yunuslama Hareketi (Pitch)
4) Sapma Hareketi (Yaw)
Şekil 3.27: Quadrotor Uçuş Eksenleri (Yaw, Pitch, Roll, Altitude) [13]
İtme hareketinde hava aracı düzgün bir şekilde havalanıp irtifa kazanır, kaybeder veya
havada asılı kalır. Bütün rotorların hızları aynı miktarda değiştirilerek yerçekimi yenilip araç
irtifa kazanabilir, yerçekimi kuvveti ile eşitlenerek havada sabit kalabilir ya da toplam kaldırma
yerçekiminin altına indirilerek irtifa kaybedilebilir.
19
3.3.2 YALPALAMA HAREKETİ (ROLL)
Yalpalama hareketinde araçXb ekseni etrafında döner. Bu hareketi elde etmek için 2.
Ve 4. rotorun hızları arasında bir fark yaratmak gerekir. Bu hız farkı rotorların kaldırma
kuvvetleri arasında bir farka neden olacaktır ve daha yavaş dönen rotorun bulunduğu taraf
ağırlık merkezinin altına doğru yönelirken, hızlı dönen rotorun tarafı yukarı eğilecektir. Eğer
bu hareket esnasında aracın dikey yönde hareket etmemesi isteniyorsa, rotorlardaki hız
değişiklikleri toplam kaldırma kuvveti değişmeyecek bir şekilde ayarlanmalıdır.
Yunuslama hareketinde araçYb ekseni etrafında döner. Bu hareketi elde etmek için 1.
ve 3. rotorların hızları arasında bir fark yaratmak gerekir. Bu hız farkı rotorların kaldırma
kuvvetleri arasında bir farka neden olacaktır ve daha yavaş dönen rotorun bulunduğu taraf
ağırlık merkezinin altına doğru yönelirken, hızlı dönen rotorun tarafı yukarı doğru eğilecektir.
Yalpalama hareketinde olduğu gibi, eğer bu hareket sırasında aracın dikey yönde hareket
etmemesi isteniyorsa, rotordaki hız değişiklikleri toplam kaldırma kuvveti değişmeyecek
şekilde ayarlanmalıdır.
20
3.3.4 SAPMA HAREKETİ (YAW)
Sapma hareketinde araç Zb ekseni etrafında döner. Bu hareketi elde etmek için 1. ve 3.
rotorların toplam hızları ile 2. ve 4. rotorların toplam hızları arasında bir fark oluşturulmalıdır.
Bu rotor çiftleri birbirine zıt yönlerde döndükleri için, aracı zıt yönde döndürmeye çalışan
torklar üretmektedirler. Bu torklar birbirine eşit oldukları sürece araç Zb ekseni etrafında
dönmez. Eğer rotorların ürettikleri torklar T1, T2, T3 ve T4 olarak adlandırılırsa: T1 + T2 – T3
– T4 ≠ 0 olduğu sürece araç Zb ekseni etrafında dönecektir.
Şekil 3.32: Quadrotorun Yapacağı Harekete Göre Motorların Dönme Yönleri [13]
21
3.4 GÖRÜNTÜ İŞLEME BİRİMİ
3.4.1 Python
Yorumlanan ve dinamik bir dil olan Python, esas olarak nesne tabanlı programlama
yaklaşımlarını ve belli bir oranda da fonksiyonel programlamayı desteklemektedir. Kolay
öğrenilen bir programlama dilidir ve kodun okunulabilirliği ön plandadır. Böylece geliştirmeye
açıktır. Çok geniş devamlı gelişen kütüphanelere sahiptir. Özellikle yapay zeka işlemleri ve
örneklendirmeleri için önemli bir kriterdir. C ve C++ ile ek modüllerde yazılabilir. Ekstra
araçlarla kodu derleyip çalıştırmak da mümkündür.
Açık kaynak kod olarak İnternet’ten ücretsiz ve herhangi bir lisans sorunu yaşanmadan
indirilebilmektedir. Dolayısıyla bilimsel hesaplama derslerindeki tüm öğrenciler istedikleri her
yerde bu araçları serbestçe kullanabilmektedir.
3.4.2 OpenCV
OpenCV (Open Source Computer Vision) açık kaynak kodlu görüntü işleme kütüphanesidir.
Open source yani açık kaynak kodlu bir kütüphanedir ve BSD lisansı ile altında geliştirilmektedir.
BSD lisansına sahip olması bu kütüphaneyi istediğiniz projede ücretsiz olarak kullanabileceğiniz
anlamına gelmektedir. OpenCV platform bağımsız bir kütüphanedir, bu sayede Windows, Linux,
FreeBSD, Android, Mac OS ve iOS platformlarında çalışabilmektedir. C++, C, Python, Java,
Matlab, EmguCV kütüphanesi aracılığıyla da Visual Basic.Net, C# ve Visual C++ dilleri ile
topluluklar tarafından geliştirilen farklı wrapperlar aracılığıyla Perl ve Ruby programlama dilleri
ile kolaylıkla OpenCV uygulamaları geliştirilebilir.
Rasperry Pi cihazına Open CV kurulumunu komut ekranı aracılığıyla ile yapılmaktadır. Adımlar
açıklamalarıyla ek-4’de yer almaktadır. OpenCv’de yer alan bazı özel komutlar:
22
● Imgcodecs: Dosya sistemi üzerinden resim ve video okuma/yazma işlemlerini yerine getiren
metotları barındırmaktadır.
Raspberry pi'ye VNC, SSH, TTL adında çeşitli uzaktan bağlantı yöntemleri vardır.
Projemizde ise en kolay yöntemlerden biri olan Şekil 3.33’deki gibi VNC’yi kullandık. VNC
(Virtual Network Computing) herhangi bir ağ sunucusu üzerinde çalışan grafik arayüz
uygulamalarına (Raspberry Pi) herhangi bir başka ağ üzerindeki bir bilgisayardan kolaylıkla ve
hızla erişerek bu uygulamaları kullanabilmemizi ve yönetmemizi sağlayan bağımsız ve açık
kaynak kodlu bir uygulamadır. Bağlantı süresince her iki ağında internete bağlı olması
gerekmektedir. Alttaki şekillerde Raspberry pi’mize bağlanarak uzaktan 60 saniyelik bir video
kaydı oluşturduk.
23
3. BULGULAR
24
4. TARTIŞMA VE SONUÇ
25
KAYNAKLAR
26
EKLER
27
2- Otonom Kara Aracının Kodları
28
29
3- OpenCv’de Labirent Çözüm Kodları
30
4- Raspberry Pi’de Open CV Kurulumu
1. sudo rpi-update
31
Adım 5: OpenCV 3.4.1 ve OpenCV'yi içeren arşivleri indirme
1. cd ~
2. wget -O opencv.zip
https://github.com/Itseez/opencv/archive/3.4.1.zip
3. Wget -O opencv_contrib.zip
https://github.com/Itseez/opencv_contrib/archive/3.4.1.zip
4. unzip opencv.zip
5. unzip opencv_contrib.zip
1. cd ~/opencv-3.4.1/
2. mkdir build
3. cd build
4. cmake -D CMAKE_BUILD_TYPE=RELEASE \
5. -D CMAKE_INSTALL_PREFIX=/usr/local \
6. -D INSTALL_PYTHON_EXAMPLES=ON \
7. -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.4.1/modules \
8. -D ENABLE_PRECOMPILED_HEADERS=OFF \
9. -D BUILD_EXAMPLES=ON ..
32
değiştirin.Düzenlenmiş dosyayı kaydedin ve hizmeti yeniden başlatmak için aşağıdaki
komutları kullanarak yeni takas alanını etkinleştirin
Pinizde bir metin dosyası açın ve bunu .py uzatısı ile kaydedin bu metin dosyasının içine
aşağıdaki kodu yapıştırın ve klavyenizden ‘F5’ tuşuna basın .
1. import cv2
2. cv2.__version__
Eğer açılan pencerede şekil 5.1’deki versiyon ‘3.4.1’ yazılı ise yükleme başarılı demektir.
33
34