Sadržaj:

Samohodni robot: 7 koraka
Samohodni robot: 7 koraka

Video: Samohodni robot: 7 koraka

Video: Samohodni robot: 7 koraka
Video: Косилка +996555550533 2024, Novembar
Anonim
Samohodni robot
Samohodni robot

Šta sam napravio?

● Robot koji se može naučiti da hoda (kreće se naprijed) po različitim površinama. Bot prikazuje jednostavno stvorenje sa 4 noge bez koljena koje se bori za napredovanje. Zna da može orijentirati svaku nogu samo na 3 moguća načina. Sada mora smisliti najbolje moguće korake koje može poduzeti za nastavak kretanja. Budući da njegovo kretanje također ovisi o trenju s površinom, vjerujemo da će za svaku drugu površinu kojom hoda postojati različit (ne nužno jedinstven, ali najvjerojatnije sličan) niz koraka koji će maksimizirati njegov napor pri kretanju naprijed.

Za šta se koristi?

● Najbolje se koristi za vizualizaciju obrazaca hodanja za AI ROBOT.

Korak 1: Dijagram toka

Dijagram toka
Dijagram toka

Ovdje je pregled cijelog projekta. Općenito, projekt se sastoji od dva dijela elektronike s mehaničkom strukturom robota, a drugi je algoritam koji radi na računaru i kod koji radi na arduinu.

Korak 2: UKLJUČENE VEĆE KOMPONENTE:

Elektronika

Arduino UNO (!)

Ultrazvučni senzor

Servo motori

Bluetooth modul

Kodiranje

Arduino IDE

Teraterm

Jupyter Notebook

Q-algoritam učenja

Korak 3: MODUL V1:

MODUL V1
MODUL V1

Učenje o pojačanju: Koristeći ANN (Umjetna neuronska mreža) planirali smo obučiti našeg robota i smislili smo dvije moguće metode.

Ograničenja: Svaka noga (servo motor) je ograničena da zauzme samo 3 moguća položaja 60, 90 i 120 stepeni. Pretpostavke: Smatramo da će se kretanje bota sastojati od 4 stanja (stanje je određena orijentacija sva četiri serva), tj. Postojat će 4 različita stanja robota koja ćemo smatrati 4 koraka, što nam daje jedan ciklus kretanja, u koju će bot premjestiti na određenu udaljenost. Ovaj ciklus će se ponavljati beskonačno kako bi se bot kretao.

Ali jedini problem je bio broj iteracija koje je potrebno procijeniti - imamo 3 moguće orijentacije za svaki motor i četiri različita motora čine 3^4 = 81 stanja u kojima robot može postojati u jednom koraku ili stanju. Moramo poduzeti 4 različita koraka da bismo dovršili jedno složeno kretanje, što znači 81^4 = 43, 046, 721 mogućih kombinacija koje treba provjeriti za maksimalnu efikasnost za jedan ciklus kretanja. Pretpostavimo da je potrebno 5 sekundi za obuku jedne države, potrebno je 6,8250 godina da se završi obuka!

Korak 4: MODUL V2:

Algoritam Q-učenja

Rani algoritam učenja za pojačanje razvijen za obučavanje stvari koje imaju konačno stanje i pronalaženje najkraćih puteva. izvor:

Matematika algoritma: Postoji 81 moguće stanje za svaki korak u kojem bot može biti, nazivamo ta stanja brojevima od 1 do 81, a sada ono što želimo znati je prijelazna vrijednost, što znači promjenu položaja robota (udaljenost se pomjerila) dok se kreće iz slučajnog stanja s1 u neko drugo stanje s2 (s1, s2 iz tih 81 stanja). Možemo ga vidjeti kao matricu koja ima 81 redak i 81 stupac gdje će element matrice biti jednak vrijednosti udaljenosti s koje se pomaknuo u skladu s redom i brojem kolone. Ove vrijednosti mogu biti pozitivne ili negativne ovisno o djelovanju robota u stvarnoj riječi. Sada ćemo pronaći zatvorenu petlju stanja u kojima je udaljenost koju pređe uvijek pozitivna. Procjenjivat ćemo vrijednosti matrice 81x81 koje su 81^2 = 6561, sada ako nam treba 5 sekundi da ove vrijednosti pohranimo u matricu, to će potrebno je 9.1125 sati samo da se napravi cijela matrica, a zatim bi se lako moglo shvatiti petlja koraka za povećanje efikasnosti kretanja.

Korak 5: UKLJUČENI PROBLEMI -

  1. U nekim slučajevima kretanje bota bilo je vrlo neravnomjerno i utjecalo je na vrijednost ultrazvuka senzora, bot bi se nagnuo i pokupio udaljenost od udaljenog zida.
  2. Problem odvajanja od laptopa i ponovnog pokretanja arduina zbog toga što je trenirao sa vrijednosti 0 bio je vrlo iritantan.
  3. Gledanje robotskog voza u neprekidnih 5 sati bilo je vrlo iscrpljujuće.

Korak 6: MODUL A1 i A2:

  • Mehanički dio uključuje ploču šasije s četiri servo pogona pričvršćena za nju. Koristili smo štapiće za sladoled za izradu nogu.
  • Naš osnovni zadatak - pratiti udaljenost bota od njegove početne pozicije.
  • Naš prvi pristup bio je korištenje žiroskopskog senzora i ubrzanje robota pri kretanju kako bi se izvukla njegova brzina, a zatim i njegov položaj.
  • Problem - Ispostavilo se da je previše komplicirano za implementaciju! Alternativa - Ograničili smo kretanje bota samo na 1 dimenziju i upotrijebili smo ultrazvučni senzor za mjerenje udaljenosti od zida ravno ispred.
  • HC05-Bluetooth modul je korišten tokom perioda obuke za prijenos brzine prijelaza udaljenosti između dva koraka do računara i tamo su podaci pohranjeni u matricu.

Korak 7: Veza do videozapisa:

Link do video zapisa
Link do video zapisa

Dječji koraci:

Snimka za obuku:

Gotovo ravno:

Video zapis robota koji pleše:

Final Vide0:

Preporučuje se: