Sadržaj:

Samohodni robot: 7 koraka
Samohodni robot: 7 koraka

Video: Samohodni robot: 7 koraka

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

Što sam napravio?

● Bot koji se može naučiti hodati (kretati se naprijed) po različitim površinama. Bot prikazuje jednostavno stvorenje s 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 o površinu, vjerujemo da će za svaku drugu površinu kojom hoda postojati drugačiji (ne nužno jedinstven, ali najvjerojatnije sličan) niz koraka koji će maksimizirati njegov napor pri kretanju naprijed.

Čemu služi?

● 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čunalu i kod koji radi preko arduina.

Korak 2: UKLJUČENE VEĆE KOMPONENTE:

Elektronika

Arduino UNO (!)

Ultrazvučni senzor

Servo motori

Bluetooth modul

Kodiranje

Arduino IDE

Teraterm

Bilježnica Jupyter

Q-algoritam učenja

Korak 3: MODUL V1:

MODUL V1
MODUL V1

Učenje s pojačanjem: 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 stupnjeva. Pretpostavke: Smatramo da će kretanje bota činiti 4 stanja (stanje je određena orijentacija sva četiri servo pogona), tj. Postojat će 4 različita stanja robota koja ćemo smatrati 4 koraka, što nam daje jedan ciklus kretanja, u koju će bot pomaknuti za neku udaljenost naprijed. Ovaj će se ciklus ponavljati beskonačno kako bi se bot kretao.

No, jedini je problem bio broj iteracija koje je potrebno procijeniti - imamo 3 moguće orijentacije za svaki motor, a č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 učinkovitost za jedan ciklus kretanja. Pretpostavimo da je za treniranje jedne države potrebno 5 sekundi, da bi obuka završila 6,8250 godina!

Korak 4: MODUL V2:

Algoritam Q-učenja

Algoritam za rano učenje s pojačanjem razvijen za obučavanje stvari koje imaju konačno stanje i pronalaženje najkraćih putova. 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 pomiče) dok prelazi 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 u kojem će element matrice biti jednak vrijednosti udaljenosti s koje se pomaknuo u skladu s brojem retka i stupca. 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 za izradu cjeline matrice, a zatim bi se lako moglo shvatiti petlja koraka za povećanje učinkovitosti kretanja.

Korak 5: UKLJUČENI PROBLEMI -

  1. U nekim je slučajevima kretanje robota bilo vrlo neravnomjerno i utjecalo je na vrijednost ultrazvuka senzora, bot bi se nagnuo i pokupio udaljenost od udaljenog zida.
  2. Problem odvajanja od prijenosnog računala i ponovnog pokretanja arduina zbog toga što je trenirao s vrijednosti 0 bio je vrlo iritantan.
  3. Gledanje robotskog vlaka neprekidnih 5 sati bilo je vrlo iscrpno.

Korak 6: MODUL A1 i A2:

  • Mehanički dio uključuje ploču šasije s četiri servo pogona pričvršćena na nju. Koristili smo štapiće za sladoled za izradu nogu.
  • Naš glavni zadatak - pratiti udaljenost bota od njegovog početnog položaja.
  • Naš prvi pristup bio je korištenje žiroskopskog senzora i iskorištavanje ubrzanja robota pri kretanju kako bi se izvukla njegova brzina, a zatim i njegov položaj.
  • Problem - Ispostavilo se da je previše komplicirano za provedbu! 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 korišten je tijekom razdoblja obuke za prijenos stope prijelaza udaljenosti između dva koraka na računalo i tamo su podaci pohranjeni u matricu.

Korak 7: Veza na videozapise:

Link do videa
Link do videa

Dječji koraci:

Snimka za obuku:

Gotovo ravno:

Video zapis robota koji pleše:

Završni Vide0:

Preporučeni: