... rref = 0; lref = 0 f cmu_mx <= 40 Then ' Fuzzy Table-Left l_cmu = ((40 - cmu_mx) * 100) / 40 rref = rref + (20 * l_cmu) / 100 End If If cmu_mx >= 40 Then 'Fuzzy Table-Right r_cmu = ((cmu_mx - 40) * 100) / 40 lref = lref + (20 * r_cmu) / 100 End If ... 'Fuzzy Table Middle If cmu_mx >= 20 And cmu_mx <= 60 Then If cmu_mx < 40 Then m_cmu = ((cmu_mx - 20) * 100) / 20 Else m_cmu = ((60 - cmu_mx) * 100) / 20 End If rref = rref + (50 * m_cmu) / 100 lref = lref + (40 * m_cmu) / 100 End If ... 2 Kapalı devre kontrol elemanlarının tanıtılmasından yola çıkılarak, gezgin robotlarda kontrol ve kontrolcüye bağlı algoritma oluşturma teknikleri ile yazılım algoritmasının oluşturulması anlatılacaktır. #include <stdlib.h> #include <stdio.h> typedef int typedef char typedef int BOOL; CHAR; INT; #define FALSE 0 #define TRUE #define NOT 1 ! 3 PC, PLC, PIC, Mikro İşlemci, PC104, Gömülü Bilgisayarlar, Elektronik Kartlar. . . Girdi + - Motorlar, Silindirler, hareket elemanları. . . Kontrol Elemanı Aktivasyon Elemanı Ölçme Elemanı (algılayıcılar) Proses İvme, Açı, Hız, Akış,Encoders, Kuvvet, Yük, Pozisyon, Basınç, Sıcaklık, Eğim, Burulma, Titreşim Ölçüm Elemanları Çıktı sıcaklık kontrolü, makinanın hız kontrolü, kimyasal olaylar, üretimde bir aşama ya da kendisini ifade eder, . . . 5 Gezgin robot, statik robot manipülatörlerin tersine bir yere sabit kalmadan işlevi doğrultusunda hareket edebilen robotlardır. * insansı robotlar * Gezgin Robot Kol Sistemleri * R2D2, Yıldız Savaşları astro mekanik droidi. * ABD Patent Bürosu’ndan alınmıştır. * Honda’nın insansı robotunun gelişim süreci. 6 7 Karar verme yeteneğine sahip bir robot yapmaya çalışmak zor bir hedefin başlangıcıdır. Etrafındakilerin farkına varabilecek ve buna göre karar veren bir araç imalatı ise daha zor bir hedeftir. Otonom gezgin (mobil) robotların temel amacı, insana ihtiyaç duymadan hareket ederek ulaşması istenilen hedefe, yolda etrafına çarpmadan ve önüne çıkabilecek çeşitli engelleri kendi karar mekanizmasını kullanarak geçebilmesidir. Karar mekanizmasını etkileyecek parametreler oldukça değişken olacağından, aracın kontrol biriminin öğrenebilme yeteneğine sahip olması gerekmektedir. Bu aşamada işlevsellik, aracın kontrol algoritmasının işlevselliğiyle doğrudan ilgilidir. 8 * A.Gören, Yapay Sinir Ağları ile Otonom Gezgin Robot Kontrolü ve Uygulamaları, Endüstri ve Otomasyon, 2007. 9 10 11 12 Taşıt 1: En basit taşıttır, daima ileri mantıklıdır. Tek motor ve tek sensörlüdür. 13 Taşıt 2: Korku ve hücum. İki motor ve iki sensörlüdür. (a) Sensörler direkt bağlı, (b) Sensörler çapraz bağlı. Uyarıcıdır (artı etkiye sahiptir). 14 Taşıt 3: Sevgi. Yasaklayıcıdır (eksi etkiye sahiptir). 15 Taşıt 4: Çeşitli sensörler ve birçok motor bağlanmıştır. Karışık davranış gösterir. -sıcaklık, basınç, ultrasonik, lazer, mesafe sensörleri, kamera, gps, dijital pusula, gyroscope, değişik birçok algılayıcı… 16 17 18 L:Left ML:Medium Left M:Medium MR:Medium Right R:Right 1 L ML M MR 0 20 40 60 80 Target location on image [pixels] 1 Z 0 S M F 10 20 50 Left motor velocity [unit] 1 Z 0 S M F 10 20 50 Right motor velocity [unit] Örnek olarak normal oda sıcaklığını 23 derece olarak kabul edersek klasik küme kuramına göre 23 derecenin üzerindeki sıcaklık derecelerini sıcak olarak kabul ederiz ve bu derecelerin sıcak kümesindeki üyelik dereceleri "1" olur. 23 altındaki sıcaklık dereceleri ise soğuktur ve sıcak kümesindeki üyelik dereceleri "0" olur. Soğuk kümesini temel aldığımızda bu değerler tersine döner. Bulanık küme yaklaşımında üyelik değerleri [0,1] aralığında değerler almaktadır. Örneğin 14 derecelik sıcaklık için üyelik derecesi "0", 23 sıcaklık derecesi için üyelik değeri "0,25" olabilir. Bulanık Mantık Z:Zero S:Slow M:Medium F:Fast Z:Zero S:Slow M:Medium F:Fast R Bulanık mantığın temeli bulanık küme ve alt kümelere dayanır. Klasik yaklaşımda bir varlık ya kümenin elemanıdır ya da değildir. Matematiksel olarak ifade edildiğinde varlık küme ile olan üyelik ilişkisi bakımından kümenin elemanı olduğunda "1", kümenin elemanı olmadığı zaman "0" değerini alır. Bulanık mantık klasik küme gösteriminin genişletilmesidir. Bulanık varlık kümesinde her bir varlığın üyelik derecesi vardır. Varlıkların üyelik derecesi, (0, 1) aralığında herhangi bir değer olabilir ve üyelik fonksiyonu M(x) ile gösterilir . Bulanık Mantık Kaşık Ka-tal Çatal Üyelik Fonksiyonları Giriş Çıkış Bulanık kurallar (if > then) Kesin Çıkış (i) Bulanıklaştırma Kesin Giriş (ii) BM Sonuç Çıkarma (iii) Çözümleme İşlem Sol Sağ Orta VL VR 0 20 40 60 Hedefe ulaşmaya çalışan gezgin robotun sağ ve sol tekerlek hızlarını BM ile bulma. 80 Sağ Motor Hızı Sol Motor Hızı. ... rref = 0; lref = 0 If cmu_mx <= 40 Then ' Fuzzy Table-Left l_cmu = ((40 - cmu_mx) * 100) / 40 rref = rref + (20 * l_cmu) / 100 End If If cmu_mx >= 40 Then 'Fuzzy Table-Right r_cmu = ((cmu_mx - 40) * 100) / 40 lref = lref + (20 * r_cmu) / 100 End If ... 'Fuzzy Table Middle If cmu_mx >= 20 And cmu_mx <= 60 Then If cmu_mx < 40 Then m_cmu = ((cmu_mx - 20) * 100) / 20 Else m_cmu = ((60 - cmu_mx) * 100) / 20 End If rref = rref + (50 * m_cmu) / 100 lref = lref + (40 * m_cmu) / 100 End If ... Yapay Sinir Ağları Biyolojik İnsansinir sinirhücrelerinden hücresi incelendiğinde esinlenilerek temel oluşturulan dört bölümden hesaplama mantığı ise yapay meydana sinirgeldiği ağları (YSA) görülür. olarak Bunlar; adlandırılmaktadır. 1- Girdileri kabul Her eden bir girdi (X1, X2, …, dentridler, Xn) veya2yapay Girdileri sinirişleyen hücresi, soma, belirli 3-Girdileri diğer bir çıktılara hücreye ya da hücrelere çeviren aralarındaki akson ve 4bağın Bir sonraki etki derecesini hücreyebelirleyen geçişi sağlayan katsayılarla bağlıdır. sinapslardır. Ağırlıklar olarak adlandırılan bu katsayılar (W1, W2, …, Wn) , programda döngü lerle yenilenerek kendi kendine ayarlanır. Böylece, sonuçta uygun çıkışı veren toplam ağ öğrenmiş olur. Bias input = 1 x1 x2 w1 w0=Θ w2 x3 w3 R ∑ f VL x3 w1 w0=Θ w6 x6 w3 R ∑ f w4 nonlinearity w5 x5 x2 w2 w4 x4 Bias input = 1 x1 nonlinearity w5 x4 x5 VR w6 x6 Ultrasonik sensör çıkışları: x1, x2, x3, x4, x5, x6; Sol ve sağ tekerlek hızları: vL, vR ; Perseptron en basit ileri beslemeli eğiticili sinir ağı olarak alınabilir. Perseptron doğrusal ikili düzen sınıflandırıcıdır ve girdileri olan x’ leri f(x) değerlerine sınıflandırır. x ikilik düzende bir vektör iken f(x) tek bir ikilik değerdir. Çözüm hakkında bilgi ikilik düzende kromozom olarak kodlanır. Kromozom 1 Kromozom 2 1101100100110110 1101111000011110 Genetik Algoritmalar Mobil bir robotun yolunu bulmasında ya da etrafını tanımasında sıkça kullanılan yöntemlerdendir. Kromozom 1 Kromozom 2 Yeni Nesil 1 Yeni Nesil 2 11011 | 00100110110 11011 | 11000011110 11011 | 11000011110 11011 | 00100110110 Çaprazlama Bir önceki aşamada rastlantısal seçilen kromozomlardan rastlantısal olarak seçilen genler kromozom1 ve kromozom2 arasında çapraz değiştirilir. Robotun doğru hareketi yapıp yapmadığı kontrol edilir ve sonuca göre bu değişim devam eder. Özgün yeni nesil 1 1101111000011110 Özgün yeni nesil 2 1101100100110110 Mutasyonlu YN 1 1100111000011110 Mutasyonlu YN 2 1101101100110110 Mutasyon Lokal optimum noktalarda kalmamak için yeni nesil kromozomlarından rastlantısal olarak bir değişiklik yapılır. Çözüm performansı incelenir (örneğin, robotun yolunu bulma süresi gibi). Performans azalması/artmasına göre lokal optimal noktada bulunup bulunmadığı anlaşılır. Robo Cup ilginize tesekkürler. Sorularınız ? www.deu.edu.tr/mechatronics Wikipedia: http://en.wikipedia.org/wiki/Wiki Veesta Automation: http://www.veesta-world.com Siemens Automation websitesi: http://www.automation.siemens.com/_en/portal/index.htm A.Gören, ‘Controlling a Non-Holonomic Vehicle via Artificial Neural Networks’, doktora tezi, DEÜ-FBE, 2007.