Sisällysluettelo:
Video: Roomba ja MATLAB: 4 vaihetta (kuvilla)
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:03
Tässä projektissa käytetään MATLABia ja iRobot Create2 -ohjelmoitavaa robottia. Laittamalla tietomme MATLABista koetukselle pystymme ohjelmoimaan Create2: n tulkitsemaan kuvia ja havaitsemaan signaaleja. Robotin toiminnallisuus riippuu lähinnä MATLAB -mobiilisovelluksesta ja Raspberry Pi -moduulista.
Vaihe 1: Osat ja materiaalit
1. iRobot Create, versio 2
- Tämä on ohjelmoitava robotti, joka näyttää Roombalta. Huomaa, että tämä iRobotin tuote ei ole tyhjiö. Se on tarkoitettu käyttäjän ohjelmointiin.
2. MATLAB 2017a
- Useimmat vanhemmat versiot ovat yhteensopivia alla käyttämämme koodin kanssa. MATLAB tunnistaa komennon, joka ei ole yhteensopiva käytössäsi olevan version kanssa, ja ehdottaa parhaiten sopivaa komentoa.
3. Raspberry Pi 3 Malli B, versio 1.2
- Tarkista, mikä Raspberry Pi on yhteensopiva iRobotisi kanssa. Katso lisätietoja tästä linkistä: https://www.irobotweb.com/~/media/MainSite/PDFs/A… Tämä ohje antaa olettaa, että työskentelet esiohjelmoidun Raspberry Pi -laitteen kanssa. Huomaa, että sinun on työskenneltävä esiohjelmoidun Pi: n kanssa, jotta seuraavat vaiheet toimivat. Esiohjelmoidun Pi: n avulla voit suorittaa kaikki koodauksesi vain MATLABissa.
4. Kameramoduuli V2 (Raspberry Pi)
- Saatat yllättyä; koostaan huolimatta Raspberry Pi -kameramoduuli on erittäin hyvälaatuinen. Se on halvin ja yhteensopivin vaihtoehto tälle projektille.
Valinnainen: 3D-tulostettu jalusta. Tätä käytetään kameran vakauttamiseen. Se ei vaikuta robotin toimintaan, mutta auttaa koodauksessa, jos haluat käyttää kuvantietoja värien ja/tai objektien tunnistamiseen.
Vaihe 2: Määritykset
1. Raspberry Pi: n ja kameramoduulin liittäminen (laitteisto)
- Raspberry Pi -laitteen virransyöttö edellyttää, että mikro -USB -uros on kytketty mikro -ohjaimen naarasliitäntään. Valinnainen: Jännitesäädintä voidaan käyttää varmistamaan, että jännite ei ylitä 5 V. Kun Raspberry Pi on kytketty virtalähteeseen, voit liittää sen robottiisi suorittamalla urospäät USB a emolevystä mikro -ohjaimen USB -porttiin A.
- Kun Pi on liitetty Roombaan, kamera on valmis asennettavaksi. Kameramoduuli on paljon pienempi kuin odotit. Huomaa, että objektiivi on kiinnitetty kennoon ja valkoinen nauha ulottuu kamerasta. ÄLÄ poista tai revi nauhaa! Tämä on kaapeli, joka tarvitaan liittämään se Raspberry Pi -laitteeseen. Pidä ensin nauhan päästä kiinni ja etsi hopeiset liittimet ja sininen kaapeli. Nämä ovat vastakkaisilla puolilla. Etsi seuraavaksi Raspberry Pi -laitteen ethernet- ja HDMI -porttien välinen paikka. Huomaa, että sitä peittää pieni valkoinen lukko. Nosta lukkoa hitaasti, mutta älä poista sitä aukosta, koska se napsahtaa ja vaurioituu pysyvästi. Kun olet nostanut lukon, tartu nauhaan ja osoita hopeiset liittimet HDMI -porttiin. Sininen puoli on Ethernet -porttia kohti. Liu'uta nauha hitaasti aukkoon, kun se on vielä auki. Sinun ei tarvitse pakottaa sitä paikkaan. Työnnä lukko takaisin paikalleen asettamisen jälkeen. Jos kamera on kiinnitetty kunnolla, sinun pitäisi pystyä vetämään nauhaa (varovasti) ja tuntea jännitystä. Nauha ei saa olla löysä. Kun olet liittänyt kameran Pi -laitteeseen, saatat huomata kuinka löysä se on. Siksi käytimme 3D-tulostettua telinettä sen vakauttamiseen. Voit itse päättää, mitä materiaaleja haluat käyttää pitämään kamerasi paikallaan korkealaatuiseen kuvantamiseen.
2. Oikeiden tiedostojen asentaminen ja Roomban yhdistäminen tietokoneeseen Kun kaikki laitteistot on määritetty, voit nyt siirtyä MATLABin asentamiseen yhdessä niihin liittyvien m-tiedostojen kanssa, joiden avulla voit kommunikoida robotin kanssa. Voit tehdä tämän avaamalla MATLABin ja luomalla uuden kansion, joka pitää kaikki liittyvät tiedostot yhdessä. Käytä tätä komentosarjaa tarvittavien tiedostojen asentamiseen/päivittämiseen:
- Kaikkien tiedostojen pitäisi nyt näkyä luodussa kansiossa. Napsauta hiiren kakkospainikkeella Nykyinen kansio -ikkunaa ja valitse Lisää polkuun lisätäksesi polun hakemistoluetteloon, josta MATLAB etsii tiedostoja. Varmista, että kaikki tiedostot ovat oikealla polulla.
3. Kun tiedostot on asennettu, voit nyt muodostaa yhteyden robottiisi. Aloita käynnistämällä robotti ja nollaamalla se uudelleen heti käynnistyksen jälkeen (älä unohda nollata robotti joka kerta ennen käyttöä ja sen jälkeen). Toiseksi, yhdistä sekä robotti että kannettava tietokone samaan wifi -verkkoon. Tämän jälkeen puhumme esiohjelmoidulle Raspberry Pi -laitteelle MATLABin kautta soittamalla Roomballe sen etunimellä ja toimintohuoneella. Esimerkiksi yhdistäisin robottiin 28 käyttämällä seuraavaa linjaa: R = roomba (28).
- Huomaa, kuinka annoin objektin muuttujalle R. Voin nyt käyttää siihen liittyviä Roomba -toimintoja asennustiedostosta käsittelemällä muuttujaa R kuin rakennetta.
- R.turnAngle (90) Jos kaikki meni hyvin, pitäisi soittaa musiikkiääni, joka vahvistaa yhteyden.
Vaihe 3: MATLAB -logiikka
Tämän vaiheen lopussa oleva PDF -dokumentti on yksityiskohtainen logiikkakaavio MATLABin koodausprosessillemme. Aktivoimme kallion, valon ja valon törmäysanturit, jotta robotti voi kommunikoida kanssamme, kun se havaitsee kohteen sen välittömässä läheisyydessä. Esimerkiksi kun robotti liikkuu eteenpäin, sen valotunnistimet etsivät tiellä olevia esineitä sen vektorin mukaan, jolla se kulkee. Valitsimme robotille etäisyyskynnyksen niin, että kun se lähestyy kohdetta, se kääntyy taaksepäin sen sijaan, että törmäisi siihen. Robotimme on myös konfiguroitu Twitteriin, jonka määritimme koodausprosessissamme (tämä näkyy alla).
Kokemuksen parantamiseksi käytimme MATLAB -sovellusta mobiililaitteissamme, jotta voimme hallita robotin liikkeitä vain kallistamalla puhelimiamme. Tämä on valinnainen toiminto, koska voit varmasti saada robotin liikkumaan käyttämällä MATLAB -koodisegmentin moveDistance -komentoa. Muista, että MATLAB -komentojen käyttäminen robotin ohjaamiseen on suositeltavaa, jos tavoitteesi on tarkka. Jos haluat kohdistaa robotin niin, että kamera ottaa kuvan tietyssä paikassa, saattaa olla parempi koodata robotin liikkeet MATLABissa. Vaikka viihdyttävä, MATLAB -sovelluksen käyttäminen robotin ohjaamiseen ei ole toivottavaa tarkkuuden vuoksi.
Koodi käskee Roomban suorittamaan perusasetukset ja jatka sitten jatkuvan silmukan läpi. Aluksi kannettava tietokone muodostaa linkin Roomban kanssa Roomba () -komennolla. Se myös muodostaa twitter -yhteyden käyttämällä MATLABin webwrite () -komentoa. Silmukka sisältää viisi pääloogista virtaa Roomban ympäristöstä riippuen. Roomba tarkistaa ensin esteiden varalta ja sopeutuu taaksepäin, jos havaitsee sen olevan esteenä. Tähän silmukkaan upotettu on toinen polku, joka varoittaa käyttäjiä, jos Roomba viedään pois. Tärkeä apuohjelma ankarassa Marsin sota -alueella. Kun Roomba on määritellyt asemansa turvalliseksi, se katsoo mobiililaitteen päättävän sen seuraavan liikkeen. Jos mobiililaitetta kallistetaan eteenpäin, se laskee perusnopeuden vierintämittauksen vakavuuden mukaan ja säätää yksittäisten pyörien nopeudet kääntymään nousuasteen mukaan. Puhelin voi myös siirtää Roombaa taaksepäin. Neutraali mobiililaitteen tila sulkee kaksi viimeistä polkua. Lepäävä Roomba etsii ulkomaalaislippua ja varoittaa käyttäjää siitä.
Alla on koodimme (valmistui MATLAB 2017a)
%tuloja: Suuntatiedot wifi -laitteesta, kamerasta
%tietoa, anturitiedot
%lähdöt: liikettä ohjaa wifi -yhdistetty laite ja liike
% tarkistetaan turvallisesti lukemalla anturitiedot. Jos kamera havaitsee
% ulkomaalaislippu, sitten roomba vastaa twiittaamalla vihollisen lipun
% on havaittu.
%tarkoitus: laitteemme elää ilman tarkoitusta paitsi suojella niitä, jotka
% loi sen, se palvelee luojaansa ja tekee
% mitä se kertoi.
Käyttö: olennaisesti ohjelma toimii itsekseen.
tyhjennä kaikki, sulje kaikki, clc
%Objektien ja muuttujien alustaminen
r = roomba (28);
m = mobiledev;
%use response = webwrite (isäntänimi, data)
isäntänimi = 'https://api.thingspeak.com/apps/thingtweet/1/statuses/update';
API = 'SGZCTNQXCWAHRCT5';
tweet = 'RoboCop on toiminnassa… odottaa komentoa';
data = strcat ('api_key =', API, '& status =', tweet);
reponse = webwrite (isäntänimi, data);
%jatkuvasti käynnissä oleva silmukka
kun taas 1 == 1
Relavent -tietoja sisältävät rakenteet
o = m. suunta; %mobiililaitteen suunnasta
valo = r.getLightBumpers (); Kevyet puskurin arvot
a = r.getCliffSensors (); %CLiff -anturin arvot
kolahtaa = r.getBumpers (); %Puskurianturit
%puskureita
jos kolahtaa.oikea == 1 || bump.left == 1 || bump.front == 1
r.moveDistance (-.2,.2);
%tarkistusvaloanturit
muu valo. vasen> 60 || light.leftFront> 60 || light.leftCenter> 60 || valo. oikea> 60 || light.rightFront> 60 || light.rightCenter> 60
r.moveDistance (-.2,.2);
%tarkista Cliff -anturit
Varkaudenestosignaali ja ilmoitus
elseif a.vasen <300 && a. oikea <300 && a.leftFront <300 && a.rightFront <300
r.stop ();
r. piippaus ();
tweet = 'RoboCop on poistettu!'
data = strcat ('api_key =', API, '& status =', tweet);
reponse = webwrite (isäntänimi, data);
%Normaali kallion välttäminen
elseif a. vasen <300 || a. oikein <300 || a. vasen etu <300 || a. oikea etuosa <300
r.moveDistance (-.2,.2);
%Roomba läpäisi tarkastukset ja toimii nyt normaalisti.
%Aluksi mitataan laitteen rulla ja siitä tulee pohja
%nopeus, jota käytetään sitten pyörän nopeuden laskemiseen
%Eteenpäin
elseif o (3)> = 0 && o (3) <= 60
baseVel = (-. 5/60)*(o (3) -60);
jos o (2)> =-70 && o (2) <0
r.setDriveVelocity (baseVel+(. 3/50)*abs (o (2)), baseVel-(. 3/50)*abs (o (2)));
elseif o (2) = 0
r.setDriveVelocity (baseVel-(. 3/50)*abs (o (2)), baseVel+(. 3/50)*abs (o (2)));
muuten r. stop
loppuun
%Taaksepäin suuntautuva liike
elseif o (3)> 100 && o (3) <150
r.setDriveVelocity (-.2, -.2)
r. piippaus ();
r. piippaus ();
%resting roomba etsii fluoresoivana merkittyä ulkomaalaislippua
%vihreä pala paperia
muu
r. stop
img = r.getImage (); %ottaa kuvaa
kynnys = harmaasävy (img (200: 383,:, 2))+.1; %vihreän tason laskeminen
jos kynnys>.42
tweet = 'Vihollinen havaittu !!'
data = strcat ('api_key =', API, '& status =', tweet);
reponse = webwrite (isäntänimi, data);
muu
r. stop
loppuun
loppuun
loppuun
Vaihe 4: Johtopäätös
Muista, että voit käyttää yllä kirjoittamaamme käsikirjoitusta, mutta voit aina muuttaa sitä tarpeidesi mukaan. Sitä ei tarvitse ohjata puhelimellasi! (Se tekee siitä kuitenkin hauskempaa.) Valitse menetelmä, jota haluat käyttää robotin hallintaan. Aja ympäriinsä robotin kanssa ja nauti!
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
MATLAB -ohjattu Roomba: 5 vaihetta
MATLAB -ohjattu Roomba: Tämän projektin tavoitteena on hyödyntää MATLABia ja muokattua iRobot -ohjelmoitavaa robottia. Ryhmämme yhdisti koodaustaitomme luodaksemme MATLAB -komentosarjan, joka käyttää monia iRobotin toimintoja, mukaan lukien kallioanturit, puskurin tunnistimet
Selaimen ohjaama Roomba -robotti Raspberry Pi -mallilla 3 A+: 6 vaihetta (kuvilla)
Selaimen ohjaama Roomba -robotti Raspberry Pi -mallin 3 A+kanssa: Yleiskatsaus Tässä ohjeessa keskitytään siihen, miten kuolleelle Roomballe annetaan uudet aivot (Raspberry Pi), silmät (verkkokamera) ja tapa hallita kaikkea verkkoselaimella. On paljon Roomba -hakkerointeja, jotka mahdollistavat ohjauksen sarjaliitännän kautta. En ole
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ä
Tarkastaja Roomba: 6 vaihetta (kuvilla)
Tarkastaja Roomba: Useimmat meistä käyttävät iRobot Roomba -robotteja vain imurointiin, mutta harvat tietävät, että se on loistava tukikohta uusille robottiprojekteille. Kaikkien valmistajien tulisi kokeilla Roomban avointa käyttöliittymää (OI) selvittääkseen, kuinka helppoa tämän robotin hallinta on. Tässä ohjeessa sinä