Obsah:
Video: Roomba Explorer: 4 kroky
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:59
S využitím programu Create2 Robot od MATLAB a iRobot tento projekt preskúma rôzne oblasti neznámeho miesta. Senzory na robote sme použili na pomoc pri manévrovaní s nebezpečným terénom. Získaním fotografií a videa z pripojeného Raspberry Pi sme dokázali určiť prekážky, s ktorými sa robot stretne, a budú klasifikované.
Diely a materiály
Na tento projekt budete potrebovať
-počítač
-západná verzia MATLABu (pre tento projekt bol použitý MATLAB R2018b)
- roombaNainštalujte si súpravu nástrojov
-iRobot Create2 Robot
-Malina Pi s kamerou
Krok 1: Inicializácia a senzory
Pred začatím akéhokoľvek programovania sme si stiahli súbor nástrojov roombaInstall, ktorý umožňoval prístup k rôznym komponentom robota.
Pôvodne sme vytvorili GUI na inicializáciu akéhokoľvek robota. Na to musíte zadať číslo robota ako vstup. To umožní prístup k spusteniu nášho programu na robota. Pracovali sme na tom, aby robot zvládol manévrovanie v mnohých terénoch, s ktorými sa stretne. Implementovali sme snímače útesu, senzory svetelných nárazov a snímače fyzického nárazu tým, že pomocou ich výstupov vypneme robota, aby zmenil jeho rýchlosť alebo smer. Keď ktorýkoľvek zo šiestich senzorov svetelných nárazov detekuje predmet, hodnota, ktorú vydávajú, sa zníži, čo spôsobí zníženie rýchlosti robota, aby sa zabránilo kolízii pri plnej rýchlosti. Keď sa robot konečne zrazí s prekážkou, senzory Physical Bump nahlásia hodnotu väčšiu ako nula; z tohto dôvodu sa robot zastaví, takže nedôjde k ďalším kolíziám a bude možné uviesť do činnosti ďalšie funkcie. Senzory útesu odčítajú jas okolia. Ak je hodnota väčšia ako 2 800, zistili sme, že robot bude na stabilnom povrchu a v bezpečí. Ak je však hodnota nižšia ako 800, senzory útesu rozpoznajú útes a okamžite sa zastavia, aby nespadli. Akákoľvek hodnota medzi nimi bola stanovená ako voda a spôsobí, že robot zastaví svoju činnosť. Použitím vyššie uvedených senzorov sa zmení rýchlosť robota, čo nám umožní lepšie určiť, či existuje nejaké nebezpečenstvo.
Nasleduje kód (z MATLAB R2018b)
%% inicializácia
dlgPrompts = {'Číslo Roomba'};
dlgTitle = 'Vyberte si Roombu';
dlgDefaults = {''};
opts. Resize = 'zapnuté';
dlgout = inputdlg (dlgPrompts, dlgTitle, 1, dlgDefaults, opts) % Vytvoriť okno, ktoré vyzve užívateľa na zadanie čísla roomba
n = str2double (dlgout {1});
r = roomba (n); % Inicializuje používateľom špecifikované Roomba %% Určenie rýchlosti zo senzorov Light Bump, pričom true s = r.getLightBumpers; % získať svetelné snímače nárazov
lbumpout_1 = extrakčné pole (s, 'vľavo'); % preberá číselné hodnoty senzorov a robí ich použiteľnejšími lbumpout_2 = extrakčné pole (s, 'leftFront');
lbumpout_3 = extrakčné pole (s, 'leftCenter');
lbumpout_4 = extractfield (s, 'rightCenter');
lbumpout_5 = extrakčné pole (s, 'rightFront');
lbumpout_6 = extrakčné pole (s, 'vpravo');
lbout = [lbumpout_1, lbumpout_2, lbumpout_3, lbumpout_4, lbumpout_5, lbumpout_6] % prevádza hodnoty do matice
sLbump = sort (lbout); Maticu %zoradenia na najnižšiu hodnotu je možné extrahovať
lowLbump = sLbump (1); rýchlosť =.05+(lowLbump)*. 005 %s použitím najnižšej hodnoty, ktorá predstavuje blízke prekážky, na určenie rýchlosti, vyššia rýchlosť, keď sa nič nezistí
r.setDriveVelocity (rýchlosť, rýchlosť)
koniec
% Fyzických nárazníkov
b = r.getBumpers; %Výstup true, false
bsen_1 = extractfield (b, 'vľavo')
bsen_2 = extractfield (b, 'vpravo')
bsen_3 = extractfield (b, 'predné')
bsen_4 = extractfield (b, 'leftWheelDrop')
bsen_5 = extractfield (b, 'rightWheelDrop')
nerovnosti = [bsen_1, bsen_2, bsen_3, bsen_4, bsen_5] tbump = suma (bum)
ak tbump> 0 r.setDriveVelocity (0, 0)
koniec
% Snímače útesu
c = r.getCliffSensors %% 2 800 bezpečných, inak voda
csen_1 = extractfield (c, 'left')
csen_2 = extractfield (c, 'right')
csen_3 = extractfield (c, 'leftFront')
csen_4 = extractfield (c, 'rightFront')
útesy = [csen_1, csen_2, csen_3, csen_4]
ordcliff = triediť (útesy)
ak ordcliff (1) <2750
r.setDriveVelocity (0, 0)
ak je útes <800
disp 'cliff'
inak
vydať „vodu“
koniec
r. TurnAngle (45)
koniec
Krok 2: Získanie údajov
Potom, čo sa senzory fyzického nárazu vypnú, robot implementuje svoj palubný počítač Raspberry Pi na fotografovanie prekážky. Po nasnímaní fotografie pomocou rozpoznávania textu, ak je na obrázku text, robot určí, čo je prekážkou a čo prekážka hovorí.
img = r.getImage; imshow (img);
imwrite (img, 'imgfromcamera.jpg')
photo = imread ('imgfromcamera.jpg')
ocrResults = ocr (foto)
rozpoznanýText = ocrResults. Text;
obrázok;
imshow (foto) text (220, 0, rozpoznanýText, 'BackgroundColor', [1 1 1]);
Krok 3: Dokončenie misie
Akonáhle robot zistí, že prekážka je DOMA, dokončí svoju misiu a zostane doma. Po dokončení misie robot pošle e-mailové upozornenie, že sa vrátil domov, a pošle obrázky, ktoré urobil počas cesty.
% Odosielanie e-mailov
setpref ('Internet', 'SMTP_Server', 'smtp.gmail.com');
setpref ('Internet', 'E_mail', '[email protected]'); % poštový účet na odoslanie zo setpref ('Internet', 'SMTP_Username', 'zadajte e -mail odosielateľa'); % odosielateľov užívateľské meno setpref ('Internet', 'SMTP_Password', 'zadajte heslo odosielateľa'); % Heslo odosielateľa
props = java.lang. System.getProperties; props.setProperty ('mail.smtp.auth', 'true'); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.port', '465');
sendmail ('Zadajte príjem e -mailu', 'Roomba', 'Roomba sa vrátil domov !!', 'imgfromcamera.jpg') % poštový účet na odoslanie
Robot je potom hotový.
Krok 4: Záver
Zahrnutý program MATLAB je oddelený od celého skriptu, ktorý bol použitý s robotom. V konečnom návrhu nezabudnite vložiť celý kód, okrem kroku inicializácie, do slučky while, aby ste sa uistili, že nárazníky sú neustále spustené. Tento program je možné upraviť tak, aby vyhovoval potrebám používateľa. Zobrazí sa konfigurácia nášho robota.
*Pripomienka: Nezabudnite, že na to, aby MATLAB interagoval s robotom a integrovaným Raspberry Pi, je potrebná sada nástrojov roombaInstall.
Odporúča:
Projekt Mars Roomba UTK: 4 kroky
Mars Roomba Project UTK: UPOZORNENIE: TOTO BUDE FUNGOVAŤ IBA AK JE ROOMBA NASTAVENÁ V RIADNOM ŠPECIÁLNOM SPÔSOBE, TENTO INŠTRUKTÍV VYTVORILA A URČILA POUŽÍVAŤ UNIVERZITA V TENNESSEE ŠTUDENTOCH A FACULTY Tento kód sa používa na miestne nainštalovanie miestnosti. napísané a
Klávesové skratky pre Internet Explorer !!: 4 kroky
Klávesové skratky pre Internet Explorer !!: Tento návod vám ukáže niekoľko užitočných klávesových skratiek pre prehliadač Internet Explorer. Prihláste sa na odber môjho kanála. Ďakujem
Roomba pomáhajúca astronautom: 4 kroky
Astronaut-Assisting Roomba: Tento projekt je vyrobený s využitím Raspberry Pi 3 na palube iRobot Create Verzia 2. MATLAB sa používa na programovanie robota, aby pomocou senzorov a kamery robil konkrétne pokyny. Senzory a kamery sa používajú na vykonávanie konkrétnych
Roomba Scout Explorer: 8 krokov
Roomba Scout Explorer: Ako jeden z najočakávanejších a najskúsenejších amerických projektov sa projekty Mars rover stali ľudskými úspechmi v neustále napredujúcej výrobe high-tech autonómnych systémov, ktorých jediným účelom je skúmať a integrovať
Bus Pirate 3EEPROM Explorer Board: 5 krokov
Bus Pirate 3EEPROM Explorer Board: Ak máte jedného z Hack a Day's Bus Pirates, čo s ním urobíte? Získajte informácie o 1-vodičových, I2C a SPI EEPROM s doskou prieskumníka 3EEPROM (nazývame to THR-EE-PROM). EEPROM je typ pamäťového čipu, ktorý ukladá údaje bez nepretržitého napájania