Përmbajtje:

Roomba Scout Explorer: 8 hapa
Roomba Scout Explorer: 8 hapa

Video: Roomba Scout Explorer: 8 hapa

Video: Roomba Scout Explorer: 8 hapa
Video: Is iRobot really superior??? #shorts #short #youtubeshorts 2024, Shtator
Anonim
Roomba Scout Explorer
Roomba Scout Explorer

Si një nga projektet më të pritura dhe të hulumtuara shumë amerikane, projektet e roverit Mars janë bërë arritje njerëzore në prodhimin gjithnjë e më të avancuar të sistemeve autonome të teknologjisë së lartë, me të vetmin qëllim për të hetuar dhe interpretuar masat tokësore dhe sipërfaqet e planetit të kuq prapa toka. Si pjesë e një projekti më personal në nderim të misioneve të Marsit, objektivi ynë ishte të krijonim një robot roomba që mund të vepronte në mënyrë autonome gjatë një afati të caktuar kohor dhe të reagonte në përputhje me rrethanat sipas kritereve të caktuara brenda tij.

Sa i përket veçantisë, ne u përqëndruam në krijimin e një diagrami që tregoi secilën rrugë që merr roboti nga origjina e tij. Përveç kësaj, roboti do të jetë në gjendje të numërojë numrin e objekteve në afërsi të tij në një stil panoramik.

Hapi 1: Pajisjet

-Roomba me kamerën ngjitëse (me emër specifik të njohur)

-Server i lidhur

-Windows 10 / Mac me lidhje interneti

-Platformë e ndritshme

-Kati i errët

-Çdo objekt i humbur me dizajn njëngjyrësh

Hapi 2: Konfigurimi i MATLAB

Konfigurimi i MATLAB
Konfigurimi i MATLAB

Për të krijuar detyra dhe funksione për dhomën tuaj, duhet të keni kodet dhe grupet e veglave specifike që përmbajnë komandat e dhomës.

Me MATLAB 2016a dhe më tej të shkarkuar, krijoni një dosje që përmban këto skedarë robotësh dhe futni skedarin MATLAB më poshtë në dosje dhe drejtojeni atë për të instaluar skedarët e mbetur të nevojshëm të dhomës.

Pas kësaj, kliko me të djathtën në dritaren Dosja aktuale, rri pezull miun mbi "Shto një rrugë" dhe kliko në "Dosja aktuale". Tani, një shteg duhet të krijohet i tillë që secila prej këtyre skedarëve të përdoret për të aktivizuar dhomën.

Tani, përdorni komandën më poshtë në dritaren e komandës për të konfiguruar roomba:

r = roomba (#).

Simboli # është 'numri' i dhomës së specifikuar; megjithatë, nëse thjesht doni një imitues të roomba, thjesht shkruani komandën e mëposhtme:

r = roomba (0).

Simulimi do të rekomandohej për testimin e modeleve të lëvizjes.

Nëse jeni kurioz se çfarë komandash mund të ndjekë roomba, shkruani sa vijon në dritaren e komandës:

doc roomba.

Për më shumë detaje, vizitoni uebfaqen e mëposhtme:

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

Hapi 3: Funksioni: Lëvizja

Funksioni: Lëvizja
Funksioni: Lëvizja
Funksioni: Lëvizja
Funksioni: Lëvizja

Në lidhje me lëvizjen, roomba duhet të lëvizë automatikisht për një periudhë të caktuar kohe të dhënë në hyrjet. Qëllimi i lëvizjes së robotit është të reagojë siç duhet kur sensorët e tij (parakolpët, parakolpët e dritës dhe sensorët e shkëmbinjve) ndryshojnë në prani të pengesave të ndryshme. Kjo pjesë do të veprojë si bazë për të gjitha komandat e roomba pasi më shumë veçori të kodit i shtohen më vonë. Duheshin disa specifikime:

-Për të zvogëluar dëmtimin, roboti duhet të zvogëlojë shpejtësinë në një shpejtësi më të ulët.

-Kur i afrohet një shkëmbi ose muri, roboti do të lëvizë në të kundërt dhe do të ndryshojë këndin e tij në varësi të pikës së goditjes

-Pas njëfarë kohe duke vozitur, roomba përfundimisht do të ndalet dhe do të marrë imazhe të zonës përreth

Vini re se vlerat e përdorura ishin në lidhje me imituesin; vlerat si këndet e kthesës shpejtësitë e kthesës dhe paravendosjet e sensorëve të robotëve duhet të modifikohen kur përdorni robotin aktual për të siguruar qëndrueshmëri dhe llogari për gabimet e pajisjeve.

Hapi 4: Funksioni: Përpunimi i imazhit

Funksioni: Përpunimi i imazhit
Funksioni: Përpunimi i imazhit

Sipas kërkesës, ne ishim të ngarkuar të modifikonim të dhënat e një imazhi (ose disa imazhe) që u morën nga kamera e robotit, për të cilën ne vendosëm të bënim që roomba të "numëronte" numrin e objekteve që ajo sheh në imazh.

Ne ndoqëm teknikën që MATLAB të vizatojë kufij rreth objekteve të nxira që kontrastojnë me një sfond të bardhë. Sidoqoftë, ky funksion është i prirur të ketë vështirësi në një zonë të hapur pasi format dhe ngjyrat e ndryshme perceptohen nga kamera, duke rezultuar në numërime jashtëzakonisht të larta.

Vini re se ky funksion nuk mund të funksionojë në imitues pasi kamera nuk ofrohet; nëse tentohet, do të ndodhë një gabim duke deklaruar se mund të përdoret vetëm një matricë (:,:, 3).

Hapi 5: Funksioni: Hartimi

Funksioni: Hartimi
Funksioni: Hartimi
Funksioni: Hartimi
Funksioni: Hartimi
Funksioni: Hartimi
Funksioni: Hartimi
Funksioni: Hartimi
Funksioni: Hartimi

Një veçori shtesë që ne donim që roboti të kishte ishte hartimi i vendndodhjeve të tij pasi ndërvepron drejtpërdrejt me mjedisin. Kështu, kodi më poshtë kërkon të hapë një hartë dhe të krijojë një sistem koordinativ që detajon çdo vendndodhje në të cilën shtypen sensorët e parakolpit të robotit. Kjo doli të ishte pjesa më e gjatë nga të tre pjesët që u testua individualisht, por u tregua shumë më e thjeshtë kur zbatohej në skenarin përfundimtar.

Për hir të shtimit të një kufiri në gjatësinë e kohës së funksionimit të funksionit, kufiri n <20 në lakin while u përdor për qëllime testimi.

Mbani në mend edhe pse për shkak të kompleksitetit të kodit, ndodhin më shumë gabime pasi segmenti i kodit funksionon për një kohë të gjatë; nga testet e mëparshme, dhjetë goditje duket se janë numri i pikëve para se të ndodhin gabime të rëndësishme.

Hapi 6: Përzierja

Përballje
Përballje
Përballje
Përballje
Përballje
Përballje
Përballje
Përballje

Meqenëse e gjithë kjo do të vendoset në një skedar të vetëm, ne krijuam një funksion duke përdorur secilin nga dy hapat e mëparshëm si nënfunksione të tij. Një draft përfundimtar u bë me modifikimin e mëposhtëm në funksionin redux të quajtur "recon". Për të shmangur konfuzionin për MATLAB, skriptet "counter" dhe "rombplot3" u riemëruan si funksione të ngulitura "CountR" dhe "plotr", përkatësisht.

Disa ndryshime duheshin bërë në versionin përfundimtar në krahasim me skriptet e mëparshme:

-Origjina gjithmonë do të shënohet me një rreth të kuq

-Sa herë që dhoma ndalon nga parakolpët e saj, vendndodhja shënohet me një rreth të zi

-Sa herë që dhoma ndalon nga sensorët e saj të shkëmbit, vendndodhja shënohet me një rreth blu

-Sa herë që roomba ndalon të hetojë zonën, vendndodhja shënohet me një rreth të gjelbër

-Imazhet janë modifikuar për të hequr pjesën e sipërme për shkak të vulës kohore që ndërhyn potencialisht në rezultatet

-Kufijtë nuk do të llogariten si një objekt për shkak të numrave mjaft të lartë të fituar

-Disa ndryshore janë ndryshuar, kështu që për të shmangur konfuzionin përdorni versionet e mësipërme për referencë.

Hapi 7: Testimi

Duke testuar
Duke testuar

Testet për secilin komponent individual u treguan të përziera herë pas here, kjo është arsyeja pse modifikimet në vlera të caktuara të paracaktuara ishin të nevojshme. Sfondi tematik mbi të cilin ne donim të testonim aftësitë e robotit në një zonë të mbyllur thjesht përbëhej nga një dërrasë e bardhë e shtruar në një dysheme shumë më të errët. Ju mund t'i shpërndani objektet përreth zonës; i bëjnë ata të veprojnë si objekte që do të përplasen ose objektet e largëta nga zona lëvizëse e robotit.

Pas vendosjes së kohës së rregulluar dhe shpejtësisë bazë, roomba demonstroi sjellje adekuate të lëvizjes, duke u ndalur dhe duke u larguar nga çdo "shkëmb" ose objekt në të cilin futet, si dhe duke u ngadalësuar ndërsa zbuloi diçka afër. Me të arritur distancën e dëshiruar të udhëtimit prej tre metrash, roboti do të ndalonte dhe vlerësonte zonën, duke marrë imazhe të secilit rajon 45 gradë dhe do të vazhdonte tutje nëse e lejon koha. Sidoqoftë, kthesat e tij dukeshin më të mëdha se sa kërkohej, që do të thotë se të dhënat e koordinatave do të errësoheshin.

Sa herë që ndalet, një pikë e re vendoset në rajonin e përafërt të pozicionit të saj në sistemin koordinativ; megjithatë, vërehet se drejtimi fillestar në të cilin fillon roomba luan një rol kryesor në hartimin e hartës. Nëse një veçori e busullës mund të zbatohej, do të ishte përdorur si një pjesë vendimtare e hartimit të hartës.

Koha aktuale që funksioni merr për të funksionuar plotësisht shkon gjithmonë mbi kohën e kërkuar, gjë që ka kuptim duke pasur parasysh se nuk mund të ndalet në mes të një prej rikuperimeve të tij. Fatkeqësisht, ky version i numërimit të imazhit ka problemet e tij, veçanërisht në zonat që janë kryesisht monokromatike ose që ndryshojnë në shkëlqim; sepse përpiqet të bëjë dallimin midis dy nuancave, ai tenton të perceptojë objekte që nuk janë të dëshiruara, prandaj gjithnjë numëron deri në numra jashtëzakonisht të lartë.

Hapi 8: Përfundimi

Përfundim
Përfundim

Ndërsa kjo detyrë ishte një punë shumë aventureske dhe krijuese që solli gëzim lehtësues, unë, nga vëzhgimet e mia personale, pashë një numër të madh gabimesh që mund të ishin problematike, si në kodin ashtu edhe në sjelljen e robotit.

Kufizimi i përdorimit të specifikimit të kohës në lakin while bën që sasia totale e kohës të jetë më e gjatë se e dëshiruar; procesi i teknikës së panoramës dhe përpunimit të imazhit në fakt mund të zgjasë më shumë nëse drejtohet nga një kompjuter i ngadalshëm ose nuk përdoret më parë. Për më tepër, roomba që u përdor në prezantimin tonë veproi me një numër të madh gabimesh, veçanërisht në lëvizje, në krahasim me imituesin. Roboti i përdorur për fat të keq kishte një tendencë të përkulej pak në të majtë ndërsa lëvizte drejt dhe bënte kthesa më të mëdha nga sa dëshironte. Për këtë arsye dhe shumë të tjera, rekomandohet shumë që për të kompensuar këto gabime, duhet të bëhen ndryshime për këndet e kthesës së tij.

Sidoqoftë, ky është një projekt i gjatë akoma stimulues intelektual që kishte vepruar si një përvojë interesante mësimore për aplikimin e kodeve dhe komandave për të ndikuar drejtpërdrejt në sjelljen e një roboti aktual.

Recommended: