Taula de continguts:
- Pas 1: demostració de vídeo
- Pas 2: Visió general de l'operació
- Pas 3: Sensors d'abast
- Pas 4: Sensors de posició de la canya
- Pas 5: processador
- Pas 6: Visió general del codi
- Pas 7: llista de peces
- Pas 8: Motivació i millora
- Pas 9: Conclusió
- Pas 10: construcció i codi
Vídeo: EyeRobot: la canya blanca robòtica: 10 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:16
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
Versió d'alta qualitat
Pas 2: Visió 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
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
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: 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
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
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ó: 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ó: 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
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:
Sensor de distància (per a canya blanca): 3 passos
Sensor de distància (per a canya blanca): Instructores ja ha cobert àmpliament un sensor de distància típic. Per tant, volia provar una adaptació d’aquest conegut concepte, com a aplicació per a una canya blanca. Les canyes blanques són les canyes que fan servir els cecs per dir-los on són les p
Detecció d'obstacles de canya blanca: 5 passos
Detecció d'obstacles de canya blanca: a la meva escola, el meu professor parlava de tecnologia assistencial i de com podem fer eines per ajudar altres persones. Aquesta idea em va intrigar, així que vaig decidir crear un sistema d’alerta contra obstacles imprevisibles per a aquells amb discapacitat visual. Fo
Adorns de gespa de canya de caramel: 6 passos (amb imatges)
Adorns de gespa de canya de caramel: Data d’inici del projecte: 8 de desembre de 2018 Data de finalització del projecte: 21 de desembre de 2018 INTRODUCCIÓ: Aquest projecte descriu com construir adorns de gespa grans il·luminats amb LEDs adreçables. Concretament construirem un grup de quatre canyes de 40 "que es il·luminen amb 2
Ull de canya: veure amb les orelles: 16 passos (amb imatges)
Ull de canya: veure amb les orelles: vull crear una canya intel·ligent que pot ajudar les persones amb discapacitat visual molt més que les solucions existents. La canya serà capaç de notificar a l'usuari els objectes anteriors o laterals fent un soroll en el so envoltant t
Arduino amb veu de canya blanca (primera part): 6 passos (amb imatges)
Arduino Voiced White Cane (primera part): Fa anys, estava amb un estudiant que tenia un membre de la família que era cec, em vaig adonar que podríem arribar a una petita solució capaç de fer audible quants passos hi havia algun obstacle, evidentment arduino amb números enregistrats prèviament podria