Kendinden Dengeleyici Bir Otonom Arduino Bot Nasıl Yapılır

Kendinden Dengeleyici Bir Otonom Arduino Bot Nasıl Yapılır

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.

 

Robot Dengesi Nasıl Yapılır?

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:

  • Orantılı terim, botun açı hatasını alır ve tekerleklerin düşmesini önlemek için bu ölçeklenmiş değerleri motora gönderir.
  • İntegral terimi aynı şekilde kullanılır, ancak zaman içindeki tüm açı hatalarının toplamıdır ve ağırlık merkezi sorunlarının iptal edilmesine yardımcı olur.
  • Türev terimi kritiktir. Bu olmadan, ivme kontrol edemedik.

 

Seyahat Yap

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.

 

Navigasyon yap

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

 

  • İlk görüntü Pololu tarafından kodlanmış enkoder üniteleri ile fırçalı DC motorları göstermektedir. Torku artırmak için 34: 1 vites küçültme seçildi.
  • Pololu'nun off-road tekerlekleri, 4mm motor millerine mükemmel şekilde bağlanan adaptörlerle birlikte geliyor. Yumuşak lastikler, botun herhangi bir arazi üzerinde gitmesine yardımcı olur ve normalde devrilecek olan yumruları emer.

 

Adım # 2: Gövde bölümlerini 3D yazdır

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

  • APM otopilotu, motor siperi, lojik seviye konvertörü ve Arduino Mini'yi bağlantı şemasında gösterildiği gibi bağlayın 
  • Otonom çalışma için GPS modülünü ve telemetri radyosunu bağlayın.
  • Botu manuel olarak kontrol etmek için R / C alıcınızı bağlayın. PPM alıcıları için APM ile gelen atlama tellerini kullanın 

Adım # 5: Elektroniği bağlayın, devam

  • Orta gövde bölümünü (cam ile) elektronik üzerinden kaydırın ve tabanına bastırın. Sonra üst kısmı yerine doğru bastırın. Pil üst kısımda, kubbe altında saklanır. Güç anahtarı kullanışlı bir eklentidir ve botun yan tarafına monte edilebilir.
  • Henüz yapmadıysanız tekerlekleri monte edin.
  • Cam kubbe aslında Amazon tarafından satılan bir plastik ağaç süs. Elektronikteki LED'ler (isteğe bağlı) pleksiglas pencereden botun iç kısımlarını aydınlatır.
  • Telemetri telsizini botun yan tarafına monte edin; Görevleri programlamak veya botu doğrudan kontrol etmek için kullanabilirsiniz.
  •  

Adım # 7: Denge botunuzu programlayın


Facebook Twitter Google+ LinkedIn Pinterest Addthis