viernes, 11 de marzo de 2011

Aprendiendo con el perrito

Buenas gente !

Siguimos con el progreso del robot ! Ya se programo la mayoría de las funciones y se conectaron al robot las siguientes cosas:

  • Servo 0: Boca
  • Servo 1: Cola
  • Servo 2: Pata
  • Puerto 0 (analógico) : Infrarojo.
  • Puerto 14 (digital): Pulsador de regaño
  • Puerto 15 (digital): Pulsador de cariño
  • Motor 0: El izquierdo.
  • Motor 2: El derecho

Con respecto a la cámara los 3 modelos de colores son los siguiente:

  1. Zona de hacer las necesidades ( Roja )
  2. Pelota ( Amarilla )
  3. Humano ( Azul ) : Se quiere que siga los blue jeans, ya que es muy común

El robot va a hacer un ciclo infinito de la siguiente forma:

Inicializan las probabilidades ( bueno 5 y malo 15 )

Para siempre

    Si hay obstaculo
        Esquivarlo
    Sino si hay pelota
        Agarrar pelota ( Color amarillo de cierto tamaño )
        r <- uniforme(0,20)
        Si (r < p. agarrar pelota mal)
             Soltar pelota
             Esperar regaño o cariño y actualizar las probabilidades ( Se aumenta y disminuye en 1 )
        Sino
            Buscar humano
            Seguirlo, llevarle la plota y soltarla
            Esperar regaño o cariño y actualizar las probabilidades ( Se aumenta y disminuye en 1 )
         Fin
    Sino si hay humano ( Color azul de cierto tamaño )
        Seguir humano
     Fin

    r < uniforme(0,500)

    Si ( r < 1 )

        r <- uniforme(0,20)
        Si (r < p. hacer necesidad mall)
            Levantar y bajar la pata
            Esperar regaño o cariño y actualizar las probabilidades ( Se aumenta y disminuye en 1 )
        Sino
            Buscar zona indicada
            Levantar y bajar la pata
            Esperar regaño o cariño y actualizar las probabilidades ( Se aumenta y disminuye en 1 )
        Fin
     Fin

Fin

uniforme: devuelce un entero entre los dos números que se le dan, usando una distribución uniforme.

Cuando se refiere a busca el robot va a girar poco a poco viendo si ve el color que necesita: humano azul, zona rojo y pelota amarillo.

Como se ve las probabilidades son enteras, en vista que la funcion random de xbc devuelve un entero entre cierto intervalo.

Otro detalle que se ve es que el perrito va a tener más probabilidad de equivocarse, la idea es ver que aprende!

Por ahora las probabilidades van a varias por 1. Es decir, si la buena estaba en 10 y la mala en 10. Si el perrito hizo algo bien y se le hace cariño, entonces la buena para a 11 y la otra a 9. Como el perrito se quiere que este un buen rato andando, de esta forma no aprende tan rapido. De todas formas se puede cambiar a la perfección estos valores.

Además de el código vale acotar que la profesora Carolina Chang, nos prestó un juguete que graba cierto sonido y lo reproduce dependiendo de la luz que sienta. La idea es usar este aparato para simular los ladridos del perro, lo que va a aumentar mucho el realismo del animal !

Ya lo que falta es asegurar que lo que se programo este bien, que todo ande bien calibrado y bueno ver que mejoras se le pueden colocar.

Finalemente es importante resaltar que la cámara del XBC no es muy buena dentro del salón del GIA: a veces ve una silla azul o una tabla amarilla lo que no permite probar bien. Se intento probar afuera, pero es peor porque la cámara practicamente ve todo rojo y alguno otra cosa amarilla. Por los momentos se tiene pensado es probarlo en el primero mencionado, ya que es el mejor lugar hasta los momentos, pero se tiene en cuenta este problema y se buscará a ver si hay un mejor lugar.

Acá el link para descargar el código:

http://rapidshare.com/files/452103662/mascota.ic

No hay comentarios:

Publicar un comentario