Sisukord:

Hawking Bot: 5 sammu
Hawking Bot: 5 sammu

Video: Hawking Bot: 5 sammu

Video: Hawking Bot: 5 sammu
Video: СЕКРЕТНЫЙ РАЗРАБОТЧИК В ЧИКЕН ГАН ! РАЗРАБОТЧИК CHICKEN GUN ! 2024, November
Anonim
Image
Image
Ehitage oma Hawkingi robot
Ehitage oma Hawkingi robot

Hawking Bot on Lego MINDSTORMS EV3 projekt, mis on inspireeritud varalahkunud Stephen Hawkingist. Stephen Hawkingil oli hea huumorimeel, nii et olen kindel, et ta oleks selle projekti heaks kiitnud. Hawking Bot oskab liikuda mööda takistusi ja reageerib liigutustele ning lausub seejärel ühe Stephen Hawkingi kuulsa helitugevuse ja liigub liikuva objekti suunas. See kasutab ultrahelisensorit, mis skaneerib ümbritsevat pead liigutades.

Samm: ehitage oma Hawkingi robot

Kõik vajalikud osad on EV3 Lego MINDSTORMS põhikomplektis, välja arvatud ultrahelisensor (tema silmad), mis tuleb eraldi osta.

2. samm:

Pilt
Pilt

Hawking Boti kood on kõik kirjutatud pythonis 3. Alglaaditava pildifaili, mis käivitab pythoni Debiani Linuxi keskkonnas Hawking Botis, saab alla laadida veebilehelt ev3dev. Hawking Boti käitamise koodi saab alla laadida siit. Kogu kood on klassifailis, nii et saate kasutada olemasolevaid meetodeid või neid soovi korral isegi muuta.

Vaadake seda videot koos üksikasjalike juhistega Debian Linuxi ja Python3 seadistamiseks oma robotile. Kuigi see on mõeldud spetsiaalselt Maci seadistamiseks, on sellest protsessist üldise arusaamise saamiseks siiski kasu. See on pooleli olev töö. Ultraheliandur on kohati ebausaldusväärne ja see nõuab „kõrvalekallete” tuvastamiseks nutikamat koodi. Tahaksin näha teiste panust, et muuta kood tõhusamaks ja vähem vigadeks.

3. samm: looge oma Hawkingi helihelid

OK, nüüd tahad saada kuulsaid tsitaate või lihtsalt lihtsaid ütlusi prof Hawkingilt. Seal on palju videoid, kus saate kuulata teda rääkimas, ja siis on tema loengud, mis on tarkuse ja kasulike helihammustuste aare.

Oma lemmikheli valimiseks ja väljalülitamiseks vajate sellist programmi nagu Audacity, mis töötab paljudel platvormidel.

Salvestage oma soundbite WAV -monofailina SH6, SH7,… SH11, SH12 ja nii edasi.

Allpool leiate mõned näidised, mille olen loonud ülaltoodud meetodi kohaselt.

4. samm: näpunäited ja nipid

Näpunäiteid ja nippe
Näpunäiteid ja nippe
Näpunäiteid ja nippe
Näpunäiteid ja nippe

Hawking Botiga on kaasas enesekontrolli moodul, mis tagab, et kõik kaablid on ühendatud ja aku on piisav. Lahtised, puuduvad või isegi kahjustatud ühendused võivad kergesti tekkida. Nii et see moodul on väga kasulik. Meetod „checkConnection” kontrollib ainult elektriühenduse olemasolu. Peate ikkagi tagama, et mootorid on ühendatud õige pordiga.

Pöörlev pea liikumine on hädavajalik, et Hawking Bot saaks maastikku skannida ja leida pikima takistusteta tee. Kaablid vajavad pea liigutamiseks piisavalt ruumi; seetõttu on soovitatav need kokku siduda, nagu fotol näidatud.

Hawking Bot töötab kõige paremini suurte takistustega ning tasasel ja siledal pinnal. Vaibad on mootorite jaoks keerulisemad ja peate võib -olla seadistusi kohandama, et kohandada erinevate pindade käitumist.

Hawking Bot pole sugugi täiuslik ja see on prototüüp, mis saab täiendavatest täiustustest kasu. Kood on täielikult kommenteeritud ja teil peaks olema lihtne välja selgitada, mida erinevad meetodid teevad. Mitmeid bitte on kommenteeritud # -ga, kui eemaldate märgi „print” ees oleva #, näitab jooksev programm teile erinevaid andurite näiteid ja arvutusi.

5. samm: soovitatud täiustused, värskendused ja tulevikuideed

Nüüd, kui olete oma roboti edukalt üles ehitanud, soovite selle järgmisele tasemele viia. Saate MotionDetectori meetodit täiustada. Praegu tuleb seda nii tihti valesti. Tegelikke näiteid näete disA ja disB kommenteerimata (meetodiploki allosas). Vale näit erineb tavaliselt teistest näitudest, nii et võite kirjutada algoritmi, et robot ei vastaks valele lugemisele.

Võib-olla soovite robotit täielikult juhtida ja lihtsalt selle erinevaid funktsioone kaugjuhtida. Saate seda teha Bluetoothi kaudu ja kirjutada Androidi programm robotiga suhtlemiseks. Palju lihtsam lähenemine oleks aga leida koht, kus infrapunaandur saaks Hawking Boti juhtida.

Mis saab robotist oma keskkonda tundma õppida? Seda saab teha k-lähima naabri lähenemise või närvivõrgu abil. EV3 tellisel on piiratud töötlemisvõimsus, kuigi see toetab Numpyt. Alternatiiviks oleks BrickPi, mis võimaldaks teil kasutada AI -raamatukogu nagu Tensorflow, kuid selle juhendi eesmärk oli kasutada Lego EV3 MINDSTORMS komplekti, ilma et oleks vaja osta palju kalleid lisatükke peale ultrahelisensori.

K-lähimate naabrite taasteabe õppimise lähenemisviis peaks aga töötama EV3 tellise kallal ja see on soovitatud algoritm. Jätan teie otsustada toimiva rakenduse leidmise või probleemide tuvastamise.

Tugevdusõpe Hawkings Botile

Idee on selles, et 7 USS -i näitu kodeeritakse vektoriks ja viimase 10 peaga löögi abil luuakse järjestikune 70 kirje vektor. Esimesed näidud on puudulikud, nii et need täidetakse nullidega. Iga kirje sisaldab USS -i kauguse väärtust. See on olekvektor s. Süsteem võimaldab 1000 sisestust. Seejärel asendatakse vanim kirje ja iga s-r paari vanusekirju vähendatakse ühe võrra.

Bot ei tohi asuda objektile lähemale kui 10 cm. See loob negatiivse tasu. Lihtsuse huvides; häid tegusid premeeritakse 1-ga ja halbu tehtega 0. Tegelikult loob see tõenäosuse tasu iga tegevuse-oleku kombinatsiooni eest. Kasutame soodushinnaga preemiaid ja epsiloni ahneid eeskirju.

See loob 3 suurt olekutasu (s-r) tabelit kõigi kolme toimingu jaoks paremale, otse edasi ja vasakule-võib olla võimalik iga toimingu jaoks kiire ja aeglane kiirus. Meil oleks siis 6 toimingut ja 6 otsingulauda.

Iga kord, kui uus olek s registreeritakse, võrreldakse seda tabelitega, lähima naabri leidmiseks kasutatakse Eukleidese kaugust (või sarnast mõõdet). Seda ei järjestata, vaid seatakse künnis t, et aktsepteerida olekut väga sarnasena, kirjutada olemasolev olek üle ja uuendada kõrgeima tasu eest ning viia läbi seotud toiming a. Kui see pole sarnane (d> t), sisestage iga toimingu jaoks uus s-r paar a. Kui s-r tegevuste vahel on seos (kõigil on sama tasu), valige juhuslikult, kuid see pole tavaline ja selle võib välja jätta.

t tuleb eksperimentaalselt kindlaks teha, kui t on liiga väike, eiratakse sarnaseid olekuid ja iga olekut peetakse ainulaadseks. Liiga suur t tähendab, et isegi üsna erinevad olekud koondatakse kokku, mis võib mõjutada võimet valida häid tegevusi. Parima t määramiseks võib olla võimalik kasutada statistilisi meetodeid.

Tabel näeb välja umbes selline: Kanne nr - riiklik vektor - tasu tegevuse 1 eest - tasu tegevuse 2 eest - tasu tegevuse 3 eest.

Ma arvan, et tegelik rakendamine on keeruline, kuid see peaks olema vaeva väärt. Edu!

Soovitan: