Bienvenidos al proyecto BUTIÁ

Este proyecto plantea como objetivo crear una plataforma simple y económica que permita a alumnos de liceos públicos, en coordinación con docentes e inspectores de Enseñanza Secundaria, interiorizarse con la programación del comportamiento de robots.

Novedades


2/08/2010

Ahora podés controlar el robot Butiá desde Tortugarte!!  Tortugarte es una excelente aplicación (incluida en el sistema operativo Sugar) para quienes dan sus primeros pasos en lo que refiere a programación. Provee un entorno de desarrollo intuitivo y colorido que motiva al joven aprendiz. El programa consiste en armar un puzzle utilizando las piezas de los diferentes "kit" que ofrece. Al "kit" de piezas standard se agregaron las correspondientes al robot butiá con sus respectivos sensores y actuadores. Ahora podemos programar de forma muy sencilla un comportamiento para el robot y ponerlo en acción usando Tortugarte!!

En esta primera imagen podemos ver el entorno de trabajo que posee la aplicación Tortugarte, y se puede apreciar que el último símbolo del menú de piezas es el logo Butiá. Una vez que hacemos click en dicho logo, obtenemos un conjunto de elementos que nos permite trabajar con la mayoría de las utilidades del robot.



En la imagen siguiente podemos ver la forma en que fueron colocadas las piezas para obtener cierto comportamiento. En este caso el programa lo que hace es avanzar mientras el sensor "botón" no esté presionado. En caso de estar presionado, retrocede, gira en el lugar y luego vuelve a avanzar. Esta es una manera de evitar obstáculos.



Finalmente les dejamos el video del robot en acción corriendo el algoritmo presentado anteriormente.









24/06/2010

El robot Butiá se hace famoso a nivel internacional. Ayer mientras estábamos trabajando en una nueva versión del robot nos llegó una visita sorpresa...nada más y nada menos que Walter Bender, fundador de SugarLabs y ex-director del prestigioso
MediaLab del MIT (Massachusetts Institute of Technology). SugarLabs desarrolla software educacional y entre su software más destacado aparece el sistema operativo de la XO, el "Sugar". Tras su visita le contamos un poco de que se trataba el proyecto y finalmente hicimos unas demos, en la cuales él participó de forma activa.



Más info sobre Walter Bender en http://en.wikipedia.org/wiki/Walter_Bender


22/06/2010

Se habilitó la página del Módulo de Taller Butiá/XO. Se puede acceder haciendo click en "curso" en el menú.

26/05/2010

MODULO DE TALLER PARA ESTUDIANTES DE LA CARRERA INGENIERIA EN COMPUTACION E INGENIERIA ELECTRICA.
A raíz de el desarrollo que está teniendo el robot butiá se abrió un módulo de taller en el cual los estudiantes podrán conocer las bases de la robótica, programar aplicaciones y comportamiento para el robot en las XO, y fomentar su trabajo en diferentes liceos del país.

Se aceptaran inscripciones hasta el viernes 4 de junio del 2010. Las inscripciones deben realizarse mandando un e-mail a la dirección butia@fing.edu.uy con el asunto "INSCRIPCION" que contenga:

- Nombre y apellido del estudiante
- Cédula del estudiante
- Carrera de la cual proviene

Adjuntamos el programa del curso: Programa Módulo Taller

newsgroup : fing.cursos.mtbutia

29/04/2010

Finalmente, luego de unos días de trabajo y un poco de investigación logramos controlar el butiabot con un celular utilizando su acelerómetro. Hicimos las pruebas con dos tipos de celulares distintos, uno es el G1 Google Phone y el otro es el Open Moko. Ambos celulares tienen el sistema operativo creado por Google llamado "Android".

A continuación exponemos algunos videos de lo que pudimos hacer con el robot butiá...


A modo de ejemplo, mostramos el código cliente que corre en el celular G1 Google Phone. El código utilizado para el Open Moko es muy similar, lo que cambia son las funciones utilizadas para obtener la rotación de los ejes (x e y) del acelerómetro. El código esta todo en el lenguaje Python. Este es el lenguaje que viene instalado en las xo con un entorno de desarrollo y muchos ejemplos.

#butiaRemoto
import butiaAPI #api que encapsula la comunicacion por socket con el servidor del robot
import android  #api que nos permite la consulta al acelerometro
import time     #se importa solo para utilizar una fucion de delay

droid = android.Android() #creo un objeto del tipo android

butiabot = butiaAPI.robot() #me conecto al servidor
modulos = butiabot.listarModulos()  #listo los modulos
print modulos  #imprimo la lista de modulos que hay en la placa arduino

butiabot.abrirMotores()  #inicializo el modulo de los motores
s = droid.startSensing() #comienzo a sensar con el acelerometro
time.sleep(1)   #hago un segundo de pausa para darle tiempo al sensor de almacenar valores

while True:
    s = droid.readSensors() #leo los valores del acelerometro
    if s == None:   #control de errores
        print "s == None"
    elif s.error != None:
        print "error"
    else:
        #este es el caso de que no hubo error
        print "roll  y1=" + str(s.result['roll'])
        print "pitch x1=" + str(s.result['pitch'])
       
           
        y1 = s.result['roll'] #obtengo la rotacion en el eje y
        x1 = s.result['pitch'] #obtengo la rotacion en el eje x
       
       
        if x1 > 45: #normalizacion de los valores para ajustarlo al celular
            x1 = 45
        elif x1 < -45:
            x1 = -45   
        if y1 > 45:
            y1 = 45
        elif y1 < -45:
            y1 = -45       

        xplusy = x1 + y1
        yminusx = y1 - x1

        #rueda izq la de id mayor
        sentidoIzq = 0 #forward
        if xplusy < 0:
            xplusy = abs(xplusy)
            sentidoIzq = 1

        #rueda der la de id menor
        sentidoDer = 0 #forward
        if yminusx < 0:
            yminusx = abs(yminusx)
            sentidoDer = 1

        xplusy = xplusy*22 #escalo el valor obtenido para llegar al maximo que puede dar el motor
        yminusx = yminusx*22

        #normalizo
        if xplusy > 990:
            xplusy = 990
        if yminusx > 990:
            yminusx = 990

        #envio velocidades y sentidos al robot. Los primeros valores son para el motor con identificador menor.
        butiabot.setVelocidadMotores(str(sentidoDer),str(yminusx), str(sentidoIzq), str(xplusy))           

droid.stopSensing() #detengo el uso del sensor
print "fin"

Y finalmente, les dejamos otro video del robot pero esta vez comandado por un celular Open Moko.


26/04/2010

Una vez más vamos a presentar una nueva aplicación del butiabot. Esta vez el objetivo fue controlar al robot de forma remota utilizando un celular. Esta tarea fue bastante fácíl gracias a la arquitectura del sistema y que la comunicación entre el servidor y el cliente es mediante socket. Un socket (enchufe), es un método para la comunicación entre un programa del cliente y un programa del servidor en una red.

En este caso nuestro programa servidor se está ejecutando en la "ceibalita" mientras que el programa cliente se ejecuta en el celular. El servidor que corre en la XO como ya mencionamos en otras entregas está hecho en lua en su gran mayoría. Por otro lado el programa cliente que corre en el celular esta hecho en python.

Los pasos para para realizar esta tarea con éxito fueron los siguientes:

1- Conectar la XO a un router.
2- Ejecutar el programa servidor en la XO.
3- Conectar el celular al mismo router.
4- Configurar el archivo butiaAPI.py con el puerto y el socket deseado en el que "escucha" la XO.
5- Ejecutar el programa butiaRemoto.py

A continuación tenemos un video que nos muestra los resultados de la aplicación:


Los planes a corto plazo implican modificar el programa cliente para que tome los datos del acelerómetro del teléfono y manejar el robot moviendo el celular, de manera que no sea necesario utilizar el teclado del mismo.


15/04/2010

Después de la última reunión del equipo Butiá, gracias a un gran aporte de Jorge y Andrés, pudimos correr lua y por ende el servidor (quién se comunica con la placa arduino) y varias aplicaciones cliente, todo en la XO sin necesidad de permisos de root. Esto fue un excelente logro ya que implica que en cualquier "Ceibalita" podremos correr el programa del butiábot. Lo mejor de todo es que lo podemos correr directamente desde un pendrive, no necesita instalación!!

A partir de poder correr el servidor butiá en la XO, creamos las primeras aplicaciones para el robot. Estás primeras aplicaciones fueron realizadas utilizando el robot butiá y un sólo sensor de escala de grises. La primer aplicación que se ve en el video es un seguidor de lineas negras mientras que el segundo video nos muestra un luchador de sumo sin mucha inteligencia.

Como estas primeras aplicaciones puede haber muchísimas, el único límite es nuestra creatividad. 


12/04/2010

Butiábot ya está en movimiento!! Luego de haber hecho algunas modificaciones sobre el firmware de la placa arduino y después de haber instalado el software de alto nivel que fuimos desarrollando a lo largo del proyecto (reutilizando parte del lubot), llegamos a los resultados que podemos ver en los videos a continuación:


 

23/03/2010

El butiábot ya tiene amortiguador delantero!! Info aquí.

22/03/2010

Hemos incorporado nueva información sobre la placa que vamos a utilizar para controlar el robot (arduino) y sobre el tipo de alimentación que proponemos utilizar. En la parte de prototipos se encuentra toda esta información.

                                                                                                                                                      19/03/2010

Queremos darle las gracias a Pablo Gindel (alias "Palmer") por el muy buen artículo que escribió en su blog sobre el butiá:
     
        http://www.pablogindel.com/2010/03/proyecto-butia/

y también a Jorge Visca por su aporte en su blog:

        http://cargueconcuidado.blogspot.com/2010/02/oh-boy-oh-boy.html

    GRACIAS A AMBOS!!
                               16/03/2010

Agregamos en la sección descargas la presentación del proyecto para que la puedan ver. La presentación además de hablar del "butiá" muestra algunos proyectos en los que ha trabajado y se está trabajando en el Grupo MINA (Network Management - Artificial Intelligence) actualmente.
                             10/03/2010

Nueva actualización en la sección descargas. Ahora podrás encontrar una completa referencia técnica sobre los motores Dynamixel AX-12.
                            5/03/2010

En la sección prototipos agregamos videos del robot butia dando sus primeros pasos!!

                            11/02/2010

Hola!, estamos trabajando en la actualización del sitio web. Ya nos podés contactar por mail o mediante el grupo de noticias.

En la seccion prototipos vas a encontrar como avanza el proyecto en lo que respecta al proceso de creación del robot.


Hit Counter by Digits








mina // fing // udelar .