viernes, 16 de mayo de 2008

circuito terminado!!

Tras unos dias trabajando con kaka3, nos hemos adaptado bastante bien al nuevo entorno de trabajo, al principio tuvimos unos problemas con el robot puesto que al seguir la linea la perdia algunas veces, esto era debido a la velocidad que le teniamos puesta, que era muy alta, una vez arreglado esto el robot recorria el circuito perfectamente.

Una vez funcionando kaka3 nos dispusimos a hacer 2 mejoras para mejorar los tiempos al recorrer el circuito. El primero que hicimos fue el tratamiento de las velocidades en recta, le hemos puesto una velocidad alta en las zonas que hay rectas, y cuando se acerca a una curva la disminuye drasticamente para no salirse en la curva.
Por otro lado la siguiente mejora consiste en el tratamiento de las curvas, diferenciamos dos tipos de giros, los que son para alinear el robot en una recta, y los giros de curvas mas cerradas, para cada caso utilizamos velocidades diferentes, para que los giros muy largos los haga mas rapidos y asi disminuir la velocidad en la resolucion del circuito.

Con estas mejoras kaka3 recorre el circuito en 177 segundos

Estamos teniendo algunos problemas a la hora de instalar el programa para grabar videos de la pantalla y asi poder mostraros a kaka3 funcionando, pero de momento os dejamos una captura :)



lunes, 5 de mayo de 2008

nuevo robot! kaka3!

Tras haber acabado las practicas con los robots NXT, ahora comenzamos las practicas con Gazebo, mientras Carlos nos explica un poco mas sobre ellas, hemos instalado todo lo necesario para la realización de ellas.

Aqui os dejamos una fotillo de kaka3, ;)

viernes, 18 de abril de 2008

Sala 3

Como no disponiamos de la ultima sala de la robocup, hemos decidido hacer un pequeño laberinto de objetos, para probar el radar y la navegacion de kaka2, Primero se le ve esquivando una papelera y algunas latas, despues se acerca a la parte complicada del circuito, una pequeña puerta, en el primer intento comprueba que no esta bien situado para entrar por la puerta por lo que decide retroceder y volver a situarse, esta vez correctamente para atravesarla, y continua el circuito finalizando por la salida:


Video Sala 2 Final

Acabamos de arreglar el problema de kaka2 con la vision de las latas, ahora cuando se encuentre una lata sobre la linea de la sala2, la esquivara haciendo un giro hacia un lado, avanzando 20cm, girando hacia el otro lado y avanzando.

Tambien acabamos colgar dos videos de la sala2 de la robocup, en el primero de ellos se puede ver a kaka2 esquivando una lata que se encuentra en la linea negra, y posteriormente identificando a una victima que habia inmediatamente despues de la lata.

En el 2º video se le puede ver siguiendo la linea negra de la 2ª sala y atravesando zonas sin linea negra sin ningun problema:







Video Sala 1 Final

Acabamos de subir un video de kaka2 y nexus 6 en la Sala 1 del circuito de la robocup rescue, en el se le puede ver siguiendo una linea negra e identificando a las victimas (color plata) que se va encontrando, cuando encuentra una victima da 3 parpadeos con el sensor de luz para indicar que la ha visto. Al final de la sala le pulsamos el sensor de tacto que lleva arriba (supliendo el marco de la puerta del circuito de la robocup original), entonces se comunica kaka2 con nexus6, confirma que le ha visto, y finaliza la sala:


miércoles, 16 de abril de 2008

Videos!

Acabamos de subir un par de videos de kaka2 haciendo una "sala 1" que nos hemos montado en casa, en el 1er video kaka2 identifica a la primera de las 2 victimas del circuito (cuadrados de papel de plata) y da aviso de que la encontrado dando 3 parpadeos con el sensor de luz, y en el 2º video identifica a la 2ª victima, y como no tenemos una puerta por la que deberia pasar kaka2 le pulsamos el sensor de tacto que lleva arriba nosotros, entonces se activan las comunicaciones por bluetooth con nexus6, lanza un mensaje por pantalla diciendo "te veo" y finalizan su ejecucion.

El viernes grabaremos mas videos de las 3 salas en el laboratorio y los colgaremos:


Problema con las latas solucionado

Tras una mañana algo agetreada..., nos hemos venido al laboratorio un rato antes de la tutoria para intentar solucionar el problema con el sensor de ultrasonidos y las latas, al final hemos dado con el problema, en el return del takeControl del comportamiento "esquivar lata" poniamos directamente la expresion "(distancia<15)", que devuelve un booleando, deberia funcionar igual que la solucion que hemos encontrado que es igualando esta expresion a una variable booleana y poniendo en el return la misma... Luego le preguntaremos a Carlos porque puede suceder esto:

public boolean takeControl() {
distancia = Us.getDistance();
lata=(distancia<15);
return (lata);
}

problemas externos

Hoy habiamos quedado para intentar solucionar los problemas que nos daba la vision de las latas, probar la sala2 que de momento esta terminada a falta de esto, y grabar un video de la sala1 que ya dejamos terminada el otro dia y de la sala2, pero hemos tenido problemas personales que nos han impedido quedar por lo que esta tarde comentaremos a Carlos los avances con kaka2 y nexus6 que hemos hecho hasta ahora:

  • reconstruccion de kaka2
  • analisis de colores y victimas
  • construccion de nexus6
  • uso del bluetooth
  • comunicacion entre kaka2 y nexus6

Por otro lado

  • preguntar sobre la excepcion que nos salia en la vision de las latas

lunes, 14 de abril de 2008

acabando la sala 1

Hoy nos hemos dedicado a acabar la sala 1 rematando los flecos que se nos quedaron colgando el otro dia. Primero nos dispusimos a arreglar la accion que se ejecutaba al ver una victima, como deciamos el otro dia, se quedaba dando giros sobre si mismo, esto era debido al orden de prioridad de los comportamientos, estaba activado el comportamiento buscar linea, girando con una rueda hacia un lado, entonces se activaba el comportamiento "victima encontrada" y se quedaba "tostado". Ahora cuando ve una victima, da un mensaje por pantalla poniendo que la ha visto y a la vez da varios parpadeos con el sensor de luz.

Por otro lado, hemos mejorado la calibracion de los colores, hemos cambiado victima a un 60% de luz de minimo y por tanto bajado el maximo de la luz blanca a un 60%. De esta manera la vision de las victimas es perfecta.

Despues hemos añadido un nuevo comportamiento que se activa cuando se pulsa el sensor de tacto del techo, entonces kaka2 se intenta comunicar con nexus6. Por el momento hemos hecho que nexus6 vea "siempre" a kaka2, cuando acabemos de hacer los codigos de todas las salas, terminaremos el apartado del bluetooth.

Mas tarde comenzamos el codigo de la sala2, el codigo es basicamente el mismo que el anterior para la sala1 pero añadiendole 1 comportamiento para cuando vea las latas, y incorporandole al comportamiento buscar que hacer cuando hay tramos sin linea, esto segundo ya se lo hemos incluido, nos queda añadirle el comportamiento para las latas, de momento las pruebas que hicimos con el nos producian una excepcion que no hemos logrado comprender, sino damos con la solucion le preguntaremos a Carlos el miercoles en la tutoria.

viernes, 11 de abril de 2008

un cambio de punto de vista

La tarde de hoy ha sido un poco complicada, nada mas llegar al aula de linux nos encontramos con un circuito parecido al de la robocup, asi que fuimos a probar kaka2, y comprobamos que en 2 curvas algunas veces se perdia y los trozos en los que no habia linea no avanzaba, esto es debido a que cuando se activaba el comportamiento buscar, mientras giraba hacia los lados por inercia debido al peso retrocedia un poquito, volviendo a ver un trocito de linea negra y reactivandose el comportamiento avanzar y despues volviendo a buscar, es decir un bucle infinito, asi que decidimos afrontar el problema desde otro punto de vista al actual, en vez de ponerle peso para estabilizarlo...., hacer el robot desde cero, haciendolo mas ligero, tras varias horas liados con el hemos conseguido llegar a un diseño muy estable, muy ligero y sobretodo con el sensor de ultrasonidos mas bajo aun que antes, de manera que tiene una vision perfecta de las latas.

Tras cambiar el diseño de kaka2, nos dispusimos a activar el bluetooth de kaka2 y nexus 6, les cargamos el codigo que se nos proporciono en la web, y comprobamos que se comunicaban, kaka2 enviaba a nexus 6, 100 numeros y nexus 6 se los devolvia invertidos.

Una vez probado el bluetooth nos dispusimos despues a estudiar el reconocimiento de victimas, hicimos un pequeño programa que calibraba el sensor, y despues se quedaba en un bucle infinito para permitirnos mover al robot por el escenario e ir viendo los valores que devolvia el sensor de luz en los distintos puntos de la pista, empezamos analizando el blanco, negro y plata, el plata nos salia por encima de 65-70, el blanco entre 45-65 y el negro en torno a 30-45. De momento el analisis de las victimas verdes lo dejaremos aparcado hasta perfeccionar estos colores.

Hicimos un nuevo comportamiento sobre el codigo del siguelineas para el color plata, que consisitia en parpadear la luz del sensor y avanzar un poquito hasta encontrar el siguiente tramo de linea negra, en la practica el circuito lo hacia correctamente, encontraba la victima tambien muy bien, saca un mensaje por pantalla diciendo que la a encontrado, pero al encontrarla a veces, una de cada 3 o a asi mas o menos, se nos quedaba kaka2 girando sobre si mismo, el proximo dia que vayamos al laboratorio analizaremos porque nos ocurre esto, y añadiremos otro comportamiento para cuando el sensor de tacto que le hemos colocado en el techo, toque con el marco de la puerta, se active el bluetooth para que empiece a contactar con nexus6.

Aqui os dejamos una foto de nuestros pequeñines:





miércoles, 9 de abril de 2008

Os presentamos al nuevo hermanito de kaka2

Hoy Carlos nos ha facilitado un 2º robot para practicar las comunicaciones por bluetooth entre robots, dentro de unos dias cuando hayamos investigado mas su funcionamiento contaremos un poco que tal funciona, y colgaremos algunos videos, de momento os dejamos la foto del 2º bichejo, al que hemos llamado "nexus6" :)


























Por otro lado, hemos corregido un caso de la navegación de kaka2 que no habiamos tenido en cuenta, cuando el robot va "casi paralelo" a la pared, pero en diagonal, al hacer el barrido con el sensor de ultrasonidos se produce lo que se llama "reflejo especular" es decir el sonido rebota en una direccion que no puede recibir el sensor y por tanto no ve la pared. Hemos decidido tomar una postura conservadora para resolverlo, entonces cuando tenemos el array con todas las medidas, en vez de verificar solo las posiciones que se refieren a la zona central del barrido nos quedamos tambien con la mitad de las lecturas de ambas diagonales, consiguiendo asi 4 lectuas mas, las suficientes para que kaka2 pueda ver la pared y no chocarse.

videos con la navegacion de kaka2

Acabamos de subir un par de videos de kaka2 navegando, le hemos puesto encerrado entre 3 paredes y luego 3 latas repartidas por el suelo, kaka2 las reconoce y las esquiva, y sale del escenario sin chocarse:




Vision de las latas

Como ayer deciamos en la entrada anterior, hoy nos hemos pasado por el laboratorio de linux, y le hemos puesto unos cuantos obstaculos (latas) para ver que tal las veia con la nueva situacion de la cabeza. Hemos podido comprobar que ve las latas bastante bien, y las esquiva tambien muy bien, pasando cerca de ellas, pero a una distancia suficiente para no chocarse, gracias a la navegacion en diagonales que le incluimos. Esta tarde en la tutoria con Carlos le comentaremos los cambios que hemos hecho a kaka2 esta semana:

  • navegacion en diagonal
  • programa separado en constructor-metodos-clase que lo instancia
  • cambios en la estructura de la parte trasera
  • cambios en la estructura de la cabeza
  • instalacion de lejos 0.5 para poder usar el bluetooth
Y le preguntaremos como se usa el bluetooth.

martes, 8 de abril de 2008

restructuracion de la cabeza

Hoy nos hemos encargado de bajarle el sensor de ultrasonidos a kaka2 aun mas, quedando a "ras" de las latas, mas abajo no lo hemos conseguido poner, aun asi como se puede ver en la siguiente imagen con la abertura de 30º que tiene el ultrasonic sensor no deberia tener problemas para ver las latas, mañana haremos pruebas en el laboratorio por la mañana y lo comentaremos.

Por otro lado tras algunos problemas con la compilación de la nueva version de leJos por fin logramos instalarla, mañana por la mañana empezaremos a estudiar el uso del bluethot.


















domingo, 6 de abril de 2008

Nueva mejora en la estructura de KaKa2

Este fin de semana hemos mejorado de nuevo la estructura de kaka2, le hemos afianzado todas las partes que estaban algo sueltas y hacian que diera unos pequeños votes cuando andaba, le hemos encajado la pesa en la parte de atras, y hemos puesto totalmente perpendicular el sensor de luz.

Con estos cambios el peso esta totalmente repartido por el robot, dejandolo totalmente estable, aqui dejamos unas capturas de su estado final:


















viernes, 4 de abril de 2008

kaka siguelineas

En este video hemos colgado a kaka2 siguiendo la linea de un circuito del aula de linux:


Sigue lineas SIN linea

Bueno hemos hecho varias pruebas ya con kaka2 siguiendo tramos de lineas en los que no hay linea y se puede decir que va bastante bien ya y las pasa sin muchos problemas, a pesar de quedarnos por fijar la estructura trasera aun, que hace que de unos pequeños votes mientras anda.

Hemos decidido colgar este video donde se ve realmente que hace bien para pasar estos tramos, debido posiblemente a su sombra kaka2 entra mal despues de la recta, y no empieza haciendo los giros del comportamiento buscar linea desde el centro de la linea, por lo cual despues de hacer unos barridos el algoritmo le dice que siga hacia adelante y no seguira recto directo hacia el siguiente tramo de linea sino que se desviará, ahi es donde el algoritmo reacciona, tras avanzar unos 8 cm se vuelve a activar buscar linea, para asi en caso de lanzarse "a lo loco" a por la linea sin suerte, pueda recuperarse de la perdida:


Practica 1 Radar

Tras haber hecho la mejora en la navegacion de kaka2 incluyendo los movimientos en diagonal, nos pusimos manos a la obra con la programación mas "correcta" del mismo, antes teniamos todo el codigo en una misma clase, ahora hemos separado dos claras partes, el constructor radar, con los metodos showOnScreen y newScan, y la clase NavigationRadar que instanciará a Radar para crear el objeto radar y poder utilizar en la navegacion newScan para hacer nuevos escaneos y ShowOnScreen en caso de que queramos mostrar la informacion en la pantalla.

mejora en la navegacion: incluidos movimientos en diagonal

El jueves tras la tutoria con Carlos, nos pusimos manos a la obra para mejorar la navegacion de kaká2, antes kaka2 una vez que hacía el barrido con el radar, elegia entre tres direcciones de giro (izquierda, derecha, centro), ahora le hemos incluido la posibilidad de navegar tambien haciendo diagonales, dotando asi a kaka2 de mas movimientos en el mundo.

miércoles, 2 de abril de 2008

Mejorando el siguelineas

Estos ultimos dias hemos decidido mejorar el siguelineas de cara a la robocup.

Nuestro anterior siguelineas programado para el anterior robot, siempre en el comportamiento buscar, primero intentaba encontrar la linea hacia el mismo lado (izquierda) y despues a la derecha; ahora le hemos implementado un codigo que dota a kaka2 de mas inteligencia, almacena hacia donde ha girado en la ultima curva y los giros en la siguiente los empieza haciendo hacia ese lado, recortando asi el tiempo de 2:03 que tardaba en completar uno de los circuitos del aula de linux a 1:23, una mejora muy importante de cara a la robocup.

Esta tarde tenemos tutoria con Carlos, le comentaremos esta mejora, y como ve la estructura que tiene este nuevo robot montado finalmente.

lunes, 31 de marzo de 2008

Mejorando a kaka2

Tras montar a kaka2 el viernes pasado y probar todos los codigos, proseguimos hoy cargando el codigo del radar, el ultimo que nos faltaba por repasar, nada mas iniciarlo nos dimos cuenta de un fallo de diseño, el motor que hacia rotar el sensor de ultrasonidos se encontraba puesto al reves, asi que nos pusimos manos a la obra para recolocar el motor en su lugar, ya que ahora lo hemos puesto casi a ras de suelo para que pueda detectar objetos desde mas abajo, a costado un poco mas llegar a un montaje del robot mas estable, debido a que al tener el peso mayoritariamente en la parte delantera y tan abajo nos hacia que kaka2 cuando frenaba en seco hacia un "endo" (se iba de boca hacia adelante), asique le hemos puesto en la parte trasera una especie de base, donde colocamos una "pesa" que hemos hecho fundiendo un poco de plomo en una cajita de laton, una solución un tanto extraña... pero con eficacia probada, el sensor de luz esta vez hemos decidido montarlo en un espacio que nos quedaba entre el motor que hace girar el sensor de ultrasonidos y el brick, quedando algo oculto mierandolo desde arriba, el diseño final de kaka2 se puede ver en la siguiente imagen


viernes, 28 de marzo de 2008

Los comienzos















Ya tenemos a kaka2 en nuestras manos. Ya lo tenemos montado como muestra la foto. Le hemos hecho una mejora de diseño respecto a kaka. Le hemos colocado el sensor de ultra sonidos en una posición mas baja y delantera de cara a la robocup.

Hemos dedicado varios dias a revisar todos los códigos de introducción a la robótica y a probarlos en kaka2. Esto nos ha servido a uno para repasar los conocimientos aprendidos en el primer cuatrimestre y a otro para aprender la sintaxis del lenguaje java, a familiarizarse con el api de lejos, los sensores y manera de pensar código para simular un comportamiento inteligente (behaviors). Ademas de cambiar la forma de pensar ya que java es un lenguaje orientado a objetos.

El único incoveniente que hemos encontrado es con la práctica del sigue-lineas. Hay veces que pierde la linea. No sabemos si es por la altura a la que está situado el sensor de luz ( a 1.2 cm del suelo) o por las condiciones externas (luz, circuito "casero"). El próximo dia en el laboratorio de prácticas arreglaremos esto.

jueves, 14 de febrero de 2008

nuevo blog

Tras un primer cuatrimestre iniciandonos en la programacion del Lego NXT, ahora toca dar un paso adelante, ya no tenemos a kaka con nosotros (nuestro anterior robot), en este enlace podeis seguir la aventura que vivimos con el durante 3 meses.

http://juanan.acg.googlepages.com/

Esperamos que pronto aterrice entre nuestras manos un nuevo robot, al que llamaremos kaka2, en honor a su antecesor :P.

un saludo a todos!

P.D. mientras tanto os dejamos este video de uno de los robots mas pequeños del mundo, para que os entretengais