Turinys:

Savarankiškai vaikščiojantis robotas: 7 žingsniai
Savarankiškai vaikščiojantis robotas: 7 žingsniai

Video: Savarankiškai vaikščiojantis robotas: 7 žingsniai

Video: Savarankiškai vaikščiojantis robotas: 7 žingsniai
Video: Bot playing 2024, Lapkritis
Anonim
Savarankiškai vaikščiojantis robotas
Savarankiškai vaikščiojantis robotas

Ką aš padariau?

● Botas, kurį galima išmokyti vaikščioti (judėti į priekį) skirtingais paviršiais. Robotas vaizduoja paprastą padarą su 4 kojomis be kelių, kuris stengiasi judėti į priekį. Ji žino, kad gali nukreipti kiekvieną koją tik trimis įmanomais būdais. Dabar jis turi išsiaiškinti geriausius įmanomus žingsnius, kurių galima imtis norint judėti. Kadangi jo judėjimas taip pat priklauso nuo trinties su paviršiumi, manome, kad kiekvienam skirtingam paviršiui, kuriuo jis eina, bus skirtingi (nebūtinai unikalūs, bet greičiausiai panašūs) žingsniai, siekiant maksimaliai padidinti pastangas judėti pirmyn.

Kam jis vartojamas?

● Tai geriausia naudoti dirbtinio intelekto roboto ėjimo modeliams vizualizuoti.

1 žingsnis: srauto diagrama

Srauto diagrama
Srauto diagrama

Čia yra viso projekto suskirstymas. Apskritai projektas susideda iš dviejų dalių elektronikos, turinčios mechaninę roboto struktūrą, o kitas - algoritmas, veikiantis per kompiuterį, o kodas - per arduino.

2 žingsnis: PAGRINDINIAI KOMPONENTAI:

Elektronika

„Arduino UNO“(!)

Ultragarsinis jutiklis

Servo varikliai

„Bluetooth“modulis

Kodavimas

„Arduino IDE“

Teraterm

Užrašų knygelė „Jupyter“

Q- mokymosi algoritmas

3 žingsnis: V1 MODULIS:

V1 MODULIS
V1 MODULIS

Mokymasis sustiprinti: Naudodami ANN (dirbtinį nervų tinklą) planavome apmokyti savo robotą ir sugalvojome du galimus metodus.

Apribojimai: kiekviena koja (servo variklis) yra priversta užimti tik 3 galimas pozicijas, 60, 90 ir 120 laipsnių. Prielaidos: Manome, kad roboto judėjimas sudarys 4 būsenas (būsena yra tam tikra visų keturių servo krypčių padėtis), ty bus 4 skirtingos roboto būsenos, kurias laikysime atitinkamai 4 žingsniais, suteikiančiais mums vieną judesio ciklą. kurį robotas judės tam tikru atstumu į priekį. Šis ciklas bus kartojamas be galo, kad robotas judėtų.

Tačiau vienintelė problema buvo įvertintas iteracijų skaičius - mes turime 3 galimas kiekvieno variklio orientacijas ir yra 4 skirtingi varikliai, todėl 3^4 = 81 būsenos, kuriose robotas gali egzistuoti vienu žingsniu ar būsena. Turime atlikti 4 skirtingus žingsnius, kad užbaigtume vieną sudėtingą judesį, o tai reiškia, kad 81^4 = 43, 046, 721 galimi deriniai, kuriuos reikia patikrinti, ar maksimalus vieno judesio ciklo efektyvumas. Tarkime, kad vienos valstybės apmokymas užtruks 5 sekundes, o mokymas užtruks 6,8250 metų!

4 žingsnis: V2 MODULIS:

Q mokymosi algoritmas

Ankstyvas sustiprinimo mokymosi algoritmas, sukurtas mokyti dalykus, turinčius ribotą būseną, ir rasti trumpiausius kelius. šaltinis:

Algoritmo matematika: kiekvienam žingsniui, kuriame gali būti robotas, yra 81 galimos būsenos, mes šias būsenas pavadiname skaičiais nuo 1 iki 81, o dabar norime žinoti pereinamąją vertę, tai reiškia roboto padėties pasikeitimą (atstumas), kol juda iš atsitiktinės būsenos s1 į kitą būseną s2 (s1, s2 iš tų 81 būsenos). Tai matrica, turinti 81 eilutę ir 81 stulpelį, kur matricos elementas bus lygus atstumo, nuo kurio jis nukeliavo, reikšmei, atitinkančiai jos eilutės ir stulpelio numerį. Šios vertės gali būti teigiamos arba neigiamos, priklausomai nuo roboto veiksmo realiu žodžiu. Dabar rasime uždarą būsenų ciklą, kai jo nueitas atstumas visada yra teigiamas. Mes įvertinsime 81x81 matricos reikšmes, kurios yra 81^2 = 6561, dabar, jei užtruksime 5 sekundes, kad gautume šią vertę, išsaugotą matricoje, ji bus užtruksite tik 9,1255 valandų, kad sudarytumėte visą matricą, ir tada būtų galima lengvai išsiaiškinti žingsnių ciklą, kad padidintumėte judėjimo efektyvumą.

5 veiksmas: įtrauktos problemos -

  1. Tam tikroje būsenoje roboto judesys buvo labai netolygus ir turėjo įtakos ultragarso jutiklio reikšmei, botas pakrypo ir paėmė atstumą nuo tolimos sienos.
  2. Atsijungimo nuo nešiojamojo kompiuterio ir „arduino“paleidimo problema privertė jį mokytis nuo 0 vertės buvo labai erzinanti.
  3. Stebėti roboto traukinį nuolat 5 valandas buvo labai išsekęs.

6 žingsnis: A1 ir A2 MODULIAI:

  • Į mechaninę dalį įeina važiuoklės lenta su keturiomis servo sistemomis. Kojoms gaminti naudojome ledų lazdeles.
  • Mūsų pagrindinė užduotis - sekti roboto atstumą nuo pradinės padėties.
  • Pirmasis mūsų metodas buvo naudoti giroskopo jutiklį ir naudoti roboto pagreitį, kai jis juda, kad išgautų jo greitį ir vėliau jo padėtį.
  • Problema - tai pasirodė pernelyg sudėtinga įgyvendinti! Alternatyva - apribojome roboto judėjimą iki 1 matmens ir naudojome ultragarso jutiklį atstumui nuo priekyje esančios sienos matuoti.
  • Treniruočių metu HC05-Bluetooth modulis buvo naudojamas atstumo perėjimo greičiui tarp dviejų žingsnių perduoti į kompiuterį ir ten duomenys buvo saugomi matricoje.

7 veiksmas: nuoroda į vaizdo įrašus:

Nuoroda į vaizdo įrašus
Nuoroda į vaizdo įrašus

Kūdikio žingsniai:

Mokymo kadras:

Beveik tiesiai:

Šokio roboto vaizdo įrašas:

Galutinis vaizdo įrašas0:

Rekomenduojamas: