Robot asla düz gitmez


19

Ben kullanıyorum 2 özdeş DC motorları ve hint tekerlek. Motorlar bağlı L293D motor sürücü ve kontrol edilir RPI .

Robot düz gitmiyor. Sağa sapar. Her iki motoru da % 100 PWM'de çalıştırıyorum .

Hatayı düzeltmeye çalıştığım şey:

  1. Tekerleğin PWM'sini% 99 daha hızlı olacak şekilde ayarladım , ancak robot sadece diğer tarafa dönüyor;
  2. Robotun ağırlığını ayarladım ve sorun hala devam ediyor.

Bir keresinde motoru yüksüz çalıştırmayı denedim. Bunun nedeni, daha sonra söylendiğim gibi, bir DC motorunu yüksüz çalıştırmak onlara zarar verir mi?

Sebep bu değilse, lütfen bana bu sorunu kontrol etmek için herhangi bir sensör kullanmadan nasıl çözeceğimizi söyleyin .


Kullandığım görüntünün diferansiyel sürücü yapılandırmasında, bunun olması muhtemeldir. İki motor arasındaki küçük bir fark robotun dönmesine neden olur.
Demetris

4
Açık döngü kontrolüne hoş geldiniz. Sorunu kendiniz tespit etmek için kendi (gözlerinize) sensörlere ihtiyacınız var, robotun ek sensörler olmadan onu nasıl algılayabileceğini düşünüyorsunuz? Kontrol döngüsünü sensörler ile kapatmak, gitmek için bir yoldur.
Bükme Ünitesi 22

1
Sensörlerden kaçınmak istiyorsanız step motorlar çalışabilir.

@bdares - Sensör yoksa, robot ne zaman doğru hareket edeceğini nasıl bilir? Bir tekerlek düşük sürtünme alanına (örneğin toz) çarpar ve kayarsa, robot döner ve asla düzelmez.
Chuck

Sensör yok dediğinde, bu harici bir algılamanın olmadığı anlamına mı geliyor yoksa tekerleklerdeki kodlayıcıları da hariç tutuyor musun? çünkü bu sorunun tipik çözümü budur.
JamesRyan

Yanıtlar:


29

Çünkü gerçek bu cevap olarak bu post ediyorum cevap.

Yapamazsın.

@ BendingUnit22'in belirttiği gibi, "açık döngü" kontrolünü deniyorsunuz. Gürültü ve varyasyonlar, robotunuzun asla mükemmel düz bir çizgi sürmeyeceği anlamına gelir .

Motorlar farklı sargı direncine (farklı tahrik akımları / tork) sahip olabilir, tekerlekler farklı boyutlarda olabilir, tekerlekler farklı çekiş özelliklerine sahip olabilir, tekerlek yatağı "sert" olabilir, araç başladığında tekerlek mükemmel düz olmayabilir zemin farklı yüzey sürtünme özelliklerine sahip olabilir (okuma: toz veya halı) - liste uzayıp gidiyor.

Yalnızca sizin kontrolünüz dışında şeyler (I + daha yukarıda bahsettiklerinize) için hesaba yolu geri besleme sensörleri kullanmaktır.

Listelediğim sorunları düzelterek daha iyi açık döngü performansı elde etmeyi deneyebilirsiniz , ancak daha fazlası var ve her şeyi kontrol edemezsiniz.


5
Kesinlikle! Sorun "2 özdeş DC motor kullanıyorum" ifadesinde yatmaktadır. Asla tam olarak özdeş değildirler ve @Chuck'ın da belirttiği gibi, bir dizi başka husus vardır. Robotikte kesin olan tek şey, hata ve gürültünün ortaya çıkmasıdır.
Ryan Loggerythm

2
Aynı eksende iki tekerlek kullanmak, sadece aynı motordan iki tane kullanmaktan çok daha iyi sonuçlar vermelidir, değil mi?
John Dvorak

@JanDvorak - "Aynı eksende iki tekerlek" derken ne demek istediğinizden tam olarak emin değilim ama iki tekerleğin aynı geometrik eksende olduğu anlaşılıyor / ima ediliyor. Aynı kontrol eksenini (bir motordaki gibi) veya aksı (yine bir motoru ima eden ) kastediyorsanız, kilitli bir aksla diferansiyel tahrik direksiyonunun gerçekleştirilmesinin mümkün olmadığını belirtmek isterim. Bir motorun her iki tekerleği farklı hızlarda kontrol etmesi için bir diferansiyel (ve diğer ekipman) gerekir ve diferansiyel, aksı etkili bir şekilde iki parçaya böler ve kareye geri dönersiniz.
Chuck

Bir aks demek istedim, üzgünüm. Düz gitmemek için bir gereklilik olduğunu bilmiyordum?
John Dvorak

2
@JanDvorak - OP'nin robotunun mikro fare tarzı bir araç olduğuna inanıyorum. Sadece düz gitmesi ve bir dingil kullanması gerekse bile, diğer tüm hata kaynakları hala geçerlidir. Bir tekerleğin çapı diğerinden% 0,1 daha büyükse, devir başına daha küçük lastikten% 0,1 daha uzun bir yol uzunluğu sürecektir . Diyelim ki, nominal tekerlek boyutu 10 cm ve tekerlek aralığı 10 cm. Daha büyük lastik 10.01cm'dir ve devir başına 0.0314cm daha uzağa gider . Tekerlek tabanı için robot, tekerlek dönüşü başına 0,12 derece döner . 0.01 cm kolayca bir lastik toz olabilir.
Chuck

6

Açık-kapalı döngü sorunu zaten belirtildiği için, "Bir kez bir yük olmadan bir dc-motor çalıştırmayı denedim" için bir yorum vereceğim.
Evet, bununla motorunuza zarar verebilirsiniz, ancak bir yük ile motora zarar verebilir veya imha edebilirsiniz. Yıkım akımdan ve ortaya çıkan sıcaklıktan gelir. Duman ve motordan gelen belirgin bir koku yoksa, büyük olasılıkla hasar görmez. Deneyimlerime göre, hobi ölçekli dc motorların 100 ° C'nin üzerindeki sıcaklıklarda bozulmaya başlayacağını söyleyebilirim. Ve bu sıcaklıkları kesinlikle fark edeceksiniz

EDIT:
Bunu tekrar düşündüm ve meslektaşınızın hakkında konuşmuş olabileceği hakkında bir fikrim olabilir. Özel bir AC-Motor tipi vardır. Bunlar, uyarılmayan senkron motorlardır. Temel olarak kendilerini yok etmek için inşa edilmişlerdir. Onları güçlendirirseniz, kendilerini sökene kadar hızlanmaya başlarlar. Ancak, onlara ağır bir yük yerleştirirseniz, sadece yüke uygulamak zorunda oldukları büyük andan dolayı bu duruma ulaşamazlar. Böylece bunları makul amaçlar için kullanabilirsiniz. Her neyse, kesinlikle böyle bir motor uygulamanızda yok.


1
Bence, özellikle hobi motorlarında, sıcak olduğunu fark edecek kadar ısındığında veya komik kokuyorsa, muhtemelen yalıtımı sargılardan yakmışsınızdır. Birçok elektrikli ekipman gibi, ya iyi çalışıyor ya da bozuk. Aralarında çok fazla vaka yok.
Chuck

Böyle bir duman veya görünür bir hasar yoktu. Bu yüzden yarım dakikadan az bir süre boyunca çalıştırdığım için hasar görmez.
Fare

2

Açıkladığınız şeye açık döngü kontrolü denir ve bunu yapmak için tam olarak aynı olan iki motora, iki tekerleğe tamamen aynı, robotun ağırlık merkezi, tekerlekler arasındaki merkezde, mükemmel bir simetrik elektrik devresine, ve son olarak üzerinde çalışacak mükemmel bir düzgün yüzey.

Bunu yapmak için genellikle her bir parçanın on veya yüzlerce siparişini verdikten sonra güç ve hız ile voltaj ve PWM açısından birbirine en yakın iki motoru bulmak için önemli testler gerçekleştirirsiniz. Aynı şeyi tekerlekler, motor kontrolörleri ve diğer parçalar için de yapın.

Bu işleme binning denir - bu testlerden sonra bunları yeteneklerine veya özelliklerine göre sıralarsınız. Kapalı döngü modeline geçmek yerine, hem zaman hem de kaynaklarda düzgün bir şekilde yapılması çok daha pahalı olduğu düşünülür ve kötü zemin koşullarını bile hesaba katmaz.

Ancak, ek sensörler olmadan gereksinimlerinize ulaşmanın bir yoludur.


1

Asla mükemmel olmayacak olsa da, daha düz gitmesini sağlamanın basit bir yolu olabilir.

% 100 -% 100'de araba her zaman sola dönerse ve% 100 -% 99'da araba her zaman sağa dönerse, aradaki değerleri deneyerek bunu geliştirebilmelisiniz.

% 100 -% 99,5 ile başlayın ve sonuca bağlı olarak% 100 -% 99,75 veya% 100 -% 99,25 ile devam edin. Bu, yakında 'ortalama' düz gideceğiniz bir duruma yaklaşmalıdır.


0

Sorun, her bir tekerlek için donanım veya yazılımdaki farklılıklarda yer almıyorsa, muhtemelen robotu inşa ettiğiniz şekilde veya motorların üretildiği şekilde doğal kusurlarla ilgili bir sorundur. Bağlantılar sağlam olmayabilir veya RPI aynı akımı vermiyor olabilir. Muhtemelen hız kontrolörleri kullanmak istiyorsunuz. Önce deneyin.

Bu işe yaramazsa, üreticiniz muhtemelen aynı motorları yapmamıştır ve muhtemelen sadece motorları kalibre etmeniz gerekecektir. Bu, daha güçlü motorun değerini ölçeklemek anlamına gelebilir, böylece güçlü motora% 100 güç zayıf olanla eşleşir.


2
Özdeş motor kontrol cihazlarının kullanılması sorunu elinizde çözmeyecektir. Sorun robotun özünde yatıyor, "hatayı nasıl düzeltirim?"
Ryan Loggerythm

DC motorların ileriye doğru biraz daha yavaş çalıştığını duydum. Ayrıca, ağırlıktaki herhangi bir dengesizlik bir tarafa doğru kaymaya neden olabilir. Sürtünme vb. Diğer şeylerden bahsetmemek bile. "Özdeş" bir şey yapmak işe yaramaz. Stepper'lar biraz daha iyisini yapabilir, ancak o zaman çok hızlı ya da başka bir şey kullanmamalısınız ...
Paul

-2

DC motorlu tekerlekler önde b olmalıdır. Ve arkada coster çarkı. Sonra sadece ileri yönde düz hareket edecek


Robotik Arslan'a hoş geldiniz . Stack Exchange'de bazı açıklamalar ve bağlamlar sağlayan kapsamlı cevaplar arıyoruz. Çok kısa cevaplar bunu yapamaz, bu yüzden neden doğru olduğunu açıklamak için cevabınızı düzenleyin, ideal olarak alıntılarla. Açıklama içermeyen yanıtlar kaldırılabilir.
Mark Booth
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.