Sisällysluettelo:

Hawking Bot: 5 vaihetta
Hawking Bot: 5 vaihetta

Video: Hawking Bot: 5 vaihetta

Video: Hawking Bot: 5 vaihetta
Video: 1/5 kulmaa kosmologiaan: Kaikkeuden alku 2024, Heinäkuu
Anonim
Image
Image
Rakenna Hawking -robotti
Rakenna Hawking -robotti

Hawking Bot on Lego MINDSTORMS EV3 -projekti, joka on saanut inspiraationsa edesmenneestä Stephen Hawkingista. Stephen Hawkingilla oli hyvä huumorintaju, joten olen varma, että hän olisi hyväksynyt tämän projektin. Hawking Bot voi navigoida tiesi ympäri esteitä ja reagoida liikkeisiin ja lausua sitten yhden Stephen Hawkingin kuuluisista soundbiteista ja liikkuu liikkuvan kohteen suuntaan. Se käyttää ultraäänianturia, joka skannaa ympäristöään lakaistaan pään liikettä.

Vaihe 1: Rakenna Hawking Bot

Kaikki tarvittavat osat ovat EV3: n perussarjassa MINDSTORMS, lukuun ottamatta ultraäänianturia (hänen silmänsä), joka on ostettava erikseen.

Vaihe 2:

Kuva
Kuva

Hawking Botin koodi on kirjoitettu python 3: lla. Käynnistettävä kuvatiedosto pythonin suorittamiseksi Debian Linux -ympäristössä Hawking Botissa voidaan ladata ev3dev -sivustosta. Voit ladata Hawking Bot -koodin täältä. Kaikki koodi on luokkatiedostossa, joten voit käyttää olemassa olevia menetelmiä tai jopa muokata niitä halutessasi.

Katso tämä video, jossa on yksityiskohtaiset ohjeet Debian Linuxin ja Python3: n asentamisesta robotillesi. Vaikka tämä koskee erityisesti Mac -asetuksia, on silti hyödyllistä saada yleinen käsitys prosessista. Tämä on työn alla. Ultraääni -anturi on toisinaan epäluotettava, ja tämä vaatii älykkäämpää koodia "poikkeavien" havaitsemiseksi. Haluaisin nähdä muiden osallistumista koodin tehostamiseksi ja vähemmän virhealttiiksi.

Vaihe 3: Tee omia Hawking -äänipaloja

OK, nyt haluat saada kuuluisia lainauksia tai vain yksinkertaisia lausuntoja professori Hawkingilta. Siellä on paljon videoita, joissa voit kuulla hänen puhuvan, ja sitten on hänen luentojaan, jotka ovat viisauden ja hyödyllisten äänen puremien aarrearkku.

Tarvitset Audacityn kaltaisen ohjelman, joka toimii monilla alustoilla valitaksesi ja leikataksesi suosikkiäänesi.

Tallenna soundbite wav -monotiedostona SH6, SH7,… SH11, SH12 ja niin edelleen.

Alla on muutamia näytteitä, jotka olen luonut yllä olevan menetelmän mukaisesti.

Vaihe 4: Vinkkejä ja temppuja

Vinkkejä ja temppuja
Vinkkejä ja temppuja
Vinkkejä ja temppuja
Vinkkejä ja temppuja

Hawking Botin mukana tulee itsetarkistusmoduuli, joka varmistaa, että kaikki kaapelit on kytketty ja akku riittää. Löysät, puuttuvat tai jopa vaurioituneet liitännät voivat tapahtua helposti. Joten tämä moduuli on erittäin hyödyllinen. CheckConnection -menetelmä tarkistaa vain, onko sähköliitäntä olemassa. Sinun on silti varmistettava, että moottorit on kytketty oikeaan porttiin.

Pyyhkäisevä pään liike on välttämätön, jotta Hawking Bot voi skannata maastonsa ja löytää pisin esteetön polku. Kaapelit tarvitsevat tarpeeksi tilaa pään liikkeille; Siksi on suositeltavaa sitoa ne yhteen kuvan osoittamalla tavalla.

Hawking Bot toimii parhaiten suurilla esteillä ja tasaisella ja sileällä pinnalla. Matot ovat haastavampia moottoreille ja joudut ehkä säätämään asetuksia eri pintojen käyttäytymisen säätämiseksi.

Hawking Bot ei ole missään tapauksessa täydellinen, ja tämä on prototyyppi, joka hyötyy lisäparannuksista. Koodi on täysin kommentoitu, ja sinun pitäisi olla helppo selvittää, mitä eri menetelmät tekevät. Useita bittejä on kommentoitu # -merkillä, jos poistat # -merkin tulostuksen edessä, käynnissä oleva ohjelma näyttää sinulle eri anturilukemat ja laskelmat.

Vaihe 5: Ehdotetut parannukset, päivitykset ja tulevaisuuden ideat

Nyt kun olet rakentanut robotin onnistuneesti, haluat viedä sen uudelle tasolle. Voit parantaa MotionDetector -menetelmää. Tällä hetkellä lukeminen on usein väärin. Näet todelliset lukemat poistamalla kommentit disA ja disB (menetelmälohkon alareunassa). Väärä lukema erottuu yleensä muista lukemista, joten voit kirjoittaa algoritmin estääksesi robotin vastaamasta väärään lukemaan.

Ehkä haluat ottaa robotin täyden hallinnan ja vain kauko-ohjata sen eri toimintoja. Voit tehdä tämän Bluetoothin kautta ja kirjoittaa Android -ohjelman kommunikoimaan robotin kanssa. Paljon helpompi lähestymistapa olisi kuitenkin löytää paikka infrapuna -anturille Hawking Botin hallintaan.

Entä saada robotti oppimaan ympäristöstään? Tämä voitaisiin saavuttaa k-lähimmän naapurilähestymistavan tai mahdollisesti hermoverkon avulla. EV3 -tiilellä on rajallinen prosessointiteho, vaikka se tukee Numpyä. Vaihtoehto olisi BrickPi, jonka avulla voit käyttää tekoälykirjastoa, kuten Tensorflow, mutta tämän oppaan tarkoituksena oli käyttää Lego EV3 MINDSTORMS -sarjaa ilman tarvetta ostaa monia muita kalliita lisäosia kuin ultraääni -anturi.

Kuitenkin k-lähimpien naapureiden uudelleeninformaation oppimisen lähestymistavan pitäisi toimia EV3-tiilillä, ja tämä on ehdotettu algoritmi. Jätän sinun tehtäväksesi löytää toimiva toteutus tai havaita ongelmia:

Vahvistusopetus Hawkings Botille

Ajatuksena on, että 7 USS -lukemaa koodataan vektoriksi ja viimeiset 10 pään heilahdusta käytetään 70 merkinnän peräkkäisen vektorin luomiseen. Ensimmäiset lukemat ovat puutteellisia, joten ne täytetään nollilla. Jokainen merkintä sisältää etäisyysarvon USS: stä. Tämä on tilavektori s. Järjestelmä sallii 1000 merkintää. Sen jälkeen vanhin merkintä korvataan ja kunkin s-r-parin ikämerkintöjä vähennetään yhdellä.

Botti ei saa olla lähempänä kuin 10 cm esineeseen. Tämä luo negatiivisen palkkion. Yksinkertaisuuden vuoksi; hyvät teot palkitaan 1: llä ja huonot 0: lla. Käytännössä tämä luo todennäköisyyden palkkiolle jokaisesta toimintatilan yhdistelmästä. Käytämme alennettuja palkintoja ja epsilon ahneita käytäntöjä.

Tämä luo kolme suurta tila-palkintotaulukkoa (s-r) kaikille kolmelle toiminnolle oikealle, suoraan eteenpäin ja vasemmalle-voi olla mahdollista saada nopeita ja hitaita nopeuksia jokaiselle toiminnolle. Meillä olisi silloin 6 toimintoa ja 6 hakupöytää.

Aina kun uusi tila s tallennetaan, sitä verrataan taulukoihin, euklidista etäisyyttä (tai vastaavaa mittausta) käytetään lähimmän naapurin löytämiseen. Tätä ei luokitella vaan pikemminkin kynnys t asetetaan hyväksymään tila hyvin samanlaiseksi, korvaamaan olemassa oleva tila ja päivittämään korkeimman palkkion saamiseksi ja suorittamaan siihen liittyvä toiminto a. Jos se ei ole samanlainen (d> t), kirjoita uusi s-r-pari jokaiselle toiminnolle a. Jos s-r-toimintojen välillä on tasapeli (kaikilla on sama palkkio), valitse satunnaisesti, mutta tämä ei ole yleistä ja se voidaan jättää pois.

t on kokeellisesti määritettävä, jos t on liian pieni, vastaavat tilat jätetään huomiotta ja jokainen tila nähdään ainutlaatuisena. Liian suuri t tarkoittaa, että jopa melko erilaisia tiloja yhdistetään, mikä voi vaikuttaa kykyyn valita hyviä tekoja. Voi olla mahdollista käyttää tilastollisia menetelmiä parhaan t: n määrittämiseksi.

Taulukko näyttää suunnilleen tältä: Kohta nro - Tilavektori - palkinto toiminnasta 1 - palkinto toiminnasta 2 - palkinto toiminnasta 3.

Luulen, että todellinen toteutus on hankalaa, mutta sen pitäisi olla vaivan arvoista. Onnea!

Suositeltava: