Otomatik bir labirent labirent çözücü inşa ediyorum ve labirentimi kontrol etmek için bir web kamerası kullanıyorum.
Diğer forumlardaki önerilere dayanarak, şu anda labirentin top hareketini en az bir yönde kontrol etmeye çalışıyorum. Bu nedenle, iki koordinat 466,288 ve 466,152 arasındaki top hareketimi kontrol etmeye çalışıyorum. Step motor kontrol kartına giriş zaman, her eksen için döndürülecek adım yok, yani x ve y.
Kullandığım step motor kontrol kartı, yumurta bot step motor kontrol kartıdır: http://www.sparkfun.com/products/10025
İki nokta arasında hareket etmek için, iki nokta arasında 288 ve 152 (örneğin 260 240 230 ... 150) arasında bir dizi yol noktası oluşturmalı ve top hareketimi düzeltmeli miyim?
Görüntü işleme algoritmam, topun sadece dönüp bir deliğe düşeceği topu izlemek için yeterince hızlı değil.
Bazıları, aşağıdaki videoda gösterildiği gibi standart bir şablon kullanmamı ve yoldaki sapma için top hareketlerimi düzeltmemi önerdi:
http://www.youtube.com/watch?v=Prq78ctJ2Rk&feature=player_embedded
Aynı zamanda top hareketinin yol noktalarını kullanarak aynı sorunu çözdükleri bir görüntü işleme aracına rastladım. Aynı soruna çok fazla çözüm gördüğümde, sorunu çözme konusunda tamamen kafam karıştı. Bir PID denetleyicisi uygulamam gerektiğini biliyorum. Fakat problemleri aşama aşama çözme konusunda nasıl bir yol izlemeliyim? Sıkıştım ve sadece sorunu çözmede bir başlangıç bulmakta hayal kırıklığına uğradım.
Kurulumum şöyle görünüyor:
... ve yazılımımın ekran görüntüsü:
Revizyon 2: Şimdi yeni bir problemle karşı karşıyayım: Daha önce step motorları Arduino seri port Java uygulaması üzerinden kontrol ettim. Uygulamayı kullanarak stepleri sürdürebiliyorum.
Seri bağlantı noktası üzerinden her iletişim kurmaya çalıştığımda kartı sıfırlamam gerekir. Ayrıca, herhangi bir komut gönderilmediğinde step motor küçük aralıklarla enerji verir. Step motor bu moda girdiğinde, kartı sıfırlamadan kartımı kontrol edemiyorum. Herhangi bir yardım takdir edilecektir.
Revizyon 3:
PID algoritmasını uygulamaya koyduğumda biraz ilerleme kaydettim. Lütfen aşağıdaki videoyu bulun: http://www.youtube.com/watch?v=MEfp7RqPmqY
Şimdi PID algoritmasının uygulanma hızıyla ilgili bir sorunum var. Aslında görüntü işlemem 200 ms'de bir döngüyü bitiriyor, bir topu tanımlıyor ve komutları step motor kontrol kartına gönderiyor. Seri portuma yön değiştirmek için komutlar gönderilse de, adımcım aynı yönde dönmeye devam ediyor. Tuhaf davranışı yukarıdaki videoda bulabilirsiniz.
Benim düşüncem, hesaplanan PID değeri 100'den büyükse, sadece 100 göndermem gereken bir tavanla PID değerlerini kısıtlamam gerektiğidir. Bu konuda düşüncelerinizi duymak için sabırsızlanıyorum.
PID denetleyicisini uygulamamın yolu, şablon eşleme algoritmasını kullanarak şablonun başlangıç noktasını ve başka bir şablon eşleştirme algoritması kullanarak topu tanımlamaktır. Şimdi, topu başlangıç noktası şablonunun centroidine taşıdım. PID algoritması ile düz çizgiyi takip etmesini nasıl sağlayabilirim?
Revizyon 4:
Yörüngeyi izole ettim ancak başlangıç noktasından doğru piksel koordinatlarını yazdırmak için doğru işlevi bulamıyorum. Düşüncesi olan var mı?