Tartalomjegyzék:

Hawking Bot: 5 lépés
Hawking Bot: 5 lépés

Videó: Hawking Bot: 5 lépés

Videó: Hawking Bot: 5 lépés
Videó: Stephen Hawking's Famous Speech. 2024, November
Anonim
Image
Image
Építsd meg Hawking Botodat
Építsd meg Hawking Botodat

A Hawking Bot egy lego MINDSTORMS EV3 projekt, amelyet a néhai Stephen Hawking inspirált. Stephen Hawkingnak jó humorérzéke volt, ezért biztos vagyok benne, hogy jóváhagyta volna ezt a projektet. A Hawking Bot képes eligazodni az akadályok körül, és reagál a mozdulatokra, majd kiejti Stephen Hawking egyik híres hangját és mozog a mozgó tárgy irányába. Az ultrahangos érzékelőt használja, amely átfogó fejmozdulattal pásztázza a környezetét.

1. lépés: Készítse el Hawking botját

Az összes szükséges alkatrész megtalálható az alap EV3 Lego MINDSTORMS készletben, kivéve az ultrahangos érzékelőt (a szemét), amelyet külön kell megvásárolni.

2. lépés:

Kép
Kép

A Hawking Bot kódja mind a python 3 -ban van írva. Egy indítható képfájl a Hawking Bot Debian Linux környezetében a python futtatásához letölthető az ev3dev webhelyről. A Hawking Bot futtatásához szükséges kód innen tölthető le. Minden kód egy osztályfájlban található, így használhatja a meglévő módszereket, vagy akár módosíthatja azokat, ha úgy tetszik.

Kérjük, nézze meg ezt a videót, részletes utasításokkal a Debian Linux és a Python3 beállításáról a robotján. Bár ez kifejezetten Mac telepítésre vonatkozik, még mindig hasznos lesz a folyamat általános megértése. Ez folyamatban lévő munka. Az ultrahangos érzékelő időnként megbízhatatlan, és ehhez intelligensebb kódra van szükség a „kiugró értékek” észleléséhez. Szeretném látni mások közreműködését a kód hatékonyabbá tétele és kevésbé hibalehetősége érdekében.

3. lépés: Készítse el saját Hawking Soundbite -jait

Rendben, most híres idézeteket szeretne kapni, vagy csak néhány egyszerű mondatot Hawking professzortól. Rengeteg videó van, ahol hallhatja őt beszélni, majd ott vannak az előadások, amelyek a bölcsesség és a hasznos hangharapások kincsesbányája.

Szüksége van egy olyan programra, mint az Audacity, amely számos platformon működik, hogy kiválassza és kivágja kedvenc hangzásait.

Mentse el hangzását wav mono fájlként SH6, SH7,… SH11, SH12 és így tovább.

Az alábbiakban néhány mintát talál, amelyeket a fenti módszer szerint készítettem.

4. lépés: Tippek és trükkök

Tippek és trükkök
Tippek és trükkök
Tippek és trükkök
Tippek és trükkök

A Hawking Bot önellenőrző modullal rendelkezik, amely biztosítja, hogy minden kábel csatlakoztatva legyen, és elegendő legyen az akkumulátor. Könnyen előfordulhatnak laza, hiányzó vagy akár sérült kapcsolatok. Tehát ez a modul nagyon hasznos. A „checkConnection” módszer csak azt ellenőrzi, hogy van -e elektromos csatlakozás. Továbbra is győződjön meg arról, hogy a motorok a megfelelő porthoz vannak csatlakoztatva.

A csúsztatható fejmozgás elengedhetetlen ahhoz, hogy a Hawking Bot letapogassa terepét, és megtalálja a leghosszabb akadálymentes utat. A kábeleknek elegendő helyre van szükségük a fejmozgásokhoz; ezért célszerű összekötni őket a fényképen látható módon.

A Hawking Bot nagy akadályokkal, valamint sík és sima felületen működik a legjobban. A szőnyegek nagyobb kihívást jelentenek a motorok számára, és előfordulhat, hogy módosítania kell a beállításokat a különböző felületek viselkedésének beállításához.

A Hawking Bot egyáltalán nem tökéletes, és ez egy prototípus, amely további fejlesztésekből származik. A kódot teljes mértékben megjegyzik, és könnyűnek kell lennie, hogy kitalálja, mit tesznek a különböző módszerek. Különböző biteket írtak ki a # -vel, ha eltávolítja a # -ot a "print" előtt, a futó program megmutatja a különböző érzékelők leolvasásait és számításait.

5. lépés: Javasolt fejlesztések, frissítések és jövőbeli ötletek

Most, hogy sikeresen megépítette robotját, a következő szintre szeretné emelni. Javíthatja a MotionDetector módszert. Mostanában sokszor rosszul olvasható. A tényleges értékeket a disA és a disB megjegyzésének megszüntetésével láthatja (a módszerblokk alján). A rossz leolvasás általában kiemelkedik a többi leolvasásból, így algoritmust írhat, amely megakadályozza, hogy a robot rossz leolvasásra reagáljon.

Lehet, hogy teljes mértékben át akarja venni a robot irányítását, és csak távirányítani szeretné annak különböző funkcióit. Ezt megteheti Bluetooth -on keresztül, és írhat egy Android -programot a robottal való kommunikációhoz. Sokkal egyszerűbb megközelítés azonban az lenne, ha az infravörös érzékelőnek helyet találna a Hawking Bot felett.

Mit szólna ahhoz, hogy a robot megismerje környezetét? Ez megvalósítható k-legközelebbi szomszédos megközelítéssel vagy esetleg neurális hálózattal. Az EV3 tégla korlátozott feldolgozási teljesítményű, bár támogatja a Numpy -t. Alternatív megoldás lehet a BrickPi, amely lehetővé teszi a Tensorflow -hoz hasonló AI könyvtár futtatását, de ennek az útmutatónak az volt a célja, hogy a Lego EV3 MINDSTORMS készletet használja, anélkül, hogy sok drága kiegészítő darabot kellene vásárolnia az ultrahangos érzékelőn kívül.

Azonban a k-legközelebbi szomszédok újbóli infokontúrás tanulási módszerének működnie kell az EV3 téglán, és ez a javasolt algoritmus. Önre bízom, hogy találjon működő megvalósítást, vagy észleljen bármilyen problémát:

Erősítő tanulás a Hawkings Bot számára

Az ötlet az, hogy a 7 USS leolvasást vektorba kódolják, és az utolsó 10 fejmozgást 70 bejegyzésből álló szekvenciális vektor létrehozására használják. Az első leolvasások hiányosak, ezért nullákkal töltik ki. Minden bejegyzés tartalmazza a USS távolság értékét. Ez az állapotvektor s. A rendszer 1000 bejegyzést tesz lehetővé. Ezt követően a legrégebbi bejegyzés kicserélődik, és az egyes s-r párok korbejegyzései eggyel csökkennek.

A bot nem lehet 10 cm -nél közelebb egy tárgyhoz. Ez negatív jutalmat hoz létre. Az egyszerűség kedvéért; a jó cselekedeteket 1-gyel, a rosszakat 0-val jutalmazzák. Ez gyakorlatilag valószínűséget teremt a jutalomért minden cselekvés-állapot kombináció esetén. A kedvezményes jutalmakat és az epsilon mohó politikáját fogjuk alkalmazni.

Ez 3 nagy állapot-jutalom táblázatot hoz létre mind a három műveletre jobbra, egyenesen előre és balra-lehetséges, hogy gyors és lassú sebességgel lehet minden műveletet végrehajtani. Ekkor 6 akciónk és 6 kereső s-r táblázatunk lenne.

Minden alkalommal, amikor új s állapotot rögzítenek, összehasonlítják a táblázatokkal, euklideszi távolságot (vagy hasonló mértéket) használnak a legközelebbi szomszéd megkeresésére. Ezt nem rangsorolják, hanem egy küszöbértéket állítanak be, hogy elfogadják az állapotot nagyon hasonlónak, felülírják a meglévő állapotot és frissítik a legmagasabb jutalomért, és végrehajtják a kapcsolódó műveletet a. Ha nem hasonló (d> t), írjon be egy új sz-r párt minden egyes művelethez a. Ha holtverseny van az s-r műveletei között (mindegyiknek ugyanaz a jutalma), válasszon véletlenszerűen, de ez nem gyakori, és kihagyható.

t kísérletileg meg kell határozni, ha t túl kicsi, a hasonló állapotokat figyelmen kívül hagyjuk, és minden állapotot egyedinek tekintünk. A túl nagy t t azt jelenti, hogy még meglehetősen eltérő állapotok is összegyűlnek, ami befolyásolhatja a jó cselekvések kiválasztásának képességét. Lehetőség van statisztikai módszerek alkalmazására a legjobb t meghatározásához.

A táblázat valahogy így néz ki: Bejegyzés száma - Állapotvektor - jutalom a cselekvésért 1 - jutalom a cselekvésért 2 - jutalom a cselekvésért 3.

Azt hiszem, a tényleges végrehajtás bonyolult lesz, de meg kell érdemelni az erőfeszítést. Sok szerencsét!

Ajánlott: