Talaan ng mga Nilalaman:
- Hakbang 1: Initialization at Sensors
- Hakbang 2: Pagkuha ng Data
- Hakbang 3: Finishing Mission
- Hakbang 4: Konklusyon
Video: Roomba Explorer: 4 na Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:13
Sa pamamagitan ng paggamit ng MATLAB at Create2 Robot ng iRobot, tuklasin ng proyektong ito ang iba't ibang mga lugar ng isang hindi kilalang lokasyon. Ginamit namin ang mga sensor sa Robot upang matulungan ang mapaglalangan ang isang mapanganib na lupain. Sa pamamagitan ng pagkuha ng mga litrato at feed ng video mula sa isang naka-attach na Raspberry Pi, natukoy namin ang mga hadlang na kakaharapin ng Robot, at maiuuri sila.
Mga Bahagi at Kagamitan
Para sa proyektong ito, kakailanganin mo
-isang kompyuter
-pinakabagong bersyon ng MATLAB (ginamit ang MATLAB R2018b para sa proyektong ito)
- roombaInstall toolbox
Gumawa ng Robot2 ng -iRobot
-Raspberry Pi na may Camera
Hakbang 1: Initialization at Sensors
Bago simulan ang anumang programa, na-download namin ang toolba ng roombaInstall toolbox, na pinapayagan ang pag-access sa iba't ibang mga bahagi ng Robot.
Sa una, lumikha kami ng isang GUI upang mapasimulan ang anumang Robot. Upang magawa ito, kailangan mong i-type ang bilang ng Robot bilang isang input. Papayagan nito ang pag-access upang patakbuhin ang aming programa sa Robot Nagtrabaho kami sa pagkuha ng Robot sa maneuver sa pamamagitan ng maraming mga terrain na makakaharap nito. Ipinatupad namin ang Cliff Sensors, Light Bump Sensors, at Physical Bump Sensors, sa pamamagitan ng paggamit ng kanilang mga output upang maglakbay sa Robot upang mabago ang bilis at o direksyon nito. Kapag ang alinman sa anim na Light Bump Sensors ay nakakakita ng isang bagay, ang halagang inilalabas nila ay bababa, na magiging sanhi ng pagbawas ng bilis ng Robot upang maiwasan ang isang ganap na banggaan. Kapag ang Robot ay tuluyang nakabangga sa isang balakid, ang mga Physical Bump sensors ay mag-uulat ng halagang higit sa zero; dahil dito, titigil ang Robot, kaya't wala nang mga karagdagang banggaan at maraming mga pag-andar ang maaaring maisagawa. Para sa Cliff Sensors, babasahin nila ang ningning ng lugar sa kanilang paligid. Kung ang halaga ay higit sa 2800, natukoy namin na ang Robot ay nasa matatag na lupa at ligtas. Ngunit, Kung ang halaga ay mas mababa sa 800, ang Cliff Sensors ay makakakita ng isang bangin, huminto kaagad upang hindi mahulog. Ang anumang halaga sa pagitan ay tinutukoy upang kumatawan sa tubig at magiging sanhi ng Robot na ihinto ang pagkilos nito. Sa pamamagitan ng paggamit ng mga sensor sa itaas, ang bilis ng Robot ay nabago na nagpapahintulot sa amin na mas mahusay na matukoy kung mayroong anumang panganib.
Nasa ibaba ang code (mula sa MATLAB R2018b)
%% Pauna
dlgPrompts = {'Roomba Number'};
dlgTitle = 'Piliin ang Iyong Roomba';
dlgDefaults = {''};
opts. Resize = 'on';
dlgout = inputdlg (dlgPrompts, dlgTitle, 1, dlgDefaults, opts)% Lumikha ng window na mag-uudyok sa gumagamit na i-input ang kanilang roomba number
n = str2double (dlgout {1});
r = roomba (n); % Pinasimulan ang tinukoy ng gumagamit Roomba %% Ang pagpapasiya ng bilis mula sa Light Bump Sensors habang ang tunay na s = r.getLightBumpers; % nakakakuha ng mga light bump sensor
lbumpout_1 = extractfield (s, 'left'); Kinukuha ng% ang mga numerong halaga ng mga sensor at ginagawang mas magagamit ang mga ito lbumpout_2 = extractfield (s, 'leftFront');
lbumpout_3 = extractfield (s, 'leftCenter');
lbumpout_4 = extractfield (s, 'rightCenter');
lbumpout_5 = extractfield (s, 'rightFront');
lbumpout_6 = extractfield (s, 'kanan');
lbout = [lbumpout_1, lbumpout_2, lbumpout_3, lbumpout_4, lbumpout_5, lbumpout_6]% nagko-convert ng mga halaga sa matrix
sLbump = pag-uuri (lbout); % sort matrix sa pinakamababang halaga ay maaaring makuha
lowLbump = sLbump (1); bilis =.05 + (lowLbump) *. 005% gamit ang pinakamababang halaga, na kumakatawan sa mga malapit na hadlang, upang matukoy ang bilis, mas mataas na bilis kapag walang napansin
r.setDriveVelocity (bilis, bilis)
magtapos
% Mga Physical Bumper
b = r.getBumpers; % Output totoo, hindi totoo
bsen_1 = extractfield (b, 'left')
bsen_2 = extractfield (b, 'kanan')
bsen_3 = extractfield (b, 'harap')
bsen_4 = extractfield (b, 'leftWheelDrop')
bsen_5 = extractfield (b, 'rightWheelDrop')
mga bumps = [bsen_1, bsen_2, bsen_3, bsen_4, bsen_5] tbump = sum (bums)
kung tbump> 0 r.setDriveVelocity (0, 0)
magtapos
% Mga Cliff Sensor
c = r.getCliffSensors %% 2800 ligtas, iba pang tubig
csen_1 = extractfield (c, 'kaliwa')
csen_2 = extractfield (c, 'kanan')
csen_3 = extractfield (c, 'leftFront')
csen_4 = extractfield (c, 'rightFront')
cliff = [csen_1, csen_2, csen_3, csen_4]
ordcliff = pag-uri-uriin (mga bangin)
kung ordcliff (1) <2750
r.setDriveVelocity (0, 0)
kung bangin <800
disp 'cliff'
iba pa
disp 'tubig'
magtapos
r. TurnAngle (45)
magtapos
Hakbang 2: Pagkuha ng Data
Matapos mapalampas ang Physical Bump Sensors, ipapatupad ito ng Robot sa board na Raspberry Pi upang kumuha ng litrato ng balakid. Matapos kumuha ng litrato, gamit ang pagkilala sa teksto kung mayroong teksto sa larawan, matutukoy ng Robot kung ano ang balakid at kung ano ang sinasabi ng balakid.
img = r.getImage; imshow (img);
imwrite (img, 'imgfromcamera.jpg')
larawan = imread ('imgfromcamera.jpg')
ocrResult = ocr (larawan)
kinikilalangTeksto = ocrResult. Txt;
pigura;
teksto ng imshow (larawan) (220, 0, kinikilalangTeksto, 'BackgroundColor', [1 1 1]);
Hakbang 3: Finishing Mission
Kapag natukoy ng Robot na ang balakid ay HOME, makukumpleto nito ang misyon at manatili sa bahay. Matapos makumpleto ang misyon, magpapadala ang Robot ng isang alerto sa e-mail na bumalik na ito sa bahay, at magpapadala ito ng mga imaheng kinuha sa paglalakbay nito.
% Nagpapadala ng E-mail
setpref ('Internet', 'SMTP_Server', 'smtp.gmail.com');
setpref ('Internet', 'E_mail', '[email protected]'); % mail account upang maipadala mula sa setpref ('Internet', 'SMTP_Username', 'ipasok ang email ng nagpadala'); % mga nagpadala username setpref ('Internet', 'SMTP_Password', 'ipasok ang nagpadala password'); % Password ng Mga Nagpadala
props = java.lang. System.getProperties; props.setProperty ('mail.smtp.auth', 'totoo'); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.port', '465');
sendmail ('Ipasok ang pagtanggap ng email', 'Roomba', 'Roomba ay bumalik sa bahay !!', 'imgfromcamera.jpg')% mail account upang maipadala sa
Ang Robot ay tapos na.
Hakbang 4: Konklusyon
Ang isinama na programa ng MATLAB ay nahiwalay mula sa buong script na ginamit sa Robot. Sa huling draft, tiyaking ilagay ang lahat ng code, maliban sa hakbang sa pagsisimula, sa isang habang loop upang matiyak na ang mga bumper ay patuloy na tumatakbo. Ang program na ito ay maaaring mai-edit upang umangkop sa mga pangangailangan ng gumagamit. Ipinapakita ang pagsasaayos ng aming Robot.
* Paalala: Huwag kalimutan na ang toolba ng roombaInstall ay kinakailangan para sa MATLAB upang makipag-ugnay sa Robot at sa board Raspberry Pi.
Inirerekumendang:
Ginagawang Ang iyong Roomba Sa isang Mars Rover: 5 Hakbang
Ginagawang Ang iyong Roomba Sa isang Mars Rover:
Mga Shortcut sa Keyboard para sa Internet Explorer !!: 4 Mga Hakbang
Mga Shortcut sa Keyboard para sa Internet Explorer !!: Ipapakita sa iyo ng Makatuturo na ito ang ilang mga kapaki-pakinabang na mga keyboard shortcut para sa internet explorer Mangyaring mag-subscribe sa aking channelThanks
Roomba Scout Explorer: 8 Hakbang
Roomba Scout Explorer: Bilang isa sa pinakahihintay at napagsasaliksik na mga proyektong Amerikano, ang mga proyekto ng Mars rover ay naging mga tagumpay ng tao sa patuloy na pagsusulong na paggawa ng mga high-tech na autonomous system para sa nag-iisang layunin ng pagsisiyasat at inte
Mula sa Roomba hanggang sa Rover sa 5 Mga Hakbang lamang !: 5 Hakbang
Mula sa Roomba to Rover sa 5 Mga Hakbang lamang :: Ang mga robot ng Roomba ay isang masaya at madaling paraan upang isawsaw ang iyong mga daliri sa mundo ng mga robot. Sa Instructable na ito, idedetalye namin kung paano i-convert ang isang simpleng Roomba sa isang kontroladong rover na sabay na pinag-aaralan ang paligid nito. Listahan ng Mga Bahagi1.) MATLAB2.) Roomb
Bus Pirate 3EEPROM Explorer Board: 5 Hakbang
Bus Pirate 3EEPROM Explorer Board: Kung mayroon kang isa sa mga Hack isang Araw na Bus Pirates, ano ang gagawin mo rito? Alamin ang tungkol sa 1-wire, I2C, at SPI EEPROMs na may 3EEPROM explorer board (tinatawag naming THR-EE-PROM). AngEEPROM ay isang uri ng memory chip na nag-iimbak ng data nang walang tuluy-tuloy na lakas