Taula de continguts:

EyeRobot: la canya blanca robòtica: 10 passos (amb imatges)
EyeRobot: la canya blanca robòtica: 10 passos (amb imatges)

Vídeo: EyeRobot: la canya blanca robòtica: 10 passos (amb imatges)

Vídeo: EyeRobot: la canya blanca robòtica: 10 passos (amb imatges)
Vídeo: Штукатурка стен - самое полное видео! Переделка хрущевки от А до Я. #5 2024, Desembre
Anonim
EyeRobot: la canya blanca robòtica
EyeRobot: la canya blanca robòtica

Resum: Amb l'iRobot Roomba Create, he fet un prototip d'un dispositiu anomenat eyeRobot. Guiarà els usuaris invidents i amb discapacitat visual a través d’entorns desordenats i poblats mitjançant l’ús de Roomba com a base per casar la senzillesa de la canya blanca tradicional amb els instints d’un gos amb ull visual. L'usuari indica el moviment desitjat prement i girant la maneta intuïtivament. El robot pren aquesta informació i troba un camí clar per un passadís o a través d’una habitació, mitjançant el sonar per dirigir l’usuari en una direcció adequada al voltant d’obstacles estàtics i dinàmics. A continuació, l'usuari segueix darrere del robot mentre guia l'usuari en la direcció desitjada per la força notable que sent a través del mànec. Aquesta opció robòtica requereix poc entrenament: empenta per anar, estira per aturar, gira per girar. La previsió que ofereixen els telemetres és similar a la d'un gos d'ull que veu, i suposa un avantatge considerable respecte als constants assaigs i errors que marca l'ús de la canya blanca. Tot i això, eyeRobot encara ofereix una alternativa molt més barata que els gossos guia, que costen més de 12.000 dòlars i són útils només durant 5 anys, mentre que el prototip es va construir per molt menys de 400 dòlars. També és una màquina relativament senzilla que requereix uns sensors barats, diversos potenciòmetres, una mica de maquinari i, per descomptat, un Roomba Create.

Pas 1: demostració de vídeo

Demostració de vídeo
Demostració de vídeo

Versió d'alta qualitat

Pas 2: Visió general de l'operació

Descripció general de l'operació
Descripció general de l'operació

Control d'usuari: el funcionament de eyeRobot està dissenyat per ser el més intuïtiu possible per reduir o eliminar molt l'entrenament. Per començar el moviment, l'usuari simplement ha de començar a caminar cap endavant, un sensor lineal a la base del pal captarà aquest moviment i començarà a moure el robot cap endavant. Mitjançant aquest sensor lineal, el robot pot igualar la seva velocitat a la velocitat desitjada per l'usuari. eyeRobot es mourà tan ràpidament com vulgui fer l’usuari. Per indicar que es vol fer un gir, l'usuari simplement ha de girar el mànec i, si és possible, el robot respondrà en conseqüència.

Navegació del robot: quan es viatja en un espai obert, eyeRobot intentarà mantenir un camí recte, detectant qualsevol obstacle que pugui impedir l’usuari i guiant l’usuari al voltant d’aquest objecte i tornant al camí original. A la pràctica, l’usuari pot seguir de forma natural darrere del robot amb pocs pensaments conscients. Per navegar per un passadís, l’usuari ha d’intentar empènyer el robot cap a una de les parets a banda i banda, en adquirir una paret, el robot començarà a seguir-lo, guiant l’usuari pel passadís. Quan s’arriba a una intersecció, l’usuari sentirà que el robot comença a girar i pot triar girant el mànec si voleu baixar la nova rama o continuar per un camí recte. D'aquesta manera, el robot s'assembla molt a la canya blanca, l'usuari pot sentir l'entorn amb el robot i utilitzar aquesta informació per a la navegació global.

Pas 3: Sensors d'abast

Sensors d'abast
Sensors d'abast

Ultrasons: EyeRobot porta 4 telèmetres ultrasònics (MaxSonar EZ1). Els sensors d'ultrasons es col·loquen en un arc a la part frontal del robot per proporcionar informació sobre els objectes que hi ha al davant i als costats del robot. Informen el robot sobre l’abast de l’objecte i l’ajuden a trobar una ruta oberta al voltant d’aquest objecte i tornar al seu camí original.

Telèmetres IR: el eyeRobot també porta dos sensors IR (GP2Y0A02YK). Els telèmetres IR es col·loquen cap a fora cap a 90 graus cap a la dreta i l’esquerra per ajudar el robot a seguir la paret. També poden alertar el robot d’objectes massa propers als costats on l’usuari pugui entrar.

Pas 4: Sensors de posició de la canya

Sensors de posició de canya
Sensors de posició de canya

Sensor lineal: perquè eyeRobot coincideixi amb la seva velocitat a la de l'usuari, eyeRobot detecta si l'usuari empeny o retarda el seu moviment cap endavant. Això s’aconsegueix fent lliscar la base de la canya per una pista, ja que un potenciòmetre detecta la posició de la canya. EyeRobot utilitza aquesta entrada per regular la velocitat del robot. La idea que eyeRobot s’adapti a la velocitat de l’usuari mitjançant un sensor lineal es va inspirar realment en el tallagespa familiar: la base de la canya està connectada a un bloc de guia que es mou al llarg d’un rail. S'adjunta al bloc guia un potenciòmetre lliscant que llegeix la posició del bloc guia i l'informa al processador. Per tal de permetre que el pal giri en relació amb el robot, hi ha una barra que corre per un bloc de fusta, formant un coixinet giratori. Aquest coixinet s’uneix a una frontissa per permetre que el pal s’ajusti a l’alçada de l’usuari.

Sensor de gir: el sensor de gir permet a l’usuari girar el mànec per girar el robot. Es posa un potenciòmetre a l’extrem d’un eix de fusta i s’insereix el pom i s’enganxa a la part superior del mànec. Els cables corren per la clavilla i alimenten la informació de gir al processador.

Pas 5: processador

Processador
Processador

Processador: el robot està controlat per un Zbasic ZX-24a assegut en una placa base Robodyssey Advanced II. El processador es va escollir per la seva velocitat, facilitat d’ús, cost assequible i 8 entrades analògiques. Està connectat a una gran placa de prototipatge per permetre canvis ràpids i fàcils. Tota la potència del robot prové de la font d'alimentació de la placa base. El Zbasic es comunica amb el roomba a través del port de la nau de càrrega i té un control total sobre els motors i els sensors de Roomba.

Pas 6: Visió general del codi

Visió general del codi
Visió general del codi

Evitació d'obstacles: per evitar obstacles, eyeRobot utilitza un mètode on els objectes propers al robot exerceixen una força virtual sobre el robot allunyant-lo de l'objecte. En altres paraules, els objectes aparten el robot de si mateixos. En la meva implementació, la força virtual exercida per un objecte és inversament proporcional a la distància al quadrat, de manera que la força de l’empenta augmenta a mesura que l’objecte s’acosta i crea una corba de resposta no lineal: PushForce = ResponseMagnitudeConstant / Distance2Les empentes que provenen de cada sensor s’afegeixen; els sensors del costat esquerre empenyen cap a la dreta i viceversa per obtenir un vector per al viatge del robot. Les velocitats de les rodes es canvien de manera que el robot gira cap a aquest vector. Per garantir que els objectes morts davant del robot no presentin "cap resposta" (perquè les forces d'ambdós costats s'equilibren), els objectes del front mort empenyen el robot cap al costat més obert. Quan el robot ha passat l'objecte, fa servir els codificadors de Roomba per corregir el canvi i tornar al vector original.

Seguiment de la paret: el principi del seguiment de la paret és mantenir la distància desitjada i l’angle paral·lel a la paret. Els problemes sorgeixen quan es gira el robot en relació amb la paret perquè el sensor únic proporciona lectures de rang inútils. Les lectures de rang s’efectuen tant per l’angle dels robots a la paret com per la distància real a la paret. Per tal de determinar l’angle i així eliminar aquesta variable, el robot ha de tenir dos punts de referència que es puguin comparar per obtenir l’angle del robot. Com que el eyeRobot només té un telemetre IR cap a un costat, per aconseguir aquests dos punts ha de comparar la distància del telemetre al llarg del temps a mesura que el robot es mou. A continuació, determina el seu angle a partir de la diferència entre les dues lectures a mesura que el robot es mou al llarg de la paret. A continuació, utilitza aquesta informació per corregir un posicionament inadequat. El robot entra en mode seguiment de paret cada vegada que té una paret al costat durant un cert temps i surt d’ell sempre que hi ha un obstacle al seu pas, que l’empeny fora del seu rumb o si l’usuari utilitza el mànec de gir per portar el robot lluny de la paret.

Pas 7: llista de peces

Llista de peces
Llista de peces

Peces necessàries: 1x) Roomba create1x) Full gran d’acrílic2x) Telemetre Sharp GP2Y0A02YK IR4x) Telemetres ultrasònics Maxsonar EZ11x) Microprocessador ZX-24a1x) Placa base Robodyssey II1x) Potenciòmetre lliscant1x) Potenciòmetre de gir únic1) Consola lineal)) Frontisses, tacs, cargols, femelles, mènsules i cables

Pas 8: Motivació i millora

Motivació i millora
Motivació i millora

Motivació: aquest robot va ser dissenyat per omplir l’obvi que hi ha entre el gos guia capaç però car i el bastó blanc econòmic però limitat. En el desenvolupament d’una canya blanca robòtica comercialitzable i més capaç, Roomba Create va ser el vehicle perfecte per dissenyar un prototip ràpid per veure si el concepte funcionava. A més, els premis proporcionarien suport econòmic a la considerable despesa de construir un robot més capaç.

Millora: la quantitat que he après construint aquest robot ha estat substancial i aquí intentaré exposar el que he après a mesura que intento construir un robot de segona generació: 1) Evitació d'obstacles: he après molt sobre els obstacles en temps real evitació. En el procés de construcció d’aquest robot, he passat per dos codis d’evitació d’obstacles completament diferents, començant per la idea de força de l’objecte original, passant al principi de trobar i cercant el vector més obert i després tornant a la idea de força de l’objecte amb la comprensió clau que la resposta de l'objecte no hauria de ser lineal. En el futur corregiré el meu error de no fer cap investigació en línia de mètodes emprats anteriorment abans d’emprendre el meu projecte, ja que ara estic aprenent una cerca ràpida a Google que hauria donat nombrosos treballs fantàstics sobre el tema. sensors - Començant aquest projecte, vaig pensar que la meva única opció per a un sensor lineal era utilitzar un portaobjectes i una mena de coixinet lineal. Ara m’adono que una opció molt més senzilla hauria estat simplement fixar la part superior de la vareta a un joystick, de manera que empènyer el pal cap endavant també empenyia el joystick cap endavant. A més, una simple junta universal permetria traduir el gir del pal en l’eix de gir de molts joysticks moderns. Aquesta implementació hauria estat molt més senzilla que la que faig servir actualment. 3) Rodes giratòries lliures: tot i que això hauria estat impossible amb el Roomba, ara sembla obvi que un robot amb rodes giratòries lliures seria ideal per a aquesta tasca. Un robot que rodi passivament no necessitaria motors i una bateria més petita i, per tant, seria més lleuger. A més, aquest sistema no requereix cap sensor lineal per detectar l’empenta dels usuaris, el robot simplement rodaria a la velocitat dels usuaris. El robot es podia girar dirigint les rodes com si fos un cotxe i, si calia aturar l’usuari, es podrien afegir frens. Per a la propera generació eyeRobot, sens dubte utilitzaré aquest enfocament molt diferent. 4) Dos sensors espaiats per al seguiment de la paret: com es va comentar anteriorment, van sorgir problemes quan es tractava de seguir la paret amb només un sensor orientat cap a un costat, per la qual cosa era necessari moure el robot entre lectures. per aconseguir diferents punts de referència. Dos sensors amb una distància entre ells simplificarien molt el seguiment de la paret. 5) Més sensors: tot i que hauria costat més diners, va ser difícil intentar codificar aquest robot amb tan poques finestres al món fora del processador. Hauria fet que el codi de navegació fos molt més potent amb una matriu de sonar més completa (però, per descomptat, els sensors costen diners, cosa que no tenia aleshores).

Pas 9: Conclusió

Conclusió
Conclusió

Conclusió: l’iRobot va demostrar ser una plataforma de prototipatge ideal per experimentar amb el concepte de canya blanca robòtica. Dels resultats d’aquest prototip es desprèn que un robot d’aquest tipus és realment viable. Espero desenvolupar un robot de segona generació a partir de les lliçons que he après de l’ús de Roomba Create. En futures versions de eyeRobot, imagino un dispositiu capaç de fer més que guiar una persona pel passadís, més aviat un robot que es pugui posar a les mans de les persones invidents per utilitzar-lo en la vida quotidiana. Amb aquest robot, l’usuari simplement parlaria el seu destí i el robot els guiaria cap allà sense l’esforç conscient de l’usuari. Aquest robot seria prou lleuger i compacte per transportar-se fàcilment per les escales i ficar-lo en un armari. Aquest robot seria capaç de fer navegació global a més de local, podent guiar l'usuari des de l'inici fins a la destinació sense que els usuaris en tinguessin coneixement ni experiència prèvia. Aquesta capacitat aniria molt més enllà del gos guia, amb GPS i sensors més avançats que permeten als cecs navegar lliurement pel món, Nathaniel Barshay, (Introduït per Stephen Barshay) (gràcies especial a Jack Hitt per Roomba Create)

Pas 10: construcció i codi

Construcció i Codi
Construcció i Codi

Unes paraules estranyes a la construcció: la coberta està formada per un tros d’acrílic tallat en cercle amb una obertura a la part posterior per permetre l’accés de l’electrònica, i després es cargola als forats de muntatge al costat de la nau de càrrega. La placa de prototipatge es cargola al forat del cargol situat a la part inferior de la badia. El Zbasic es munta amb un suport L amb els mateixos cargols que la coberta. Cada sonar es cargola en una peça d’acrílic, que al seu torn s’uneix a un suport L fixat a la coberta (els suports L es doblegen cap enrere 10 graus per donar una millor visió). La pista del sensor lineal es cargola directament a la coberta i el pot de lliscament es munta amb suports L al costat. Podeu trobar una descripció més tècnica de la construcció del sensor lineal i la barra de control al pas 4.

Codi: he adjuntat la versió completa del codi de robots. Al llarg d’una hora he intentat netejar-lo de les tres o quatre generacions de codi que hi havia al fitxer, hauria de ser prou fàcil de seguir ara. Si teniu el ZBasic IDE, hauria de ser fàcil de visualitzar, si no, feu servir el bloc de notes començant pel fitxer main.bas i passant pels altres fitxers.bas.

Recomanat: