konu: gÖrÜntÜ İŞleme tabanli 4+1 …teknolojİ fakÜltesİ elektrİk-elektronİk...
Post on 21-Jan-2020
37 Views
Preview:
TRANSCRIPT
TEKNOLOJİ FAKÜLTESİ
ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ BÖLÜMÜ
EEM TASARIMI RAPORU
KONU: GÖRÜNTÜ İŞLEME TABANLI 4+1
EKSENROBOT KOL TASARIMI
G120900027 Burak YALIM
G120900054 Yunus Emre SİNEKOĞLU
G120900039 Alp Tuğrul KURT
Prof.Dr. Raşit KÖKER
Aralık 2016
SAKARYA
ii
ÖNSÖZ
Çalışmalarımız boyunca bize her türlü konuda destek veren danışman hocamız
Sayın Prof.Dr. Raşit KÖKER’e, bize kaynak desteği sağlayan Arş.Gör. Murat Erhan
ÇİMEN hocamıza, bize her türlü desteği sağlayan Samet KEBELİ’yeteşekkür ederiz.
Bölüm olanaklarının Bitirme Çalışmalarında kullanılmasına izin verdiği için
Bölüm başkanlığına, desteklerinden dolayı Teknoloji Fakültesi Dekanlığına ve Sakarya
Üniversitesi Rektörlüğüne de teşekkür ederiz.
Ayrıca hayatımız boyunca ve eğitimimiz süresince bize destek veren ailelerimize
teşekkürü borç biliriz.
Aralık 2016
Sakarya
Burak YALIM
Yunus Emre SİNEKOĞLU
Alp Tuğrul KURT
iii
İÇİNDEKİLER
Sayfa
Elektrik Elektronik Mühendisliği Tasarımı Onay Formu ……………………… i
Önsöz ……………………… ii
İçindekiler ……………………… iii
Özet ……………………… vii
Şekiller Listesi ……………………… viii
Tablolar Listesi ……………………… xi
1. GİRİŞ ...................................................................................................................... 1
1.1 Temel Bilgiler ................................................................................................. 1
1.2 Literatür Araştırması ....................................................................................... 3
1.3 Özgünlük ......................................................................................................... 5
1.4 Yaygın Etki ..................................................................................................... 6
1.5 Standartlar………….. ..................................................................................... 6
1.6 Çalışma Takvimi ............................................................................................. 8
2.TEORİK ALTYAPI ................................................................................................ 9
2.1 Genel Bilgiler ................................................................................................. 9
2.2 Robotların Sınıflandırması ........................................................................... 11
2.2.1 Robot Hareketinin Eksenleri ................................................................. 11
2.2.2 Çalışma Alanı ........................................................................................ 11
2.2.3 Manipülatörün Yapısına Göre Sınıflandırma ........................................ 12
2.2.3.1 Silindirik Koordinat Sistemi .......................................................... 14
2.2.3.2 Küresel Koordinat Sistemi ............................................................ 16
2.2.3.3 Döner Koordinat Sistemi ............................................................... 17
2.2.4 Robot Tiplerine Göre Sınıflandırma ..................................................... 19
2.2.4.1 Kartezyen Robotlar ........................................................................ 19
iv
2.2.4.2 Mafsallı Robotlar ........................................................................... 20
2.2.4.2.1 Mafsallı Robotların Özellikleri .............................................. 21
2.2.4.3 Scara Robotlar ............................................................................... 22
2.2.4.3.1 Scara Tipi Robotların Özellikleri ........................................... 22
2.2.4.3.2 Scara Tipi Robotların Yapısı ................................................. 23
2.2.5 Hareket Sistemine Göre Sınıflandırma ................................................... 24
2.2.5.1 Noktadan Noktaya Hareket Eden Robot Sistemleri ...................... 25
2.2.5.2 Sürekli Güzergâhlı Robot Sistemleri ............................................. 25
2.2.6 Kontrol Döngüsü Tipine Göre Sınıflandırma ......................................... 26
2.2.6.1 Açık Döngü Kontrol Sistemi ........................................................... 26
2.2.6.2 Kapalı Döngü Kontrol Sistemi ........................................................ 27
2.3 Tutucular ........................................................................................................27
2.3.1 Mekanik El ...............................................................................................29
2.3.2 Vakumlu Tutucular ..................................................................................29
2.3.3 Manyetik Tutucular ..................................................................................30
2.4 Robotla İlişkili Matris Matematiği ..............................................................30
2.4.1 Koordinat Sistemleri .............................................................................30
2.4.2 Matris Matematiği .................................................................................34
2.5 Robot Programlama .....................................................................................36
2.5.1 Öğreti Yöntemi......................................................................................36
2.5.2 Ara Yüz Programı İle Programlama .....................................................37
3.TASARIM ........................................................................................................38
3.1 Robot Kolu Kinematiği ......................................................................................38
3.1.1 Robot Kolu Kinematiği Genel Özellikleri ............................................... 38
3.1.2 Genel Bir Robot Kolu İçin Koordinat Çerçeveleri ve Transformasyon
Matrisleri ............................................................................................................... 38
3.1.3 Robot Kolumuzun Eksen Görünümü ....................................................... 42
v
3.2.4D & H (Denavit ve Hartenberg) Tablosu.................................................. 43
3.3.5D & H (Denavit ve Hartenberg) Koordinat Çerçeveleri ........................... 44
3.4.6 İleri Kinematik ......................................................................................... 45
3.4.7Ters Kinematik ......................................................................................... 47
3.2 Robot Kolunun Tahrik Elemanları ve Montajı ................................................ 49
3.2.1 RC Servo Motorlar ................................................................................49
3.2.2 PWM .....................................................................................................51
3.3 Robot Kolu Mekanik Tasarımı............................................................................52
3.3.1 Robot Kolunun Mekanik Elemanları .....................................................54
3.3.1.1 Robot Kolunun Taban Bölümü .....................................................56
3.3.1.2 Robot Kolunun Omuz Bölümü ......................................................59
3.3.1.3 Robot Kolunun Kol Bölümü .........................................................61
3.3.1.4 Robot Kolunun Uç Etkileyici Bölümü ..........................................65
3.3.1.5 Robot Kolunun Montajının Tamamlanması ..................................65
4.SİMÜLASYON ÇALIŞMALARI .........................................................................67
4.1 Giriş ........................................................................................................67
4.2 Görüntü Kavramları ........................................................................................67
4.2.1 İmge Kavramı ........................................................................................67
4.2.2 İmgenin Oluşturulması ...........................................................................68
4.2.3 Sayısal İmge Kavramı ............................................................................68
4.2.4 Sayısal İmge: Sayısala Dönüştürme .......................................................69
4.2.5 Sayısal İmgede Piksel Kavramı ...............................................................70
4.2.6 Sayısal İmgede Örnekleme ....................................................................71
4.2.7 İmge Dosyaları .......................................................................................71
4.3 OpenCV ........................................................................................................71
4.3.1 OpenCV Yapıları ve Kapsamları ............................................................73
4.3.2 OpenCV'de İlk Program ..........................................................................74
4.3.3 Ağırlık Merkezi Koordinatları Bulma .....................................................77
4.3.3.1 Boş Matrisleri Atama .........................................................................78
vi
4.3.3.2 1 ve 0 Pencere Operatörleriyle Resimi Basitleştirme .....................79
4.3.3.3 Resimde Yatay Sürekliliği Kontrol Etme ve Bulma .......................80
4.3.3.4 Resimde Dikey Sürekliliği Kontrol Etme ve Bulma .......................81
4.3.3.5 Süreklilik Matrislerini Toplama ve Koordinat Bulma ....................82
4.4 Mikrodenetleyiciler ...........................................................................................89
4.4.1 Arduino ......................................................................................................87
4.4.1.1 Arduino Mega 2560 ...................................................................88
4.4.1.2 Rasppery Pi ...............................................................................92
4.5 Robot Kontrol Genel Blok Diagramı ...................................................................94
5. SONUÇLAR ......................................................................................................... 95
5.1 Tasarımın Amacı ................................................................................................. 95
5.2 Yapılan Çalışmalar .............................................................................................. 95
5.3 Robot Kolunun Eksileri ve Artıları ..................................................................... 96
5.4 Maaliyet............................................................................................................... 96
KAYNAKÇA……………………………………………………………………….97
EKLER……………………………………………………………………………100
EK-1 Standartlar ve Kısıtlar Formu…………………………….100
EK-2 IEEE Etik Kuralları………………………………………104
EK-3 Görüntü İşleme Algoritması……………………………...107
vii
ÖZET
Bu projede, 4+1 eksen ve bir adet tutucuya sahip, mikroişlemciler ailesinden
Arduino ile kontrol edilen bir robot manipülatör ve robot manipülatöre OpenCV(Open
Computer Vision Library) kütüphanesi kullanılarak görüntü işleme yeteneği
kazandırmak amaçlanmıştır.
Günümüzde endüstriyel teknolojimizde objelerin taşınırken toplanmasında
robotlara ihtiyaç vardır.Seri üretim endüstri alanlarında milimetrik işlemler sadece robot
kolları ile yapılabilmektedir.İşlemin nerede veya hangi koordinat da yapılacağının
bulunması önemli bir problemdir.Bu problem görüntü işleme teknikleriyle çözülebilir.
Bu projenin çalışma prensibi, platform üzerinde belirttiğimiz cismi görüntü
işleme ve robot kol kontrolü teknikleriyle olmaktadır.Platform üzerindeki obje miktarı
önemli değildir.Robot kol, objeleri bulup platformun yakınında belirttiğimiz bir kutuya
koyar.Platform üzerindeki objelerin koordinatları platform üzerinde duran bir kamera
sayesinde belirlenir.Bir buton ile fotoğraf kaydedilir.Daha sonra kaydedilen fotoğraf
yazılan kodlarla işlenir ve objelerin merkez koordinatları Raspberry Pi mikrobilgisayarın
da bulunur.Raspberry Pi bu koordinatları robot kontrolünü sağlayan mikroişlemci
Arduino’ya gönderir.Arduino robot kolunu kontrol ederek objeyi alıyor.
Sistem bu tavırda tasarlandı ve iyi çalışıyor.Bu projeyle, objelerin bir yerden
başka bir yere taşınabilecektir.Projenin görüntü işleme parçaları objelerin yerlerini
algılayacaktır.
Robot manipülatörün tasarımı için Dassult Systemes firmasının SolidWorks
programı kullanılmıştır.Robot kolunun gövdesinin ve uzuvlarının oluşturulmasında
pleksiglas ve alüminyum malzemeler seçilmiştir.
viii
ŞEKİLLER LİSTESİ
Şekil 2.1 İnsan kolu ile mafsallı robotun çalışma alanları arasındaki benzerlik..............11
Şekil 2.2 Kartezyen Koordinat Sistemine Ait Şematik Çizim.........................................12
Şekil 2. 3 Kartezyen Robot..............................................................................................13
Şekil 2.4 Kartezyen Eksenler...........................................................................................13
Şekil 2.5 Silindirik Koordinat Sistemi.............................................................................14
Şekil 2.6. Silindirik Koordinat Sistemli Robotun Çalışma Alanı....................................15
Şekil 2.7 Küresel Koordinat Sistemi.................................................................... ...........16
Şekil 2.8 Küresel Koordinat Robotunun Yatay ve Düşey Hareket Alanları....................17
Şekil 2.9 Döner Koordinat Sistemli Robot Eksenleri......................................................18
Şekil 2.10 Döner Koordinat Sistemli Bir Robot..............................................................18
Şekil 2.11 Döner Koordinat Sistemli Robotun Çalışma Alanı.........................................19
Şekil 2.12 Gantry Robot...................................................................................................20
Şekil 2.13 Mafsallı Robot……………………………………………………………… 21
Şekil 2.14 6 Eksenli Mafsallı Robot…………………………………………………….21
Şekil 2.15 Mafsallı Robot………………………………………………………….……22
Şekil 2.16 Scara Tipi Robota Ait Şematik Çizim………………………………….……23
Şekil 2.17 Scara Robotun Çalışma Alanı………………………………………….……24
Şekil 2.18 Kapalı Döngü Kontrol Sistemine Örnek Sistem……………………….……27
Şekil 2.19 Robot El……………………………………………………………….…….28
Şekil 2.20 Mekanik İş Parçası Tutucuları………………………………………….…...29
Şekil 2.21 Vakumlu Tutucu………………………………………………………….…29
Şekil 2.22 Manyetik Tutucu……………………………………………………….……30
Şekil 2.23 Üç serbestlik Derecesine Sahip Robot Modeli………………………….…..31
Şekil 2.24 P Noktasının A Noktasına Göre Tanımı…………………………………….32
Şekil 2.25 P Noktasının A ve CKoordinat Sistemlerine Göre Tanımı……………..…...33
Şekil 2.26 A Noktası ve Uç Noktanın Koordinat Sistemleri………………………..…..33
Şekil 2.27 B Koordinat Sisteminin A Sistemine Göre Yönelimi…………………….....34
Şekil 2.28 Yönelme ve Pozisyon Matrisi………………………………...………..……35
ix
Şekil 2.29 Üçüncü Eklemin Yönelme ve Pozisyon Matrisi………………………….....35
Şekil 2.30 Öğrenim Kutusu………………………………………………………..…...37
Şekil 2.31 Bağıl Açıları Gösterilen n Uzuvlu Seri Robot Kolu……………………..….40
Şekil 2.31D H Parametreleri……………………………………………………….…...41
Şekil 2.33 Robot Kolumuzun Eksen Görünümü…………………………………..……42
Şekil 2.34 Ters Kinematik…………………………………………………………..…..47
Şekil 2.35 Hitec HS-311 Servo Motor…………………………………………..……...50
Şekil 2.36 Standart Servo Motorun Bileşenleri…………………………………..……..50
Şekil 2.37 Standart Servo Motor Kablo Bağlantı Şeması………………………..……..54
Şekil 2.38 Hitec HS-311………………………………………………………..………52
Şekil 2.39 Serbestlik Dereceleri……………………………………………………..….53
Şekil 2.40 Zemin İçin Kullanılacak Plastik Parça 2D Teknik Resmi………………..…56
Şekil 2.41 Zemin İçin Kullanılacak Parça 3D Görünümü…………………………. ….57
Şekil 2.42 Zemin ve Gövde Arasındaki Alüminyum Parça 2D Teknik Resmi………...57
Şekil 2.43 Zemin ve Gövde Arasındaki Parça 3D Görünümü……………………..…..58
Şekil 2.44 Zemin İle Birleştirilmiş Metal Parçalar…………………………………..…58
Şekil 2.45 Robot Kolunun Gövde Plastik Parça 2D Teknik Resmi………………..…..59
Şekil 2.46 Robot Kolunun Gövde Parça 3D Görünümü………………………………..60
Şekil 2.47 Ön Kol Plastik Parça 2D Teknik Resmi……………………………..……...60
Şekil 2.48 Ön Kol Plastik Parça 3D Görünümü……………………………………..…61
Şekil 2.49 Ön Kol Plastik Parça Servolara Montaj Resmi…………………………..…62
Şekil 2.50 Üst Kol Plastik Parça 3D Görünümü………………………………..……...62
Şekil 2.51 Üst Kol Plastik Parça 2D Teknik Resmi…………………………………….63
Şekil 2.52 Üst Kol Plastik Parça Montaj Resmi………………………………………...64
Şekil 2.53 Servo Üst Kol Bağlama Parçası 3D Görünümü……………………………..64
Şekil 2.54 Gripper Servo Üst Kol Bağlama Parçası 2D Teknik Resmi……………...…65
Şekil 2.55 Gripper Dişlisi Resimi…………………………………………………...….66
Şekil 2.67 Robot Kolunun 3D Bitirilmiş Hali………………………………….............66
Şekil 3.1 İmge Kavramı…………………………………………………………...……67
Şekil 3.2 İmgenin Oluşturulması………………………………………………………..68
x
Şekil 3.3 Sayısal İmge Kavramı………………………………………………….…..…68
Şekil 3.4 Sayısallaştırma………………………………………………………….….…69
Şekil 3.5 Sayısal İmgede Piksel…………………………………………………..….…70
Şekil 3.6 Sayısal İmgede Piksel………………………………………………..…….…70
Şekil 3.7 Çözünürlük Kavramı…………………………………………………..……...71
Şekil 3.8 Çalışma Kapsamında Geliştirilen Sistem……………………………..……....72
Şekil 3.9 OpenCV Gruplara Ayrılmış Fonksiyonları…………………………..…….....73
Şekil 3.10 OpenCV Yapıları ve Kapsamları……………………………………..….….74
Şekil 3.11 OpenCV’de Resim Gösterme…………………………………………..…....74
Şekil 3.12 Eşikleme Örneği……………………………………………………….…….76
Şekil 3.13 Input İmage…………………………………………………………….....…77
Şekil 3.14 1 ve 0 Pencere Operatörleriyle Resimi Basitleştirme…………………....….79
Şekil 3.15 Resimde Yatay Sürekliliği Bulma ve Kontrol Etme…………………….......80
Şekil 3.16 Resimde Dikey Sürekliliği Bulma ve Kontrol Etme………………………...82
Şekil 3.17 Süreklilik Matrislerinin Toplanması ve Koordinatların Bulunması……...…83
Şekil 4.1 Mikro Denetleyici………………………………………………………...…..85
Şekil 4.2 Arduino Mega…………………………………………………………..….…91
Şekil 4.3 Rasperry Pi…………………………………………………………….…...…92
Şekil 4.4 Robot Kontrol Genel Blok Diagramı……………………………………....…94
Şekil 4.5 Robot Kontrol…………………………………………………………...…....94
xi
TABLOLAR LİSTESİ
Tablo 2.1 D & H (Denavit ve Hartenberg) Tablosu……………………………………43
Tablo 2.2 Dönüşüm Matrisleri…………………………………………………..……..44
Tablo 2.3 Malzeme Listesi……………………………………………………..………55
Tablo 4.1 Mikro Denetleyici Örnekleri…………………………………………..…….86
Tablo 5.1 Robot Kol Maliyeti……………………………………………….…………96
1
BÖLÜM BİR
GİRİŞ
1.1 Temel Bilgiler
Bilgisayarın yazıcısı yada mutfak robotunuz gerçekten birer robot mudur? Bir
makineye robot diyebilmek için, en önemli koşullardan biri algılamadır. Bir robot az
veya çok dış dünyadan bir algılama yapabilmelidir. Bu algılamalar sensörler sayesinde
olur. Isı, ışık, şekil, dokunma gibi olabilir. Daha sonra bu bilgileri otonom olarak
yorumlamak, algıya ne gibi tepkide bulunacağına karar vermelidir. Son olarak ta robot
verdiği kararı uygulamaya koyabilmelidir. Özetlersek robot 3 ana kısımdan oluşur. Buna
göre bir robotta; çevre hakkında gerçek zamanlı bilgi edinmek için kullanılan sensörler,
karar vermeyi sağlayan mikro işlemci verilen kararların uygulanmasını sağlayan
eyleyiciler ve hareket sistemleri bulunur (Robot nedir, robot tarihi, b.t).
Sanayi robotunun en kapsamlı tanımı ve robot tiplerinin sınıflandırılması IS O 8373
standardında belirlenmiştir. Bu standarda göre bir robot şöyle tanımlanır: "Endüstriyel
uygulamalarda kullanılan, üç veya daha fazla programlanabilir ekseni olan, otomatik
kontrollü, yeniden programlanabilir, çok amaçlı, bir yerde sabit duran veya hareket
edebilen manipulatör (Endüstriyel robotlar ve uygulama alanlar ı, b.t).
Yukarıdaki tanımlarda da görüldüğü gibi robot; canlılara benzer işlevleri olan ve
davranış biçimleri sergileyen makinelerdir. Temel olarak bir robotun aşağıdaki
özelliklerinin olması gerekir:
2
İşlem Yapma Yetisi: Bir işlemi fiziksel yada farazi olarak yerine getirebilmelidir,
yoksa robot olmaz sadece bir madde olur.
İşlemin Sonucunu Belirleme Yetisi: İşlemi yaptıktan sonra mutlak olarak işlemin
sonucunu belirlemelidir ki işlem tam olarak yapılmış olsun.
Karar Verme Yetisi: İşlem sonucuna göre yada dış etmenlere göre mutlaka bir yargı
kurabilmelidir.
Bu yapıları bünyesinde barındıran bir sisteme genel olarak ROBOT adını verebiliriz.
Fakat asıl robot kavramı bu yapıların çok daha ilerisine giderek doğada en karmaşık olan
insanoğlunun yetilerini taklit etmek amacıyla yapılan makinelerdir. Robot kavramı da
onlar üzerine kurulmuş olmasına rağmen tanım genel olarak takdire dayanan yapıları da
içermektedir (Endüstriyel robotlar ve uygulama alanları, b.t).
Robot teknolojilerinin popüler alt sınıflarından biri robot kollarıdır. Günümüzde
hemen hemen her fabrikanın üretiminde, robot kolları yerini almıştır ve gelecek de daha
çok kullanım olanağı bulacağı tartışılmaz bir gerçektir. İşte bu çalışmalar in ve
analizlerin ışığında bu tez çalışmasında robot kollar ı teorik olarak incelenmiş
matematiksel çözümleri hesaplanmıştır. Teorik çalışma uygulama olarak geliştirilip
teorik bilgiler uygulama ortamında hazırlanan prototip ile test edilmiştir. Üç Serbestlik
Derecesine sahip robot kolu teorik ve uygulama kısımlarında model olarak
kullanılmıştır. Bu robot kol bu tip bir tez çalışması için en uygun robot kol olarak
belirlenmiştir. Gerek hızı gerekse hassasiyeti, uygulamalar için yeterli verimi
sağlamaktadır.
3
1.2 Literatür Çalışması
Robotlar ve mekatronik üzerine birçok çalışma yapılmıştır. Bu çalışmalar çoğunlukla
robot kolu üzerinde yoğunlaşmıştır. Tez konusu robot kolu ile alakalı olduğu için robot
kolu ile alakalı yap ilmiş bazı çalışmalar aşağıda değinilmiştir. Yap ilan tez çalışması
PIC kontrollü servo motorlar ile çalışan robot özelliği göstermektedir. Bu nedenle robot
kolları ile alakalı olan baz ı çalışmalar aşağıda sunulmuştur.
Hong Daehie, Steven A. Velinsky ve KazuoYamazaki, uygulamalarında otobanların
yapım ve bakım onarım işlerinde kullanılan bir mobil robotu ve bu robotun kontrol
sistemini açıklamaktadırlar. Bu robotta Servo sistem kontrolü kullanılarak optimum
kontrol gerçekleştirilmiştir (Daehie ve Steven, 1997).
İzmir Dokuz Eylül Üniversitesi’nde bir çalışmada internet üzerinden erişilebilecek
mikrodenetleyici tabanlı bir elektronik kartın tasarlanması ve gerçeklenmesi yapılmıştır.
Uygulama olarak, internet üzerinden robot kolu kontrolü başarıyla gerçekleştirilmiştir.
(Yarım, 2004).
Yayınlanan bir makalede değişik nesneleri tanımaya yönelik görüntü işleme sistemi
ile bu nesneleri görüntü destekli ayırmak için kullanılan robot manipülatörü ile ilgili
çalışmalar sunulmuştur. DC motorların üç boyutlu uzayda verilen bir yörüngeyi takip
edebilmesi için C++ ile özel bir mafsal kontrol algoritması yazılmıştır. Görüntü
tanımayla bağlantılı olarak robot kolun senkron çalışması ve değişik yolları takip
edebilme yeteneği, 24 tanımlı nesne için test edilmiştir. Sonuç olarak, 5 ile 10 mm
arasında bir kesinlik değeri ile yörünge takip edilebilmiş ve %95’lik bir nesne tanıma
sonucuna ulaşılmıştır (Ayberk, 2001).
Diğer bir yüksek lisans projesinde mikro denetleyici kontrollü algılamalı örümcek
robot tasarımı gerçekleştirilmiştir. Bu robot tasar iminin çalışmasında da enerji problemi
4
ön plana çıkmıştır. Robottaki 12 adet servo motor yaklaşık olarak 3 Amper akım
çekmektedir. 4.5 Amperlik batarya, problemi kısmen çözse de çok fazla ağır olmasından
dolayı denge problemi oluşturmuştur. Dış gövdede kullanılan epoxi malzemesi çok sert
ve işlenmesi çok zor bir malzemedir. İstenilen şekle getirilebilmesi için elmas bıçakların
kullanılması gerekmektedir. Bunun yanında çok sağlam bir malzemedir( Gören, 2001).
Başka bir yüksek lisans projesinde mekatronik sistemlerde internet tabanlı kontrol ve
kartezyen robot üzerinde bir uygulama gerçekleştirilmiştir. Kontrol birimi olarak bir
sunucu bilgisayara bağlı PLC kullanılmıştır. Kartezyen robota 3 ayrı renkte olan lastik
topların dokuz ayrı noktaya, renklerin yerlerini de değiştirerek taşınması işlevini
gerçekleştirecek bir program yüklenmiştir. Topların gideceği noktaların koordinatları
programa girilmiştir ve istenen işlev gerçekleştirilmiştir (Çalışkan, 2004)
Başka bir yüksek lisans projesinde; yap ilan simülasyon çalışmaları sonucunda alt ı
serbestlik dereceli PUMA 560 robotunun önceden hesaplanmış dinamik parametreler
altında; PD kontrol algoritması kullanılarak, hesaplanmış moment yöntemi metodu ile
yörünge kontrolü yapılmıştır. Zamana bağlı olarak eklemlerin konum ve hız eğrileri elde
edilmiştir (Bostan, 2004).
Başka bir çalışmada üç eklemli bir SCARA robotu ele alınmış ve dinamiği yapay
sinirağları (YSA) ile modellenmiştir. Sonuç olarak YSA hedeflenen çıkışları müsaade
edilebilecek çok küçük sapmalarla başarılı bir şekilde yakalamış ve iyi bir performans
sergileyerek SCARA robotun modellenmesi problemine oldukça iyi cevap vererek
çözüm üretebilmiştir (Tiryaki, 2005).
Bir doktora tezinde ise üç eklemli bir robotik manipülatörün, görmeye dayalı
kontrolü YSA kullanılarak yapılmıştır. Simülasyon programı kullanılmıştır (Köker,
2002).
Başka bir yüksek lisans projesinde bir labirent robotu tasarımı ve gerçekleştirilmesi
yapılmıştır. Bu robotun da yapısında 2 adet adım motor kullanılmıştır. Robot 2 adet
5
adım motora bağlı iki adet tekerden oluştuğu için denge sorunu yaşanmış ve bu sorun ön
ve arkaya bilyeler konarak giderilmiştir. Proje 2003 de yapılan bir proje ile benzerlik
göstermektedir (Yağlı, 2005).
Elektrik - Elektronik - Bilgisayar Mühendisliği 10. Ulusal Kongresi’nde yayınlanan
bir bildiride bilgisayarlarla haberleşerek x-y düzleminde çizim yapabilen bir mekatronik
sistem tasarımı sunulmuştur. Z ekseninde hareketi sağlayan sonlandırıcı eleman (kalem)
ile sistem üç eksende hareket etmektedir. Üç eksende hareketiyle sistem kartezyen robot
kol özelliği taşımaktadır. İki eksen,çizim yapılacak zemin ile rölelerden oluşan ve bir
anlamda sistemin iskeletini oluşturan makine kısmı; sürücü devre ve mikro
denetleyicinin makine kısmıyla bağlantısını içeren elektronik kısmı; kullanıcının isteğine
uygun (mekanik düzenin izin verdiği ölçüler dâhilinde) çizime ait koordinatları
girmesine olanak sağlayan ve girilen koordinatları yorumlayarak iki eksendeki motorlara
ve rölelere elektronik kart aracılığıyla gerekli sinyali gönderen kısmıdır (Yazıcı, 2003).
Elektrik - Elektronik - Bilgisayar Mühendisliği 10. Ulusal Kongresi’nde yayınlanan
diğer bir bildiride Festo tarafından üretilen hassas konumlama kontrolörü SPC200
ardımı ile geliştirilmiş pnömatik tahrikli robot uygulaması açıklanmıştır (Berkay, 2003).
Queen'sUniversity’de yapılan bir tez çalışmasında bir Kartezyen pnömatik robotun
sürekli kayan kipli denetimi (SMC) incelenmiştir. SMC dizaynı ile alakalı genel literatür
bilgileri verilmiş ve doğrusal ve doğrusal olmayan bir pnömatik robot sunulmuştur. Açık
kapalı döngütestleri yürütülmüştür (Xia, 2001).
1.3. Özgünlük
Bir makalede, beş eksenli bir edubot robotta, ters kinematik hesaplamalar ve yörünge
planlaması yapılmıştır. Ters kinematik probleminde, robotun uç noktasının gideceği
yerin koordinatları (x, y, z) ve robot elinin başlangıç pozisyonuna göre açısı (9) girdi
olarak verilmiş ve eklem açılarının alabileceği değerler hesaplanmıştır. Ayrıca bu
çalışmada, endüstriyel robotların en önemli sorunlarından birisi olan “Yörünge
6
Planlamasına 5. dereceden zaman polinomlar 1 ile çözüm getirilmiştir (Tonbul, 2003).
Gazi Üniversitesi’nde bir yüksek lisans çalışmasında renge göre (kırmızı, yeşil,
mavi) malzeme taşıyan robot kolu tasarımı ve uygulaması yapılmıştır. Bu çalışmada
kullanılan kontrol birimi PIC mikro denetleyicisidir. Bu çalışmada gereken program bir
defa kontrol birimine yüklenmekte ve daha sonra robot bu programa göre hareket
etmektedir. Sonradan harici bir müdahale bulunmamaktadır (Akademik, b.t).
1.4. Yaygın Etki
Görüntü işleme(Almanca Bildbearbeitung) ölçülmüş veya kaydedilmiş olan
elektronik (dijital) görüntü verilerini, elektronik ortamda (bilgisayar ve yazılımlar
yardımı ile) amaca uygun şekilde değiştirmeye yönelik yapılan bilgisayar
çalışmasıdır.Görüntü işleme, verilerin, yakalanıp ölçme ve değerlendirme işleminden
sonra, başka bir aygıtta okunabilir bir biçime dönüştürülmesi ya da bir elektronik
ortamdan başka bir elektronik ortama aktarmasına yönelik bir çalışma olan "Sinyal
işlemeden" farklı bir işlemdir.
Görüntü işleme, daha çok, kaydedilmiş olan, mevcut görüntüleri işlemek, yani
mevcut resim ve grafikleri, değiştirmek, yabancılaştırmak ya da iyileştirmek için
kullanılır.Fotoğrafçılık ve grafik tasarım alanlarında da kullanılır.
1.5. Standartlar
EN 60228 ve EN 60287
Kablolar güncel EN 60228, EN 60287 standartları ve VDE –AR-E-2283-4
standartları gerekleri doğrultusunda olmalıdır. Kabloların kesitlerinin belirlenmesi;
gerilim düşümü, kısa devre ve kabloların akım taşıma hesapları, azaltma faktörleri
mesafe ve güce bağlı olarak HD 60364-5- 52 standardı gerekleri doğrultusunda
yapılacaktır.
7
IPC J-STD-001
Requirements For Soldered Electrical and Electronic Assemblies (Elektrik ve
Elektronik Takımlarda Lehimleme Gerekleri)
E3, E6, E12, E24, E48, E96, E192
EIA tarafından belirlenen tüm dünyada genel kabul görmüş direnç değerlerini
kapsar
TS 7034 EN 60523 (Doğru akım potansiyometreleri)
Bu standard direnişler ve anahtarlardan meydana gelen ve tamamen doğru akımla
çalışan ve doğruluk sınıfı 0,0001 0.1 arasında olan potansiyometreleri kapsar.
TS 6023
Bu standard, genellikle eğlence amaçlı taşınabilir cihazlara, en çok 34 V d.a'ya
kadar olan harici, düşük gerilimli bir güç kaynağını bağlamakta kullanılan bağlayıcıları
kapsar.
TS EN 60747-5-1
IEC 60747 serisindeki bu standard, yarı-iletken optpelektronik cihazlarla ilgili
terimleri kapsar.
8
1.6 Çalışma Takvimi
Çalışma Takvimi Ekim Kasım Aralık Ocak
1. İş planı
2. İş Planı
3. İş planı
4. İş Planı
5. İş planı
Tablo 1.1. Çalışma Takvimi
1. İş Planı : Proje konusunun belirlenip ne yapılacağına karar verilmesi ve
devamında literatür çalışması.
2. İş Planı : Kullanılacak malzemeler hakkında bilgi toplanması tespiti ve fiyat
araştırması. Simülasyon çalışmalarının yapılması
3. İş Planı :Gerekli malzeme ve teçhizatın temini ve projenin gerçekleştirilmesi.
Test edilmesi ve yorumlanması
4. İş Planı : Tasarım çalışmasının hazır hale getirilmesi
5. İş Planı : Tasarım çalışmasının teslimi ve savunması
9
BÖLÜM İKİ
TEORİK ALTYAPI
2.1 Genel Bilgiler
Robotik, Makine Mühendisliği, Elektrik ve Elektronik Mühendisliği ve Bilgisayar
Mühendisliği disiplinlerinin ortak çalışma alanıdır. Robotun, Amerikan Robot Enstitüsü
tarafından yap ilan tanımı, "malzemelerin, parçaların ve araçların hareket ettirilebilmesi
için tasarlanmış olan çok fonksiyonlu ve programlanabilir manipülatör veya farklı
görevleri yerine getirebilmek için değişken programlı hareketleri gerçekleştirebilen özel
araç" şeklindedir. Robot kavramının temelleri eski tarihlere dayansa da ilk olarak
“Robot” kavramı 1922 yılında Çek yazar KarelÇapek’in piyesinde bir tiplemesinin
ismine Robot demesiyle ortaya atılmıştır. Bu tarihten sonra robot bilimi üzerinde
bilimsel çalışmalar yoğunlaşmıştır (Özsoy, 2012).
Günümüz çalışma şartları ve rekabet ortamında, yapılan işin mükemmelliği ve
kalitesi büyük önem kazanmış durumdadır. İşte bu şartlar altında robot kullanımıyla,
kalite arttırılmakta, standart üretim sağlanmakta, işçilik ve malzeme giderleri
azaltılmaktadır. Böylece robot sistemine sahip şirketlerin rakipleriyle arasındaki rekabet
güçleri artmaktadır. Bunların yanında, robotlar insanları monoton ve ağır hacimli
işlerden, kaynakhane ve boyahanenin zehirleyici etkili ortamlarından kurtarırlar. Dar
alanlarda bir çok işlemin yapılması imkanını tanırlar. Pek çok alanda üretime katkıları
yadsınamayan robotlar, gelişimleri boyunca hep memnunlukla karşılanmamışlar, zaman
zaman toplumsal çalkantılara da yol açmışlardır. Buna örnek olarak, otomatik dokuma
tezgahlarının son yüzyılda neden olduğu işsizlik gösterilebilir. Ancak, her seferinde
teknolojik gelişmenin hemen ardından gelen nesil daha iyi koşullarda çalışmış ve
çalışma zamanını kısaltmak suretiyle, daha çok serbest zaman elde etmiştir. Son
zamanlarda yap ilan ve gelişmiş ülkeleri kapsayan bir araştırmaya göre son 130 yılda
kişi başına üretkenlik yaklaşık 25 kat artmıştır. Bu üretkenlik artışının yarısı yani 13 kat
10
kadarı fiziki ürün artışı, diğer yarısı da insanların çalışma sürelerinin yaklaşık yarı yarıya
düşmesi şeklinde görülmüştür.
Fiziki ürün artışı ancak, otomasyon, anında üretim ve esnek üretim ile
gerçekleşebilmektedir.
Robotlar da; döner, prizmatik, silindirik, küresel, düzlemsel veya helisel eklemlerden
biri kullanılır ve robot, bu eklem türüne göre de sınıflandırılır. Döner ve prizmatik
eklemler robotikte en çok kullanılan eklem türleridir. Bir robot, mekanik bölümler,
hareketlendiriciler ve kontrol birimlerinden oluşmaktadır. Robotun mekanik bölümleri;
yap isal parçalar, güç ileten parçalar, (rot, dişliler vs. ), taşıyıcılar ve akuplaj bölümleri
olarak sayılabilir. Mekanik bölümler, temel yapı parçaları ve servis parçaları olarak ikiye
ayrılabilir. El veya diğer gereçler (kaynak, boyama, öğütme, sıkıştırma araçları)
mekaniğin servis parçalarını oluşturur. Modern robotların hareketlendiricileri,
çoğunlukla elektrikseldir (DC sürücüler). Endüstride kullanılan robotlar olarak
bahsettiğimiz robot kollar, bugün birçok uygulama için yeterli hız, kararlılık ve
kolaylığa erişmiş durumdalar. Su an bu robot kollar için en zayıf parça, el: uç noktada
bulunan el sıklıkla pnömatik, 2-pozisyonlu pense şeklindedir. Bu yap ı, uygulamalarda
farklı parçaları tutmaya ve yönlendirmeye fazla izin vermemektedir. Bu konudaki
çalışmalar gelecekteki önemli bir uğraş alanı olarak görünmektedir. Bir robot temel
olarak beş kısımdan oluşur. Aşağıda verilen kısımlar robotu oluşturan temel unsurlardır,
robotun işlevini yerine getirmesi ve sınıflandırması bu beş aşamaya göre yapılır.
1: Mekanik Kısmı: Robotun iskelet kısmını oluşturur.
2:Tutaç: (EndEffector) : Bu eleman gerçek işi yapan kısımdır, robotun en uç
noktasıdır ve uygulamada aktif olarak yer alır.
3: Motorlar: Eklemleri ve tutacı hareket ettirmek için kullanılır, en çok kullanılanları
servo ve hidrolik motorlardır.
4: Kontroller: Girişi işleyip robotun yapması gereken görevini gerçekleştirir.
5: Sensörler: Kontrollere bağlıdır, robotun görevini yapması için robota geri dönüş
ve giriş verisi sağlarlar. Her zaman gerekli değillerdir (Güzel, 2008).
11
2.2 Robotların Sınıflandırılması
2.2.1 Robot Hareketinin Eksenleri
Manipülatörün kendi ekseni veya serbestlik derecesi diye tanımlanan değişik
hareketleri vardır. Eğer bir manipülatör kendi ekseni etrafında dönüyorsa, bu robota “tek
eksenli robot” denir. Eğer manipülatör yukarı ve aşağı doğru hareket ediyorsa, bu robota
“çift eksenli robot” denir. Kendi ekseni etrafında dönen ve yukarı aşağı hareket eden
manipülatör, yatay eksende ileri-geri hareket de edebilir. Bu robota “üç eksenli robot’’
denir. Endüstriyel robotlar en az üç eksene sahiptirler. Bu hareketler, kendi ekseni
etrafında dönmesi, yukarı-aşağı ve ileri-geri hareket edebilmesidir.
2.2.2 Çalışma Alanı
Robot denildiği zaman aklımıza ilk etapta, insan gibi yürüyen, insan davranışları
sergileyen, daha da önemlisi insan gibi düşünen ve karar verebilen makinalar geliyor. Bu
da demek oluyor ki robotların tasarlanması ve geliştirilmesinde canlıların yaşama uyum
sağlamak amacıyla geliştirdikleri karakteristiklerden ilham alınmaktadır.
Robot kolunun yetişebileceği toplam alana, çalışma alanı denir. Şekil 2.1’de mafsallı
bir robotun çalışma alanı ile bir insan kolunun çalışma alanı arasındaki benzerlik
görülmektedir.
Şekil 2.1 İnsan kolu ile mafsallı robotun çalışma alanları arasındaki benzerlik
12
Endüstriyel robotlar sınıflandırılırken ilk başta 3 ana bölüme göre sınıflandırılır. Bunlar ;
1. Manipülatörün (mekanik gövde) yapısına göre sınıflandırma
2. Robot tiplerine göre sınıflandırma
3. Kontrol döngüsü tipine göre sınıflandırma
2.2.3 Manipülatörün Yapısına Göre Sınıflandırma
Bu sistemde bütün robot hareketleri; birbirlerine karşı dik açılı şekilde olur. Bu
konfıgürasyon en kısıtlı hareket serbestine sahip robot tasarım şeklidir. Bazı parçaların
montajı için gerekli işlemler Kartezyen konfigürasyonlu robotlar tarafından yapılır. Bu
robot şekli birbirine dik üç eksende hareket eden kısımlara sahiptir. Hareketli kısımlar
X, Y ve Z kartezyen koordinat sistemi eksenlerine paralel hareket ederler. Robot, üç
boyutlu dikdörtgen prizması hacmi içindeki noktalara kolunu hareket ettirebilir.
Şekil 2.2 Kartezyen Koordinat Sistemine Ait Şematik Çizim
14
Bir kartezyen koordinat sisteminde, koordinat sistem merkezinin yeri, ilk iki
bağlantının birleşme yerinin merkezidir. Merkezine doğru yapılan hareketler dışında,
merkez hareket etmez yani robotun merkezi sabittir. Robotun yerleştirildiği çalışma
alanında eğer X yönündeki hattı bir kolona doğru çevrilirse, X hattı daima aynı kolona
doğru yönelir robotun programını yaparken döndüğü yönde sorun yoktur. Bunlar
verilmiş bir robot donanımı için, yer koordinatları olarak bilinir.
2.2.3.1 Silindirik Koordinat Sistemi
Bu tip robotlar temel bir yatak etrafında dönebilir ve diğer uzuvları taşıyan ana
gövdeye sahip özelliktedir (Şekil 2.5). Hareket düşeyde ve ana gövde eksen kabul
edildiğinde radyal olarak sağlanır. Dolayısıyla çalışma hacmi içerisinde robotun
erişemeyeceği, ana gövdenin hacmi kadar bir bölge oluşur. Ayrıca genellikle, mekanik
özelliklerden dolayı gövde tam olarak 360° dönemez.
Şekil 2.5 Silindirik Koordinat Sistemi
15
Silindirik koordinatlarda tabana dik eksen etrafında dönme ve bu eksen üzerinde
ötelenme yapılırken bu eksene dik bir eksende de başka bir öteleme hareketi yapılır.
Dönme serbestliğindeki mekanik engellerden dolayı teorik olarak silindirik bir çalışma
alanı oluşması beklenirken baz ı bölgelerde silindir yapısı tamamlanamaz. Zemine
ulaşabilmenin arzu edildiği durumlarda robot kolu zemine aç ilan bir yuvaya yerleştirilir.
Ancak bu durumda da ulaşılabilecek maksimum yükseklik azalır. Radyal hareketten
dolayı, silindirik koordinatlı robotlar montaj, kalıpçılık gibi alanlarda kullanılabilir. Bu
tip robotlar da programlama açısından fazla karmaşık değildir. Ancak kartezyen
koordinatlı robotlarda olduğu gibi kayar elemanların korozyon ve tozlanmadan
korunması gerekir.
Silindirik robotlar genellikle, kendi ekseninde 300° dönmektedir. Geri kalan 60° ise
robotun etrafında güvenli bir alan oluşturmak için kullanılır. Bu güvenlik alanına ölü
bölge ismi verilmiştir (Şekil 2.6).
Şekil 2.6. Silindirik Koordinat Sistemli Robotun Çalışma Alanı
16
2.2.3.2 Küresel Koordinat Sistemi
Matematiksel olarak küresel koordinat sisteminin iki tane dairesel ve bir de doğrusal
ekseni olmak üzere üç tane ekseni vardır (Şekil 2.7).
Şekil 2.7 Küresel Koordinat Sistemi
Robotikte küresel koordinat sistemi en eski koordinat sistemlerinden biridir. Oldukça
çok işlevli, birçok uygulama alanına sahip özelliğinin yanında, yapım ve montaj
açısından da oldukça kolaylık sağlamaktadır.
Şekilden de anlaşıldığı gibi temelde iki hareketi mevcuttur. Bunlar yatay ve düşey
dönmedir. Üçüncü bir hareket ise doğrusal (uzama kolunun ileri geri hareketi) harekettir.
Doğrusal hareket aynen Kartezyen koordinatlardan herhangi bir koordinatın hareketi
gibi davranış gösterir.
17
Kutupsal koordinatlarda çalışan bir robotun çalışma hacmi iki kürenin ara hacminden
oluşur. Koldaki uzuvlardan biri doğrusal hareket yaparken bunu destekleyen diğer
uzuvlardan biri tabana dik eksen etrafında diğeri ise bu eksene dik ve tabana paralel
eksen etrafında döner. Ölü bölgeler bu tip robotlarda da vardır. Öteleme hareketi yapan
uzvun stroğunun yetersizliğinden dolayı zemine ulaşmak mümkün olmaz.
Küresel koordinat robotunun düşey ve yatay çalışma alanı Şekil 2.8’de görüldüğü
gibi silindirik koordinat robotuna benzer (Şekil 2.8).
Şekil 2.8 Küresel Koordinat Robotunun Yatay ve Düşey Hareket Alanları
2.2.3.3 Döner Koordinat Sistemi
Eğer bir robot herhangi bir iş yaparken kolu dairesel hareketli bağlamlarla
oluşturuyorsa, bu tip robotlara Döner koordinat sistemli robotlar denir.
Robot kolunun bağlantıları gövde üzerine, etrafında dönecek şekilde monte edilmiştir
ve dayanak noktaları birbirine benzeyen iki ayrı bölümü taşır. Dönen parçalar yatay ve
dikey monte edilebilir (Şekil 2.9).
18
Şekil 2.9Döner Koordinat Sistemli Robot Eksenleri
360° dönme sağlanamaz ancak bu kayıplar minimuma indirilebilir. Şekil 2.11’de
döner koordinatlarda çalışma hacmi görülmektedir. Bu tip robotlarda robot kolun
çalışması zor gözlenir. Çalışma hacmindeki noktalara farklı yörüngelerle ulaşılabilir.
Buna göre sistem parametrelerinin en uygun olduğu yol seçilmelidir.
Döner koordinatlı robotlarda kontrol işlemi karmaşıktır, dolayısıyla kontrol
donanımının da bu karmaşıklığı karşılayabilecek kapasitede olması gerekir. Ayrıca bu
tip robotlarda mafsallarda sızdırmazlı kolayca sağlanabilmektedir.
Şekil 2.10 Döner Koordinat Sistemli Bir Robot
19
Şekil 2.11 Döner Koordinat Sistemli Robotun Çalışma Alanı
2.2.4 Robot Tiplerine Göre Sınıflandırma
• Kartezyen robotlar,
• Mafsallı robotlar,
• Scara robotlar.
2.2.4.1 Kartezyen Robotlar
Kartezyen koordinat sisteminde bütün robot hareketleri birbirine 90°’lik açıyla
hareket eder. Bu nedenle Kartezyen robotlar dikdörtgenimsi bir biçimdedir. Günlük
hayatımızda sağa sola, aşağı yukarı vb. hareketlerimiz, Kartezyen koordinat
hareketlerdir.
20
Şekil 2.12 Gantry Robot
Bu ürün robotları genellikle özel tatbiklerle sınırlandırılır. Devamlı bir yol alanında,
robot, bir köprü ve bir ray sistemi aracılığıyla daha çok işlevlik kazanabilir. Tavana
monte edilerek, birkaç fonksiyonla birçok istasyona hizmet verilebilir. Robotun tavana
asılı olmasıyla, zeminde daha fazla boş saha kazanılmış olur.
Kartezyen robotlar, basitlikleri ve konstrüksiyonları sayesinde rijitliği yüksek ve hızlı
bir yapıya sahiptir.
2.2.4.2 Mafsallı Robotlar
Mafsallı robotların dizaynı insan kolundan esinlenerek yapılmıştır. Kol eklemli
robotlar yeteneklerine göre, insan kolunun yerine getirebileceği görevleri üstlenmek
amacı ile yapılmışlardır. Kol eklemli robotlar insan kollarında olan tüm esnekliğe ve
hassasiyete tam olarak sahiptir ve değişik görevlerde insan kolunu taklit eder (Şekil
2.13).
Kol eklemli robotlar altı eksende de rahatça hareket ederler. Bu altı eksenden üç
tanesi kol hareketi için, diğer üç tanesi ise bilek hareketi içindir (Şekil 2.14).
21
Şekil 2.13 Mafsallı Robot
Şekil 2.14 6 Eksenli Mafsallı Robot
2.2.4.2.1 Mafsallı Robotların Özellikleri
İnsan kolunun yapabileceği çok sayıda hareketi yapabilmektedirler. Bu
özellikleri kullandıkları koordinat sisteminden (döner koordinat sisteminden)
almaktadırlar. Bu koordinat sisteminin gereği olarak omuz, dirsek ve bilek bağlantıları
vardır(Şekil 2.15).
22
Şekil 2.15 Mafsallı Robot
Bu bağlantı şeklinin robota kazandırdığı en büyük avantaj, çalışma alanındaki her
noktaya rahatça ulaşabilmesidir. Çalışma alanı ise; robot kolunun yatayda dik olarak
durması sonucu elde edilir.
2.2.4.3 Scara Robotlar
Scara, SelectiveCompliance Assembly RoboticArm kelimelerinin baş harflerinden
oluşmuştur. Yani seçilenlere uyan montaj robotu koludur. Bu robot 1970’den sonra
Japon Endüstriyel Konsorsiyomu ve bir grup araştırmacı tarafından Japonya’da
Yamanashi Üniversitesi’nde geliştirilmiştir. Scara tipi robot, çok yüksek hıza ve en iyi
tekrarlama kabiliyetine sahip olan bir robot çeşididir.
2.2.4.3.1 Scara Tipi Robotların Özellikleri.
Şekil 2.16’de Scara tipi bir robota ait şematik çizim verilmiştir. Bu robotta
üç genel özellik bulunmaktadır:
Doğruluk
Yükse Hız
Kolay montaj
23
Şekil 2.16 Scara Tipi Robota Ait Şematik Çizim
2.2.4.3.2 Scara Tipi Robotların Yapısı
Bu robot genellikle dikey eksen çevresinde dönen 2 veya 3 kol bölümünden meydana
gelmiştir. Şekil 2.16’de görülen 1 numaralı eksen robota ana dönmeyi veren eksendir.
Bu eksen en çok montaj robotlarında kullanılmaktadır.
2 numaralı eksen doğrusal dikey eksendir. Bu eksende sadece dikey hareket
yapılabilmektedir. Bu özellik montaj robotlarında istenildiğinden dolayı, montaj
robotlarının büyük bir kısmı aşağıya doğru dikey hareket yapar.
Dikey eksen hareketleri koordinat hareket eksenleri içinde aşağıya doğru yapılan en
çabuk ve düzgün hareketlerdir. 3 numaralı eksende robot kolunun erişebileceği uzaklık
24
değiştirilebilir. 4 numaralı eksende ise dönen kol bileği hareket eder. Şekil 2.17’de
robotun çalışma alanına ait çizdiği hacim verilmiştir.
Şekil 2.17 Scara Robotun Çalışma Alanı
2.2.5 Hareket Sistemine Göre Sınıflandırma
Robot sınıflandırmalarında kullanılan ikinci özellik de, robotun hareket sisteminin
tipine göre yap ilan sınıflamadır. Hareket sistemi robotların belirlenen noktalara nasıl
ulaştıkları ile ilgilidir. Hareket sistemine göre robotlar 2’ye ayrılır.
• Noktadan - Noktaya Hareket Eden Robot Sistemleri (Point to Point
RoboticSystem - PTP)
• Sürekli Güzergâhlı Robot Sistemleri ( ContinuousPathRoboticSystems - CP)
25
2.2.5.1 Noktadan Noktaya Hareket Eden Robot Sistemleri
Noktadan noktaya hareket eden robot sistemlerinde, robot sayısal olarak tanımlanan
noktaya gider ve hareketini durdurur. Robot sabit duruyor iken uç etkileyici programa
göre yapması gereken işini yapar. Robotun görevi bitince robot bir sonraki noktaya
hareket eder ve bu işlemler böylece tekrar edilir.
Bu sistemde, robot noktadan noktaya giderken robotun güzergâhı ve hızı önemli
değildir. Bundan dolayı PTP sisteminin temelinde robotun son pozisyonunu kontrol
etmek için sadece eksen pozisyonları sayılır. Ulaşılacak her noktanın koordinat değerleri
sayıcılara yüklenir. Robot hareketi boyunca, kodlayıcı veya kontrol devresi eklem
pozisyonunu belirten palsleri gönderir.
Tipik noktadan noktaya hareket eden robot sistemlerine nokta kaynağı yapan
robotlarda sıkça rastlanmaktadır. Nokta kaynak işleminde robot kaynak yapılacak
noktaya kadar hareket eder. Kaynak yapılacak nokta, kaynak uzvunun iki elektrotunun
ortasına denk gelir ve kaynak işlemi gerçekleştirilir.
Noktadan noktaya hareket eden robot sistemleri, nokta kaynağı, parça taşıma,
yükleme - indirme ve basit montaj işlerinde kullanılır.
2.2.5.2 Sürekli Güzergâhlı Robot Sistemleri
Bu tip sisteme sahip robotlarda, eksenlerin hareketleri farklı hızlarda ve aynı anda
olabilir. Bu hızlar kontrol devresinin kontrolünde düzenlenir ve yörüngeyi meydana
getiren unsurdur. Sürekli güzergâhlı robotlar düzgün ve kesiksiz bir hareket
gerçekleştirir. Yörünge boyunca tüm noktaların kaydedilmesi gerekliliği bu tip sisteme
sahip robotlarda, noktadan noktaya hareket eden robot sistemlerine göre daha büyük
belleğe ihtiyaç olmasına sebep olmaktadır.
26
Sürekli güzergahlı robotlar ark kaynağında, sprey boyama da, metal parçalarının
pürüzsüz işlenmesinde, komplike montaj uygulamalarında ve kontrol işlerinde
kullanılmaktadır .
2.2.6 Kontrol Döngüsü Tipine Göre Sınıflandırma
Kontrol sistemi robotların yapacağı işlemlerdeki giriş değişkenlerine bağlı olarak
hareketi ve görevini gerçekleştirir veya giriş değişkenlerinin durumunu göz önüne
almadan hareketini ve görevini gerçekleştirir. Bu durumlara göre kontrol tipine göre
robotlar 2’ye ayrılır.
• Açık Döngü Kontrol Sistemi
• Kapalı Döngü Kontrol Sistemi
2.2.6.1. Açık Döngü Kontrol Sistemi
Açık döngü kontrol sistemlerinde, çıkışın giriş üzerinde herhangi bir etkisi yoktur.
Yani giriş komutuna göre meydana gelen çıkış durumundan girişe geri besleme
yapılmaz .
Örnek verecek olursak, diyelim ki bir robot kolu bir malzemeyi belirlenen yerden
alarak, belirlenen konuma taşıyor ve bu taşıma sırasında hep 500 gr’lık yükü
taşıyacakmış gibi uç elemanına kuvvet sağlıyor. Bu robot ne taşırsa taşısın hep 500
grama karşılık gelen kuvveti uç elemanına sağlar. Diyelim ki taşınacak yük ağırlığı 300
gr. oldu. Bu durumda robot uç elemanına sağlanacak kuvveti azaltmaz. Bu nedenle
kuvvet tasarrufu yapılacak sistemlerde bu döngü tipi kullanılamaz. Kaldırılacak yük 1 kg
olduğunda ise robotun uç elemanına sağladığı kuvveti arttırması gerekir. Fakat açık
döngülü sistemde duruma göre ek kuvvet sağlanamaz. Her durumda aynı kuvvet
sağlanır.
27
2.2.6.2. Kapalı Döngü Kontrol Sistemi
Kapalı döngü kontrol sistemlerinde, açık döngü kontrol sistemlerinin tam tersine
çıkışın giriş üzerinde etkisi vardır. Çıkışta meydana gelen değişimler robotun bir sonraki
hareketinin durumunu değiştirmektedir.
Açık döngü kontrol sisteminde anlatılan örneği göz önüne alırsak aynı
durumda kapalı döngü kontrol sistemi kullanılsaydı, robotun uç elemanına bağlı
yük azalınca hemen girişe bunu bildirir ve uç elemanına sağlanan kuvvet azalır.
Aynı şekilde robotun uç elemanındaki yük artınca bu bilgi girişe giderek uç
elemanına daha fazla kuvvet sağlanması yapılır.
Kapalı döngü kontrol sistemine örnek olarak tek bir eksenin hareketi için servo
motor kullanarak yapılan bir sistemin blok şeması Şekil 2.18’de görülmektedir.
(Çiçek 2006).
2.3 Tutucular
Robot uygulamalarında uç eleman olan tutucular parçaların taşınmasında
montaj işlemlerinde, kaynak işlemlerinde, boyama işlemlerinde çok rahat bir
şekilde kullanılmaktadır. Fakat bir montaj hattında aynı tutucunun birden fazla işi
28
yapması veya değişik özellikteki parçaları taşıması düşünüldüğünde bunun işlevsel
bakımdan zorlukları görülmektedir. Bu durumda genel maksatlı robot ele ihtiyaç
duyulduğu bir gerçektir.
Robot ellerde eklemlerin hareketi için gerekli gücü üreten çeşitli teknolojilere
dayalı hareketlendiriciler (actuator) vardır. En yaygın olarak kullanılan
hareketlendirici teknolojileri elektrik motorları, hidrolik hareketlendiriciler ve
pnömatik hareketlendiricilerdir. Bu geleneksel hareketlendiriciler dışında şekil
bellekli alaşımları da hareketlendirici teknolojilerine dahil etmek mümkündür
(Şekil 2.19).
Şekil 2.19 Robot El
29
2.3.1 Mekanik El
Parçaları mekanik tutucular arasında tutarlar ve parmaklar mekanik olarak hareket
ederler (Şekil 2.20).
Şekil 2.20 Mekanik İş Parçası Tutucuları
2.3.2. Vakumlu Tutucular
Cam gibi düz nesneleri tutmak için kullanılır. İş parçası, tutucu ile arasında oluşan
vakum yardımıyla tutulur (Şekil 2.21).
Şekil 2.21 Vakumlu Tutucu
30
2.3.3. Manyetik Tutucular
Metal malzemeleri tutmak için kullanılır (Şekil 2.22).
Şekil 2.22 Manyetik Tutucu
2.4 Robotla İlişkili Matris Matematiği
Bu bölüm kapsamında, robot bilimi ile ilgili temel matematiksel kavramlar ele
alınmıştır. Temel olarak robotun elamanlar mı çalışma uzayında konumlanması ve
matris matematiğinden bahsedilmiştir.
2.4.1 Koordinat sistemleri
Robotlar kendilerinin ve çevrelerindeki nesnelerin bulunduğu 3 boyutlu uzayda
hareket ederler. Robotun ve çevresindeki nesnelerin konumlarını ve birbirlerine
göre yönelimlerini belirlemek için robotun ve çevresindeki nesnelerin
merkezlerine birer koordinat sistemi yerleştirilir. Tanımlanacak bütün konum ve
yönelimler evrensel çerçeveye veya evrensel çerçeve içindeki diğer Kartezyen
31
koordinat sistemlerine göre gerçekleştirilir. Robot sistemlerinin çalışma
uzaylarında belirlenen noktalara gitmesini sağlamak için koordinat sistemleri ile
ilişkilendirilmişlerdir. XYZ koordinat sistemi genelde kullanılan koordinat
sistemidir, bu çalışma içinde bu koordinat sistemi tercih edilmiştir. Robotlar her
bir özgürlük derecesi için bir küresel (global) bir yerel (local) koordinat sistemine
sahiptirler. Global koordinat sitemi robot ya robot üzerinde sabit bir noktaya
bağlıdır, ya da çalışma uzayında uygun bir noktadadır. Üç dereceli özgürlüğe
sahip robot kol Şekil 2.23‘de gösterilmektedir.
Şekil 2.23 Üç serbestlik Derecesine Sahip Robot Modeli
Robotun yerel koordinat sistemini belirlemek için Şekil 2.23‘de robot kolun
sağ tarafında koordinat sistemleri çizilmiştir. Birinci koordinat sistemi z ekseni
etrafında dönme hareketini sağlamaktadır İkinci koordinat sistemi ise kendi x
ekseni etrafında dönme hareketini göstermektedir. Enine hareketi için üçüncü
koordinat sistemi dönme değil öteleme hareketini yapar.. Matrislerin kullanımı
robotun herhangi bir ekleminin yönelme ve ilerleme hareketinin küresel (global)
koordinatlarla ilişkisin sağlar robot uygulamalarında ki matris yaklaşımı bir
sonraki kısımda anlatılmıştır.
32
Konum Tanımı: Bir evrensel koordinat çerçevesi içerisine birçok koordinat
sistemi yerleştirilebilir. 3 boyutlu uzayda bir nokta, bu koordinat sistemlerinin
merkezine göre tanımlanmış 3x1 boyutlu vektörle gösterilebilir. Evrensel
koordinat çerçevesi içerisinde bir {A} koordinat sistemi ve P noktası olduğunu
düşünelim. P noktasının {A} koordinat sistemine göre tanımı Şekil 2.24’de
verilmiştir.
Şekil 2.24 P Noktasının A Noktasına Göre Tanımı
Aynı P noktası hem {A} hem de {C} koordinat sistemlerine göre de
tanımlanabilir. Burada P noktasının {A} ve {C} koordinat sistemlerine uzaklığı
eşit olmak zorunda değildir.
33
Daha önce de belirtildiği gibi robot ve çevresindeki nesnelere koordinat sistemi
yerleştirilir. Şekil 2.26’da bir robotun uç işlevcisinin A noktasına uzaklığını
tanımlamak için, A noktasına ve robotun uç işlevcisine koordinat sistemleri
yerleştirilmiştir. A noktası ile uç işlevcisine yerleştirilen koordinat sistemlerinin
merkezleri arasındaki uzaklık şekilde görülmektedir (Küçük 2005).
Şekil 2.26 A Noktası ve Uç Noktanın Koordinat Sistemleri
34
Yönelim Tanımı: 3 boyutlu uzayda, bir noktanın herhangi bir koordinat
sistemine gore konumunun yanında yönelimi de tanımlanır. Yönelim, bir
koordinat sisteminin başka bir koordinat sistemine göre dönme miktarıdır ve 3x3
boyutlu matris olarak ifade edilir. Bir kat ı cismin yönelimini başka bir referans
koordinat sistemine göre tanımlamak için katı cisme bir koordinat sistemi
yerleştirilir. Şekil 2.27’de uç işlevcisine, {B} koordinat sistemi yerleştirilerek {A}
referans koordinat sistemine göre yönelimi tanımlanır (Küçük 2005).
2.4.2 Matris Matematiği
Matrisler noktaları (points), vektörleri (vectors), çerçevelerin ( frames),
öteleme, dönme ve aktarma işlemlerini sunmak için kullanılırlar. Robot kolun
parçalarının çalışma uzayında küresel (global) koordinat sistemleri ile ilişkisini
belirlemek için matris işlemleri yapılır. Yönelme işlemi parametrik hale getirilip
homojen dönüşümler kullanılır. Robot sitemlerinde her bir eklemin pozisyonu ve
yönelmesi matris gösteriminde sunulur. P =[i, j, k] vektörü o anki koordinat
sisteminin bir önceki koordinat sistemine göre yerini; X=[x1, x2, x3], Y=[y1, y2,
y3], Z=[z1, z2, z3] ise bir önceki koordinat sistemine göre yönelmesini temsil
eder. X, Y ve Z vektörleri birim vektörleridir. A Matrisi, yönelme ve pozisyon
alma işlemlerini temsil eden matrisi göstermektedir.
35
Her bir eklemin koordinat sisteminin bir önceki koordinat sitemi ile ilişkisi
incelenerek; homojen aktarım matrisleri elde edilir. Robotun uç noktasının küresel
koordinat sistemi ile ilişkisini anlamak için bütün matrisler çarp ılır. Şekil 2.29’de
son eklemin başlangıç durumuna göre konumunu ve yönelimini bulmak için
yapılan matris çarpma işlemleri görülüyor (Mikkelsan 1998).
Şekil 2.29 Üçüncü Eklemin Yönelme ve Pozisyon Matrisi
M(AC) : Üçüncü eklemin küresel koordinat sistemi ile ilişkisini gösteren matris
36
A: Küresel koordinat sitemi ile ilişkili birinci eklemin matrisi gösterimi
B: Birinci Eklemin koordinat sitemi ile ilişkili ikinci eklemin matris gösterimi
C: İkinci Eklemin koordinat sitemi ile ilişkili üçüncü eklemin matris gösterimi
x: Üçüncü eklemin x koordinatının küresel koordinat ile ilişkisi
y: Üçüncü eklemin y koordinatının küresel koordinat ile ilişkisi
z: Üçüncü eklemin z koordinatının küresel koordinat ile ilişkisi
i, j, k: Üçüncü eklemin küresel koordinat sistemine göre pozisyonu
2.5 Robot Programlama
Robotların programlanmasında iki yöntem kullanılmaktadır. Bunlar öğretim
yöntemi ve bir ara yüz programı ile programlamaktır. Basit yapılı robotların
programlanması ara yüz programı ile yapılırken gelişmiş robotlar da
uygulanabilen öğretim yöntemi programcıya büyük kolaylık sağlamaktadır.
2.5.1 Öğreti Yöntemi
Şekil 2.30’da görülen öğretim kutusu sayesinde robot istenilen noktaya hareket
ettirilip bu pozisyonlar hafızaya alınabilir. Ayrıca öğretim kutusu üzerindeki
menüler kullanılarak robot programlana bilir bilgisayarın bulunmadığı yerlerde
robotun programlanması ve bütün işlevleri öğretim kutusu kontrolü ile sağlanır.
Özellikle pozisyonların belirlenmesi işleminde büyük kolaylık sağlamaktadır.
Parça hangi pozisyondan alınacak veya bırakılacak ise bu pozisyonlara gelip
pozisyonun koordinatlar ı direk olarak hafızaya alınır ve program içersinde
kullanılabilir. Ayrıca robot kola ait bütün set değerleri öğretim kutusu üzerinden
yapılmaktadır.Robot ile kullanıcı arasındaki iletişimi sağlayarak kontrolü
kolaylaştırmaktadır.
37
2.5.2 Ara Yüz Programı İle Programlama
Robotun kendine ait olan bir ara yüz programı ile robotun gerçekleştireceği
işlem bilgisayar vasıtası ile programlanır ve robota yüklenir. Her firmanın
geliştirmiş olduğu bir ara yüz programı bulunmaktadır. Bu programlarda
kullanılan komutlar her marka robot için farklı olmaktadır. Robotun çalışma alanı
içindeki hareket şekli, hızı, pozisyon belirleme işlemleri ara yüz programından
gerçekleştirilebilir.
Genel olarak bir robotun programlanması için izlenecek akış diyagramı aşağıda
verilmiştir.
Şekil 2.30Öğrenim Kutusu
38
3. TASARIM
3.1.Robot Kolu Kinematiği
3.1.1 Robot Kolu Kinematiği Genel Özellikleri
Robotikte kinematik, hareket inceleme bilimidir. Robot kolu uzuvları referans
koordinat çerçevesine göre dönebilir veya ötelenebilir. Denavit ve Hartenberg
tarafından geliştirilen sistematik ve genel bir yaklaşım robotun uç noktası ile robot
kolu uzuvlarının toplam yer değiştirmeleri arasındaki ilişkiyi kurar (Fu 1987).
Uzuvlar arasındaki açısal ve doğrusal yer değiştirmeler mafsal koordinatları olarak
adlandırılır ve uzuv değişkenleri tarafından tanımlanır. Uç noktasının referans
koordinat sistemine göre dönme ve öteleme miktarını belirlemek için, her uzuv
dönme ve öteleme miktarlarını gösteren A matrisleri sırayla birbiriyle çarpılır. Uç
noktasının koordinatlarının verilmesi durumunda, geriye doğru gidilerek uzuv
değişkenleri elde edilebilir. Bu işlemler ileri ve ters kinematik olarak
isimlendirilir. Bundan sonraki kısımda ileri ve ters kinematiğin nasıl belirleneceği
anlatılacaktır. Genel transformasyon matrisi basit robotlar için bile oldukça karışık
olabilmektedir. Standart robotlar için olan Jacobian matrisi (McKerrow 1991) ve
(Koivo 1989) gibi standart ders kitaplarında bulunabilir.
3.1.2 Genel Bir Robot Kolu İçin Koordinat Çerçeveleri ve Transformasyon
Matrisleri
n boyutlu bir pozisyon vektörünün n+1 boyutlu bir vektör ile gösterilmesine
homojen koordinat gösterimi denir. Aşağıda koordinat çerçeveleri arasında bir
pozisyon vektörünü homojen koordinatlarda gösteren 4 × 4 ’lük bir matris
görülmektedir (Fu, 1987).
39
p= pxi+ pyj+ pzk yeni çerçevenin orijininin vektörünü,
x= xxi + xyj+ xzk yeni çerçevenin x ekseninin doğrultu vektörünü,
y= yxi+ yyj+ yz k yeni çerçevenin y ekseninin doğrultu vektörünü,
z= zxi+ zyj+ zzk yeni çerçevenin z ekseninin doğrultu vektörünü temsil eder.
Transformasyon matrisinin 4. kolonu x, y, ve z doğrultularındaki ötelemeye karşılık
gelen 3 elemana sahiptir.
3 koordinat ekseninin herhangi birinde dönme mümkün olduğundan, x, y ve z
eksenlerinde θ açısı kadar olan dönmelere karşılık gelen 3 dönme transformu vardır. X
ekseni için aşağıdaki matris yazılabilir;
40
Transformasyon matrisinin elemanları saf dönme ve öteleme matrislerinin ardı ardına
çarpımıyla bulunabilir. Kartezyen uzayda uç noktasının referans çerçevesine göre
oryantasyonu istendiğinde, bu, sabit referans çerçevesinin eksenleri etrafındaki
dönmelerin bir dizisi olarak elde edilebilir. Bunu yapmak için çok sayıda yol varsa da,
en iyi bilinenlerde birisi “roll-pitch-yaw” transformasyonudur. 3 dönmenin
belirlenmesiyle olur. Önce x ekseni etrafında dönme, sonra y ve daha sonra da z eksenli
etrafında dönme.
Robotikte kinematik, hareket inceleme bilimidir. Robot kolu uzuvlarının
pozisyonları, hızları ve ivmeleri arasındaki ilişkileri, kuvvetleri ve hareketi
etkileyen diğer faktörleri dikkate almadan inceler.
Şekil 2.31 Bağıl Açıları Gösterilen n Uzuvlu Seri Robot Kolu
41
Şekil 2.32’de verilen seri uzuv robot kolunu incelendiğinde uzuvlardan birinin
pozisyonu ve oryantasyonu veya her ikisi değiştiğinde, bu uzuv ve uç noktası arasında
olan uzuvların pozisyonları ve oryantasyonları da değişecektir. Uzuvların pozisyon ve
oryantasyonları değişirken, genellikle uç noktasının pozisyonu ve oryantasyonunun
temel referans çerçevesine göre belirlenmesi arzu edilir.
Zİ-1
Şekil 2.31’de verilen seri uzuv robot kolunu incelendiğinde uzuvlardan birinin
pozisyonu ve oryantasyonu veya her ikisi değiştiğinde, bu uzuv ve uç noktası
arasında olan uzuvların pozisyonları ve oryantasyonları da değişecektir. Uzuvların
pozisyon ve oryantasyonları değişirken, genellikle uç noktasının pozisyonu ve
oryantasyonunun temel referans çerçevesine göre belirlenmesi arzu edilir.
Her hareketli uzuva bir koordinat çerçevesi bağlandığında, her iki uzuv
arasındaki transformasyon, A matrisi olarak isimlendirilen bir homojen
42
transformasyon matrisi ile tanımlanabilir. Örneğin 1. uzuv temel çerçeveye 1. A
matrisi olan 0A1 ile bağlanır. Uç noktasının transformasyon matrisi RTH ise A
matrislerinin 1. A matrisinden başlayarak uç noktasının A matrisine kadar olan A
matrislerinin ard arda çarpımıyla referans çerçevesine göre ifade edilebilir.
Bu denklem kapalı formda olduğundan, herhangi bir terim bir diğerine göre
ifade edilebilir ve robot kolunun kinematik analizinde çok önemlidir. Çünkü robot
kolunun ileri ve ters kinematiğinin çözümlemesinde kullanılır.
3.1.3 Robot Kolumuzun Eksen Görünümü
Şekil 2.33 Robot Kolumuzun Eksen Görünümü
43
Uzuv Değerleri
L1 = 0,159 m
L2 = 0,122 m
L3 =0,170 m
L4 =0,197 m
3.1.4 D & H (Denavit ve Hartenberg) Tablosu
i 𝐚𝐢−𝟏 𝛂𝐢−𝟏 𝐝𝐢 𝛉𝐢 Değişken
1 0 0 L1 𝛉𝟏 𝛉𝟏
2 0 Pİ/2 0 𝛉𝟐 𝛉𝟐
3 L2 0 0 𝛉𝟑 𝛉𝟑
4 L3 0 0 𝛉𝟒 𝛉𝟒
5 L4 0 0 𝛉𝟓 0
Tablo 2.1 D & H (Denavit ve Hartenberg) Tablosu
44
Tablodaki D-H parametrelerini kullanarak aşağıdaki şekilde robota ait
dönüşüm matrisleri elde edilir.
Tablo 2.2 Dönüşüm Matrisleri
3.1.5 D & H (Denavit ve Hartenberg) Koordinat Çerçeveleri
Uzuvlar arasındaki açılar ve yer değiştirmeler uzuv değişkenleri tarafından
tanımlanan mafsal koordinatları olarak adlandırılır. Her uzuvu için bir DOF’a
sahip olann mafsallı bir seri uzuv robot kolu n+1 tane uzuva sahiptir. D & H
parametrelerini kullanarak Şekil 3.2’de görüldüğü üzere doğrusal olması şart
olmayan herhangi bir uzuv, yapısal kinematik uzuv parametreleriyle karakterize
edilebilir (Koivo, 1989);
ln: uzuv uzunluğu, mafsal eksenleri arasındaki ortak normal boyunca olan
mesafedir. zve zi-1 eksenleri arasındaki uzunluğa diktir.
45
αi: positif zi-1 ekseninden positif zi eksenine olan pozitif x ekseni etrafındaki
dönme açısıdır.
θi: pozitif xi-1 ekseninden positif zi eksenine olan pozitif zi-1 ekseni etrafındaki
dönme açısıdır.
di 1. koordinat çerçevesinin orijininden xi-1 ekseni boyunca olan zi-1 ve xi
eksenlerinin kesişimine olan uzaklıkdır.
Yapısal parametrelerin bazıları robot kolu hareketi sırasında zamanla değişebilir.
Bu değerleri değişen parametreler, örneğin dönel mafsaldaki θI açısı, mafsal
değişkenleri olarak isimlendirilir.
3.1.6 İleri Kinematik
Bir robot kolunun mafsal uzayı tanımı, kartezyen uzayı tanımıyla
ilişkilendirilebilir.Yani, verilen bir mafsal değişkenleri takımı için uç noktasının
pozisyonu veoryantasyonu kartezyen koordinatlarda belirlenebilir. Bu işlem ileri
kinematik olarakbilinir. İleri kinematik, önceden bahsettiğimiz A matrislerini
kullanarak uç noktasınınpozisyon ve oryantasyonunu veren RTH transformasyon
matrisini bulma olayıdır. RTHtransformasyon matrisi, genel öteleme matrisi ile
RPY açılarının oryantasyontransformu matrisiyle çarpılarak da elde edilebilir.
46
D-H parametrelerini kullanarak her bir eklem için bulduğumuz dönüşüm
matrislerinin aşağıdaki gibi çarpılmasıyla ana çerçeveden araç çerçeveye doğru
ileri yönlü robot kinematiği çıkarılır.
𝑻𝟓𝟎 = 𝑻𝟏
𝟎 ∗ 𝑻𝟐𝟏 ∗ 𝑻𝟑
𝟐 ∗ 𝑻𝟒𝟑 ∗ 𝑻𝟓
𝟒
Matriste kullanılan kısaltmalar :
𝐶𝑛 = 𝐶𝑜𝑠(𝜃𝑛) , 𝑆𝑛 = 𝑆𝑖𝑛(𝜃𝑛) , 𝐶23 = 𝐶2 ∗ 𝐶3 − 𝑆2 ∗ 𝑆3
𝐶234 = 𝐶23 ∗ 𝐶4 − 𝑆23 ∗ 𝑆4
r11 = 𝐶1 ∗ 𝐶5 ∗ 𝐶234 − 𝐶1 ∗ 𝑆5 ∗ 𝑆234
r12 =−𝐶1 ∗ 𝑆5 ∗ 𝐶234 − 𝐶1 ∗ 𝐶5 ∗ 𝑆234
r13 =𝑆1
r21 =𝑆1 ∗ 𝐶5 ∗ 𝐶234 − 𝑆1 ∗ 𝑆5 ∗ 𝑆234
r22 =−𝑆1 ∗ 𝑆5 ∗ 𝐶234 − 𝑆1 ∗ 𝐶5 ∗ 𝑆234
r23 =−𝐶1
r31 =𝐶5 ∗ 𝑆234 + 𝑆5 ∗ 𝐶234
r32 =−𝑆5 ∗ 𝑆234 + 𝐶5 ∗ 𝐶234
r33 = 0
Px =𝐶1 ∗ 𝐶234 ∗ 𝐿4 + 𝐶1(𝐶23 ∗ 𝐿3 + 𝐶2 ∗ 𝐿2)
Py =𝑆1 ∗ 𝐶234 ∗ 𝐿4 + 𝑆1(𝐶23 ∗ 𝐿3 + 𝐶2 ∗ 𝐿2)
Pz =𝑆234 ∗ 𝐿4 + 𝑆23 ∗ 𝐿3 + 𝑆2 ∗ 𝐿2 + 𝐿1
47
3.1.7 Ters Kinematik
Kartezyen koordinatlarda verilen bir uç noktası pozisyonu ve oryantasyonu için,
mafsal değişkenlerinin alması gereken değerleri bulma işlemine ters kinematik denir.
Ters kinematik ileri kinematiğe göre çözümlenmesi oldukça zor olabilmektedir. Birçok
durumda çözümü garanti etmeyen ve deneme yanılma yöntemini de içeren teknikler
kullanmak gerekmektedir.
Şekil 2.34 Ters Kinematik
Dört serbestlik derecesine sahip bir robotun ileri yön kinematiği aşağıdaki gibidir.
𝑇50 = 𝑇1
0 ∗ 𝑇21 ∗ 𝑇3
2 ∗ 𝑇43 ∗ 𝑇5
4
[ 𝑇10 ]−1 ∗ 𝑇5
0 = [ 𝑇10 ]−1 ∗ 𝑇1
0 ∗ 𝑇21 ∗ 𝑇3
2 ∗ 𝑇43 ∗ 𝑇5
4
Denklemde [ 𝑇10 ]−1 ∗ 𝑇 = 𝐈5
0olduğundan, denklem aşağıdaki gibi daha basit
bir şekilde yazılabilir.
[ 𝑇10 ]−1 ∗ 𝑇5
0 = 𝑇21 ∗ 𝑇3
2 ∗ 𝑇43 ∗ 𝑇5
4
Ters kinematiğin çözümü, yukarıdaki denklemde eşitliğin sağ ve sol tarafında karşılıklı
48
yer alan matris elemanlarının birbirine eşitlenmesiyle gerçekleştirilir.Kullanılan diğer
denklemler aşağıda verilmiştir.
[ 𝑇10 ∗ 𝑇2
1 ]−1 ∗ 𝑇50 = 𝑇3
2 ∗ 𝑇43 ∗ 𝑇5
4
[ 𝑇10 ∗ 𝑇2
1 ∗ 𝑇32 ]−1 ∗ 𝑇5
0 = 𝑇43 ∗ 𝑇5
4
[ 𝑇 ∗ 𝑇21 ∗ 𝑇3
2 ∗ 𝑇43
10 ]−1 ∗ 𝑇5
0 = 𝑇54
Ters kinematik çözüm greçekleştirilirken bazı trigonometrik eşitliklerden
yararlanılır.Bu eşitlikler aşağıda verilmiştir.
𝐶𝑜𝑠(𝜃) = 𝑎 ise 𝜃 = 𝐴𝑡𝑎𝑛2(∓√1 − 𝑎2, 𝑎)
𝑆𝑖𝑛(𝜃) = 𝑎 ise 𝜃 = 𝐴𝑡𝑎𝑛2(𝑎, ∓√1 − 𝑎2)
𝐶𝑜𝑠(𝜃) = 𝑎 ise ve 𝑆𝑖𝑛(𝜃) = 𝑏 ise 𝜃 = 𝐴𝑡𝑎𝑛2(𝑏, 𝑎)
𝑎𝑆𝑖𝑛(𝜃) + 𝑏𝐶𝑜𝑠(𝜃) = 0 ise 𝜃 = 𝐴𝑡𝑎𝑛2(−𝑏, 𝑎) ve ya 𝜃 = 𝐴𝑡𝑎𝑛2(𝑏, −𝑎)
𝑎𝑆𝑖𝑛(𝜃) + 𝑏𝐶𝑜𝑠(𝜃) = 𝑐 ise 𝜃 = 𝐴𝑡𝑎𝑛2(𝑎, 𝑏) + 𝐴𝑡𝑎𝑛2(∓√𝑎2 + 𝑏2 − 𝑐2, 𝑐)
𝛉𝟏 𝐯𝐞 𝛉𝟐 𝐢ç𝐢𝐧 𝐓𝐞𝐫𝐬 𝐊𝐢𝐧𝐞𝐦𝐚𝐭𝐢𝐤 Çö𝐳ü𝐦 𝐘𝐚𝐩𝐚𝐥ı𝐦
[ 𝑇10 ]−1 ∗ 𝑇5
0 = 𝑇21 ∗ 𝑇3
2 ∗ 𝑇43 ∗ 𝑇5
4
Eşitliğinde sağ ve soldaki matrislerin (2,4) elemanlarını karşılıklı eşitlersek ;
−S1 ∗ px + C1 ∗ py = 0 ise bu durumda 𝜃1 aşağıdaki gibi elde edilir.
θ1 = Atan2(−py, −px) ve ya θ1 = Atan2(py, px)
Dönel eklem değişkeni 𝜃2 aşağıdaki denklemde
[ 𝑇10 ]−1 ∗ 𝑇5
0 = 𝑇21 ∗ 𝑇3
2 ∗ 𝑇43 ∗ 𝑇5
4eşitliğinde sağ ve soldaki
matrislerin (3,4) elemanlarını karşılıklı eşitlersek ;
49
𝐶2(𝐶3(𝐶4 ∗ 𝐿4 + 𝐿3) − 𝑆3 ∗ 𝑆4 ∗ 𝐿4 + 𝐿2) − 𝑆2(𝑆3(𝐶4 ∗ 𝐿4 + 𝐿3) + 𝐶3 ∗ 𝑆4 ∗ 𝐿4)
= 𝑝𝑧 + 𝐿1
𝑆2 𝑣𝑒 𝐶2’nin katsayılarına k ve l dersek;
𝜃2 = 𝐴𝑡𝑎𝑛2(𝑘, 𝑙) ∓ 𝐴𝑡𝑎𝑛2(√𝑘2 + 𝑙2 − (𝑝𝑧 + 𝐿1)2, (𝑝𝑧 + 𝐿1))
𝜃3 ve 𝜃4 ‘ de aynı yöntemlerle bulunacaktır. 𝜃5 açısı uç işlevsinin koordinatlarında
olduğu için değeri 0(sıfır) dır.
3.2 Robot Kolunun Tahrik Elemanları ve Montajı
Robot Kolu beş adet standart RC servo motor ile yapılan bir robot projesidir.
Robot kolunun kontrolü için üzerinde 5 adet RC servo bağlantısı olan RC
servocontrol devresi kullanılacaktır. Bu bölümde kullanılan RC servo motorlar
kısaca servo olarak ifade edilecektir.
3.2.1 RCServo Motorlar
Bir RC servo motor;
- DC motor,
-Deviri düşürmek için yeterli sayıda dişli grubu,
- Kod çözücü ve elektronik devreden meydana gelmiştir..
RC servo motor iç yapısından dolayı 180 derece aralıkta hareket eder. Yapı
değişikliği ile sürekli dönmesi sağlanabilir. Servo motor içerisinde çok hassas
plastik dişliler bulunduğundan mili dışarıdan elle hızlı şekilde döndürülmemelidir.
Yine dışarıdan elle dönmeye fazla zorlanmamalıdır. Aksi halde servo dişlileri
50
bozulacağından kullanılamayabilir. Servo motoru kontrol etmek demek,
içerisindeki elektronik sürücü devresini kontrol etmek demektir. Bu kontrolü
sağlayabilecek en kolay yöntemlerden biri mikrodenetleyici ile yap ilan kontrol
sistemidir. Bir mikrodenetleyici, RC servo motorun elektronik sürücü devresini
doğrudan sürebilir.
Şekil 2.35Hitec HS-311 Servo Motor
Şekil 2.36 Standart Servo Motorun Bileşenleri
51
Bir RC servo motor üç kabloludur. Bunlar, +VCC, GND ve DATA girişleridir.
RC servo motorlar 4,8 ile 6V arasında bir DC gerilimle sürülür. Genelde +VCC
kırmızı, GND siyah ve DATA (sinyal) kablosu beyaz, sarı veya turuncudur.
Şekil 2.37 Standart Servo Motor Kablo Bağlantı Şeması
• Siyah kablo toprak (-)
• Kırmızı kablo güç (+)
• Konektörü Kablo Uzunluğu: 300mm
3.2.2 PWM
RC servonun kontrolü, data (veri-sinyal) ucundan verilen PWM (pals Genişlik
Modülasyonu) sinyalin durumuna göre kontrol edilir. RC servo motora her bir
10..20 msn de bir, 0,5 ile 1,5 msn arasında bir PWM sinyal uygulandığında kontrol
edilebilir. Uygulanacak olan PWM sinyalin lojik 1’de kalma süresi 0,5 msn ise
52
motor mili en sola döner. PWM sinyalin lojik 1’de kalma süresi 0,5 ile 1 msn
arasında artırılırsa motor mili ortaya doğru konumlanır. PWM sinyalin lojik 1’de
kalma süresi 1,5msn’ye doğru artırılırsa motor mili sağa doğru konumlanır. Eğer
10..20 msn aralıklarla aynı sinyal verilirse konumunu korur. Servo motorların
sinyal değerleri markalara göre farklılık gösterebilir. Değerleri bilinmeyen bir
servo motorun palssüreleri deneme yanılma yoluyla bulunabilir. Yukarıda kısaca
özellikleri belirtilen RC servo motor bir projede rastgele kullanılamaz. RC
servonun projedeki konumu, gerekli palsler uygulanarak belirlenmelidir. Montajı
anlatılmakta olan robot kol servolarında da aynı yöntem uygulanacaktır.
Şekil 2.38Hitec HS-311
3.3 Robot Kolu Mekanik Tasarımı
Üç boyutlu tasarım programları makina tasarlamanın vazgeçilmez araçlarıdır.
Solid Works tasarım programı geniş kütüphane desteği ve döküman temini
nedeniyle bu projede kullanılmıştır.
53
Çalışmanın ilk kısmında robot çalışma alanı belirlenmiş ve bugüne kadar
yapılmış robotlar incelenerek hareket kabiliyeti ve maliyet düşüklüğü ön planda
tutularak tasarım ortaya çıkmıştır. Çalışma alanını içinde hareketlerini rahatça
uygulayabilecek robotumuzun uzuv uzunluklarını temel alarak, fizik prensipleri ve
mühendislik hesapları hesaplanıp robotumuzun servoları seçilmiştir. Servo
seçiminde Hitechassasiyet güçlülüğü ve overshoot problemleri yaratmaması
nedeniyle tercih edilmiştir.
Servoların hareket kabiliyeti 180 derecedir. Bu açı dahilinde robot dönme ve
öteleme hareketlerinin gerçekleştiği daire ve ters üçgen sembolleri ile belirtilen 3
serbestlik derecesine sahiptir.
Şekil 2.39 Serbestlik Dereceleri
”Robot kinematik denklemleriyle robotun hız tork ve ivme analizi yapılır. Her
bir robot ekseninin konumu, bir öncekine veya bir sonrakine göre ifade edilir.
54
Arka arkaya oluşturulan bu ilişkiye kinematik zincir denilir. Bu ilişkiyi oluşturan
ifadeler, robotun konum ve yönelim bilgisini içeren 4 x 4 homojen dönüşüm
matrislerinden (transformasyon matrisi ) oluşturulur. Her bir eklem için bir
homojen dönüşüm matrisi oluşturulur. Oluşturulan bu matrislerin sayısını, robotun
serbestlik derecesi belirler. Üç boyutlu uzayda herhangi bir noktaya ulaşmak için 6
serbestlik derecesi yeterlidir. Buna karşın, serbestlik derecesi altıdan fazla olan
robotlarda artıklık (redundancy ) durumu oluşur (Bingöl ve Küçük, 2005).
3.3.1 Robot Kolunun Mekanik Elemanları
Robotu dört ana dala ayırsak;
-Taban
-Omuz
-Kol
-Uç Etkileyici bölümlerinden oluşmaktadır.
Robot Kolu Mekanik Malzemeleri;
Robot kolunun dış gövdesi için genellikle plastik malzeme kullanılmıştır.
Plastik parçaların birleştirilmesi ve robot kolunun el kısmı için ise alüminyum
malzeme kullanılmıştır. Robot kolunun yapımında kullanılacak malzemeler
aşağıdaki gibidir;
56
3.3.1.1 Robot Kolunun Taban Bölümü
Robot Kolunun zemininde şekil 2.40’deki gibi 225 mm x 115 mm ebatlarında
ve 3mm kalınlığındaki plastik tabaka kullanılır.
Şekil 2.40 Zemin İçin Kullanılacak Plastik Parça 2D Teknik Resmi
57
Şekil 2.41 Zemin İçin Kullanılacak Parça 3D Görünümü
Şekil 2.41‘daki plastik parçanın üzerindeki A, B, C, D delikleri 3 mm
çapında olup robot kolunu zemin plastiğine bağlamak için kullanılır. Diğer
delikler ise servo sürücü motor kartının ve batarya’nın zemin plastiğine
bağlanması için kullanılır. Robot kolunun kaymaması için zemin plastiğine
kendinden yapışkanlı keçe yapıştırılabilir.
Şekil 2.42 Zemin ve Gövde Arasındaki Alüminyum Parça 2D Teknik Resmi
58
Şekil 2.43 Zemin ve Gövde Arasındaki Parça 3D Görünümü
Robot kolunun gövdesi zeminden yaklaşık 40 mm yüksek olmalıdır. Bu
yüksekliği sağlamak ve zemin ile gövdeyi birbirine bağlamak için şekil 2.43’deki
2 mm kalınlığındaki alüminyum parçadan 4 adet hazırlanır. Kıvrım çizgilerinden
90 derece kıvrılarak hazırlanır.
Şekil 2.44 Zemin İle Birleştirilmiş Metal Parçalar
59
Robotun Gövdesi için şekil 3.12’daki 3 mm kalınlığındaki plastik parça
kullanılır. Gövdeyi oluşturacak plastik parça 110 mm çapındadır. Bu parçanın
ortasına servo’ya monte edilebilmek için 15 mm çapında bir delik delinir. Bu
parça üzerindeki A, B, C, D delikleri zemin ile gövde parçasını bağlamak için
kullanılır ve 3mm çapındadırlar. Diğer delikler servo’yu gövdeye bağlamak için
kullanılırlar. 3.3.1.2 Robot Kolunun Omuz Bölümü
Robot Kolunun hareketli gövdesine iki adet servo bağlanmalıdır. Bu
servo motorları birbirine paralel çalışacaktırlar. İki ve üç numara olarak
adlandırılacak bu servolar’ın 30 cm’lik kablolar ı olması yeterlidir. Robot
kolunda servolar in hareketli gövdesine bağlanması için Şekil 2.52’deki
alüminyum parça
Şekil 2.45 Robot Kolunun Gövde Plastik Parça 2D Teknik Resmi
60
Şekil 2.46 Robot Kolunun Gövde Parça 3D Görünümü
Robot Kolunun hareketli gövdesine iki adet servo bağlanmalıdır. Bu
servo motorları birbirine paralel çalışacaktırlar. İki ve üç numara olarak
adlandırılacak bu servolar’ın 30 cm’lik kablolar ı olması yeterlidir. Robot
kolunda servolar in hareketli gövdesine bağlanması için Şekil 2.46’deki
alüminyum parça kullanılacaktır.
3.3.1.3 Robot Kolunun Kol Bölümü
Şekil 2.47 Ön Kol Plastik Parça 2D Teknik Resmi
61
Şekil 2.48 Ön Kol Plastik Parça 3D Görünümü
Robot kolunun alt kolunu oluşturmak için iki ve üç numaralı servo motorlara
şekil 2.48’deki gibi iki adet 3mm’lik 144mm x 24 mm ebatlarında plastik parça
takılmalıdır. Bu plastik parça üzerindeki delikler servo başlıklarına bağlantı yapmak
için kullanılır.
Şekil 2.49 Ön Kol Plastik Parça Servolara Montaj Resmi
62
Robot kolunun hareketli gövdesine bağlanacak servo ve diğer bağlantı
parçaları Şekil 2.49’deki gibi birleştirilir. Robot kolunun hareketli gövdesinde üst
kolu taşıyabilmek için iki adet servo kullanılacaktır. Hareketli gövdeye bağlanacak
iki servoların başlangıç ve bitiş pozisyonları aynı olmalıdır. Servoların başlangıç ve
bitiş pozisyonlarını eşitlemek için servo başlıklarını çıkarıp tekrar doğru pozisyona
takmak gerekebilir. Özellikle aynı marka servolar robot kolu yapımlarında tercih
edilmelidir. Farklı marka servoların özellikleri aynı olsa bile konumlarındaki
farklılıklarından dolayı titremelere ve düzgün çalışmamasına neden olmaktadır.
Şekil 2.50 Üst Kol Plastik Parça 3D Görünümü
Şekil 2.51 Üst Kol Plastik Parça 2D Teknik Resmi
63
Robot kolunun üst kol kısmı bir adet servodan oluşmaktadır. Dört numaralı
servo motorunun kablosu 50 cm olmalıdır. Robot kolunun en önemli parçalarından
biri üst kol bağlantı parçasıdır. Bu parça 25 mm x 120 mm ebatlarında plastik
malzemeden yapılır. Üzerindeki tüm delikler 3 mm çapındadır. Dört noluservo
başlığını ön kola vida bağlantısı yapılır ve diğer ön kol ile üst kol bağlantısı
perçinlenmiş servo başlığı aracılığıyla yapılarak dönme hareketi sağlanmış olur.
Perçinlenen servo başlığı rahat dönebilecek kadar sıkılmalıdır.
Şekil 2.52 Üst Kol Plastik Parça Montaj Resmi
64
Şekil 2.53 Servo Üst Kol Bağlama Parçası 3D Görünümü
Robot kolunun üst kolunda bulunan bir adet servo motoru üst kol
parçasına bağlamak için şekil 2.60’daki parçadan iki adet hazırlanmalıdır. Bu
parça 2mm alüminyumdan ve 8 mm x 62 mm ebatlarındadır. Şekil 2.60’de
gösterilen konumlarından 90 derece kıvrılmak, M3 vidalarla üst kola montajı
yapılmalıdır.
Şekil 2.54Gripper Servo Üst Kol Bağlama Parçası 2D Teknik Resmi
65
3.3.1.4 Robot Kolunun Uç Etkileyici Bölümü
Robot kolunun el kısmında iki tane birbirleri ile ters yönde çalışan parmak
bulunmaktadır. Beş numaralı servonun tek çıkışı ile bu hareketi sağlamak için şekil
xx’deki gibi iki adet plastik dişli kullanılacaktır. Kullanılan bu dişliler 27 mm
çapındadır ve 48 modüldür. Kullanılacak bir numaralı dişli beş numaralı servonun
başlığına iki numaralı dişli ise onun tam karşısına takılması gerekmektedir. İki
numaralı dişli ile bir numaralı dişliyi aynı seviyeye getirmek için şekil 2.64’deki
metal parça hazırlanmalıdır.
Şekil 2.55 Gripper Dişlisi Resimi
3.3.1.5 Robot Kolunun Montajının Tamamlanması
Çalışmalar sırasında gerekli yerler tekrardan sökülüp takılarak ya da uygun parça
değişimi yapılarak revize edilmiştir.Özellikleservoların eş konumda olmamalarından
kaynaklanan titreme ve ısınma problemleri bu şekilde aşılmıştır. Uç etkileyicinin diş
yataklar inin ayarlanmasında aynı yöntem sayesinde çözümlenmiştir.
67
4. SİMÜLASYON ÇALIŞMALARI
4.1. Giriş
Görüntü işleme isim (Almanca Bildbearbeitung) ölçülmüş veya kaydedilmiş
olan elektronik (dijital) görüntü verilerini, elektronik ortamda (bilgisayar ve
yazılımlar yardımı ile) amaca uygun şekilde değiştirmeye yönelik yapılan bilgisayar
çalışması.
Görüntü işleme, verilerin, yakalanıp ölçme ve değerlendirme işleminden
sonra, başka bir aygıtta okunabilir bir biçime dönüştürülmesi ya da bir elektronik
ortamdan başka bir elektronik ortama aktarmasına yönelik bir çalışma olan "Sinyal
işlemeden" farklı bir işlemdir.
Görüntü işleme, daha çok, kaydedilmiş olan, mevcut görüntüleri işlemek,
yani mevcut resim ve grafikleri, değiştirmek, yabancılaştırmak ya da iyileştirmek
için kullanılır..
4.2.Görüntü Kavramları
4.2.1. İmge Kavramı
İmge (image), çeşitli yollarda elde edilen bilgilerin görüntüsel olarak
saklanmasına ve göstermesine olanak sağlayan resimlerdir. Her türlü iki boyutlu
bilgi imge olarak ele alınabilir.
Şekil 3.1 İmge Kavramı
68
4.2.2.İmgenin Oluşturulması
İmgeler, 3-Boyutlu gerçek nesne uzayından sadece 2-Boyutun kullanımı ile
oluşturulur. Kamera benzeri cihazların ışığa duyarlı 2-B yüzeyine nesneden
yansıyan ışık kullanılarak imge uzayına geçilir.
Şekil 3.2 İmgenin Oluşturulması
4.2.3.Sayısal İmge Kavramı
İmge Modeli: İmge iki boyutlu ışık-yoğunluk fonksiyonu olarak
adlandırılabilir ve f(x,y) ile gösterilir. (x,y) koordinatları belirtmekte, f(x,y)
fonksiyonunun değeri ise (x,y) noktasındaki pikselin ışıklık (intesity) değerini ifade
etmektedir.
Şekil 3.3 Sayısal İmge Kavramı
69
4.2.4 Sayısal İmge : Sayısala Dönüştürme
İmgelerin sayısal imge işleme teknikleri ile işlenebilmesi analog biçimden
sayısala çevrilmesi gerekmektedir. Bilindiği gibi analog bir işaretin sayısala
çevrilmesi iki aşamada gerçekleşir.
►Örnekleme : İşaretten belirli zaman anlarında örnekler alınması anlamına gelir.
İki boyutlu imgelerde uzumsal düzlemin sayısallaştırılmasına karşılık gelir.
►Nicemleme(Kuantalama) : Genlik seviyelerinin sadece belirli değerleri alması
işlemidir. Genlik değerinin sayısallaştırılmasına karşılık gelir.
SAYISALLAŞTIRMA = ÖRNEKLEME + NİCELEME
Şekil 3.4 Sayısallaştırma
70
4.2.5.Sayısal İmgede Piksel Kavramı
Şekil 3.5 Sayısal İmgede Piksel
Şekil 3.6 Sayısal İmgede Piksel
71
4.2.6. Sayısal İmgede Örnekleme (Uzamsal Çözünürlük)
Şekil 3.7 Çözünürlük Kavramı
Fiziksel boyutlar aynı (3.6” X 3.6”)
Çözünürlükler farklı
Çözünürlük imgenin piksel sayısı / birim fiziksel boyut
ifadesi ile bulunur.Birimi genelde ppi(pixels per inch) ya
da dpi (dot per inch) ifadeleri ile verilir.
4.2.7. İmge Dosyaları (Tipleri)
Sayısal imgeler, manyetik, optik, flash disk gibi ortamlarda dosyalar halinde
saklanmaktadır. İmge dosyalarının bilgisayarda saklanması genellikle bmp ve jpg
dosya tipleri tercih edilmektedir.
JPEG formatı özellikle sıkıştırma verimliliği nedeni ile İnternet’te kullanımıyla
oldukça yaygınlaşmıştır. Genellikle kayıplı sıkıştırma ile elde edilen jpeg dosyaları
kullanılmaktadır.
4.3 OpenCV
OpenCV yazılım kütüphanesi (Open Computer Vision Library), ilk olarak
Intel firması tarafından geliştirilmiştir (BradskiveKaehler, 2008). Daha sonraki
yıllarda ve günümüzde, Willow Garage isimli bir robotik temalı firma tarafından
geliştirilmesine devam edilmektedir (Willow Garage, 2012).OpenCV görüntü
işlemek için C ve C++ program dilleri ile yazılmış bir kütüphanedir ve içerisinde
72
bir çok fonksiyonu da barındırır.Aslında gömülü sistemlerdeki görüntü işleme
alanına yeni gelişmeler getiriyor, çünkü OpenCV açık kaynaklı bir kütüphanedir.
OpenCV de yazılan algoritmalar farklı alanlarda kullanılabilir.Kütüphane C ve C++
ile yazılabilir ve Linux, Windows ve Mac OSX işletim sistemlerinde
çalıştırılabilir.Pyton, Ruby, Matlab ve diğer diller için ara yüzler üzerinde aktif
geliştirmeler de vardır.OpenCV, hesaplama verimliliği için gerçek zamanlı
uygulamalara güçlü bir şekilde odaklanarak tasarlanmıştır.OpenCV optimize
edilmiş C ile yazılmıştır ve çok çekirdekli işlemcilerden yararlanabilir.Bu
kütüphane'nin kullanıcıya yönelik hedeflerinden birisi de bilgisayarda kullanımı
kolay bir bilgisayarlı görüş (computer vision) ortamı sağlamaktır. Böylece program
geliştiricilerininkolayvehızlıbirşekildeuygulamalarıgeliştirilebilmesineyardımcıolm
ayıhedeflemektedir. OpenCV içerisinde gelen beş yüzden fazla farklı işlem yapan,
ilgili görüntü işleme, bilgisayarlı görü, makine öğrenmesi fonksiyonları da
bulunmaktadır. Birçok farklı alanda kullanılmaktadır. Bunlar arasında; Internet'ten
veya uydu'dan elde edilmiş haritalar, görüntü arama, görüntü hizalama, tıbbi
görüntüler, gürültü azaltma, nesne analizi, güvenlik ve saldırı tespit sistemleri,
otomatik gözetleme (surveillance system), üretim kontrol sistemleri, kamera
kalibrasyonu, askeri uygulamalar, insansız hava, toprak ve sualtı araçları,
fabrikalarda ürün denetimi ve stereo-görüş (stereo-vision) sayılabilir. Çalışma
kapsamında geliştirilen sisteme ait şematik Şekil 3.8 'de görülmektedir.
Şekil 3.8 Çalışma Kapsamında Geliştirilen Sistem
73
OpenCV aşağıdaki şekilde görüldüğü gibi gruplara ayrılmış bir çok fonksiyona
sahiptir.
Şekil 3.9 OpenCV Gruplara Ayrılmış Fonksiyonları
4.3.1. OpenCV Yapıları ve Kapsamları
OpenCV kütüphanesi, beş temel bileşenden oluşmaktadır. Bu bileşenlerin
dört tanesi Şekil 1’de görülmektedir.Computer Vision (Bilgisayarla Görü/Görme)
kelimesinin baş harfleri kullanılarak isimlendirilen CV bileşeni, temel resim işleme
fonksiyonları ve Bilgisayarla Görü/Görme için kullanılan yüksek seviyeli
algoritmaları bünyesinde barındıran beş temel kütüphaneden biridir. Machine
Learning Library kelimesinin baş harfleri kullanılarak isimlendirilen MLL bileşeni,
adından da anlaşılacağı üzere Makina Öğrenmesi dalı için gerekli istatistiksel
verilere ulaşmak, mevcut verileri sınıflandırmak için kullanılan
fonksiyonları/araçları içeren diğer bir kütüphanedir. HighGUI bileşeni, slider, form
gibi OpenCV kütüphanesi içerisinde tanımlanmış pek çok nesneyi yaratabilmemizi
74
sağlayan bir grafik arabirimi olmakla beraber, resim ve videoları kaydetmek,
yüklemek, hafızadan silmek için gerekli giriş/çıkış (I/O) fonksiyonlarını da içerir.
Şekil 3.10 OpenCV Yapıları ve Kapsamları
4.3.2 OpenCV de ilk program
OpenCV başta zor gelebilir, çünkü kullanılan fonksiyonlar oldukça zor.İlk
programda resim gösterme fonksiyonunun sonucunu Şekil 3.11’de görebilirsiniz.
Şekil 3.11 OpenCV’de Resim Gösterme
IplImage* img = cvLoadImage( “01.jpg” );
75
Bu satır resimi yükler.cvLoadImage() dosya adına dayalı olarak yüklenecek
dosya biçimini belirleyen yüksek düzey bir fonksiyondur.Görüntü veri yapısı için
greeken belleği otomatik olarak ayırır.Ayrıca cvLoadImage() geniş çeşitlilikte
resim formatını okuyabilir, BMP, DIB, JPEG, JPE, PNG, PBM, PGM, PPM, SR,
RAS ve TIFF formatlarını okuyabilir.
cvNamedWindow( “Example1”, CV_WINDOW_AUTOSIZE );
Bir diğer yüksek düzey fonksiyon olan cvNamedWindow(), ekranda
birpencere açar ve gerekli fonksiyonlar varsa istenilen resimi pencerede gösterir..Bu
fonksiyon HighGUI kütüphanesi tarafından sağlanır ve pencere ismini (bu kısımdan
kazanır, “Example1”). cvNamedWindow() pencere seçeneklerini tanımlar.Parantez
içi (0) yazılırsa pencere boyutu varsayılan değeri alır ve ya
CV_WİNDOW_AUTOSİZE yazılırsada aynı işlevi görür.
cvShowImage( “Example1”, img );
Herhangi bir zamanda IplImage pointerın da bir resim atadıysak
cvShowImage() ile açılan pencerede bu resimi gösterebiliriz. cvShowImage()
fonksiyonu, cvNamedWindow() ile daha önce açtığımız ve ismini belirlediğimiz
pencereyi çağırır ve resimi gösterir.
cvWaitKey(0);
The cvWaitKey() fonkisyonu programın durdurulup bir tuşa basılmasını
bekleneceğini sorar.Eğer pozitif değer verilirse program bekler ve bir tuşa basılmazsa
devam eder.Eğer 0 ya da negative değer verilirse program bir tuşa basılana kadar
bekler.
cvReleaseImage( &img );
İşlevimizin bittiği bir resimi hafızadan kaldırabiliriz.OpenCV bu
fonksiyonda IplImage pointerından bir pointer bekler.Çağırma tamamlandıktan
76
sonra pointer olan img boş olarak tanımlanır.
cvDestroyWindow( “Example1” );
Son olarak, (“Example1”) ismiyle açılan pencereyi kapatabiliriz.Bu fonksiyon
ismini verdiğimiz pencereyi kapatır.
Thresholding
Thresholding bir resimin her mini bölgesindeki gri tonlarını göre bütün
bölgelerini bulur.Fonksiyon bunu resim eşiklendiğinde yapar.
cvThreshold(const CvArr* src, CvArr* dst, double threshold, double maxValue, int
thresholdType)
Src :Source array(Kaynak Dizi)(Tek-Kanal, 8-bit ya da 32-bit floating point)
Dst :Destination array(Hedef Dizi); Src ve ya 8-bit türünde olmalı
Threshol :Eşikleme değeri
maxValue :CV_THRESH_BINARY’ de kullanılacak maksimum değer
thresholdType :Eşikleme tipi
Eşiklemeye bir örnek Şekil 3.12’de olduğu gibi gösterilmiştir.
Şekil 3.12 Eşikleme Örneği
threshold(image, image, 150 ,255, CV_THRESH_BINARY);
Bu fonksiyon kullanacağımız resimi eşiklenmiş resime dönüştürür.Kaynak
resim, fonksiyonda yukarıda görüldüğü gibi “resim” dosyasında işlenir.Hedef resim
77
de fonksiyonda eşiklenmiş resime dönüştürülerek kaynak resimin üzerine
yazılır.Fonksiyonda eşikleme değerine göre işlem yapılır.Bu değer gri değerini
referans değer olarak tanımlar.Bizim 8-bitlik resmimiz 256 farklı noktada pixel
değerine sahip olabilir.Gri resim yine bu değerleri taşır.Sıfır karanlığı tanımlar ve 255
beyazı tanımlar.Görüntümüzde bu değerler arasında farklı matris değerleri
bulunur.150 gri referans seviyesini tanımlar.Eğer resimde gri seviyesi 150 yi geçerse
bu pixel 255(beyaz) değerini alır.Eğer resimde gri seviyesi 150’nin altında ise pixel
0(siyah) değerini alır.Bu 0(sıfır) ve 255 değerleri 1’ler ve 0’lar 255=1 ve 0=0 olarak
atanır.Eğer eşikleme referans değeri değişirse sonuçlarda 150 ile 100 arasında değişir
ve Şekil 3.13’deki gibi olur.
Şekil 3.13 Input İmage
4.3.3Ağırlık Merkezi Koordinatlarını Bulma
Resimdeki objelerin koordinatları birbirini izleyen bazı fonksiyonlarla
bulundu.Koordinat bulma bu projede çok önemlidir çünkü Ardunio’ya gönderilen
herhangi bir yanlış nokta robot kolunu yanlış noktaya gönderecektir ve işlem
başarısız olacaktır.Objelerin koordinatlarımı milimetrik bulmak bu sorunu ortadan
kaldıracaktır.Aynı zamanda görüntü işlemenin doğru ve geometrik bir şekilde
yapalabilmesi için kameranın doğru bir şekilde konumlandırılması gerekir.Birden
fazla objenin koordinatlarını bulmak için grup olarak işlem basamakları belirlendi.
► Boş matrisleri atama
78
► Resimi 1 ve 0 görüntü operatörleriyle basitleştirme
► Resimin yatay sürekliliklerini bulma
► Resimin dikey sürekliliklerini bulma
► Süreklilik matrislerini toplama ve koordinatları bulma
3.3.3.1. Boş Matrisleri Atama
Bu matrisler programda ilk olarak basit C++ kodlarıyla yatay süreklilik vb.
gibi işleme operatörlerinin matris değeriyle 100x100 boyutunda
tanımlanırlar.Matrisler for döngüsüyle oluşturulur.Bütün matris değerleri
başlangıçta 0 olarak atanır.
int y2mat[100][100];
int y3mat[100][100];
int y4mat[100][100];
Mat image = imread ("outfile.jpeg");
Mat ynn = image.clone();
k=ynn.rows*2;
l=ynn.cols*2;
for(i=0;i<k/10;i++)
{
for(j=0;j<l/10;j++)
{
y2mat[i][j]=0;
y3mat[i][j]=0;
y4mat[i][j]=0;
}
}
Ynn eşiklenmiş resim olacaktır. k ve l resimin maksimum satır ve sütün
değerleridir.Bu değerler önce 2 ile çarpılır daha sora 10 ile bölünürler ve 5 e
79
bölünmüş olurlar.Aslında bu sadece resimi basitleştirmek içindir.Resimin bölgesel
parçalarını tanımlayan 5x5 pencereler 1 ve ya 0’dır.
4.3.3.2 1 ve 0 Pencere Operatörleriyle Resimi Basitleştirme
Kodun bu bölümünde resimin 5x5 pixellik boyutundaki bölgelerine 1 ve ya 0
atanır.Bu atama pencere operatörleriyle yapılır. Bu pencere operatörü resimde 5x5
lik boyutta kare görüntü işlemesi yapan bir pencere operatörüdür.Resim işlenir ve
sonuç “ymat” matrisi olarak Şekil 3.14’deki gibi belirlenir.
Şekil 3.141 ve 0 Pencere Operatörleriyle Resimi Basitleştirme
Sonuç resim 0 ve 1’lerden oluşan bir matristir.Resimde sıfırlar karanlık
noktaları ve birler beyaz noktaları göstermektedir.Bu noktada resimimiz görüntü
işlemeye ve sürekliliği kontrol etmeye hazırdır.Satır ve sütunler bir önceki bölümde
5 e bölünmüş boyutlu resimin boyutları olan 48x64’e tanımlanır.
80
4.3.3.3. Resimde Yatay Sürekliliği Bulma ve Kontrol Etme
Projenin bu bölümünde matristeki sıfırların sürekliliğini bulduk ve kontrol
ettik.Bu şekilde amaç, resimde tekrar eden yerler, objelerin yerlerini bulabilmek
için şu şekilde tanımlar; Sıfırların komşuları matriste yatay olarak sayılır.Örnek
olarak, işlem (0,0) ile başlar ve devam eder.Sıfır algılandığı zaman algoritma, sıfır
algılayamadığı koordinata kadar saymaya başlar.Matriste sıfırların başladığı nokta,
toplamın yarısı olarak tanımlanır ve bu sayı boş matris olarak atanır.Bu noktada
değer 1 olur.İşlem sonucu Şekil3.15’de görüldüğü gibi olur.
Y2mat
Şekil 3.15 Resimde Yatay Sürekliliği Bulma ve Kontrol Etme
81
Resimde görüldüğü gibi, sıfırların yataydaki orta noktaları ymat içinde
bulunup y2mat matrisine atanmıştır.
if(x>2 && x<8)
{
y2mat[i][j-x/2]=1;
x=0;
}
4.3.3.4. Resimde Dikey Sürekliliği Bulma ve Kontrol Etme
Projenin bu bölümünde resimdeki sıfırların dikey sürekliliği bulunmuştur.Bu
işlem tıpkı bir önceki işlemde olduğu gibi dikey süreklilik kontrol edilip
bulunuyor.Aynı algoritmayı burada kullandık ama birşey değişti.ymat matrisinde
yatay olarak sıfırların sürekliliği bulundu ve sonuçlar ymat3 matrisine atandı.Sıfır
algılandığı zaman algoritma, sıfır algılayamadığı koordinata kadar saymaya
başlar.Saymanın yarısı ve sıfırların başladığı nokta alınır ve bir önceki işlemde
olduğu gibi ymat3 matrisinde 1 olarak atanır.Örnek olarak : ymat(12,15) te sıfır
algılandı ve diyelim ki ymat(13,15), ymat(14,15), ymat(15,15), ymat(16,15)
koordinatları 0 ve ymat(17,15) koordinatı da 1 olsun.Sayıcı 5 sayacaktır.12-(5/2)=12
y3mat(14,15)=1.
if(x>2 && x<8)
{
y3mat[j-x/2][i]=1;
x=0;
}
Burada x matrisin sayma değerini tanımlar, sayma 2 ile 8 arasında olmalıdır.Sonuç
Şekil 3.16’da görüldüğü gibidir.
82
Şekil 3.16Resimde Dikey Sürekliliği Bulma ve Kontrol Etme
4.3.3.5. Süreklilik Matrislerinin Toplanması ve Koordinatların Bulunması
Burada objelerin koordinatları bulunur ve koordinatlar bir diğer mikroişlemci
Arduino’ya gönderilir.İlk olarak iki matris toplama operatörü içine alınır.Bu
matrisler y2mat ve y3mat’dır ve sonuç bir diğer boş matris olan y4mat’a
atanır.y2mat ve y3mat sadece sıfırlar ve birlerden oluşur.Bu matrisler topladığı
zaman ağırlık merkezini matris içinde 2(iki) değeri gösterecektir.Ve işlem döngünün
bitmesiyle biter ve sonuç Şekil 3.17’de olduğu gibidir.
83
Şekil 3.17Süreklilik Matrislerinin Toplanması ve Koordinatların Bulunması
Şekil 3.17’de de görüldüğü gibi koordinatlar doğru bir şekilde
bulundu.Objenin orta noktası 2(iki) değerine sahip.Sonraki adımda datalara
Arduino’ya gönderilmeden önce birşeyler yapılmalıdır.Resimde bir obje var ama
sistemimiz üç nokta buldu.Bu iki nokta, Resim 7’de kırmızı daire içine
alınmıştır.Kırmızı daire ile gösterilen iki nokta referans noktalarıdır.Koordinatlar bu
noktalara göre değiştirilmelidir.Robot Kolunun çalışacağı çerçevenin başlangıç ve
bitiş noktaları bu referans noktalarına göre hesaplanmalıdır.Hesaplamadan sonra bu
noktaların koordinatları Şekil 3.17’deki gibi bulunur.
84
Koordinatlarımız şimdi gönderilmeye hazırlar.Dataların Arduino’ya
gönderilmesi için öncelikle Arduino’da haberleşme dosyası açılır.Dosya ağacı ve
ismi Raspberry Pi’de /dev/ttyACM0 olarak açılır ve datalar bu dosyanın içine
yazılır.Arduino değerler etkin olduğunda okumaya başlar.
.
85
4.4 Mikrodenetleyiciler
Ucuz ve tek bir çipten oluşan bilgisayara mikro denetleyici denir. Tek çip
bilgisayar, bir bilgisayar sisteminin içerisinde bulunan tüm çipleri barındıran tümleşik
devre çipi (integrated circuit chip) demektir. Mikro denetleyici içine yerleştirilen
silikon parçalarının özellikleri standart kişisel bilgisayarlardakine oldukça benzerdir.
Mikro denetleyici hakkında söylenebilecek en önemli şey, bir programı içerisinde
depolayabilme ve daha sonra da çalıştırabilme yeteneğinin oluşudur. İşte bu yeteneği
onu mikroişlemcilerden ayıran en önemli özelliğidir. Mikro denetleyici içerisinde, bir
CPU, RAM, ROM, I/O uçları, seri ve paralel portlar, sayıcılar, bazılarında da A/D
veya D/A çeviriciler bulunur. Oysa mikro işlemcili sistemde (standart PC’ de olduğu
gibi) tüm bu yukarıda sayılan parçalar ayrı çipler halinde ana kart denilen baskılı
devre üzerine serpiştirilmiş şekilde bulunur.
Günümüz mikro denetleyicileri otomobillerde, kameralarda, cep
telefonlarında, fax- modem cihazlarında, fotokopi, radyo, CD çalar, TV ve bazı
oyuncaklar gibi çoğu akıllı cihazlar olarak adlandırabileceğimiz pek çok alanda
kullanılmaktadır.
86
Mikro Denetleyici Üreticileri ve Ürünleri
Neredeyse her mikro işlemci üreticisinin ürettiği birçok mikro denetleyici
bulunmaktadır. Bu denetleyicilerin mimarileri arasında çok küçük fark olmasına
rağmen aşağı yukarı aynı işlemleri yapabilmektedirler. Aşağıda mikro denetleyici
ürünlerine baz ı örnekler verilmiştir.
Birçok yonga üretici firma tarafından mikro denetleyiciler üretilmektedir. Her
firma üretmiş olduğu mikro denetleyici yongaya farklı isimler ve özelliklerini
birbirinden ayırmak için de parça numarası vermektedir. Örneğin; bunlardan
Microchip firması üretmiş olduklarına PIC adını verirken, parça numarası olarak da
12C508, 16C84, 16F877 gibi kodlamalar vermiştir. Intel ise ürettiği mikro
denetleyicilere MCS-51 ailesi adını vermiştir. İşte tüm bu farklı mikro denetleyiciler
arasında hangi firmanın hangi ürününün kullanılacağına karar vermeden önce,
uygulamanın gerektirdiği özelliklerin hangilerinin mikro denetleyicide bulunmasının
elzem olduğu düşünülmelidir. Aşağıda mikro denetleyicilerde bulunabilen özellikler
verilmiştir.
• Programlanabilir sayısal paralel giriş / çıkış
• Programlanabilir analog giriş / çıkış
Üreticinin Adı Ürün Örnekleri
Microchip PIC 12C508, 16F84, 16C711, 16F877, 17CR42,
Intel 8031AH, 8051AH, 8751AHP, 8052AH, 80C51FA
Motorola HC05, HC11, 6800, 6801, 6804, 6805, 6809
Atme ATtiny10, AT90S1200, AT90LS8535, ATmega16
Zilog Z8
SGS-Thomson ST6
Scenix SX18, SX28
Basic Stamp BS1-IC, BS2-IC
Tablo 4.1 Mikro Denetleyici Örnekleri
87
• Seri giriş / çıkış (senkron, asenkron ve cihaz denetimi gibi)
• Motor / servo kontrolü için darbe işaret çıkışı (PWM gibi)
• Harici giriş ile kesme
• Zamanlayıcı (Timer) ile kesme
• Harici bellek arabirimi
• Harici BUS arabirimi (PC ISA gibi)
• Dahili bellek tipi seçenekleri (ROM, PROM, EPROM ve EEPROM)
• Dahili RAM seçeneği
• Kesirli sayı (kayan nokta) hesaplaması
• D / A ve A / D çeviricileri
Bu özellikler ayrıntıya girdikçe daha da artmaktadır.
4.4.1 Arduino
Arduino bir G/Ç kartı ve Processing/Wiring dilinin bir uygulamasını içeren
geliştirme ortamından oluşan bir fiziksel programlama platformudur.
Arduino kartlarının donanımında bir adet Atmel AVR mikrodenetleyici
(ATmega328, ATmega2560, ATmega32u4 gibi) ve programlama ve diğer devrelere
bağlantı için gerekli yan elemanlar bulunur. Her Arduino kartında en azından bir 5
voltluk regüleentegresi ve bir 16MHz kristal osilator (bazılarında seramik rezonatör)
vardır. Arduino kartlarında programlama için harici bir programlayıcıya ihtiyaç
duyulmaz, çünkü karttaki mikrodenetleyiciye önceden bir bootloader programı
yazılıdır.
Arduino'nun temel bileşenleri; Arduino geliştirme ortamı (IDE),
Arduinobootloader (Optiboot), Arduino kütüphaneleri, AVRDude (Arduino
üzerindeki mikrodenetleyici programlayan yazılım) ve derleyiciden (AVR-GCC)
oluşur.
Arduino yazılımı bir geliştirme ortamı (IDE) ve kütüphanelerden oluşur. IDE,
88
Java dilinde yazılmıştır ve Processing adlı dilin ortamına dayanmaktadır.
Kütüphaneler ise C ve C++ dillerinde yazılmıştır ve AVR-GCC ve AVR Libc. ile
derlenmiştir.
Optiboot bileşeni Arduino 'nunbootloader bileşenidir. Bu bileşen, Arduino
kartlarının üzerindeki mikrodenetleyicinin programlanmasını sağlayan bileşendir.
Arduino'nun bu kadar çok tercih edilmesini sağlayan en önemli bileşen ise
mikrodenetleyici konusunda detaylı bilgi sahibi olmayı gerektirmeden herkesin
programlama yapabilmesini sağlayan Arduino kütüphaneleridir. Arduino
kütüphaneleri, geliştirme ortamı ile birlikte gelmekte ve "libraries"klasörünün altında
bulunmaktadır. Kodları inceleyerek mikrodenetleyicilerin nasıl programlandığını ve
kütüphanelerin yapısını görmeniz mümkündür.
Son olarak AVRDude bileşeni ise derlenen kodları programlamak için kullanılır.
4.4.1.1 Arduino Mega 2560
ATmega2560 (datasheet) tabanlı bir Arduino kartıdır. 54 dijital I/O pini
vardır. Bunların 14 tanesi PWM çıkışı olarak kullanıabilir. 16 analog girişi, 4 UART
(serial port), 16 MHz kristal osilatörü, USB bağlantısı, adaptör girişi, ICSP çıkışı ve
bir reset butonu vardır. ArduinoDuemilanove ve Diecimila için tasarlanmış tüm
eklentilere(shield) uyumludur.
Arduino Mega 2560 ArduinoMega’nın yerini alan gelişmiş versiyonudur.
Özellikler
-Mikrodenetleyici :ATmega2560
-Çalışma Gerilimi :5V
89
-Besleme Voltajı (Önerilen) :7-12V
-Besleme Voltajı (Limit) :6-20V
-Dijital I/O Pinleri :54 (14ü PWM çıkışı)
-Analog Giriş Pinleri :16
-I/O Pinlerinin Akımı :40 mA
-3.3V Pini Akımı :50 mA
-Flash Bellek :256 KB (8kB’ını bootloader kullanıyor)
-SRAM :8 KB
-EEPROM :4 KB
-Clock Frekansı :16 MHz
Arduino Mega 2560 Güç Özellikleri
TheArduino Mega 2560 USB ‘den ve harici bir adaptör veya batarya ile
beslenebilir. Güç kaynağı otomatik olarak seçilir.
Kart 6-20V arasında bir harici kaynaktan beslenebilir. Eğer 7Vun aşağısında
besleme kullanılırsa 5V çıkış pini 5V veremez ve kart dengesiz çalışabilir. 12V’tan
yukarı bir harici güç kaynağı kullanılırsa voltaj regülatörü fazla ısınıp karta zarar
verebilir. Dolayısıyla 7 ila 12 Volt kullanılması önerilir.
Arduino Mega2560 ‘ın diğer kartlardan farkı FTDI USB-to-serial sürücü
entegresi kullanılmamış olmasıdır. USB-to-Serialentegresi yerine ATmega16U2
USB-to-serial dönüştürücü olarak programlanmıştır.
Arduino Mega 2560 Giriş Çıkışları
54dijital giriş çıkış pinlerinin hepsi pinMode(), digital Write(), ve digital
Read() fonksiyonları kullanılarak giriş veya çıkış olarak kullanılabilir. 5 voltta
çalışırlar ve her pin maksimum 40mA giriş veya çıkış sağlar. Pinler de 20-50
90
kOhmpull-up dirençleri (normalde bağlantısız) vardır. Bu pinlerin haricinde özel
görevi olan pinler de mevcuttur:
Seri: 0 (RX) ve 1 (TX); Serial 1: 19 (RX) ve 18 (TX); Serial 2: 17 (RX) ve
16 (TX); Serial 3: 15 (RX) ve 14 (TX). Seri data almak (RX) ve göndermek
(TX) için kullanılır. 0 and 1 pinleri aynı zamanda ATmega16U2 USB-to-
TTL seri entegresinin(bkz. bir üst başlık) alakalı pinlerine bağlıdır.
Harici Kesme: 2 (interrupt 0), 3 (interrupt 1), 18 (interrupt 5), 19
(interrupt 4), 20 (interrupt 3), and 21 (interrupt 2). Bu pinler harici
kesmeler için kullanılır, düşen kenar, yükselen kenar kesmeleri, interrupt on
change kesmeleri gibi… attachInterrupt() fonksiyonunun kullanılarak hangi
interruptın ne şekilde kullanılacağı belirtilir.
PWM: 0 to 13. 8-bit PWM çıkış verir. analogWrite() fonksiyonu kullanılır.
SPI: 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS). Bu pinlerSPI kütüphanesi
kullanılarak SPI iletişim kurulmasını sağlar. SPI pinleri aynı zamanda ICSP
headerdan da kullanılır.
LED: 13. 13 nolupinde bir LED bulunmaktadır. Çıkış High edildiğinde LED
yanar, LOW edildiğinde söner.
TWI: 20 (SDA) and 21 (SCL). Wire kütüphanesi kullanılarak TWI iletişim
sağlayabilir.
Mega2560’ın her biri 10 bit çözünürlükte 16 analog girişi bulunur. Default
olarak 0-5V aralığında çalışırlar ama AREF pini ve analogReference() fonksiyonuyla
91
referans gerilim aralığı değiştirilebilir.
Arduino Mega 2560 Programlaması
ArduinoIDE’si üzerinden programlanır. Bootloader( karta yazılım yüklemeye
yarayan kod parçası) üzerinde gelir. İsterseniz bootloaderı atlayıp kendiniz ICSP
üzerinden direkt olarak mikrodenetleyiciyi programlayabilirsiniz.
USB Aşırı Akım Koruması
Arduino Mega2560’ın aynı zamanda USB aşırı akım koruması da vardır.
Normalde her bilgisayarda bu koruma bulunur ama ek olarak Mega2560’a 500mAin
üzerinde akım uygulanırsa atacak bir sigorta bulnmaktadır.
Fiziksel Özellikleri ve Eklenti(Shield) Uyumluluğu
Mega2560’ın maksimum boy ve eni 100mmx50mmdir. Uno, Diecimila ve
Duemilanove için tasarlanan tüm eklentilere uyumludur.
Şekil 4.2 Arduino Mega
92
4.4.1.2 Raspberry Pi
Raspberry Pi Foundation tarafından 2009’da geliştirilmeye başlanmış kredi
kartı büyüklüğündeki tek board’dan oluşmuş tam donanımlı bir mini-
bilgisayardır.Televizyonunuza bağlayıp görüntü alabilir, bir klavye bağlayabilirsiniz.
Yetenekli küçük bir bilgisayar diye adlandırdığımız Raspberry Pi ile normal
masaüstü bilgisayarlarda yaptığınız işleri örneğin, sözcük işlemciler ve hesap
programları (Word, Excel) ile çalışabilir çeşitli oyunlar oynayabilirsiniz. Ayrıca
yüksek çözünürlüklü HD videolar oynatabilirsiniz. Ayrıca tüm dünyada çocukların
alıp kullanabileceği, basit programlama yapabilecekleri hatta deneylerinde
kullanabileceği uygun fiyatlı bir bilgisayar gibi düşünebilirsiniz.
Şekil 4.3 Rasperry Pi
Peki Bu Cihaza Neden İhtiyacım Var ?
Bunun aslında birden fazla sebebi olabilir. Kimileri bu cihazı evde
sunucu kurmak için, kimileri python vb. dillerde yazılım geliştirmeye bir
platform olduğu için, kimileri torrent vs. dosya indirme platformlarında 7/24
açık tutup bir "seedbox"a dönüştürüp kullanmak için, kimileri de cihaz 1080p
videoları rahatlıkla açabildiğinden bir media center'a dönüştürmek için
kullanmakta. Ayrıca kredi kartı ebatında olduğundan taşınabilir olması da
ayrıca bir artısı. Ek olarak bilgisayarı yeni öğrenen biri için güzel ve ucuz bir
93
başlangıç bilgisayarı olarak kullanabilirsiniz. Bu tamamıyle size ve
yaratıcılığınıza kalmış.
Raspery Pi Teknik Özellikleri:
İşlemci: Broadcom BCM2835 (700MHz, ARM1176JZF-S tabanlı)
Grafik İşlemcisi: Broadcom VideoCore IV (OpenGL ES 2.0, 1080p
destekli)
256MB RAM Yeni modellerde 512MB Ram
1 adet USB 2.0 (Model B’de 2 tane var)
HDMI yuvası
SD Kart Okuyucu,
3.5mm ses jakı,
RCA Video Çıkışı,
CSI Bağlantısı
Ethernet (Sadece Model B’de)
İşletim sistemi: Debian GNU/Linux, Fedora, Arch Linux ve türevleri
Düşük Seviye Çevre Birimleri: 8 adet GPIO, UART, I²C bus, SPI bus’la
birlikte iki Chip Select, +3.3 V, +5 V, ground
94
4.5 Robot Kontrol Genel Blok Diagramı
Şekil 4.4Robot Kontrol Genel Blok Diagramı
Şekil 4.5Robot Kontrol
95
5. SONUÇLAR
5.1 Tezin Amacı
Bu tasarımın amacı 4+1 serbestlik derecesine sahip bir robot kolunun belirli bir
konumdaki ve belirli biçimdeki bir objeyi tespit edip buna göre kontrol sağlaması
amaçlanmıştır.
. Çalışılan teorik ve algoritmik bilginin gerçek ve simülasyon uygulamalarında
kullanılması hedeflenmiştir. Robot kolun pratik çalışma kapsamında gerçek zamanlı
ve ak illi uygulamalar için kullanılması amaçlanmıştır.
5.2 Yapılan Çalışmalar
Tasarım çalışmamızda 6 adet servo motor kullanılarak robot kol kontrolü gerekli
hesaplamalar yapılarak yapılmıştır.Robota gideceği konumu alacağı objeyi bilme
yeteneği görüntü işleme teknolojisiyle kazandırılmıştır.
Tasarım çalışmamız da cad programları aracılığıyla birebir başarılı tasarım
gerçekleşebildiği ve servo motorların robot kolu kontrolüne uygunluğu da
görülmüştür. Kinematik ve statik tork analizleri ile optimum koşullarda çalışmanın
nasıl yapılabildiği üzerine çalışılmış ve uygulamadaki başarısı gözlemlenmiştir.
Mukavemet açısından da kuvvetli bir kol ortaya çıkartılmıştır.
Tasarım aşaması tamamlanıp, kinematik analizleri, pozisyon, hız kontrolleri, gerekli
hesapları yapılmıştır.Görüntü işleme algoritması çeşitli görüntülerle denenmiş ve
başarıyla tamamlanmıştır.
96
5.3 Robot Kolunun Eksileri ve Artıları
Orta sınıf ivmeölçerler ile robot prototibini hareket ettiren düzenek, mümkün
olduğu kadar az donanım gerektirecek şekilde yapılmak istenmiştir. Buna rağmen
istediğimiz hareketleri ani tepkileri vererek çalışma alanı içersinde sorunsuz olarak
gerçekleştirebilmektedir.
Mekanik aksamda dönen parçaların servo motor aparatlarıyla birbirine bağlanma
suretiyle ilişkilendirilmesi, mekanik açıdan uzun kullanımda kolda titreme, salınım
yapma gibi beklenmedik durumların oluşmasına neden olabileceği düşünülmektedir.
Bu durumu engellemek için mafsal nokları özellikle uygun rulman kullanılarak
bağlanmalı ve montajı buna göre düzenlenmelidir.
5.4 Maaliyet
Robot tasarlanırken göz önüne alınması gereken en önemli konulardan biri olan
maliyettir. Maliyeti üç boyutlu parça tasarım ve model montajını kusursuz
tamamlayıp, tek bir üretimle prototibi ortaya çıkartarak ve gereksiz malzemeden
uzaklaşarak, düşürmek mümkün olmaktadır.
Tablo 5.1 Robot Kol Maliyeti
6 Adet Servo Motor 360 TL
2 Tabaka Alüminyum+3 Alüminyum Parça 150 TL
2 Adet Kestamin Düz Dişli 50 TL
Raspberry Pi + Arduino Mega 2560 350 TL
Kamera 50 TL
12 plexiglass parça 150 TL
2 adet Rulman 50 TL
Toplam 1150 TL
97
KAYNAKÇA
Akademik, (b.t). 15 Mart 2012,
http://www.teknokent.hakkari.gov.tr/academics/plotter
Altaş Yayıncılık (10 Ocak 2012). Robot yapım kılavuzu.
Ayberk, A. (2001). Visual object recognition and assortment by a robot manipülatör.
Yüksek lisans tezi. İzmir: Dokuz Eylül Üniversitesi.
Berkay, A., Şeker, M. ve Esin, E. (2003). Pnömatik robot uygulaması. Elektrik -
Elektronik - Bilgisayar Mühendisliği 10. Ulusal kongresi.
Bingül, Z. ve Küçük, S. (2005). Robot Tekniği I. İstanbul: Birsen Yayınevi.
Bostan, B. (2004). Puma 560 robotunun hesaplanmış moment metoduyla kontrolü.
Yüksek lisans tezi. Sakarya: Sakarya Üniversitesi.
Çalışkan, A. (2004). Mekatronik sistemlerde internet tabanlı kontrol ve kartezyen
robot üzerinde bir uygulama. Yüksek lisans tezi. Sakarya: Sakarya Üniversitesi.
Çengelci, B. ve Çimen, H. (2005). Endüstriyel robotlar, makine teknolojileri.
Elektronik Dergisi.
98
Daehie, H., & Steven A. (1997). Tethered mobile robot for automating highway
maintenance operations. In Robotics and computer-integrated manufacturing volume
(13) içinde (297-307).
Kim, J., et al. Implementation of N: 1/1: N work distribution function for tele-operation under multi-user and multi-robot environments. in Ubiquitous Robots and Ambient Intelligence (URAI), 2013 10th International Conference on. 2013. IEEE.
Gören, A. (2001) Remote control of a non-holonomic vehicle via computer.
İzmir: Dokuz Eylül Üniversitesi.
Yang, G.J. and B.W. Choi, Smooth Trajectory Planning Along Bezier Curve for Mobile Robots with Velocity Constraints. International Journal of Control & Automation, 2013. 6(2).
Güzel, M. S. (2008). Altı eksenli robot kolun hareketsel karakteristliğinin görsel
programlanması ve gerçek zamanlı uygulamalar. Yüksek lisans tezi. Ankara:
Ankara Üniversitesi.
Köker, R. (2002) Üç eklemli bir robot kolunun görmeye dayalı olarak model tabanlı
veri kontrolü. Doktora tezi. Sakarya: Sakarya Üniversitesi.
Mikkelsen, J. (1998). A machine vision system controlling a lynxarm robot along a
path. South Africa: University of Cape Town
Özsoy, Ö. (25 Mart 2012). Robot & Elektronik, “Yakın tarihte robotik biliminin
gelişimi”. 10 Nisan 2012, http://www. endtas.com/
Russell, S.J., et al., Artificial intelligence: a modern approach. Vol. 2. 1995: Prentice
hall Englewood Cliffs.
Estrada, C.G., et al., Systems Engineering as a critical tool in mobile robot
simulation. International Journal of Combinatorial Optimization Problems &
99
Informatics, 2013. 4(1).
Tiryaki, A. ve Kazan, R. (2005). Scara robot dinamiğinin yapay sinir ağları
kullanarak modellenmesi. Mühendis ve Makine, 46 (550).
Tokel, Ç. (2009). Dört eksenli rc servo motor tahrikli bir robot manipulatörü
tasarımı ve uygulaması. Yüksek lisans tezi, İzmir: Dokuz Eylül Üniversitesi.
Tonbul, T. ve Sarıtaş M. (2003). Beş eksenli bir edubot robot kolunda ters kinematik
hesaplamalar ve yörünge planlaması. Gazi Üniversitesi Mühendislik Mimarlık
Fakültesi Dergisi, 18 (1), 145-167.
Yağlı, O. (2005). Labirent robotu tasarımı ve gerçekleştirilmesi. Yüksek
lisans tezi. Sakarya: Sakarya Üniversitesi.
Yarım, M. A. (2004). Robot control over internet using tcp/ip protocol. Yüksek lisans
tezi. İzmir: Dokuz Eylül Üniversitesi.
Yazıcı, Ş., Kılıvan, M. Ertunç, H. ve Erol M. (2003). Bilgisayar Kontrollü Kartezyen
Robot Tasarımı. Elektrik - Elektronik -Bilgisayar Mühendisliği 10. Ulusal
kongresi.
Yılmaz, S. (2006). Bir robot kolu mekanizmasında adım motorlar vasıtasıyla verilen
koordinatlara, hareketin gerçekleşmesi. Yüksek lisans tezi. Sakarya: Sakarya
Üniversitesi.
Xia, Y. (2001). Continuous Sliding mode control of a cartesian pneumatic robot.
Kingston, Ontario Canada: Queen's Universitesi (Robot Pnömatik Kontrolü).
100
EKLER
EK-1
STANDARTLAR VE KISITLAR FORMU
1. Çalışmanın amacını özetleyiniz.
Bu projede, 4+1 eksen hareket kabiliyetine sahip hedef cisimlerin görüntü işleme
algoritması ile konumu, rengi ve konumlanma açısını tesbit ederek istenilen senaryo
ile işlem yapabilen altı adet servo motor,alt taban metal ve bütün eklemleri pleksiglas
olarak tasarlanan bir Robot Kol ortaya koymak amaçlanmıştır.
2. Çalışmanın tasarım boyutunu açıklayınız.
Robot Kolun metal hammaddeden oluşan alt kısmı birinci eksene 15,9cm lik
yükseklik kazandırmaktadır.Bununla beraber birinci eksenden itibaren ikinci eksene
uzaklık 12,2 cm,ikinci eksenden üçüncü eksene uzaklık 17cm,üçüncü eksenden
dördüncü eksene uzaklık 19,7cm olmaktadır.Robot Kolun maksimum çalışma
uzaklığı 48,9cm’dir.
3. Bu çalışmada bir mühendislik problemini kendiniz formüle edip, çözdünüz
mü?
Robot Kolun eksenlerinin, uç işlevcisini bir konumdan bir konuma götürebilmek
için alacakları değerleri hesaplamamızı sağlayan ileri ve ters kinematik çözümleri biz
proje üyeleri tarafından hesaplanmıştır.Bunun yanında grüntü işlemede, çalışma
uzayının hedef cismi tespit etmedeki boyutlandırmalar ve hesaplamalar yine biz
proje üyeleri tarafından yapılmıştır.
4. Çalışmada kullandığınız yöntemler nelerdir ve önceki derslerde edindiğiniz
hangi bilgi ve becerileri kullandınız? Açıklayınız.
Projemiz büyük ölçüde yazılım ile desteklendiği için yazılım derslerinde
edindiğimiz tecrübeler bize hızlı katetme beceresini kazandırmıştır.Bunun yanında
Lineer Cebir dersimizde edindiğimiz matris ve matris işlemleri bilgileriyle kinematik
hesaplanması büyük ölçüde kolaylaşmıştır.
101
5. Kullandığınız veya dikkate aldığınız mühendislik standartları nelerdir?
Proje yapım aşamasında, robot kolun kaldıracağı yükün maksimum değeri tespit
edilerek eksenlerde kullanılacak servo motorların Tork analizi yapılmıştır.Böylelikle
robot kolun kaldıramıyacağı yükü kaldırmaya çalışmakla yaşanacak sorunların önüne
geçilmiştir.
6. Kullandığınız veya dikkate aldığınız gerçekçi kısıtlar nelerdir? Lütfen
çalışmanıza uygun yanıtlarla doldurunuz.
a) Ekonomi
Projemizde servo motor sayısının altı adet olması ve Arduino ve Raspberry Pi
3 gibi mikroişlemciler kullanmamız ekonomik açıdan bizi biraz sıkıntıya
sokmuş olmakla beraber bu konuda bir kısıt bulunmamaktadır.
b) Çevre sorunları:
Herhangi bir çevre sorunu bulunmamaktadır.
c) Sürdürülebilirlik:
4+1 Eksen Robot Kol Tasarımı geliştirmeye çok açık bir projedir.Büyük
ölçüde yazılımla desteklendiği için geliştirilmesi mümkündür.İşlem
yapabileceği cisim ağırlıkları arttırılabilir, algoritmada çeşitlilik gibi birçok
geliştirme yapılabilir.
102
d) Üretilebilirlik:
Robot Kolun bütün parçaların tasarımı SolidWorks programında
geliştirilmiştir ve CAD dosyaları bünyemizde saklanmaktadır.Parça tasarımı
ve monte işlemleri her detayıyla simülasyonda olduğu gibidir.Yazılım
algoritması da elimizde bulunduğundan üretimi kolaylıkla yapılabilir.
e) Etik:
Tasarımızda insan sağlığını, çevreyi olumsuz etkileyecek bir unsur
bulunmadığından etik dışı bir unsur bulunmamaktadır.
f) Sağlık:
Cihaz standart risk durumlarından arındırılmıştır.Ayrıca cihazın elektronik
kartlarında avrupa standartları düzeyinde kurşunsuz lehim kullanılmıştır.
g) Güvenlik:
Cihazda standart risk durumları göz ününde bulundurulmuş ve çeşitli
güvenlik önlemleri alınmıştır.
h) Sosyal ve politik sorunlar:
Sosyal yada politik hiçbir sorun teşkil etmemektedir.
103
Çalışmanın Adı GÖRÜNTÜ İŞLEME TABANLI 4+1 EKSEN ROBOT KOL
TASARIMI
Çalışmayı
Hazırlayan(lar)
Yunus Emre SİNEKOĞLU G120900054
Alp Tuğrul KURT G120900039
Burak YALIM G120900027
Danışman Onayı
104
EK-2
IEEE Etik Kuralları IEEE Code of Ethics
IEEE üyeleri olarak bizler bütün dünya üzerinde teknolojilerimizin hayat
standartlarını etkilemesindeki önemin farkındayız. Mesleğimize karşı şahsi
sorumluluğumuzu kabul ederek, hizmet ettiğimiz toplumlara ve üyelerine en yüksek
etik ve mesleki davranışta bulunmayı söz verdiğimizi ve aşağıdaki etik kuralları
kabul ettiğimizi ifade ederiz.
1. Kamu güvenliği, sağlığı ve refahı ile uyumlu kararlar vermenin
sorumluluğunu kabul etmek ve kamu veya çevreyi tehdit edebilecek faktörleri
derhal açıklamak;
2. Mümkün olabilecek çıkar çatışması, ister gerçekten var olması isterse sadece
algı olması, durumlarından kaçınmak. Çıkar çatışması olması durumunda,
etkilenen taraflara durumu bildirmek;
3. Mevcut verilere dayalı tahminlerde ve fikir beyan etmelerde gerçekçi ve
dürüst olmak;
4. Her türlü rüşveti reddetmek;
5. Mütenasip uygulamalarını ve muhtemel sonuçlarını gözeterekteknoloji
anlayışınıgeliştirmek;
6. Teknik yeterliliklerimizi sürdürmek ve geliştirmek, yeterli eğitim veya
tecrübe olması veya işin zorluk sınırları ifade edilmesi durumunda ancak
başkaları için teknolojik sorumlulukları üstlenmek;
7. Teknik bir çalışma hakkında yansız bir eleştiri için uğraşmak, eleştiriyi kabul
etmek ve eleştiriyi yapmak; hatları kabul etmek ve düzeltmek; diğer katkı
sunanların emeklerini ifade etmek;
105
8. Bütün kişilere adilane davranmak; ırk, din, cinsiyet, yaş, milliyet, cinsi tercih,
cinsiyetkimliği, veya cinsiyet ifadesi üzerinden ayırımcılık yapma durumuna
girişmemek;
9. Yanlış veya kötü amaçlı eylemler sonucu kimsenin yaralanması, mülklerinin
zarar görmesi, itibarlarının veya istihdamlarının zedelenmesi durumlarının
oluşmasından kaçınmak;
10. Meslektaşlara ve yardımcı personele mesleki gelişimlerinde yardımcı olmak
ve onları desteklemek.
IEEE Yönetim Kurulu tarafından Ağustos 1990’da
106
We, the members of the IEEE, in recognition of the importance of our technologies in affecting
the quality of life throughout the world, and in accepting a personal obligation to our profession,
its members and the communities we serve, do hereby commit ourselves to the highest ethical
and professional conduct and agree:
1. to accept responsibility in making engineering decisions consistent with the safety, health
and welfare of the public, and to disclose promptly factors that might endanger the public or the
environment;
2.to avoid real or perceived conflicts of interest whenever possible, and to disclose them to
affected parties when they do exist;
3.to be honest and realistic in stating claims or estimates based on available data;
4.to reject bribery in all its forms;
5.to improve the understanding of technology, its appropriate application, and potential
consequences;
6.to maintain and improve our technical competence and to undertake technological tasks for
others only if qualified by training or experience, or after full disclosure of pertinent limitations;
7.to seek, accept, and offer honest criticism of technical work, to acknowledge and correct errors,
and to credit properly the contributions of others;
8.to treat fairly all persons regardless of such factors as race, religion, gender, disability, age, or
national origin;
9.to avoid injuring others, their property, reputation, or employment by false or mlicious action;
10.to assist colleagues and co-workers in their professional development and to support them in
following this code of ethics.
Approved by the IEEE Board of Directors
August 1990
IEEE Code of Ethics
107
EK-3
Görüntü İşleme Algoritması
APPENDIX
[1]
#include"opencv2/highgui/highgui.hpp"
int main( int argc, char** argv )
{
IplImage*img = cvLoadImage("01.jpg");
cvNamedWindow( "Example1", CV_WINDOW_AUTOSIZE );
cvShowImage( "Example", img );
cvWaitKey(0);
cvReleaseImage( &img );
cvDestroyWindow( "Example1" );
}
[5]
Mat image = imread ("outfile.jpeg");
//Prepare the image for findContours
cvtColor(image, image, CV_BGR2GRAY);
threshold(image, image, 150 ,255, CV_THRESH_BINARY);
imshow("matimage", image);
[6]
http://docs.opencv.org/doc/tutorials/imgproc/threshold/threshold.html
[7] //Find the contours. Use the contourOutput Mat so the original image doesn't get overwritten vector<vector<Point>> contours; Mat contourOutput = image.clone(); findContours( contourOutput, contours, CV_RETR_LIST, CV_CHAIN_APPROX_NONE ); //Draw the contours Mat contourImage(image.size(), CV_8UC3, Scalar(0,0,0)); Scalar colors[3]; colors[0] = Scalar(255, 0, 0); colors[1] = Scalar(0, 255, 0); colors[2] = Scalar(0, 0, 255); for (size_t idx = 0; idx < contours.size(); idx++) {
108
drawContours(contourImage, contours, idx, colors[idx % 3]); } imshow("Input Image",image ); cvMoveWindow("Input Image", 0, 0); imshow("Contours", contourImage); cvMoveWindow("Contours", 100, 0); //EKL waitKey(0); cvDestroyWindow( "result" ); cvReleaseCapture( &capture );
[8] for (x=0;x<k/10;x++) { for(y=0;y<l/10;y++) { i=x*5; j=y*5; a=0; top=0; for(a=0;a<5;a++) { b=0; j=y*5; for(b=0;b<5;b++) { val = ynn.at<uchar>(i,j); if(val==0) { top++; } j++; } i++; } if(top>=10) { ymat[x][y]=0; } else { ymat[x][y]=1; } } }
[9] // yatay süreklilik ölçümü x=0; for(i=0;i<k/10;i++) { y=0; for(j=0;j<l/10;j++)
109
{ if(ymat[i][j]==0) { while(ymat[i][j]==0) { x++; j++; } if(x>2 && x<8) { y2mat[i][j-x/2]=1; x=0; } x=0; } } }
[10] // dikey süreklilik ölçümü for(i=0;i<l/10;i++) { for(j=0;j<k/10;j++) { if(ymat[j][i]==0) { while(ymat[j][i]==0) { x++; j++; } if(x>2 && x<8) { y3mat[j-x/2][i]=1; x=0; } x=0; } } }
[11] for(i=0;i<k/10;i++) { for(j=0;j<l/10;j++) { y4mat[i][j]=y2mat[i][j]+y3mat[i][j]; } }
[12]
110
//toplam sonuç gösterim n=0; printf("\n\n"); for(i=0;i<k/10;i++) { for(j=0;j<l/10;j++) { printf("%d",y4mat[i][j]); if (y4mat[i][j]==2) { dismat[n]=i+1; n++; dismat[n]=j+1; n++; } } printf("\n"); } n2=0; for (i=2;i<n-2;i++) { dismat2[n2]=dismat[n-2]-dismat[i]; dismat2[n2+1]=dismat[i+1]-dismat[n-1]; i++; n2=n2+2; } printf("BULUNAN KOORDİNATLAR: "); for (i=0;i<n2;i++) { dismat2[i]=33*dismat2[i]/(dismat[n-2]-dismat[0]); dismat2[i+1]=44*dismat2[i+1]/(dismat[1]-dismat[n-1]); printf(" %d %d ",dismat2[i],dismat2[i+1]); i++; }
[13] FILE *file; file = fopen("/dev/ttyACM0","w"); //Opening device file fprintf(file,"%d",n2); //Writing to the file fprintf(file,"%c",','); //To separate digits usleep(10); for(i = 0 ; i < n2 ; i++) { fprintf(file,"%d",dismat2[i]); //Writing to the file fprintf(file,"%c",','); //To separate digits usleep(10); } fclose(file);
[14] #include<opencv2/core/core.hpp> #include<opencv2/highgui/highgui.hpp>
111
#include<opencv/cv.h> #include<opencv2/imgproc/imgproc.hpp> #include<stdlib.h> #include<stdio.h> #include<iostream> #include<iomanip> #include<sstream> #include<string> #include<vector> # include<stdio.h> # include<windows.h> usingnamespace cv; usingnamespace std; #include<iostream> int main( int, char**,int argc, constchar * argv[]) { int i,j,k,l; int a,b,x,y; int top; int n,n2=0; CvCapture *capture = 0; int ymat[100][100]; int y2mat[100][100]; int y3mat[100][100]; int y4mat[100][100]; int dismat[50]; int dismat2[50]; int dismatt[50]; IplImage *frame = 0; int key = 0; int frame1[100]; /* capture = cvCaptureFromCAM(-1); usleep(10000); cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH, 320); cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT, 240); cvSetCaptureProperty(capture, CV_CAP_PROP_FPS, 5); if ( !capture ) { fprintf( stderr, "Cannot open initialize webcam!\n" ); return 1; } cvNamedWindow( "result", CV_WINDOW_AUTOSIZE ); std::vector<cv::Mat> images(50);
112
for(int i = 0; i < 50;++i) { images[i].create(240, 320, CV_8UC3); } for (i=0; i<10; i++) { frame = cvQueryFrame( capture ); usleep(1000); Mat imgMat(frame); imgMat.copyTo(images[i]); printf("%d",i); } for (i=0; i<10 ;i++) { imshow("image", images[i]); if(waitKey(30) >= 0) break; } imshow("image", images[5]); Mat image = images[5].clone(); */ Mat image = imread ("outfile.jpeg"); //Prepare the image for findContours cvtColor(image, image, CV_BGR2GRAY); threshold(image, image, 100 ,255, CV_THRESH_BINARY); imshow("matimage", image); // eklenenler Mat ynn = image.clone(); uchar val; val = ynn.at<uchar>(0,0); cout << (int)val << endl; k=ynn.rows*2; l=ynn.cols*2; printf("GORUNTU BOYUTU : \n SATIR SAYISI =%d \n SUTUN SAYISI %d \n",k,l); a=10; b=10; x=k/10; y=l/10; printf("\n matris boyutu satýr=%d sütun=%d \n ",x,y); //10*10 pencerelerle yapýlan deðer atama for (x=0;x<k/10;x++) { for(y=0;y<l/10;y++)
113
{ i=x*5; j=y*5; a=0; top=0; for(a=0;a<5;a++) { b=0; j=y*5; for(b=0;b<5;b++) { val = ynn.at<uchar>(i,j); if(val==0) { top++; } j++; } i++; } if(top>=10) { ymat[x][y]=0; } else { ymat[x][y]=1; } } } //oluþturulan matrisin gösterildiði bölüm for(i=0;i<k/10;i++) { for(j=0;j<l/10;j++) { printf("%d",ymat[i][j]); } printf("\n"); } //y2mat deðer atama for(i=0;i<k/10;i++) { for(j=0;j<l/10;j++) { y2mat[i][j]=0; y3mat[i][j]=0; y4mat[i][j]=0; } } // yatay süreklilik ölçümü x=0; for(i=0;i<k/10;i++) { y=0;
114
for(j=0;j<l/10;j++) { if(ymat[i][j]==0) { while(ymat[i][j]==0) { x++; j++; } if(x>2 && x<8) { y2mat[i][j-x/2]=1; x=0; } x=0; } } } printf("\n\n"); // dikey süreklilik ölçümü for(i=0;i<l/10;i++) { for(j=0;j<k/10;j++) { if(ymat[j][i]==0) { while(ymat[j][i]==0) { x++; j++; } if(x>2 && x<8) { y3mat[j-x/2][i]=1; x=0; } x=0; } } } //toplam hesaplama for(i=0;i<k/10;i++) { for(j=0;j<l/10;j++) { y4mat[i][j]=y2mat[i][j]+y3mat[i][j]; } } //yatay sonuç gösterim printf("\n\n");
115
for(i=0;i<k/10;i++) { for(j=0;j<l/10;j++) { printf("%d",y2mat[i][j]); } printf("\n"); } // dikey sonuç gösterim printf("\n\n"); for(i=0;i<k/10;i++) { for(j=0;j<l/10;j++) { printf("%d",y3mat[i][j]); } printf("\n"); } //toplam sonuç gösterim n=0; printf("\n\n"); for(i=0;i<k/10;i++) { for(j=0;j<l/10;j++) { printf("%d",y4mat[i][j]); if (y4mat[i][j]==2) { dismat[n]=i+1; n++; dismat[n]=j+1; n++; } } printf("\n"); } n2=0; for (i=2;i<n-2;i++) { dismat2[n2]=dismat[n-2]-dismat[i]; dismat2[n2+1]=dismat[i+1]-dismat[n-1]; i++; n2=n2+2; } printf("BULUNAN KOORDİNATLAR: "); for (i=0;i<n2;i++) { dismat2[i]=33*dismat2[i]/(dismat[n-2]-dismat[0]); dismat2[i+1]=44*dismat2[i+1]/(dismat[1]-dismat[n-1]); printf(" %d %d ",dismat2[i],dismat2[i+1]); i++;
top related