Sadržaj:
- Korak 1: Inicijalizacija i senzori
- Korak 2: Dobijanje podataka
- Korak 3: Završna misija
- Korak 4: Zaključak
Video: Roomba Explorer: 4 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:07
Korištenjem MATLAB -a i iRobotovog Create2 robota, ovaj će projekt istražiti različita područja nepoznate lokacije. Mi smo upotrijebili senzore na robotu kako bismo lakše upravljali opasnim terenom. Dobivanjem fotografija i video izvoda iz Raspberry Pi -a koji je u privitku uspjeli smo odrediti prepreke s kojima će se Robot suočiti i one će biti klasificirane.
Dijelovi i materijali
Za ovaj projekat trebat će vam
-kompjuter
-najnovija verzija MATLAB -a (za ovaj projekt korištena je MATLAB R2018b)
- roombaInstall toolbox
-iRobotov Create2 robot
-Raspberry Pi sa kamerom
Korak 1: Inicijalizacija i senzori
Prije početka bilo kakvog programiranja, preuzeli smo roombaInstall toolbox, koji je omogućio pristup različitim komponentama robota.
U početku smo stvorili GUI za inicijalizaciju bilo kojeg robota. Da biste to učinili, morate unijeti broj robota kao unos. To će omogućiti pristup pokretanju našeg programa robotu. Radili smo na tome da Robot manevrira kroz mnoge terene na koje bi naišao. Implementirali smo senzore litice, senzore lakog udarca i fizičke senzore udara, koristeći njihove izlaze da spotaknemo robota da promijeni brzinu i smjer. Kada bilo koji od šest senzora svjetlosnog udara detektira objekt, njihova vrijednost će se smanjiti, uzrokujući smanjenje brzine robota kako bi se izbjegao sudar punom brzinom. Kada se Robot konačno sudari s preprekom, senzori za fizičko udaranje će prijaviti vrijednost veću od nule; zbog toga će se robot zaustaviti, tako da neće biti daljnjih sudara i više funkcija se može provesti u djelo. Za Cliff Sensors oni će očitati svjetlinu područja oko njih. Ako je vrijednost veća od 2800, utvrdili smo da će Robot biti na stabilnom tlu i siguran. Ali, ako je vrijednost manja od 800, senzori litice će otkriti liticu, zaustavljajući se odmah kako ne bi otpali. Utvrđeno je da bilo koja vrijednost između predstavlja vodu i uzrokovat će da Robot prestane s djelovanjem. Korištenjem gore navedenih senzora mijenja se brzina robota omogućavajući nam da bolje utvrdimo postoji li opasnost.
Ispod je kôd (sa MATLAB R2018b)
%% Inicijalizacija
dlgPrompts = {'Roomba broj'};
dlgTitle = 'Odaberite svoju Roombu';
dlgDefaults = {''};
opts. Resize = 'uključeno';
dlgout = inputdlg (dlgPrompts, dlgTitle, 1, dlgDefaults, opts) % Kreirajte prozor koji traži od korisnika da unese svoj broj roombe
n = str2double (dlgout {1});
r = roomba (n); % Pokreće Roombu koju je korisnik odredio %% Određivanje brzine iz Light Bump senzora dok je true s = r.getLightBumpers; % dobivaju senzore za lagani udar
lbumpout_1 = ekstrakt polje (s, 'lijevo'); % uzima numeričke vrijednosti senzora i čini ih upotrebljivijim lbumpout_2 = extrafield (s, 'leftFront');
lbumpout_3 = ekstrakt polje (s, 'leftCenter');
lbumpout_4 = extrafield (s, 'rightCenter');
lbumpout_5 = polje ekstrakta (s, 'desno naprijed');
lbumpout_6 = ekstrakt polje (s, 'desno');
lbout = [lbumpout_1, lbumpout_2, lbumpout_3, lbumpout_4, lbumpout_5, lbumpout_6] % pretvara vrijednosti u matricu
sLbump = sort (lbout); %sortira matricu prema najnižoj vrijednosti
lowLbump = sLbump (1); brzina = 0,05+(lowLbump)*. 005 %koristeći najnižu vrijednost, koja predstavlja bliske prepreke, za određivanje brzine, veću brzinu kada ništa nije otkriveno
r.setDriveVelocity (brzina, brzina)
kraj
% Fizički odbojnici
b = r.getBumpers; %Izlaz true, false
bsen_1 = polje ekstrakta (b, 'lijevo')
bsen_2 = polje ekstrakta (b, 'desno')
bsen_3 = polje ekstrakta (b, 'front')
bsen_4 = polje ekstrakta (b, 'leftWheelDrop')
bsen_5 = polje ekstrakta (b, 'rightWheelDrop')
udarci = [bsen_1, bsen_2, bsen_3, bsen_4, bsen_5] tbump = zbir (kvrge)
ako je tbump> 0 r.setDriveVelocity (0, 0)
kraj
% Senzori za litice
c = r.getCliffSensors %% 2800 siguran, inače voda
csen_1 = polje ekstrakta (c, 'lijevo')
csen_2 = polje ekstrakta (c, 'desno')
csen_3 = polje ekstrakta (c, 'leftFront')
csen_4 = polje ekstrakta (c, 'desno naprijed')
litice = [csen_1, csen_2, csen_3, csen_4]
ordcliff = sortiranje (litice)
ako je ordcliff (1) <2750
r.setDriveVelocity (0, 0)
ako je litica <800
disp 'litica'
else
disp 'voda'
kraj
r. TurnAngle (45)
kraj
Korak 2: Dobijanje podataka
Nakon što se aktiviraju fizički senzori udara, Robot će implementirati svoj ugrađeni Raspberry Pi da fotografiše prepreku. Nakon snimanja fotografije, pomoću prepoznavanja teksta, ako na slici ima teksta, Robot će odrediti koja je prepreka, a šta prepreka govori.
img = r.getImage; imshow (img);
imwrite (img, 'imgfromcamera.jpg')
photo = imread ('imgfromcamera.jpg')
ocrRezultati = ocr (fotografija)
priznatText = ocrResults. Text;
figura;
imshow (fotografija) tekst (220, 0, priznatText, 'Pozadinska boja', [1 1 1]);
Korak 3: Završna misija
Kada Robot utvrdi da je prepreka DOMA, dovršit će svoju misiju i ostati kod kuće. Nakon završetka misije, Robot će poslati e-poštom upozorenje da se vratio kući i poslat će slike koje je snimio tokom putovanja.
% Slanje e-pošte
setpref ('Internet', 'SMTP_Server', 'smtp.gmail.com');
setpref ('Internet', 'E_mail', '[email protected]'); % mail naloga za slanje sa setpref ('Internet', 'SMTP_Username', 'enter sender email'); % korisničko ime pošiljatelja setpref ('Internet', 'SMTP_Password', 'enter sender password'); % Lozinka pošiljaoca
rekviziti = 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 ('Unesite primajuću e -poštu', 'Roomba', 'Roomba se vratila kući !!', 'imgfromcamera.jpg') % račun e -pošte za slanje na
Robot je tada gotov.
Korak 4: Zaključak
Uključeni program MATLAB odvojen je od cijele skripte koja je korištena s robotom. U konačnoj verziji, obavezno stavite sav kôd, osim koraka inicijalizacije, u while petlju kako biste bili sigurni da odbojnici neprestano rade. Ovaj program se može uređivati prema potrebama korisnika. Prikazana je konfiguracija našeg robota.
*Podsjetnik: Ne zaboravite da je roombaInstall set alata potreban za interakciju MATLAB -a s robotom i ugrađenim Raspberry Pi -em.
Preporučuje se:
Roomba Bot Bulider: 5 koraka (sa slikama)
Roomba Bot the Bulider: Bot the Builder je roomba koja sa " hvataljkama " pričvršćen sprijeda moći će pomicati objekte. Kôd s njim postavljen je tako da bilježi prvi pokret pomoću grafičkog okvira koji možete kontrolirati samo jednim klikom miša. Afte
Prečice na tastaturi za Internet Explorer !!: 4 koraka
Prečice na tastaturi za Internet Explorer !!: Ova instrukcija će vam pokazati neke korisne prečice na tastaturi za Internet Explorer. Pretplatite se na moj kanal Hvala
Roomba roomba upravljani preglednikom sa Raspberry Pi modelom 3 A+: 6 koraka (sa slikama)
Roomba robotski upravljani Roomba robot s Raspberry Pi modelom 3 A+: PregledOva instrukcija će se fokusirati na to kako mrtvoj Roombi dati novi mozak (Raspberry Pi), oči (web kamera) i način da kontrolirate sve iz web preglednika. Postoji mnogo Roomba hakova koji omogućuju kontrolu putem serijskog sučelja. Ja nemam
Roomba Scout Explorer: 8 koraka
Roomba Scout Explorer: Kao jedan od najočekivanijih i intenzivno istraživanih američkih projekata, projekti Mars rovera postali su ljudska dostignuća u sve naprednijoj proizvodnji visokotehnoloških autonomnih sistema s jedinom svrhom istraživanja i
Bus Pirate 3EEPROM Explorer ploča: 5 koraka
Bus Pirate 3EEPROM Explorer Board: Ako imate jednog od Hack a Day's Bus Pirates, šta radite s njim? Naučite o 1-žičnim, I2C i SPI EEPROM-ovima s istraživačkom pločom 3EEPROM (nazivamo je THR-EE-PROM). EEPROM je vrsta memorijskog čipa koji pohranjuje podatke bez kontinuiranog napajanja