jueves, 24 de febrero de 2011

Práctica 2. Algo más que pintar un cuadrado

Bueno y aquí está la entrada de la prática 2. En esta práctica usaremos por primera vez los sensores de nuestro robot, lo que permitirá a VivaBender realizar tareas un poco más complejas que las realizadas hasta ahora.

Para empezar a familiarizarnos con los sensores hemos tenido que hacer un programa que mostrase por pantalla la información recogida por varios de ellos y a tiempo real.

La información cambia en tiempo real.

Este punto no ha tenido más complicación que encontrar que funciones nos devolvían la información requerida, nada que un paseo por la API de lejOS no pueda solucionar. Con esto hecho podíamos pasar al siguiente punto.


Controlando mediante palmas.

El primer programa a realizar consistía en controlar a VivaBender mediante sonido, cada vez que escuchase una palmada echaría a andar y en caso de ya estar andando se pararía, un comportamiento sencillo que podemos apreciar en el siguiente video.



Como podemos observar en el video se realiza una calibración del nivel de la palmada antes de empezar para así asegurarnos de que el robot reaccionará adecuadamente al sonido. Una vez registrado ese nivel le aplicamos cierto margen de tolerancia en la reacción (por si en la calibración hemos hecho una palmada muy fuerte).


Rebotando contra las paredes

En el siguiente ejercicio usamos el sensor de contacto.

Debajo de ese enorme parachoques está el sensor de contacto.

La tarea consiste en avanzar hasta encontrar un obstáculo, "rebotar" contra él, girar un número aleatorio de grados y volver hacia delante hasta encontrar el siguiente obstáculo y vuelta a empezar.


Podemos ver como realiza giros aleatorios no sólo en ángulo sino también en sentido de giro.



Rebotando... con cuidado

Ahora tenemos que echar mano del sensor de ultrasonidos. El ejercicio es básicamente el mismo que el anterior, sólo que esta vez evitaremos chocar gracias a los ultrasonidos.




Midiendo constantemente el valor que nos da el sensor podemos saber si nos aproximamos a un obstáculo en cuyo caso podemos reaccionar a tiempo para no chocar contra él. Como se observa en el video hemos dado un margen algo alto cuando el robot se acerca de frente a la pared para así poder tener más seguridad en las aproximaciones a la pared con ángulos más complicados, aun así este sensor falla si a VivaBender le da por acercarse a la pared con un ángulo muy oblicuo (como observaremos en la sección de calibración de este sensor).


Escapando del laberinto

Llegamos al ejercicio más complicado de la práctica, VivaBender tiene que seguir una pared a cierta distancia para poder escapar de un laberinto.

Con el sensor orientado en ángulo podemos percibir los rincones.

En este ejercicio hemos implementado un control basado en casos basándonos únicamente en la información recogida mediante el sensor de ultrasonidos distinguiendo:

- Estás muy cerca.- Giro muy cerrado a la izquierda (el único giro bloqueante, hay que asegurarse de que se aleja lo suficiente).
- Estás cerca.- Giro cerrado hacia la izquierda.
- Te empiezas a acercar desde una distancia aceptable .- Giro muy abierto hacia la izquierda.
--- Distancia aceptable a la pared --- (el robot mantiene el rumbo de la última orden hasta entrar en algún caso concreto)
- Te empiezas a alejar desde una distancia aceptable a la pared.- Giro muy abierto hacia la derecha.
- Pierdes la pared.- Giro cerrado a la derecha.

Observamos el resultado en estos dos videos.







Hasta aquí la primera parte, más tarde publicaremos la entrada dedicada a la calibración del sensor de ultrasonidos.

No hay comentarios:

Publicar un comentario