Satura rādītājs:

Hawking Bot: 5 soļi
Hawking Bot: 5 soļi

Video: Hawking Bot: 5 soļi

Video: Hawking Bot: 5 soļi
Video: «Интернет вещей», Джеймс Уиттакер из Microsoft 2024, Novembris
Anonim
Image
Image
Izveidojiet savu Hokinga robotu
Izveidojiet savu Hokinga robotu

Hawking Bot ir Lego MINDSTORMS EV3 projekts, kuru iedvesmojis nelaiķis Stīvens Hokings. Stīvenam Hokinam bija laba humora izjūta, tāpēc esmu pārliecināts, ka viņš būtu apstiprinājis šo projektu. Hawking Bot var pārvietoties pa šķēršļiem un reaģēt uz kustībām, un tad izrunā vienu no Stīvena Hokinga slavenajiem skaņas kodumiem un kustas kustīgā objekta virzienā. Tas izmanto ultraskaņas sensoru, kas skenē apkārtējo vidi ar plaukstas kustību.

1. darbība: izveidojiet savu Hokinga robotu

Visas nepieciešamās detaļas ir iekļautas EV3 Lego MINDSTORMS pamata komplektā, izņemot ultraskaņas sensoru (viņa acis), kas jāiegādājas atsevišķi.

2. darbība:

Attēls
Attēls

Hawking Bot kods ir rakstīts python 3. Sāknējamu attēla failu, lai palaistu python Debian Linux vidē Hawking Bot, var lejupielādēt no vietnes ev3dev. Kodu Hawking Bot palaišanai var lejupielādēt šeit. Viss kods ir ietverts klases failā, lai jūs varētu izmantot esošās metodes vai pat modificēt tās, ja vēlaties.

Lūdzu, noskatieties šo video ar detalizētiem norādījumiem par to, kā robotā iestatīt Debian Linux un Python3. Lai gan tas ir īpaši paredzēts Mac iestatīšanai, joprojām būs noderīgi iegūt vispārēju izpratni par procesu. Šis ir darbs. Ultraskaņas sensors reizēm ir neuzticams, un tam ir vajadzīgs gudrāks kods, lai noteiktu “novirzes”. Es gribētu redzēt citu ieguldījumus, lai padarītu kodu efektīvāku un mazāk pakļautu kļūdām.

3. darbība: izveidojiet savus Hawking skaņu vietnes

Labi, tagad jūs vēlaties saņemt dažus slavenus citātus vai tikai dažus vienkāršus izteikumus no profesora Hokinga. Ir daudz videoklipu, kur jūs varat dzirdēt viņu runājam, un pēc tam ir viņa lekcijas, kas ir gudrības un noderīgu skaņu kodums.

Jums ir nepieciešama tāda programma kā Audacity, kas darbojas daudzās platformās, lai izvēlētos un izgrieztu iecienītākās skaņas vietas.

Saglabājiet skaņas skaņu kā wav mono failu kā SH6, SH7,… SH11, SH12 un tā tālāk.

Zemāk jūs atradīsit dažus paraugus, kurus esmu izveidojis saskaņā ar iepriekš minēto metodi.

4. solis: padomi un triki

Padomi un triki
Padomi un triki
Padomi un triki
Padomi un triki

Hawking Bot ir aprīkots ar pašpārbaudes moduli, lai pārliecinātos, ka visi kabeļi ir pievienoti un vai akumulatora jauda ir pietiekama. Viegli, trūkstoši vai pat bojāti savienojumi var notikt viegli. Tāpēc šis modulis ir ļoti noderīgs. “CheckConnection” metode pārbauda tikai to, vai ir elektriskais savienojums. Joprojām ir jāpārliecinās, ka motori ir pievienoti pareizajam portam.

Pārvelkamā galvas kustība ir būtiska, lai Hawking Bot varētu skenēt reljefu un atrast garāko netraucēto ceļu uz priekšu. Kabeļiem ir nepieciešams pietiekami daudz vietas, lai pielāgotos galvas kustībām; tādēļ ieteicams tos sasiet kopā, kā parādīts fotoattēlā.

Hawking Bot vislabāk darbojas ar lieliem šķēršļiem un uz līdzenas un gludas virsmas. Paklāji ir sarežģītāki motoriem, un, iespējams, būs jāpielāgo iestatījumi, lai pielāgotu dažādu virsmu uzvedību.

Hawking Bot nekādā ziņā nav ideāls, un tas ir prototips, kas gūs labumu no turpmākiem uzlabojumiem. Kods ir pilnībā komentēts, un jums vajadzētu būt viegli noteikt, ko dara dažādas metodes. Dažādi biti ir komentēti ar #, ja noņemat #, kas atrodas “drukas” priekšā, darbīgā programma parādīs dažādus sensora rādījumus un aprēķinus.

5. darbība. Ieteiktie uzlabojumi, atjauninājumi un nākotnes idejas

Tagad, kad esat veiksmīgi izveidojis savu robotu, vēlaties to pacelt nākamajā līmenī. Jūs varētu uzlabot MotionDetector metodi. Pašlaik tik bieži tas kļūst nepareizi lasāms. Jūs varat redzēt faktiskos rādījumus, nekomentējot disA un disB (metodes bloka apakšā). Nepareizs rādījums parasti izceļas no citiem rādījumiem, lai jūs varētu uzrakstīt algoritmu, lai apturētu robota reakciju uz nepareizu rādījumu.

Varbūt jūs vēlaties pilnībā kontrolēt robotu un vienkārši tālvadīt tā dažādās funkcijas. Jūs to varētu izdarīt, izmantojot Bluetooth, un uzrakstīt Android programmu, lai sazinātos ar robotu. Tomēr daudz vienkāršāka pieeja būtu atrast vietu infrasarkanajam sensoram, lai pārņemtu kontroli pār Hokingu Botu.

Kā būtu likt robotam uzzināt par savu vidi? To var paveikt, izmantojot k-tuvākā kaimiņa pieeju vai, iespējams, neironu tīklu. EV3 ķieģeļiem ir ierobežota apstrādes jauda, lai gan tas atbalsta Numpy. Alternatīva būtu BrickPi, kas ļautu jums vadīt AI bibliotēku, piemēram, Tensorflow, taču šīs rokasgrāmatas nolūks bija izmantot Lego EV3 MINDSTORMS komplektu bez nepieciešamības iegādāties daudz dārgu papildu detaļu, izņemot ultraskaņas sensoru.

Tomēr k-tuvāko kaimiņu atkārtotas informācijas mācīšanās pieejai vajadzētu strādāt pie EV3 ķieģeļa, un tas ir ieteiktais algoritms. Es atstāju jūsu ziņā, vai atrast funkcionējošu ieviešanu vai konstatēt problēmas:

Pastiprināšanas mācības Hawkings Bot

Ideja ir tāda, ka 7 USS rādījumi tiek kodēti vektorā un pēdējās 10 galvas svārstības tiek izmantotas, lai izveidotu secīgu 70 ierakstu vektoru. Pirmie rādījumi ir nepilnīgi, tāpēc tie tiks aizpildīti ar nullēm. Katrs ieraksts satur attāluma vērtību no USS. Tas ir stāvokļa vektors s. Sistēma ļauj ievadīt 1000 ierakstus. Pēc tam vecākais ieraksts tiks aizstāts un vecuma ieraksti katram s-r pārim tiks samazināti par vienu.

Bots nedrīkst tuvināties objektam tuvāk par 10 cm. Tas rada negatīvu atlīdzību. Vienkāršības labad; labas darbības tiek apbalvotas ar 1, bet sliktas-ar 0. Faktiski tas rada atlīdzības varbūtību par katru darbības stāvokļa kombināciju. Mēs izmantosim atlaides un epsilon mantkārīgu politiku.

Tādējādi tiek izveidota 3 liela stāvokļa atlīdzības (s-r) tabula visām trim darbībām pa labi, taisni uz priekšu un pa kreisi-iespējams, katrai darbībai var būt ātrs un lēns ātrums. Tad mums būtu 6 darbības un 6 uzmeklēšanas s-r tabulas.

Katru reizi, kad tiek ierakstīts jauns stāvoklis s, tas tiek salīdzināts ar tabulām, tuvākā kaimiņa atrašanai tiek izmantots Eiklīda attālums (vai līdzīgs mērījums). Tas netiks klasificēts, bet drīzāk ir noteikts slieksnis t, lai pieņemtu stāvokli kā ļoti līdzīgu, pārrakstītu esošo stāvokli un atjauninātu par lielāko atlīdzību un veiktu ar to saistīto darbību a. Ja tas nav līdzīgs (d> t), ievadiet jaunu s-r pāri katrai darbībai a. Ja starp s-r darbībām pastāv saikne (tām visām ir vienāda atlīdzība), izvēlieties nejauši, bet tas nav bieži un to var izlaist.

t būs eksperimentāli jānosaka, ja t ir pārāk mazs, līdzīgi stāvokļi tiks ignorēti un katrs stāvoklis tiks uzskatīts par unikālu. Pārāk liels t nozīmē, ka pat diezgan atšķirīgi stāvokļi tiek apvienoti kopā, kas var ietekmēt spēju izvēlēties labas darbības. Var būt iespējams izmantot statistikas metodes, lai noteiktu labāko t.

Tabula izskatās apmēram šādi: ieraksts Nr. - valsts vektors - atlīdzība par 1. darbību - atlīdzība par 2. darbību - atlīdzība par 3. darbību.

Es domāju, ka faktiskā īstenošana būs sarežģīta, taču tai vajadzētu būt pūļu vērtai. Veiksmi!

Ieteicams: