Përmbajtje:

AI në LEGO EV3 Robot-Maze Driving Robot: 13 Hapa
AI në LEGO EV3 Robot-Maze Driving Robot: 13 Hapa

Video: AI në LEGO EV3 Robot-Maze Driving Robot: 13 Hapa

Video: AI në LEGO EV3 Robot-Maze Driving Robot: 13 Hapa
Video: 🌹 Оригинальная и нарядная летняя кофточка спицами. Часть 1. 2024, Korrik
Anonim
Image
Image
Si zgjidhet një labirint
Si zgjidhet një labirint

Ky është një robot i thjeshtë, autonom me një inteligjencë artificiale. Shtë projektuar për të eksploruar një labirint dhe kur vendoset përsëri në hyrje, për të kaluar nëpër dalje dhe për të shmangur qorrsokakët. Isshtë shumë më e komplikuar sesa projekti im i mëparshëm, i cili thjesht kaloi nëpër labirint. Këtu, roboti duhet të kujtojë rrugën që ka kaluar, të heqë qorrsokakët, të ruajë rrugën e re dhe pastaj të ndjekë rrugën e re.

Roboti im i mëparshëm përshkruhet këtu:

Roboti është ndërtuar duke përdorur LEGO Mindstorms EV3. Softueri EV3 funksionon në një kompjuter dhe gjeneron një program, i cili më pas shkarkohet në një mikrokontrollues të quajtur tulla EV3. Metoda e programimit është e bazuar në ikona dhe e nivelit të lartë. Veryshtë shumë e lehtë dhe e gjithanshme.

Furnizimet

PJES

  1. Set LEGO Mindstorms EV3
  2. Sensori tejzanor LEGO Mindstorms EV3. Nuk përfshihet në grupin EV3.
  3. Karton i valëzuar për labirint. Dy kartona duhet të jenë të mjaftueshëm.
  4. Një copë e vogël kartoni e hollë për të ndihmuar në stabilizimin e disa qosheve dhe mureve.
  5. Ngjitës dhe kasetë për të lidhur pjesët e kartonit së bashku.
  6. Një zarf i kuq-përshëndetës për të identifikuar daljen e labirintit.

MJETET

  1. Thikë e dobishme për të prerë kartonin.
  2. Sundimtar çeliku për të ndihmuar procesin e prerjes.

SOFTUER

Programi është këtu:

Hapi 1: Si zgjidhet një labirint

METODA E LEVIZIMIT

Ka disa metoda për të lundruar në një labirint. Nëse jeni të interesuar t'i studioni ato, ato përshkruhen shumë mirë në artikullin e mëposhtëm të Wikipedia:

Zgjodha metodën e ndjekjes së murit në të majtë. Ideja është që roboti të mbajë një mur në anën e tij të majtë duke marrë vendimet e mëposhtme ndërsa kalon nëpër labirint:

  1. Nëse është e mundur të ktheheni majtas, bëjeni këtë.
  2. Përndryshe, shkoni drejt nëse është e mundur.
  3. Nëse nuk mund të shkojë majtas ose drejt, kthehuni djathtas, nëse është e mundur.
  4. Nëse asnjë nga sa më sipër nuk është e mundur, kjo duhet të jetë një rrugë pa krye. Kthehu mbrapsht.

Një paralajmërim është se metoda mund të dështojë nëse labirinti ka një lak në të. Në varësi të vendosjes së lakut, roboti mund të vazhdojë të sillet rreth e qark. Një zgjidhje e mundshme për këtë problem do të ishte që roboti të kalonte në rregullin e ndjekësit të murit në të djathtë, nëse e kuptonte se po shkonte në një lak. Unë nuk e përfshiva këtë përmirësim në projektin tim.

ZGJIDHJA E MAZIT P TOR T F GJETUR NJ RRUG DIREKTE

Ndërsa udhëton nëpër labirint, roboti duhet të mësojë përmendësh rrugën që po kalon dhe të eliminojë qorrsokakët. Ai e arrin këtë duke ruajtur çdo kthesë dhe kryqëzim në një grup, duke kontrolluar kombinime specifike të kthesave dhe kryqëzimeve ndërsa shkon, dhe duke zëvendësuar kombinimet që përfshijnë një qorrsokak. Lista përfundimtare e kthesave dhe kryqëzimeve është rruga e drejtpërdrejtë nëpër labirint.

Kthesat e mundshme janë: Majtas, Djathtas, Kthehu (në një qorrsokak) dhe Drejt (që është një kryqëzim).

Kombinimet zëvendësohen si më poshtë:

  • "Majtas, Kthehu, Majtas" bëhet "Drejt".
  • "Majtas, Mbrapa, Djathtas" bëhet "Kthehu".
  • "Majtas, Kthehu, Drejt" bëhet "E Djathtë".
  • "Djathtas, Kthehu, Majtas" bëhet "Kthehu".
  • "Drejt, mbrapa, majtas" bëhet "e djathtë".
  • "Drejt, mbrapa, drejt" bëhet "Kthehu".

SI ROBOTI P HRDORON LARGIN TIM

  1. Kur roboti fillon të ngasë, sheh një hapësirë në të djathtë dhe ruan Drejt në listën në grup.
  2. Pastaj kthehet majtas dhe shton Majtas në listë. Lista tani përmban: Drejt, Majtas.
  3. Me një qorrsokak, kthehet dhe shton përsëri në listë. Lista tani përmban: Drejt, majtas, mbrapa.
  4. Duke kaluar korsinë e përdorur nga hyrja, ajo shton Drejt në listë. Lista tani përmban: Drejt, Majtas, Mbrapa, Drejt. Ai njeh një kombinim dhe ndryshon Majtas, Prapa, Drejt në Djathtas. Lista tani përmban Drejt, Djathtas.
  5. Me një qorrsokak, kthehet dhe shton përsëri në listë. Lista tani përmban: Drejt, Djathtas, Kthehu.
  6. Pas kthesës majtas lista përmban Drejt, Djathtas, Kthehu, Majtas. Ajo njeh një kombinim dhe ndryshon Djathtas, Kthehu, Majtas në Kthehu. Lista tani përmban Straight, Back.
  7. Pas kthesës tjetër majtas lista përmban Drejt, Prapa, Majtas. Ai e ndryshon atë kombinim në të Djathtë. Lista tani përmban vetëm Right.
  8. Kalon një hapësirë dhe shton Drejt në listë. Lista tani përmban Right, Straight.
  9. Pas kthesës djathtas lista përmban Djathtas, Drejt, Djathtas e cila është rruga e drejtpërdrejtë.

Hapi 2: Konsiderata kur Programoni Robotin

Konsiderata për çdo mikrokontrollues

Kur roboti vendos të kthehet ose duhet të bëjë një kthesë të gjerë, ose të shkojë përpara një distancë të shkurtër para se të kthehet dhe pasi të kthehet të shkojë përpara një distancë të shkurtër përsëri pa kontrolluar sensorin. Arsyeja për distancën e parë të shkurtër është se roboti nuk duhet të përplaset në mur pas kthesës, dhe arsyeja për distancën e dytë të shkurtër është se pasi roboti të jetë kthyer, sensori do të shihte hapësirën e gjatë nga e cila sapo kishte ardhur, dhe roboti do të mendonte se duhet të kthehej përsëri, gjë që nuk është gjëja e duhur për të bërë.

Kur roboti ndjen një kryqëzim në të djathtë, por nuk është një kthesë në të djathtë, kam zbuluar se është mirë që roboti të ecë përpara rreth 25 cm pa kontrolluar sensorët e tij.

KONSIDERIMET SPECIFIKE P LR LEGO MINDSTORMS EV3

Edhe pse LEGO Mindstorms EV3 është shumë i gjithanshëm, ai lejon jo më shumë se një nga secili lloj sensori të lidhur me një Tullë. Dy ose më shumë Tulla mund të lidhen me zinxhir margaritar, por unë nuk doja të blija një Tullë tjetër, dhe kështu kam përdorur sensorët e mëposhtëm (në vend të tre sensorëve tejzanor): sensor infra të kuqe, sensor ngjyrash dhe sensor tejzanor. Kjo funksionoi mirë.

Por sensori i ngjyrave ka një gamë shumë të shkurtër, prej rreth 2 inç (5 cm), gjë që çon në disa konsiderata të veçanta siç përshkruhen më poshtë:

  1. Kur sensori i ngjyrave zbulon një mur përpara dhe roboti vendos të kthehet djathtas ose të kthehet, ai duhet të kthehet së pari, në mënyrë që t'i japë vetes hapësirë të mjaftueshme për t'u kthyer pa u përplasur në mur.
  2. Një çështje e ndërlikuar ndodh me disa kryqëzime "Drejt". Për shkak të gamës së shkurtër të sensorit të ngjyrave, roboti nuk mund të përcaktojë nëse ndjen një kryqëzim të duhur "Drejt" ose përparimin në një kthesë në të djathtë. Unë jam përpjekur ta rregulloj këtë çështje duke vendosur programin për të ruajtur një "Drejt" në listë sa herë që roboti ndjen një, dhe pastaj eliminoj më shumë se një "Drejt" me radhë në listë. Kjo rregullon situatën kur një kthesë në të djathtë ndjek një "Drejt" në labirint, por jo situatën kur ka një kthesë në të djathtë pa një "Drejt" para saj. Unë gjithashtu u përpoqa të vendosja programin për të eleminuar një "Drejt" nëse është pak para një "E Djathtë", por kjo nuk funksionon nëse një kthesë djathtas ndjek një "Drejt". Unë nuk kam qenë në gjendje të gjej një zgjidhje që i përshtatet të gjitha rasteve, megjithatë unë mendoj se do të ishte e mundur që roboti të shikonte distancën e përshkuar (duke lexuar sensorët e rrotullimit të motorit) dhe të vendosë nëse është një "Drejt" apo një e drejtë kthesë. Unë nuk mendova se ky ndërlikim ia vlente të bëhej për qëllimet e demonstrimit të konceptit të UA në këtë projekt.
  3. Një avantazh i sensorit të ngjyrave është se ai bën dallimin midis ngjyrës kafe të një muri dhe të kuqes së barrierës që kam përdorur në dalje, dhe siguron një mënyrë të lehtë për robotin të vendosë kur të ketë përfunduar labirintin.

Hapi 3: Programi kryesor

Programi Kryesor
Programi Kryesor

LEGO Mindstorms EV3 ka një metodë programimi shumë të përshtatshme të bazuar në ikona. Blloqet shfaqen në fund të ekranit të ekranit në kompjuter dhe mund të tërhiqen dhe hidhen në dritaren e programimit për të ndërtuar një program. Tulla EV3 mund të lidhet me kompjuterin ose me një kabllo USB, Wi-Fi ose Bluetooth, dhe programi mund të shkarkohet nga kompjuteri në Tulla.

Programi përbëhet nga një program kryesor dhe disa "Blloqet e mia" të cilat janë nënrutina. Skedari i ngarkuar përmban të gjithë programin, i cili është këtu:

Hapat në programin kryesor janë si më poshtë:

  1. Përcaktoni dhe filloni ndryshoren e numërimit të kthesës dhe grupin.
  2. Prisni 5 sekonda dhe thoni "Shko".
  3. Filloni një lak.
  4. Ecni nëpër labirint. Kur të arrihet dalja, laku del.
  5. Shfaq në ekranin e Tullave, kryqëzimet e gjetura në labirint deri më tani.
  6. Kontrolloni nëse rruga duhet të shkurtohet.
  7. Shfaqni kryqëzimet në rrugën e shkurtuar.
  8. Rikthimi në hapin 4.
  9. Pas lakut, drejtoni rrugën e drejtpërdrejtë.

Pamja e ekranit tregon këtë program kryesor.

Hapi 4: Blloqet e mia (nënrutina)

Blloqet e mia (nënrutina)
Blloqet e mia (nënrutina)

Shfaqet Navigate My Block, i cili kontrollon sesi roboti kalon nëpër labirint. Shtypja është shumë e vogël dhe mund të mos jetë e lexueshme. Por është një shembull i mirë se sa të gjithanshëm dhe të fuqishëm janë deklaratat if (të quajtura Ndërprerës në sistemin LEGO EV3).

  1. Shigjeta #1 tregon një Ndërprerës që kontrollon nëse sensori infra të kuqe sheh një objekt më shumë se një distancë të caktuar larg. Nëse është kështu, seria kryesore e blloqeve ekzekutohet. Nëse jo, atëherë kontrolli kalon në serinë e madhe, të poshtme të blloqeve, ku ndodhet shigjeta #2.
  2. Shigjeta #2 tregon një Ndërprerës që kontrollon se çfarë ngjyre shikon sensori i ngjyrave. Ka 3 raste: pa ngjyrë në krye, të kuqe në mes dhe kafe në fund.
  3. Dy shigjeta #3 drejtohen te Çelësat që kontrollojnë nëse sensori tejzanor sheh një objekt më shumë se një distancë të caktuar larg. Nëse është kështu, seria kryesore e blloqeve ekzekutohet. Nëse jo, atëherë kontrolli kalon në serinë e poshtme të blloqeve.

Blloqet e mia për shkurtimin e rrugës dhe për drejtimin e shtegut të drejtpërdrejtë janë më të ndërlikuara dhe do të ishin krejtësisht të palexueshme, dhe kështu ato nuk përfshihen në këtë dokument.

Hapi 5: Fillimi i Ndërtimit të Robotit: Baza

Fillimi i Ndërtimit të Robotit: Baza
Fillimi i Ndërtimit të Robotit: Baza
Fillimi i Ndërtimit të Robotit: Baza
Fillimi i Ndërtimit të Robotit: Baza

Siç u përmend më parë, LEGO Mindstorms EV3 lejon jo më shumë se një nga secili lloj sensori të lidhur me një Tullë. Kam përdorur sensorët e mëposhtëm (në vend të tre sensorëve tejzanor): sensor infra të kuqe, sensor ngjyrash dhe sensor tejzanor.

Çiftet e fotografive më poshtë tregojnë se si të ndërtohet roboti. Fotografia e parë e secilës palë tregon pjesët e nevojshme, dhe fotografia e dytë tregon të njëjtat pjesë të lidhura së bashku.

Hapi i parë është ndërtimi i bazës së robotit, duke përdorur pjesët e paraqitura. Baza e robotit tregohet me kokë poshtë. Pjesa e vogël në formë L në pjesën e pasme të robotit është një mbështetje për pjesën e pasme. Ai rrëshqet ndërsa lëviz roboti. Kjo funksionon në rregull. Kompleti EV3 nuk ka një pjesë të tipit të rrotullimit.

Hapi 6: Pjesa e sipërme e Bazës, 1

Në krye të bazës, 1
Në krye të bazës, 1
Në krye të bazës, 1
Në krye të bazës, 1

Ky hap dhe 2 hapat e ardhshëm janë për pjesën e sipërme të bazës së robotit, sensorin e ngjyrave dhe kabllot, të cilat janë të gjitha kabllo 10 inç (26 cm).

Hapi 7: Maja e Bazës, 2

Në krye të bazës, 2
Në krye të bazës, 2
Në krye të bazës, 2
Në krye të bazës, 2

Hapi 8: Maja e Bazës, 3

Në krye të bazës, 3
Në krye të bazës, 3
Në krye të bazës, 3
Në krye të bazës, 3

Hapi 9: Sensorë me rreze infra të kuqe dhe tejzanor

Sensorë me rreze infra të kuqe dhe tejzanor
Sensorë me rreze infra të kuqe dhe tejzanor
Sensorë me rreze infra të kuqe dhe tejzanor
Sensorë me rreze infra të kuqe dhe tejzanor

Tjetra, janë sensori infra të kuqe (në anën e majtë të robotit) dhe sensori tejzanor (në të djathtë). Gjithashtu, 4 kunjat për ngjitjen e Tullave në majë.

Sensorët infra të kuqe dhe tejzanor janë të vendosur vertikalisht në vend të horizontales normale. Kjo siguron identifikim më të mirë të qosheve ose skajeve të mureve.

Hapi 10: Kabllot

Kabllot
Kabllot

Kabllot lidhen me Tulla si më poshtë:

  • Porti B: motori i madh i majtë.
  • Porta C: motor i madh i djathtë.
  • Porti 2: sensor tejzanor.
  • Porta 3: sensori i ngjyrave.
  • Porti 4: sensor infra të kuqe.

Hapi 11: Hapi Final në Ndërtimin e Robotit: Dekorim

Hapi i fundit në ndërtimin e robotit: Dekorimi
Hapi i fundit në ndërtimin e robotit: Dekorimi
Hapi i fundit në ndërtimin e robotit: Dekorimi
Hapi i fundit në ndërtimin e robotit: Dekorimi

Krahët dhe pendët janë vetëm për zbukurim.

Hapi 12: Ndërtoni një labirint

Ndërtoni një labirint
Ndërtoni një labirint
Ndërtoni një labirint
Ndërtoni një labirint

Dy kartona kartoni të valëzuar duhet të jenë të mjaftueshëm për labirint. I bëra muret e labirintit 5 inç (12.5 cm) të larta, por 4 inç (10 cm) duhet të funksionojnë po aq mirë nëse ju mungon kartoni i valëzuar.

Së pari, kam prerë rreth mureve të kartonëve, 10 inç (25 cm) nga fundi. Pastaj kam prerë rreth mureve 5 centimetra nga fundi. Kjo siguron disa mure 5 inç. Gjithashtu, kam prerë fundet e kartonëve, duke lënë rreth 1 inç (2.5 cm) të ngjitur në mure për qëndrueshmëri.

Pjesët e ndryshme mund të priten dhe ngjiten ose ngjiten kudo që është e nevojshme për të formuar labirintin. Duhet të ketë një hapësirë 11 ose 12 inç (30 cm) midis mureve anësore në çdo shteg me një qorrsokak. Gjatësia duhet të jetë jo më pak se 10 inç (25 cm). Këto distanca janë të nevojshme që roboti të kthehet.

Disa nga qoshet e labirintit mund të kenë nevojë të përforcohen; Gjithashtu, disa mure të drejta duhet të mbahen nga lakimi nëse përfshijnë një qoshe kartoni të drejtuar. Copa të vogla kartoni të hollë duhet të ngjiten në fund në ato vende, siç tregohet.

Dalja ka një pengesë të kuqe të përbërë nga gjysma e një zarfi të kuq të kartolinave dhe një bazë e bërë nga 2 copa kartoni të hollë, siç tregohet.

Hapi 13: Labirint

Labirinti
Labirinti

Një paralajmërim është që labirinti të mos jetë i madh. Nëse kthesat e robotit janë në një kënd të vogël nga ai i duhuri, mospërputhjet shtohen pas disa kthesave dhe roboti mund të përplaset në mure. Më është dashur të futem disa herë me cilësimet e Rrotullimeve të kthesave në mënyrë që të arrij një makinë të suksesshme nëpër labirintin e vogël që kam bërë.

Një mënyrë për të zgjidhur këtë çështje është të përfshini një rutinë të drejtimit të rrugës që do ta mbante robotin në një distancë të caktuar nga muri i majtë. Unë nuk e përfshiva këtë. Programi është mjaft i komplikuar siç është, dhe është i mjaftueshëm për të demonstruar konceptin e UA në këtë projekt.

VEMREJTJE PRFUNDIMTARE

Ky ishte një projekt argëtues dhe një përvojë e madhe mësimore. Shpresoj që edhe juve t’ju duket interesante.

Recommended: