Kazalo:
- 1. korak: Zgradite svojega Hawking Bota
- 2. korak:
- 3. korak: Naredite svoje zvočne posnetke Hawkinga
- 4. korak: Nasveti in triki
- 5. korak: Predlagane izboljšave, posodobitve in prihodnje ideje
Video: Hawking Bot: 5 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:07
Hawking Bot je projekt Lego MINDSTORMS EV3, ki ga je navdihnil pokojni Stephen Hawking. Stephen Hawking je imel dober smisel za humor, zato sem prepričan, da bi ta projekt odobril. Hawkingov robot se lahko premika okoli ovir in se odziva na gibe, nato pa izgovori enega od znanih zvokov Stephena Hawkinga in se premakne v smeri premikajočega se predmeta. Uporablja ultrazvočni senzor, ki skenira svoje okolje z velikim premikom glave.
1. korak: Zgradite svojega Hawking Bota
Vsi potrebni deli so v osnovnem kompletu EV3 Lego MINDSTORMS, razen ultrazvočnega senzorja (njegovih oči), ki ga je treba kupiti ločeno.
2. korak:
Koda za Hawking Bota je vsa napisana v pythonu 3. Zagonsko slikovno datoteko za zagon pythona v okolju Debian Linux na Hawking Botu lahko prenesete s spletnega mesta ev3dev. Kodo za zagon Hawking Bota lahko prenesete od tukaj. Vsa koda je v datoteki razreda, tako da lahko uporabite obstoječe metode ali jih celo spremenite, če želite.
Oglejte si ta videoposnetek s podrobnimi navodili, kako v svojem robotu nastaviti Debian Linux in Python3. Čeprav je to posebej za nastavitev Mac, bo še vedno koristno, da se splošno razume proces. To delo je v teku. Ultrazvočni senzor je včasih nezanesljiv, kar zahteva pametnejšo kodo za zaznavanje "odstopanj". Rad bi videl prispevke drugih, da bi bila koda učinkovitejša in manj nagnjena k napakam.
3. korak: Naredite svoje zvočne posnetke Hawkinga
V redu, zdaj želite imeti nekaj znanih citatov ali le nekaj preprostih izjav profesorja Hawkinga. Obstaja na tone videoposnetkov, kjer ga lahko slišite govoriti, nato pa njegova predavanja, ki so zakladnica modrosti in uporabnih zvokov.
Potrebujete program, kot je Audacity, ki deluje na številnih platformah za izbiro in izrezovanje vaših najljubših zvočnih posnetkov.
Zvočni zapis shranite kot wav mono datoteko kot SH6, SH7,… SH11, SH12 itd.
Spodaj najdete nekaj vzorcev, ki sem jih ustvaril po zgornji metodi.
4. korak: Nasveti in triki
Hawking Bot je opremljen z modulom za samopreverjanje, ki zagotavlja, da so vsi kabli povezani in da je baterija dovolj napolnjena. Lahko pride do ohlapnih, manjkajočih ali celo poškodovanih povezav. Zato je ta modul zelo uporaben. Metoda 'checkConnection' preveri le, če obstaja električna povezava. Še vedno morate zagotoviti, da so motorji priključeni na ustrezna vrata.
Premikanje glave je bistveno, da Hawking Bot skenira svoj teren in poišče najdaljšo neovirano pot. Kabli potrebujejo dovolj prostora za premikanje glave; zato je priporočljivo, da jih povežete skupaj, kot je prikazano na fotografiji.
Hawking Bot najbolje deluje pri velikih ovirah in na ravni in gladki površini. Preproge so za motorje zahtevnejše in morda boste morali prilagoditi nastavitve, da prilagodite obnašanje različnih površin.
Hawking Bot nikakor ni popoln in to je prototip, ki mu bodo koristile nadaljnje izboljšave. Koda je v celoti komentirana in z lahkoto boste ugotovili, kaj različne metode počnejo. Različni kosi so bili komentirani z #, če odstranite # pred 'print', bo program, ki teče, prikazal različne odčitke senzorjev in izračune.
5. korak: Predlagane izboljšave, posodobitve in prihodnje ideje
Zdaj, ko ste uspešno izdelali svojega robota, ga želite dvigniti na naslednjo stopnjo. Metodo MotionDetector lahko izboljšate. Trenutno je tako pogosto napačno branje. Dejanske odčitke si lahko ogledate z razkomentiranjem disA in disB (na dnu bloka metode). Napačno branje običajno izstopa od drugih odčitkov, zato lahko napišete algoritem, s katerim preprečite, da bi se robot odzval na napačno branje.
Morda želite v celoti prevzeti nadzor nad robotom in samo na daljavo upravljati njegove različne funkcije. To lahko storite prek Bluetootha in napišete program Android za komunikacijo z robotom. Vendar bi bil veliko lažji pristop najti mesto, kjer bi infrardeči senzor prevzel nadzor nad Hawking Botom.
Kaj pa, če bi robota spoznali svoje okolje? To bi lahko dosegli s pristopom k-najbližjega soseda ali morda z nevronsko mrežo. Opeka EV3 ima omejeno procesno moč, čeprav podpira Numpy. Druga možnost bi bil BrickPi, ki bi vam omogočil izvajanje knjižnice AI, kot je Tensorflow, vendar je bil namen tega priročnika uporaba kompleta Lego EV3 MINDSTORMS brez potrebe po nakupu številnih dragih dodatnih kosov, razen ultrazvočnega senzorja.
Vendar bi moral pristop k ponovnemu informiranju k-najbližjih sosedov delovati na opeki EV3 in to je predlagani algoritem. Na vas prepuščam, da poiščete delujočo izvedbo ali opazite kakršne koli težave:
Okrepitveno učenje za Hawkings Bota
Ideja je, da je 7 odčitkov USS kodiranih v vektor, zadnjih 10 zamahov glave pa se uporabi za ustvarjanje zaporednega vektorja 70 vnosov. Prvi odčitki so nepopolni, zato bodo napolnjeni z ničlami. Vsak vnos vsebuje vrednost razdalje od USS. To je vektor stanja s. Sistem omogoča 1000 vnosov. Nato se najstarejši vnos zamenja in starostni vnosi za vsak par s-r se zmanjšajo za eno.
Robot se ne sme približati 10 cm do predmeta. To ustvarja negativno nagrado. Za preprostost; dobra dejanja so nagrajena z 1, slaba pa z 0. Dejansko to ustvari verjetnost za nagrado za vsako kombinacijo stanja-dejanja. Uporabili bomo diskontirane nagrade in epsilon pohlepno politiko.
Tako nastanejo 3 velike tabele stanja –reward (s-r) za vsa tri dejanja desno, naravnost in levo-za vsako dejanje je mogoče imeti hitre in počasne hitrosti. Nato bi imeli 6 dejanj in 6 iskalnih tabel s-r.
Vsakič, ko se zabeleži novo stanje s, ga primerjamo s tabelami, za iskanje najbližjega soseda pa uporabimo evklidsko razdaljo (ali podobno merilo). To ne bo uvrščeno, temveč je nastavljen prag t, da sprejme stanje kot zelo podobno, prepiše obstoječe stanje in posodobi za najvišjo nagrado ter izvede povezano dejanje a. Če ni podobno (d> t), za vsako dejanje vnesite nov par s-r. Če obstaja dejstvo za dejanja za za s-r (vsi imajo enako nagrado), izberite naključno, vendar to ni običajno in bi ga lahko izpustili.
t bo treba eksperimentalno določiti, če je t premajhno, se podobna stanja ne upoštevajo in se vsako stanje obravnava kot edinstveno. Prevelik t pomeni, da se celo precej različna stanja združijo, kar bi lahko vplivalo na sposobnost izbire dobrih dejanj. Morda bo mogoče uporabiti statistične metode za določitev najboljše t.
Tabela izgleda nekako takole: Vnos št. - Vektor stanja - nagrada za dejanje 1 - nagrada za dejanje 2 - nagrada za dejanje 3.
Predvidevam, da bo dejanska izvedba težavna, vendar bi bilo vredno vložiti trud. Vso srečo!
Priporočena:
Telegram Bot na osnovi ESP32: 7 korakov
Telegram Bot, ki temelji na ESP32: Telegram govori o svobodi in odprtih virih, leta 2015 je objavil nov API za Telegram bot, ki je tretjim osebam omogočil ustvarjanje telegramskih robotov za ESP32, ki uporabljajo aplikacijo za sporočila kot svoj glavni komunikacijski vmesnik. To pomeni, da smo
Otto Bot (poimenoval sem mojo konico): 5 korakov
Otto Bot (I Immed Mine Spike): To je preprost projekt, ki ga lahko naredi skoraj vsak, da ustvari preprostega sprehajalnega robota
Flex Bot: 6 korakov
Flex Bot: Uporabite ta navodila za izdelavo podvozja robota s štirikolesnim pogonom, ki ga nadzirajo VAŠE mišice
Smetnjak, zgrajen BT linijski risalni bot - Moj Bot: 13 korakov (s slikami)
Trash Built BT Line Drawing Bot - My Bot: Hai prijatelji po dolgi prekinitvi približno 6 mesecev sem prišel z novim projektom. Do zaključka programa Cute Drawing Buddy V1, SCARA Robot - Arduino in načrtujem drugega risarskega robota, je glavni cilj pokriti velik prostor za risanje. Tako fiksne robotske roke c
Brezplačno povečanje brezžične antene Hawking 7dBi: 4 koraki
Brezplačno povečanje brezžične antene Hawking 7dBi: Odkril sem, da ima antena Hawking 7dBi Wifi napako. Z odpravo napake sem BREZPLAČNO dobil ojačanje signala. Številka dela antene je HAI7SIP.Pred to spremembo sem imel eno vrstico signala, ki je včasih padla, popolnoma umrla. Po