jump to navigation

Grupo Cibertron Laberinto mayo 28, 2009

Posted by robotlego in Uncategorized.
3 comments

LABERINTO CON ROBOT LEGO NXT

El proyecto consiste en enviar al robot lego NXT a través de un laberinto con 16 entradas y 16 salidas.

Se debe de cumplir que el robot no recorra una misma trayectoria, esto quiere decir que si el NXT es colocado en una de las entradas y termina su recorrido por una de las salidas, al volverlo a colocar en la misma entrada, éste no debe terminar en la misma salida.

Para conseguir esto se tendría que almacenar en memoria las trayectorias posibles que se pueden obtener de una misma situación, pero en estas condiciones se tiene el inconveniente de la poca capacidad de memoria que posee el robot lego NXT.

Una solución parcial –por la que nosotros optamos- es generar un número aleatorio –cero ó uno- con el cual el robot elegirá si cruzar a la izquierda ó hacerlo hacia la derecha y así evitar que se repita la trayectoria.

Con esta alternativa únicamente podemos jugar con las estadísticas y no tenemos la certeza de que no seguirá el mismo camino dos veces seguidas.

Para determinar la probabilidad de que el robot siga un determinado trayecto, por ejemplo el mostrado en negrilla a continuación:

Observamos que para este caso particular -y también para cualquier otro- para llegar al medio del laberinto desde la entrada se tiene solamente un camino posible –un único camino para cada uno de los posibles casos-, por lo que el NXT siempre seguirá la misma trayectoria hasta llegar al medio del laberinto para una misma entrada. Por lo tanto para calcular la probabilidad de que el NXT siga un trayecto completo determinado se tomará en cuenta únicamente el lado derecho del laberinto. Observamos que en la mitad derecha del laberinto, para llegar a una de las salidas existen cuatro puntos de decisión, por lo que la probabilidad de que el robot siga uno de los dos caminos posibles en cada uno de los puntos de decisión es de 1/2. Con lo cual calculamos la probabilidad de que el robot siga la trayectoria en negrilla:

Lo cual determina que la probabilidad de que el NXT siga un determinado camino es de 6.25%.

Así por ejemplo si colocáramos al robot en el laberinto y este realizara el recorrido en negrilla, la probabilidad que al volver a colocar el robot en la misma entrada y este siguiera el mismo camino es de 1/16 o 6.25%.

Para montar el laberinto tomamos en cuenta las experiencias que han tenido otros grupos de semestres anteriores en proyectos similares, en cuanto a que sensor utilizar y la mejor manera de construir el laberinto, si era conveniente que tuviera paredes o no, cual forma utilizar para los caminos, si era mejor que fueran curvos ó con ángulos de 90°, etcétera.

Usamos el sensor de luz para seguir los caminos que serían de color negro sobre un fondo blanco. Después pensamos en que lenguaje hacer el programa, solo teníamos dos opciones: Java o Lego Mindstorms NXT. Ninguno de los integrantes del grupo había utilizado ninguno de los dos lenguajes. Sabíamos que Java es más difícil de utilizar, pero se podía programar de mejor manera; estábamos al tanto que el Lego Mindstorms NXT se programa con bloques y contar con poco tiempo nos decidimos por el segundo.

Además tuvimos que determinar si utilizar en las pistas de los caminos nodos –en los puntos de decisión- con papel de otro color como lo han hecho grupos en semestres anteriores. Para las especificaciones del proyecto no nos pareció relevante pues en nuestro diseño, al llegar a un punto de decisión el NXT se saldría de la pista y al buscarla por medio del sensor de luz, al utilizarse la función random en algunas ocasiones buscaría el lado derecho y en otras ocasiones preferiría el izquierdo.

el link del  video es: http://www.youtube.com/watch?v=-_HFQcwxPMw&feature=related

RECOMENDACIONES
• Tener calibrado el sensor de luz al ambiente en el cual se trabajará.

• Se deben de tener baterías de repuesto, pues el NXT no responde de la misma manera con baterías nuevas que con baterías con carga baja.

• Trabajar en una superficie plana.

MEJORAS RECOMENDADAS

• Buscar y determinar mejores diseños para el laberinto.

• Utilizar otros sensores, por ejemplo podría usarse el sensor de tacto colocando bordes para los puntos de decisión.

• Encontrar un mejor diseño para el armado del robot Lego.

OPINIÓN PERSONAL DEL PROYECTO

• Aunque es una buena idea el trabajar con los robots, también es cierto que se tienen ciertas limitaciones que se deben tratar de corregir; como por ejemplo el poco tiempo que cada grupo pudo tener el robot para trabajar con el, creo que esto es una limitante considerable para que el proyecto pudiera ser mejor.

Ronald Peren 2001-12958
Edgar Alexander 2002-13037

GRUPO ELECTRONICOS mayo 28, 2009

Posted by robotlego in Uncategorized.
5 comments

1

Descripción del Proyecto:

Objetivo: Utilizando la tecnología de Lego Mindstorms NXT para crear el código .Fabricar un modelo adecuado. El robot debe resolver el laberinto a partir de una entrada elegida, deberá  salir primero del laberinto, luego entrar nuevamente al laberinto desde cualquier salida y tomar la misma ruta a modo de regresar hasta la entrada de donde comenzó.

Dependiendo de la fotrma en que se debida fabricar el laberinto el proyecto se pòdría complñicar más. Pero básicamente si dividimos el problema en dos partes así: 1- El robot resuelve el laberinto; 2-El robot llega al final del laberinto y regresa por la misma ruta que tomó anteriormente. Se encontrará que la parte díficil es qeu tome la misma ruta al regreso.

Solución:

Modelo de Robot: Se eligió un modelo simple pero eficiente para resolver el laberinto. Con dos sensores montados: el de luz y el de toque.

Obstáculos: Se utilizan dos obstáculos iguales. Al colocar el robot en la entrada que se desea, se coloca en el mismo lugar un obstáculo.  Luego en cualquiera de las salidas se coloca el otro obstáculo.

Proceso Lógico: Se coloca al robot y un obstáculo en la entrada deseada. Se calibra el sensor de acuerdo a la superficie y el color de la trayectoria .El robot entra al laberinto buscando las salidas en el otro extremo del laberinto. Se utilizan dos variables para que lea las rotaciones de cada motor en cada instante. Mientras se dirige hacia las salidas guarda en las variables la cantidad de grados que rota cada motor. Luego cuando encuentra el segundo obstáculo en cualquiera de las salidas, retrocede y gira hasta encontrar de nuevo la línea. Abre un ciclo en el cual repite las mismas rotaciones  y trayectoria previa hasta llegar al otro extremo del laberinto. Repite todas las trayectorias que hizo en las entradas hasta encontrar el obstáculo que le indica el lugar de donde salió.

Fotografía Laberinto:

3

Recomendaciones

-Es mucho más sencillo utilizar un laberinto con curvas que uno con líneas rectas perpendiculares, es posible realizar el proyecto así, pero se complica a nivel de código.

-Cualquier modelo de  robot pequeño es útil para realizar el proyecto para obtener más precisión de movimiento.

-Evitar usar dentro del código los bloques “Record/Play” y “File Access” para optimizar el uso de memoria en el Brick.

-Minimizar el uso de colores en el laberinto dentro de cualquier solución posible para el proyecto, para evitar calibraciones complejas para el sensor de luz.

Conclusiones

-El laberinto utilizado es un entorno ideal creado por intervención humana, en una situación real de exploración sería necesario el uso de sensores especializados y un hardware más avanzado.

- Para cualquier configuración de laberinto existen muchas soluciones, pero en general casi todas necesitan crear y leer variables o archivos.

-Si se utiliza señalización de entradas y salidas se minimiza el uso de memoria y se reduce la complejidad del código.

-Para cualquier solución es más sencillo utilizar activaciones de procesos por sensores que por variables o períodos de tiempo.

Link para ver el video:

http://www.youtube.com/watch?v=xpAFxMUynAg

Referencias:

http://www.nxtprograms.com/

Autores:

Nestor Daniel Chicas Monroy   200819019

René Alexander Ramos Díaz    200815411

Consultas:

nestorchicas@hotmail.com,  alexlithium@hotmail.com , manueldariofajardo@gmail.com,  civillavicencios@gmail.com,  otto_garci@hotmail.com


Laberinto del Grupo RL mayo 28, 2009

Posted by robotlego in Laberinto.
1 comment so far

Para poder realizar el proyecto se utilizaron dos motores, un sensor de luz, un brick, lo primero con lo que se empezó fue analizar el ambiente en donde se iba a programar, en este caso la programación de bloques. Ya que nos topábamos con un nuevo paradigma al no saber nada de este programa leyendo documentación relacionada con el programa, y probándolo junto con el robot nos fuimos familiarizando con la programación de bloques.

El paso siguiente fue la elaboración de nuestro robot, al principio empezamos con el tribot, pero el robot era algo grande, lo cual le quitaba velocidad y no tenia el aspecto que nosotros queríamos darle, además de que los cables que conectaban a los motores y al sensor resaltaban mucho y opacaban la imagen del robot.

Wall-e 1.0

Wall-e 1.0

Haciendo modificaciones y ajustando piezas logramos hacer un nuevo robot, con menos piezas de las que habíamos utilizado anteriormente, le dimos vuelta al brick y lo inclinamos para que los cables se pudieran adaptar mejor y bautizamos a nuestro robot como Wall-e.

Wall-e 2.0

Wall-e 2.0

Teniendo diseñado el robot y entendido el programa, empezamos con el proyecto. Nos pusimos a pensar como haríamos el laberinto, al principio, nuestra idea era que siguiera una línea negra y que siguiera hasta que encontrara el final del laberinto, hicimos pruebas, al principio seguía la línea negra todo iba bien hasta que nos topamos con un problema, ¿Qué hacer si el robot llega a una intersección o quiere cruzar? Esto nos puso a pensar en muchas soluciones posibles hasta que optamos por la utilización de un tercer color, este podría ser azul, rojo o amarillo. Nuestra idea era muy lógica, pero tuvimos problemas al encontrar la frecuencia hasta que finalmente la encontramos e hicimos la intersección de verde. Nos pusimos a trabajar y empezamos a ver ligeros errores en nuestra idea, como el rango de colores blanco y negro combinados esta entre los valores medios , siempre que el robot se desviaba del camino, el sensor detectaba que estaba en el verde, esto nos ocasionó varios problemas, ya que no sabíamos que hacer. Buscamos una solución a este problema y encontramos que el color celeste esta entre el rango del blanco y el negro, y optamos cambiar el camino negro por celeste y las intersecciones verdes por negras.

Laberinto

Laberinto

Nuestro proyecto avanzaba bien pero no lo teníamos terminado porque ahora el robot debía regresar a su camino por si se desviaba, analizando todos los movimientos posibles que el robot podía tomar, nos dimos cuenta de que existía una forma de que el robot siempre regresara a la línea, y le dimos solución utilizando una secuencia de movimientos: para el lado izquierdo si encuentra blanco la primera vez, retrocedería, daría una vuelta de hacia delante a 90 grados y avanzaría un poco, y para el lado derecho haría los mismos movimientos que para el izquierdo solo que si sigue sin encontrarla línea blanca regresa a su posición de inicio retrocede, da una vuelta de 90 hacia delante y sigue su camino.

Hasta el momento habíamos solucionado cada uno de los problemas que nos encontramos individualmente, ahora el desafío con el que nos encontramos fue de unir todas las partes para que funcionara nuestro programa, al principio no sabíamos como unirlos, y no sabíamos cual parte era cual porque era un programa muy extenso, pero encontramos una solución, al trabajarlo por medio de bloques predeterminados, una función muy útil para trabajar ordenado.

Todos los problemas que encontramos a lo largo del proyecto se convirtieron en oportunidades, porque cada problema a la vez daba solución a un futuro problema.

Al momento de probar nuestro proyecto en el laberinto, observándolo nos dimos cuenta de que la luz influía mucho en el funcionamiento de nuestro robot, así que adicional a eso añadimos al programa para que calibrara el sensor de luz, esto nos ahorró muchos problemas futuros, porque ahora con la luz daba menos problema nuestro proyecto. Aunque a veces daba problema al funcionar en la claridad total nuestro robot siempre funcionaba en un ambiente donde la luz estaba opaca, también decidimos tapar el sensor para que no le entrara mucha luz. Para que no nos topáramos con más problemas

Conclusiones:

• Con ayuda del robot lego mindstorm NXT se pueden aprender las bases de la
Mecatrónica, (mecánica, electrónica y programación), con las cuales se pueden
realizar infinidad de aplicaciones, en este caso resolver un laberinto.

• La utilización del programa de bloques, facilita el aprendizaje en la programación, ya que además de ser interactivo, cualquier persona que haya o no aprendido cualquier lenguaje de programación lo puede entender, debido a su ambiente grafico.

Recomendaciones

Wall-E evolution 026

Para este proyecto se recomienda analizar bien los posibles movimientos que tomaría el robot para solucionar cada uno de los problemas que se presenten y tener un conocimiento suficiente de programación a objetos.

Cuando se trabajen con sensores de luz, lo más recomendable es calibrar el sensor de luz antes de empezar a trabajar.

Si se trabajan con tres colores como en este caso, tener cuidado con los rangos que el sensor de luz vaya a detectar, ya que un pequeño, máximo o intermedio rango que el sensor pueda llegar a detectar confundirá los colores que se hayan determinado en la programación.

Tapar el sensor de luz, ya que en mucha claridad confunde los colores que se determinaron.

Tener mucha paciencia si no salen las cosas como se planeaban, y ver los problemas como oportunidades.

Familiarizarse antes de empezar con el proyecto con su entorno de programación.

Trabajar por bloques personalizados “My blocks” para realizar cada tarea específica, además de ahorrar tamaño y no tener en pantalla una infinidad de procesos, esto ayuda mantener el programa ordenado, y verificar más rápido el error si es que se llega a tener uno.

Utilizar sonidos al empezar cada proceso, esto también ayuda a la verificación de errores ya que si se queda trabado en un proceso se podrá verificar en donde se tuvo el error.

Video

En este video puede observar más de cerca el robot y las pruebas preliminares

Aca pueden apreciar como quedo nuestro robot terminado

Integrantes del Grupo RL

SELVYN DONALD VILLATORO HERNANDEZ        

200818855                             s_villatoro89@ hotmail.es

CHRISTIAN ADEMAR GONZÁLEZ COY                     

200815239                            don_ademar@hotmail.com          

SANDY JUDITH KIHN ALARCÓN                         

 200819020                         sandykihn@gmail.com

JORGE ALEJANDRO CAJAS OCHOA                             

200815576                         Rukario19@gmail.com

robot lego Grupo L.E. mayo 28, 2009

Posted by robotlego in Uncategorized.
1 comment so far

El proyecto consiste en la elaboración y resolución de un laberinto por medio del robot mindstorm de lego, el cual deberá ser programado de forma que reconozca el camino del laberinto entrando desde una de las ocho entradas y saliendo del mismo por una de sus ocho salidas, el robot debe estar programado para que encuentre una salida aleatoriamente.

 Grupo L.E.CIMG3906

El robot de lego consta de 4 censores para poder interactuar con su entorno los cuales son el censor de sonar, el censor de sonido, el censor de luz y el censor de toque. Para poder determinar que caminos se recorrían se utilizo el censor de luz. La lógica que utilizamos para el proyecto fue que el robot caminara directamente hacia al frente cuando detectara poca luz, ósea la pista marcada en negro, y que al llegar a un área de mucha luz (área blanca) que hiciera un rastreo para encontrar luz oscura girando para ambos lados un ángulo de 90 grados, tomando cualquier lado al azar como primer rastreo, después de encontrar el área de poca luz otra ves nos dimos con el problema que el robot quedaba muy desviado de su ruta por lo que le añadimos de que al encontrar un área poco iluminada que girara aun mas hacia adentro de modo que el robot quedara alineado, y dado que el rastreo lo hacia al azar era muy poco probable que se fuera siempre por el mismo camino, gracias al algoritmo utilizado no se tuvo problema de que se saliera el robot del camino ya que al salirse o desviarse este mismo se volvía a integrar al camino. El laberinto fue primeramente elaborado realizando caminos cuadrados y poniendo cuadrados blancos en las esquinas y en las intersecciones, pero debido a que el robot al seguir tramos muy largos se desviaba se decidió colocarles cintas negras para realizar las uniones de los caminos en forma diagonal, esto se muestra en la fotografía del laberinto.

El laberinto fue construido con cartulinas blancas, no hubo problema para que el robot las detectara, las pistas fueron construidas con papel lustre negro, añadiendo cinta de aislar negra para las uniones entre tramos, y del robot se utilizo un diseño muy sencillo para que mantuviera su estabilidad y se pudiera trabajar con la misma potencia en todo el recorrido.

COMENTARIOS

El robot fue idealizado primeramente para seguir un camino completamente cuadrado, que al llegar a cada esquina girara exactamente 90 grados hacia uno de los dos lados dependiendo de ciertas condiciones dadas por el censor de sonar, ósea que el laberinto estaba ideado para poner obstáculos en cada esquina que fuera el lado izquierdo de una bifurcación, esta era una buena idea por lo general, el problema que tuvimos fue, como ya habíamos mencionado antes, que el robot al ir hacia delante no sigue una trayectoria recta y se desvía. El proyecto fue muy bueno, es un buen reto para la mente, y además requiere mucho ingenio para ser realizado. Idear un algoritmo para el robot tampoco fue sencillo, aunque el software utilizado se dice que es el mas fácil de utilizar, es también muy limitante y muy lento, la memoria que requiere es demasiada y es muy tedioso hacer programas tan grandes en el.

Recomendaciones

Se recomienda a las personas que hagan este proyecto en el futuro que si es posible aprendan a utilizar otro software para la programación. También se recomienda medir bien los giros que hace el robot, además de hacer las pistas de modo que incluyan caminos verticales, horizontales y diagonales, pero si es de su elección hacerlo con caminos únicamente horizontales y verticales que utilicen una especie de bordillos, así no tendrán el problema de desviación que nosotros tuvimos.

Para obsevar el video:

http://www.youtube.com/watch?v=A_MyMgLoZKg

Leonel Enrique Sanchez Bran 200714676 leonel_esb@hotmail.com
Edsson Stefen Tillit Ozaeta 2006 11204 edsonstep@hotmail.com

Seguir

Get every new post delivered to your Inbox.