Sadržaj:
Video: Roomba sa MATLAB -om: 4 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:09
Ovaj projekt koristi MATLAB i iRobot Create2 programabilnog robota. Stavljajući na znanje naše znanje o MATLAB -u, u mogućnosti smo programirati Create2 za tumačenje slika i otkrivanje signala. Funkcionalnost robota uglavnom ovisi 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 iz iRobota nije vakuum. Namijenjen je prilagođenom programiranju od strane korisnika.
2. MATLAB 2017a
- Većina starijih verzija bit će kompatibilna s kodom koji smo koristili u nastavku. 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 instrukcija 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.
Opciono: postolje sa 3D štampom. Ovo se koristi za stabilizaciju kamere. To ne utječe na funkcionalnost robota, ali će vam pomoći u šifriranju 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. Opcionalno: Može se koristiti regulator napona kako bi se osiguralo da napon ne prelazi 5V. Nakon uključivanja Raspberry Pi -a, možete ga povezati sa robotom tako što ćete pokrenuti muški kraj USB a sa matične ploče na USB port A na mikrokontroleru.
- Nakon povezivanja 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 se proteže 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 konektore i plavi kabel. Ovo su na suprotnim stranama. Zatim pronađite utor između ethernet i HDMI portova na vašem Raspberry Pi. Primijetite da ga prekriva mala, bijela brava. Polako podignite bravu, ali je nemojte uklanjati iz utora jer će puknuti i trajno se oštetiti. Kada podignete bravu, zgrabite vrpcu i okrenite srebrne konektore prema HDMI priključku. Plava strana će biti okrenuta prema Ethernet portu. Polako gurnite vrpcu u utor dok je još otključana. Ne morate ga silom gurnuti u otvor. Nakon umetanja gurnite bravu natrag prema dolje. Ako je vaša kamera pravilno pričvršćena, trebali biste moći (nježno) povući vrpcu i osjetiti napetost. Traka ne smije biti labava. Nakon što povežete kameru s Pi, možda ćete primijetiti koliko je labav. Zbog toga smo za njegovo učvršćivanje koristili nosač s 3D printom. Vaš je izbor da odlučite koje materijale želite koristiti kako bi fotoaparat ostao miran za visokokvalitetno snimanje.
2. Instaliranje odgovarajućih datoteka i povezivanje Roombe sa računarom 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 kreiranoj mapi. Desnom tipkom miša kliknite u prozoru Trenutna mapa i odaberite "Dodaj na putanju" da biste tu stazu dodali na popis direktorija u kojima MATLAB traži datoteke. Uvjerite se da su sve vaše datoteke na ispravnoj putanji.
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 resetirati nakon pokretanja (ne zaboravite da ga svaki put prije i poslije upotrebe resetirate). 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).
- Primijetite kako sam dodijelio objekt varijabli R. Sada mogu pristupiti povezanim Roomba funkcijama iz instalacijske datoteke tretirajući varijablu R kao strukturu.
- R.turnAngle (90) Ako je sve prošlo dobro, trebao bi svirati muzički ton koji potvrđuje vezu.
Korak 3: MATLAB logika
PDF dokument na dnu ovog koraka je detaljna logička shema toka 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 skeniraju objekte na njegovoj putanji prema vektoru kojim putuje. Odabrali smo prag udaljenosti za robota tako da će se, kada se približi objektu, okrenuti unatrag umjesto sudara s njim. Naš robot je također konfiguriran sa Twitter -om, š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 opcionalna 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đenoj lokaciji, možda bi bilo bolje kodirati kretanje robota u MATLAB -u. Dok se zabavljate, korištenje MATLAB aplikacije za upravljanje vašim robotom nije poželjno zbog tačnosti.
Kôd naređuje Roombi da izvrši osnovno postavljanje, a zatim nastavi kroz kontinuiranu petlju. U početku će laptop postaviti vezu sa 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. Prvo Roomba provjerava ima li prepreka i prilagođava se unatrag ako ustanovi da je ometena. U tu petlju je ugrađena druga staza koja upozorava korisnike ako se Roomba odnese. Važna pomoć u surovoj marsovskoj ratnoj zoni. Nakon što Roomba utvrdi da je njen položaj siguran, gleda u mobilni uređaj kako bi odredio 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 prema stupnju nagiba. Telefon takođe može pomicati Roombu unatrag. Neutralno stanje mobilnog uređaja zatvara posljednja dva puta. Roomba u mirovanju će potražiti zastavu vanzemaljca i upozoriti korisnika u skladu s tim.
Ispod je naš kôd (završ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 tvitanjem neprijateljske zastave
% je uočeno.
%svrhe: naš uređaj živi samo sa svrhom osim da zaštiti one koji
% ga je stvorio, služi svom tvorcu i radi
% tačno ono što je rečeno.
%Upotreba: u osnovi će se program pokrenuti sam.
obriši sve, zatvori sve, clc
%Inicijalizacija objekata i varijabli
r = roomba (28);
m = mobiledev;
%upotreba odgovora = webwrite (ime hosta, podaci)
hostname = 'https://api.thingspeak.com/apps/thingtweet/1/statuses/update';
API = 'SGZCTNQXCWAHRCT5';
tweet = 'RoboCop je operativan … Komanda se čeka';
data = strcat ('api_key =', API, '& status =', tweet);
odgovor = webwrite (ime hosta, podaci);
%stalno pokrenuta petlja
dok je 1 == 1
%Strukture koje sadrže podatke o zaostalim materijalima
o = m.orijentacija; %orijentacije mobilnog uređaja
light = r.getLightBumpers (); %Vrijednosti lakog branika
a = r.getCliffSensors (); %CLiff senzorske vrijednosti
bump = r.getBumpers (); %Senzori branika
%odbojnika za provjeru
ako je bump.right == 1 || bump.left == 1 || bump.front == 1
r.moveDistance (-. 2,.2);
%Senzori kontrolne lampice
elseif light.left> 60 || light.leftFront> 60 || light.leftCenter> 60 || svjetlo.desno> 60 || light.rightFront> 60 || light.rightCenter> 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 (ime hosta, podaci);
%Normalna operacija izbjegavanja litica
elseif a.left <300 || a.desno <300 || a.leftFront <300 || a.rightFront <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čunavanje brzine kotača
%Napred kretanje
inače 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 o (2) = 0
r.setDriveVelocity (baseVel-(. 3/50)*abs (o (2)), baseVel+(. 3/50)*abs (o (2)));
else r.stop
kraj
%Kretanje unazad
inače o (3)> 100 && o (3) <150
r.setDriveVelocity (-. 2, -.2)
r.beep ();
r.beep ();
%roomba koji se odmara tražit će zastavu vanzemaljaca označenu kao flourescent
%zeleno Komad papira
else
r.stop
img = r.getImage (); %preuzmi sliku
prag = sivopraž (img (200: 383,:, 2))+. 1; %kalc. zelenog nivoa
ako je prag>.42
tweet = 'Neprijatelj uočen !!'
data = strcat ('api_key =', API, '& status =', tweet);
odgovor = webwrite (ime hosta, podaci);
else
r.stop
kraj
kraj
kraj
Korak 4: Zaključak
Upamtite, možete koristiti skriptu koju smo gore napisali, ali je uvijek možete izmijeniti prema svojim potrebama. Ne mora biti pod kontrolom vašeg telefona! (Međutim, čini ga zabavnijim.) Odaberite metodu koju više volite koristiti za kontrolu svog robota. Vozite se sa robotom i uživajte!
Preporučuje se:
Roomba Bot Bulider: 5 koraka (sa slikama)
Roomba Bot the Bulider: Bot the Builder je roomba koja sa " hvataljkama " pričvršćen sprijeda moći će pomicati objekte. Kôd s njim postavljen je tako da bilježi prvi pokret pomoću grafičkog okvira 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 je kombinirala 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 sa Raspberry Pi modelom 3 A+: 6 koraka (sa slikama)
Roomba robotski upravljani Roomba robot s Raspberry Pi modelom 3 A+: PregledOva instrukcija će se fokusirati 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. Ja nemam
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 naučnici mogli vidjeti postoje li neki prethodni oblici života planeta. Dodatno
Inspektor Roomba: 6 koraka (sa slikama)
Inspektor Roomba: Većina nas koristi iRobot Roomba robote samo za usisavanje, ali malo njih zna da je to odlična baza za nove robotske projekte. Svi proizvođači trebali bi isprobati Roomba otvoreno sučelje (OI) kako bi saznali koliko je lako kontrolirati ovog robota. U ovom uputstvu ćete