Kazalo:
- 1. korak: Inicializacija in senzorji
- 2. korak: Pridobivanje podatkov
- 3. korak: zaključna misija
- 4. korak: Zaključek
Video: Roomba Explorer: 4 koraki
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:05
Ta projekt bo z uporabo MATLAB -a in iRobotovega robota Create2 raziskal različna področja neznane lokacije. Na robotu smo uporabili senzorje za lažje manevriranje po nevarnem terenu. S pridobljenimi fotografijami in video posnetki iz priloženega Raspberry Pi smo lahko določili ovire, s katerimi se bo Robot soočil, in bodo razvrščene.
Deli in materiali
Za ta projekt boste potrebovali
-Računalnik
-najnovejša različica programa MATLAB (za ta projekt je bil uporabljen MATLAB R2018b)
- roombaInstall toolbox
-iRobotov robot Create2
-Raspberry Pi s kamero
1. korak: Inicializacija in senzorji
Pred začetkom programiranja smo prenesli orodno zbirko roombaInstall, ki je omogočala dostop do različnih komponent robota.
Sprva smo ustvarili grafični vmesnik za inicializacijo katerega koli robota. Če želite to narediti, morate kot vnos vnesti številko robota. To bo omogočilo dostop za izvajanje našega programa do robota. Delali smo na tem, da bi Robot manevriral po številnih terenih, na katere bi naletel. Uvedli smo senzorje Cliff, Light Bump Sensors in Physical Bump Sensors, tako da smo z njihovimi izhodi pognali robota, da bi spremenil njegovo hitrost in / ali smer. Ko kateri koli od šestih senzorjev svetlobnih udarcev zazna predmet, se njegova vrednost zmanjša, zaradi česar se hitrost robota zmanjša, da se prepreči trk pri polni hitrosti. Ko robot končno trči v oviro, bodo senzorji fizičnega udarca poročali o vrednosti, večji od nič; zaradi tega se bo robot ustavil, zato ne bo več trkov in več funkcij je mogoče uresničiti. Za Cliff Sensors bodo prebrali svetlost območja okoli sebe. Če je vrednost večja od 2800, smo ugotovili, da bo robot na stabilnih tleh in varen. Če pa je vrednost manjša od 800, bodo senzorji pečine zaznali pečino in se takoj ustavili, da ne bi padli. Ugotovljeno je bilo, da vsaka vmesna vrednost predstavlja vodo in bo povzročila, da bo robot prenehal delovati. Z uporabo zgornjih senzorjev se hitrost robota spremeni, kar nam omogoča, da bolje ugotovimo, ali obstaja nevarnost.
Spodaj je koda (iz MATLAB R2018b)
%% Inicializacija
dlgPrompts = {'Število Roombe'};
dlgTitle = 'Izberite svojo Roombo';
dlgDefaults = {''};
opts. Resize = 'vklopljeno';
dlgout = inputdlg (dlgPrompts, dlgTitle, 1, dlgDefaults, opts) % Ustvari okno, ki uporabnika pozove, da vnese svojo številko roombe
n = str2double (dlgout {1});
r = roomba (n); % Inicializira uporabniško določeno Roombo %% določitev hitrosti iz senzorjev svetlobe, medtem ko je true s = r.getLightBumpers; % dobite senzorje lahkih udarcev
lbumpout_1 = izvlečno polje (s, 'levo'); % vzame številske vrednosti senzorjev in jih naredi bolj uporabne lbumpout_2 = extrafield (s, 'leftFront');
lbumpout_3 = izvlečno polje (s, 'leftCenter');
lbumpout_4 = izvlečno polje (s, 'rightCenter');
lbumpout_5 = izvlečno polje (s, 'desno spredaj');
lbumpout_6 = izvlečno polje (s, 'desno');
lbout = [lbumpout_1, lbumpout_2, lbumpout_3, lbumpout_4, lbumpout_5, lbumpout_6] % pretvori vrednosti v matriko
sLbump = sort (lbout); %razvrsti matriko na najnižjo vrednost
lowLbump = sLbump (1); hitrost = 0,05+(lowLbump)*. 005 %z uporabo najnižje vrednosti, ki predstavlja bližnje ovire, za določitev hitrosti, večjo hitrost, ko nič ne zazna
r.setDriveVelocity (hitrost, hitrost)
konec
% Fizični odbijači
b = r.getBumpers; %Izhod true, false
bsen_1 = izvlečno polje (b, 'levo')
bsen_2 = izvlečno polje (b, 'desno')
bsen_3 = izvlečno polje (b, 'spredaj')
bsen_4 = izvlečno polje (b, 'leftWheelDrop')
bsen_5 = izvlečno polje (b, 'rightWheelDrop')
udarci = [bsen_1, bsen_2, bsen_3, bsen_4, bsen_5] tbump = vsota (udarci)
če je tbump> 0 r.setDriveVelocity (0, 0)
konec
% Senzorji pečine
c = r.getCliffSensors %% 2800 varno, drugače voda
csen_1 = izvlečno polje (c, 'levo')
csen_2 = izvlečno polje (c, 'desno')
csen_3 = izvlečno polje (c, 'leftFront')
csen_4 = izvlečno polje (c, 'rightFront')
pečine = [csen_1, csen_2, csen_3, csen_4]
ordcliff = razvrsti (pečine)
če je ordcliff (1) <2750
r.setDriveVelocity (0, 0)
če je pečina <800
disp 'cliff'
drugače
disp 'voda'
konec
r. TurnAngle (45)
konec
2. korak: Pridobivanje podatkov
Ko se sprožijo fizični senzorji udarcev, bo Robot na krovu vgradil Raspberry Pi, da bo fotografiral oviro. Po fotografiranju in prepoznavanju besedila, če je na sliki besedilo, bo Robot ugotovil, kaj je ovira in kaj pove.
img = r.getImage; imshow (img);
imwrite (img, 'imgfromcamera.jpg')
photo = imread ('imgfromcamera.jpg')
ocrResults = ocr (fotografija)
priznanText = ocrResults. Text;
slika;
imshow (fotografija) besedilo (220, 0, prepoznanoText, 'Barva ozadja', [1 1 1]);
3. korak: zaključna misija
Ko robot ugotovi, da je ovira DOMA, bo dokončal svoje poslanstvo in ostal doma. Po končani misiji bo Robot po e-pošti poslal opozorilo, da se je vrnil domov, in poslal slike, ki jih je vzel med potovanjem.
% Pošiljanje e-pošte
setpref ('Internet', 'SMTP_Server', 'smtp.gmail.com');
setpref ('Internet', 'E_mail', '[email protected]'); % poštnega računa za pošiljanje iz setpref ('Internet', 'SMTP_Username', 'enter e -mail pošiljatelja'); % uporabnikov pošiljateljev setpref ('Internet', 'SMTP_Password', 'enter geslo pošiljatelja'); % Geslo pošiljatelja
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 ('Vnesite prejeto e -pošto', 'Roomba', 'Roomba se je vrnila domov !!', 'imgfromcamera.jpg') % e -poštni račun za pošiljanje
Robot je nato končan.
4. korak: Zaključek
Vključeni program MATLAB je ločen od celotnega skripta, ki je bil uporabljen z robotom. V končnem osnutku vse kode, razen koraka inicializacije, vstavite v zanko while, da se prepričate, da odbijači nenehno delujejo. Ta program lahko uredite tako, da ustreza potrebam uporabnika. Prikazana je konfiguracija našega robota.
*Opomnik: Ne pozabite, da je orodje roombaInstall potrebno za interakcijo MATLAB -a z robotom in vgrajenim Raspberry Pi.
Priporočena:
Mars Roomba Project UTK: 4 koraki
Mars Roomba Project UTK: OPOZORILO: TO BO DELOVALO SAMO, ČE JE ROOMBA NA VSAK POSEBEN NAČIN NASTAVLJENA, TO NAVODILO JE USTVARIL IN NAMENUJAL UPORABLJATI UNIVERZA TENENZENCEV UČENCEV IN FACULTY To kodo uporabite za to napisano in s
Bližnjice na tipkovnici za Internet Explorer !!: 4 koraki
Bližnjice na tipkovnici za Internet Explorer !!: Ta navodila vam bodo pokazala nekaj uporabnih bližnjic na tipkovnici za Internet Explorer Prosim, naročite se na moj kanal Hvala
Roomba, ki pomaga astronavtom: 4 koraki
Roomba, ki pomaga astronavtom: Ta projekt je narejen z uporabo Raspberry Pi 3 na iRobot Create Version 2. MATLAB se uporablja za programiranje robota, da sledi posebnim navodilom s svojimi senzorji in kamero. Senzorji in kamere se uporabljajo za izvajanje posebnih ta
Roomba Scout Explorer: 8 korakov
Roomba Scout Explorer: Kot eden najbolj pričakovanih in močno raziskanih ameriških projektov so projekti Mars roverja postali človeški dosežki v vedno napredujoči proizvodnji visokotehnoloških avtonomnih sistemov z edinim namenom raziskovanja in
Localino sledi Roomba IRobot, preslika okolje in omogoča nadzor .: 4 koraki
Localino sledi Roombi IRobot, zemljevidi okolja in omogočajo nadzor. Ta priročnik razlaga postopek, kako slediti in upravljati vaš Roomba iRobot v zaprtih prostorih s sistemom Localino Indoor Localization System, mostom WiFi-UART in aplikacijo za računalnik. Podrobnosti o razlagi tega navodila, ki pojasnjujejo nadzor HIL