Orodha ya maudhui:

AI katika LEGO EV3 Maze-Driving Robot: Hatua 13
AI katika LEGO EV3 Maze-Driving Robot: Hatua 13

Video: AI katika LEGO EV3 Maze-Driving Robot: Hatua 13

Video: AI katika LEGO EV3 Maze-Driving Robot: Hatua 13
Video: Растущий пропуск под носом ► 4 Прохождение Super Mario Galaxy 2 (Nintendo Wii) 2024, Julai
Anonim
Image
Image
Jinsi Maze Inavyotatuliwa
Jinsi Maze Inavyotatuliwa

Hii ni robot rahisi, inayojitegemea na akili fulani ya bandia. Imeundwa kuchunguza maze na inaporudishwa mlangoni, kuendesha gari kwa njia ya kutoka na kuepusha miisho iliyokufa. Ni ngumu zaidi kuliko mradi wangu wa hapo awali, ambao uliendesha tu maze. Hapa, roboti lazima ikumbuke njia ambayo imesafiri, kuondoa mwisho-mwisho, ihifadhi njia mpya, halafu ifuate njia mpya.

Roboti yangu ya hapo awali imeelezewa hapa:

Roboti imejengwa kwa kutumia LEGO Mindstorms EV3. Programu ya EV3 inaendesha kompyuta na hutoa programu, ambayo hupakuliwa kwa mdhibiti mdogo anayeitwa Matofali ya EV3. Njia ya programu ni msingi wa ikoni na kiwango cha juu. Ni rahisi sana na inayofaa.

Vifaa

SEHEMU

  1. Mawimbi ya LEGO EV3 yamewekwa
  2. LEGO Mindstorms EV3 sensor ya ultrasonic. Haijumuishwa katika seti ya EV3.
  3. Kadi ya bati kwa maze. Katoni mbili zinapaswa kuwa za kutosha.
  4. Kipande kidogo cha kadibodi nyembamba kusaidia kutuliza pembe na kuta.
  5. Gundi na mkanda kuunganisha vipande vya kadibodi pamoja.
  6. Bahasha ya kadi nyekundu ya salamu kutambua utokaji wa maze.

VIFAA

  1. Huduma ya kisu kukata kadibodi.
  2. Mtawala wa chuma kusaidia mchakato wa kukata.

SOFTWARE

Programu iko hapa:

Hatua ya 1: Jinsi Maze Inavyotatuliwa

MBINU YA KUENDESHA MAZE

Kuna njia kadhaa za kuzunguka maze. Ikiwa una nia ya kuzisoma, zinaelezewa vizuri sana katika nakala ifuatayo ya Wikipedia:

Nilichagua njia ya kufuata ukuta wa kushoto. Wazo ni kwamba roboti itaweka ukuta upande wake wa kushoto kwa kufanya maamuzi yafuatayo wakati inakwenda kwenye maze:

  1. Ikiwezekana kugeuka kushoto, fanya hivyo.
  2. Vinginevyo, nenda moja kwa moja ikiwezekana.
  3. Ikiwa haiwezi kwenda kushoto au sawa, pinduka kulia, ikiwa inawezekana.
  4. Ikiwa hakuna moja ya hapo juu yanawezekana, hii lazima iwe mwisho wa kufa. Geuka.

Tahadhari moja ni kwamba njia inaweza kushindwa ikiwa maze ina kitanzi ndani yake. Kulingana na kuwekwa kwa kitanzi, roboti inaweza kuendelea kuzunguka na kuzunguka kitanzi. Suluhisho linalowezekana kwa shida hii itakuwa kwa roboti kubadili sheria ya wafuasi wa ukuta wa mkono wa kulia ikiwa itagundua kuwa inaenda kitanzi. Sikujumuisha uboreshaji huu katika mradi wangu.

KUTATUA MAZE KUPATA NJIA YA moja kwa moja

Wakati wa kuendesha gari kwa njia ya maze roboti lazima ikariri njia inayosafiri na kuondoa mwisho-mwisho. Inatimiza hii kwa kuhifadhi kila zamu na makutano katika safu, kuangalia michanganyiko maalum ya zamu na makutano wakati inakwenda, na kuchukua nafasi ya mchanganyiko ambao ni pamoja na mwisho wa kufa. Orodha ya mwisho ya zamu na makutano ni njia ya moja kwa moja kupitia maze.

Zamu zinazowezekana ni: Kushoto, Kulia, Nyuma (mwisho wa kufa), na Sawa (ambayo ni makutano).

Mchanganyiko hubadilishwa kama ifuatavyo:

  • "Kushoto, Nyuma, Kushoto" inakuwa "Sawa."
  • "Kushoto, Nyuma, Kulia" inakuwa "Nyuma."
  • "Kushoto, Nyuma, Sawa" inakuwa "Sawa."
  • "Kulia, Nyuma, Kushoto" inakuwa "Nyuma."
  • "Sawa, Nyuma, Kushoto" inakuwa "Sawa."
  • "Sawa, Nyuma, Sawa" inakuwa "Nyuma."

JINSI ROBOTI ANAVYOSHIKILIZA MAZE YANGU

  1. Wakati roboti inapoanza kuendesha inaona nafasi upande wa kulia na inahifadhi Moja kwa moja kwenye orodha katika safu.
  2. Kisha inageuka kushoto na inaongeza Kushoto kwenye orodha. Orodha sasa ina: Sawa, Kushoto.
  3. Na mwisho uliokufa, inageuka na inaongeza Rudi kwenye orodha. Orodha sasa ina: Sawa, Kushoto, Nyuma.
  4. Kupitisha njia ambayo ilitumia kutoka kwa mlango, inaongeza Sawa kwenye orodha. Orodha sasa ina: Sawa, Kushoto, Nyuma, Sawa. Inatambua mchanganyiko na inabadilisha Kushoto, Nyuma, Sawa kwenda Kulia. Orodha hiyo sasa ina Sawa, Kulia.
  5. Na mwisho uliokufa, inageuka na inaongeza Rudi kwenye orodha. Orodha sasa ina: Sawa, Kulia, Nyuma.
  6. Baada ya upande wa kushoto orodha ina Sawa, Kulia, Nyuma, Kushoto. Inatambua mchanganyiko na inabadilika Kulia, Nyuma, Kushoto kwenda Nyuma. Orodha hiyo sasa ina Sawa, Nyuma.
  7. Baada ya zamu inayofuata kushoto orodha ina Sawa, Nyuma, Kushoto. Inabadilisha mchanganyiko huo kuwa Haki. Orodha sasa ina Haki tu.
  8. Inapita nafasi na inaongeza Sawa kwenye orodha. Orodha sasa ina Haki, Sawa.
  9. Baada ya kugeuza kulia orodha ina Haki, Sawa, Kulia ambayo ndiyo njia ya moja kwa moja.

Hatua ya 2: Mazingatio Wakati wa kusanidi Robot

KUZINGATIA KWA MDHIBITISHA YOYOTE

Wakati roboti inapoamua kugeuka inapaswa kufanya zamu pana, au kwenda mbele umbali mfupi kabla ya kugeuka na baada ya kugeuka nenda mbele kwa umbali mfupi tena bila kuangalia sensa. Sababu ya umbali mfupi wa kwanza ni kwamba roboti haipaswi kugonga ukutani baada ya zamu, na sababu ya umbali mfupi wa pili ni kwamba baada ya roboti kugeuka, kihisi kingeona nafasi ndefu iliyokuwa imetoka tu, na roboti ingefikiria inapaswa kugeuka tena, ambayo sio jambo sahihi kufanya.

Wakati roboti inahisi makutano upande wa kulia lakini sio zamu sahihi, nimeona kuwa ni vizuri kuwa na roboti isonge mbele karibu sentimita 25 bila kuangalia sensorer zake.

KUZINGATIA MAHUSU KWA AKILI ZA LEGO EV3

Ingawa LEGO Mindstorms EV3 ni anuwai sana, hairuhusu zaidi ya moja ya kila aina ya sensorer iliyounganishwa na Matofali moja. Matofali mawili au zaidi yanaweza kufungwa minyororo, lakini sikutaka kununua Matofali mengine, na kwa hivyo nilitumia sensorer zifuatazo (badala ya sensorer tatu za ultrasonic): sensa ya infrared, sensor ya rangi, na sensor ya ultrasonic. Hii ilifanya kazi vizuri.

Lakini sensa ya rangi ina upeo mfupi sana, wa karibu inchi 2 (5 cm), ambayo inaongoza kwa maoni kadhaa maalum kama ilivyoelezwa hapo chini:

  1. Wakati sensor ya rangi inagundua ukuta mbele na roboti ikiamua kugeuka kulia au kugeuka, inapaswa kuhifadhia kwanza, ili ijipe nafasi ya kutosha kugeuka bila kugonga ukutani.
  2. Suala gumu hufanyika na makutano kadhaa "Sawa". Kwa sababu ya anuwai fupi ya sensa ya rangi, roboti haiwezi kuamua ikiwa inahisi makutano sahihi "Sawa" au risasi kuelekea kulia. Nimejaribu kurekebisha suala hili kwa kuweka mpango wa kuhifadhi "Sawa" kwenye orodha kila wakati roboti inapohisi moja, na kisha kuondoa zaidi ya moja "Sawa" mfululizo katika orodha. Hii inarekebisha hali ambapo zamu ya kulia inafuata "Sawa" kwenye maze lakini sio hali ambapo kuna zamu ya kulia bila "Sawa" mbele yake. Nilijaribu pia kuweka mpango wa kuondoa "Sawa" ikiwa ni kabla tu ya "Haki" lakini hii haifanyi kazi ikiwa zamu ya kulia inafuata "Sawa". Sijaweza kupata suluhisho linalofaa kesi zote, nadhani ingewezekana kwa roboti kuangalia umbali uliosafiri (kwa kusoma sensorer za mzunguko wa magari) na kuamua ikiwa ni "Sawa" au haki kugeuka. Sikufikiria shida hii inafaa kuifanya kwa madhumuni ya kuonyesha dhana ya AI katika mradi huu.
  3. Faida ya sensa ya rangi ni kwamba inatofautisha kati ya hudhurungi ya ukuta na nyekundu ya kizuizi nilichotumia kutoka, na hutoa njia rahisi kwa roboti kuamua ikiwa imemaliza maze.

Hatua ya 3: Programu kuu

Programu kuu
Programu kuu

LEGO Mindstorms EV3 ina njia rahisi ya programu-msingi ya programu. Vitalu vinaonyeshwa chini ya skrini ya kuonyesha kwenye kompyuta na inaweza kuburuzwa na kushushwa kwenye dirisha la programu ili kuunda programu. Matofali ya EV3 yanaweza kushikamana na kompyuta kwa kebo ya USB, Wi-Fi au Bluetooth, na programu hiyo inaweza kupakuliwa kutoka kwa kompyuta kwenda kwa Matofali.

Mpango huo una mpango kuu na "Vitalu Vangu" kadhaa ambavyo ni sehemu ndogo. Faili iliyopakiwa ina mpango mzima, ambao uko hapa:

Hatua katika programu kuu ni kama ifuatavyo:

  1. Fafanua na anzisha ubadilishaji wa kuhesabu zamu na safu.
  2. Subiri sekunde 5 na useme "Nenda."
  3. Anza kitanzi.
  4. Endesha kupitia maze. Wakati kutoka kunafikiwa, kitanzi hutoka.
  5. Onyesha kwenye skrini ya Matofali, makutano yanayopatikana kwenye maze hadi sasa.
  6. Angalia ikiwa njia inapaswa kufupishwa.
  7. Onyesha makutano katika njia iliyofupishwa.
  8. Pinduka tena kwa hatua ya 4.
  9. Baada ya kitanzi, endesha njia ya moja kwa moja.

Picha ya skrini inaonyesha programu hii kuu.

Hatua ya 4: Vitalu Vangu (Subroutines)

Vitalu Vangu (Subroutines)
Vitalu Vangu (Subroutines)

Navigate My Block, ambayo inadhibiti jinsi roboti inaendesha njia hiyo, imeonyeshwa. Uchapishaji ni mdogo sana na hauwezi kusomeka. Lakini ni mfano mzuri wa jinsi taarifa-ikiwa zenye nguvu na zenye nguvu (zinazoitwa Swichi katika mfumo wa LEGO EV3).

  1. Mshale # 1 inaelekeza kwenye Kubadilisha ambayo huangalia ikiwa kihisi cha infrared kinaona kitu zaidi ya umbali maalum. Ikiwa ndivyo, safu ya juu ya vizuizi hutekelezwa. Ikiwa sivyo, basi udhibiti unapitishwa kwa safu kubwa, chini ya vizuizi, ambapo mshale # 2 unapatikana.
  2. Mshale # 2 inaelekeza kwenye Kubadilisha ambayo huangalia ni rangi gani inayohisi sensor ya rangi. Kuna kesi 3: hakuna rangi hapo juu, nyekundu katikati, na hudhurungi chini.
  3. Mishale miwili # 3 inaelekeza kwa Swichi ambazo huangalia ikiwa sensor ya ultrasonic inaona kitu zaidi ya umbali maalum. Ikiwa ndivyo, safu ya juu ya vizuizi hutekelezwa. Ikiwa sivyo, basi udhibiti hupitishwa kwa safu ya chini ya vizuizi.

Vitalu Vangu vya kufupisha njia na kuendesha njia ya moja kwa moja ni ngumu zaidi na itakuwa haisomi kabisa, na kwa hivyo hazijumuishwa kwenye hati hii.

Hatua ya 5: Kuanza Kujenga Robot: Msingi

Kuanza Kujenga Robot: Msingi
Kuanza Kujenga Robot: Msingi
Kuanza Kujenga Robot: Msingi
Kuanza Kujenga Robot: Msingi

Kama ilivyoelezwa hapo awali, LEGO Mindstorms EV3 hairuhusu zaidi ya moja ya kila aina ya sensorer iliyounganishwa na Matofali moja. Nilitumia sensorer zifuatazo (badala ya sensorer tatu za ultrasonic): sensa ya infrared, sensor ya rangi, na sensor ya ultrasonic.

Jozi za picha hapa chini zinaonyesha jinsi ya kujenga roboti. Picha ya kwanza ya kila jozi inaonyesha sehemu zinazohitajika, na picha ya pili inaonyesha sehemu zile zile zilizounganishwa pamoja.

Hatua ya kwanza ni kujenga msingi wa roboti, kwa kutumia sehemu zilizoonyeshwa. Msingi wa roboti umeonyeshwa kichwa chini. Sehemu ndogo yenye umbo la L nyuma ya roboti ni msaada kwa nyuma. Inateleza wakati roboti inasonga. Hii inafanya kazi sawa. Kit cha EV3 hakina sehemu ya aina ya mpira unaozunguka.

Hatua ya 6: Juu ya Msingi, 1

Juu ya Msingi, 1
Juu ya Msingi, 1
Juu ya Msingi, 1
Juu ya Msingi, 1

Hatua hizi na hatua 2 zifuatazo ni juu ya msingi wa roboti, sensa ya rangi, na nyaya, ambazo ni nyaya zote za inchi 10 (26 cm).

Hatua ya 7: Juu ya Msingi, 2

Juu ya Msingi, 2
Juu ya Msingi, 2
Juu ya Msingi, 2
Juu ya Msingi, 2

Hatua ya 8: Juu ya Msingi, 3

Juu ya Msingi, 3
Juu ya Msingi, 3
Juu ya Msingi, 3
Juu ya Msingi, 3

Hatua ya 9: Sensorer za infrared na Ultrasonic

Sensorer za infrared na Ultrasonic
Sensorer za infrared na Ultrasonic
Sensorer za infrared na Ultrasonic
Sensorer za infrared na Ultrasonic

Ifuatayo, ni sensor ya infrared (upande wa kushoto wa roboti) na sensor ya ultrasonic (upande wa kulia). Pia, pini 4 za kushikamana na Matofali juu.

Sensorer za infrared na ultrasonic ziko kwa wima badala ya usawa wa kawaida. Hii hutoa kitambulisho bora cha pembe au mwisho wa kuta.

Hatua ya 10: nyaya

Nyaya
Nyaya

Cables huunganisha kwa Matofali kama ifuatavyo:

  • Bandari B: kushoto motor kubwa.
  • Bandari C: motor kubwa kulia.
  • Bandari ya 2: sensor ya ultrasonic.
  • Bandari ya 3: sensa ya rangi.
  • Bandari ya 4: sensa ya infrared.

Hatua ya 11: Hatua ya Mwisho katika Kuunda Robot: Mapambo

Hatua ya Mwisho katika Kuunda Robot: Mapambo
Hatua ya Mwisho katika Kuunda Robot: Mapambo
Hatua ya Mwisho katika Kuunda Robot: Mapambo
Hatua ya Mwisho katika Kuunda Robot: Mapambo

Mabawa na mapezi ni ya mapambo tu.

Hatua ya 12: Jenga Maze

Jenga Maze
Jenga Maze
Jenga Maze
Jenga Maze

Katoni mbili za kabati zinapaswa kuwa za kutosha kwa maze. Nilitengeneza ukuta wa maze inchi 5 (cm 12.5), lakini inchi 4 (10 cm) inapaswa kufanya kazi sawa ikiwa umepungukiwa na kadibodi.

Kwanza, nilikata karibu na kuta za mabokosi, 10 inches (25 cm) kutoka chini. Kisha nikakata karibu na sentimita 5 kutoka chini. Hii hutoa kuta kadhaa za inchi 5. Pia, nilikata karibu na sehemu za chini za maboksi, na kuacha karibu inchi 1 (2.5 cm) kushikamana na kuta kwa utulivu.

Vipande anuwai vinaweza kukatwa na kushikamana au kunaswa kila mahali inahitajika kuunda maze. Inapaswa kuwa na nafasi ya inchi 11 au 12 (30 cm) kati ya kuta za kando katika njia yoyote iliyo na mwisho uliokufa. Urefu haupaswi kuwa chini ya sentimita 25 (25 cm). Umbali huu unahitajika ili roboti igeuke.

Baadhi ya pembe za maze zinaweza kuhitaji kuimarishwa, Pia, kuta zingine zilizonyooka zinahitajika kuzuiwa ikiwa zinajumuisha kona ya katoni iliyonyooka. Vipande vidogo vya kadibodi nyembamba vinapaswa kushikamana chini chini kwenye sehemu hizo, kama inavyoonyeshwa.

Toka lina kizuizi nyekundu kilicho na bahasha ya kadi nyekundu ya kadi nyekundu na msingi uliotengenezwa kwa vipande 2 vya kadibodi nyembamba, kama inavyoonyeshwa.

Hatua ya 13: Maze

Maze
Maze

Tahadhari moja ni kwamba maze haipaswi kuwa kubwa. Ikiwa zamu za roboti ziko pembeni kidogo kutoka kwa ile inayofaa, tofauti hujumlisha baada ya zamu chache na roboti inaweza kuingia kwenye kuta. Ilinibidi kuganda mara kadhaa na mipangilio ya Mzunguko wa zamu ili kupata mafanikio kupitia hata maze ndogo niliyoifanya.

Njia inayozunguka suala hilo ni pamoja na utaratibu wa kunyoosha njia ambayo ingeweka roboti umbali maalum kutoka ukuta wa kushoto. Sikujumuisha hii. Mpango huo ni ngumu ya kutosha kama ilivyo, na inatosha kuonyesha dhana ya AI katika mradi huu.

KUMALIZA KUMBUKUMBU

Huu ulikuwa mradi wa kufurahisha na uzoefu mzuri wa kujifunza. Natumaini pia utapata kupendeza.

Ilipendekeza: