Sanal robot yarışması

Başlatan z, 29 Eylül 2015, 23:35:38

kaan0

@z hocam programın pencere boyutu laptop ekranına sığmıyor ve ölçülendirilemiyor.

z

Motorların da simülasyonunun yapıldığı versiyonda ekran sorununu çözerim.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

engerex

 Çok güzel düşünce.
Bu biraz zorlayıcı ve limitleri açık. Biraz gelişmiş bir şey olmalı. Hız, ivme bunların limiti var mı?
Şöyle olabilir EXE dışında bir veya bir kaç DLL daha olmalı. EXE organizatör tarafından yazılır. Kullanıcı bir DLL yazar bu aracıdır. EXE her 1ms'de DLL sensör bilgilerini gönderir. DLL bunu yorumlar ve EXE'ye geri voltaj değerleri gönderir. EXE ise ivmelenme ve hız limitleri dahilinde motora voltajı uygular ve hızı ayarlar. Eğer kullanıcı hız, ivme gibi verileri elde etmek istiyorsa bunu EXE'den almayacak. EXE yine her 1 ms'de bir motora bağlı sanal enkoderdan puls bilgisi alacak ve hızı ivmeyi kullanıcı DLL üzerinde kendi hesaplayacak.
Üçkağıt yapmak için EXE ile oynamak gerekecek. Bunu herkes yapamaz ve yapacak adama da engel olmak zor. EXE yerine bu her 1ms de iletişim olayını server üzerinden kursan olmaz. İnternetimizde zaten yüksek pingler var.
Böyle bir şey nasıl olur?

z

Hız ve ivme akımla doğrudan orantılı büyüklükler. Motor akımları gerçek anlamda hesaplanacak. Öyleki, motor akımı, voltajın, motor endüktans ve direncinin, kutup mıknatıslarının, robot ağırlığının, teker çapının, redüksiyon oranının, teker sürtünme değerinin her biri ile değişim gösteriyor.

Motor akımı izin verilen max değeri aştığında robot duracak ve hata lambası yanacak.

Simülatör exe yazılımına ilave olarak bir tane örnek çizgi izleyen kontrol yazılımı için Delphide yazılmış açık kaynak bir program vereceğim.
İki exe arasındaki veri transferi windows üzerinden mesajlaşma yoluyla yapılacak.

Örnek çizgi izleyen robot yazılımının  C,  C#, VB gibi diller için yazılmış örnekleri için sizlerden yardım isteyeceğim.

Proje bu aşamaya bir iki gün içinde gelir.

Şimdilik kafamı kurcalayan tek şey robotu nasıl savururum konusu.

Dairesel bir yörüngede hareket eden kütle, dönme merkezine dik doğrultularda fırlamak ister. Tekerlerin dönme yönüne dik (teker merkezine dik) doğrultuda etkiyen kuvvetler sürtünme kuvvetinden büyükse robot o yönde savrulmalı.

Bu kısmı biraz zorlayacak gibi görünüyor.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

boreas

Esasen bende Delphi bilirim ama bu isin hakkı bence python. Hatta oyle ki birak yarismayi simulasyona kadar gidebilir.  Kullanici istedigi yere istedigi sensor, pil, motor ekleyebilir tabi bunlar gercek olacak ya da webde tanimli olacak yarismada tanimli yollardan birinde upload ettigi dosyayi yaristirip siralamaya girecek. Kod acik olacagi icinde hile ihtimali kalmayacak.

vsalma

#20
Ben de pythonla yazardim. Webe tasimak ta kolay olur. Sistem modelleme icin kontrol kutuphaneleri de rahat kullanilir. PyGame ile grafik ortami cok kolay olur.

trgtylcnky

http://sketchtoy.com/65974241

Alelacele modelledim bir hata olabilir ama bu şekilde genel çözümü bulabilirsiniz bence. Şu an için sürtünmeyi hesaba katalım mı bilemedim. Sürtünmeyi sonsuz almak yani tekerleğin patinaj yapmadığını varsaymak daha kolay olur.

z

#22
DC motor simülasyonu da bitti.

Motor simülatörünü incelemek isterseniz: http://www.cncdesigner.com/wordpress/wp-content/uploads/Motor.zip

Şimdi sırada robot kütlesinin motor miline indirgenmiş atalet dönüşümü işlemi var.

Simülatörü çalıştırdığınızda özellikle redüksiyon oranının motor devrini ve akımını nasıl etkilediğini gözlemleyebilirsiniz.

Motorların ucuna doğrudan tekerlekleri bağlamak yerine motorlar ile tekerler arasına devir düşüren redüktör konduğunda motorun nasıl hızlandığını gözleyebilrsiniz.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

2 tekerlekli ve her bir tekerinde motor olan robotun denklemlerini aşağıdaki gibi oluşturdum.

Kontrol edip hatam olup olmadığını söyleyecek varmı?

G gram ağırlığındaki arabanın
teker çapı r (m)
max hızı v   (ms)
max ivmesi a
dinamik sürtünme katsayısı k.

Sürtünme kuvveti  Fs = v * k
2 motorun toplam itme kuvveti = F = Fs + (G*a/(1000*9.81))

devir sayısı = v/(2*r*pi) devir/sn

Bir tekeri çevirmek için gerekli tork = 1/2 *F * r
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

sovalye

Fs= v*k hicbirsey ifade etmiyor. Birincisi eger araba yolda normal sekilde gidiyorsa dinamik degil statik surtunme ks si kullanilir.( tekerlegin yere degdigi nokta hareketsizdir. Dairesel hizi( geriye dogru) vektorel hizi(ileri dogru) sifirlar. Yani eger arac yolda suruklenmiyorsa statik surtunme katsayisi kullanilmali. Ikinci hiz ile surtunme katsayisi carpilmaz. Herhangi bir fizilsel mantigi yok.( akiskanlar mekanigi haric) . araba normal giderken karsilasacagi Fs= agirlik* statik surtunme katsayisi. Suruklenme ve kayma durumunda dinamik surtunme katsayisini kullanmanlisiniz ama onu modellemek cok zor olacaktir.

z

#25
Statik sürtünme katsayısı kütleyi hareket ettirmek için hesaba giren bir katsayı.
Dinamik sürtünme katsayısı ise hareket halinde olan sürtünme katsayısı. Statik sürtünmeyi tamamen ihmal ettim.

İki tekerlekli arabanın ağırlık merkezini dingil üzerine denk getiriyorum.

Her bir teker arabanın yarı ağırlığını taşır.

w acısal hızında J ataleti ve k sürtünmesi ile tork arasındaki bağıntı  T= Jdw/dt + kw

Burada dönen sistemlerde  Jdw/dt tork hesabının ilerleyen sistemlerdeki kuvvet karşılığı   mdv/dt dir.

k*w ise sürtünme torkudur.

Ts=Fs*r = k*w yazabilirim

Fs=k*w/r olur.

w=v/r olduğundan

Fs=kv olur. (Hatam varmış  Fs=kv/r^2)

Emin olamadığım için tekrar soruyorum. Hatam varmı?

mesaj birleştirme:: 07 Ekim 2015, 18:19:51

Teker dönerken yol ile sürtünmesi k1 ise arabayı yandan iterken teker dönmeyeceğinden k2 gibi ikinci bir sürtünmeyi de savrulma hesabında kullancaktım.

İşte o zaman Fs=M * k2 hesabını yapacaktım.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

sovalye


"Statik sürtünme katsayısı kütleyi hareket ettirmek için hesaba giren bir katsayı. Dinamik sürtünme katsayısı ise hareket halinde olan sürtünme katsayısı. Statik sürtünmeyi tamamen ihmal ettim. "
Ama ne kadar hızlı giderse gitsin çemberin yere değen noktası her zaman hareketsizdir.
Hocam, sırf bu yüzden aynı kütle ve aynı yüzeye sahip cisimlerden yuvarlak olan ve sürüklenmeden dönen çok çok daha fazla mesafe gider. örneğin basketbol topu veya bowling topu(5 kilolouk cisim metrelerce enerjisini koruyarak ilerliyor)

Bunu düşününce hesabınız hatalı olmalı. İstediğiniz durumu modelleyebilmek için gerçek dünya verilerinin gerektiğini düşünüyorum. kullanılan tekerlek ile mükemmel çember arasındaki fark ne kadar ? veya yüzeyde standardı bozan yerlerde sürtünme ne kadar ? gibi

Ayrıca "Fs=kv/r^2" formülü çok büyük ve kütleden bağımsız değer üretiyor.

engerex

Alıntı yapılan: sovalye - 07 Ekim 2015, 18:34:46
..............
Ama ne kadar hızlı giderse gitsin çemberin yere değen noktası her zaman hareketsizdir.
..............
Bu her zaman geçerli mi?


İvmelenmelerde özellikle kalkışlarda patinaj olayı hesaba katılıyor mu? Bu tür araçlarda yüksek sürtünmeye sahip tekerlekler tercih ediliyor diye biliyorum.

z

#28
Lastik ile yol sürtünmesinde sürtünme katsayısı k olsun.

Bir arabanın vitesi boşta iken duran arabayı, arabanın arkasından F gibi kuvvetle itersek

F-mk=ma gereği a ivmesiyle hızlanır.

Fakat arabayı arkadan değilde yandan itersek tekerlekler dönmeyeceği için yerinden kımıldamaz bile.

Bu durumda sürtünme kuvveti hesabında k değerini daha mı büyük alacağız?

Bu nedenle hesaplamalarda açısal hızdan gitmek istedim.

@sovalye

https://www.google.com.tr/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CBsQFjAAahUKEwjfztvf87DIAhXEiywKHajyCL4&url=http%3A%2F%2Fblog.toptas.me%2Fwp-content%2Fuploads%2Fkontrol.pptx&usg=AFQjCNEa_9C9BicJp3dRoPN_ifbla2RaoA&sig2=HyaTVHDbIVIO0-AaLNGZug

Dokumanın 3.sayfasına bak.

Burada F=v*B yazmış. v hız. B 'de sürtünme

Burada adı geçen sürtünme sanrıım sürtünme katsayısından farklı bir şey. Çünkü direnç olarak modellemiş. Başından beri ben bu B için sürtünme katsayısı kullanıyordum. Bu yüzden hata yapıyorum.

Mekanik bir sistemde V yi akım, kuvveti F ile gösterirsek sürtünme yani Direnç F/v olur. Fakat buradaki direnç bizim sürtünme katsayımızla alakalı değil.

Eğer k sürtünmesi ile B arasında bağıntı kurabilirsem kafamın karışıklığı gidecek.

Şu anda bildiklerim çorba oldu.

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

sovalye

@engerex hocam, eğer cisim kaymıyorsa doğru olması lazım. Ayrıca statik sürtünme değeri değişken(cisim hareket etmeye başlayana kadar uygulanan her kuvvet değerini alabilir). Yani düşük sürtünmeli bir tekerle denersek max. statik sürtünme kat sayısını aşıp, kaymaya sebep olabiliriz. Zaten mükemmel dünyada yaşamıyoruz, işin içine çok daha fazla değişken girecek.
@z hocam,arabadan yola çıkarsak nasıl lastik basıncı fazla ise yol tutuşu düşüyor, lastik basıncı çok azsa arabanın yol kavraması artıp yakıt tüketimini arttırıyorsa. Bence buradaki hesaplamada da bu tarz değişkenlerin kullanılması lazım. Yani üzerindeki ağırlığa göre tekerleğin ne kadarının yere temas ettiği, hesaplamayı ciddi miktarda etkileyecektir. Tam en alt dışındaki her tekerlek noktası için açısal hızdan hesapladığımız noktasal hız vektörü, cismin toplam hız vektörüne karşı yönlü olmayıp bir açı oluştaracaktır. Bu açı yüzünden o naktaların bir hareket hızı olur ve onlar için dinamik sürtünme hesaplayabiliriz.