Obsah:

Hawking Bot: 5 krokov
Hawking Bot: 5 krokov

Video: Hawking Bot: 5 krokov

Video: Hawking Bot: 5 krokov
Video: Так у Вас Заберут деньги в крипте: ТОП-5 схем мошенников 2024, November
Anonim
Image
Image
Zostavte si svojho Hawkinga Bot
Zostavte si svojho Hawkinga Bot

Hawking Bot je projekt Lego MINDSTORMS EV3 inšpirovaný zosnulým Stephenom Hawkingom. Stephen Hawking mal dobrý zmysel pre humor, takže som si istý, že by tento projekt schválil. Hawking Bot sa dokáže pohybovať po prekážkach a reaguje na pohyby, potom vydá jeden zo známych zvukových skusov Stephena Hawkinga a pohybuje sa v smere pohybujúceho sa objektu. Využíva ultrazvukový senzor, ktorý sníma jeho okolie pohybom hlavy.

Krok 1: Zostavte si svojho Hawkingového robota

Všetky požadované kusy sú v základnej súprave EV3 Lego MINDSTORMS s výnimkou ultrazvukového senzora (jeho očí), ktorý je potrebné zakúpiť samostatne.

Krok 2:

Obrázok
Obrázok

Kód pre Hawking Bot je napísaný v jazyku python 3. Spúšťací súbor s obrázkom na spustenie pythonu v prostredí Debian Linux na serveri Hawking Bot je možné stiahnuť z webovej stránky ev3dev. Odtiaľ si môžete stiahnuť kód na spustenie programu Hawking Bot. Všetok kód je obsiahnutý v súbore triedy, takže môžete použiť existujúce metódy alebo ich dokonca upraviť, ak chcete.

Pozrite si toto video s podrobnými pokynmi, ako nastaviť Debian Linux a Python3 na svojom robote. Aj keď je to špeciálne pre nastavenie systému Mac, bude stále užitočné získať všeobecné znalosti o procese. Toto je nedokončená výroba. Ultrazvukový senzor je niekedy nespoľahlivý a na detekciu „odľahlých hodnôt“je potrebný inteligentnejší kód. Chcel by som vidieť príspevky od ostatných, aby bol kód efektívnejší a menej náchylný na chyby.

Krok 3: Vytvorte si vlastné Hawking Soundbites

Dobre, teraz chcete mať nejaké slávne citáty alebo len niekoľko jednoduchých výrokov od profesora Hawkinga. Existuje množstvo videí, kde ho môžete počuť hovoriť, a potom sú tu jeho prednášky, ktoré sú pokladnicou múdrosti a užitočných zvukových kúskov.

Potrebujete program, ako je Audacity, ktorý funguje na mnohých platformách, aby ste si vybrali a vyrezali svoje obľúbené soundbity.

Uložte svoj soundbite ako wav mono súbor ako SH6, SH7, … SH11, SH12 a tak ďalej.

Nasleduje niekoľko ukážok, ktoré som vytvoril podľa vyššie uvedenej metódy.

Krok 4: Tipy a triky

Tipy a triky
Tipy a triky
Tipy a triky
Tipy a triky

Hawking Bot je dodávaný s modulom samokontroly, ktorý zaisťuje, že sú zapojené všetky káble a že je batéria dostatočne nabitá. Ľahko sa môže vyskytnúť uvoľnené, chýbajúce alebo dokonca poškodené spojenie. Tento modul je teda veľmi užitočný. Metóda „checkConnection“kontroluje iba to, či existuje elektrické pripojenie. Stále musíte zaistiť, aby boli motory pripojené k správnemu portu.

Pohyb švihnutou hlavou je pre Hawking Bot nevyhnutný na skenovanie jeho terénu a nájdenie najdlhšej nerušenej cesty vpred. Káble potrebujú dostatok miesta na pohyb hlavy; preto je vhodné ich zviazať dohromady, ako je znázornené na fotografii.

Hawking Bot funguje najlepšie s veľkými prekážkami a na rovnom a hladkom povrchu. Koberce sú pre motory náročnejšie a možno budete musieť upraviť nastavenia, aby ste upravili správanie na rôznych povrchoch.

Hawking Bot nie je v žiadnom prípade dokonalý a toto je prototyp, ktorý bude ťažiť z ďalších vylepšení. Kód je plne komentovaný a malo by byť pre vás ľahké zistiť, čo rôzne metódy robia. Rôzne bity boli komentované pomocou #, ak odstránite # pred „tlačou“, spustený program vám ukáže rôzne hodnoty senzorov a výpočty.

Krok 5: Navrhované vylepšenia, aktualizácie a nápady do budúcnosti

Teraz, keď ste úspešne postavili svojho robota, ho chcete posunúť na ďalšiu úroveň. Môžete vylepšiť metódu MotionDetector. Práve teraz sa tak často stáva, že sa zle číta. Skutočné hodnoty môžete vidieť odkomentovaním disA a disB (v spodnej časti bloku metódy). Nesprávne čítanie sa zvyčajne líši od ostatných, aby ste mohli napísať algoritmus, ktorý zabráni robotovi reagovať na nesprávne čítanie.

Možno budete chcieť prevziať plnú kontrolu nad robotom a diaľkovo ovládať jeho rôzne funkcie. Môžete to urobiť cez Bluetooth a napísať program pre Android, ktorý bude komunikovať s robotom. Oveľa jednoduchším prístupom by však bolo nájsť miesto pre infračervený senzor, ktorý by prevzal kontrolu nad Hawking Bot.

Čo robiť, aby sa robot dozvedel o svojom prostredí? To sa dá dosiahnuť prístupom k-najbližšieho suseda alebo prípadne neurónovou sieťou. Tehla EV3 má obmedzený výpočtový výkon, aj keď podporuje Numpy. Alternatívou by bol BrickPi, ktorý by vám umožnil prevádzkovať knižnicu AI ako Tensorflow, ale zámerom tejto príručky bolo použiť súpravu Lego EV3 MINDSTORMS bez toho, aby ste museli kupovať veľa drahých ďalších kusov okrem ultrazvukového senzora.

Prístup učenia reinformácie o k-najbližších susedoch by však mal fungovať na tehle EV3 a toto je navrhovaný algoritmus. Nechám na vás, aby ste našli funkčnú implementáciu alebo zistili akékoľvek problémy:

Učenie o posilnení pre Hawkings Bot

Ide o to, že 7 údajov USS je zakódovaných do vektora a posledných 10 pohybov hlavy sa použije na vytvorenie sekvenčného vektora so 70 položkami. Prvé čítania sú neúplné, takže budú vyplnené nulami. Každý záznam obsahuje hodnotu vzdialenosti od USS. Toto je stavový vektor s. Systém umožňuje 1000 záznamov. Potom bude najstarší záznam nahradený a vekové záznamy pre každý pár s-r budú znížené o jeden.

Robot sa nesmie priblížiť k predmetu bližšie ako 10 cm. To vytvára negatívnu odmenu. Pre jednoduchosť; dobré akcie sú odmeňované 1 a zlé 0. Účinne to vytvára pravdepodobnosť odmeny pre každú kombináciu akcie a stavu. Budeme používať zľavnené odmeny a epsilon chamtivú politiku.

To vytvára 3 veľké tabuľky stavu-odmeňovania (s-r) pre všetky tri akcie vpravo, rovno a vľavo-pre každú akciu môže byť možné mať vysokú a pomalú rýchlosť. Potom by sme mali 6 akcií a 6 vyhľadávacích tabuliek s-r.

Zakaždým, keď sa zaznamená nový stav s, porovná sa s tabuľkami, na nájdenie najbližšieho suseda sa použije euklidovská vzdialenosť (alebo podobná miera). Toto nebude hodnotené, ale je stanovená prahová hodnota t, aby sa stav prijal ako veľmi podobný, prepísal sa existujúci stav a aktualizoval sa za účelom najvyššej odmeny a vykonala sa súvisiaca akcia a. Ak nie je podobný (d> t), zadajte nový pár s-r pre každú akciu a. Ak existuje zhoda medzi akciami pre s-r (všetky majú rovnakú odmenu), zvoľte náhodne, ale nie je to bežné a je možné to vynechať.

t bude musieť experimentálne určiť, ak je t príliš malý, podobné stavy budú ignorované a každý stav bude považovaný za jedinečný. Príliš veľké t znamená, že aj dosť odlišné stavy sú spojené, čo by mohlo ovplyvniť schopnosť zvoliť si dobré akcie. Na určenie najlepšieho t.

Tabuľka vyzerá asi takto: Záznam č. - Stavový vektor - odmena za akciu 1 - odmena za akciu 2 - odmena za akciu 3.

Myslím si, že skutočná implementácia bude náročná, ale mala by stáť za to. Veľa štastia!

Odporúča: