Robot becerilerinizi düzeltmeye hazır mısınız? ArduRoller, iç mekanda veya dışarıda özerk navigasyon yeteneğine sahip, kendi kendini dengeleyen, ters çevrilmiş bir sarkaç robotudur. Bunu, yıllık SparkFun Özerk Aracı Yarışması için bir giriş olarak tasarladım: Amaç, birden çok dönüş, engebeli arazi, 50 galonluk varil ve rampalar dahil bir engel parkurunda hızlıca gezinebilen geleneksel olmayan bir araç yaratmaktı.
Tek bir kart üzerinde bot oluşturmak için gereken tüm sensörleri içerdiğinden, 3D Robotics'ten bir artı APM 2.5 otopilotu seçtim. Yapı basittir ve yazılım DIY Drones topluluğu tarafından geliştirilen ArduPilot sistemine dayanan ücretsiz ve açık kaynaklıdır. Özerk robotlara başlamak için harika bir yol.
Kendinden dengeleyici bir botun kalbi, 3 eksenli jiroskoplar, ivmeölçerler ve manyetometrelerden oluşan IMU veya atalet ölçüm birimidir. Bu 9 sensör, saniyede 1.000 kereye kadar örneklenir ve her bir sensörün en iyi özelliklerini bir araya getiren bir matematik filtresi olan DCM (yön-kosinüs-matris algoritması) adlı bir kod parçası ile entegre edilir. Robotun üst seviye kodu, DCM'den dengeleme için gereken şekilde açıyı ve botun dönüş hızını sorabilir.
Ters çevrilmiş bir sarkaç denge botu doğal olarak dengesizdir. Elverişli olarak, yüksek ağırlık merkezi, düşme hızını yavaşlatan büyük bir atalet momenti yaratır. Bu yavaş düşüşü, tekerlekleri aracın altına düştükçe sürekli hareket ettirerek kaldırabiliriz. İleriye doğru eğilirse, tekerlekler düşmeye karşı koymak için öne doğru döner.
Robotun yazılımındaki basit bir PID döngüsü, denge kontrolünün temelidir:
Basit bir bot, sadece seyahat yönüne doğru eğilir. Bu bir süre işe yarıyor, ancak bot sürekli olarak hızlanıyor ve yakında düşüyor (A). Botun kendisi doğru çalışırsa, ileri hareket durur.
Bunun yerine dikey olarak ilerlerken ileriye doğru gitmemiz gerekiyor (B). İlk adım, tekerlekleri dengeli ve mükemmel şekilde dik tutmak için yeterli gücü bırakırken, tekerleklerin istenen hızda dönmesini sağlamaktır. Daha sonra, tekerleklerin hızını alır ve bunu istenen hıza iletiriz. Bu, botu, botu itmeye çalışan bir kişi gibi, açıda hızlı değişimlere direnme yeteneği verir. Bu algoritma, insanların itildiklerinde nasıl denge kurdukları gözlemiyle geliştirilmiştir. Örneğin, bir futbol oyunundaki bir yan hakem bacağını geri fırlatır ve vurulduğunda yanar.
Bu iki ek giriş, dengeleme algoritmasıyla toplanır ve tekerlere gönderilerek, botun zarif bir şekilde hızlanmasına ve uzun mesafelere seyahat etmesine olanak verir.
Robotu yönlendirmek için, nerede ve nerede gittiğini tam olarak bilmemiz gerekir. GPS harika, ama sadece birkaç metre için doğru. Daha yüksek doğrulukta ihtiyacımız var - santimetre ölçeğine kadar.
Tekerlek kodlayıcılar hassasiyeti milimetreye kadar düşürür ve GPS için iyi bir tamamlayıcıdır. Pololu tarafından satılan motorlar, bir bisiklet bilgisayarı gibi çalışan isteğe bağlı Hall etkisi (manyetik) sensörlere sahiptir: Küçük mıknatıslar, dönerken tekerleklerin hızını bize veren sensörden geçerler. Arduino Pro Mini, enkoderler tarafından gönderilen saniyede binlerce darbeyi okur ve bu verileri I2C arayüzü üzerinden otomatik pilota aktarır. Tekerleklerin çapını ölçtüğünüzde, bot tam olarak ne kadar hızlı ve ne kadar ilerlediğini bilecektir. Bot ayrıca pusula yönünü de bildiğinden, 2D uzayda kesin konumunu çizebilir. Mevcut olduğunda, tekerlek kayması veya diğer hataların oluşmadığından ve rotadan çıkarıldığından emin olmak için bu çözümü yavaşça hafifçe döndürmek için GPS kullanılır.
Araç otopilotta fitil sırasında sıkışırsa, tekerleklerin durduğunu hissedecektir. Bot rotayı tersine çevirecek ve tekrar sağa hafifçe tekrar deneyecek.
Yol noktası navigasyonu dahil olmak üzere robotun kontrol yazılımının geri kalanı sadece 4 yıl önce kurduğum açık kaynaklı drone projesi ArduCopter'ın değiştirilmiş bir versiyonudur. Bu, drone tutkunlarının oluşturduğu bir topluluk tarafından inşa edilen büyük bir iş hacminden faydalanmamızı sağlar.
Yapma zamanı! Aşağıdaki projenin tamamlanması yaklaşık 3–5 saat sürüyor
Adım:1
Adım:3
Motorları 3D baskılı tabanına takın. İç kaburgalar tarafından sıkıca tutulurlar, ancak 2 kaburga arasında sıcak tutkal ekledim.
Adım # 4: Elektronikleri bağlayın
Adım # 5: Elektroniği bağlayın, devam
Adım # 7: Denge botunuzu programlayın
13.11.2018