los blogs de Canarias7

Novedades en la categoría NiutinBot

niutinbot.nxc screen.JPG

Llegados a este punto muchos se preguntarán cómo es posible que nuestro primer robot, NiutinBot, fuera tan listo y supiera seguir cualquier línea de color negro y esquivara cualquier objeto que se le pusiera por delante.

Para todos ellos dedicamos este post.

Les presentamos el código fuente de NiutinBot.

Seguro que les será muy útil a todos los que estén iniciandose en el mundo de Lego MindStorms ;)

Código fuente:
niutinbot.nxc icono.JPG

Día histórico para Niutin Team! Hemos logrado realizar correctamente la conexión en paralelo entre el Wiimote y el NXT!!

Hacemos uso de la librería Mindsqualls que gestiona muchas de las funciones del NXT como, por ejemplo, movimiento de los motores.

Es una librería realizada en C# de muy fácil uso.

Estamos preparando una guía para que cualquiera que lo necesite o le apetezca pueda usar su mando de Wii para controlar a su robot que pronto publicaremos en el blog. Además, también subiremos algún video de nuestros avances :D

Saludos ;)

Hoy les presentamos los vídeos de las defensas del resto de competidores de NiutinBot y los tiempos que han conseguido.

Vídeo 21 - Rumbabot

Tiempo empleado para completar el circuito:
2 min 10 seg en un sentido
NO COMPLETO
sentido contrario

Vídeo 22 - Spybot

Tiempo empleado para completar el circuito:
1 min 27 seg en un sentido
NO COMPLETO
sentido contrario

Vídeo 23 - Tactobot

Tiempo empleado para completar el circuito:
1 min 41 seg en un sentido
1 min 40 seg sentido contrario

Vemos que Tactobot es un rival a tener en cuenta ya que sus tiempos han sido muy parecidos al de Niutinbot. También se observa que Spybot ha hecho un tiempo mucho menor pero no consiguió superar el circuito en ambos sentidos lo que ha hecho que no sea muy fiable su tiempo.

Como ven, no sólo nosotros hemos estado malgastando :P nuestro tiempo en la construcción de robots sigue líneas, también otros compañeros se lo han currado :D Deseamos que hayan disfrutado con sus trabajos tanto como nosotros!!!

Nos vemos ;)

Antes de la competición debíamos defender nuestro proyecto ante el profesor de la asignatura de Biocibernénitca Computacional en el laboratorio tecnológico de la Universidad de Las Palmas de Gran Canaria (ULPGC). La defensa ha consistido en que el robot realizara un circuito cuyas características desconocíamos a priori.
Imagen del circuito:
Calibraciones:
A continuación, probamos a NiutinBot en el circuito con las características de nuestro circuito de prueba. Pudimos observar que el funcionamiento no era el más óptimo, ya que en ocasiones no reconocía la línea tras esquivar el objeto, como hemos visto en días anteriores.

Tras realizar las calibraciones de velocidad y sensores oportunas en un tiempo límite de 20 minutos, comenzamos la defensa...

Para una correcta evaluación, el robot debía completar el circuito en ambos sentidos en el menor tiempo posible y esquivando todos y cada uno de los objetos.

Vídeo 19 - Defensa en Sentido I

Tiempo Empleado en completarlo: 1 min. 42 seg.

Vídeo 20 - Defensa en Sentido II

Tiempo Empleado en completarlo: 1 min. 37 seg.

Tras completar el circuito en ambos sentidos con éxito, el profesor decidió probar la versatilidad de nuestro programa modificando los obstáculos del circuito.

Vídeo 21 - Test adicional

En los próximos dias, presentaremos a todos los competidores y los tiempos que han necesitado cada uno para completar el circuito. Veremos las alternativas que han tomado los demás participantes en el diseño del robot y la forma de solucionar el circuito.

Gracias a nuestro arduo trabajo, antes de la competición nos da tiempo para realizar unos ultimos retoques para arañar algunas décimas como en la formula 1.

Basicamente nos hemos centrado en cambiar velocidades, giros y demás ajustes que nos permitan ganar algunas décimas de segundo. También hemos mejorado en las rectas haciendo que Niutinbot se salga menos y consiga mejores tiempos.

Este es el circuito donde "NiutinBot" ha realizado los últimos entrenamientos libres

Los entrenamientos no siempre han sido favorables debido a que los cambios en algunas ocasiones no han sido satisfactorios y han provocado que Niutinbot no haya conseguido pasar el circuito completo cometiendo algunos errores.

Video 15 - Los ajustes esta vez no funcionaron como esperamos

Video 16 - Ganamos en velocidad aunque no logramos la perfección

Estos resultados aunque fueron frustantes al estar tan cerca del éxito no hizo que nuestra entrega se apagara ni tampoco retroceder y continuamos mejorando nuestro robot. Un ejemplo de las mejoras fue eliminar de NiutinBot aquellos elementos que no eran necesarios haciendo su peso menor. También corregimos los errores anteriores y conseguimos que Niutinbot terminára el circuito sin ningún problema y además consiguiendo un tiempo mucho menor a los obtenidos. Niutinbot have a NEW RECORD.

Video 17 - EL trabajo ha dado sus frutos

Bueno a lo largo de todo el proceso de programación y mejoras de Niutinbot hemos visto como ha ido respondiendo pero, quieres sentirte como Niutinbot dentro del circuito, pues te traemos esta oportunidad dejándoles esta perspectiva del circuito.

Video 18 - Sientete como Niutinbot recorriendo el circuito

Hoy lo que hemos querido hacer ha sido encontrar una mayor velocidad en nuestro robot para lo que hemos exprimido donde hemos podido y hemos llevado a Niutinbot hasta sus límites.

El mecanismo que hemos utilizado han sido pruebas en un nuevo circuito que hemos montado (básicamente es el de siempre pero con una recta más y lleno de obstáculos :P)

Aquí vemos en que aprieto lo pusimos xD (Después veremos que el pobrecito de nuestro robot no pudo rendir al 100% durante todos los test :( )

Bueno, el caso es que parecíamos un equipo de Fórmula 1: Javi cronometrando, Emi y Enri grabando las pruebas en video, y junto con Jorge y Edu, todos estábamos con el mono de ingenieros encima modificando el código y aportando ideas! Y no sólo en eso nos parecimos a un equipo de Fórmula 1 jeje :U :P

En ocasiones Niutinbot nos trajo de cabeza! Como podemos ver en los siguientes videos:

Video 12 - Y si le gusta el objeto, repite!

Video 13 - Otro fallo, pero no pasa nada

Pero todo no fueron desgracias eh!!!
Si ven este último video del día observarán que nuesto robot completa el recorrido que nos hemos inventado para él en muy poco tiempo y de una manera muy elegante. Esquiva todos los obstáculos, ya sean grandes como la papelera o pequeños como las latas, y sigue correctamente la trayectoria de la línea negra pintada en el suelo del laboratorio ^^. El que la luz esté apagada fue porque queríamos probarlo en todas las condiciones posibles. Se observa que al final del video (cuando está a mitad de la segunda vuelta) Niutinbot tirá una de las latas, pero esto se debe a que en ese sentido el circuito no cumple con todos los requisítos de la competición, así que no supone ningún problema.

Video 14 - Éxito asegurado

Esto ha sido todo por hoy. Aún nos quedan unos días hasta la competición. Si lo creemos oportuno seguiremos trabajando en nuestra pequeña criatura para hacerlo más competitivo.

Hasta luegooo y sigan pendiente a los nuevos progresos de NiutinBot !!!!

Lo que hemos hecho en este día ha sido probar diferentes velocidades hasta encontrar la más óptima para que NiutinBot pudiera acabar primero en la competición de Biocibernética ULPGC 2008.

Hemos conseguido una buena fiabilidad además de un buen equilibro entre velocidad, eficacia y rendimiento.

Vídeo 9 - Resolviendo el circuito

Un dato curioso que debemos resaltar se ha producido en el momento de esquivar la papelera blanca, ya que la superficie de ésta reflejaba sobre la linea negra y el robot no volvia a seguirla con precisión.

Vídeo 10 - Problemas con la papelera

¿Solución? Taparla! :P

Vídeo 11 - Se acabo el problema

La próxima entrada del diario no tardará en llegar, estad atentos ;)
Saludos!!!

... pero se logró !! :-)

08:30 AM
Nos reunimos en el laboratorio de Biocibernética para continuar con los intentos de hacer a nuestro robot sortear bien un objeto.

08:00 PM
Salimos del laboratorio :-P

Lo que pasó entre esas horas fue lo siguiente...

Comenzamos el trabajo justo donde lo habíamos dejado, con el robot rodeando la papelera del aula. Estábamos convencidos de poder terminar el problema haciendo que NiutinBot dibujara una tayectoria de radio constante alrededor del objeto.

Tras muchos intentos fallidos por hacer que no se chocara y engañosos éxitos fortuitos de movimientos de evasión, nos volvió a la cabeza la alternativa que habíamos desechado. Esa que decíamos que no era tan elegante y posiblemente menos eficiente. Parece ser que cuando el cansancio llega, lo lógico y sensato se transforma, pues decidimos volver a intentarlo con el planteamiento olvidado.

Como tampoco nos decidíamos qué alternativa podríamos implementar satisfactoriamente, aprovechando la ventaja que nos brinda ser un grupo de 5 personas, nos dividimos en dos grupos de invetigación y desarrollo diferentes que trabajaran con ambas soluciones posibles. El objetivo: lograr implementar ambos métodos para comparar cuál sería el mejor.

Tras un largo período de un ir y venir de nuevas propuestas, sucedieron varios acontecimientos importantes. Entre ellos, el que nos ha hecho volver a modificar el diseño del NXT añadiéndole un nuevo sensor a su derecha (ahora tiene un aspecto más humano ya que se asemeja a un brazo). Esto simplemente lo hicimos para mejorar el reparto de pesos. Después de esto, varias ideas decisivas se nos ocurrieron y logramos arreglar todo aquello que nos impedía proseguir.

Finalmente dimos con la solución!
Y, además, ya no sólo es capaz de esquivar objetos grandes, sino que se adapta a otros de menor diámetro (que son justamente los que se utilizarán en la evaluación de la práctica).

Les dejamos unos videos para que observen el resultado.

Video 7 - Mira que bonito es esquivar objetos

Video 8 - Otro más (Y ya vamos de sobrados :P)

El próximo día intentaremos adaptar los parámetros para aumentar la velocidad y depurar el código en general para hacerlo más eficiente.

Hasta la próxima !! :-)

Hola! Ya estamos por aquí molestando de nuevo :P

Después de enseñarle ayer a nuestro robot como NO debía sortear los obstáculos, decidimos seguir avanzando en este aspecto y hacerlo bien por primera vez xD

Al final hemos desechado la segunda alternativa que comentábamos en la anterior entrada de NiutinBot y hemos optado por continuar el trabjao que ya habíamos avanzado más. Aún así hemos usado algunas de las ideas de ambas soluciones y hemos creado un híbrido que aparentemente cumple los requisitos (aunque falta por depurar algunos detalles que provocan errores). Veamos un vídeo en el que NiutinBot se encuentra tan feliz caminando por su línea negra cuando de repente se topa con una caja de zapatos que encontramos en el laboratorio, así que viendo que no puede continuar por el trazado, decide evitarlo.

Vídeo 6 - Esquiva caja

También se puede observar que Javi intentó quitar la línea para que nuestro robot no se confundiera de camino y siguiera esquivando el segundo obstáculo (aunque pensamos luego que hubiera sido mejor dejarla para que no colisionara con la papelera xD)

Esperamos que continúen atentos a nuestros avances. Muy pronto más ;)
Hasta lueeeego!

Al día siguiente hemos estado probando soluciones para revasar un obstáculo fijo. Tras varais deliveraciones hemos decidido probar dos posibibles alternativas.