Taula de continguts:

Roomba Scout Explorer: 8 passos
Roomba Scout Explorer: 8 passos

Vídeo: Roomba Scout Explorer: 8 passos

Vídeo: Roomba Scout Explorer: 8 passos
Vídeo: How to Tie a Friendship Knot 2024, Juliol
Anonim
Roomba Scout Explorer
Roomba Scout Explorer

Com a un dels projectes nord-americans més esperats i molt investigats, els projectes de Mars Rover s’han convertit en èxits humans en la producció en constant desenvolupament de sistemes autònoms d’alta tecnologia amb l’únic propòsit d’investigar i interpretar les masses terrestres i les superfícies del planeta vermell que hi ha darrere. la Terra. Com a part d’un projecte més personal en homenatge a les missions de Mart, el nostre objectiu era crear un robot roomba que pogués actuar de forma autònoma durant un determinat període de temps i reaccionar en conseqüència a determinats criteris de la seva proximitat.

Pel que fa a la singularitat, ens vam centrar a crear un diagrama que mostri cada ruta que pren el robot des dels seus orígens. A més, el robot podrà comptar el nombre d'objectes que hi ha a la rodalia en un estil panoràmic.

Pas 1: equipament

-Roomba amb càmera adjunta (amb un nom específic conegut)

-Servei connectat

-Windows 10 / Mac amb connectivitat a Internet

-Plataforma brillant

-Sòl fosc

-Qualsevol objecte perdut de disseny monocromàtic

Pas 2: Configuració de MATLAB

Configuració de MATLAB
Configuració de MATLAB

Per crear tasques i funcions per al vostre roomba, heu de tenir els codis i els jocs d'eines específics que contenen les ordres de roomba.

Amb MATLAB 2016a i posteriors descarregats, creeu una carpeta per contenir aquests fitxers de robot i inseriu el fitxer MATLAB següent a la carpeta i executeu-lo per instal·lar la resta de fitxers roomba necessaris.

Després, feu clic amb el botó dret a la finestra de la carpeta actual, passeu el ratolí per sobre de "Afegeix un camí" i feu clic a "Carpeta actual". Ara, s'hauria de configurar una ruta de manera que cadascun d'aquests fitxers s'utilitzessin per activar el roomba.

Ara, utilitzeu l'ordre següent a la finestra d'ordres per configurar roomba:

r = roomba (#).

El símbol # és el "número" de l'espai especificat; no obstant això, si només voleu un simulador de roomba, simplement escriviu l'ordre següent:

r = roomba (0).

Es recomana la simulació per provar patrons de moviment.

Si teniu curiositat per saber quines ordres pot seguir roomba, escriviu el següent a la finestra d'ordres:

doc roomba.

Per obtenir més informació, visiteu el lloc web següent:

ef.engr.utk.edu/ef230-2017-08/projects/roomba-s/setup-roomba-instructable.php

Pas 3: Funció: moviment

Funció: Moviment
Funció: Moviment
Funció: Moviment
Funció: Moviment

Pel que fa al moviment, el roomba s'ha de moure automàticament durant un període de temps determinat donat a les entrades. L’objectiu del moviment del robot és reaccionar correctament quan els seus sensors (parachoques, paràmetres de llum i sensors de penya-segats) canvien en presència de diversos obstacles. Aquesta part actuaria com a base per a totes les ordres de roomba a mesura que s'afegiran més funcions al codi més endavant. Es necessitaven algunes especificacions:

-Per reduir els danys, el robot ha de reduir la velocitat a una velocitat inferior.

-En apropar-se a un penya-segat o paret, el robot es mourà a la inversa i alterarà el seu angle en funció del punt d’impacte

-Després d’un temps conduint, el roomba acabarà parant i prendrà imatges de la zona circumdant

Tingueu en compte que els valors utilitzats eren en relació amb el simulador; valors com ara la velocitat de gir dels angles de gir i les configuracions predeterminades del sensor del robot s’han de modificar quan s’utilitza el robot real per garantir l’estabilitat i la comptabilitat de l’error de l’equip.

Pas 4: Funció: processament d'imatges

Funció: Processament d’imatges
Funció: Processament d’imatges

Segons la sol·licitud, se'ns va encarregar de modificar les dades d'una imatge (o diverses imatges) que va rebre la càmera del robot, a la qual vam decidir fer que roomba "comptés" el nombre d'objectes que veu a la imatge.

Hem seguit la tècnica de fer que MATLAB dibuixi límits al voltant d’objectes ennegrits que contrastin amb un fons blanc. Tanmateix, aquesta funció és propensa a tenir dificultats en una zona oberta, ja que les diferents formes i colors percebuts per la càmera resulten en recomptes inusualment alts.

Tingueu en compte que aquesta funció no pot funcionar al simulador ja que no es proporciona cap càmera; si s’intenta, es produirà un error declarant que només es pot utilitzar una matriu (:,:, 3).

Pas 5: Funció: mapatge

Funció: mapatge
Funció: mapatge
Funció: mapatge
Funció: mapatge
Funció: mapatge
Funció: mapatge
Funció: mapatge
Funció: mapatge

Una característica addicional que volíem que tingués el robot era traçar les seves ubicacions, ja que interactua directament amb l’entorn. Per tant, el codi següent busca obrir un mapa i configurar un sistema de coordenades que detalli cada ubicació en què es premen els sensors de para-xocs del robot. Aquesta va resultar ser la porció més llarga de les tres parts a provar individualment, però va resultar molt més senzilla quan es va aplicar al guió final.

Per afegir un límit a la durada del temps d'execució de la funció, es va utilitzar el límit n <20 al bucle while per a proves.

Tingueu en compte que, a causa de la complexitat del codi, es produeixen més errors a mesura que el segment de codi s’executa durant molt de temps; de les proves anteriors, deu cops semblen ser el nombre de punts abans que es produeixin errors significatius.

Pas 6: juxtaposició

Juxtaposició
Juxtaposició
Juxtaposició
Juxtaposició
Juxtaposició
Juxtaposició
Juxtaposició
Juxtaposició

Com que tot això es col·locarà en un únic fitxer, hem creat una funció utilitzant cadascun dels dos passos anteriors com a subfuncions. Es va fer un esborrany final amb la següent modificació de la funció de redux anomenada "recon". Per evitar confusions per a MATLAB, els scripts "comptador" i "rombplot3" es van canviar de nom com a funcions incrustades "CountR" i "plotr", respectivament.

Es van haver de fer diversos canvis a la versió final a diferència dels scripts anteriors:

-L’origen sempre estarà marcat amb un cercle vermell

-Cada vegada que el roomba s'atura dels seus para-xocs, la ubicació es marca amb un cercle negre

-Cada vegada que roomba s’atura dels seus sensors de penya-segat, la ubicació es marca amb un cercle blau

-Cada vegada que roomba deixa d’investigar la zona, la ubicació es marca amb un cercle verd

-Les imatges es modifiquen per eliminar la part superior perquè el segell de temps pot interferir amb els resultats

-Les fronteres no es comptabilitzaran com a objecte a causa del nombre bastant elevat adquirit

- S'han canviat diverses variables, de manera que per evitar confusions utilitzeu les versions anteriors com a referència.

Pas 7: proves

Proves
Proves

Les proves per a cada component individual van demostrar ser barrejades de vegades, motiu pel qual eren necessàries modificacions de certs valors predeterminats. El fons temàtic en què volíem provar les capacitats del robot en una zona tancada consistia simplement en una pissarra sobre un terra molt més fosc. Podeu dispersar els objectes per la zona; fes que actuïn com a objectes a topar o objectes llunyans de la zona mòbil del robot.

Després d’establir el seu temps regulat i la seva velocitat de base, el roomba va demostrar un comportament de moviment adequat, aturant-se i allunyant-se de cada "penya-segat" o objecte al qual es desplaça, a més de ralentitzar-se mentre detectava alguna cosa propera. En arribar a la distància de recorregut desitjada de tres metres, el robot procediria a aturar-se i avaluar l'àrea, prenent imatges de cada regió de 45 graus i continuaria endavant si el temps ho permet. No obstant això, els seus girs semblaven més grans del que es demanava, cosa que significa que les dades de coordenades quedarien enfosquides.

Cada vegada que s’atura, es col·locava un punt nou a la regió aproximada de la seva posició al sistema de coordenades; no obstant això, s'assenyala que la direcció inicial en què comença la roomba té un paper fonamental en el disseny del mapa. Si es pogués implementar una funció de brúixola, s'hauria utilitzat com a part crucial del disseny del mapa.

El temps real que la funció triga a executar-se completament sempre supera el temps sol·licitat, cosa que té sentit tenint en compte que no es pot aturar enmig d'una de les seves recuperacions. Malauradament, aquesta versió del recompte d’imatges té els seus problemes, sobretot en zones que són majoritàriament monocromàtiques o amb una brillantor variable; com que intenta distingir entre dues tonalitats, tendeix a percebre objectes que no es desitgen, de manera que sempre compta fins a un nombre increïblement alt.

Pas 8: Conclusió

Conclusió
Conclusió

Tot i que aquesta tasca va ser una obra molt aventurera i creativa que va provocar alegria d’alleujament, per les meves observacions personals vaig poder veure un gran nombre d’errors que podrien ser problemàtics, tant en el codi com en el comportament del robot.

La limitació d'utilitzar l'especificació del temps al bucle while fa que el temps total sigui més llarg del desitjat; de fet, el procés de la tècnica panoràmica i el processament d’imatges podrien trigar més si s’executava amb un ordinador lent o no s’utilitzava prèviament. A més, el roomba que es va utilitzar en la nostra presentació va actuar amb un gran nombre d’errors, sobretot en moviment, en comparació amb el simulador. Malauradament, el robot utilitzat tenia una tendència a inclinar-se lleugerament cap a l’esquerra, ja que conduïa recte i feia girs més grans del desitjat. Per aquesta raó i per moltes altres, es recomana que, per compensar aquests errors, es facin canvis en els seus angles de gir.

No obstant això, aquest és un projecte llarg i estimulant intel·lectualment que havia actuat com una interessant experiència d'aprenentatge per aplicar codis i ordres per afectar directament el comportament d'un robot real.

Recomanat: