viernes, 30 de enero de 2009

GAZEBO

Esta practica consiste en un sigue lineas. Tenemos una linea roja pintada en el suelo y una camara que observa el frontral de nuestro robot. Si vemos que la linea se desvia de nuestra imagen central debemos regular la posicion del robot hasta que volvemos a estar sobre la linea.

Consideraciones para la practica

1. como la camara es capaz de visualizar todo el frontal y no solo el suelo vamos a desperdiciar la mitad superior de la imagen

2. Tenemos que estar centrados, es decir, el robot debe tener la misma cantidad de rojo a un lado del eje de la imagen captada por la pantalla que al otro. Para ello dividimos la pantalla en parte derecha y parte izquierda y averiguamos cuantos pixeles rojos tenemos en cada parte. Si hay mucho en la parte derecha y poco en la izquierda, giramos el robot buscando mayor cantidad de rojos, es decir, hacia la derecha, en sentido negativo y si pasa al contrario giramos hacia la izquierda.

3.Para saber si un pixel es rojo o no comprobamos que el valor del atributo rojo del pixel sea muy algo y que de verde y azul sea muy bajo

miércoles, 28 de enero de 2009

CHESTE 2

Bueno, pues doy por acabada la practica de Cheste. La verdad es que me gustaría programarlo de otra forma, que fuese más elegante pero no tengo tiempo y parece que el robot hace lo que se pide. Si termino pronto la siguiente volveré para mejorar esta practica.

Para realizarla he modificado ligeramente el código hecho para el VFF y también he cambiado en algunos puntos la forma de calcular la fuerzas. En las curvas va muy dubitativo, pero parece que es capaz de recorrer el circuito y de esquivar los obstáculos que se encuentra a su paso.

A continuación podeis ver dos vídeos de mi robot, en el primero recorre el circuito, en el segundo esquiva obstaculos.



Para ver mejor el video puedes pinchar aqui




Puedes ver mejor el vídeo pinchando aqui

miércoles, 21 de enero de 2009

CHESTE

Bien ya hemos empezado con Cheste.
Tenemos que utilizar nuestro codigo de VFF y meterlo en el circuito de Cheste. El objetivo es que el robot sea capaz de seguir una serie de puntos predeterminados y que al mismo tiempo sea capaz de esquivar los obstaculos inesperados que puedan sugir durante el recorrido, como por ejemplo otro robot que esté realizando el circuito en ese instante y se interponga en la trayectoria del nuestro.

Lo primero de todo es conseguir el circuito de Cheste para poder utilizarlo como "mundo" con el player.

El siguiente paso es obtener la secuencia de puntos que el robot debe seguir para recorrer el circuito.

martes, 20 de enero de 2009

PRACTICA - VFF

Según lo que hemos visto en clase la navegacion vff es aquella en la que el robot está sometido a un campo potencial, donde el punto de destino del robot ejerce una fuerza de atraccion (Fa) sobre el robot y los obstáculos generan una fuerza de repulsion (Fr) sobre el robot, por lo que se moverá en la dirección de la fuerza total (Ft):
A continuacion explicaremos como hemos calculado cada una de estas fuerzas:


Fuerza de Atraccion (Fa)

Fa=Katraccion (origen-destino)
(origen-destino)= Xf-Xo+ Yf-Yo

Si Xo,Yo=0
(origen-destino)= Xf - Yf
Fa=Katraccion (Xf-Yf)





Fuerza de Repulsion (Fr)
Detectamos una fuerza de repulsion cuando el laser detecta una barrera a una distacia de 1000, si el obstaculo está más lejos, éste no generará ninguna fuerza de repulsión.

El cálculo de la fuerza de repulsion lo hemos realizado a traves de la siguiente formula:
Fr=sum(Fr(i))K/dist_obstaculo
La constante K ha sido elegida a través de las prueba realizadas con el entorno, el valor de K es 18000


Fuerza Total (Ft)
Ft=Katraccion*Fa + Krepulsion*Fr ------ Katraccion= 1-Krepulsion [0-1]


Algoritmo del movimiento
El algoritmo de movimiento lo hemos calculado basándonos en la diferencia entre el ángulo formado por la fuerza total y el que formal a posición del robot. Si esta resta es positiva el giro será positivo y en otro caso será negativo.
Las velocidades del robot también las hemos dado en función de la resta de ángulo, es decir, cuanto más lejos del robot nos encontremos, más rápido será el giro y cuanto más nos acerquemos al destino más despacio nos moveremos

Videos

Acontinuacion podeis observar un video del funcionamiento del VFF. En el video el robot va más rápido de lo que va en realidad.




Podeis ver el video con mayor calidad pinchando en este enlace

viernes, 2 de enero de 2009

choca-gira (verion 2)

Tal y como se nos pidió a través de mail, hemos aumentado la distancia que hay entre el robot y el obstáculo evitando así que se choquen del todo. La variación ha sido muy pequeña ya que antes cuando recibíamos un rebote láser con una medición de 200 hacíamos que girara el robot y ahora lo hacemos cuando la distancia es de 290. De este modo sigue dando sensación de choca-gira aunque el robot no choca físicamente con el obstáculo.




También puede verse pinchando en el siguiente enlace

Choca-Gira (verion 1)

Esta hecha y entregada la practica del choca-gira. Destaco que el robot gira a un lado u otro dependiendo de cual sea la zona por la que choca para evitar que se quede encajado en los rincones.


Si no puedes visualizar el video pincha en este enlace


PRACTICA O --- CHOCA-GIRA

Hemos realizado primero una serie de pruebas para comprobar cual es el valor que tiene el láser cuando el robot choca con una pared.

Cuando detectamos que el robot choca, decidimos cual será el giro (derecha o izquierda) dependiendo de que zona del robot es la que toca con el obstáculo para así evitar que en una esquina se quede "encerrado" el robot.

Cuando el robot no choca con nada seguira una trayectoria recta hacia delante.

Nuevo Blog

Hasta ahora he estado utilizando el blog de que nos proporcionaba el moodle de la asignatura, pero ante la incapacidad para enlazarlo como han hecho otros compañeros he decidido hacer un blog nuevo que si pueda enlazar.

Adjunto la direccion en la que se pueden leer las entradas anteriores aunque también las voy a poner en este blog:
http://gsyc.escet.urjc.es/moodle/blog/index.php?userid=4265&courseid=23