Cizgi izleyen sanal robot

Başlatan bunalmis, 09 Mayıs 2011, 22:35:52

z

Cizgi izleyen robot calismalarinda illaki gercek devreler gercek robotlar yapmak gerekmez.

Deneme amacli yazdigim programin baslangic asamasi bitti. Programi tamamlayabilirsem, agirligini, reduktor katsayisini, motor sabitlerini, pil voltajini tanimlayabileceginiz sanal bir robot ortaya cikacak.

Pist istendigi gibi tanimlanabilecek. Robot gercek robotmus gibi modellenebilecek.

Daha da onemlisi herhangi bir dille robot kumanda yazilimi yapilabilecek. Yazilan programin  sanal robot yazilimina mesaj atarak motor voltajlarini an ve an degistirip sensor bilgilerini okuyabilecek.

Sozkonusu sanal robot yazilimina yeterince zaman ayiramasam da belki fikir olarak arkadaslara ilham kaynagi olur.

Programin ilkel hali icin tiklayin



Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

#1
Aşağıdaki resimde olduğu gibi, R yaricapli daire şeklindeki şaseye çap doğrultusunda r yaricapli iki tekerlek takalim. Tekerleklerin mekezinin izdusumu de çember üzerinde olsun.
Ref noktanın orjine gore koordinatlarını, Teta1 ve Teta2 nin fonksiyonu olarak yazabilirmisiniz?

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

LukeSkywalker

Hocam böyle bir işin altına girdiğin için bir robotçu olarak teşekkür ederim. Fakat simülasyon içerisinde hareketin sürekliliği gibi fizik kanunları bulunacak mı öğrenmek isterim.

z

Robotun matematiksel modeli elde edildikten sonra gerçeğinden çok farkı olmaz. (Tekerleklerin patenaj yapması vs nin similasyonu zor)

Bu similator çalışınca istenen herhangi bir kontrol algoritması similatörden bağımsız olarak geliştirilebilir. Bu da tüm yapbozların bilgisayar ortamında yapılacağı anlamına gelir.

Sistem istendiği gibi çalıştıktan sonra son aşamada artık gönül rahatlığıyla robotun mekaniği ve devreleri yapılır.

Fakat bu işin altından kalkıp kalkamayacağımı bilmiyorum. Zaten tüm zamanımı da buna ayıramayacağım.

(Olursa olur olmazsa çay demler içeriz.)
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

LukeSkywalker

Hocam benim kastettiğim pistten kaynaklanan durumlardı. Örneğin robotun köprü eğiminden dolayı havalanması gibi...

z

O tip olayların simülasyonunu yapan yapar da ben beceremem.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

ferdem

bunalmis hocam sorduğunuz soru çok güzel bir soru, teknik öğrenciler bu soruyla kesinlikle ciddi meşgul olmalı. Bugün öğlen çıktısını aldım, masama koydum, gün içinde bir yandan düşündüm. Henüz kesin çözümüm yok ancak değerlendirilebilecek birkaç sorum var:

1) Bu araç her zaman dairesel hareket mi yapar?(Düz gittiği durum sonsuz yarıçaplı dairesel hareket varsayılsın) Eğer öyleyse bunu nasıl gösterebiliriz?

2) Aracın orijine yerleştirildiği düşünüldüğünde

a) fi1(t)=2*pi*t, fi2(t)=0 durumunda aracın merkezinin anlık konumunu yazınız.

b) fi1(t)=4*pi*t, fi2(t)=2*pi*t durumunda aracın merkezinin anlık konumunu yazınız.

c) Herhangi fi1(t) ve fi2(t) fonksiyonu için aracın anlık yönünü (merkez+ref ışınının x ekseni ile yaptığı açı) bulunuz.

Düşünelim bakalım :)

z

#7
Programi indirip baktinizmi?

Ekranin sagindaki potlardan soldaki Teta1 ve Teta2 oranini belirliyor. Orta konumda motorlarin her ikisi de ayni hizda donuyor. Pot, uc noktalara dogru kaydirilinca motorlarin devir sayilari orani ve isareti degisiyor.

Sag yanda duran pot ise acisal hiz. Bu degistirildiginde her iki motorun devir sayisi, kendi aralarindaki oran degismemek kaydiyla artip azaliyor.

Simulasyonun dogru oldugundan emin değilim. Hata var gibi sanki. Ne dersiniz?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

#8
X0,Y0, Ref noktasının başlangıçtaki koordinatı olmak üzere Ref noktasının koordinatlarının Teta1 ve Teta2 ilişkisi

X=X0+RCos(Teta1*r/R) - RCos(Teta2*r/R)

Y=Y0+RSin(Teta1*r/R) + RSin(Teta2*r/R)

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

#9
Malesef yukarıdaki sonucta hata var.

Bahsekonu robotta süperpoizsyon yanlış sonuç veriyor. Yada ben hata yapıyorum.



Her iki teker de Teta kadar dönsün.

Robot Teta x r kadar yukarı dogru ilerleyecektir. Yatay hareket sıfır olacak.

Şimdi iki tekeri aynı anda değil de sırayla Teta kadar döndürelim.

Yani sağdaki tekerleği durduralım ve soldaki tekerleği Teta kadar çevirelim. Robot sağ tekerin orta noktasının izdüşümü sabit kalacak şekilde sağa doğru bir yay çizer.

Şimdi de soldaki tekerleği durduralım ve sağdaki tekerleği Teta kadar çevirelim. Robot sol tekerin orta noktasının izdüşümü sabit kalacak şekilde sola doğru bir yay çizer.

Süper pozisyon gereği robotun Teta x r kadar ileri gitmesi gerekirdi.

Fakat 2.çözüme göre teta dönüş sonrasında robot dikey ilerlerken bir miktar da yatay ilerleme yaptı. (Kagıt kalemle deneyin göreceksiniz)

Süperpozisyonu geçersiz kılan olay nedir?
Süperpoziyon, lineer sistemlere uygulanabilir. Burada lineer dışı davranış nedir?

Duzeltme: Superpozisyonun uygulanamayacagi gayet acik.

Tetalarin degisimi ile robotun kartezyen koodinatlarindaki hareketinin degisimi lineer değil.  Bu nedenle de isi kolaylastiracak super pozisyonu kullanamiyoruz. Bu durumda denklemleri sil bastan yeniden kurmak gerekecek.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

ferdem

bunalmis hocam konuyu takip ediyorum ancak gerekli çalışmayı henüz yapamadım. Süperpozisyon uygulanabilecek doğrusallık ben göremiyorum.

Hocam bazı fiziksel durumlarda sonucu önden kestiremiyoruz, dt, dfi gibi diferansiyel büyüklükleri kullanarak bir model kuruyoruz ve karşımıza bir dif. denklem çıkıyor. Biz genelde hep dif denklem çözdük, asıl yapılması gerekeni, fiziksel durumun matematiksel modelini pek düşünmedik, bunun çok önemli olduğunu düşündüğüm için öğrenci arkadaşlardan uğraşmalarını istemiştim.

Ben geçen kaldığım yerden pek ilerde değilim, aracın hareketi dairesel midir sorusu duruyor. f1(t) ve f2(t) ye bağlı aracın merkez noktası için bir hız vektörü tanımlayıp bu vektörün t ye göre integrali konum vektörünü verecektir düşüncesi var. Bir de örneğin (x-p)^2+(y-q)^2=r^2 çemberi üzerindeki bir noktada her zaman çember üzerindeki dönüş yönünü(cw veya ccw) gösteren vektörü nasıl belirleriz sorusu var. Konuyu takip ediyorum.

z

Hareketin dogrusal olmasi icin dteta1/dt=dteta2/dt olmasi gerekiyor.

yani w1=w2 olmali

buraya kadar hemfikiriz sanirim.

w lar arasinda fark varsa hareket, dairesel harekete donusuyor ve yaricapi w oranlari belirliyor. Bu kismi bir nedense bir turlu modelleyemedim.

Taze bilgilerle dolu, muhendislik okuyan ayni zamanda cizgi izleyen robot yapan arkadaslar neredeler acaba?

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

#12
Sanirim cikis noktasini buldum.



Robotun sag tekerinin R1 yaricapli dairesel yolda ilerledigini varsayalim.
Sol teker de R1 +2R yaricapli dairesel yolda ilerliyor demektir. Bu da R2 yaricapli daire olsun.

R1 yaricapli yolun uzunlugu 2PiR1
R2 yaricapli yolun uzunlugu 2PiR2

n1=R1/r    n2=R2/r olur. (n1 ve n2, yolu tamamlamak icin gereken donus adedi)

O halde son denklemde tersden gidersek

R1= n1*r

R2= n2*r

n1=n2 durumu nasil olur?

n1=n2 ise R1=R2=R yani robot kendi ekseni etrafinda donuyor demektir.

Yada,

Eger n1=n2 olursa R2=R1=R1+2R

R1=R1+2R

2R<>0 olduguna gore bu ancak R1 sonsuz ise mumkun olur. Bu da robotun duz gitmesi anlamina gelir.


Eger donus sayisina isaret verirsek;

n1=-n2 ise robot kendi ekseni etrafinda donuyor
n1=n2 ise robot duz cizgi uzerinde ilerliyor diyebiliriz.

Simdi yapmamiz gereken w1 ve w2 yi devreye sokmak.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com