Obsah:
- Krok 1: Sestavte si svého Hawkingova robota
- Krok 2:
- Krok 3: Vytvořte si vlastní Hawking Soundbites
- Krok 4: Tipy a triky
- Krok 5: Navrhovaná vylepšení, aktualizace a budoucí nápady
Video: Hawking Bot: 5 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:22
Hawking Bot je projekt Lego MINDSTORMS EV3 inspirovaný zesnulým Stephenem Hawkingem. Stephen Hawking měl dobrý smysl pro humor, takže jsem si jist, že by tento projekt schválil. Hawking Bot se dokáže pohybovat kolem překážek a reagovat na pohyby a poté pronese jeden ze slavných zvukových kousků Stephena Hawkinga a pohybuje se ve směru pohybujícího se objektu. Využívá ultrazvukový senzor, který snímá své okolí pohybem hlavy.
Krok 1: Sestavte si svého Hawkingova robota
Všechny požadované kusy jsou v základní sadě EV3 Lego MINDSTORMS s výjimkou ultrazvukového senzoru (jeho očí), který je nutné zakoupit samostatně.
Krok 2:
Kód pro Hawking Bot je napsán v pythonu 3. Spouštěcí obrazový soubor pro spuštění pythonu v prostředí Debian Linux na Hawking Bot lze stáhnout z webu ev3dev. Odtud lze stáhnout kód pro spuštění Hawking Bot. Veškerý kód je obsažen v souboru třídy, takže můžete použít stávající metody nebo je dokonce upravit, pokud chcete.
Podívejte se na toto video s podrobnými pokyny, jak na vašem robotu nastavit Debian Linux a Python3. Přestože se jedná konkrétně o nastavení systému Mac, bude stále užitečné získat obecné znalosti o procesu. Toto je nedokončená práce. Ultrazvukový senzor je někdy nespolehlivý a to vyžaduje chytřejší kód pro detekci „odlehlých hodnot“. Chtěl bych vidět příspěvky ostatních, aby byl kód efektivnější a méně náchylný k chybám.
Krok 3: Vytvořte si vlastní Hawking Soundbites
Dobře, nyní chcete mít nějaké slavné citáty nebo jen nějaké jednoduché výroky od profesora Hawkinga. Existuje spousta videí, kde ho můžete slyšet mluvit, a pak jeho přednášky, které jsou pokladem moudrosti a užitečných zvukových kousnutí.
Potřebujete program, jako je Audacity, který funguje na mnoha platformách, abyste si vybrali a vystřihli své oblíbené soundbity.
Uložte svůj soundbite jako wav mono soubor jako SH6, SH7, … SH11, SH12 atd.
Níže naleznete několik ukázek, které jsem vytvořil podle výše uvedené metody.
Krok 4: Tipy a triky
Hawking Bot je dodáván se samokontrolním modulem, který zajišťuje, že jsou připojeny všechny kabely a baterie je dostačující. Snadno může dojít k uvolněnému, chybějícímu nebo dokonce poškozenému spojení. Tento modul je tedy velmi užitečný. Metoda 'checkConnection' kontroluje pouze, zda existuje elektrické připojení. Stále musíte zajistit, aby byly motory připojeny ke správnému portu.
Pohyb švihající hlavou je nezbytný pro to, aby Hawking Bot skenoval svůj terén a našel nejdelší volnou cestu před sebou. Kabely potřebují dostatečný prostor pro přizpůsobení pohybům hlavy; je proto vhodné spojit je dohromady, jak je znázorněno na fotografii.
Hawking Bot funguje nejlépe s velkými překážkami a na rovném a hladkém povrchu. Koberce jsou pro motory náročnější a možná budete muset upravit nastavení, abyste upravili chování pro různé povrchy.
Hawking Bot není v žádném případě dokonalý a toto je prototyp, který bude těžit z dalších vylepšení. Kód je plně komentovaný a mělo by být pro vás snadné zjistit, co různé metody dělají. Různé bity byly okomentovány pomocí #, pokud odstraníte # před „tiskem“, běžící program vám ukáže různé hodnoty senzorů a výpočty.
Krok 5: Navrhovaná vylepšení, aktualizace a budoucí nápady
Nyní, když jste úspěšně postavili svého robota, ho chcete posunout na další úroveň. Můžete vylepšit metodu MotionDetector. Právě teď někdy tak často dostává špatné čtení. Skutečné hodnoty můžete zobrazit odkomentováním disA a disB (ve spodní části bloku metody). Špatné čtení obvykle vyčnívá z ostatních měření, takže můžete napsat algoritmus, který zabrání robotu reagovat na nesprávné čtení.
Možná budete chtít plně ovládat robota a dálkově ovládat jeho různé funkce. Můžete to udělat přes Bluetooth a napsat program Android pro komunikaci s robotem. Mnohem snazším přístupem by však bylo najít místo pro infračervený senzor, který by převzal kontrolu nad Hawking Bot.
Co takhle přimět robota, aby se seznámil se svým prostředím? Toho lze dosáhnout přístupem K-nejbližšího souseda nebo případně neurální sítí. Kostka EV3 má omezený výpočetní výkon, přestože podporuje Numpy. Alternativou by byl BrickPi, který by vám umožnil provozovat knihovnu AI, jako je Tensorflow, ale záměrem této příručky bylo použít stavebnici Lego EV3 MINDSTORMS, aniž byste museli kupovat mnoho dalších drahých kusů kromě ultrazvukového senzoru.
Učební přístup reinformace k-nejbližších sousedů by však měl fungovat na cihle EV3 a toto je navrhovaný algoritmus. Nechám na vás, abyste našli funkční implementaci nebo zjistili jakékoli problémy:
Výukové učení pro Hawkings Bot
Myšlenka je taková, že 7 odečtů USS je zakódováno do vektoru a posledních 10 pohybů hlavy se použije k vytvoření sekvenčního vektoru se 70 položkami. První odečty jsou neúplné, takže budou vyplněny nulami. Každý záznam obsahuje hodnotu vzdálenosti od USS. Toto je stavový vektor s. Systém umožňuje 1000 záznamů. Poté bude nejstarší záznam nahrazen a věkové záznamy pro každý pár s-r budou sníženy o jeden.
Robot se nesmí přibližovat k předmětu blíže než 10 cm. To vytváří negativní odměnu. Pro jednoduchost; dobré akce jsou odměňovány 1 a špatné 0. Účinně to vytváří pravděpodobnost odměny pro každou kombinaci akčního stavu. Použijeme zlevněné odměny a epsilon chamtivou politiku.
To vytvoří 3 velké tabulky stavu-odměny (s-r) pro všechny tři akce vpravo, přímo vpřed a vlevo-pro každou akci může být možné mít rychlé a pomalé rychlosti. Pak bychom měli 6 akcí a 6 vyhledávacích tabulek s-r.
Pokaždé, když je zaznamenán nový stav s, je porovnán s tabulkami, k nalezení nejbližšího souseda se použije euklidovská vzdálenost (nebo podobná míra). To nebude hodnoceno, ale je nastavena prahová hodnota t, aby přijal stav jako velmi podobný, přepsal stávající stav a aktualizoval se za nejvyšší odměnu a provedl související akci a. Pokud to není podobné (d> t), zadejte nový pár s-r pro každou akci a. Pokud existuje shoda mezi akcemi pro pro s-r (všechny mají stejnou odměnu), vyberte náhodně, ale není to běžné a lze to vynechat.
t bude muset experimentálně určit, pokud t je příliš malé, podobné stavy budou ignorovány a každý stav je považován za jedinečný. Příliš velké t znamená, že i docela rozdílné stavy jsou spojeny dohromady, což by mohlo ovlivnit schopnost volit dobré akce. Ke stanovení nejlepšího t může být možné použít statistické metody.
Tabulka vypadá nějak takto: Záznam č. - Stavový vektor - odměna za akci 1 - odměna za akci 2 - odměna za akci 3.
Myslím, že skutečná implementace bude složitá, ale měla by být zbytečná. Hodně štěstí!
Doporučuje:
Otto Bot (pojmenoval jsem Mine Spike): 5 kroků
Otto Bot (pojmenoval jsem Mine Spike): Jedná se o jednoduchý projekt, který může udělat kdokoli, aby vytvořil jednoduchého kráčejícího robota
Flex Bot: 6 kroků
Flex Bot: Použijte tento návod k výrobě podvozku robota s pohonem 4 kol, který je řízen VAŠIMI svaly
Telegram Flame Alarm Bot: 5 kroků
Telegram Flame Alarm Bot: V tomto článku představím projekt IoT, který umožňuje snímat plamen a odesílat upozornění na telegram uživatele. Co budete potřebovat: Modul senzoru plamene Mikrokontrolér NodeMCU ESP8266 Zdroj napájeníWiFiVýstupní zařízení s telegramem
Trash Built BT Line Drawing Bot - My Bot: 13 Steps (with Pictures)
Trash Built BT Line Drawing Bot - My Bot: Hai přátelé po dlouhé pauze asi 6 měsíců zde přicházím s novým projektem. Do dokončení hry Cute Drawing Buddy V1, SCARA Robot - Arduino plánuji dalšího kreslícího robota, je hlavním cílem pokrýt velký prostor pro kreslení. Takže pevná robotická ramena c
Zdokonalení Wifi antény Hawking 7dBi zdarma: 4 kroky
Wifi anténa Hawking 7dBi Free Boost: Zjistil jsem, že Wifi anténa Hawking 7dBi má chybu. Odstraněním chyby jsem získal Zvýšení signálu ZDARMA. Objednací číslo antény je HAI7SIP. Před touto úpravou jsem měl jeden pruh signálu, který někdy vypadl, úplně zemřel. Po