Përmbajtje:
- Hapi 1: Fillimi dhe sensorët
- Hapi 2: Marrja e të dhënave
- Hapi 3: Përfundimi i Misionit
- Hapi 4: Përfundimi
Video: Roomba Explorer: 4 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:20
Duke përdorur MATLAB dhe Robotin iRobot's Create2, ky projekt do të eksplorojë zona të ndryshme të një lokacioni të panjohur. Ne përdorëm sensorët në Robot për të ndihmuar në manovrimin e një terreni të rrezikshëm. Duke marrë fotografi dhe video nga një Raspberry Pi që është bashkangjitur, ne ishim në gjendje të përcaktonim pengesat me të cilat Roboti do të përballet dhe ato do të klasifikohen.
Pjesët dhe materialet
Për këtë projekt, do t'ju duhet
-një kompjuter
-versioni më i ri i MATLAB (MATLAB R2018b u përdor për këtë projekt)
- roombaInstall kutinë e veglave
-Roboti Krijo2 iiRobot
-Mjedër Pi me Kamera
Hapi 1: Fillimi dhe sensorët
Para fillimit të ndonjë programimi, ne shkarkuam kutinë e veglave roombaInstall, e cila lejoi qasje në përbërës të ndryshëm të Robotit.
Fillimisht, ne krijuam një GUI për të inicializuar çdo Robot. Për ta bërë këtë, duhet të shkruani numrin e Robotit si hyrje. Kjo do të lejojë qasjen për të drejtuar programin tonë tek Roboti Ne kemi punuar për ta bërë Robotin të manovrojë nëpër terrenet e shumta me të cilat do të haset. Ne zbatuam Sensorët Cliff, Sensorët e Goditjes së Dritës dhe Sensorët e Goditjes Fizike, duke përdorur daljet e tyre për të udhëtuar Robotin për të ndryshuar shpejtësinë dhe drejtimin e tij. Kur ndonjëri nga gjashtë Sensorët e Goditjes së Dritës zbulon një objekt, vlera që ata prodhojnë do të ulet, duke bërë që shpejtësia e Robotit të ulet për të shmangur një përplasje me shpejtësi të plotë. Kur Roboti përplaset përfundimisht me një pengesë, sensorët e Goditjes Fizike do të raportojnë një vlerë më të madhe se zero; për shkak të kësaj, Roboti do të ndalet, kështu që nuk do të ketë përplasje të mëtejshme dhe më shumë funksione mund të vihen në veprim. Për Sensorët Cliff, ata do të lexojnë shkëlqimin e zonës përreth tyre. Nëse vlera është më e madhe se 2800, ne përcaktuam që Roboti do të ishte në terren të qëndrueshëm dhe të sigurt. Por, Nëse vlera është më pak se 800, Sensorët Cliff do të zbulojnë një shkëmb, duke u ndalur menjëherë që të mos bjerë. Çdo vlerë në mes u përcaktua se përfaqëson ujin dhe do të bëjë që Roboti të ndalojë veprimin e tij. Duke përdorur sensorët e mësipërm, shpejtësia e Robotit ndryshon duke na lejuar të përcaktojmë më mirë nëse ekziston ndonjë rrezik.
Më poshtë është kodi (nga MATLAB R2018b)
%% Fillimi
dlgPrompts = {'Numri Roomba'};
dlgTitle = 'Zgjidh dhomën tënde';
dlgDefaults = {''};
opts. Resize = 'aktiv';
dlgout = inputdlg (dlgPrompts, dlgTitle, 1, dlgDefault, zgjedh) % Krijo dritare që e bën përdoruesin të fusë numrin e dhomës së tij
n = str2double (dlgout {1});
r = roomba (n); % Inicon përdoruesin e specifikuar nga Roomba %% Përcaktimi i shpejtësisë nga Sensorët e përplasjes së dritës ndërsa e vërtetë s = r.getLightBumpers; % marrin sensorë të goditjes së dritës
lbumpout_1 = fushë nxjerrëse (s, 'majtas'); % merr vlerat numerike të sensorëve dhe i bën ata më të përdorshëm lbumpout_2 = ekstrakti (s, 'leftFront');
lbumpout_3 = ekstraktfield (s, 'leftCenter');
lbumpout_4 = ekstraktfield (s, 'rightCenter');
lbumpout_5 = extractfield (s, 'rightFront');
lbumpout_6 = ekstraktfield (s, 'djathtas');
lbout = [lbumpout_1, lbumpout_2, lbumpout_3, lbumpout_4, lbumpout_5, lbumpout_6] % konverton vlerat në matricë
sLbump = renditje (lbout); %rendit matricën në vlerën më të ulët mund të nxirret
lowLbump = sLbump (1); shpejtësia =.05+(lowLbump)*. 005 %duke përdorur vlerën më të ulët, e cila përfaqëson pengesa të afërta, për të përcaktuar shpejtësinë, shpejtësi më të lartë kur asgjë nuk zbulohet
r.setDriveVelocity (shpejtësia, shpejtësia)
fund
% Parakolpët Fizikë
b = r.getBumpers; %Prodhimi i vërtetë, i rremë
bsen_1 = fushë nxjerrëse (b, 'majtas')
bsen_2 = fushë nxjerrëse (b, 'djathtas')
bsen_3 = fushë nxjerrëse (b, 'përpara')
bsen_4 = fushë nxjerrëse (b, 'leftWheelDrop')
bsen_5 = extractfield (b, 'rightWheelDrop')
gunga = [bsen_1, bsen_2, bsen_3, bsen_4, bsen_5] tbump = shuma (bums)
nëse tbump> 0 r.setDriveVelocity (0, 0)
fund
% Sensorë Cliff
c = r.getCliffSensors %% 2800 të sigurt, përndryshe ujë
csen_1 = fushë nxjerrëse (c, 'majtas')
csen_2 = fushë nxjerrëse (c, 'djathtas')
csen_3 = fushë nxjerrëse (c, 'majtas përpara')
csen_4 = fushë nxjerrëse (c, 'djathtas')
shkëmbinjtë = [csen_1, csen_2, csen_3, csen_4]
ordcliff = renditje (shkëmbinj)
nëse ordcliff (1) <2750
r.setDriveVelocity (0, 0)
nëse shkëmbi <800
shpërnda 'shkëmbin'
tjeter
shpërndaj 'ujë'
fund
r. TurnAngle (45)
fund
Hapi 2: Marrja e të dhënave
Pasi të ndizen sensorët e goditjes fizike, Roboti do ta zbatojë atë në bordin e Raspberry Pi për të bërë një fotografi të pengesës. Pas marrjes së një fotografie, duke përdorur njohjen e tekstit nëse ka tekst në foto, Roboti do të përcaktojë se çfarë është pengesa dhe çfarë thotë pengesa.
img = r.getImage; imshow (img);
imwrite (img, 'imgfromcamera.jpg')
foto = imread ('imgfromcamera.jpg')
ocrResults = ocr (foto)
njohurText = ocrResults. Text;
figura;
imshow (foto) tekst (220, 0, teksti i njohur, 'Ngjyra e sfondit', [1 1 1]);
Hapi 3: Përfundimi i Misionit
Kur Roboti përcakton që pengesa është SHTOMPIA, ai do të përfundojë misionin e tij dhe do të qëndrojë në shtëpi. Pas përfundimit të misionit, Roboti do të dërgojë një e-mail paralajmërim se është kthyer në shtëpi dhe do të dërgojë imazhet që ka marrë gjatë udhëtimit të tij.
% Dërgimi i E-mail
setpref ('Internet', 'SMTP_Server', 'smtp.gmail.com');
setpref ('Internet', 'E_mail', '[email protected]'); % llogari postare për t'u dërguar nga setpref ('Internet', 'SMTP_Username', 'fut email dërgues'); % dërgues i emrit të përdoruesit setpref ('Internet', 'SMTP_Password', 'fut fjalëkalimin e dërguesit'); % Fjalëkalimi i dërguesve
props = java.lang. System.getProposies; props.setProperty ('mail.smtp.auth', 'true'); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.port', '465');
sendmail ('Fut email -in pranues', 'Roomba', 'Roomba është kthyer në shtëpi !!', 'imgfromcamera.jpg') % llogari poste për t'i dërguar
Roboti përfundon.
Hapi 4: Përfundimi
Programi MATLAB i përfshirë është i ndarë nga i gjithë skripti që është përdorur me Robotin. Në draftin përfundimtar, sigurohuni që të vendosni të gjithë kodin, përveç hapit të inicializimit, në një cikël të caktuar për t'u siguruar që parakolpët janë duke punuar vazhdimisht. Ky program mund të redaktohet për t'iu përshtatur nevojave të përdoruesit. Konfigurimi i Robotit tonë është treguar.
*Kujtesë: Mos harroni se kutia e veglave roombaInstall është e nevojshme që MATLAB të ndërveprojë me Robotin dhe Raspberry Pi në bord.
Recommended:
Roomba Bot the Bulider: 5 hapa (me fotografi)
Roomba Bot Bulider: Bot Ndërtuesi është një roomba, që me " rrëmbyesit " bashkangjitur në pjesën e përparme do të jetë në gjendje të lëvizë objektet përreth. Kodi me të është vendosur të regjistrojë lëvizjen e parë me një kuti GUI që mund ta kontrolloni me vetëm klikimin e miut. Pas kësaj
Shkurtoret e tastierës për Internet Explorer !!: 4 hapa
Shkurtoret e tastierës për Internet Explorer !!: Ky udhëzues do t'ju tregojë disa shkurtore të dobishme të tastierës për internet explorer Ju lutemi regjistrohuni në kanalin timFaleminderit
Roomba Scout Explorer: 8 hapa
Roomba Scout Explorer: Si një nga projektet më të pritura dhe të hulumtuara shumë amerikane, projektet e roverit Mars janë bërë arritje njerëzore në prodhimin gjithnjë e më të avancuar të sistemeve autonome të teknologjisë së lartë, me të vetmin qëllim të hetimit dhe ndërveprimit
Nga Roomba në Rover në vetëm 5 hapa !: 5 hapa
Nga Roomba në Rover në vetëm 5 hapa !: Robotët Roomba janë një mënyrë argëtuese dhe e lehtë për të zhytur gishtërinjtë tuaj në botën e robotikës. Në këtë Udhëzues, ne do të detajojmë se si të shndërroni një Roomba të thjeshtë në një rover të kontrollueshëm që analizon njëkohësisht rrethinën e tij. Lista e Pjesëve1.) MATLAB2.) Roomb
Bus Pirate 3EEPROM Explorer Board: 5 hapa
Bus Pirate 3EEPROM Explorer Board: Nëse keni një nga Hack a Day's Bus Pirates, çfarë bëni me të? Mësoni rreth 1-wire, I2C dhe SPI EEPROM me bordin e eksploruesit 3EEPROM (e quajmë THR-EE-PROM). EEPROM është një lloj çipi memorie që ruan të dhënat pa një fuqi të vazhdueshme