INHOUDSOPGAWE:

Roomba Scout Explorer: 8 stappe
Roomba Scout Explorer: 8 stappe
Anonim
Roomba Scout Explorer
Roomba Scout Explorer

As een van die mees verwagte en swaar nagevorsde Amerikaanse projekte, het die Mars-rover-projekte menslike prestasies geword in die steeds vordering in die produksie van outonome stelsels met 'n hoë tegnologie, met die uitsluitlike doel om die landmassas en oppervlaktes van die rooi planeet agter te ondersoek en te interpreteer die aarde. As deel van 'n meer persoonlike projek ter ere van die Mars -missies, was ons doel om 'n roomba -robot te skep wat outonoom oor 'n sekere tydsbestek kan optree en daarvolgens kan reageer op sekere kriteria in sy omgewing.

Wat die uniekheid betref, het ons gefokus op die opstel van 'n diagram wat elke pad wat die robot uit sy oorsprong neem, toon. Boonop kan die robot die aantal voorwerpe in sy omgewing in 'n panoramiese styl tel.

Stap 1: Toerusting

-Roomba w/ Attachable Camera (met spesifieke naam bekend)

-Koppel bediener

-Windows 10 / Mac met internetverbinding

-Helder platform

-Donker vloer

-Alle verdwaalde voorwerpe van monochromatiese ontwerp

Stap 2: MATLAB -opstelling

MATLAB -opstelling
MATLAB -opstelling

Om take en funksies vir u roomba te skep, moet u die spesifieke kodes en gereedskapstelle hê wat die roomba -opdragte bevat.

Met aflaai van MATLAB 2016a en verder, skep 'n gids om hierdie robotlêers te bevat en plaas die volgende MATLAB -lêer hieronder in die gids en voer dit uit om die oorblywende nodige roomba -lêers te installeer.

Klik daarna met die rechtermuisknop in die venster Huidige gids, hou u muis oor 'Voeg 'n pad' en klik op 'Huidige gids'. Nou moet 'n pad so opgestel word dat elkeen van hierdie lêers gebruik sal word om die roomba te aktiveer.

Gebruik nou die opdrag hieronder in die opdragvenster om die roomba op te stel:

r = roomba (#).

Die simbool # is die 'nommer' van die gespesifiseerde roomba; As u egter net 'n simulator van die roomba wil hê, tik u eenvoudig die volgende opdrag:

r = roomba (0).

Die simulasie word aanbeveel vir die toets van bewegingspatrone.

As u nuuskierig is oor watter opdragte die roomba kan volg, tik die volgende in die opdragvenster:

doc roomba.

Vir meer besonderhede, besoek die volgende webwerf:

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

Stap 3: Funksie: Beweging

Funksie: beweging
Funksie: beweging
Funksie: beweging
Funksie: beweging

Met betrekking tot beweging, moet die roomba outomaties beweeg vir 'n vasgestelde tyd wat in die insette gegee word. Die doel van die robot se beweging is om behoorlik te reageer wanneer sy sensors (buffers, ligte buffers en kransensors) verander in die teenwoordigheid van verskillende hindernisse. Hierdie deel sou die basis wees vir al die opdragte van die roomba, aangesien meer funksies by die kode later bygevoeg word. 'N Spesifikasie was nodig:

-Om skade te verminder, moet die robot die snelheid verminder tot 'n laer snelheid.

-As 'n krans of muur nader, beweeg die robot in trurat en verander sy hoek, afhangende van die trefpunt

-Na 'n geruime tyd ry, sal die roomba uiteindelik stop en foto's neem van die omliggende omgewing

Let op dat die waardes wat gebruik is in verhouding was tot die simulator; waardes soos die draaihoeke draaisnelhede en vooraf ingestelde robotsensors moet gewysig word wanneer die werklike robot gebruik word om stabiliteit en rekenskap van toerustingfoute te verseker.

Stap 4: Funksie: Beeldverwerking

Funksie: Beeldverwerking
Funksie: Beeldverwerking

Op versoek is ons verplig om die data van 'n beeld (of verskeie beelde) wat deur die robot se kamera ontvang is, aan te pas, waarna ons besluit het om die roomba te laat tel die aantal voorwerpe wat dit in die beeld sien.

Ons het die tegniek gevolg om MATLAB grense te laat trek rondom swart voorwerpe wat kontrasteer met 'n wit agtergrond. Hierdie funksie is egter geneig om probleme in 'n oop gebied te ondervind, aangesien die verskillende vorms en kleure wat deur die kamera waargeneem word, lei tot buitengewoon hoë tellings.

Let daarop dat hierdie funksie nie in die simulator kan werk nie, aangesien daar nie 'n kamera is nie; as dit gepoog word, sal 'n fout voorkom waarin slegs 'n (:,:, 3) matriks verklaar kan word.

Stap 5: Funksie: kartering

Funksie: kartering
Funksie: kartering
Funksie: kartering
Funksie: kartering
Funksie: kartering
Funksie: kartering
Funksie: kartering
Funksie: kartering

'N Bykomende kenmerk wat ons wou hê die robot moes hê, was om sy liggings in kaart te bring, aangesien dit direk met die omgewing in wisselwerking is. Onderstaande kode poog dus om 'n kaart oop te maak en 'n koördinaatstelsel op te stel wat elke plek waarin die robot se buffersensors ingedruk word, uiteensit. Dit was blykbaar die langste gedeelte van die drie dele wat individueel getoets kon word, maar dit was baie eenvoudiger as dit op die finale skrif toegepas is.

Ter wille van die toevoeging van 'n limiet tot die lengte van die funksie se werktyd, is die n <20 limiet op die while lus vir toetsdoeleindes gebruik.

Hou egter in gedagte dat weens die kompleksiteit van die kode, meer foute voorkom, aangesien die kodesegment vir 'n lang tyd loop; Uit vorige toetse blyk dit dat tien hobbels die aantal punte is voordat beduidende foute voorkom.

Stap 6: Saamstelling

Saamstelling
Saamstelling
Saamstelling
Saamstelling
Saamstelling
Saamstelling
Saamstelling
Saamstelling

Aangesien dit alles in 'n enkele lêer geplaas sal word, het ons 'n funksie geskep met elk van die vorige twee stappe as die subfunksies daarvan. 'N Finale konsep is gemaak met die volgende wysiging van die redux -funksie genaamd' recon '. Om verwarring vir MATLAB te voorkom, is die "teller" en "rombplot3" skrifte onderskeidelik hernoem as ingebedde funksies "CountR" en "plotr".

Verskeie veranderinge moes aangebring word in die finale weergawe in teenstelling met die vorige skrifte:

-Die oorsprong sal altyd met 'n rooi sirkel gemerk word

Elke keer as die kamerba van sy bumpers stop, word die ligging met 'n swart sirkel gemerk

Elke keer as die roomba by sy kransensors stop, word die ligging gemerk met 'n blou sirkel

Elke keer as die kamerba die gebied ondersoek, word die ligging met 'n groen sirkel gemerk

-Beelde word aangepas om die boonste deel te laat verwyder weens die tydstempel wat die resultate moontlik kan belemmer

-Grense word nie as 'n voorwerp afgetel nie weens die hoë getalle wat verkry is

-Verskeie veranderlikes is verander, dus om verwarring te voorkom, gebruik die weergawes hierbo as verwysing.

Stap 7: Toets

Toets
Toets

Toetse vir elke individuele komponent was soms taamlik gemeng, daarom is aanpassings aan sekere vooraf ingestelde waardes nodig. Die tematiese agtergrond waarop ons die vermoëns van die robot in 'n geslote gebied wou toets, het bloot bestaan uit 'n witbord wat op 'n baie donkerder vloer gelê is. U kan die voorwerpe rondom die gebied versprei; laat hulle optree as voorwerpe om teen te staan of voorwerpe wat ver van die bewegende gebied van die robot af gestamp word.

Nadat hy sy gereguleerde tyd en basissnelheid bepaal het, het die roomba voldoende bewegingsgedrag getoon deur te stop en terug te keer van elke "krans" of voorwerp waarin dit stamp, sowel as om te vertraag terwyl dit iets in die omgewing opspoor. By die bereiking van die verlangde afstand van drie meter, sou die robot voortgaan om die gebied te stop en te evalueer, foto's van elke gebied van 45 grade te neem en verder te gaan as die tyd dit toelaat. Sy beurte was egter groter as wat versoek is, wat beteken dat die koördinaatdata verdoesel sou word.

Elke keer as dit stop, is 'n nuwe punt in die benaderde gebied van sy posisie op die koördinaatstelsel geplaas; daar word egter opgemerk dat die aanvanklike rigting waarin die roomba begin, 'n deurslaggewende rol speel in die ontwerp van die kaart. As 'n kompasfunksie geïmplementeer kon word, sou dit as 'n belangrike deel van die kaartontwerp gebruik gewees het.

Die werklike tyd wat die funksie neem om volledig te werk, is altyd hoër as die verlangde tyd, wat logies is, aangesien dit nie in die middel van een van die herstelperiodes kan stop nie. Ongelukkig het hierdie weergawe van beeldtelling wel probleme, veral op gebiede wat meestal monochromaties of helder is; Omdat dit probeer om tussen twee skakerings te onderskei, is dit geneig om voorwerpe waar te neem wat nie die gewenste is nie, waarneem dit altyd tot ongelooflik hoë getalle.

Stap 8: Gevolgtrekking

Afsluiting
Afsluiting

Alhoewel hierdie taak 'n baie avontuurlike en kreatiewe stuk werk was wat vreugde verskaf het, kon ek uit my persoonlike waarnemings 'n groot aantal foute sien wat problematies kan wees, beide in die kode en die gedrag van die robot.

Die beperking van die gebruik van die spesifikasie van tyd in die while -lus veroorsaak dat die totale tyd langer is as wat verlang word; die proses van die panoramategniek en beeldverwerking kan in werklikheid langer neem as dit deur 'n stadige rekenaar bestuur word of nie vooraf gebruik word nie. Boonop het die roomba wat in ons aanbieding gebruik is, 'n groot aantal foute gehad, veral in beweging, in vergelyking met die simulator. Die robot wat gebruik is, het ongelukkig 'n neiging gehad om effens na links te buig terwyl dit reguit gery het en groter draaie gemaak het as wat verlang is. Om hierdie rede en vir baie ander word dit sterk aanbeveel dat, ten einde vir hierdie foute te vergoed, veranderinge aangebring moet word vir die draaipunte.

Tog is dit 'n lang, maar intellektueel stimulerende projek wat as 'n interessante leerervaring gedien het vir die toepassing van kodes en opdragte om die gedrag van 'n werklike robot direk te beïnvloed.

Aanbeveel: