Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
Š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
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:
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 -
- 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.
- Problem odvajanja od prijenosnog računala i ponovnog pokretanja arduina zbog toga što je trenirao s vrijednosti 0 bio je vrlo iritantan.
- 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:
Dječji koraci:
Snimka za obuku:
Gotovo ravno:
Video zapis robota koji pleše:
Završni Vide0: