konu: gÖrÜntÜ İŞleme tabanli 4+1 …teknolojİ fakÜltesİ elektrİk-elektronİk...

128
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

Upload: others

Post on 21-Jan-2020

37 views

Category:

Documents


1 download

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

13

Şekil 2.4 Kartezyen Eksenler

Şekil 2. 3 Kartezyen Robot

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;

55

Tablo 2.3 Malzeme Listesi

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.

66

Şekil 2.67 Robot Kolunun 3D Bitirilmiş Hali

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++;

116

}