Sadržaj:
Video: Roomba s MATLAB -om: 4 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:37
Ovaj projekt koristi MATLAB i iRobot Create2 programabilnog robota. Iskušavajući svoje znanje o MATLAB -u, možemo programirati Create2 za tumačenje slika i otkrivanje signala. Funkcionalnost robota ovisi uglavnom o mobilnoj aplikaciji MATLAB i modulu kamere Raspberry Pi.
Korak 1: Dijelovi i materijali
1. iRobot Create, verzija 2
- Ovo je programabilni robot koji izgleda kao Roomba. Imajte na umu da ovaj proizvod tvrtke iRobot nije vakuum. Namijenjen je prilagođenom programiranju od strane korisnika.
2. MATLAB 2017a
- Većina starijih verzija bit će kompatibilna s donjim kodom. MATLAB će identificirati naredbu koja nije kompatibilna s verzijom koju imate i predložit će najbolju naredbu.
3. Raspberry Pi 3 Model B, verzija 1.2
- Provjerite koji je Raspberry Pi kompatibilan s vašim iRobotom. Za daljnju pomoć pogledajte ovu vezu: https://www.irobotweb.com/~/media/MainSite/PDFs/A… Ova uputa pretpostavlja da radite s unaprijed programiranim Raspberry Pi. Imajte na umu da ćete morati raditi s unaprijed programiranim Pi kako bi sljedeći koraci funkcionirali. Korištenje unaprijed programiranog Pi omogućit će vam da sve svoje kodiranje izvršite samo u MATLAB -u.
4. Modul kamere V2 (za Raspberry Pi)
- Možda ćete se iznenaditi; unatoč svojoj veličini, Raspberry Pi modul kamere je vrlo dobre kvalitete. To je najjeftinija i najkompatibilnija opcija za ovaj projekt.
Opcionalno: postolje s 3D printom. Ovo se koristi za stabilizaciju kamere. Ne utječe na funkcionalnost robota, ali će vam pomoći u kodiranju ako želite koristiti slikovne podatke za prepoznavanje boja i/ili objekata.
Korak 2: Konfiguracija
1. Povezivanje Raspberry Pi i modula kamere (hardverski)
- Da biste napajali Raspberry Pi, morat ćete pokrenuti muški kraj mikro USB -a do ženskog priključka za napajanje na mikrokontroleru. Izborno: Može se koristiti regulator napona kako bi se osiguralo da napon ne prelazi 5V. Nakon napajanja Raspberry Pi -a, možete ga povezati sa svojim robotom tako što ćete pokrenuti muški kraj USB a s matične ploče na USB priključak A na mikrokontroleru.
- Nakon spajanja Pi na Roombu, kamera je spremna za instalaciju. Modul kamere bit će mnogo manji nego što očekujete. Imajte na umu da je objektiv montiran na senzor, a bijela vrpca proteže se od fotoaparata. NE uklanjajte i ne kidajte vrpcu! Ovo je kabel koji vam je potreban za povezivanje s Raspberry Pi. Prvo držite kraj vrpce i pronađite srebrne priključke i plavi kabel. To su na suprotnim stranama. Zatim pronađite utor između ethernet i HDMI priključaka na vašem Raspberry Pi. Primijetite da ga prekriva mala, bijela brava. Polako podignite bravu, ali je nemojte vaditi iz utora jer će puknuti i trajno se oštetiti. Nakon što podignete bravu, zgrabite vrpcu i okrenite srebrne priključke prema HDMI priključku. Plava strana bit će okrenuta prema Ethernet priključku. Polako gurnite vrpcu u utor dok je još otključana. Ne morate ga forsirati u utor. Nakon umetanja gurnite bravu natrag prema dolje. Ako je vaša kamera pravilno učvršćena, trebali biste moći (nježno) povući vrpcu i osjetiti napetost. Vrpca ne smije biti labava. Nakon što ste kameru spojili na Pi, možda ćete primijetiti koliko je labav. Zato smo za njegovo učvršćivanje koristili nosač s 3D printom. Vaš je izbor da odlučite koje materijale želite upotrijebiti da fotoaparat ostane miran za snimanje visoke kvalitete.
2. Instaliranje odgovarajućih datoteka i povezivanje Roombe s računalom Nakon što je sav vaš hardver konfiguriran, sada možete prijeći na instaliranje MATLAB-a zajedno s pripadajućim m-datotekama koje vam omogućuju komunikaciju s robotom. Da biste to učinili, otvorite MATLAB i stvorite novu mapu za držanje svih povezanih datoteka zajedno. Koristite ovu skriptu za instaliranje/ažuriranje potrebnih datoteka:
- Sve datoteke sada bi se trebale pojaviti u vašoj stvorenoj mapi. Desnom tipkom miša kliknite u prozoru Trenutna mapa i odaberite ‘Dodaj na put’ kako biste taj put dodali na popis direktorija u kojima MATLAB traži datoteke. Provjerite jesu li sve vaše datoteke na ispravnom putu.
3. Nakon što su datoteke instalirane, sada se možete početi povezivati sa svojim robotom. Počnite tako što ćete uključiti robota, a zatim ga nakon ponovnog pokretanja čvrsto resetirati (ne zaboravite svaki put prije i nakon uporabe čvrsto resetirati robota). Drugo, povežite robota i prijenosno računalo na istu WiFi mrežu. Nakon toga ćemo razgovarati s unaprijed programiranim Raspberry Pi -om putem MATLAB -a pozivom Roombe koristeći njeno ime i funkciju roomba. Na primjer, spojio bih se na robota 28 pomoću sljedeće linije: R = roomba (28).
- Uočite kako sam dodijelio objekt varijabli R. Sada mogu pristupiti povezanim funkcijama Roombe iz instalacijske datoteke tretirajući varijablu R kao strukturu.
- R.turnAngle (90) Ako je sve prošlo dobro, trebao bi zasvirati glazbeni ton koji potvrđuje vezu.
Korak 3: MATLAB logika
PDF dokument na dnu ovog koraka detaljna je logička shema tijeka našeg procesa kodiranja u MATLAB -u. Aktivirali smo senzore litice, svjetla i svjetla kako bismo robotu omogućili komunikaciju s nama kada otkrije objekt u njegovoj neposrednoj blizini. Na primjer, kada se robot kreće prema naprijed, njegovi svjetlosni senzori pretražuju predmete na njegovoj putanji prema vektoru kojim putuje. Odabrali smo prag udaljenosti za robota tako da će se, kad se približi objektu, okrenuti unatrag umjesto sudara s njim. Naš robot također je konfiguriran s Twitterom, što smo naveli u procesu kodiranja (to će biti prikazano u nastavku).
Kako bismo poboljšali iskustvo, iskoristili smo aplikaciju MATLAB na svojim mobilnim uređajima kako bismo mogli kontrolirati kretanje robota samo naginjanjem telefona. Ovo je izborna aktivnost jer zasigurno možete pokrenuti robota pomoću naredbe moveDistance u segmentu koda MATLAB. Imajte na umu da je korištenje MATLAB naredbi za upravljanje vašim robotom poželjno ako je vaš cilj precizan. Ako želite usmjeriti robota tako da kamera napravi sliku na određenom mjestu, možda bi bilo bolje kodirati kretanja robota u MATLAB -u. Za vrijeme zabave, korištenje MATLAB aplikacije za upravljanje vašim robotom nije poželjno zbog točnosti.
Kôd zapovijeda Roombi da izvrši osnovno postavljanje, a zatim nastavi kroz kontinuiranu petlju. U početku će prijenosno računalo uspostaviti vezu s Roombom pomoću naredbe Roomba (). Također postavlja twitter vezu pomoću naredbe webwrite () u MATLAB -u. Petlja sadrži pet glavnih logičkih tokova, ovisno o okruženju koje okružuje Roombu. Najprije Roomba provjerava ima li prepreka i prilagođava se unatrag ako ustanovi da je ometena. U tu petlju ugrađen je drugi put koji upozorava korisnike ako se Roomba odnese. Važna pomoć u surovoj marsovskoj ratnoj zoni. Nakon što je Roomba utvrdila da je njegov položaj siguran, gleda prema mobilnom uređaju kako bi odredila svoj sljedeći pokret. Ako je mobilni uređaj nagnut prema naprijed, izračunat će osnovnu brzinu ovisno o jačini mjerenja kotrljanja, a zatim će prilagoditi pojedinačne brzine okretanja kotača na temelju stupnja koraka. Telefon također može pomicati Roombu unatrag. Neutralno stanje mobilnog uređaja zatvara posljednja dva puta. Roomba u mirovanju potražit će zastavu izvanzemaljca i upozoriti korisnika u skladu s tim.
Ispod je naš kôd (dovršen u MATLAB -u 2017a)
%ulaza: Podaci o orijentaciji s uređaja povezanog putem WiFi -ja, kamere
%informacija, podaci senzora
%izlaza: kretanje kontrolira wifi spojen uređaj i kretanje
% se provjerava sigurnost čitanjem podataka senzora. Ako kamera otkrije
% vanzemaljska zastava tada roomba odgovara tweetanjem neprijateljske zastave
% je uočeno.
%svrhe: naš uređaj živi bez ikakve svrhe osim za zaštitu onih koji
% stvorio, služi svom tvorcu i čini
% točno ono što je rečeno.
%Korištenje: u osnovi će se program pokrenuti sam.
počisti sve, zatvori sve, clc
%Inicijalizacija objekata i varijabli
r = roomba (28);
m = mobiledev;
%upotreba odgovora = webwrite (naziv hosta, podaci)
hostname = 'https://api.thingspeak.com/apps/thingtweet/1/statuses/update';
API = 'SGZCTNQXCWAHRCT5';
tweet = 'RoboCop je operativan … Čeka se naredba';
data = strcat ('api_key =', API, '& status =', tweet);
odgovor = webwrite (naziv hosta, podaci);
%stalno pokrenuta petlja
dok je 1 == 1
%Strukture koje sadrže podatke o zaostalim materijalima
o = m.orijentacija; %orijentacije mobilnog uređaja
svjetlo = r.getLightBumpers (); %Vrijednosti lakih branika
a = r.getCliffSensors (); %CLiff vrijednosti senzora
bump = r.getBumpers (); %Senzori branika
%odbojnika za provjeru
ako neravnina.desno == 1 || bump.left == 1 || bump.front == 1
r.moveDistance (-. 2,.2);
%Senzori kontrolnog svjetla
inače svjetlo.lijevo> 60 || svjetlo.lijevoSpred> 60 || svjetlo.lijevi centar> 60 || svjetlo.desno> 60 || svjetlo.desnoSpred> 60 || svjetlo.desno središte> 60
r.moveDistance (-. 2,.2);
%provjerite Cliff Sensors
%Signal i obavijest protiv krađe
elseif a.left <300 && a.right <300 && a.leftFront <300 && a.rightFront <300
r.stop ();
r.beep ();
tweet = 'RoboCop je ukinut!'
data = strcat ('api_key =', API, '& status =', tweet);
odgovor = webwrite (naziv hosta, podaci);
%Normalna operacija izbjegavanja litica
inače ako je a.lijevo <300 || a.desno <300 || a.leftFront <300 || a.desno Prednja <300
r.moveDistance (-. 2,.2);
%Roomba je prošao provjere i sada će raditi s normalnim radom.
%U početku se mjeri kotrljanje uređaja i postaje baza
%brzine koja se tada koristi za izračun brzine kotača
%Napredno kretanje
inače ako je o (3)> = 0 && o (3) <= 60
baseVel = (-. 5/60)*(o (3) -60);
ako je o (2)> =-70 && o (2) <0
r.setDriveVelocity (baseVel+(. 3/50)*abs (o (2)), baseVel-(. 3/50)*abs (o (2)));
inače, ako je o (2) = 0
r.setDriveVelocity (baseVel-(. 3/50)*abs (o (2)), baseVel+(. 3/50)*abs (o (2)));
inače r.stop
kraj
%Kretanje unatrag
inače o (3)> 100 && o (3) <150
r.setDriveVelocity (-. 2, -.2)
r.beep ();
r.beep ();
%roomba koji se odmara tražit će zastavu izvanzemaljaca označenu kao flourescent
%zeleno Komad papira
drugo
r.stop
img = r.getImage (); %snimiti sliku
prag = sivi prag (img (200: 383,:, 2))+. 1; %calc zelene razine
ako je prag>.42
tweet = 'Neprijatelj uočen !!'
data = strcat ('api_key =', API, '& status =', tweet);
odgovor = webwrite (naziv hosta, podaci);
drugo
r.stop
kraj
kraj
kraj
Korak 4: Zaključak
Upamtite, možete koristiti skriptu koju smo gore napisali, ali je uvijek možete promijeniti prema svojim potrebama. Telefon ne mora kontrolirati vaš telefon! (Međutim, čini ga zabavnijim.) Odaberite koju metodu želite koristiti za upravljanje svojim robotom. Vozite se sa svojim robotom i uživajte!
Preporučeni:
Roomba Bot Bulider: 5 koraka (sa slikama)
Roomba Bot the Bulider: Bot the Builder je roomba koja sa " grabilicama " pričvršćen sprijeda moći će pomicati objekte. Kôd s njim postavljen je tako da bilježi prvi pomak s grafičkim okvirom koji možete kontrolirati samo jednim klikom miša. Afte
MATLAB kontrolirana Roomba: 5 koraka
MATLAB kontrolirana Roomba: Cilj ovog projekta je korištenje MATLAB -a, kao i modificiranog iRobot programabilnog robota. Naša grupa kombinirala je naše vještine kodiranja kako bi stvorila MATLAB skriptu koja koristi mnoge funkcije iRobota, uključujući senzore litice, senzore odbojnika
Roomba Roomba upravljani preglednikom s Raspberry Pi modelom 3 A+: 6 koraka (sa slikama)
Roomba Roomba upravljani preglednikom robot s modelom Raspberry Pi 3 A+: pregledOva instrukcija će se usredotočiti na to kako mrtvoj Roombi dati novi mozak (Raspberry Pi), oči (web kamera) i način da kontrolirate sve iz web preglednika. Postoji mnogo Roomba hakova koji omogućuju kontrolu putem serijskog sučelja. Nisam
Roomba MATLAB projekt: 5 koraka
Roomba MATLAB projekt: Trenutni plan koji NASA ima za Mars rover je da on bude sakupljač podataka i da luta po Marsu, prikupljajući uzorke tla kako bi se vratio na Zemlju kako bi znanstvenici mogli vidjeti postoje li neki prethodni oblici života planeta. Dodatni
Inspektor Roomba: 6 koraka (sa slikama)
Inspektor Roomba: Većina nas robote iRobot Roomba koristi samo za usisavanje, ali malo njih zna da je to izvrsna baza za nove robotske projekte. Svi proizvođači trebali bi isprobati Roomba Open Interface (OI) kako bi saznali koliko je jednostavno upravljati ovim robotom. U ovoj uputi ćete