viernes, 29 de febrero de 2008

NXT Viewer 0.1

Bajo este nombre estoy desarrollando una aplicación que espero me ayude en la comunicación con el robot. Esta versión no es mas que una toma de contacto con Glade y su programación con python, su única funcionalidad es conectarse con el 'ladrillo' indicado en la caja de texto (o con el primero que encuentre si está vacía) y mostrar información relativa a él.

En futuras versiones el objetivo es lograr una aplicación que me permita lanzar distintos módulos que interactúan con el robot, es decir, conectar con un robot (o varios, eso ya se verá) y ejecutar distintos programas (o módulos) que interactúen con él.


martes, 26 de febrero de 2008

Buscando aparcamiento...

Ya tengo algunas pruebas satisfactorias con el prototipo 2 del fisgón. Este modelo busca huecos en las paredes en los que quepa y pasa a través de ellos. Como se puede apreciar, tiene un paragolpes delantero para detener el robot en caso de colisión, pero aún no está implementado, la mayor parte del desarrollo lo ha llevado el control de los motores, cosa que aún no está muy fina.



La misma acción desde otro punto de vista

La partida perfecta

Buscando un poco de información sobre la integración del mando de la wii con el nxt he encontrado este vídeo, así cualquiera gana a los colegas en los bolos...



Podéis encontrar mas información por aquí

jueves, 21 de febrero de 2008

Prototipo A-2

He realizado algunas modificaciones al primer prototipo. El sensor de ultrasonidos a pasado a un lateral y he incluido el sensor de tacto con un paragolpes.

Me gustó el modelo del coche que aparca sólo, así que para soltarme un poco más con esto estoy haciendo una variante de ese modelo. Mi prototipo sigue una pared hasta encontrar un hueco lo bastante grande como para entrar por él.

Hasta ahora las pruebas funcionan bastante bien, tengo problemas con la inercia adquirida por el vehículo que hace que los giros no sean de 90º (si no un poco mas). Aún no sé como frenar los motores, seguiré investigando un poco.

Y a esto se suma otro problema, y es que la ley de Murphy no falla, cuando estás cerca de terminar las pruebas y llegar a un resultado satisfactorio, te quedas sin pilas... espero poder subir un vídeo esta noche, pero dependerá de si para entonces las pilas se han cargado. Por supuesto si alguien quiere donar una batería recargable para el lego yo lo acectaré gustoso :D

miércoles, 20 de febrero de 2008

El Fisgón de paseo

Como prometí ayer he subido el vídeo del primer prototipo dando un paseo. Lo se, lo se, menuda tontería, pero a mi me hace ilusión :D. El robot, como comenté en el post anterior, evita chocar con las paredes, girando 90 grados a la derecha para continuar el camino.

Hoy haré una pausa, ya que tengo otros compromisos, pero espero poder hacer mas cosas con este prototipo y el resto de sensores. Espero que os guste.

martes, 19 de febrero de 2008

De paseo por los pasillos

"El Fisgón" ya está de paseo por los pasillos de casa, siento no acompañar un vídeo, mañana en un rato lo grabo y lo subo a youtube para que podáis verlo. No es gran cosa, sólo es una prueba de contacto con los sensores y los motores (benditos motores, las vueltas que me han hecho dar...)

El robot ejecuta un algoritmo sencillo, avanza hasta encontrar un obstáculo (en su línea de visión) a menos de 20 cm, retrocede y gira a la derecha, luego vuelve a empezar.

Lo bueno:
  • No se choca
  • Ya entiendo bastante mejor a los motores y el tacómetro
Lo malo:
  • Es mas simple que una ameba
  • ¿Sirve para algo?

Sensores: Luz

El sensor de luz nos permite identificar varias escalas de grises, existe otro sensor para el color, pero este no está incluido con el paquete mindstorm. A pesar de que para explotar su utilización al máximo sería necesario calibrarlo (por temas de iluminación relativa) no existe aún soporte en NXT-Pyton. Los métodos de uso son similares a los ya vistos

  • get_sample()
Devuelve en tanto por 100 la cantidad de luz "vista"

  • set_illuminated(boolean)
Enciende (True) o apaga (False) el haz de luz que varía la cantidad de luz percibida por el sensor. Por defecto este haz de luz es encendido, así que al terminar de utilizar el sensor es aconsejable apagar la luz para no quedarnos son pilas

Sensores: Sonido

El sensor de sonido permite percibir sonidos audibles para el ser humano (dBA) y sonidos que pueden quedar por encima o por debajo del umbral humano (dB). Por defecto el sensor está configurado con dBA



  • get_sample()
Devuelve en tanto por 100 el sonido ambiente, según la escala de valores de Lego los márgenes son los siguientes:

  • 4 - 5%: Una habitación en silencio
  • 5 - 10%: Alguien hablando a una distancia lejana
  • 10 - 30%: Una conversación o música a un nivel normal
  • 30 - 100%: Gente gritando o música alta
  • set_adjusted(boolean)
Establecemos el modo de funcionamiento del sensor, si el parámetro pasado es True, el modo de funcionamiento pasa a ser dBA, en caso contrario (False) será dB

Sensores: "Tacto"


El sensor de tacto, o "touch sensor" es el mas sencillo de todos. Sirve para detectar una presión, no puede inicializarse ni calibrarse. Es muy útil para detectar el encontronazo con objetos.

  • get_sample(): boolean
Devuelve un valor true / false que determina si el sensor está presionado (true) o no lo está (false)
  • is_pressed(): boolean
Ídem al anterior en cuanto a funcionalidad, puede ser mas útil a la hora de leer el código que su predecesor

Sensores: Ultrasonidos



Este sensor (que parece la cabeza de Jhonny 5) utiliza el mismo mecanismo que los murciélagos para orientarse. Emite un sonido de baja frecuencia y se basa en el tiempo transcurrido desde su emisión par determinar la distancia con los objetos. Su manejo es muy sencillo, dispone de un sólo método para obtener la información y no admite inicializaciones.

  • get_sample()
Devuelve un valor entre 0-255 representando la distancia en cm con un margen de error de + / - 3 cm.


lunes, 18 de febrero de 2008

El robot que aparca solo

Os dejo otro vídeo, este hace ya mucho tiempo que lo había visto, pero hablando con Bea hace un rato me he acordado de él y he pensado que podía gustaros. Imagino que la longitud del coche la calcula de antemano, es decir, conoce cuantas vueltas han de dar las ruedas sin encontrar la pared para saber si el coche cabe en el hueco



Echando un vistazo al perfil de este usuario, se puede encontrar una evolución del mismo sistema de aparcamiento. ¡Este es una monada!



El nuevo VW Touran incluye un sistema de asistencia de aparcamiento muy similar al de este robot, no he podido probar el sistema de VW (en los concesionarios siguen mirándome mal) pero no creo que sea tan bonito como en el anuncio...

Prototipo A-1 (El fisgón)



Basándome en el modelo de "The mayan adventure" he creado un prototipo para la toma de contacto con python y el bluetooth. Con este chasis puedo probar sin problemas los distintos sensores y los motores, aunque no creo que me sirva para una implementación seria futura.

De momento las pruebas con los motores no me han dejado muy contento, es necesario sincronizarlos para que el robot no se vaya hacia las cunetas. El sensor de ultrasonidos hasta ahora me ha dado un resultado satisfactorio, ya veremos las pruebas de mañana

Robot para resolver el cubo de Rubik

Os dejo uno de los muchos vídeos de youtube con robots basados en NXT que resuelven el cubo de Rubik. Y yo que no tengo ni idea de como se resuelven estas cosas...

domingo, 17 de febrero de 2008

Os presento a Benito


Así se llama el robot bípedo que construí con el NXT. No lo bauticé así por la serie de Manolo y Benito, aunque ahora que lo pienso, tampoco habría sido mucho desatino. El caso es que ha sido este el modelo que me permitió hacer mis primeros pinitos con el lego.

Os dejo una foto suya por que en unas horas dejará de tener esta forma y pasará a ser el chasis sobre el cual realizaré las primeras pruebas del protocolo de comunicaciones

¡Qué empiece el espectáculo!

Como dijo un sabio chino "todo llega para el que sabe esperar", y hoy, 17 de febrero, comienzo el proyecto fin de carrera. Para los que me conocen personalmente saben que ha sido un camino muy largo, con bastantes altibajos, unos años fueron buenos, y otros fueron menos buenos. A todos ellos les dedico estas entradas para así hacerles partícipes de los penúltimos (será mejor que demos nada por sentado) pasos en la universidad.

Mi TFC estará centrado en la robótica, aún no tengo claro que aplicación práctica le encontraremos al aparato, pero mientras tanto hay bastante tarea que hacer. A saber:
  • Un chasis robusto para soportar todo el robot
  • Empaparme mucho de la librería NXT_Python con la que desarrollaré la parte software del robot
  • Investigar mucho sobre el mando de la Wii y sus posibilidades como complemento para mi proyecto
La parte mecánica del robot estará basada en el juguete (si podemos llamarle así) de Lego, NXT Mindstorm. Su plataforma y el ejército de piezas que le acompañan permiten una gran flexibilidad en el apartado físico, ya que no tenemos necesidad de soldar o rebuscar por los cajones en busca de un tornillo que nos sea útil.

Y hasta aquí la primera entrada. Mi idea es acompañarlas con vídeos e imágenes del robot, para que todo este asunto sea un poco mas ilustrativo y menos aburrido.

¡Nos leemos!