

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
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
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
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
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.
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.
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.
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
23/03/2010
22/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á:
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!!
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.
Nueva actualización en la sección descargas. Ahora podrás encontrar una completa referencia técnica sobre los motores Dynamixel AX-12.
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.
