Obsah:

Samostatne kráčajúci robot: 7 krokov
Samostatne kráčajúci robot: 7 krokov

Video: Samostatne kráčajúci robot: 7 krokov

Video: Samostatne kráčajúci robot: 7 krokov
Video: Полный курс по Next js - Изучи Nextjs за 2 часа! | React SSR +таймкоды 2024, November
Anonim
Samochodný robot
Samochodný robot

Čo som urobil?

● Robot, ktorého je možné vycvičiť, aby chodil (pohyboval sa dopredu) na rôznych povrchoch. Bot zobrazuje jednoduchého tvora so 4 nohami bez kolien, ktorý sa snaží pohnúť dopredu. Vie, že môže každú z nôh orientovať iba 3 možnými spôsobmi. Teraz musí zistiť, aké najlepšie možné kroky môže urobiť, aby sa mohol pohnúť z miesta. Pretože jeho pohyb závisí aj od trenia o povrch, domnievame sa, že pre každý iný povrch, po ktorom kráča, bude existovať iný (nie nevyhnutne jedinečný, ale pravdepodobne podobný) súbor krokov na maximalizáciu úsilia pohybovať sa dopredu.

Načo sa to používa?

● Najlepšie sa používa na vizualizáciu vzorcov chôdze pre AI ROBOT.

Krok 1: Vývojový diagram

Vývojový diagram
Vývojový diagram

Tu je rozpis celého projektu. V zásade je projekt rozdelený na 2 časti elektroniku s mechanickou štruktúrou robota a druhou je algoritmus bežiaci nad počítačom a kód bežiaci cez arduino.

Krok 2: ZAPOJENÉ HLAVNÉ KOMPONENTY:

Elektronika

Arduino UNO (!)

Ultrazvukový senzor

Servomotory

Bluetooth modul

Kódovanie

Arduino IDE

Teraterm

Notebook Jupyter

Algoritmus učenia Q

Krok 3: MODUL V1:

MODUL V1
MODUL V1

Učenie posilnenia: Pomocou ANN (Artificial Neural Network) sme plánovali vyškoliť nášho robota a prišli sme na dve možné metódy.

Obmedzenia: Každá noha (servomotor) je obmedzená tak, aby zaujala iba 3 možné polohy 60, 90 a 120 stupňov. Predpoklady: Myslíme si, že pohyb robota bude predstavovať 4 stavy (stav je určitou orientáciou všetkých štyroch serv), tj. Budú existovať 4 rôzne stavy robota, ktoré budeme považovať za 4 kroky, čo nám poskytne jeden pohybový cyklus, v ktorým sa robot posunie o kus dopredu. Tento cyklus sa bude opakovať do nekonečna, aby sa robot pohyboval.

Ale jediným problémom bol počet iterácií, ktoré sa mali posúdiť - pre každý motor máme 3 možné orientácie a existujú 4 rôzne motory, vďaka ktorým je 3^4 = 81 stavov, v ktorých môže robot existovať v jednom kroku alebo stave. Na dokončenie jedného komplexného pohybu musíme urobiť 4 rôzne kroky, čo znamená, že 81^4 = 43, 046, 721 možných kombinácií je potrebné skontrolovať na maximálnu účinnosť pre jeden cyklus pohybu. Predpokladajme, že natrénovanie jedného stavu trvá 5 sekúnd, jeho absolvovanie by trvalo 6,8250 roka!

Krok 4: MODUL V2:

Algoritmus Q-učenia

Algoritmus učenia pre včasné posilnenie vyvinutý na trénovanie vecí s konečným stavom a hľadanie najkratších ciest. zdroj:

Matematika algoritmu: Existuje 81 možných stavov pre každý krok, v ktorom sa robot môže nachádzať, tieto stavy pomenujeme ako čísla od 1 do 81 a teraz chceme vedieť hodnotu prechodu, čo znamená zmenu polohy robota (posunutá vzdialenosť)), zatiaľ čo sa pohybuje z náhodného stavu s1 do iného stavu s2 (s1, s2 z týchto 81 stavov). Môžeme to vidieť ako maticu s 81 riadkami a 81 stĺpcami, kde sa prvok matice bude rovnať hodnote vzdialenosti, z ktorej sa posunul, zodpovedajúcej číslu jeho riadka a stĺpca. Tieto hodnoty môžu byť kladné alebo záporné v závislosti od pôsobenia robota v skutočnom slove. Teraz nájdeme uzavretú slučku stavov, v ktorých je vzdialenosť, ktorú prejde, vždy kladná. Vyhodnocujeme hodnoty matice 81x81, ktoré sú 81^2 = 6561, ak teda trvá 5 sekúnd, kým sa tieto hodnoty uložia do matice, potom bude Vytvorenie celej matice zaberie iba 9,1125 hodiny a potom sa dá ľahko zistiť slučka krokov na maximalizáciu účinnosti pohybu.

Krok 5: ZAPOJENÉ PROBLÉMY -

  1. V niektorých štátoch bol pohyb robota veľmi nerovnomerný a ovplyvňoval hodnotu senzora ultrazvuku, robot sa naklonil a zachytil vzdialenosť od vzdialenej steny.
  2. Problém odpojenia od prenosného počítača a reštartu arduina, ktorý spôsobil, že sa bude trénovať od hodnoty 0, bol veľmi dráždivý.
  3. Nepretržité sledovanie vlaku robota bolo veľmi vyčerpávajúce.

Krok 6: MODUL A1 a A2:

  • Mechanická časť obsahuje dosku podvozku so štyrmi servami, ktoré sú k nej pripevnené. Na výrobu nôh sme použili tyčinky zo zmrzliny.
  • Našou hlavnou úlohou - sledovať vzdialenosť robota od jeho pôvodnej polohy.
  • Náš prvý prístup bol použiť gyroskopický senzor a použiť akceleráciu robota pri jeho pohybe, aby sa extrahovala jeho rýchlosť a následne jeho poloha.
  • Problém - Ukázalo sa, že implementácia je príliš komplikovaná! Alternatíva - Pohyb robota sme obmedzili iba na 1 rozmer a pomocou ultrazvukového senzora sme zmerali vzdialenosť od steny priamo vpredu.
  • Modul HC05-Bluetooth bol počas tréningového obdobia použitý na prenos rýchlosti prechodu vzdialenosti medzi dvoma krokmi do počítača a tam boli údaje uložené v matici.

Krok 7: Odkaz na videá:

Odkaz na videá
Odkaz na videá

Kroky pre deti:

Tréningový záber:

Takmer rovno:

Video tancujúceho robota:

Final Vide0:

Odporúča: