KONU: GÖRÜNTÜ İŞLEME TABANLI 4+1 EKSENROBOT KOL TASARIMI

Benzer belgeler
Derste Neler Anlatılacak? Temel Mekatronik Birimler,temel birim dönüşümü Güncel konular(hes,termik Santral,Rüzgar Enerjisi,Güneş

MEKATRONİĞİN TEMELLERİ

Robot Bilimi. Robotların Sınıflandırılması

MAK Makina Dinamiği - Ders Notları -1- MAKİNA DİNAMİĞİ

MKT 2134 ENDÜSTRİYEL ROBOTLAR

İKİ BOYUTLU ÇUBUK SİSTEMLER İÇİN YAPI ANALİZ PROGRAM YAZMA SİSTEMATİĞİ

MEKANİZMA TEKNİĞİ (3. Hafta)

TÜBİTAK 2209-A ÜNİVERSİTE ÖĞRENCİLERİ YURT İÇİ ARAŞTIRMA PROJELERİ DESTEK PROGRAMI ENDÜSTRİYEL ROBOT KOL KARABÜK ÜNİVERSİTESİ MEKATRONİK MÜHENDİSLİĞİ

YILDIZ TEKNIK ÜNİVERSİTESİ ELEKTRİK - ELEKTRONİK FAKULTESİ ELEKLTRONİK VE HABERLEŞME MÜHENDİSLİĞİ BÖLÜMÜ

RİJİT CİSİMLERİN DÜZLEMSEL KİNEMATİĞİ

KATI CİSİMLERİN DÜZLEMSEL KİNEMATİĞİ

5.63. YÜK KONTROLLÜ ASANSÖR ROBOT TASARIMI

5.41. UYDU ANTENİ YÖNLENDİRME OTOMASYON PROJESİ

MEKANİZMA TEKNİĞİ (1. Hafta)

Mekanizma Tekniği. Fatih ALİBEYOĞLU Ahmet KOYUNCU -1-

HACETTEPE ÜNİVERSİTESİ HACETTEPE ASO 1.OSB MESLEK YÜKSEKOKULU HMK 211 CNC TORNA TEKNOLOJİSİ

TEKNOLOJİK ARAŞTIRMALAR

ELEKTRİKSEL EYLEYİCİLER

ABSOLUTE ROTARY ENKODER Tek Turlu Absolute Enkoder, Manyetik Ölçüm GENEL ÖZELLİKLER

IENG 227 Modern Üretim Yaklaşımları

Chapter 24: Frezeleme. DeGarmo s Materials and Processes in Manufacturing

Sakarya Üniversitesi - Bilgisayar Mühendisliği

Mühendislik Mekaniği Statik. Yrd.Doç.Dr. Akın Ataş

Doç. Dr. Bilge DORAN

Mekatroniğe Giriş Dersi

MOTOR SÜRÜCÜLERİ VE ROBOTİK. Dersin Modülleri Süre Kazandırılan Yeterlikler Servo Motor ve

ABSOLUTE ROTARY ENKODER Çok Turlu Absolute Enkoder, Manyetik Ölçüm GENEL ÖZELLİKLER

Mühendislik Mekaniği Statik. Yrd.Doç.Dr. Akın Ataş

5.40. SPREY DOLDURMA OTOMASYONU

DİNAMİK. Ders_9. Doç.Dr. İbrahim Serkan MISIR DEÜ İnşaat Mühendisliği Bölümü. Ders notları için: GÜZ

Üretimin Modernizasyonunda Üretim Süreçlerinin Yenileştirilmesi insansız seri üretim

Mühendislik Mekaniği Dinamik. Yrd.Doç.Dr. Akın Ataş

(Mekanik Sistemlerde PID Kontrol Uygulaması - 3) HAVA KÜTLE AKIŞ SİSTEMLERİNDE PID İLE SICAKLIK KONTROLÜ. DENEY SORUMLUSU Arş.Gör.

(Mekanik Sistemlerde PID Kontrol Uygulaması - 1) SÜSPANSİYON SİSTEMLERİNİN PID İLE KONTROLÜ. DENEY SORUMLUSU Arş.Gör. Sertaç SAVAŞ

Robotik AKTUATÖRLER Motorlar: Çalışma prensibi

Security Geçiş Sistemleri. Döner Kapılar. Hastane Kapıları. 90 Derece. Kayar Kapılar. Kapılar METAXDOOR MS30. Otomatik Yana Açılır

ROBOTİK EĞİTİMİ İÇİN GÖRSEL BİR ARA YÜZ

Mühendislik Mekaniği Dinamik. Yrd.Doç.Dr. Akın Ataş

Bölüm 3: Vektörler. Kavrama Soruları. Konu İçeriği. Sunuş. 3-1 Koordinat Sistemleri

Yapay Sinir Ağları. (Artificial Neural Networks) DOÇ. DR. ERSAN KABALCI

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

BURSA TECHNICAL UNIVERSITY (BTU) 2 DİŞLİ ÇARKLAR I: GİRİŞ

MAK 1005 Bilgisayar Programlamaya Giriş. BİLGİSAYARA GİRİŞ ve ALGORİTMA KAVRAMI

Döner Kapılar. Hastane Kapıları. Dairesel Kayar Kapılar. 90 Derece METAXDOOR MS30. Kapılar. Kayar Kapılar. Otomatik Yana Açılır

BÜTÜNLEŞİK İMALAT SİSTEMLERİ

MADDESEL NOKTANIN EĞRİSEL HAREKETİ

Yapısal Analiz Programı SAP2000 Bilgi Aktarımı ve Kullanımı. Doç.Dr. Bilge Doran

T.C. EGE ÜNİVERSİTESİ ALİAĞA MESLEK YÜKSEKOKULU

Mühendislik Mekaniği Statik. Yrd.Doç.Dr. Akın Ataş

OTOMATİK KONTROL

OTONOM ÇĐM BĐÇME MAKĐNESĐ GELĐŞTĐRĐLMESĐ DEVELOPING OF AUTONOMOUS LAWN MOVER. Danışman: Prof.Dr. Koray TUNÇALP, Marmara Üniversitesi Đstanbul

CNC (COMPUTER NUMERİCAL CONTROL)

ROBOTLARDA SINIRSIZ SEÇİM

Öğr. Gör. Hakan YÜKSEL SÜLEYMAN DEMİREL ÜNİVERSİTESİ. Akademik Bilişim

BULANIK MANTIK VE SİSTEMLERİ BAHAR DÖNEMİ ÖDEV 1. Müslüm ÖZTÜRK Bilişim Teknolojileri Mühendisliği ABD Doktora Programı

ÇOK DİSİPLİNLİ TASARIM PROJESİ YILDIZ TEKNİK ÜNİVERSİTESİ ELEKTRİK-ELEKTRONİK FAKÜLTESİ

Mühendislik Mekaniği Statik. Yrd.Doç.Dr. Akın Ataş

ROBOT OTOMASYONU SAKARYA ÜNİVERSİTESİ MAKİNE MÜHENDİSLİĞİ BÖLÜMÜ KALIPÇILIK TEKNİĞİ DERS NOTU. Doç.Dr. Akın Oğuz KAPTI

PROGRAMLANABİLİR LOJİK DENETLEYİCİ İLE DENEYSEL ENDÜSTRİYEL SİSTEMİN KONTROLÜ

Profesyonel Çözümler Professional Solutions

TEK KAYNAKTAN TÜM HAREKET VE KONTROL TEKNOLOJİLERİ

NX Motion Simulation:

MASA ÜSTÜ 3 EKSEN CNC DÜZ DİŞLİ AÇMA TEZGAHI TASARIMI ve PROTOTİP İMALATI

DERS BİLGİ FORMU ASENKRON VE SENKRON MAKİNALAR ( ) ELEKTRİK VE ENERJİ. Okul Eğitimi Süresi

MEKANİK SİSTEMLERİN DİNAMİĞİ (1. Hafta)

T.C. TRAKYA ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ


YAPI STATİĞİ MESNETLER

KOMPAKT ÇÖZÜMLERİ OTOMASYON CONTROLLED BY

Mak Üretim Yöntemleri - II. Vargel ve Planya Tezgahı. Kubilay ASLANTAŞ Afyon Kocatepe Üniversitesi Teknik Eğitim Fakültesi Makine Eğt.

ÖZET. Basit Makineler. Basit Makine Çeşitleri BASİT MAKİNELER

JFM 301 SİSMOLOJİ ELASTİSİTE TEORİSİ Elastisite teorisi yer içinde dalga yayılımını incelerken çok yararlı olmuştur.

Makina Dinamiği. Yrd. Doç. Dr. Semih Sezer.

Ekran Arayüzü ve Obje Seçimi (V )

MAK-204. Üretim Yöntemleri. (8.Hafta) Kubilay Aslantaş

5.45. KONNEKTÖRLERE KABLO EKLEME OTOMASYONU


BESMAK MARKA BCO 113 SERİSİ TAM OTOMATİK BİLGİSAYAR KONTROLLÜ HİDROLİK BETON TEST PRESİ VE EĞİLME TEST SİSTEMİ

Fizik 101-Fizik I Dönme Hareketinin Dinamiği

Kompozit Malzemeler ve Mekaniği. Yrd.Doç.Dr. Akın Ataş

DİŞLİ ÇARKLAR I: GİRİŞ

CELAL BAYAR ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ BÖLÜMÜ KONTROL VE OTOMASYON LABORATUVARI

Değiştirilebilir yük taşıyıcıları. Değiştirilebilir yük taşıyıcıları ile ilgili genel bilgiler

ROBOTİK VE ENDÜSTRİYEL ROBOTLAR

Mekanizma Tekniği DR. ÖĞR. ÜYESİ NURDAN BİLGİN

METAL İŞLEME TEKNOLOJİSİ. Doç. Dr. Adnan AKKURT

Doç. Dr. Muhammet Cerit Öğretim Üyesi Makine Mühendisliği Bölümü (Mekanik Ana Bilim Dalı) Elektronik posta ( ):

İSTANBUL TEKNİK ÜNİVERSİTESİ İMALAT MÜHENDİSLİĞİ PROGRAMI BAHAR IML-322 İMALATTA OTOMASYON ÖDEV 1 Çözümü Y.Doç. Dr.

LAZER SENSÖRLERLE BİR ROBOTUN DOĞAL FREKANSLARININ VE STATİK ÇÖKMELERİNİN ÖLÇÜMÜ

KARABÜK ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ MEKATRONİK MÜHENDİSLİĞİ BÖLÜMÜ

1. HAFTA. Statik, uzayda kuvvetler etkisi altındaki cisimlerin denge koşullarını inceler.

6.12 Örnekler PROBLEMLER

5.13. SONDAJ MAKİNESİ PROJESİ

DC Beslemeli Raylı Ulaşım Sistemlerinin Simülasyonu

ÜÇ EKSENLİ MASA TİPİ CNC FREZE TEZGAHI TASARIM VE PROTOTİPİ. Cem DOĞAN, Kerim ÇETĠNKAYA

MAK 308 MAKİNA DİNAMİĞİ Bahar Dr. Nurdan Bilgin

OTOMATİK KONTROL SİSTEMLERİ TEMEL KAVRAMLAR VE TANIMLAR

OTOMATİK KONTROL SİSTEMLERİ İŞARET AKIŞ DİYAGRAMLARI SIGNAL FLOW GRAPH


Mühendislik Mekaniği Dinamik. Yrd.Doç.Dr. Akın Ataş

Transkript:

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

Ö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 ii

İÇİ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 iii

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 iv

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 v

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 vi

Ö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.iş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. vii

Ş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 viii

Ş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 ix

Ş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 x

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 xi

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: 1

İş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. 2

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 3

ö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 4

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 5

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. 6

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 kapsar EIA tarafından belirlenen tüm dünyada genel kabul görmüş direnç değerlerini 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. 7

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ı 8

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 9

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). 10

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 11

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 12

Şekil 2. 3 Kartezyen Robot Şekil 2.4 Kartezyen Eksenler 13

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 14

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ı 15

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. 16

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). 17

Ş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 18

Ş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. 19

Ş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). 20

Ş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). 21

Ş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 22

Ş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 23

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) 24

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. 25

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. 26

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 27

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 28

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 29

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 30

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. 31

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. 32

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 33

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. 34

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 35

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. 36

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 37

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). 38

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

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 40

Ş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 41

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ü 42

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 a i 1 α i 1 d i θ i Değişken 1 0 0 L1 θ 1 θ 1 2 0 Pİ/2 0 θ 2 θ 2 3 L2 0 0 θ 3 θ 3 4 L3 0 0 θ 4 θ 4 5 L4 0 0 θ 5 0 Tablo 2.1 D & H (Denavit ve Hartenberg) Tablosu 43

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. 44

α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. 45

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. 0 5 T = 0 1 T 1 2 T 2 3 T 3 4 4 T 5 T Matriste kullanılan kısaltmalar : C n = Cos(θ n ), S n = Sin(θ n ), C 23 = C 2 C 3 S 2 S 3 C 234 = C 23 C 4 S 23 S 4 r11 = C 1 C 5 C 234 C 1 S 5 S 234 r12 = C 1 S 5 C 234 C 1 C 5 S 234 r13 =S 1 r21 =S 1 C 5 C 234 S 1 S 5 S 234 r22 = S 1 S 5 C 234 S 1 C 5 S 234 r23 = C 1 r31 =C 5 S 234 + S 5 C 234 r32 = S 5 S 234 + C 5 C 234 r33 = 0 Px =C 1 C 234 L4 + C 1 (C 23 L3 + C 2 L2) Py =S 1 C 234 L4 + S 1 (C 23 L3 + C 2 L2) Pz =S 234 L4 + S 23 L3 + S 2 L2 + L1 46

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. 0 5 T 0 1 2 3 4 = 1 T 2 T 3 T 4 T 5 T [ 0 1 T] 1 0 5 T = [ 0 1 T] 1 0 1 2 3 4 1 T 2 T 3 T 4 T 5 T 0 5 Denklemde [ 0 1 T] 1 T = I bir şekilde yazılabilir. [ 0 1 T] 1 0 1 2 3 4 5 T = 2 T 3 T 4 T 5 T olduğundan, denklem aşağıdaki gibi daha basit Ters kinematiğin çözümü, yukarıdaki denklemde eşitliğin sağ ve sol tarafında karşılıklı 47

yer alan matris elemanlarının birbirine eşitlenmesiyle gerçekleştirilir.kullanılan diğer denklemler aşağıda verilmiştir. 0 [ 1 T 1 2 T] 1 0 2 3 4 5 T = 3 T 4 T 5 T 0 1 [ 1 T 2 T 2 3 T] 1 0 3 4 5 T = 4 T 5 T 0 1 2 3 [ 1T 2 T 3 T 4 T] 1 0 5 T = T Ters kinematik çözüm greçekleştirilirken bazı trigonometrik eşitliklerden yararlanılır.bu eşitlikler aşağıda verilmiştir. 5 4 Cos(θ) = a ise θ = Atan2( 1 a 2, a) Sin(θ) = a ise θ = Atan2(a, 1 a 2 ) Cos(θ) = a ise ve Sin(θ) = b ise θ = Atan2(b, a) asin(θ) + bcos(θ) = 0 ise θ = Atan2( b, a) ve ya θ = Atan2(b, a) asin(θ) + bcos(θ) = c ise θ = Atan2(a, b) + Atan2( a 2 + b 2 c 2, c) θ 1 ve θ 2 için Ters Kinematik Çözüm Yapalım [ 0 1 T] 1 0 1 2 3 4 5 T = 2 T 3 T 4 T 5 T Eşitliğinde sağ ve soldaki matrislerin (2,4) elemanlarını karşılıklı eşitlersek ; S 1 px + C 1 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 [ 0 1 T] 1 0 1 2 3 5 T = 2 T 3 T 4 T T matrislerin (3,4) elemanlarını karşılıklı eşitlersek ; 5 4 eşitliğinde sağ ve soldaki 48

C 2 (C 3 (C 4 L4 + L3) S 3 S 4 L4 + L2) S 2 (S 3 (C 4 L4 + L3) + C 3 S 4 L4) = pz + L1 S 2 ve C 2 nin katsayılarına k ve l dersek; θ 2 = Atan2(k, l) Atan2( k 2 + l 2 (pz + L1) 2, (pz + L1)) θ 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 49

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 50

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 51

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. 52

Ç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. 53

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

Tablo 2.3 Malzeme Listesi 55

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 56

Ş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 57

Ş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 58

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 59

Ş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 60

Ş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 61

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 62

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 63

Ş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 64

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. 65

Şekil 2.67 Robot Kolunun 3D Bitirilmiş Hali 66

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ı 67

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ı 68

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 69

4.2.5.Sayısal İmgede Piksel Kavramı Şekil 3.5 Sayısal İmgede Piksel Şekil 3.6 Sayısal İmgede Piksel 70

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 71

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 72

sahiptir. OpenCV aşağıdaki şekilde görüldüğü gibi gruplara ayrılmış bir çok fonksiyona Ş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 73

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.ilk 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 ); 74

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 75

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 Threshol maxvalue :Destination array(hedef Dizi); Src ve ya 8-bit türünde olmalı :Eşikleme değeri :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 76

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 77

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 78

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. 79

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.işlem sonucu Şekil3.15 de görüldüğü gibi olur. Y2mat Şekil 3.15 Resimde Yatay Sürekliliği Bulma ve Kontrol Etme 80

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. 81

Ş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.ilk 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. 82

Ş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. 83

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.. 84

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. 85

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. Ü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 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ış 86

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, 87

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 -Çalışma Gerilimi :5V :ATmega2560 88

-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 89

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 90

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 91

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 minibilgisayardı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 92

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 93

4.5 Robot Kontrol Genel Blok Diagramı Şekil 4.4Robot Kontrol Genel Blok Diagramı Şekil 4.5Robot Kontrol 94

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. 95

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. 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 Kamera 350 TL 50 TL 12 plexiglass parça 150 TL 2 adet Rulman 50 TL Toplam 1150 TL Tablo 5.1 Robot Kol Maliyeti 96

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. 97

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 teleoperation 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 & 98

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ü). 99

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. 100

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.işlem yapabileceği cisim ağırlıkları arttırılabilir, algoritmada çeşitlilik gibi birçok geliştirme yapılabilir. 101

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. 102

Ç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 Alp Tuğrul KURT Burak YALIM G120900054 G120900039 G120900027 Danışman Onayı 103

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

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 105

IEEE Code of Ethics 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 106

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++) { 107

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++; i++; j++; 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++) 108

{ 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] 109

//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> 110

#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); 111

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++) 112

{ 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++; i++; j++; 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; 113

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"); 114

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

116