INHOUDSOPGAWE:
- Stap 1: Toerusting
- Stap 2: MATLAB -opstelling
- Stap 3: Funksie: Beweging
- Stap 4: Funksie: Beeldverwerking
- Stap 5: Funksie: kartering
- Stap 6: Saamstelling
- Stap 7: Toets
- Stap 8: Gevolgtrekking
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:27
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
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
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
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
'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
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
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
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:
Verander jou Roomba in 'n Mars Rover: 5 stappe
Omskep jou Roomba in 'n Mars Rover:
Roomba Explorer: 4 stappe
Roomba Explorer: Deur gebruik te maak van MATLAB en iRobot's Create2 Robot, verken hierdie projek verskillende gebiede van 'n onbekende plek. Ons het die sensors op die robot gebruik om 'n gevaarlike terrein te bestuur. Deur foto's en videofeed van 'n Raspberry Pi te kry wat
Kortpaaie vir Internet Explorer !!: 4 stappe
Sleutelbordkortpaaie vir Internet Explorer !!: Hierdie instruksie sal u 'n paar nuttige kortpaaie vir internet explorer wys. Teken asseblief in op my kanaal Dankie
Van Roomba tot Rover in net 5 stappe !: 5 stappe
Van Roomba tot Rover in net 5 stappe !: Roomba -robotte is 'n prettige en maklike manier om u tone in die wêreld van robotika te dompel. In hierdie instruksies sal ons verduidelik hoe u 'n eenvoudige Roomba kan omskep in 'n beheerbare rover wat sy omgewing gelyktydig ontleed
Bus Pirate 3EEPROM Explorer Board: 5 stappe
Bus Pirate 3EEPROM Explorer Board: wat doen u daarmee as u een van Hack a Day's Bus Pirates het? Leer meer oor 1-draads, I2C en SPI EEPROM's met die 3EEPROM verkennerbord (ons noem dit die THR-EE-PROM). EEPROM is 'n tipe geheue-skyfie wat data stoor sonder 'n deurlopende krag