lunes, 28 de marzo de 2011

Código fuente utilizado por el Robot Rescatista L.I.D.E.R

Hola a todos,

Acá ponemos el link al código fuente del robor rescatista L.I.D.E.R (Lanzador Inteligente de Dispositivos Especializado en Rescate).

http://rapidshare.com/files/454803381/RobotBalisticaV2-B.ic

Esperamos que hayan disfrutado de las demostraciones!

Fin de la presentación del perrito

Buenas gente,

Lunes de semana 12 ! Listo la última presentación por ahora del perrito. Tanto el grupo del colegio, como el de personas salieron encantados. Claro que hubo gente que se aburrió, como otras que les encantó la idea. Nada que hacer, así es la vida. Esperamos que a la mayoría hallan salidos fascinados !

Hubieron ciertos inconvenientes debido a la gran  cantidad de personas el perroito no tenia mucha movilidad ni capacidad de esquivar bien las cosas, por lo que a cada rato había que pararlo porque se salió una rueda. También hubo full mala suerte, justo un minuto antes de comenzar una de las presentacion uno de los servos se le salió un tornillo. Se tuvo que ponerle una probabilidad a lo de seguir a las personas, en vista a la cantidad tan grande de personas. En fin, como todo en los robots y programación, siempre hay un caso que no se toma en cuenta, lo que nos generó bastante fastidio y que las personas no pudieran ver al 100% al perrito: una lástima.

Bueno, como se prometió acá se sube el último código que se subio para hacer las pruebas. Acá el link:

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

En fin, TERMINAMOS, los que deseen seguir con el proyecto, adelante acá se buscó explicar todo de la mejor manera.

domingo, 20 de marzo de 2011

Demostración de la Plataforma de Lanzamiento de DIspositivos de Rescate socorriendo a un edificio en Llamas!

He aquí el fruto de horas y horas y horas de calibraciones, arreglos de estructura, cambios y nuevas ideas en el código!

Disfrútenlo. Nosotros estamos que lloramos de alegría !

Mañana es el gran día del perrito

Buenas ! ,

Como dice el título ya en unas horas toca presentar al querido animal. La promoción del evento está excelente: en la cartelera del GIA sale una foto del canino y hasta en USB Noticias se habla e invita a la gente a asistir. Mañana sera un gran día para demostrarle a las personas nuestro trabajo e incitarlas a meter la materia. Ya el robot esta con todos sus últimos arreglos ! Se arreglaron errores de funcionamiento. Por ejemplo el seguir la pelota tenía un if de más que no dejaba alinear bien. Además se grabó en el aparato que se hablo en el post pasado que nos prestó la profesora Chang( se ve en una de las fotos el anarajando ) el ladrido del perrito, por lo que ahora cuando ande hará éstos. Éste va a ser colocado en el hocico donde hay un espacio perfecto para colocarlo y donde no se va a caer.

Se probó varias veces y se grabaron los siguientes videos ( sin el caparazón ):


 También se tomaron las siguientes fotos:

https://picasaweb.google.com/cfgrobotica/Perrito18032011#

El código final sera publicado el mismo día del evento ya que no se sabe si se hagan más ajustes.

Sin más nada que decir nos vemos el mañana!

sábado, 19 de marzo de 2011

Plataforma Móvil de Lanzamiento de Dispositivos de Rescate

Como tercer proyecto, Juan Martínez y yo, Sergio Martini, hemos estado trabajando en el diseño, construcción y programación de una Plataforma Móvil de Lanzamiento de Dispositivos de Rescate. 

La idea es crear un robot sobre ruedas que se encuentre inicialmente en un pequeño hangar adjunto a un edificio y, cuando se de una señal a causa de un incendio en el mismo, el robot salga de su hangar y se posicione frente al edificio y proceda a apuntar y disparar, con unos cañoncitos de lego, unos dispositivos amarrados con cuerdas de rescate (pabilo)  hacia las ventanas del edificio cercanas a donde se encuentren en llamas. De esta manera las personas que se encuentren en esa zona del edificio y por las llamas no puedan acceder a la escalera de emergencia, puedan ser evacuadas deslizándose con un arnés por la cuerda tensada por la plataforma de rescate.

Para ello es indispensable crear una base para los lanzadores que tenga dos grados de libertad, pitch y yaw. Sobre dicha plataforma estará ubicada la cámara del XBC para que la visión se mueva con ella y pueda apuntar. Usaremos cuadros rojos para indicar  las ventanas que están "en llamas" y será hacia estas que el programa hará que se muevan los motores a fin de alinearse y disparar a través de dicha ventana.

La primera prueba consistió en probar que tan confiables eran los disparadores. Para ellos los instalamos en un una base circular con piezas de lego y procedimos a fijarla en un punto de la mesa de trabajo. Luego colocamos con ayuda de unas cajas una hoja blanca en la cual disparamos 10 veces con cada uno de los 4 disparadores y con un marcador fuimos marcando donde había golpeado el proyectil. De esta forma calculamos a grosso modo cuál era el error. 

 










Img 1. Base de los disparadores para prueba. 
                  Img 2.  Prueba de error de los disparadores

 Img 3. Distribución de impactos obtenida. (Cada color es un disparador)

Para accionar los lanzadores incluimos en la plataforma  un servo motor y transformamos el movimiento de rotacional a lineal para hacer subir y bajar un brazo mecánico. Dicho brazo será el que presionará el mecanismo de disparo de los lanzadores.

Img 4. Accionador de los lanzadores con servo motor

El siguiente fué el primer prototipo de la plataforma. Se puede observar la posición de los motores para lograr los movimientos de pitch y yaw.
:
Img 5. Primer prototipo de plataforma

Un problema que surgió con este modelo fué que el XBC tiene sólamente 4 entradas para motores, y dos eran necesarios para las ruedas. No se puede apreciar en la foto, pero el primer prototipo usaba 3 motores, por tanto sólo hubieramos podido usar otro para el movimiento. Por tanto decidimos substituir uno de ellos por un servo motor: el que maneja el pitch.  Paa fijarlo usamos el soporte que se observa en la Img 6. para colocarlo en la articulación que se observa en la Img 7. El resultado se observa en la Img 8.:



  
   Img 6. Soporte de servo del pitch

   Img 7. Articulación del Pitch

Img 8. Servo motor encargado del pitch

Con respecto a la mobilidad, en un principio quisimos emplear orugas en lugar de ruedas, en caso de que hubieran escombros frente al edificio, pero debido a la difícil y frágil sujetación de las mismas y a la dificultad para los giros decidimos finalmente regresar a las confiables ruedas.






Img 9 y 10  . Base con orugas. Nótese la inclinación para escalar irregularidades.

Después de un prototipo fallido de base que sujetara la plataforma de lanzamiento llegamos a este, mucho más robusto que el anterior.

Img 11. Vista inferior del diseño final de la estructura del robot.


Img 12. Diseño final del robot.



En el siguiente video podemos observar un video que muestra las capacidades de giro de la plataforma y la activación de los lanzadores:


Al usar 4 dispositivos de rescate con cuerdas, nos costó tiempo e ingenio idear una estructura y configuración que permitiera que no se enredaran entre sí. En el siguiente video iliustramos el resultado:


El siguiente es un video demostrativo de la utilidad de la configuración de las cuerdas explicada en el video anterior. La desviación se debe a que aún no se había calibrado la visión de la cámara.



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

miércoles, 9 de marzo de 2011

Ya con forma el Perrito

Saludos gente,

Algo tarde este post, pero ya empezamos con la construcción de nuestro querido animal: creamos la estructura del lego y cortamos y pintamos el cartón. Ya tiene forma !

Éste va a tener dos aciones que aprendera: agarrar la pelota y hacer sus necesidades en la zona adecuada. La primera lo hace bien si busca un humano ( se guía por el azul, ya que los blue jean son las ropa más común )  y se la devuelve o mal si la suelta. La pelota va a ser amarilla y la zona adecuada rojo, y ya con eso se usan los 3 colores que puede configurarsele a la cámara.

Como se planeó se puso un servo adelante, que va a ser la boca, uno atrás que movera la cola y finalmente uno de lado y atrás que va a mover la pata derecha de la parte trasera.




Aún le faltan ciertos detalles, como una tapa adelante y otra atrá, que cuabran mejor todas las partes mecánicas. Y bueno ya con eso cuadrar hacer que la boca y cola funcionen bien con ellos. La cámara y el infrarojo se pondrán en dos huecos en la parte de adelante.

El cariño, es decir felicitarlo, es como hacerle un cariño en la parte superior, donde se colocó uno de los pulsadores. Su contra parte la de regañarlo se desea poner en la parte de atrás donde va a simular una nalgada.

También se pensó y analizó la forma de generar un aprendizaje fácil y creible. La idea es sencilla, se tienen dos probabilidades: bien y mal. Cuando el vaya a hacer una de las acciones de aprendizaje, se genera un número aleatorio entre 0 y la suma de la prob. de mal y bien. Puede caer entre [0..p. mal ) y [p. mal ... p. mal + p. bien). Si cae en la primea hace la acción incorrecta, sino hace la adecuada. Al terminar el se queda parado esperando un regaño o cariño. Si lo hizo bien entonces se aumenta la probabilidad de hacerlo bien y se dismimuye la contrario, manteniendo el mismo valor de la suma entre ambas. Hacerlo de esta manera es sencilla de programa y es bastante creíble a simple vista.

La pelota la va a buscar siempre que la vea, al igual seguir el humano. Sino el simplemente va a merodear evitando obstaculos y va a ir generando una probabilidad para ver si va a ir al baño.