Obsah:

Parkovanie Roomba Room: 6 krokov
Parkovanie Roomba Room: 6 krokov

Video: Parkovanie Roomba Room: 6 krokov

Video: Parkovanie Roomba Room: 6 krokov
Video: Парковка пылесоса iRobot 780 на dock 2024, November
Anonim
Roomba Parking Pal
Roomba Parking Pal

Tento projekt používa iRobot Create programovateľnú roomba, MATLAB r2018a a MATLAB mobile. Pri použití týchto troch médií a našich znalostí kódovania sme naprogramovali iRobot Create tak, aby interpretoval farby a používal palubné snímače na plnenie úloh. Tento projekt závisí od vykonávania týchto úloh od komunikácie Raspberry Pi a MATLAB.

Krok 1: Materiály

Materiály
Materiály
Materiály
Materiály

1. Robot iRobot Create

2. MATLAB r2018a

3. Raspberry Pi

4. Modul kamery

5. Stojan stabilizátora fotoaparátu s 3D potlačou

6. Smartfón s nainštalovaným mobilom MATLAB

7. Notebook/počítač s nainštalovaným MATLABom

Krok 2: Pripojenie

Tento krok je o spojení Raspberry Pi s robotom, v druhom rade o pripojení robota k vášmu počítaču a o prepojení smartfónu s počítačom.

Najjednoduchšou súčasťou tohto procesu je pripojenie Raspberry Pi k vášmu robotovi, pretože Raspberry Pi je namontovaný na vrchu robota. Od robota je kábel, ktorý stačí zapojiť do boku Raspberry Pi.

Ďalším krokom je pripojenie robota k počítaču, aby ste mohli spúšťať príkazy, ktoré robot môže vykonávať. Prvá vec, ktorú musíte urobiť, je pripojiť počítač k bezdrôtovej sieti, ktorú vytvára váš robot Roomba. Teraz sa odporúča použiť ikonu Nastaviť cestu v MATLABe na nastavenie cesty, aby ste mohli používať funkcie v paneli nástrojov Roomba od MATLABu. Zakaždým, keď začínate a končíte používanie s robotom, musíte robota tvrdo resetovať „dvoma prstami“, čo znamená, že na desať sekúnd podržíte tlačidlá doku a bodu, kým svetlo nezhasne, čo znamená uvoľnenie. S týmto tvrdým resetom ste boli úspešní, ak počujete, ako robot hrá v krátkom meradle. Ďalej sa musíte pripojiť k robotovi Roomba pomocou riadku kódu, ako je tento „r = roomba (x)“, kde „x“je číslo určené robotovi, ktorého máte.

Nakoniec si musíte stiahnuť MATLAB mobile na akékoľvek mobilné zariadenie, ktoré budete na tento projekt používať, a táto aplikácia je k dispozícii na zariadeniach Android aj Apple. Po inštalácii aplikácie sa budete musieť prihlásiť pomocou svojich prihlasovacích údajov. Potom musíte pripojiť toto zariadenie k počítaču pomocou karty označenej „Viac“-> potom kliknite na položku „nastavenia“-> potom kliknutím na položku „Pridať počítač“by sa mala otvoriť obrazovka zobrazená na obrázkoch vyššie. Keď to uvidíte, Ďalším krokom, ktorý musíte prejsť, je zapojenie a získanie požadovaných informácií. Po úspešnom pripojení budete môcť na svojom robote ovládať funkcie, ktoré definujete vo svojom počítači v telefóne.

Krok 3: Logické vytvorenie kódu MATLAB na používanie senzorov

Logické vytvorenie kódu MATLAB na používanie senzorov
Logické vytvorenie kódu MATLAB na používanie senzorov

Kód bude najľahšie vytvoriť, keď je väčšina z nich v slučke on while, aby robot Roomba mohol neustále aktualizovať platné hodnoty, na ktoré sa pozerá. Ak dôjde k chybe, MATLAB zobrazí chybu a miesto, kde je v kóde zobrazená, čím je riešenie problémov relatívne jednoduché.

Tento kód, navrhnutý v r2018a MATLAB, využíva štandardné sady nástrojov, sadu nástrojov iRobot Create a mobilnú súpravu nástrojov MATLAB. Roomba použitá v tomto prípade je označená ako 26 a r = roomba (26) musí byť spustený iba raz, aby plne komunikoval s robotom roomba.

Kód:

funkcia parkovací asistent (x), ak x == 1

r = roomba (26) % sa pripája k roomba

kým je to pravda

r.setDriveVelocity (.05,, 05) % nastaví roomba na nižšiu rýchlosť jazdy

bump = r.getBumpers % získava údaje zo senzorov nárazov

cliff = r.getCliffSensors % získava údaje zo senzorov útesu

light = r.getLightBumpers % získava údaje zo senzorov svetelných nárazov

img = r.getImage;% prečíta kameru mimo robota

red_mean = priemer (priemer (img (:,,: 1))) % znamená priemerný počet červených pixelov

green_mean = priemer (priemer (img (:,,: 2))) % znamená priemerné množstvo zelených pixelov

blue_mean = priemer (priemer (img (:,,:, 3))) % číta priemerné množstvo modrých pixelov

ak bump.front == 1 %číta snímače predných nárazov

r.stop %zastaví roomba

msgbox ('Path Obscured!', 'Parking Assistant Message') % zobrazuje správu, že cesta je zakrytá prerušenie % končí slučku

elseif green_mean> 150

r.stop %zastaví roomba

cont = questdlg ('Pokračovať?', 'Cesta dokončená') %zobrazí pole s otázkou, či chcete pokračovať

if cont == 'Yes'

parkassist (1) %reštartuje kód

inak

koniec

break % ukončí slučku

elseif red_mean> 140

r.turnAngle (45) %otočí roombu o 45 stupňov

r.timeStart %spustí počítadlo času

kým je to pravda

r.setDriveVelocity (.05,, 05) %nastavuje rýchlosť robota roomba

time = r.timeGet %priradí čas premennej

bump = r.getBumpers % získava údaje zo senzorov nárazov

cliff = r.getCliffSensors % získava údaje zo senzorov útesu

light = r.getLightBumpers % získava údaje zo senzorov svetelných nárazov

img = r.getImage;% prečíta kameru mimo robota

red_mean = priemer (priemer (img (:,,: 1))) % znamená priemerný počet červených pixelov

green_mean = priemer (priemer (img (:,,: 2))) % znamená priemerné množstvo zelených pixelov

blue_mean = priemer (priemer (img (:,,:, 3))) % číta priemerné množstvo modrých pixelov

ak blue_mean> 120

r.moveDistance (-0,01) % posúva roomba dozadu o nastavenú vzdialenosť piesnePlay (r, 'T400, C, D, E, F, G, A, B, C^', 'true') % hrá stúpajúcu hudobnú škálu

msgbox ('Water Found!', 'Parking Assistant Message') % zobrazuje správu, že bola nájdená voda r.turnAngle (-80) % otočí roomba o 80 stupňov

break % ukončí aktuálnu slučku

elseif svetlo.vpravoVpredu> 25 || light.leftFront> 25 %číta svetelné snímače nárazov

r.moveDistance (-0,01) % presunie robota roomba späť o nastavenú vzdialenosť

r.turnAngle (-35) % otočí roomba o 35 stupňov

break %ukončí aktuálnu slučku

elseif cliff.rightFront <2500 && cliff.leftFront <2500 %číta oba snímače útesu

r.moveDistance (-0,1) % posunie roomba dozadu o nastavenú vzdialenosť

r.turnAngle (-80) %otočí roomba o 80 stupňov

break % ukončí aktuálnu slučku

inokedy>> 3

r.stop %zastaví roomba

contin = questdlg ('Stanica zadarmo, pokračovať?', 'správa parkovacieho asistenta') %sa pýta, či má roomba pokračovať, ak pokračuje == 'Áno'

r.turnAngle (-90) % otočí roomba o 90 stupňov

parkassist (1) %reštartuje funkciu

inak

r.stop % zastaví roomba

koniec

inak

koniec

koniec

elseif cliff.rightFront <2500 && cliff.leftFront <2500 %číta oba snímače útesu

r.moveDistance (-0,1) %posunie roomba dozadu o nastavenú vzdialenosť

r.turnAngle (-90) %otočí roomba o 90 stupňov

elseif cliff.rightFront <2500 %číta pravý snímač útesu

r.turnAngle (-5) %mierne otočí robota Roomba v opačnom smere ako snímač útesu

elseif cliff.leftFront <2500 %číta snímač ľavého útesu

r.turnAngle (5) %mierne otočí robota v opačnom smere ako snímač útesu

inak

koniec

koniec

koniec

Krok 4: Testovanie kódu a robota

Testovanie kódu a robota
Testovanie kódu a robota
Testovanie kódu a robota
Testovanie kódu a robota
Testovanie kódu a robota
Testovanie kódu a robota

Po vývoji kódu bol ďalším krokom test kódu a robota. Pretože je v kóde možné vykonať množstvo rôznych úprav, ako je uhol, ktorým sa robot otáča, rýchlosť, ktorou sa pohybuje, a prahové hodnoty pre každú farbu, najlepší spôsob, ako tieto hodnoty pre svojho robota zistiť, je otestovať zmeníte ich za pochodu. Každý pracovný deň, ktorý sme mali, sme tieto hodnoty neustále menili, pretože niektoré z nich sa spoliehajú na prostredie, v ktorom váš robot pracuje. Najlepším spôsobom, ako sme zistili, bolo umiestniť robot Roomba na cestu, po ktorej chcete, aby nasledovala, a dostatočne vysoká bariéra, aby fotoaparát nerozpoznal farby, ktoré by ste nechceli. Ďalším krokom je nechať ho bežať a ukázať mu požadované farby, keď ho chcete splniť. Pokiaľ vidíte problém, najlepšie je zatlačiť predný nárazník, zastaviť ho a potom zmeniť parameter, s ktorým ste mali problémy.

Krok 5: Rozpoznanie chyby

Pri každom dokončenom projekte vždy existujú zdroje chýb. Pre nás sme zažili chybu s jednoduchým faktom, že robot nie je presný v uhle, v ktorom sa otáča, takže ak mu poviete, aby sa otočil o 45 stupňov, nebude to presné. Ďalším zdrojom chýb pre nás bolo, že niekedy robot zlyhá a vy ho musíte tvrdo resetovať, kým opäť nebude fungovať. Hlavným posledným zdrojom chýb pre nás bolo, že rovnaký kód nebude mať rovnaký vplyv na rôznych robotov, takže s ním budete musieť byť pravdepodobne trpezliví a prispôsobiť sa mu.

Krok 6: Záver

Teraz máte všetky nástroje na hranie si s robotom roomba, čo znamená, že s kódom môžete manipulovať tak, ako chcete, aby ste dosiahli ciele, ktoré si prajete. Toto by mala byť najlepšia časť vášho dňa, takže sa bavte a jazdite bezpečne!

Odporúča: