Sisällysluettelo:
- Vaihe 1: Osat ja materiaalit
- Vaihe 2: Roomba -tietokantatiedosto
- Vaihe 3: Yhdistäminen Roombaan
- Vaihe 4: Koodi
- Vaihe 5: Johtopäätös
Video: MATLAB -ohjattu Roomba: 5 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
Tämän projektin tavoitteena on hyödyntää MATLABia ja modifioitua iRobot -ohjelmoitavaa robottia. Ryhmämme yhdisti koodaustaitomme luodaksemme MATLAB -komentosarjan, joka käyttää monia iRobotin toimintoja, mukaan lukien kallioanturit, puskurianturit, valoanturit ja kamera. Käytimme näitä anturien ja kameran lukemia tuloina, jolloin voimme luoda tiettyjä haluamiamme lähtöjä käyttämällä MATLAB -kooditoimintoja ja silmukoita. Käytämme myös MATLAB -mobiililaitetta ja gyroskooppia keinona muodostaa yhteys iRobotiin ja hallita sitä.
Vaihe 1: Osat ja materiaalit
MATLAB 2018a
-Vuoden 2018 MATLAB -versio on suosituin versio, lähinnä siksi, että se toimii parhaiten mobiililaitteeseen yhdistettävän koodin kanssa. Suurin osa koodistamme voidaan kuitenkin tulkita useimmissa MATLAB -versioissa.
iRobot Luo laite
-Tämä laite on erikoisvalmisteinen laite, jonka ainoa tarkoitus on ohjelmointi ja koodaus. (Se ei ole todellinen tyhjiö)
Raspberry Pi (kameralla)
- Tämä on halpa tietokonelevy, joka toimii iRobotin aivoina. Se voi olla pieni, mutta pystyy moniin asioihin. Kamera on lisävaruste. Se käyttää myös vadelmapiä saadakseen kaikki toiminnot ja komennot. Yllä oleva kamera on asennettu 3D -tulostetulle telineelle, jonka ovat luoneet Tennessee -yliopiston Engineering Fundamentals -yksiköt
Vaihe 2: Roomba -tietokantatiedosto
On päätiedosto, jota tarvitset käyttääksesi Roomban oikeita toimintoja ja komentoja. Tässä tiedostossa kirjoitat koodia, joka hakee toimintoja helpottaaksesi roomban käyttöä.
Voit ladata tiedoston tästä linkistä tai alla olevasta ladattavasta tiedostosta
ef.engr.utk.edu/ef230-2017-08/projects/roomba-s/setup-roomba-instructable.php
Vaihe 3: Yhdistäminen Roombaan
Ensinnäkin sinun on varmistettava, että robotti on kytketty vadelmapi -kortillesi käyttämällä mikro -USB -pistoketta. Sitten sinun on yhdistettävä tietokoneesi ja robotti oikein samaan WiFi -verkkoon. Kun tämä on tehty, voit käynnistää robotin ja muodostaa yhteyden siihen käyttämällä robottitietokantatiedoston annettua komentoa. (Nollaa robotti aina ennen käyttöä ja sen jälkeen). Käytämme esimerkiksi komentoa "r.roomba (19)" muodostaaksemme yhteyden robottiin ja määritämme muuttujan r laitteellemme. Tämä viittaa tietokantatiedostoon, joka asettaa muuttujamme rakenteeksi, johon voimme viitata milloin tahansa.
Vaihe 4: Koodi
Olemme liittäneet alla koko koodin, mutta tässä on lyhyt katsaus, joka korostaa komentosarjamme tärkeitä elementtejä. Hyödynnämme kaikkia antureita ja kameraa maksimoidaksemme robottimme potentiaalin täysin. Mukana oli myös koodi, jonka avulla voimme yhdistää mobiililaitteen robottiin ja käyttää sen gryoskooppia sen manuaaliseen hallintaan.
Aloitimme yksinkertaisella komennolla "r.setDriveVelocity (.06)", joka asettaa robotin eteenpäin nopeuden.06 m/s. Tämä on vain saada robotti liikkeelle etukäteen
Sitten pääskriptimme käynnistetään while -silmukalla, joka hakee tietyn robotin tiedot luomalla rakenteita, joihin voimme viitata ja joita voidaan käyttää alla olevissa ehdollisissa lausekkeissa, jolloin voimme kertoa robotille suorittavan tietyn komennon rakennetietojen perusteella robotti lukee antureillaan. Asetimme sen niin, että robotti lukee kallioanturinsa ja seuraa mustaa polkua
kun taas tosi % while -silmukka menee, kunnes tapahtuu jotain "vääriä" (tässä tapauksessa se jatkuu loputtomasti) data = r.getCliffSensors; data2 = r.getBumpers; % hakee jatkuvasti tietoja kallioanturin arvoista ja määrittää ne muuttujalle % img = r.getImage; % Ottaa kuvan asennetusta kamerasta % image (img); % Näyttää otetun kuvan % red_mean = keskiarvo (keskiarvo (img (:,:, 1))); % Ottaa vihreän värin keskiarvon, jos data.rightFront <2000 r.turnAngle (-2); % kääntää Roomban noin.2 astetta CW, kun oikean etukalliosensorin arvo laskee alle 2000 r. setDriveVelocity (.05); elseif data.leftFront data.leftFront && 2000> data.rightFront r.moveDistance (.1); % kertoo Roomban jatkavan eteenpäin suunnilleen 0,2 m/s nopeudella, jos molemmat etu- ja vasemman etuanturin arvot ovat alle 2000 % r.turnAngle (0); % käskee Roomban olemaan kääntymättä, jos edellä mainitut ehdot täyttyvät
elseif data2.right == 1 r.moveDistance (-. 12); r.kierroskulma (160); r.setDriveVelocity (.05); elseif data2.vasen == 1 r.moveDistance (-. 2); r. kääntökulma (5); r.setDriveVelocity (.05); elseif data2.front == 1 r.moveDistance (-. 12); r.kierroskulma (160); r.setDriveVelocity (.05);
Tämän while -silmukan jälkeen syötetään toinen while -silmukka, joka laukaisee kameran kautta saadut tiedot. Käytämme if -lausetta tämän while -silmukan sisällä, joka tunnistaa kuvan tietyn ohjelman (alexnet) avulla, ja kun se on tunnistanut kuvan, se laukaisee välittömästi mobiililaitteen kaukosäätimen
anet = alexnet; % Määrittää alexnet -syvän oppimisen muuttujalle, vaikka tosi % Ääretön, kun silmukka img = r.getImage; img = suurikokoinen (img, [227, 227]); etiketti = luokitella (anet, img); jos etiketti == "paperipyyhe" || label == "jääkaappi" label = "vesi"; loppukuva (img); otsikko (char (etiketti)); vedetty;
Vaikka silmukka, jonka avulla voimme ohjata laitetta puhelimellamme, noutaa tiedot puhelimen gyroskoopista ja liitämme sen matriisiin, joka suoratoistaa tiedot jatkuvasti takaisin tietokoneen MATLABiin. Käytämme if -lauseketta, joka lukee matriisin tiedot ja antaa lähdön, joka siirtää laitetta puhelimen gyroskoopin tiettyjen arvojen perusteella. On tärkeää tietää, että käytimme mobiililaitteen suunta -antureita. Edellä mainittu yksi kolmesta matriisista luokitellaan puhelimen suunta -antureiden kunkin elementin mukaan, jotka ovat atsimuutti, nousu ja sivu. Jos lausunnot loivat olosuhteet, jotka ilmoittivat, että sivu ylittää arvot 50 tai laskee alle -50, robotti liikkuu tietyn matkan eteenpäin (positiivinen 50) tai taaksepäin (negatiivinen 50). Ja sama koskee sävelkorkeutta. Jos nousun arvo ylittää arvon 25, kun putoukset ovat alle -25, robotti kääntyy 1 asteen kulmassa (positiivinen 25) tai negatiivisessa 1 asteen kulmassa (negatiivinen 25)
kun todellinen tauko (.1) %.5 sekunnin tauko ennen jokaisen arvon ottamista Controller = iphone. Orientation; % Määrittää matriisin iPhonen suunnan arvoille muuttujalle Azimuthal = Controller (1); % Määrittää matriisin ensimmäisen arvon muuttujalle Pitch = Controller (2); % Määrittää matriisin toisen arvon muuttujalle (kallista eteenpäin ja taaksepäin, kun iPhonea pidetään sivuttain) Side = Controller (3); % Määrittää matriisin kolmannen arvon muuttujalle (kallista vasemmalle ja oikealle, kun iPhonea pidetään sivussa) % Antaa lähdön puhelimen suunnan perusteella, jos Sivu> 130 || Sivu 25 r.moveDistance (-. 1) % Siirtää Roombaa taaksepäin noin.1 metriä, jos iPhone on kallistettu taaksepäin vähintään 25 astetta, jos sivu 25 r.turnAngle (-1) % Kääntää Roomban noin 1 asteen vasemmalle, jos iPhone on kallistettu vasemmalle vähintään 25 astetta, jos nousukulma <-25 r. kääntö
Nämä ovat vain koodin tärkeimpien osien kohokohtia, jotka sisällytimme, jos haluat kopioida ja liittää osan nopeasti eduksesi. Koko koodimme on kuitenkin liitteenä alla tarvittaessa
Vaihe 5: Johtopäätös
Tämä kirjoittamamme koodi on suunniteltu erityisesti robotillemme sekä kokonaisnäkemyksemme projektista. Tavoitteenamme oli käyttää kaikkia MATLAB -koodaustaitojamme hyvin suunnitellun käsikirjoituksen luomiseen, joka hyödyntää suurinta osaa robotin ominaisuuksista. Puhelinohjaimen käyttö ei ole niin vaikeaa kuin luulet, ja toivomme, että koodimme voi auttaa sinua ymmärtämään paremmin iRobot -koodauksen taustalla olevaa konseptia.
Suositeltava:
Roomba Bot the Bulider: 5 vaihetta (kuvilla)
Roomba Bot the Bulider: Bot the Builder on roomba, jossa on " nappaajat " etuosaan kiinnitetty pystyy liikuttamaan esineitä. Sen mukana tuleva koodi on asetettu tallentamaan ensimmäinen liike graafisella käyttöliittymällä, jota voit hallita vain hiiren napsautuksella. Afte
Mars Roomba Project UTK: 4 vaihetta
Mars Roomba -projekti UTK: VASTUUVAPAUSLAUSEKE: TÄMÄ TOIMII VAIN, JOS ROOMBA ON MÄÄRITETTY ERITTÄIN TÄLLÄ, TÄMÄ OHJE on luotu ja sen on tarkoitus käyttää TENNESSEE -YLIOPISTOJEN JA FACULTY -palvelun avulla. Tämän koodin avulla voidaan määrittää kirjoitettu ja s
Roomba Parking Pal: 6 vaihetta
Roomba Parking Pal: Tämä projekti käyttää iRobot Create -ohjelmoitavaa roombaa, MATLAB r2018a ja MATLAB mobile. Käyttämällä näitä kolmea tietovälinettä ja koodaustaitojamme ohjelmoimme iRobot Createin tulkitsemaan värejä ja käyttämään sisäisiä antureita tehtävien suorittamiseen. Tämä
Roomba MATLAB -projekti: 5 vaihetta
Roomba MATLAB -hanke: Nykyinen suunnitelma, jonka NASA on suunnitellut Mars -roverille, on se, että se on tiedonkerääjä ja vaeltaa Marsin ympärillä, kerää näytteitä maaperästä palauttaakseen maan, jotta tutkijat voivat nähdä, onko olemassa aiempia elämänmuotoja planeetta. Lisä
Roomba ja MATLAB: 4 vaihetta (kuvilla)
Roomba ja MATLAB: Tässä projektissa käytetään MATLABia ja iRobot Create2 -ohjelmoitavaa robottia. Laittamalla tietomme MATLABista testiin voimme ohjelmoida Create2: n tulkitsemaan kuvia ja havaitsemaan signaaleja. Robotin toiminnallisuus riippuu lähinnä siitä