Robot resuelve laberintos arduino

Robot resuelve laberintos arduino

Robot resuelve laberintos arduino

Robot para resolver laberintos instructables

En el modo manual el dispositivo es controlado por el usuario. El usuario puede ver el vídeo del robot en su ordenador personal y conducir el robot de acuerdo con él. La información de vídeo y las órdenes del usuario se transfieren mediante un módulo bluetooth.
En el modo automático, el robot supera el laberinto por sí mismo utilizando la lógica implementada. Para ello se utilizan 4 sensores de sonar para determinar las posiciones de las paredes. El robot toma continuamente las lecturas de los sensores y después de analizarlas toma la decisión sobre la dirección a seguir.
Como se ha mencionado anteriormente, este solucionador de laberintos tiene dos modos. En el modo manual el robot es controlado por el usuario y en el modo automático el propio robot resuelve el laberinto. El modo que debe ejecutar el robot se envía desde el ordenador personal del usuario mediante el módulo bluetooth. Si se selecciona el modo manual, el dispositivo recibe constantemente datos del usuario mediante el módulo bluetooth. El módulo bluetooth también proporciona información de vídeo al usuario para determinar la posición del robot. A partir del análisis de la retroalimentación de vídeo se puede dar la orden sobre en qué dirección ir. Una vez que el robot ha recibido la orden del usuario, se dirige en esa dirección. Además, el usuario puede mover la cámara para ver mejor el laberinto.

Solucionador automático de laberintos

H Dang, J Song, Q Guo. Un algoritmo eficiente para la resolución de laberintos por parte de robots. 2010 Second International Conference on Intelligent Human-Machine Systems and Cybernetics. Nanjing Jiangsu, China. 2010, 26-28 de agosto.
Zhuang Cai, Lu Ye, Ang Yang. Floodfill maze solving with expected toll of penetrating unknown walls for micromouse. Proceedings of High Performance Computing and Communication & IEEE 9th International Conference on Embedded System and Software. Liverpool, Reino Unido. 2012, 25-27 de junio.
Kazerouni BH, Moradi MB, Kazerouni PH. Prioridad variable en los algoritmos de resolución de laberintos para el movimiento del robot. Actas de la Conferencia Internacional del IEEE sobre Informática Industrial. Banff, AB, Canadá. 2003, Aug. 21-24.
B Gupta, S Sehgal. Encuesta sobre las técnicas utilizadas en el robot autónomo de resolución de laberintos. 2014, 5ª Conferencia Internacional Confluence The Next Generation Information Technology Summit (Confluence). Noida. 2014, Sept. 25-26.

Algoritmo del robot solucionador de laberintos

En mi escuela tenemos un proyecto en el que tenemos que hacer un robot que pueda resolver un laberinto en 3D utilizando un robot controlado por arduino que utiliza sensores ultrasónicos para determinar cómo girar. El robot no puede estar preprogramado y debe funcionar en todos los laberintos simples con giros de 90d.
He descubierto la mayor parte del código creo, sin embargo mi problema es que cuando el robot tiene que girar. Como la cantidad y la dirección en la que el robot debe girar está determinada por los sensores de distancia, la distancia a las esquinas aumenta, haciéndola más larga de lo que se requiere para girar. Esto hace que el robot quiera volver a girar hacia la esquina y entonces se queda atascado en un bucle de giros dentro y fuera de la esquina (ver imagen adjunta).
El robot se compone de tres sensores ultrasónicos, delantero, derecho e izquierdo. El robot tiene orugas que le permiten girar sobre la marcha. El arduino es un arduino mega, por lo que es rápido en la actualización y medición de los valores (a menos que el tiempo necesario para la medición de la distancia sea largo).
Lo que hace es romper el ciclo a 1Hz (cambiar como quieras). Cuando se utilizan ultrasonidos (como en las imágenes), siempre es una buena idea reducir los intervalos entre cada lectura, ya que permite que el ruido residual se calme. Imagina el pitido del sonar de un submarino.

Resolver un laberinto de autoaprendizaje

En mi escuela tenemos un proyecto en el que tenemos que hacer un robot que pueda resolver un laberinto en 3D utilizando un robot controlado por arduino que utiliza sensores ultrasónicos para determinar cómo girar. El robot no puede estar preprogramado y debe funcionar en todos los laberintos simples con giros de 90d.
He descubierto la mayor parte del código creo, sin embargo mi problema es que cuando el robot tiene que girar. Como la cantidad y la dirección en la que el robot debe girar está determinada por los sensores de distancia, la distancia a las esquinas aumenta, haciéndola más larga de lo que se requiere para girar. Esto hace que el robot quiera volver a girar hacia la esquina y entonces se queda atascado en un bucle de giros dentro y fuera de la esquina (ver imagen adjunta).
El robot se compone de tres sensores ultrasónicos, delantero, derecho e izquierdo. El robot tiene orugas que le permiten girar sobre la marcha. El arduino es un arduino mega, por lo que es rápido en la actualización y medición de los valores (a menos que el tiempo necesario para la medición de la distancia sea largo).
Lo que hace es romper el ciclo a 1Hz (cambiar como quieras). Cuando se utilizan ultrasonidos (como en las imágenes), siempre es una buena idea reducir los intervalos entre cada lectura, ya que permite que el ruido residual se calme. Imagina el pitido del sonar de un submarino.

Acerca del autor

admin

Ver todos los artículos