İçindekiler:

Kendi Kendine Yürüyen Robot: 7 Adım
Kendi Kendine Yürüyen Robot: 7 Adım

Video: Kendi Kendine Yürüyen Robot: 7 Adım

Video: Kendi Kendine Yürüyen Robot: 7 Adım
Video: Ev Yapımı Paytak Yürüyen Robot Nasıl Yapılır 2024, Kasım
Anonim
Kendi Kendine Yürüyen Robot
Kendi Kendine Yürüyen Robot

Ne yaptım?

● Farklı yüzeylerde yürümek (ileri hareket etmek) için eğitilebilen bir bot. Bot, ilerlemek için mücadele eden 4 'dizsiz' bacaklı basit bir yaratığı tasvir ediyor. Bacakların her birini yalnızca 3 olası şekilde yönlendirebileceğini bilir. Şimdi ilerlemeye devam etmek için atabileceği en iyi adımları bulması gerekiyor. Hareketi aynı zamanda yüzeyle sürtünmeye de bağlı olduğundan, yürüdüğü her farklı yüzey için, ilerleme çabasını en üst düzeye çıkarmak için farklı (mutlaka benzersiz değil ama büyük olasılıkla benzer) bir dizi adım olacağına inanıyoruz.

Ne için kullanılır?

● En iyi şekilde, bir AI ROBOT için yürüme modellerini görselleştirmek için kullanılır.

Adım 1: Akış Şeması

Akış Şeması
Akış Şeması

İşte tüm projenin bir dökümü. Genel olarak proje, robotun mekanik yapısı ile 2 parça elektronik ve diğeri pc üzerinde çalışan algoritma ve arduino üzerinde çalışan koddur.

2. Adım: İLGİLİ ANA BİLEŞENLER:

Elektronik

Arduino UNO(!)

Ultrasonik sensör

Servo motorlar

Bluetooth modülü

kodlama

Arduino IDE'si

Teraterm

Jüpiter Defter

Q- öğrenme algoritması

Adım 3: MODÜL V1:

MODÜL V1
MODÜL V1

Takviyeli Öğrenme: Robotumuzu YSA (Yapay Sinir Ağı) kullanarak eğitmeyi planladık ve iki olası yöntem geliştirdik.

Kısıtlamalar: Her bir bacak (servo motor) 60, 90 ve 120 derece olmak üzere sadece 3 olası pozisyon almakla sınırlandırılmıştır. Varsayımlar: Bot hareketinin 4 durum oluşturacağını düşünüyoruz (bir durum dört servonun hepsinin belirli bir yönelimidir), yani robotun 4 farklı durumu olacak ve sırasıyla 4 adım olarak ele alacağımız bize bir hareket döngüsü verecektir. hangi bot biraz ileride hareket edecek. Botun hareket etmesini sağlamak için bu döngü sonsuza kadar tekrarlanacaktır.

Ancak tek sorun, değerlendirilecek yineleme sayısıydı - Her motor için 3 olası oryantasyonumuz var ve 4 farklı motor var, bunu 3^4=81 robotun tek bir adımda veya durumda var olabileceği durum yapıyor. Bir karmaşık hareketi tamamlamak için 4 farklı adım atmalıyız, bu da bir hareket döngüsü için maksimum verimlilik için kontrol edilecek 81^4 = 43, 046, 721 olası kombinasyon anlamına gelir. Diyelim ki tek bir devleti eğitmek 5 saniye sürüyor, eğitimi tamamlamak 6.8250 yıl alacak!

Adım 4: MODÜL V2:

Q-öğrenme Algoritması

Sonlu duruma sahip şeyleri eğitmek ve en kısa yolları bulmak için geliştirilmiş bir erken pekiştirmeli öğrenme algoritması. kaynak:

Algoritmanın Matematiği: Botun girebileceği her adım için 81 olası durum vardır, bu durumları 1'den 81'e kadar sayılar olarak adlandırıyoruz ve şimdi bilmek istediğimiz geçiş değeri, yani robotun konumundaki değişiklik (hareket edilen mesafe)) rastgele bir s1 durumundan başka bir s2 durumuna (bu 81 durumdan s1, s2) geçerken. Bunu 81 satır ve 81 sütundan oluşan bir matris olarak görebiliriz; burada bir matris elemanı, satır ve sütun numarasına karşılık gelen hareket ettiği mesafenin değerine eşit olacaktır. Bu değerler gerçek kelimede robotun hareketine bağlı olarak pozitif veya negatif olabilir. Şimdi kat ettiği mesafenin her zaman pozitif olduğu kapalı bir durum döngüsü bulacağız, 81x81 matris değerlerini 81^2=6561 olarak değerlendireceğiz, şimdi bu değerleri matriste saklamak için 5 saniye alırsak, o zaman Yalnızca bir matrisin tamamını oluşturmak için 9.1125 saat sürer ve ardından hareket verimliliğini en üst düzeye çıkarmak için bir adım döngüsü kolayca çözülebilir.

Adım 5: İLGİLİ SORUNLAR -

  1. Bazı durumlar için robot hareketi çok düzensizdi ve ultrasonik sensör değerini etkiliyordu, bot eğilip uzaktaki bir duvardan mesafeyi algılıyordu.
  2. Dizüstü bilgisayardan bağlantının kesilmesi ve arduino'nun yeniden başlatılması sorunu 0 değerinden antrenman yapması çok rahatsız ediciydi.
  3. Robot trenini 5 saat kesintisiz izlemek çok yorucuydu.

Adım 6: MODÜL A1 ve A2:

  • Mekanik kısım, kendisine sabitlenmiş dört servolu şase kartını içerir. Bacak yapmak için dondurma çubukları kullandık.
  • Temel görevimiz - botun ilk konumundan mesafesini takip etmek.
  • İlk yaklaşımımız jiroskop sensörünü kullanmak ve botun hızını ve ardından konumunu çıkarmak için hareket ederken ivmesini kullanmaktı.
  • Sorun - Uygulanması çok karmaşık olduğu ortaya çıktı! Alternatif - Botun hareketini yalnızca 1 boyutla sınırladık ve dümdüz öndeki bir duvardan mesafeyi ölçmek için ultrasonik sensör kullandık.
  • HC05-Bluetooth modülü, eğitim süresi boyunca iki adım arasındaki mesafe geçiş oranını PC'ye iletmek için kullanıldı ve veriler burada bir matriste saklandı.

7. Adım: Videolara Bağlantı:

Videoların Bağlantısı
Videoların Bağlantısı

Bebek adımları:

Eğitim çekimi:

Neredeyse düz:

Dans eden robot videosu:

Son Video0:

Önerilen: