Turinys:

„Hawking Bot“: 5 žingsniai
„Hawking Bot“: 5 žingsniai

Video: „Hawking Bot“: 5 žingsniai

Video: „Hawking Bot“: 5 žingsniai
Video: Part 2 - The Adventures of Huckleberry Finn Audiobook by Mark Twain (Chs 11-18) 2024, Liepa
Anonim
Image
Image
Sukurkite savo „Hawking Bot“
Sukurkite savo „Hawking Bot“

„Hawking Bot“yra „Lego MINDSTORMS EV3“projektas, įkvėptas velionio Stepheno Hawkingo. Stephenas Hawkingas turėjo gerą humoro jausmą, todėl esu tikras, kad jis būtų pritaręs šiam projektui. „Hawking Bot“gali naršyti aplink kliūtis ir reaguoti į judesius, tada ištaria vieną garsiausių Stepheno Hawkingo garsų ir juda judančio objekto kryptimi. Jis naudoja ultragarso jutiklį, kuris nuskaito aplinką plačiu galvos judesiu.

1 žingsnis: sukurkite savo „Hawking Bot“

Visi reikalingi elementai yra pagrindiniame „EV3 Lego MINDSTORMS“rinkinyje, išskyrus ultragarso jutiklį (jo akis), kurį reikia įsigyti atskirai.

2 žingsnis:

Vaizdas
Vaizdas

„Hawking Bot“kodas parašytas naudojant „python 3“. Įkeliamą vaizdo failą, skirtą „python“paleisti „Debian Linux“aplinkoje „Hawking Bot“, galima atsisiųsti iš ev3dev svetainės. „Hawking Bot“paleidimo kodą galite atsisiųsti iš čia. Visas kodas yra klasės faile, todėl galite naudoti esamus metodus arba net juos modifikuoti, jei norite.

Žiūrėkite šį vaizdo įrašą su išsamiais nurodymais, kaip nustatyti „Debian Linux“ir „Python3“savo robote. Nors tai skirta specialiai „Mac“sąrankai, vis tiek bus naudinga gauti bendrą supratimą apie procesą. Tai nebaigtas darbas. Ultragarso jutiklis kartais yra nepatikimas ir tam reikia išmanesnio kodo, kad būtų galima aptikti „nuokrypius“. Norėčiau, kad kiti prisidėtų, kad kodas būtų efektyvesnis ir mažiau klaidų.

3 žingsnis: sukurkite savo „Hawking Soundbites“

Gerai, dabar jūs norite turėti keletą garsių citatų ar tiesiog paprastų profesoriaus Hawkingo pasisakymų. Yra daugybė vaizdo įrašų, kuriuose galite išgirsti jį kalbant, o tada jo paskaitos - tai išminties ir naudingų garso įkandimų lobis.

Jums reikia tokios programos kaip „Audacity“, kuri veikia daugelyje platformų, kad pasirinktumėte ir iškirptumėte mėgstamus garso takelius.

Išsaugokite garso įrašą kaip „WAV“monofoninį failą kaip SH6, SH7,… SH11, SH12 ir pan.

Žemiau rasite keletą pavyzdžių, kuriuos sukūriau pagal aukščiau aprašytą metodą.

4 žingsnis: patarimai ir gudrybės

Patarimai ir gudrybės
Patarimai ir gudrybės
Patarimai ir gudrybės
Patarimai ir gudrybės

„Hawking Bot“komplektuojamas su savikontrolės moduliu, užtikrinančiu, kad visi kabeliai yra prijungti ir pakanka akumuliatoriaus energijos. Gali lengvai atsirasti laisvų, trūkstamų ar net pažeistų jungčių. Taigi šis modulis yra labai naudingas. „CheckConnection“metodas tikrina tik tai, ar yra elektros jungtis. Jūs vis tiek turite įsitikinti, kad varikliai prijungti prie tinkamo prievado.

Braukimasis galvos judesys yra būtinas, kad „Hawking Bot“nuskaitytų savo reljefą ir surastų ilgiausią kelią be kliūčių. Kabeliams reikia pakankamai vietos, kad būtų galima pritaikyti galvos judesius; todėl patartina juos surišti, kaip parodyta nuotraukoje.

„Hawking Bot“geriausiai veikia esant didelėms kliūtims ir ant lygaus ir lygaus paviršiaus. Kilimai varikliams yra sudėtingesni, todėl gali tekti pakoreguoti nustatymus, kad pritaikytumėte skirtingų paviršių elgesį.

„Hawking Bot“jokiu būdu nėra tobulas ir tai yra prototipas, kuriam bus naudingi tolesni patobulinimai. Kodas yra visiškai pakomentuotas ir jums turėtų būti lengva išsiaiškinti, ką daro įvairūs metodai. Įvairūs bitai buvo komentuojami su #, jei pašalinsite # prieš „print“, veikianti programa parodys įvairius jutiklių rodmenis ir skaičiavimus.

5 veiksmas: siūlomi patobulinimai, atnaujinimai ir ateities idėjos

Dabar, kai sėkmingai sukūrėte savo robotą, norite jį pakelti į kitą lygį. Galite patobulinti „MotionDetector“metodą. Šiuo metu dažnai gaunamas neteisingas skaitymas. Faktinius rodmenis galite pamatyti nekomentuodami disA ir disB (metodo bloko apačioje). Neteisingas skaitymas paprastai išsiskiria iš kitų rodmenų, todėl galite parašyti algoritmą, kad robotas nereaguotų į neteisingą rodmenį.

Galbūt norite visiškai valdyti robotą ir tiesiog nuotoliniu būdu valdyti įvairias jo funkcijas. Tai galite padaryti per „Bluetooth“ir parašyti „Android“programą, kad galėtumėte bendrauti su robotu. Tačiau daug lengviau būtų rasti vietą infraraudonųjų spindulių jutikliui, kuris galėtų valdyti „Hawking Bot“.

Ką daryti, kad robotas sužinotų apie jo aplinką? Tai galima padaryti naudojant artimiausio kaimyno metodą arba galbūt neuronų tinklą. EV3 plyta turi ribotą apdorojimo galią, nors ir palaiko „Numpy“. Alternatyva būtų „BrickPi“, kuri leistų jums valdyti AI biblioteką, tokią kaip „Tensorflow“, tačiau šio vadovo tikslas buvo naudoti „Lego EV3 MINDSTORMS“rinkinį, nereikalaujant pirkti daug brangių papildomų dalių, išskyrus ultragarso jutiklį.

Tačiau k-artimiausių kaimynų pakartotinio informavimo mokymosi metodas turėtų veikti su EV3 plyta ir tai yra siūlomas algoritmas. Palieku jums spręsti, ar rasti tinkamą įgyvendinimą ar pastebėti bet kokias problemas:

„Hawkings Bot“sustiprinimo mokymasis

Idėja yra ta, kad 7 USS rodmenys yra užkoduoti vektoriuje, o paskutiniai 10 galvos judesių naudojami nuosekliam 70 įrašų vektoriui sukurti. Pirmieji rodmenys yra neišsamūs, todėl bus užpildyti nuliai. Kiekviename įraše yra atstumo vertė nuo USS. Tai būsenos vektorius s. Sistema leidžia įvesti 1000 įrašų. Vėliau seniausias įrašas bus pakeistas, o kiekvienos s-r poros amžiaus įrašai bus sumažinti vienu.

Botas neturi būti arčiau kaip 10 cm prie objekto. Tai sukuria neigiamą atlygį. Dėl paprastumo; geri veiksmai apdovanojami 1, o blogi-0. Efektyviai tai sukuria tikimybę gauti atlygį už kiekvieną veiksmo ir būsenos derinį. Mes naudosime nuolaidas ir epsilon godus politiką.

Taip sukuriama 3 didelė būsenos-atlygio (s-r) lentelė visiems trims veiksmams į dešinę, tiesiai į priekį ir į kairę-gali būti įmanoma greitai ir lėtai atlikti kiekvieną veiksmą. Tada turėtume 6 veiksmus ir 6 paieškos s-r lenteles.

Kiekvieną kartą, kai įrašoma nauja būsena s, ji lyginama su lentelėmis, artimiausiam kaimynui rasti naudojamas Euklido atstumas (arba panašus matas). Tai nebus reitinguojama, o nustatyta slenkstis t, kad būsena būtų priimta kaip labai panaši, perrašyta esama būsena ir atnaujinama už didžiausią atlygį ir atliekama susijusi veikla a. Jei jis nėra panašus (d> t), kiekvienam veiksmui įveskite naują s-r porą a. Jei tarp s-r veiksmų yra ryšys (jie visi gauna tą patį atlygį), pasirinkite atsitiktinai, tačiau tai nėra įprasta ir gali būti praleista.

t teks eksperimentiškai nustatyti, jei t yra per mažas, panašios būsenos bus ignoruojamos ir kiekviena būsena laikoma unikalia. Per didelis t reiškia, kad net gana skirtingos būsenos yra sujungtos į vieną, o tai gali turėti įtakos gebėjimui pasirinkti gerus veiksmus. Gali būti įmanoma naudoti statistinius metodus, siekiant nustatyti geriausią t.

Lentelė atrodo maždaug taip: įrašas Nr. Būsenos vektorius - atlygis už 1 veiksmą - atlygis už 2 veiksmą - atlygis už 3 veiksmą.

Manau, kad tikrasis įgyvendinimas bus sudėtingas, tačiau turėtų būti vertas pastangų. Sėkmės!

Rekomenduojamas: