Tabla de contenido:
- Paso 1: demostración en video
- Paso 2: descripción general de la operación
- Paso 3: Sensores de rango
- Paso 4: Sensores de posición del bastón
- Paso 5: Procesador
- Paso 6: descripción general del código
- Paso 7: Lista de piezas
- Paso 8: Motivación y mejora
- Paso 9: Conclusión
- Paso 10: Construcción y código
Video: EyeRobot: el bastón blanco robótico: 10 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:44
Resumen: Con iRobot Roomba Create, he creado un prototipo de dispositivo llamado eyeRobot. Guiará a los usuarios ciegos y con discapacidad visual a través de entornos abarrotados y poblados utilizando el Roomba como base para unir la simplicidad del bastón blanco tradicional con los instintos de un perro lazarillo. El usuario indica su movimiento deseado presionando y girando intuitivamente el mango. El robot toma esta información y encuentra un camino despejado por un pasillo o a través de una habitación, utilizando un sonar para dirigir al usuario en una dirección adecuada alrededor de obstáculos estáticos y dinámicos. Luego, el usuario sigue detrás del robot mientras lo guía en la dirección deseada mediante la fuerza perceptible que se siente a través del mango. Esta opción robótica requiere poco entrenamiento: empujar para avanzar, tirar para detener, girar para girar. La previsión que proporcionan los telémetros es similar a la de un perro lazarillo, y es una ventaja considerable sobre el constante ensayo y error que marca el uso del bastón blanco. Sin embargo, eyeRobot todavía ofrece una alternativa mucho más barata que los perros guía, que cuestan más de $ 12, 000 y son útiles solo por 5 años, mientras que el prototipo se construyó por menos de $ 400. También es una máquina relativamente simple, que requiere algunos sensores económicos, varios potenciómetros, algo de hardware y, por supuesto, un Roomba Create.
Paso 1: demostración en video
Versión de alta calidad
Paso 2: descripción general de la operación
Control de usuario: el funcionamiento de eyeRobot está diseñado para ser lo más intuitivo posible para reducir o eliminar en gran medida la formación. Para comenzar el movimiento, el usuario simplemente tiene que comenzar a caminar hacia adelante, un sensor lineal en la base del palo detectará este movimiento y comenzará a mover el robot hacia adelante. Con este sensor lineal, el robot puede ajustar su velocidad a la velocidad deseada por el usuario. eyeRobot se moverá tan rápido como el usuario quiera. Para indicar que se desea un giro, el usuario simplemente tiene que girar el mango y, si es posible un giro, el robot responderá en consecuencia.
Navegación del robot: cuando se viaja en un espacio abierto, eyeRobot intentará mantener un camino recto, detectando cualquier obstáculo que pueda obstaculizar al usuario y guiando al usuario alrededor de ese objeto y de regreso al camino original. En la práctica, el usuario puede seguir naturalmente detrás del robot con poco pensamiento consciente. Para navegar por un pasillo, el usuario debe intentar empujar el robot hacia una de las paredes a cada lado, al adquirir una pared, el robot comenzará a seguirlo, guiando el usuario al final del pasillo. Cuando se llega a una intersección, el usuario sentirá que el robot comienza a girar y puede elegir, girando la manija, si desea bajar la nueva rama o continuar en una ruta recta. De esta manera el robot se parece mucho al bastón blanco, el usuario puede sentir el entorno con el robot y utilizar esta información para la navegación global.
Paso 3: Sensores de rango
Ultrasonidos: el eyeRobot lleva 4 telémetros ultrasónicos (MaxSonar EZ1). Los sensores ultrasónicos se colocan en un arco en la parte delantera del robot para proporcionar información sobre los objetos que se encuentran delante y a los lados del robot. Informan al robot sobre el alcance del objeto y lo ayudan a encontrar una ruta abierta alrededor de ese objeto y volver a su ruta original.
Telémetros de infrarrojos: el eyeRobot también lleva dos sensores de infrarrojos (GP2Y0A02YK). Los telémetros de infrarrojos están colocados de modo que miren 90 grados a la derecha y a la izquierda para ayudar al robot en el seguimiento de la pared. También pueden alertar al robot de objetos demasiado cerca de sus lados por los que el usuario puede entrar.
Paso 4: Sensores de posición del bastón
Sensor lineal: para que eyeRobot iguale su velocidad a la del usuario, eyeRobot detecta si el usuario está empujando o retardando su movimiento hacia adelante. Esto se logra deslizando la base del bastón a lo largo de una pista, ya que un potenciómetro detecta la posición del bastón. El eyeRobot utiliza esta entrada para regular la velocidad del robot. La idea de que el eyeRobot se adaptara a la velocidad del usuario a través de un sensor lineal se inspiró en realidad en el cortacésped familiar. La base del bastón está conectada a un bloque guía que se mueve a lo largo de un riel. Unido al bloque guía hay un potenciómetro deslizante que lee la posición del bloque guía y lo informa al procesador. Para permitir que la palanca gire en relación con el robot, hay una barra que atraviesa un bloque de madera y forma un cojinete giratorio. Luego, este cojinete se une a una bisagra para permitir que la palanca se ajuste a la altura del usuario.
Sensor de giro: el sensor de giro permite al usuario girar el mango para girar el robot. Se adjunta un potenciómetro al extremo de un eje de madera y la perilla se inserta y se pega en la parte superior del mango. Los cables corren por la clavija y alimentan la información de torsión en el procesador.
Paso 5: Procesador
Procesador: el robot está controlado por un Zbasic ZX-24a instalado en una placa base avanzada Robodyssey II. El procesador fue elegido por su velocidad, facilidad de uso, costo asequible y 8 entradas analógicas. Está conectado a una placa de prototipos de gran tamaño para permitir cambios rápidos y fáciles. Toda la energía del robot proviene de la fuente de alimentación de la placa base. El Zbasic se comunica con el Roomba a través del puerto de la bahía de carga y tiene control total sobre los sensores y motores del Roomba.
Paso 6: descripción general del código
Evitación de obstáculos: para evitar obstáculos, eyeRobot utiliza un método en el que los objetos cercanos al robot ejercen una fuerza virtual sobre el robot alejándolo del objeto. En otras palabras, los objetos empujan al robot lejos de sí mismos. En mi implementación, la fuerza virtual ejercida por un objeto es inversamente proporcional a la distancia al cuadrado, por lo que la fuerza del empuje aumenta a medida que el objeto se acerca y crea una curva de respuesta no lineal: PushForce = ResponseMagnitudeConstant / Distance2Los empujes provenientes de cada sensor se suman; los sensores del lado izquierdo empujan hacia la derecha, y viceversa, para obtener un vector para el recorrido del robot. Luego, se cambian las velocidades de las ruedas para que el robot gire hacia este vector. Para asegurarse de que los objetos muertos frente al robot no muestren una "no respuesta" (porque las fuerzas en ambos lados se equilibran), los objetos en el frente muerto empujan al robot hacia el lado más abierto. Cuando el robot ha pasado el objeto, utiliza los codificadores de Roomba para corregir el cambio y volver al vector original.
Seguimiento de muro: el principio del seguimiento de muro es mantener una distancia deseada y un ángulo paralelo a un muro. Los problemas surgen cuando el robot se gira en relación con la pared porque el sensor único produce lecturas de rango inútiles. Las lecturas de rango se efectúan tanto por el ángulo del robot con la pared como por la distancia real a la pared. Para determinar el ángulo y así eliminar esta variable, el robot debe tener dos puntos de referencia que se puedan comparar para obtener el ángulo del robot. Debido a que el eyeRobot solo tiene un telémetro de infrarrojos orientado hacia un lado, para lograr estos dos puntos debe comparar la distancia desde el telémetro a lo largo del tiempo a medida que el robot se mueve. Luego determina su ángulo a partir de la diferencia entre las dos lecturas a medida que el robot se mueve a lo largo de la pared. Luego usa esta información para corregir el posicionamiento incorrecto. El robot entra en el modo de seguimiento de la pared siempre que tiene una pared junto a él durante un cierto período de tiempo y sale de él siempre que hay un obstáculo en su camino, que lo empuja fuera de su curso, o si el usuario usa el mango giratorio para llevar el robot lejos de la pared.
Paso 7: Lista de piezas
Piezas necesarias: 1x) Roomba create1x) Lámina grande de acrílico 2x) Telémetro IR Sharp GP2Y0A02YK4x) Telémetros ultrasónicos Maxsonar EZ1 1x) Microprocesador ZX-24a 1x) Placa base avanzada Robodyssey II1x) Potenciómetro deslizante 1x) Potenciómetro de una sola vuelta 1x) Rodamiento lineal 1x) Bisagras, tacos, tornillos, tuercas, soportes y alambres
Paso 8: Motivación y mejora
Motivación: este robot fue diseñado para llenar la brecha obvia entre el perro guía capaz pero costoso y el bastón blanco económico pero limitado. En el desarrollo de un bastón blanco robótico comercializable y más capaz, el Roomba Create fue el vehículo perfecto para diseñar un prototipo rápido para ver si el concepto funcionaba. Además, los premios proporcionarían un respaldo económico para el gasto considerable de construir un robot más capaz.
Mejora: La cantidad que aprendí construyendo este robot fue sustancial y aquí intentaré exponer lo que he aprendido a medida que avanzo para intentar construir un robot de segunda generación: 1) Evitación de obstáculos: he aprendido mucho sobre obstáculos en tiempo real evitación. En el proceso de construcción de este robot, he pasado por dos códigos de evitación de obstáculos completamente diferentes, comenzando con la idea de fuerza del objeto original, luego pasando al principio de encontrar y buscar el vector más abierto, y luego volviendo a la idea de fuerza del objeto con la comprensión clave de que la respuesta del objeto debe ser no lineal. En el futuro, corregiré mi error de no hacer ninguna investigación en línea de los métodos utilizados anteriormente antes de embarcarme en mi proyecto, ya que ahora estoy aprendiendo que una búsqueda rápida en Google habría arrojado numerosos artículos excelentes sobre el tema. sensores: al comenzar este proyecto, pensé que mi única opción para un sensor lineal era usar una olla deslizante y algún tipo de cojinete lineal. Ahora me doy cuenta de que una opción mucho más simple hubiera sido simplemente unir la parte superior de la barra a un joystick, de modo que empujar el joystick hacia adelante también empujaría el joystick hacia adelante. Además, una simple junta universal permitiría que el giro de la palanca se traduzca en el eje de giro de muchos joysticks modernos. Esta implementación habría sido mucho más simple que la que uso actualmente. 3) Ruedas de giro libre: aunque esto hubiera sido imposible con el Roomba, ahora parece obvio que un robot con ruedas de giro libre sería ideal para esta tarea. Un robot que rueda pasivamente no necesitaría motores y una batería más pequeña y, por lo tanto, sería más liviano. Además, este sistema no requiere un sensor lineal para detectar el empuje del usuario, el robot simplemente rodaría a la velocidad del usuario. El robot se podía girar girando las ruedas como un automóvil, y si el usuario necesitaba detenerse, se podían agregar frenos. Para la próxima generación de eyeRobot, ciertamente usaré este enfoque muy diferente.4) Dos sensores espaciados para el seguimiento de la pared: como se discutió anteriormente, surgieron problemas al intentar realizar el seguimiento de la pared con un solo sensor orientado hacia un lado, por lo que era necesario mover el robot entre lecturas para lograr diferentes puntos de referencia. Dos sensores con una distancia entre ellos simplificarían enormemente el seguimiento de la pared.5) Más sensores: aunque esto habría costado más dinero, fue difícil intentar codificar este robot con tan pocas ventanas en el mundo fuera del procesador. Habría hecho que el código de navegación fuera mucho más poderoso con una matriz de sonar más completa (pero, por supuesto, los sensores cuestan dinero, que no tenía en ese momento).
Paso 9: Conclusión
Conclusión: El iRobot demostró ser una plataforma de creación de prototipos ideal para experimentar con el concepto de un bastón blanco robótico. A partir de los resultados de este prototipo, es evidente que un robot de este tipo es realmente viable. Espero desarrollar un robot de segunda generación a partir de las lecciones que he aprendido al usar Roomba Create. En futuras versiones de eyeRobot, visualizo un dispositivo capaz de hacer más que simplemente guiar a una persona por un pasillo, más bien un robot que se puede poner en manos de los ciegos para su uso en la vida cotidiana. Con este robot, el usuario simplemente diría su destino y el robot lo guiaría allí sin un esfuerzo consciente por parte del usuario. Este robot sería lo suficientemente ligero y compacto como para subirlo fácilmente por las escaleras y guardarlo en un armario. Este robot sería capaz de realizar navegación global además de local, pudiendo guiar al usuario desde el inicio hasta el destino sin el conocimiento o experiencia previa del usuario. Esta capacidad iría mucho más allá incluso del perro guía, con GPS y sensores más avanzados que permiten a los ciegos navegar libremente por el mundo, Nathaniel Barshay, (Presentado por Stephen Barshay) (Agradecimiento especial a Jack Hitt por el Roomba Create)
Paso 10: Construcción y código
Algunas palabras extrañas sobre la construcción: la plataforma está hecha con un trozo de acrílico cortado en un círculo con una abertura en la parte posterior para permitir el acceso a los dispositivos electrónicos, y luego se atornilla en los orificios de montaje al lado del compartimento de carga. La placa de creación de prototipos se atornilla en el orificio del tornillo en la parte inferior de la bahía. El Zbasic se monta con un soporte en L con los mismos tornillos que la plataforma. Cada sonda está atornillada en una pieza de acrílico, que a su vez está unida a un soporte en L unido a la plataforma (los soportes en L están doblados hacia atrás 10 grados para brindar una mejor vista). La pista para el sensor lineal se atornilla directamente en la plataforma y la olla deslizante se monta con soportes en L al lado. En el paso 4 se puede encontrar una descripción más técnica de la construcción del sensor lineal y la barra de control.
Código: he adjuntado la versión completa del código de robots. En el transcurso de una hora he intentado limpiarlo de las tres o cuatro generaciones de código que estaban en el archivo, debería ser bastante fácil de seguir ahora. Si tiene el IDE de ZBasic, debería ser fácil de ver, si no, use el bloc de notas comenzando con el archivo main.bas y pasando por los otros archivos.bas.
Recomendado:
Calabaza de Halloween con un ojo animatrónico en movimiento - ¡Esta calabaza puede poner los ojos en blanco !: 10 pasos (con imágenes)
Calabaza de Halloween con un ojo animatrónico en movimiento | ¡Esta calabaza puede rodar sus ojos !: En este Instructable, aprenderás cómo hacer una calabaza de Halloween que aterroriza a todos cuando sus ojos se mueven. Ajusta la distancia de disparo del sensor ultrasónico al valor correcto (paso 9), y tu calabaza petrificará a cualquiera que se atreva a tomar cand
Ilumina a Gandalf el bastón blanco: 9 pasos
Ilumina a Gandalf el bastón blanco: siempre quise un Gandalf el bastón blanco desde que vi El señor de los anillos. Encontré un diseño para uno en Thingivers.com. Usando Tinkercad modifiqué el diseño para iluminar
Sensor de distancia (para bastón blanco): 3 pasos
Sensor de distancia (para bastón blanco): Instructables ya ha cubierto ampliamente un sensor de distancia típico. Por eso, quería probar una adaptación de este conocido concepto, como una aplicación para un bastón blanco. Los bastones blancos son los bastones que usan los ciegos para decirles dónde está el p
Detección de obstáculos del bastón blanco: 5 pasos
Detección de obstáculos del bastón blanco: En mi escuela, mi maestro estaba hablando sobre tecnología de asistencia y cómo podemos hacer herramientas para ayudar a otras personas. Estaba intrigado por esta idea, así que decidí crear un sistema de advertencia de obstáculos impredecibles para las personas con discapacidad visual. Fo
Bastón blanco con voz de Arduino (primera parte): 6 pasos (con imágenes)
Bastón blanco con voz de Arduino (Primera parte): Hace años, estaba con un estudiante que tenía un familiar ciego, me di cuenta de que podíamos llegar a una pequeña solución capaz de hacer audible cuántos pasos había algún obstáculo, obviamente un arduino con números previamente registrados podría