Obsah:
Video: Roomba s MATLABOM: 4 kroky (s obrázkami)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 12:01
Tento projekt využíva program MATLAB a programovateľný robot iRobot Create2. Tým, že testujeme naše znalosti o MATLABe, sme schopní naprogramovať Create2 na interpretáciu obrázkov a detekciu signálov. Funkčnosť robota závisí predovšetkým od mobilnej aplikácie MATLAB a kamerového modulu Raspberry Pi.
Krok 1: Diely a materiály
1. iRobot Create, verzia 2
- Toto je programovateľný robot, ktorý vyzerá ako Roomba. Uvedomte si, že tento produkt od iRobot nie je vákuum. Je určený na vlastné programovanie užívateľom.
2. MATLAB 2017a
- Väčšina starších verzií bude kompatibilná s kódom, ktorý sme použili nižšie. MATLAB identifikuje príkaz, ktorý nie je kompatibilný s vašou verziou, a navrhne najvhodnejší príkaz.
3. Raspberry Pi 3 Model B, verzia 1.2
- Skontrolujte, či je Raspberry Pi kompatibilný s vašim iRobotom. Ďalšiu pomoc nájdete na tomto odkaze: https://www.irobotweb.com/~/media/MainSite/PDFs/A… Tento návod predpokladá, že pracujete s predprogramovaným Raspberry Pi. Uvedomte si, že na to, aby nasledujúce kroky fungovali, budete musieť pracovať s predprogramovaným Pi. Použitie predprogramovaného Pi vám umožní vykonať všetky vaše kódovania iba v MATLABe.
4. Kamerový modul V2 (pre Raspberry Pi)
- Možno budete prekvapení; napriek svojej veľkosti je modul kamery Raspberry Pi veľmi dobrej kvality. Je to najlacnejšia a najkompatibilnejšia možnosť pre tento projekt.
Voliteľné: stojan s 3D tlačou. Používa sa na stabilizáciu fotoaparátu. Nemá to vplyv na funkčnosť robota, ale pomôže vám pri kódovaní, ak chcete použiť obrazové údaje na rozpoznávanie farieb a/alebo objektov.
Krok 2: Konfigurácia
1. Pripojenie Raspberry Pi a modulu kamery (hardvér)
- Na napájanie Raspberry Pi budete potrebovať mikro USB konektor na mužskom konci zapojený do ženského napájacieho portu na mikrokontroléri. Voliteľné: Na zaistenie toho, aby napätie nepresiahlo 5 V, je možné použiť regulátor napätia. Po napájaní Raspberry Pi ho môžete pripojiť k svojmu robotovi spustením konektora USB a zo základnej dosky do portu USB A na mikrokontroléri.
- Po pripojení Pi k robotu Roomba je kamera pripravená na inštaláciu. Modul fotoaparátu bude oveľa menší, ako by ste očakávali. Objektív je pripevnený k snímaču a z fotoaparátu siaha biela páska. NEODSTRAŇUJTE ani netrhajte stuhu! Toto je kábel, ktorý potrebujete na pripojenie k Raspberry Pi. Najprv podržte koniec pásky a nájdite strieborné konektory a modrý kábel. Tieto sú na opačných stranách. Potom nájdite medzeru medzi ethernetovým a HDMI portom na vašom Raspberry Pi. Všimnite si, že je zakrytý malým bielym zámkom. Pomaly nadvihnite zámok, ale nevyberajte ho zo zásuvky, pretože by zacvakol a bol by trvalo poškodený. Akonáhle zdvihnete zámok, uchopte stuhu a priložte strieborné konektory k portu HDMI. Modrá strana bude smerovať k ethernetovému portu. Kým je páska stále odomknutá, pomaly zasúvajte do otvoru. Do slotu ho nemusíte nasilu tlačiť. Po vložení zatlačte zámok späť nadol. Ak je váš fotoaparát správne zaistený, mali by ste byť schopní (jemne) potiahnuť za stuhu a cítiť napätie. Stuha by nemala byť voľná. Po pripojení fotoaparátu k počítaču Pi si môžete všimnúť, aký je voľný. Preto sme na stabilizáciu použili 3D tlačený držiak. Je na vás, aby ste sa rozhodli, aké materiály by ste chceli použiť, aby bol váš fotoaparát v pokoji pri snímaní vysokej kvality.
2. Inštalácia správnych súborov a pripojenie robota Roomba k počítaču Po nakonfigurovaní všetkého hardvéru môžete teraz prejsť k inštalácii programu MATLAB spolu s priradenými súbormi m, ktoré vám umožnia komunikovať s robotom. Ak to chcete urobiť, otvorte MATLAB a vytvorte nový priečinok, aby boli všetky súvisiace súbory pohromade. Pomocou tohto skriptu nainštalujte/aktualizujte požadované súbory:
- Všetky súbory by sa teraz mali zobraziť vo vašom vytvorenom priečinku. Kliknite pravým tlačidlom myši v okne Aktuálny priečinok a zvoľte „Pridať na cestu“, aby ste túto cestu pridali do zoznamu adresárov, kde MATLAB hľadá súbory. Zaistite, aby všetky vaše súbory boli na správnej ceste.
3. Akonáhle sú súbory nainštalované, môžete sa začať pripájať k svojmu robotovi. Začnite tým, že zapnete robota a potom ho tvrdo resetujete bezprostredne po štarte (nezabudnite robota tvrdo resetovať vždy pred a po použití). Za druhé, pripojte robota aj prenosného počítača k rovnakej sieti Wi -Fi. Potom budeme hovoriť s predprogramovaným Raspberry Pi cez MATLAB zavolaním Roomba pomocou jej krstného mena a funkcie roomba. Pripojil by som sa napríklad k robotu 28 pomocou nasledujúceho riadku: R = roomba (28).
- Všimnite si, ako som objekt priradil k premennej R. Teraz môžem z inštalačného súboru pristupovať k pridruženým funkciám Roomba tak, že s premennou R budem zaobchádzať ako so štruktúrou.
- R.turnAngle (90) Ak všetko išlo dobre, mal by hrať hudobný tón potvrdzujúci spojenie.
Krok 3: Logika MATLABu
Dokument PDF v spodnej časti tohto kroku je podrobný logický vývojový diagram pre náš proces kódovania v MATLABe. Aktivovali sme snímače útesu, svetla a svetelných nárazov, aby robot mohol s nami komunikovať, keď detekuje predmet v jeho bezprostrednej blízkosti. Napríklad, keď sa robot pohybuje dopredu, jeho svetelné senzory skenujú objekty v dráhe podľa vektora, v ktorom sa pohybuje. Pre robota sme vybrali prah vzdialenosti, aby keď sa priblíži k objektu, obrátil sa namiesto toho, aby s ním narazil. Náš robot je tiež nakonfigurovaný pomocou služby Twitter, ktorú sme špecifikovali v procese kódovania (to sa zobrazí nižšie).
Na zvýšenie zážitku sme na našich mobilných zariadeniach použili aplikáciu MATLAB, aby sme mohli ovládať pohyby robota iba nakláňaním telefónov. Toto je voliteľná činnosť, pretože určite môžete nechať robota pohybovať sa pomocou príkazu moveDistance v segmente kódu MATLAB. Majte na pamäti, že ak chcete, aby bol váš cieľ presný, uprednostňujte ovládanie robota pomocou príkazov MATLAB. Ak chcete nasmerovať svojho robota tak, aby kamera nasnímala obrázok na konkrétnom mieste, môže byť lepšie kódovať pohyby robota v programe MATLAB. Aj keď je zábava, používanie aplikácie MATLAB na ovládanie robota nie je žiaduce kvôli presnosti.
Kód prikazuje robotovi Roomba vykonať základné nastavenie a potom pokračovať nepretržitou slučkou. Na začiatku prenosný počítač nastaví prepojenie s robotom Roomba pomocou príkazu Roomba (). Tiež nastaví twitterové pripojenie pomocou príkazu webwrite () v MATLABe. Smyčka obsahuje päť hlavných logických tokov v závislosti od prostredia obklopujúceho robot Roomba. Roomba najskôr skontroluje prekážky a v prípade, že zistí, že im prekáža, sa upraví dozadu. Vložená do tejto slučky je druhá cesta, ktorá používateľov upozorní, ak bude robot Roomba unesený. Dôležitý nástroj v drsnej marťanskej Warzone. Potom, čo robot Roomba zistí, že je jej poloha bezpečná, vyhľadá mobilné zariadenie, aby určilo jej ďalší pohyb. Ak je mobilné zariadenie naklonené dopredu, vypočíta základnú rýchlosť v závislosti od závažnosti merania nakláňania a potom upraví otáčky jednotlivých kolies podľa stupňa sklonu. Telefón dokáže Roombu pohybovať aj opačne. Neutrálny stav mobilného zariadenia uzatvára posledné dve cesty. Odpočívajúci robot Roomba vyhľadá vlajku mimozemšťana a upozorní na to používateľa.
Nasleduje náš kód (dokončený v programe MATLAB 2017a)
%vstupov: Orientačné údaje zo zariadenia pripojeného k wifi, fotoaparátu
%informácií, údaje senzora
%výstupov: pohyb je riadený zariadením pripojeným k wifi a pohyb
% je bezpečnosť kontrolovaná čítaním údajov senzora. Ak kamera zistí
% mimozemská vlajka, potom Roomba odpovie tweetovaním nepriateľskej vlajky
% bolo spozorované.
%účel: naše zariadenie žije bez akéhokoľvek účelu, okrem ochrany tých, ktorí
% vytvoril, slúži svojmu tvorcovi a robí
% presne to, čo bolo povedané.
%Použitie: v podstate program pobeží sám.
vymazať všetky, zavrieť všetky, clc
%Inicializácia objektov a premenných
r = roomba (28);
m = mobiledev;
%use response = webwrite (názov hostiteľa, údaje)
hostname = 'https://api.thingspeak.com/apps/thingtweet/1/statuses/update';
API = 'SGZCTNQXCWAHRCT5';
tweet = 'RoboCop je funkčný … čaká na velenie';
data = strcat ('api_key =', API, '& status =', tweet);
reponse = webwrite (názov hostiteľa, údaje);
%neustále bežiaca slučka
pričom 1 == 1
%Štruktúry obsahujúce relaventné údaje
o = m.orientácia; %orientácie mobilného zariadenia
light = r.getLightBumpers (); %Hodnoty svetelného nárazníka
a = r.getCliffSensors (); Hodnoty senzora CLiff
bump = r.getBumpers (); %Senzory nárazníka
%skontrolovať nárazníky
ak bump.right == 1 || bump.left == 1 || bump.front == 1
r.moveDistance (-. 2,.2);
%kontrolných svetelných senzorov
elseif svetlo.vľavo> 60 || light.leftFront> 60 || light.leftCenter> 60 || light.right> 60 || light.rightFront> 60 || light.rightCenter> 60
r.moveDistance (-. 2,.2);
%skontrolujte Cliff Sensors
%Signál a upozornenie proti krádeži
elseif a.vľavo <300 && a.right <300 && a.leftFront <300 && a.rightFront <300
r.stop ();
r.beep ();
tweet = 'RoboCop bol zrušený!'
data = strcat ('api_key =', API, '& status =', tweet);
reponse = webwrite (názov hostiteľa, údaje);
%Normálna operácia vyhýbania sa útesu
elseif a.vľavo <300 || a.right <300 || a.vľavo Vpredu <300 || a. vpredu <300
r.moveDistance (-. 2,.2);
%Roomba prešiel kontrolami a teraz bude bežať s normálnou prevádzkou.
%Najprv sa zmeria kotúč zariadenia a stane sa základňou
%rýchlosti, ktorá sa potom použije na výpočet rýchlosti kolesa
%Pohyb vpred
elseif o (3)> = 0 && o (3) <= 60
baseVel = (-. 5/60)*(o (3) -60);
ak o (2)> =-70 && o (2) <0
r.setDriveVelocity (baseVel+(. 3/50)*abs (o (2)), baseVel-(. 3/50)*abs (o (2)));
elseif o (2) = 0
r.setDriveVelocity (baseVel-(. 3/50)*abs (o (2)), baseVel+(. 3/50)*abs (o (2)));
inak r.stop
koniec
%Spätný pohyb
elseif o (3)> 100 && o (3) <150
r.setDriveVelocity (-. 2, -.2)
r.beep ();
r.beep ();
%odpočívajúceho roomba bude hľadať mimozemskú vlajku označenú ako fluorescenčnú
%zeleného kusa papiera
inak
r.stop
img = r.getImage (); %urobte obrázok
prahová hodnota = sivá (obr. (200: 383,:, 2))+. 1; %vypočítať zelenú úroveň
ak je prah> 0,42
tweet = 'Enemy Spotted !!'
data = strcat ('api_key =', API, '& status =', tweet);
reponse = webwrite (názov hostiteľa, údaje);
inak
r.stop
koniec
koniec
koniec
Krok 4: Záver
Pamätajte si, že môžete použiť skript, ktorý sme napísali vyššie, ale môžete ho kedykoľvek zmeniť tak, aby vyhovoval vašim potrebám. Nemusí byť ovládaný vašim telefónom! (Je to však zábavnejšie.) Vyberte si metódu, ktorú chcete na ovládanie svojho robota používať. Jazdite so svojim robotom a užívajte si!
Odporúča:
Roomba Bot the Bulider: 5 krokov (s obrázkami)
Roomba Bot the Bulider: Bot the Builder je roomba, ktorý s " drapákmi " pripevnený na prednej strane bude môcť pohybovať predmetmi. Kód s ním je nastavený tak, aby zaznamenával prvý pohyb pomocou poľa GUI, ktoré môžete ovládať jediným kliknutím myši. Po
Robot Roomba ovládaný prehliadačom s Raspberry Pi Model 3 A+: 6 krokov (s obrázkami)
Robot Roomba ovládaný prehliadačom s Raspberry Pi Model 3 A+: Prehľad Tento návod sa zameria na to, ako dať mŕtvemu robotovi Roomba nový mozog (Raspberry Pi), oči (webová kamera) a spôsob, ako ovládať všetko z webového prehliadača. Existuje veľa hackov Roomba, ktoré umožňujú ovládanie prostredníctvom sériového rozhrania. Nemám
Roomblock: platforma pre výučbu navigácie ROS s robotmi Roomba, Raspberry Pi a RPLIDAR: 9 krokov (s obrázkami)
Roomblock: platforma pre výučbu navigácie ROS s robotmi Roomba, Raspberry Pi a RPLIDAR: Čo je to? &Quot; Roomblock " je platforma robota, ktorá sa skladá z robota Roomba, Raspberry Pi 2, laserového senzora (RPLIDAR) a mobilnej batérie. Montážny rám môžu vyrobiť 3D tlačiarne. Navigačný systém ROS umožňuje vytvoriť mapu miestností a používať
Inšpektor Roomba: 6 krokov (s obrázkami)
Inšpektor Roomba: Väčšina z nás používa roboty iRobot Roomba iba na vysávanie, ale málokto vie, že je to skvelá základňa pre nové robotické projekty. Všetci výrobcovia by mali vyskúšať otvorené rozhranie Roomba (OI), aby zistili, aké ľahké je ovládať tohto robota. V tomto návode budete
ROOMBA poháňaná ARDUINO YUN prostredníctvom aplikácie Wifi od STEFANO DALL'OLIO: 4 kroky (s obrázkami)
ROOMBA poháňaná aplikáciou ARDUINO YUN prostredníctvom aplikácie Wifi od STEFANO DALL'OLIO: S touto príručkou zdieľam kód na pripojenie ARDUINO YUN k robotu Roomba, aby bolo možné ovládať robot Roomba prostredníctvom siete Wi -Fi. Kód a aplikáciu si úplne vytvoril a vyvinul sám Stefano Dall ' Olio. Moja Roomba je Roomba 620, ale rovnaký kód môžete použiť aj pre ostatné Roomb