Sisällysluettelo:

Roomba Parking Pal: 6 vaihetta
Roomba Parking Pal: 6 vaihetta

Video: Roomba Parking Pal: 6 vaihetta

Video: Roomba Parking Pal: 6 vaihetta
Video: Quick start guide to Roomba® 2024, Heinäkuu
Anonim
Roomba Pysäköinti Pal
Roomba Pysäköinti 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. Nämä projektit riippuvat Raspberry Pi- ja MATLAB -kommunikoinnista näiden tehtävien suorittamiseksi.

Vaihe 1: Materiaalit

Materiaalit
Materiaalit
Materiaalit
Materiaalit

1. iRobot Luo robotti

2. MATLAB r2018a

3. Vadelma Pi

4. Kameramoduuli

5. 3-D-painettu kameran vakainjalusta

6. Älypuhelin, johon on asennettu MATLAB -mobiili

7. Kannettava tietokone/tietokone, johon on asennettu MATLAB

Vaihe 2: Yhteys

Tässä vaiheessa Raspberry Pi yhdistetään robottiin, toiseksi robotti yhdistetään tietokoneeseen ja älypuhelin yhdistetään tietokoneeseen.

Helpoin osa tätä prosessia on yhdistää Raspberry Pi robottiisi, koska Raspberry Pi on asennettu robotin yläosaan. Robotissa on johto, joka sinun tarvitsee vain kytkeä Raspberry Pi -laitteen sivulle.

Seuraava vaihe on yhdistää robotti tietokoneeseen, jotta voit suorittaa komentoja robotin suorittamiseksi. Ensimmäinen asia, joka sinun on tehtävä, on liittää tietokoneesi langattomaan verkkoon, jota roomba luo. Nyt on suositeltavaa käyttää polkua Aseta polku MATLABissa polun asettamiseen, jotta voit käyttää MATLABin Roomba -työkalupakin toimintoja. Joka kerta, kun aloitat ja lopetat robotin käytön, sinun on suoritettava "kahden sormen tervehdys" kova nollaus robotille, mikä tarkoittaa, että pidät telakointi- ja kohdepainikkeita painettuna kymmenen sekunnin ajan, kunnes valo himmenee. Olet onnistunut tällä kovalla nollauksella, jos kuulet robotin soivan lyhyen asteikon. Seuraavaksi sinun on muodostettava yhteys roombaan käyttämällä koodiriviä, kuten "r = roomba (x)", jossa "x" on robotillesi määritetty numero.

Lopuksi sinun on ladattava MATLAB mobile mille tahansa mobiililaitteelle, jota käytät tässä projektissa, ja tämä sovellus on saatavilla sekä Android- että Apple -laitteille. Kun sovellus on asennettu, sinun on kirjauduttava sisään tunnuksillasi. Sitten sinun on liitettävä tämä laite tietokoneeseesi käyttämällä "Lisää" -välilehteä -> sitten "asetukset" -> sitten "Lisää tietokone", jolloin esiin tulee yllä olevissa kuvissa näkyvä näyttö. seuraava vaihe, joka sinun on käytävä läpi, on vain sen pyytämien tietojen liittäminen ja chugging.

Vaihe 3: Luo loogisesti MATLAB -koodi antureiden käyttämiseksi

Loogisesti MATLAB -koodin luominen antureita varten
Loogisesti MATLAB -koodin luominen antureita varten

Koodi on helpoin luoda, kun suurin osa siitä on on -loopin sisällä, joten roomba voi päivittää jatkuvasti tarkastamiaan kelvollisia arvoja. Jos tapahtuu virhe, MATLAB näyttää virheen ja sen, missä se näkyy koodissa, mikä tekee vianmäärityksestä suhteellisen helppoa.

Tämä r2018a MATLAB: iin suunniteltu koodi käyttää vakiotyökaluryhmiä, iRobot Create -työkaluryhmää ja MATLAB -mobiilityökalupakettia. Tässä esimerkissä käytetty roomba on merkitty 26: ksi, ja r = roomba (26) täytyy ajaa vain kerran kommunikoidakseen täysin roomban kanssa.

Koodi:

funktio parkassist (x), jos x == 1

r = roomba (26) % muodostaa yhteyden roombaan

vaikka totta

r.setDriveVelocity (.05,.05) % asettaa Roomban hitaammaksi ajonopeudeksi

bump = r.getBumpers % saa tiedot törmäysantureista

cliff = r.getCliffSensors % saa tiedot kallion antureista

light = r.getLightBumpers % saa tiedot valonlyöntianturista

img = r.getImage;% lukee kameran pois robotista

red_mean = keskiarvo (keskiarvo (img (:,:, 1))) % lukee punaisten pikselien keskimääräisen määrän

green_mean = keskiarvo (keskiarvo (img (:,:, 2))) % lukee vihreiden pikselien keskimääräisen määrän

blue_mean = keskiarvo (keskiarvo (img (:,:, 3))) % lukee sinisten pikselien keskimääräisen määrän

jos bump.front == 1 %lukee etupään anturit

r.stop %pysäyttää roomban

msgbox ('Polku peitetty!', 'Pysäköintitutkan viesti') % näyttää viestin, jossa sanotaan, että polku on peitetty tauko % lopettaa silmukan

elseif green_mean> 150

r.stop %pysäyttää roomban

cont = questdlg ('Jatka?', 'Polku suoritettu') %näyttää kysymyskentän, jossa pyydetään jatkamaan

jos jatkuu == 'Kyllä'

parkassist (1) %käynnistää koodin uudelleen

muu

loppuun

tauko % lopettaa silmukan

elseif red_mean> 140

r.turnAngle (45) %kääntää huoneen 45 astetta

r.timeStart %käynnistää aikalaskurin

vaikka totta

r.setDriveVelocity (.05,.05) %asettaa roomban nopeuden

time = r.timeGet %määrittää ajan muuttujalle

bump = r.getBumpers % saa tiedot törmäysantureista

cliff = r.getCliffSensors % saa tiedot kallion antureista

light = r.getLightBumpers % saa tiedot valonlyöntianturista

img = r.getImage;% lukee kameran pois robotista

red_mean = keskiarvo (keskiarvo (img (:,:, 1))) % lukee punaisten pikselien keskimääräisen määrän

green_mean = keskiarvo (keskiarvo (img (:,:, 2))) % lukee vihreiden pikselien keskimääräisen määrän

blue_mean = keskiarvo (keskiarvo (img (:,:, 3))) % lukee sinisten pikselien keskimääräisen määrän

jos blue_mean> 120

r.moveDistance (-0,01) % siirtää roomban taaksepäin tietyn matkan kappaleen Toisto (r, 'T400, C, D, E, F, G, A, B, C^', 'true') % soittaa nousevaa musiikkia

msgbox ('Vesi löytynyt!', 'Pysäköintitutkan viesti') % näyttää viestin, jossa kerrotaan, että vettä on löytynyt. r.turnAngle (-80) % kääntää huoneen 80 astetta

tauko % lopettaa nykyisen silmukan

elseif light.rightFront> 25 || light.leftFront> 25 %lukee valon törmäysanturit

r.moveDistance (-0,01) % siirtää roomban taaksepäin tietyn matkan

r.turnAngle (-35) % kiertää huonetta 35 astetta

tauko %lopettaa nykyisen silmukan

elseif cliff.rightFront <2500 && cliff.leftFront <2500 %lukee molemmat kallioanturit

r.moveDistance (-0,1) % siirtää roomban taaksepäin tietyn matkan

r.turnAngle (-80) %kiertää tilaa 80 astetta

tauko % lopettaa nykyisen silmukan

muu aika> = 3

r.stop %pysäyttää roomban

contin = questdlg ('Station Free, Continue?', 'Parking Assistant Message') %kysyy, pitäisikö roomban jatkaa, jos Contin == 'Kyllä'

r.turnAngle (-90) % kiertää huonetta 90 astetta

parkassist (1) %käynnistää toiminnon uudelleen

muu

r.stop % pysäyttää roomban

loppuun

muu

loppuun

loppuun

elseif cliff.rightFront <2500 && cliff.leftFront <2500 %lukee molemmat kallioanturit

r.moveDistance (-0,1) %siirtää roomban taaksepäin tietyn matkan

r.turnAngle (-90) %kiertää huonetta 90 astetta

elseif cliff.rightFront <2500 %lukee oikean kallioanturin

r.turnAngle (-5) %kääntää roomban hieman kallioanturin vastakkaiseen suuntaan

elseif cliff.leftFront <2500 %lukee vasemman kallion anturin

r.turnAngle (5) %kääntää roomban hieman kallioanturin vastakkaiseen suuntaan

muu

loppuun

loppuun

loppuun

Vaihe 4: Koodin ja robotin testaaminen

Koodin ja robotin testaaminen
Koodin ja robotin testaaminen
Koodin ja robotin testaaminen
Koodin ja robotin testaaminen
Koodin ja robotin testaaminen
Koodin ja robotin testaaminen

Koodin kehittämisen jälkeen seuraava askel oli testata koodi ja robotti. Koska koodissa voidaan tehdä monia erilaisia säätöjä, kuten robotin kääntökulma, nopeus ja kunkin värin kynnysarvot, paras tapa selvittää nämä arvot robotille on testata ne ja muuttuvat edetessäsi. Jokaisen työpäivän aikana muutimme jatkuvasti näitä arvoja, koska jotkut niistä riippuvat robotin toimintaympäristöstä. Paras tapa, jonka löysimme, oli sijoittaa roomba haluamallesi polulle ja saada riittävän korkea este, jotta kamera ei pysty havaitsemaan värejä, joita et halua. Seuraava vaihe on antaa sen toimia ja näyttää sille haluamasi värit, kun haluat sen suorittavan tehtävän. Jos näet ongelman, paras tapa on työntää etupuskuri sisään, pysäyttää se ja muuttaa sitten parametria, jonka kanssa sinulla oli ongelmia.

Vaihe 5: Virheen tunnistaminen

Kun jokainen projekti on valmis, aina löytyy virheitä. Meille tapahtui virhe, koska yksinkertainen tosiasia oli, että robotti ei ole tarkka kulmassa, jolla se kääntyy, joten jos kerrot sen kääntyvän 45 astetta, se ei ole tarkka. Toinen virhelähde meille oli, että joskus robotti toimii väärin, ja sinun on nollattava se ennen kuin se toimii uudelleen. Tärkein viimeinen virhelähde meille oli, että sama koodi ei vaikuta eri robotteihin samalla tavalla, joten sinun on ehkä oltava kärsivällinen sen kanssa ja mukautettava sen mukaan.

Vaihe 6: Johtopäätös

Nyt sinulla on kaikki työkalut huoneesi leikkimiseen, mikä tarkoittaa, että voit manipuloida koodia joka tapauksessa, jos haluat saavuttaa haluamasi tavoitteet. Tämän pitäisi olla päivän paras osa, joten pidä hauskaa ja aja turvallisesti!

Suositeltava: