Obsah:
Video: Roomba Explorer: 4 kroky
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:22
Pomocí projektu Create2 Robot MATLAB a iRobot tento projekt prozkoumá různé oblasti neznámého místa. Použili jsme senzory na robotu, abychom pomohli manévrovat v nebezpečném terénu. Díky získávání fotografií a videa z připojeného Raspberry Pi jsme byli schopni určit překážky, kterým bude robot čelit, a budou klasifikováni.
Díly a materiály
Pro tento projekt budete potřebovat
-počítač
-newest verze MATLABu (pro tento projekt byl použit MATLAB R2018b)
- roombaNainstalujte si sadu nástrojů
-iRobot Create2 Robot
-Malina Pi s kamerou
Krok 1: Inicializace a senzory
Před zahájením jakéhokoli programování jsme stáhli sadu nástrojů roombaInstall, která umožňovala přístup k různým komponentám robota.
Zpočátku jsme vytvořili GUI pro inicializaci jakéhokoli robota. Chcete -li to provést, zadejte jako vstup číslo robota. To umožní přístup ke spuštění našeho programu na robota Pracovali jsme na tom, aby robot mohl manévrovat v mnoha terénech, na které by narazil. Implementovali jsme senzory Cliff, Light Bump Sensors a Physical Bump Sensors pomocí jejich výstupů k vypnutí robota, aby změnil jeho rychlost nebo směr. Když některý ze šesti senzorů světelných nárazů detekuje předmět, hodnota, kterou vydávají, se sníží, což způsobí snížení rychlosti robota, aby se zabránilo kolizi při plné rychlosti. Když se robot konečně srazí s překážkou, senzory Physical Bump oznámí hodnotu větší než nula; z tohoto důvodu se robot zastaví, takže nedojde k dalším kolizím a bude možné uvést do provozu více funkcí. U snímačů útesu budou číst jas okolí. Pokud je hodnota větší než 2800, zjistili jsme, že robot bude na stabilní zemi a v bezpečí. Pokud je však hodnota nižší než 800, senzory útesu detekují útes a okamžitě se zastaví, aby nespadly. Jakákoli hodnota mezi nimi byla stanovena tak, aby představovala vodu, a způsobí, že robot zastaví svou činnost. Použitím výše uvedených senzorů se změní rychlost robota, což nám umožní lépe určit, zda existuje nějaké nebezpečí.
Níže je kód (z MATLAB R2018b)
%% inicializace
dlgPrompts = {'Číslo Roomba'};
dlgTitle = 'Vyberte si Roombu';
dlgDefaults = {''};
opts. Resize = 'zapnuto';
dlgout = inputdlg (dlgPrompts, dlgTitle, 1, dlgDefaults, opts) % Vytvořit okno, které uživatele vyzve k zadání čísla Roomba
n = str2double (dlgout {1});
r = roomba (n); % Inicializuje uživatelem specifikované Roomba %% Určení rychlosti ze senzorů Light Bump, zatímco true s = r.getLightBumpers; % získat světelné nárazové senzory
lbumpout_1 = extrahovací pole (s, 'vlevo'); % bere číselné hodnoty senzorů a činí je použitelnějšími lbumpout_2 = extrahovatelné pole (s, 'leftFront');
lbumpout_3 = extractfield (s, 'leftCenter');
lbumpout_4 = extractfield (s, 'rightCenter');
lbumpout_5 = extractfield (s, 'rightFront');
lbumpout_6 = extractfield (s, 'vpravo');
lbout = [lbumpout_1, lbumpout_2, lbumpout_3, lbumpout_4, lbumpout_5, lbumpout_6] % převádí hodnoty na matici
sLbump = sort (lbout); Lze extrahovat matici %řazení na nejnižší hodnotu
lowLbump = sLbump (1); rychlost =.05+(lowLbump)*. 005 %s použitím nejnižší hodnoty, která představuje blízké překážky, pro určení rychlosti, vyšší rychlost, když není nic detekováno
r.setDriveVelocity (rychlost, rychlost)
konec
% Fyzických nárazníků
b = r.getBumpers; %Výstup true, false
bsen_1 = extractfield (b, 'vlevo')
bsen_2 = extractfield (b, 'vpravo')
bsen_3 = extractfield (b, 'přední')
bsen_4 = extractfield (b, 'leftWheelDrop')
bsen_5 = extractfield (b, 'rightWheelDrop')
bumps = [bsen_1, bsen_2, bsen_3, bsen_4, bsen_5] tbump = suma (popáleniny)
pokud tbump> 0 r.setDriveVelocity (0, 0)
konec
% Senzory útesu
c = r.getCliffSensors %% 2800 bezpečné, jinak 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 = sort (útesy)
pokud ordcliff (1) <2750
r.setDriveVelocity (0, 0)
pokud útes <800
disp 'útes'
jiný
vydat 'vodu'
konec
r. TurnAngle (45)
konec
Krok 2: Získání dat
Poté, co dojde k aktivaci snímačů fyzického nárazu, robot implementuje svůj palubní počítač Raspberry Pi a pořídí fotografii překážky. Po pořízení fotografie pomocí rozpoznávání textu, pokud je na obrázku text, robot určí, jaká je překážka a co překážka říká.
img = r.getImage; imshow (img);
imwrite (img, 'imgfromcamera.jpg')
photo = imread ('imgfromcamera.jpg')
ocrResults = ocr (foto)
rozpoznánoText = ocrResults. Text;
postava;
text zobrazení (fotografie) (220, 0, rozpoznaný text, 'BackgroundColor', [1 1 1]);
Krok 3: Dokončení mise
Když robot zjistí, že je překážka DOMŮ, dokončí svou misi a zůstane doma. Po dokončení mise robot pošle e-mailové upozornění, že se vrátil domů, a odešle obrázky, které pořídil během své cesty.
% Odesílání e-mailu
setpref ('Internet', 'SMTP_Server', 'smtp.gmail.com');
setpref ('Internet', 'E_mail', '[email protected]'); % poštovní účet k odeslání ze setpref ('Internet', 'SMTP_Uživatelské jméno', 'zadejte e -mail odesílatele'); % odesílatelů uživatelské jméno setpref ('Internet', 'SMTP_Password', 'zadejte heslo odesílatele'); % Heslo odesílatele
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 ('Zadejte přijímací e -mail', 'Roomba', 'Roomba se vrátil domů !!', 'imgfromcamera.jpg') % poštovní účet k odeslání
Robot je poté hotov.
Krok 4: Závěr
Zahrnutý program MATLAB je oddělen od celého skriptu, který byl použit s robotem. V konečném konceptu nezapomeňte vložit celý kód, kromě inicializačního kroku, do cyklu while, abyste se ujistili, že nárazníky jsou neustále spuštěné. Tento program lze upravit tak, aby vyhovoval potřebám uživatele. Zobrazí se konfigurace našeho robota.
*Připomenutí: Nezapomeňte, že pro interakci MATLABu s robotem a integrovaným Raspberry Pi je zapotřebí sada nástrojů roombaInstall.
Doporučuje:
Mars Roomba Project UTK: 4 kroky
Mars Roomba Project UTK: UPOZORNĚNÍ: TOTO BUDE FUNGOVAT POUZE POKUD JE ROOMBA NASTAVENA V PŘÍPADNÉM ZVLÁŠTNÍM ZPŮSOBU, TENTO NÁVOD BYL VYTVOŘEN A URČEN K POUŽITÍ UNIVERZITOU ŽÁKŮ TENNESSEE STUDENTŮ A FACULTY Tento kód slouží k místnímu spuštění místnosti napsáno a
Klávesové zkratky pro Internet Explorer !!: 4 kroky
Klávesové zkratky pro Internet Explorer !!: Tento Instructable vám ukáže několik užitečných klávesových zkratek pro Internet Explorer. Přihlaste se k odběru mého kanálu Děkuji
Astronaut-Assisting Roomba: 4 kroky
Astronaut-Assisting Roomba: Tento projekt je vytvořen s využitím Raspberry Pi 3 na palubě iRobot Create verze 2. MATLAB se používá k programování robota, aby pomocí senzorů a kamery sledoval konkrétní pokyny. Senzory a kamery se používají k provádění konkrétních
Roomba Scout Explorer: 8 kroků
Roomba Scout Explorer: Jako jeden z nejočekávanějších a nejvíce zkoumaných amerických projektů se projekty Mars rover staly lidskými úspěchy ve stále pokročilejší výrobě high-tech autonomních systémů za jediným účelem vyšetřování a inte
Bus Pirate 3EEPROM Explorer Board: 5 kroků
Bus Pirate 3EEPROM Explorer Board: Pokud máte jeden z Hack a Day's Bus Pirates, co s ním uděláte? Zjistěte více o 1-vodičových, I2C a SPI EEPROM s deskou průzkumníka 3EEPROM (říkáme tomu THR-EE-PROM). EEPROM je typ paměťového čipu, který ukládá data bez nepřetržitého napájení