Orodha ya maudhui:

MATLAB Kudhibitiwa Roomba: Hatua 5
MATLAB Kudhibitiwa Roomba: Hatua 5

Video: MATLAB Kudhibitiwa Roomba: Hatua 5

Video: MATLAB Kudhibitiwa Roomba: Hatua 5
Video: Электрика в квартире своими руками. Финал. Переделка хрущевки от А до Я. #11 2024, Juni
Anonim
MATLAB Kudhibitiwa Roomba
MATLAB Kudhibitiwa Roomba
MATLAB Kudhibitiwa Roomba
MATLAB Kudhibitiwa Roomba

Lengo la mradi huu ni kutumia MATLAB pamoja na iRobot iliyopangwa robot inayoweza kupangwa. Kikundi chetu kiliunganisha ujuzi wetu wa kuweka alama ili kuunda hati ya MATLAB inayotumia kazi nyingi za iRobot, pamoja na sensorer za mwamba, sensorer za bumper, sensorer nyepesi, na kamera. Tulitumia usomaji huu wa sensorer na kamera kama pembejeo, ikituwezesha kuunda matokeo ambayo tunataka kutumia kazi za kificho za MATLAB na matanzi. Tunatumia pia kifaa cha rununu cha MATLAB na gyroscope kama njia ya kuungana na iRobot na kuidhibiti.

Hatua ya 1: Sehemu na Vifaa

Sehemu na Vifaa
Sehemu na Vifaa
Sehemu na Vifaa
Sehemu na Vifaa
Sehemu na Vifaa
Sehemu na Vifaa
Sehemu na Vifaa
Sehemu na Vifaa

MATLAB 2018a

-Toleo la 2018 la MATLAB ndio toleo linalopendwa zaidi, haswa kwa sababu inafanya kazi bora na nambari inayounganisha na kifaa cha rununu. Walakini, nambari zetu nyingi zinaweza kutafsiriwa katika matoleo mengi ya MATLAB.

iRobot Unda Kifaa

-Kifaa hiki ni kifaa maalum kilichotengenezwa ambacho kusudi la pekee ni kwa programu na usimbuaji. (Sio ombwe halisi)

Raspberry Pi (na kamera)

- Hii ni bodi ya kompyuta isiyo na gharama kubwa inayofanya kazi kama ubongo wa iRobot. Inaweza kuwa ndogo, lakini inauwezo wa vitu vingi. Kamera ni nyongeza ya ziada kwenye. Pia hutumia pi ya raspberry kupata kazi na maagizo yake yote. Kamera iliyoonyeshwa hapo juu imewekwa kwenye stendi iliyochapishwa ya 3D, iliyoundwa na Idara za Misingi ya Uhandisi katika Chuo Kikuu cha Tennessee

Hatua ya 2: Faili ya Hifadhidata ya Roomba

Faili ya Hifadhidata ya Roomba
Faili ya Hifadhidata ya Roomba

Kuna faili kuu ambayo utahitaji ili kutumia kazi na amri zinazofaa kwa roomba yako. Faili hii ni mahali ambapo uliandika msimbo unachota kazi kutoka ili kufanya roomba yako iweze kudhibitiwa zaidi.

Unaweza kupakua faili kwenye kiunga hiki au faili inayoweza kupakuliwa hapa chini

ef.engr.utk.edu/ef230-2017-08/projects/roomba-s/setup-roomba-instructable.php

Hatua ya 3: Kuunganisha na Roomba

Kwanza, lazima uhakikishe kuwa roboti yako imeunganishwa na bodi yako ya rasipberry kwa kutumia plug ndogo ya USB. Kisha unahitaji kuunganisha vizuri kompyuta yako na robot kwa WiFi sawa. Mara hii ikifanywa, unaweza kuwezesha roboti yako na uiunganishe kwa kutumia amri iliyopewa kwenye faili ya hifadhidata ya roboti. (Daima uweke ngumu robot yako kabla na baada ya kuitumia). Kwa mfano, tunatumia amri "r.roomba (19)" kuungana na roboti yetu, tukimpa kifaa cha kutofautisha r. Hii inarejelea faili ya hifadhidata, ambayo huweka mabadiliko yetu kama muundo ambao tunaweza kurejelea wakati wowote.

Hatua ya 4: Kanuni

Kanuni
Kanuni
Kanuni
Kanuni

Tumeambatanisha nambari kamili hapa chini, lakini hapa kuna muhtasari mfupi ambao unaangazia mambo muhimu katika hati yetu. Tulitumia sensorer zote, pamoja na kamera ili kuongeza kabisa uwezo wa roboti yetu. Tulijumuisha pia nambari ambayo ilituruhusu kuunganisha kifaa cha rununu na roboti yetu na kutumia gryoscope yake kuidhibiti kwa mikono.

Tulianza na amri rahisi "r.setDriveVelocity (.06)" ambayo inaweka kasi ya mbele ya robot kuwa.06 m / s. Hii ni tu kupata robot kusonga kabla

Halafu, hati yetu kuu imeanza na kitanzi cha muda ambacho hupata data ya roboti iliyopewa kwa kuunda miundo ambayo tunaweza kurejelea na kuitumia katika taarifa zenye masharti hapa chini, na hivyo kuturuhusu kumwambia roboti atekeleze amri fulani kulingana na data ya muundo. roboti inasoma na sensorer zake. Tuliiweka ili roboti isome sensorer zake za mwamba na ifuate njia nyeusi

wakati kweli% wakati kitanzi huenda hadi kitu "cha uwongo" kitatokea (katika kesi hii inaendelea sana) data = r.getCliffSensors; data2 = r.getBumpers;% hupata data kila wakati juu ya maadili ya sensorer ya mwamba na kuwapa kwa kutofautisha% img = r.getImage; Inachukua picha kutoka kwa kamera iliyowekwa picha (img); % Inaonyesha picha ambayo ilichukuliwa% red_mean = mean (mean (img (:,,, 1)));% Inachukua thamani ya wastani ya rangi ya kijani ikiwa data.rightFront <2000 r.turnAngle (-2); % inageuka Roomba takriban.2 digrii CW mara tu thamani ya sensorer ya mbele ya mwamba iko chini ya 2000 r.setDriveVelocity (.05); dataif nyingine ikiwa data ya kushoto mbele ya kushoto kushoto && 2000> data.rightFront r.moveDistance (.1); % inawaambia Roomba kuendelea mbele kwa takriban.2 m / s ikiwa maadili yote kutoka mbele kulia na sensorer mbele kushoto chini ya 2000% r. TurnAngle (0); % inawaambia Roomba wasigeuke ikiwa hali zilizotajwa hapo juu ni kweli

dataif nyingine ikiwa ni sawa = 1 r.moveDistance (-. 12); r. TurnAngle (160); r.setDriveVelocity (.05); dataif nyingine ikiwa kushoto2 = 1 r.moveDistance (-. 2); r. TurnAngle (5); r.setDriveVelocity (.05); dataif.ififif data2.front == 1 r.moveDistance (-. 12); r. TurnAngle (160); r.setDriveVelocity (.05);

Baada ya kitanzi hiki cha wakati, tunaingiza kitanzi kingine kinachosababisha data iliyopatikana kupitia kamera. Na tunatumia taarifa ikiwa ndani ya kitanzi hiki ambacho kinatambua picha kwa kutumia programu maalum (alexnet), na mara tu inapotambua picha hiyo mara moja husababisha kifaa kijijini kudhibiti

anet = alexnet; Hutoa ujifunzaji wa kina wa alexnet kwa kweli ya kutofautisha% isiyo na kipimo wakati kitanzi img = r.getImage; img = imresize (img, [227, 227]); lebo = kuainisha (anet, img); ikiwa lebo == "kitambaa cha karatasi" || lebo == "jokofu" lebo = "maji"; picha ya mwisho (img); kichwa (char (lebo)); kushawishi;

Kitanzi cha wakati ambacho kinaturuhusu kudhibiti kifaa na simu yetu hupata data hiyo kutoka kwa gyroscope ya simu na tunaiingiza kwenye tumbo ambayo inarudia tena data kwenye MATLAB kwenye kompyuta. Tunatumia taarifa ikiwa inasoma data ya tumbo na inatoa pato ambalo linasogeza kifaa kulingana na maadili fulani ya gyroscope ya simu. Ni muhimu kujua kwamba tulitumia sensorer za Mwelekeo wa kifaa cha rununu. Tumbo moja kwa tatu iliyotajwa hapo juu imegawanywa na kila kitu cha sensorer za mwelekeo wa simu, ambayo ni azimuth, lami, na pembeni. Taarifa ikiwa imeunda hali ambayo ilisema wakati upande unazidi maadili 50 au iko chini -50, basi roboti inasonga mbele umbali fulani (chanya 50) au nyuma (hasi 50). Na hiyo hiyo huenda kwa thamani ya lami. Ikiwa kiwango cha lami kinazidi thamani ya maporomoko 25 chini ya -25, roboti inageuka kwa pembe ya digrii 1 (chanya 25) au hasi nyuzi 1 (hasi 25)

wakati kweli pause (.1)% Pumzika kwa sekunde.5 kabla ya kila thamani kuchukuliwa Mdhibiti = iphone. Hutoa matriki kwa maadili ya mwelekeo wa iPhone kwa Azimuthal = Mdhibiti (1); Hutoa thamani ya kwanza ya tumbo kwa Pitch inayobadilika = Mdhibiti (2); Hutoa thamani ya pili ya tumbo kwa ubadilishaji (elekeza mbele na nyuma wakati iPhone imeshikiliwa kando) Side = Mdhibiti (3); Hutoa thamani ya tatu ya tumbo kwa ubadilishaji (elekeza kushoto na kulia wakati iPhone imeshikiliwa kando)% Husababisha pato kulingana na mwelekeo wa simu ikiwa Upande> 130 || Upande wa 25 r.soveDistance (-. 1)% Husogeza Roomba nyuma takriban mita.1 ikiwa iPhone imeelekezwa nyuma angalau 25 digress mwingine kama Side 25 r. TurnAngle (-1)% Inageuza Roomba takriban digrii 1 CCW ikiwa iPhone imeelekezwa kushoto angalau digrii 25 nyingine Bomba

Hizi ni vivutio tu vya vipande kuu vya nambari yetu, ambayo tulijumuisha ikiwa unahitaji kunakili haraka na kubandika sehemu kwa faida yako. Walakini, nambari yetu yote imeambatanishwa hapa chini ikiwa inahitajika

Hatua ya 5: Hitimisho

Nambari hii ambayo tuliandika imeundwa mahsusi kwa roboti yetu na pia maono yetu ya jumla ya mradi huo. Lengo letu lilikuwa kutumia ufundi wetu wote wa kuweka alama kwa MATLAB ili kutengeneza hati ya muundo wa kisima ambayo hutumia huduma nyingi za roboti. Kutumia kidhibiti simu sio ngumu kama vile unaweza kufikiria, na tunatumahi nambari yetu inaweza kukusaidia kuelewa vizuri dhana inayosababisha kuweka alama ya iRobot.

Ilipendekeza: