Cuprins:
- Pasul 1: Materiale
- Pasul 2: Conexiune
- Pasul 3: Crearea logică a unui cod MATLAB pentru a utiliza senzorii
- Pasul 4: Testarea codului și a robotului
- Pasul 5: Recunoașterea erorii
- Pasul 6: Concluzie
Video: Roomba Parking Pal: 6 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
Acest proiect utilizează un iRobot Create roomba programabil, MATLAB r2018a și MATLAB mobile. Folosind aceste trei medii și cunoștințele noastre de codificare, am programat iRobot Create pentru a interpreta culorile și a folosi senzori de bord pentru a finaliza sarcinile. Acest proiect depinde de comunicarea Raspberry Pi și MATLAB pentru a îndeplini aceste sarcini.
Pasul 1: Materiale
1. iRobot Create Robot
2. MATLAB r2018a
3. Raspberry Pi
4. Modulul camerei
5. Stand de stabilizare a camerei imprimate 3D
6. Smartphone cu MATLAB mobil instalat
7. Laptop / computer cu MATLAB instalat
Pasul 2: Conexiune
Acest pas este despre conectarea Raspberry Pi la robot, conectarea robotului la computer și conectarea smartphone-ului la computer.
Cea mai ușoară parte a acestui proces este conectarea Raspberry Pi la robotul dvs., deoarece Raspberry Pi este montat în partea superioară a robotului. Există un cablu de la robot pe care nu trebuie decât să îl conectați la partea laterală a Raspberry Pi.
Următorul pas este conectarea robotului la computer, astfel încât să puteți rula comenzi pentru ca robotul să le efectueze. Primul lucru pe care trebuie să-l faceți este să vă conectați computerul la rețeaua fără fir pe care roomba dvs. o creează. Acum, este recomandat să utilizați pictograma Setare cale în MATLAB pentru a seta calea, astfel încât să puteți utiliza funcțiile din caseta de instrumente Roomba de la MATLAB. De fiecare dată când începeți și terminați utilizarea cu robotul, trebuie să efectuați un „Salut cu două degete”, resetând greu robotul, ceea ce înseamnă că țineți apăsate butoanele de andocare și puncte timp de zece secunde până când lumina se estompează indicând să se elibereze. Ați avut succes cu această resetare hard dacă auziți robotul cântând la scară scurtă. Apoi trebuie să vă conectați la roomba folosind o linie de cod ca aceasta "r = roomba (x)" unde 'x' este numărul desemnat pentru robotul pe care îl aveți.
În cele din urmă, trebuie să descărcați MATLAB mobil pe orice dispozitiv mobil pe care îl veți folosi pentru acest proiect, iar această aplicație este disponibilă atât pe dispozitivele Android, cât și pe cele Apple. Odată ce aplicația este instalată, va trebui să vă conectați folosind acreditările dvs. Apoi, trebuie să conectați acest dispozitiv la computer, utilizând fila etichetată „Mai multe” -> apoi faceți clic pe „setări” -> apoi faceți clic pe „Adăugați un computer”, acesta ar trebui să afișeze ecranul din imaginile de mai sus. După ce vedeți acest lucru, următorul pas pe care trebuie să îl parcurgeți este doar conectarea și extragerea informațiilor pe care le solicită. Odată ce sunteți conectat cu succes, veți putea apela funcțiile pe care le definiți pe computerul dvs. de pe telefon pentru a vă controla robotul.
Pasul 3: Crearea logică a unui cod MATLAB pentru a utiliza senzorii
Codul va fi cel mai ușor de creat atunci când majoritatea acestuia se află în bucla activată, astfel încât roomba să poată actualiza în mod constant valorile valide la care se uită. Dacă există o eroare, MATLAB va afișa o eroare și unde apare în cod, făcând soluționarea problemelor relativ simplă.
Proiectat în r2018a MATLAB, acest cod folosește casetele de instrumente standard, caseta de instrumente iRobot Create, precum și caseta de instrumente mobile MATLAB. Roomba folosită în acest exemplu este desemnată ca 26, iar r = roomba (26) trebuie executată o singură dată pentru a comunica complet cu roomba.
Cod:
funcție parkassist (x) dacă x == 1
r = roomba (26)% se conectează la roomba
în timp ce este adevărat
r.setDriveVelocity (.05,.05)% setează roomba la o viteză de conducere mai mică
bump = r.getBumpers% obține datele de la senzorii de bump
cliff = r.getCliffSensors% obține datele de la senzorii cliff
light = r.getLightBumpers% obține datele de la senzorii de lumină
img = r.getImage;% citește camera de pe robot
red_mean = medie (medie (img (:,:, 1))))% citește cantitatea medie de pixeli roșii
green_mean = medie (medie (img (:,:, 2)))% citește cantitatea medie de pixeli verzi
blue_mean = mean (mean (img (:,:, 3)))% citeste cantitatea medie de pixeli albastri
dacă bump.front == 1% citește senzorii de bump din față
r.stop% oprește roomba
msgbox ('Path Obscured!', 'Parking Assistant Message')% afișează mesajul spunând că calea este ascunsă break% termină bucla
elseif green_mean> 150
r.stop% oprește roomba
cont = questdlg ('Continuare?', 'Calea completată')% afișează caseta de întrebări cerând să continuați
dacă cont == „Da”
parkassist (1)% repornește codul
altceva
Sfârșit
break% termină bucla
elseif red_mean> 140
r.turnAngle (45)% întoarce camera cu 45 de grade
r.timeStart% pornește un contor de timp
în timp ce este adevărat
r.setDriveVelocity (.05,.05)% setează viteza camerei
time = r.timeGet% atribuie ora unei variabile
bump = r.getBumpers% obține datele de la senzorii de bump
cliff = r.getCliffSensors% obține datele de la senzorii cliff
light = r.getLightBumpers% obține datele de la senzorii de lumină
img = r.getImage;% citește camera de pe robot
red_mean = medie (medie (img (:,:, 1)))% citește cantitatea medie de pixeli roșii
green_mean = medie (medie (img (:,:, 2)))% citește cantitatea medie de pixeli verzi
blue_mean = mean (mean (img (:,:, 3)))% citeste cantitatea medie de pixeli albastri
dacă albastru_seamnă> 120
r.moveDistance (-0.01)% mută camera înapoi o melodie la distanță stabilită Redare (r, 'T400, C, D, E, F, G, A, B, C ^', 'true')% redă o scară muzicală în creștere
msgbox („Apă găsită!”, „Mesaj asistent parcare”)% afișează un mesaj spunând că a fost găsită apă r.turnAngle (-80)% rotește camera 80 de grade
pauză% termină bucla curentă
elseif light.rightFront> 25 || light.leftFront> 25% citește senzorii de lumină
r.moveDistance (-0.01)% mută camera înapoi la o distanță stabilită
r.turnAngle (-35)% rotește camera cu 35 de grade
pauză% termină bucla curentă
elseif cliff.rightFront <2500 && cliff.leftFront <2500% citește ambii senzori de stâncă
r.moveDistance (-0.1)% mută roomba înapoi o distanță stabilită
r.turnAngle (-80)% rotește camera de 80 de grade
pauză% termină bucla curentă
altfel dacă timpul> = 3
r.stop% oprește roomba
contin = questdlg ('Station Free, Continue?', 'Message Assistant Assistant')% întreabă dacă roomba ar trebui să continue dacă contin == 'Da'
r.turnAngle (-90)% rotește camera de 90 de grade
parkassist (1)% repornește funcția
altceva
r.stop% oprește cameraba
Sfârșit
altceva
Sfârșit
Sfârșit
elseif cliff.rightFront <2500 && cliff.leftFront <2500% citește ambii senzori de stâncă
r.moveDistance (-0.1)% mută roomba înapoi o distanță stabilită
r.turnAngle (-90)% rotește camera de 90 de grade
elseif cliff.rightFront <2500% citește senzorul de stâncă dreapta
r.turnAngle (-5)% întoarce ușor camera în direcția opusă a senzorului de stâncă
elseif cliff.leftFront <2500% citește senzorul stânga stâncă
r.turnAngle (5)% întoarce ușor camera în direcția opusă a senzorului de stâncă
altceva
Sfârșit
Sfârșit
Sfârșit
Pasul 4: Testarea codului și a robotului
După ce codul a fost dezvoltat, următorul pas a fost testarea codului și a robotului. Deoarece există o mulțime de ajustări diferite care pot fi făcute în cod, cum ar fi unghiul pe care îl rotește robotul, viteza pe care o mișcă și pragurile pentru fiecare culoare, cel mai bun mod de a afla aceste valori pentru robotul dvs. este să testați le și schimbați pe măsură ce mergeți. Pentru fiecare zi de lucru pe care am avut-o, am schimbat în mod constant aceste valori, deoarece unele dintre ele se bazează pe mediul în care operează robotul dvs. Cel mai bun mod pe care l-am găsit a fost să plasăm roomba pe calea pe care doriți să o urmeze și să aibă o barieră suficient de mare, astfel încât camera să nu poată detecta culorile pe care nu le doriți. Următorul pas este să-l lăsați să ruleze și să îi arătați culorile dorite, atunci când doriți să finalizeze acea sarcină. Pe măsură ce mergeți, dacă vedeți o problemă, cel mai bun lucru de făcut este să împingeți bara de protecție frontală, făcându-l oprit, apoi modificați parametrul cu care ați avut probleme.
Pasul 5: Recunoașterea erorii
Cu fiecare proiect finalizat, există întotdeauna surse de eroare. Pentru noi, am întâmpinat erori cu simplul fapt că robotul nu este precis cu unghiul la care se rotește, deci dacă îi spui să se întoarcă cu 45 de grade, nu va fi exact. O altă sursă de eroare pentru noi a fost că, uneori, robotul funcționează defectuos și îl resetați înainte de a funcționa din nou. Ultima sursă principală de eroare pentru noi a fost că același cod nu va avea același efect asupra unor roboți diferiți, deci este posibil să fie nevoie să aveți răbdare cu el și să vă ajustați în consecință.
Pasul 6: Concluzie
Acum aveți toate instrumentele pentru a vă juca cu camera dvs., ceea ce înseamnă că puteți manipula codul oricum doriți să atingeți obiectivele dorite. Aceasta ar trebui să fie cea mai bună parte a zilei dvs., așa că distrați-vă și conduceți în siguranță!
Recomandat:
Roomba Bot the Bulider: 5 pași (cu imagini)
Roomba Bot the Bulider: Bot the Builder este un roomba, care cu „apucători” atașat la față va putea muta obiecte în jur. Codul cu acesta este setat pentru a înregistra prima mișcare cu o casetă GUI pe care o puteți controla cu doar un clic al mouse-ului. După
Roomba controlată MATLAB: 5 pași
MATLAB Controlled Roomba: Scopul acestui proiect este de a utiliza MATLAB, precum și un robot programabil iRobot modificat. Grupul nostru a combinat abilitățile noastre de codificare pentru a crea un script MATLAB care utilizează multe funcții ale iRobot, inclusiv senzorii de stâncă, sensul barei de protecție
Proiectul Mars Roomba UTK: 4 pași
Mars Roomba Project UTK: DISCLAIMER: ACEASTA VA FUNCȚIONA DOAR DACĂ ROOMBA ESTE CONFIGURATĂ ÎN MOD DETERMINAT, ACEST INSTRUCTABIL A FOST CREAT PENTRU A FI UTILIZAT DE STUDENȚII ȘI FACULTATEA UNIVERSITĂȚII TENNESSEE Acest cod este utilizat pentru a configura un Roomba pentru a rula local. scris și s
MIDI Pod-Pal: 4 pași
MIDI Pod-Pal: *** UPDATE 4/22 / '21 ****** Am adăugat o schemă completă care arată toate cablurile pentru a ajuta la construcție. *** Nu voi intra într-o cantitate ridicolă de adâncime aici pe partea de construire, intenția mea a fost să arăt un alt exemplu de construire a unui MI bazat pe Arduino
De la Roomba la Rover în doar 5 pași !: 5 pași
De la Roomba la Rover, în doar 5 pași! În acest instructabil, vom detalia cum să convertiți un Roomba simplu într-un rover controlabil care analizează simultan împrejurimile sale. Lista pieselor1.) MATLAB2.) Roomb