Mobİl Robot Kontrolünde Algorİtmalar ve Yazilim

advertisement
...
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.
Download