Tabla de contenido:

EyeRobot: el bastón blanco robótico: 10 pasos (con imágenes)
EyeRobot: el bastón blanco robótico: 10 pasos (con imágenes)

Video: EyeRobot: el bastón blanco robótico: 10 pasos (con imágenes)

Video: EyeRobot: el bastón blanco robótico: 10 pasos (con imágenes)
Video: La primer humanoide robot del mundo 🤖😳😱 #robot #robotics #robots #robotandroide #androide #humanoide 2024, Noviembre
Anonim
EyeRobot: el bastón blanco robótico
EyeRobot: el bastón blanco robótico

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

Demostración en video
Demostración en video

Versión de alta calidad

Paso 2: descripción general de la operación

Descripción general de la operación
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

Sensores de rango
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

Sensores de posición del bastón
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
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

Descripción general del código
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

Lista de partes
Lista de partes

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 y mejora
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
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

Construcción y Código
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: