Tartalomjegyzék:
- Kellékek
- 1. lépés: Hogyan kell megoldani a labirintust?
- 2. lépés: Figyelem a robot programozásakor
- 3. lépés: A fő program
- 4. lépés: A blokkjaim (alprogramok)
- 5. lépés: A robot építésének megkezdése: az alap
- 6. lépés: Az alap teteje, 1
- 7. lépés: Az alap teteje, 2
- 8. lépés: Az alap teteje, 3
- 9. lépés: Infravörös és ultrahangos érzékelők
- 10. lépés: Kábelek
- 11. lépés: A robot építésének utolsó lépése: dekoráció
- 12. lépés: Építsen labirintust
- 13. lépés: A labirintus
Videó: AI a LEGO EV3 labirintusvezető robotjában: 13 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:39
Ez egy egyszerű, autonóm robot némi mesterséges intelligenciával. Úgy tervezték, hogy felfedezze a labirintust, és amikor visszahelyezik a bejárathoz, a kijáraton áthajtva elkerülje a zsákutcákat. Sokkal bonyolultabb, mint az előző projektem, amely egyszerűen áthajtott a labirintuson. Itt a robotnak emlékeznie kell a megtett útra, el kell távolítania a zsákutcákat, el kell tárolnia az új utat, majd követnie kell az új utat.
Az előző robotomat itt írják le:
A robot LEGO Mindstorms EV3 segítségével készült. Az EV3 szoftver számítógépen fut, és létrehoz egy programot, amelyet aztán letölt egy EV3 Brick nevű mikrokontrollerre. A programozási módszer ikon alapú és magas szintű. Nagyon könnyű és sokoldalú.
Kellékek
ALKATRÉSZEK
- LEGO Mindstorms EV3 készlet
- LEGO Mindstorms EV3 ultrahangos érzékelő. Nem tartalmazza az EV3 szettet.
- Hullámkarton a labirintushoz. Két kartondoboznak elegendőnek kell lennie.
- Egy kis darab vékony karton, amely segít stabilizálni néhány sarkot és falat.
- Ragasztó és szalag a kartondarabok összekapcsolásához.
- Piros üdvözlőlap boríték a labirintus kijáratának azonosítására.
ESZKÖZÖK
- Hasznos kés a karton vágásához.
- Acél vonalzó segíti a vágási folyamatot.
SZOFTVER
A program itt található:
1. lépés: Hogyan kell megoldani a labirintust?
VÁGÁSVEZETŐ MÓDSZER
A labirintusban való navigálásnak számos módja van. Ha érdekli a tanulmányozás, nagyon jól leírja őket a következő Wikipédia -cikk:
A bal oldali falkövetési módszert választottam. Az ötlet az, hogy a robot a bal oldalán egy falat tart, és a következő döntéseket hozza, amikor áthalad a labirintuson:
- Ha lehetséges balra fordulni, tegye meg.
- Ellenkező esetben menjen egyenesen, ha lehetséges.
- Ha nem tud balra vagy egyenesen menni, forduljon jobbra, ha lehetséges.
- Ha a fentiek egyike sem lehetséges, akkor ennek zsákutcának kell lennie. Fordulj meg.
Egy óvatosság az, hogy a módszer meghiúsulhat, ha a labirintusban van hurok. A hurok elhelyezésétől függően a robot folyamatosan körbejárhatja a hurkot. Egy lehetséges megoldás erre a problémára az lenne, ha a robot átállna a jobb oldali falkövető szabályra, ha rájönne, hogy hurokban megy. Ezt a finomítást nem vettem bele a projektembe.
AZ ÚTMUTATÓ MEGOLDÁSA KÖZVETLEN ÚTMUTATÓ KERESÉSÉHEZ
A labirintusban való haladás során a robotnak meg kell jegyeznie az útvonalat, és meg kell szüntetnie a zsákutcákat. Ezt úgy éri el, hogy minden kanyart és kereszteződést egy tömbben tárol, ellenőrzi a kanyarok és kereszteződések adott kombinációit menet közben, és lecseréli azokat a kombinációkat, amelyek zsákutcát tartalmaznak. A kanyarok és kereszteződések végső listája a labirintuson át vezető közvetlen út.
A lehetséges kanyarok a következők: Bal, Jobb, Vissza (zsákutcában) és Egyenes (ami egy kereszteződés).
A kombinációk helyébe a következő lép:
- "Bal, hát, bal" lesz "Egyenes".
- "Bal, hát, jobb" lesz "Vissza".
- "Bal, hát, egyenes" lesz "jobb".
- "Jobb, vissza, bal" lesz "Vissza".
- "Egyenes, hát, bal" lesz "jobb".
- "Egyenes, hát, egyenes" lesz "Vissza".
HOGYAN KEZELI A ROBOT AZ ELTÖRTÉNYEMET?
- Amikor a robot elkezd vezetni, lát egy teret a jobb oldalon, és tárolja az Egyeneset a tömb listájában.
- Ezután balra fordul, és hozzáadja a bal oldalt a listához. A lista most a következőket tartalmazza: Egyenes, Bal.
- Zsákutcában megfordul, és Vissza a listához. A lista most tartalmazza: Egyenes, Bal, Vissza.
- A bejárat elől haladva a használt sávot egyenesen hozzáadja a listához. A lista most tartalmazza: Egyenes, Bal, Hát, Egyenes. Felismer egy kombinációt, és balra, hátra, egyenesen jobbra változik. A lista most tartalmazza a Straight, Right -ot.
- Zsákutcában megfordul, és Vissza a listához. A lista most a következőket tartalmazza: Egyenes, Jobb, Vissza.
- A bal kanyar után a lista tartalmazza az Egyenes, Jobb, Vissza, Bal oldalt. Felismer egy kombinációt, és jobbra, hátra, balról hátra változik. A lista most tartalmazza az Egyenes, Vissza gombot.
- A következő bal kanyar után a lista tartalmazza az Egyenes, a Vissza, a Bal oldalt. Ezt a kombinációt jobbra változtatja. A lista most csak a Right -ot tartalmazza.
- Átmegy egy szóközön, és hozzáadja az egyenest a listához. A lista most tartalmazza a Right, Straight -t.
- A jobb kanyar után a lista tartalmazza a Jobb, Egyenes, Jobb utat, amely a közvetlen út.
2. lépés: Figyelem a robot programozásakor
SZEMPONTOK MINDEN MIKROKONTROLLERRE
Amikor a robot úgy dönt, hogy megfordul, vagy széles fordulatot kell tennie, vagy forduljon előre egy rövid távolságot a kanyarodás előtt, majd fordulás után ismét rövid távolságra előre, anélkül, hogy ellenőrizné az érzékelőt. Az első rövid távolság oka az, hogy a robotnak nem szabad ütköznie a falnak a kanyar után, a második rövid távnak pedig az az oka, hogy miután a robot megfordult, az érzékelő látná a hosszú teret, ahonnan éppen jött, és a robot azt gondolná, hogy újra meg kell fordulnia, ami nem a megfelelő.
Amikor a robot észlel egy kereszteződést a jobb oldalon, de nem jobbra kanyarodik, azt tapasztaltam, hogy jó, ha a robot 25 cm -rel előrehajt, anélkül, hogy ellenőrizné az érzékelőit.
LEGO MINDSTORMS EV3
Bár a LEGO Mindstorms EV3 nagyon sokoldalú, minden egyes típusú érzékelőből legfeljebb egyet engedélyez egy téglához. Két vagy több tégla láncba köthető, de nem akartam másik téglát vásárolni, ezért a következő érzékelőket használtam (három ultrahangos érzékelő helyett): infravörös, színérzékelő és ultrahangos érzékelő. Ez jól sikerült.
De a színérzékelő hatótávolsága nagyon rövid, körülbelül 5 cm (2 hüvelyk), ami néhány különleges megfontoláshoz vezet az alábbiakban leírtak szerint:
- Amikor a színérzékelő falat észlel elöl, és a robot úgy dönt, hogy jobbra fordul vagy megfordul, először hátrálnia kell, hogy elegendő helyet biztosítson magának ahhoz, hogy a falba ütközzön.
- Bonyolult probléma merül fel néhány „egyenes” kereszteződésnél. A színérzékelő rövid hatótávolsága miatt a robot nem tudja meghatározni, hogy megfelelő „egyenes” kereszteződést érzékel-e, vagy a jobbra kanyarodást. Megpróbáltam kijavítani ezt a problémát úgy, hogy a programot úgy állítottam be, hogy minden egyes alkalommal, amikor a robot érzékel egyet, tároljon egy „Egyenes” -t a listában, majd egy sornál több „Egyeneset” töröljön a listából. Ez rögzíti azt a helyzetet, amikor egy jobb kanyar követi az „egyenest” a labirintusban, de nem azt, amikor jobb kanyar van „egyenes” nélkül. Azt is megpróbáltam beállítani, hogy a program kiküszöbölje az „Egyenes” -t, ha éppen a „Jobb” előtt van, de ez nem működik, ha egy jobb kanyar követi az „Egyeneset”. Nem találtam minden esetre megfelelő megoldást, bár feltételezem, hogy a robot megnézheti a megtett távolságot (a motor forgásérzékelőinek olvasásával), és eldöntheti, hogy „egyenes” vagy jobb fordulat. Nem gondoltam, hogy ezt a komplikációt érdemes megtenni az AI koncepció bemutatása céljából ebben a projektben.
- A színérzékelő előnye, hogy megkülönbözteti a fal barna és a korlát vörösét, amelyeket a kijáratnál használtam, és egyszerű módja annak, hogy a robot eldöntse, mikor fejezte be a labirintust.
3. lépés: A fő program
A LEGO Mindstorms EV3 nagyon kényelmes ikon-alapú programozási módszerrel rendelkezik. A blokkok a számítógép képernyőjének alján jelennek meg, és a program létrehozásához áthúzhatók a programozási ablakba. Az EV3 Brick USB-kábellel, Wi-Fi-n vagy Bluetooth-on keresztül csatlakoztatható a számítógéphez, majd a program letölthető a számítógépről a Brick-re.
A program egy fő programból és több „Saját blokkból” áll, amelyek alprogramok. A feltöltött fájl tartalmazza a teljes programot, amely itt található:
A fő program lépései a következők:
- Határozza meg és inicializálja a fordulatszámláló változót és a tömböt.
- Várjon 5 másodpercet, és mondja: „Menj”.
- Indítsa el a ciklust.
- Hajt a labirintuson. A kilépéskor a hurok kilép.
- Jelenítse meg a Tégla képernyőjén, az útvesztőben eddig talált kereszteződéseket.
- Ellenőrizze, hogy az utat le kell -e rövidíteni.
- Jelenítse meg a metszéspontokat a rövidített útvonalon.
- Lépjen vissza a 4. lépéshez.
- A ciklus után vezesse a közvetlen utat.
A képernyőkép ezt a fő programot mutatja.
4. lépés: A blokkjaim (alprogramok)
Megjelenik a Navigálás a blokkomban, amely szabályozza, hogyan hajtja át a robot a labirintust. A nyomat nagyon kicsi, és lehet, hogy nem olvasható. De ez egy jó példa arra, hogy mennyire sokoldalúak és erőteljesek az if-utasítások (a LEGO EV3 rendszer kapcsolóinak nevezik őket).
- Az 1. nyíl egy kapcsolóra mutat, amely ellenőrzi, hogy az infravörös érzékelő lát -e egy tárgyat egy bizonyos távolságnál távolabb. Ha igen, akkor a blokkok felső sorozata kerül végrehajtásra. Ha nem, akkor a vezérlés átadásra kerül a nagy, alsó blokk -sorozatnak, ahol a #2 nyíl található.
- A 2. nyíl egy kapcsolóra mutat, amely ellenőrzi, hogy a színérzékelő milyen színt lát. Három eset van: felül nincs szín, középen piros és alul barna.
- Két #3 nyíl mutat a kapcsolókra, amelyek ellenőrzik, hogy az ultrahangos érzékelő lát -e egy tárgyat egy bizonyos távolságnál távolabb. Ha igen, akkor a blokkok felső sorozata kerül végrehajtásra. Ha nem, akkor az irányítást a blokkok alsó sorozata adja át.
A Saját blokkok az út lerövidítésére és a közvetlen út vezetésére bonyolultabbak és teljesen olvashatatlanok lennének, ezért nem szerepelnek ebben a dokumentumban.
5. lépés: A robot építésének megkezdése: az alap
Amint azt korábban említettük, a LEGO Mindstorms EV3 legfeljebb egy -egy téglához csatlakoztatott minden típusú érzékelőt engedélyez. A következő érzékelőket használtam (három ultrahangos érzékelő helyett): infravörös érzékelő, színérzékelő és ultrahangos érzékelő.
Az alábbi fotópárok bemutatják a robot építését. Minden pár első fotója a szükséges alkatrészeket mutatja, a második pedig ugyanazokat az alkatrészeket.
Az első lépés a robot alapjának felépítése a bemutatott alkatrészek felhasználásával. A robot alapja fejjel lefelé látható. A robot hátsó részén található kis L alakú rész támaszt a hátnak. Csúszik, ahogy a robot mozog. Ez rendben működik. Az EV3 készletnek nincs gördülőgolyós része.
6. lépés: Az alap teteje, 1
Ez a lépés és a következő 2 lépés a robot alapjának tetejére, a színérzékelőre és a kábelekre vonatkozik, amelyek mind 10 hüvelykes (26 cm) kábelek.
7. lépés: Az alap teteje, 2
8. lépés: Az alap teteje, 3
9. lépés: Infravörös és ultrahangos érzékelők
Ezután az infravörös érzékelő (a robot bal oldalán) és az ultrahangos érzékelő (a jobb oldalon). Ezenkívül a 4 csap a tégla tetejére való rögzítéséhez.
Az infravörös és ultrahangos érzékelők a normál vízszintes helyett függőlegesen helyezkednek el. Ez lehetővé teszi a falak sarkainak vagy végeinek jobb azonosítását.
10. lépés: Kábelek
A kábelek a következőképpen csatlakoznak a téglához:
- B port: bal nagy motor.
- C port: jobb nagy motor.
- 2. port: ultrahangos érzékelő.
- 3. port: színérzékelő.
- 4. port: infravörös érzékelő.
11. lépés: A robot építésének utolsó lépése: dekoráció
A szárnyak és az uszonyok csak dekorációra szolgálnak.
12. lépés: Építsen labirintust
Két hullámkarton kartonnak elegendőnek kell lennie az útvesztőhöz. A labirintus falait 12,5 cm magasra tettem, de 10 cm -nek ugyanolyan jól kell működnie, ha hiányzik a hullámkarton.
Először körbevágtam a kartondobozok falait, 25 cm -re az aljától. Aztán a falakat körbevágtam 5 centiméterre az aljától. Ez több 5 hüvelykes falat biztosít. Továbbá körbevágtam a kartondobozok alját, és körülbelül 2,5 cm -t hagytam a falakon a stabilitás érdekében.
A különböző darabok vághatók, ragaszthatók vagy ragaszthatók, ahol szükséges a labirintus kialakításához. Az oldalsó falak között 30 cm -es távolságnak kell lennie minden zsákutcás úton. A hossza nem lehet kevesebb, mint 10 hüvelyk (25 cm). Ezek a távolságok szükségesek ahhoz, hogy a robot megfordulhasson.
Előfordulhat, hogy a labirintus néhány sarkát meg kell erősíteni, és bizonyos egyenes falakat meg kell akadályozni a hajlítástól, ha tartalmaznak kiegyenesített karton sarkot. Kis vékony kartondarabokat kell ragasztani az aljára ezeken a helyeken, az ábrán látható módon.
A kijáraton piros sorompó található, amely fél piros üdvözlőlap borítékból és 2 darab vékony kartonból készült alapból áll, az ábrán látható módon.
13. lépés: A labirintus
Egy óvatosság az, hogy a labirintus ne legyen nagy. Ha a robot fordulatai kissé szögben vannak a megfelelőtől, néhány eltérés után az eltérések összeadódnak, és a robot befuthat a falakba. Többször kellett hegedülnöm a kanyarok Rotations beállításaival annak érdekében, hogy még az általam készített kis labirintusban is sikeres legyen a hajtás.
A probléma kiküszöbölésének módja egy olyan útvonal-kiegyenesítési rutin beiktatása, amely a robotot meghatározott távolságban tartja a bal faltól. Ezt nem vettem bele. A program elég bonyolult úgy, ahogy van, és elegendő az AI -koncepció bemutatásához ebben a projektben.
ZÁRÓ MEGJEGYZÉS
Ez egy szórakoztató projekt és nagyszerű tanulási élmény volt. Remélem, te is érdekesnek találod.
Ajánlott:
Ev3 Lego Gripper/Finder Robot: 7 lépés
Ev3 Lego Gripper/Finder Robot: Helló! A GrabBot egy többcélú robot, aki szeret gurulni … Amikor egy kis tárgyra bukkan, felveszi és visszahozza a kiindulási helyzetbe
Automatikus vaknyitás az EV3 használatával: 6 lépés
Automatikus redőnynyitás az EV3 használatával: A hálószobámban van egy sötétítő redőny, amelyet gyakran elfelejtek kinyitni vagy bezárni reggel vagy este. Szeretném automatizálni a nyitást és a zárást, de felülbírálással, mikor mikor változok
Irányítsd EV3 motorodat Alexával: 9 lépés
Irányítsd EV3 motorodat Alexával: Szeretnéd hangvezérléssel irányítani LEGO EV3 -at? Ebben a projektben megpróbálhat mozgatni egy EV3 motort úgy, hogy beszél Alexával. Mindössze egy Amazon Echo Dot, egy Arduino Nano 33 IoT tábla és egy EV3 WiFi -kulcs és motor szükséges. Az ötlet az, hogy felépítsék
Lego Lego Skull Man: 6 lépés (képekkel)
Lego Lego Skull Man: Sziasztok, ma megtanítlak benneteket, hogyan készítsetek egy hűvös kis elemekkel működő led lego koponyás embert. Ez nagyszerű lenne a hamarosan megjelenő halloweenkor. Vagy akár egy egyszerű egyszerű projekt is lenne amikor a deszkád vagy csak egy kis palást
Lézervágású Nerf labda lövés Lego EV3 tartály: 4 lépés
Lézervágású Nerf golyós lövés Lego EV3 tartály: A Waterloo Egyetem Mechatronics Engineering 1A ciklusának utolsó projektjéhez létrehoztunk egy lézerrel vágott tartályt a Lego EV3 készlettel (erre volt szükség), amely Nerf golyókat lőtt. Ez az oktatható semmiképpen sem teljes tervezési jelentés. Ha y