Taula de continguts:

Roomba Parking Pal: 6 passos
Roomba Parking Pal: 6 passos

Vídeo: Roomba Parking Pal: 6 passos

Vídeo: Roomba Parking Pal: 6 passos
Vídeo: The Alan Parsons Project - Games People Play (Official HD Video) 2024, Desembre
Anonim
Roomba Parking Pal
Roomba Parking Pal

Aquest projecte utilitza un roomba programable iRobot Create, MATLAB r2018a i MATLAB mobile. En utilitzar aquests tres suports i el nostre coneixement de codificació, vam programar l’iRobot Create per interpretar els colors i utilitzar sensors integrats per completar tasques. Aquest projecte depèn de la comunicació Raspberry Pi i MATLAB per realitzar aquestes tasques.

Pas 1: materials

Materials
Materials
Materials
Materials

1. iRobot Create Robot

2. MATLAB r2018a

3. Raspberry Pi

4. Mòdul de càmera

5. Suport estabilitzador de càmera imprès en 3D

6. Smartphone amb MATLAB mòbil instal·lat

7. Ordinador portàtil / ordinador amb MATLAB instal·lat

Pas 2: connexió

Aquest pas consisteix en connectar el Raspberry Pi al robot, en segon lloc connectar el robot a l’ordinador i connectar el telèfon intel·ligent a l’ordinador.

La part més senzilla d’aquest procés és connectar el Raspberry Pi al robot, ja que el Raspberry Pi està muntat a la part superior del robot. Hi ha un cable del robot que només cal que connecteu al lateral del Raspberry Pi.

El següent pas és connectar el robot a l'ordinador perquè pugueu executar ordres perquè el robot les faci. El primer que heu de fer és connectar l’ordinador a la xarxa sense fils que està creant roomba. Ara, es recomana que utilitzeu la icona Estableix ruta a MATLAB per establir el camí de manera que pugueu utilitzar les funcions de la caixa d'eines Roomba de MATLAB. Cada vegada que comenceu i finalitzeu l'ús amb el robot, heu de fer una "Salutació amb dos dits" per restablir el robot, cosa que significa que manteniu premuts els botons del moll i del punt durant deu segons fins que la llum disminueixi indicant que s'alliberi. Heu tingut èxit amb aquest restabliment complet si sentiu el robot jugar a una escala petita. A continuació, heu de connectar-vos a roomba mitjançant una línia de codi com aquesta "r = roomba (x)" on 'x' és el número designat per al robot que teniu.

Per últim, heu de descarregar el mòbil MATLAB en qualsevol dispositiu mòbil que utilitzeu per a aquest projecte i aquesta aplicació està disponible tant en dispositius Android com Apple. Un cop instal·lada l'aplicació, haureu d'iniciar la sessió amb les vostres credencials. A continuació, heu de connectar aquest dispositiu a l'ordinador mitjançant la pestanya etiquetada com a "Més" -> després feu clic a "Configuració" -> i després feu clic a "Afegeix un ordinador". S'obrirà la pantalla que es mostra a les imatges anteriors. El següent pas que heu de fer és connectar i escopir la informació que us demana. Quan estigueu connectat amb èxit, podreu trucar a les funcions que definiu al vostre ordinador al telèfon per controlar el robot.

Pas 3: Creació lògica d'un codi MATLAB per utilitzar els sensors

Creació lògica d’un codi MATLAB per utilitzar els sensors
Creació lògica d’un codi MATLAB per utilitzar els sensors

El codi serà més fàcil de crear quan la majoria estigui dins del bucle while, de manera que roomba pugui actualitzar constantment els valors vàlids que està mirant. Si hi ha un error, MATLAB mostrarà un error i on apareix al codi, cosa que facilita la resolució de problemes.

Dissenyat a r2018a MATLAB, aquest codi fa ús de les caixes d’eines estàndard, la caixa d’eines iRobot Create i la caixa d’eines mòbil de MATLAB. El roomba utilitzat en aquest exemple es designa com a 26, i el r = roomba (26) només s'ha d'executar una vegada per comunicar-se completament amb el roomba.

Codi:

funció parkassist (x) si x == 1

r = roomba (26)% es connecta a roomba

tot i que és cert

r.setDriveVelocity (.05,.05)% estableix roomba a una velocitat de conducció més baixa

bump = r.getBumpers% obté les dades dels sensors de cops

cliff = r.getCliffSensors% obté les dades dels sensors del penya-segat

light = r.getLightBumpers% obté les dades dels sensors de cops de llum

img = r.getImage;% llegeix la càmera del robot

red_mean = mean (mean (img (:,:, 1))))% llegeix la quantitat mitjana de píxels vermells

green_mean = mean (mitjana (img (:,:, 2)))% llegeix la quantitat mitjana de píxels verds

blue_mean = mean (mean (img (:,:, 3)))% llegeix la quantitat mitjana de píxels blaus

si bump.front == 1% llegeix els sensors de cops frontals

r.stop% para roomba

msgbox ('Path Obscured!', 'Parking Assistant Message')% mostra el missatge que diu que el camí està enfosquit break% acaba el bucle

elseif green_mean> 150

r.stop% para roomba

cont = questdlg ('Continuar?', 'Camí completat')% mostra el quadre de preguntes que demana continuar

si cont == "Sí"

parkassist (1)% reinicia el codi

en cas contrari

final

break% acaba el bucle

elseif vermell> 140

r.turnAngle (45)% gira el roomba 45 graus

r.timeStart% inicia un comptador de temps

tot i que és cert

r.setDriveVelocity (.05,.05)% estableix la velocitat del roomba

time = r.timeGet% assigna el temps a una variable

bump = r.getBumpers% obté les dades dels sensors de cops

cliff = r.getCliffSensors% obté les dades dels sensors del penya-segat

light = r.getLightBumpers% obté les dades dels sensors de cops de llum

img = r.getImage;% llegeix la càmera del robot

red_mean = mean (mean (img (:,:, 1))))% llegeix la quantitat mitjana de píxels vermells

green_mean = mean (mitjana (img (:,:, 2)))% llegeix la quantitat mitjana de píxels verds

blue_mean = mean (mean (img (:,:, 3)))% llegeix la quantitat mitjana de píxels blaus

si significa_blau> 120

r.moveDistance (-0,01)% mou la sala cap enrere una cançó de distància fixa Reprodueix (r, 'T400, C, D, E, F, G, A, B, C ^', 'true')% reprodueix una escala musical ascendent

msgbox ('Water Found!', 'Parking Assistant Message')% mostra un missatge que diu que s'ha trobat aigua r.turnAngle (-80)% gira roomba 80 graus

break% remata el bucle actual

elseif light.rightFront> 25 || light.leftFront> el 25% llegeix els sensors de cops de llum

r.moveDistance (-0,01)% mou la sala cap enrere a una distància establerta

r.turnAngle (-35)% gira la sala de 35 graus

break% remata el bucle actual

elseif cliff.rightFront <2500 && cliff.leftFront <2500% llegeix els dos sensors del penya-segat

r.moveDistance (-0,1)% mou roomba cap enrere una distància establerta

r.turnAngle (-80)% gira roomba 80 graus

break% remata el bucle actual

elseif time> = 3

r.stop% para roomba

contin = questdlg ('Station Free, Continue?', 'Parking Assistant Message')% pregunta si el roomba hauria de continuar si contin == 'Sí'

r.turnAngle (-90)% gira la sala de 90 graus

parkassist (1)% reinicia la funció

en cas contrari

r.stop% atura el roomba

final

en cas contrari

final

final

elseif cliff.rightFront <2500 && cliff.leftFront <2500% llegeix els dos sensors del penya-segat

r.moveDistance (-0,1)% mou roomba cap enrere una distància establerta

r.turnAngle (-90)% gira roomba 90 graus

elseif cliff.rightFront <2500% llegeix el sensor de penya-segat dret

r.turnAngle (-5)% gira lleugerament el roomba en la direcció oposada del sensor del penya-segat

elseif cliff.leftFront <2500% llegeix el sensor de penya-segat esquerre

r.turnAngle (5)% gira lleugerament el roomba en la direcció oposada del sensor del penya-segat

en cas contrari

final

final

final

Pas 4: provar el codi i el robot

Prova del codi i del robot
Prova del codi i del robot
Prova del codi i del robot
Prova del codi i del robot
Prova del codi i del robot
Prova del codi i del robot

Després de desenvolupar el codi, el següent pas va ser provar el codi i el robot. Com que es poden fer molts ajustos diferents al codi, com ara l’angle que gira el robot, la velocitat en què es mou i els llindars de cada color, la millor manera d’esbrinar aquests valors per al vostre robot és provar ells i canvia a mesura que vagis. Per a cada jornada laboral que teníem, vam canviar aquests valors constantment, ja que alguns d’ells depenen de l’entorn on opera el vostre robot. La millor manera que vam trobar va ser situar el roomba en el camí que voleu que segueixi i tenir una barrera prou alta perquè la càmera no pugui detectar els colors que no voleu. El següent pas és deixar-lo córrer i mostrar-li els colors que vulgueu quan vulgueu que completi aquesta tasca. Segons vagi, si veieu un problema, el millor que podeu fer és empènyer el para-xocs davanter, fent que s’aturi, i canvieu el paràmetre amb el qual heu tingut problemes.

Pas 5: reconeixement d'error

Amb cada projecte finalitzat, sempre hi ha fonts d'error. Per a nosaltres, hem experimentat un error pel simple fet que el robot no és precís amb l’angle en què gira, de manera que si li dieu que giri 45 graus no serà exacta. Una altra font d'error per a nosaltres va ser que de vegades el robot funciona malament i que l'heu restablert abans de tornar a funcionar. L’última font principal d’error per a nosaltres va ser que el mateix codi no tindrà el mateix efecte en diferents robots, de manera que és possible que hagueu de tenir paciència i ajustar-lo en conseqüència.

Pas 6: Conclusió

Ara teniu totes les eines per jugar amb el vostre roomba, cosa que significa que podeu manipular el codi de qualsevol manera que vulgueu assolir els objectius que desitgeu. Aquesta hauria de ser la millor part del dia, així que divertiu-vos i conduïu amb seguretat.

Recomanat: