INHOUDSOPGAWE:

Hawking Bot: 5 stappe
Hawking Bot: 5 stappe

Video: Hawking Bot: 5 stappe

Video: Hawking Bot: 5 stappe
Video: Stephen Hawking Warns Against AI 2024, Julie
Anonim
Image
Image
Bou u Hawking Bot
Bou u Hawking Bot

Die Hawking Bot is 'n Lego MINDSTORMS EV3 -projek geïnspireer deur wyle Stephen Hawking. Stephen Hawking het 'n goeie sin vir humor, so ek is seker dat hy hierdie projek sou goedgekeur het. Die Hawking Bot kan deur hindernisse beweeg en reageer op bewegings, en dan een van Stephen Hawking se beroemde klankgrepe en beweeg in die rigting van die bewegende voorwerp. Dit gebruik die ultrasoniese sensor wat die omgewing met 'n groot kopbeweging skandeer.

Stap 1: Bou u Hawking Bot

Al die vereiste stukke is in die basiese EV3 Lego MINDSTORMS -stel, behalwe die ultrasoniese sensor (sy oë) wat apart gekoop moet word.

Stap 2:

Beeld
Beeld

Die kode vir die Hawking Bot is alles in python 3. 'n Opstartbare beeldlêer om python binne 'n Debian Linux -omgewing op die Hawking Bot te laai, kan van die ev3dev -webwerf afgelaai word. Die kode vir die gebruik van die Hawking Bot kan hier afgelaai word. Alle kode is vervat in 'n klaslêer, sodat u die bestaande metodes kan gebruik of selfs kan verander as u wil.

Kyk na hierdie video met gedetailleerde instruksies oor hoe om Debian Linux en Python3 op u robot op te stel. Alhoewel dit spesifiek vir 'n Mac -opstelling is, sal dit steeds nuttig wees om 'n algemene begrip van die proses te kry. Dit is aan die gang. Die ultrasoniese sensor is soms onbetroubaar en dit vereis slimmer kode om 'uitskieters' op te spoor. Ek wil graag bydraes van ander sien om die kode doeltreffender en minder geneig tot foute te maak.

Stap 3: Maak u eie Hawking Soundbites

OK, nou wil u 'n paar bekende aanhalings hê of net 'n paar eenvoudige uitsprake van prof Hawking. Daar is tonne video's waar u hom kan hoor praat, en dan is daar sy lesings wat 'n skatkis van wysheid en nuttige klankbyte is.

U benodig 'n program soos Audacity wat op baie platforms werk om u gunsteling klankbyte te kies en uit te sny.

Stoor u klankbyt as 'n wav -monolêer as SH6, SH7, … SH11, SH12 en so meer.

Hieronder vind u 'n paar voorbeelde wat ek volgens die metode hierbo gemaak het.

Stap 4: wenke en truuks

Wenke en toertjies
Wenke en toertjies
Wenke en toertjies
Wenke en toertjies

Die Hawking Bot het 'n selfkontrolemodule om te verseker dat alle kabels verbind is en die batterykrag voldoende is. Los, ontbrekende of selfs beskadigde verbindings kan maklik voorkom. Hierdie module is dus baie handig. Die 'checkConnection' -metode kyk slegs of daar 'n elektriese verbinding is. U moet steeds seker maak dat die motors aan die regte poort gekoppel is.

Die swipkopbeweging is noodsaaklik vir die Hawking Bot om sy terrein te skandeer en die langste onbelemmerde pad vorentoe te vind. Die kabels benodig genoeg ruimte om kopbewegings te akkommodeer; daarom is dit raadsaam om dit aan mekaar vas te bind soos op die foto.

Die Hawking Bot werk die beste met groot hindernisse en op 'n plat en gladde oppervlak. Matte is meer uitdagend vir die motors, en u moet moontlik die instellings aanpas om die gedrag van verskillende oppervlaktes aan te pas.

Die Hawking Bot is geensins perfek nie en dit is 'n prototipe wat baat sal vind by verdere verbeterings. Daar is volledige kommentaar op die kode, en dit moet vir u maklik wees om uit te vind wat die verskillende metodes doen. Daar is kommentaar gelewer op verskillende stukkies met #, as u die # voor 'druk' verwyder, sal die lopende program u die verskillende sensorlesings en berekeninge wys.

Stap 5: Voorgestelde verbeterings, opdaterings en toekomstige idees

Noudat u u robot suksesvol gebou het, wil u dit na die volgende vlak neem. U kan die MotionDetector -metode verbeter. Op die oomblik word dit gereeld so verkeerd gelees. U kan die werklike lesings sien deur disA en disB (onderaan die metodeblok) te kommentaar. Die verkeerde lesing onderskei gewoonlik van ander lesings, sodat u 'n algoritme kan skryf om te keer dat die robot op 'n verkeerde lesing reageer.

Miskien wil u die robot heeltemal beheer en net die verskillende funksies daarvan op afstand beheer. U kan dit via Bluetooth doen en 'n Android -program skryf om met die robot te kommunikeer. 'N Baie makliker benadering sou egter wees om 'n plek te vind vir die infrarooi sensor om beheer oor Hawking Bot te neem.

Wat daarvan om die robot te laat leer oor sy omgewing? Dit kan bereik word met 'n k-naaste buurbenadering of moontlik 'n neurale netwerk. Die EV3 -baksteen het 'n beperkte verwerkingskrag, hoewel dit wel Numpy ondersteun. 'N Alternatief sou 'n BrickPi wees waarmee u 'n AI -biblioteek soos Tensorflow kan bestuur, maar die bedoeling van hierdie gids was om die Lego EV3 MINDSTORMS -kit te gebruik sonder dat u baie duur ekstra stukke behalwe die ultrasoniese sensor hoef te koop.

K-naaste bure se herbenaderingsbenadering behoort egter op die EV3-baksteen te werk, en dit is die voorgestelde algoritme. Ek laat dit aan u oor om 'n werkende implementering te vind of probleme op te spoor:

Versterkingsleer vir Hawkings Bot

Die idee is dat die 7 USS -lesings in 'n vektor gekodeer word en die laaste 10 koppe word gebruik om 'n opeenvolgende vektor van 70 inskrywings te skep. Die eerste lesings is onvolledig, dus word dit met nulle gevul. Elke inskrywing bevat die afstandwaarde van die USS. Dit is die staatsvektor s. Die stelsel maak voorsiening vir 1000 inskrywings. Daarna sal die oudste inskrywing vervang word en die ouderdomsinskrywings vir elke s-r-paar met een verminder word.

Die bot moet nie nader as 10 cm van 'n voorwerp kom nie. Dit skep 'n negatiewe beloning. Vir eenvoud; goeie aksies word beloon met 'n 1 en slegte met 'n 0. Dit skep effektief 'n waarskynlikheid vir die beloning vir elke aksie-staat kombinasie. Ons gebruik afslagpryse en gulsige beleid vir epsilon.

Dit skep drie groot toestand-beloningstabel (s-r) vir al drie aksies regs, reguit vorentoe en links-dit kan moontlik wees om vinnige en stadige snelhede vir elke aksie te hê. Ons sou dan 6 aksies en 6 soek-s-r-tabelle hê.

Elke keer as 'n nuwe toestand aangeteken word, word dit vergelyk met die tabelle, die Euklidiese afstand (of soortgelyke maat) word gebruik om die naaste buurman te vind. Dit sal nie ingedeel word nie, maar eerder 'n drempel t is ingestel om die staat as baie soortgelyk te aanvaar, die bestaande toestand oor te skryf en by te werk vir die hoogste beloning en die gepaardgaande aksie uit te voer a. As dit nie dieselfde is nie (d> t) voer 'n nuwe s-r-paar in vir elke aksie a. As daar 'n verband is tussen aksies vir vir s-r (hulle het almal dieselfde beloning), kies lukraak, maar dit is nie algemeen nie en kan weggelaat word.

t sal eksperimenteel moet bepaal, as t te klein is, sal soortgelyke toestande geïgnoreer word en elke toestand as uniek beskou word. 'N Te groot t beteken dat selfs nogal verskillende toestande saamgevoeg word, wat die vermoë om goeie optrede te kies, kan beïnvloed. Dit is moontlik om statistiese metodes te gebruik om die beste t te bepaal.

Die tabel lyk so: Inskrywing No - Staat vektor - beloning vir aksie 1 - beloning vir aksie 2 - beloning vir aksie 3.

Ek dink die werklike implementering sal moeilik wees, maar dit behoort die moeite te doen. Sterkte!

Aanbeveel: