Përmbajtje:

Hawking Bot: 5 hapa
Hawking Bot: 5 hapa

Video: Hawking Bot: 5 hapa

Video: Hawking Bot: 5 hapa
Video: Stephen Hawking's Famous Speech. 2024, Nëntor
Anonim
Image
Image
Ndërtoni Botin tuaj Hawking
Ndërtoni Botin tuaj Hawking

Rob Hawking është një projekt Lego MINDSTORMS EV3 i frymëzuar nga i ndjeri Stephen Hawking. Stephen Hawking kishte një sens të mirë humori, kështu që jam i sigurt se ai do ta kishte miratuar këtë projekt. Rob Hawking mund të lundrojë në rrugën e tij rreth pengesave dhe i përgjigjet lëvizjeve dhe pastaj shqipton një nga goditjet e famshme të zërit të Stephen Hawking dhe lëviz në drejtim të objektit në lëvizje. Ai përdor sensorin tejzanor i cili po skanon mjedisin e tij me një lëvizje gjithëpërfshirëse të kokës.

Hapi 1: Ndërtoni Botin tuaj Hawking

Të gjitha pjesët e kërkuara janë në bazën EV3 Lego MINDSTORMS të vendosur me përjashtim të sensorit tejzanor (sytë e tij) i cili duhet të blihet veçmas.

Hapi 2:

Imazhi
Imazhi

Kodi për Hawking Bot është shkruar i gjithi në python 3. Një skedar imazhi bootable për të drejtuar python brenda një mjedisi Debian Linux në Hawking Bot mund të shkarkohet nga faqja e internetit ev3dev. Kodi për të drejtuar Botën Hawking mund të shkarkohet nga këtu. I gjithë kodi përmbahet brenda një skedari të klasës, kështu që ju mund të përdorni metodat ekzistuese ose madje t'i modifikoni ato nëse dëshironi.

Ju lutemi shikoni këtë video me udhëzime të hollësishme se si të konfiguroni Debian Linux dhe Python3 në robotin tuaj. Edhe pse kjo është posaçërisht për një konfigurim Mac, do të jetë akoma e dobishme për të marrë një kuptim të përgjithshëm të procesit. Kjo është punë në progres. Sensori tejzanor nganjëherë nuk është i besueshëm dhe kjo kërkon kod më të zgjuar për të zbuluar 'të jashtëm'. Do të doja të shihja kontribute nga të tjerët për ta bërë kodin më efikas dhe më pak të prirur ndaj gabimeve.

Hapi 3: Krijoni zërit tuaj Hawking

OK tani ju doni të keni disa citate të famshme ose vetëm disa thënie të thjeshta nga Prof Hawking. Ka mijëra video ku mund ta dëgjoni duke folur dhe pastaj ka leksionet e tij të cilat janë një thesar i mençurisë dhe kafshimeve të dobishme të zërit.

Keni nevojë për një program si Audacity i cili punon në shumë platforma për të zgjedhur dhe prerë zhurmat tuaja të preferuara të zërit.

Ruani zërin tuaj të zërit si një skedar mono wav si SH6, SH7,… SH11, SH12 dhe kështu me radhë.

Më poshtë gjeni disa mostra të cilat i kam krijuar sipas metodës së mësipërme.

Hapi 4: Këshilla dhe truke

Këshilla dhe truke
Këshilla dhe truke
Këshilla dhe truke
Këshilla dhe truke

Hawking Bot vjen me një modul vetëkontrolli për të siguruar që të gjithë kabllot janë të lidhur dhe fuqia e baterisë është e mjaftueshme. Lidhjet e lira, të humbura apo edhe të dëmtuara mund të ndodhin lehtë. Pra, ky modul është shumë i dobishëm. Metoda 'checkConnection' kontrollon vetëm nëse ka një lidhje elektrike. Ende duhet të siguroheni që motorët janë të lidhur me portën e duhur.

Lëvizja e rrotullimit të kokës është thelbësore që Hawking Bot të skanojë terrenin e tij dhe të gjejë rrugën më të gjatë të papenguar përpara. Kabllot kanë nevojë për hapësirë të mjaftueshme për të përballuar lëvizjet e kokës; prandaj është e këshillueshme që t'i lidhni së bashku siç tregohet në fotografi.

Rob Hawking punon më së miri me pengesa të mëdha dhe në një sipërfaqe të sheshtë dhe të lëmuar. Qilimat janë më sfidues për motorët dhe mund t'ju duhet të rregulloni cilësimet për të rregulluar sjelljen për sipërfaqe të ndryshme.

Rob Hawking nuk është aspak i përsosur dhe ky është një prototip që do të përfitojë nga përmirësime të mëtejshme. Kodi është komentuar plotësisht dhe duhet të jetë e lehtë për ju të kuptoni se çfarë bëjnë metodat e ndryshme. Pjesë të ndryshme janë komentuar me #, nëse e hiqni # para 'print' programi i ekzekutimit do t'ju tregojë leximet dhe llogaritjet e ndryshme të sensorit.

Hapi 5: Përmirësimet e sugjeruara, përditësimet dhe idetë e së ardhmes

Tani që keni ndërtuar me sukses robotin tuaj, doni ta çoni atë në nivelin tjetër. Ju mund të përmirësoni metodën MotionDetector. Tani për tani aq shpesh merr një lexim të gabuar. Ju mund të shihni leximet aktuale duke mos komentuar disA dhe disB (në fund të bllokut të metodës). Leximi i gabuar zakonisht dallohet nga leximet e tjera kështu që ju mund të shkruani një algoritëm për të ndaluar reagimin e robotit ndaj një leximi të gabuar.

Ndoshta ju doni të merrni kontrollin e plotë të robotit dhe thjesht të kontrolloni nga distanca funksionet e tij të ndryshme. Ju mund ta bëni këtë përmes Bluetooth dhe të shkruani një program Android për të komunikuar me robotin. Sidoqoftë, një qasje shumë më e lehtë do të ishte gjetja e një vendi për sensorin infra të kuqe për të marrë kontrollin e Hawking Bot.

Po në lidhje me marrjen e robotit për të mësuar për mjedisin e tij? Kjo mund të arrihet me një qasje të fqinjit më të afërt k ose ndoshta një rrjeti nervor. Tulla EV3 ka fuqi të kufizuar përpunuese edhe pse e mbështet Numpy. Një alternativë do të ishte një BrickPi e cila do t'ju lejonte të drejtoni një bibliotekë të Inteligjencës Artificiale si Tensorflow, por qëllimi i këtij udhëzuesi ishte të përdorni kitin Lego EV3 MINDSTORMS pa pasur nevojë të blini shumë pjesë të shtrenjta shtesë përveç sensorit tejzanor.

Megjithatë, qasja e mësimit të fqinjëve më të afërt për ri-infocement duhet të punojë në tullën EV3 dhe ky është algoritmi i sugjeruar. Unë ju lë juve të gjeni një zbatim pune ose të gjeni ndonjë problem:

Mësimi përforcues për Hawkings Bot

Ideja është që 7 leximet USS janë të koduara në një vektor dhe 10 goditjet e fundit të kokës përdoren për të krijuar një vektor sekuencial prej 70 shënimesh. Leximet e para nuk janë të plota kështu që do të mbushen me zero. Çdo hyrje përmban vlerën e distancës nga USS. Ky është vektori i gjendjes s. Sistemi lejon 1000 hyrje. Më pas hyrja më e vjetër do të zëvendësohet dhe shënimet e moshës për secilën palë s-r do të zvogëlohen me një.

Bot nuk duhet të afrohet më shumë se 10 cm me një objekt. Kjo krijon një shpërblim negativ. Për thjeshtësi; veprimet e mira shpërblehen me 1 dhe të këqijat me 0. Në mënyrë efektive kjo krijon një probabilitet për shpërblimin për secilin kombinim veprim-gjendje. Ne do të përdorim shpërblime të zbritura dhe politikë lakmuese epsilon.

Kjo krijon 3 tabela të mëdha të gjendjes-shpërblimi (s-r) për të tre veprimet djathtas, drejt përpara dhe majtas-mund të jetë e mundur që të ketë shpejtësi të shpejta dhe të ngadalta për secilin veprim. Atëherë do të kishim 6 veprime dhe 6 tabela të kërkimit s-r.

Sa herë që regjistrohet një gjendje e re krahasohet me tabelat, distanca Euklidiane (ose masë e ngjashme) përdoret për të gjetur fqinjin më të afërt. Kjo nuk do të renditet por përkundrazi një prag t është vendosur për të pranuar gjendjen si shumë të ngjashme, për të mbishkruar gjendjen ekzistuese dhe përditësuar për shpërblimin më të lartë dhe për të kryer veprimin përkatës a. Nëse nuk është e ngjashme (d> t) futni një çift të ri s-r për secilin veprim a. Nëse ka një lidhje midis veprimeve për për s-r (të gjithë kanë të njëjtin shpërblim) zgjidhni rastësisht, por kjo nuk është e zakonshme dhe mund të hiqet.

t do të duhet të përcaktohet në mënyrë eksperimentale, nëse t është shumë e vogël gjendjet e ngjashme do të injorohen dhe secila gjendje po shihet si unike. Një t shumë e madhe do të thotë që edhe gjendje mjaft të ndryshme janë grumbulluar së bashku, gjë që mund të ndikojë në aftësinë për të zgjedhur veprime të mira. Mund të jetë e mundur të përdoren metoda statistikore për të përcaktuar t -në më të mirë.

Tabela duket diçka si kjo: Hyrja Nr - Vektori i gjendjes - shpërblimi për veprimin 1 - shpërblimi për veprimin 2 - shpërblimi për veprimin 3.

Unë mendoj se zbatimi aktual do të jetë i ndërlikuar, por duhet të jetë me vlerë të madhe. Paç fat!

Recommended: