Professional Documents
Culture Documents
Arquitectura Abierta
Programas de usuario.
Biblioteca de Myro y de Visin.
Sistema Operativo con capacidad de
comunicacin TCP/IP.
Figura 4. Placa EasyDuino Shield Los programas de usuario son aquellos que se
ejecutan en una PC o porttil remota para controlar los
robots (mediante la invocacin a funciones de la
biblioteca de Myro). Debido a que la biblioteca de Myro interpreta por el mdulo que decodifica paquetes Myro.
est implementada en diferentes lenguajes de Una vez decodificado se activan los actuadores corres-
programacin, el usuario tiene una variedad de opciones pondientes a la orden Myro recibida (motores, leds,
al momento de seleccionar un lenguaje para el desarrollo parlante, gestin del nombre, etc) y este mismo mdulo
de programas en esta plataforma educativa. enva por la interfaz serial un paquete de respuesta
En nuestra implementacin se ha decidido utilizar definido por el protocolo.
comunicaciones inalmbricas (Wi-Fi), que posibilitan un Utilizar un microcontrolador AVR Atmega como
mayor ancho de banda y mayor alcance; caractersticas arquitectura para la placa EasyDuino permiti desarrollar
necesarias para posibilitar la transmisin del streaming de todo el software del robot con herramientas open source,
visin y de los paquetes del protocolo Myro. Se principalmente GNU GCC (The GNU Compiler Collec-
reemplazaron los mdulos de comunicaciones originales tion).
de Myro con las modificaciones necesarias para soportar
conexiones TCP/IP, que permiten la comunicacin por 2.4. Visin
red inalmbrica con los sistemas operativos Linux La visin es controlada por el sistema Linux en el
embebidos en los robots. robot, a travs del driver UVC y la aplicacin
El componente de visin se implement como una mjpg_streamer [17] embebida. Adems, fu desarrollada
biblioteca compartida, para ser utilizada por los progra- una biblioteca de visin en lenguaje C, que permite
mas de usuario con cualquiera de las implementaciones solicitar y procesar imgenes de la cmara. Se integr
de Myro existentes. esta biblioteca a Myro, para que los programas de usuario
puedan utilizar la visin del robot para el sensado del
Software del robot ambiente.
En el robot se distinguen los siguientes niveles de Cuando un programa de usuario utiliza la API
software: (Application Programming Interface) de visin, la
biblioteca de visin solicita imgenes al robot para ser
Sistema Operativo Linux embebido con drivers procesadas. La aplicacin mjpg_streamer del robot enva
TCP/IP, wireless, USB, UVC y serial. entonces un streaming de video de cuatro FPS (frames
Firmware para el Atmega8 de la placa Easy- per second - cuadros por segundo), con una resolucin de
Duino con drivers serial, de motores, leds y 160x120 pixels para cada imagen.
parlante. La biblioteca de visin, recibe estas imgenes, y
detecta objetos por color generando una estadstica de los
Adems, en el firmware, se implement la capa de elementos identificados. Luego, el programa de usuario
software que interpreta el protocolo de Myro, para puede llamar a funciones de consulta para identificar los
procesar los paquetes provenientes de la biblioteca de tamaos de los objetos encontrados y su posicin frente
Myro del computador remoto. al robot. De esta manera, y con precisin en pixels, un
programa de usuario puede reconocer a "cuantos'' pixels
El sistema Linux fue desarrollado utilizando Openwrt, a la izquierda o derecha del centro del robot se encuentra
el cual se compil y configur para que pueda ser un objeto de inters.
utilizado como interfaz de comunicaciones, y para el Utilizando estas primitivas de reconocimiento en base
control de la visin a travs de una cmara UVC (USB a tamao del objeto (el cual da una referencia de
Video Class). Los paquetes del protocolo Myro remotos distancia), y posicin (la cual da una referencia sobre la
recibidos por el robot de manera inalmbrica, son orientacin horizontal con respecto a la visin del robot)
encaminados por el sistema Linux al firmware del se pueden implementar programas sencillos de "bsque-
EasyDuino, a travs de una comunicacin serial. De esta da'' de objetos, interactuando con el mundo real.
manera, varios clientes TCP/IP pueden hacer uso del
robot de manera independiente. La comunicacin 2.5. Utilizando Robots con Vision
inalmbrica tambin es utilizada para enviar las imgenes El software Myro es utilizado desde la PC o netbook
de la cmara del robot, y para la administracin del de los estudiantes y profesores, controlando el robot de
sistema. forma remota a travs de programas escritos en Python,
El software desarrollado para la placa EasyDuino C, C++, Java o CiaoProlog.
(firmware para el microcontrolador AVR Atmega328) En la Figura 7 se puede observar un programa de
presenta cuatro mdulos principales: el controlador de pocas sentencias en lenguaje Python. En este ejemplo, el
leds y parlante, el controlador de motores, el controlador robot girar sobre su eje hasta que, utilizando su visin,
serial, y el mdulo que interpreta el protocolo Myro. encuentre un objeto de color blanco. Como se observa, la
Cuando un paquete es recibido por la interfaz serial API es fcil de utilizar, lo que permite acceder a las
desde el sistema embebido Linux, se lo deriva e distintas capacidades de la plataforma (movimientos,
visin, dispositivos de salida led y parlante) de manera 4. Charla de divulgacin de las carreras informti-
sencilla. cas que se realiz durante las Jornadas.
3. Resultados
Un primer prototipo fue utilizado en el segundo
cuatrimestre de 2012, en dos charlas de divulgacin de
las carreras informticas de nuestra Facultad, y en dos
clases prcticas de la materia "Introduccin a la
programacin'' de nuestras Tecnicaturas Universitarias.
Estas primeras pruebas reales tuvieron algunos
inconvenientes esperados en cuanto a la electrnica,
software y partes mecnicas. Pero, los docentes a cargo Figura 8. Proyecto de Extensin Universitaria
de esas actividades y proyecto, incentivados por la
innovacin en las clases, realizaron varios aportes para 4. Conclusiones
mejorar la robustez del software, lo que permiti que En este artculo se present la arquitectura de un robot
algunos problemas electrnicos fueran reconocidos por el educativo con visin. El diseo actual ha permitido
software y se tomarn acciones automatizadas para fabricar varios ejemplares de estos robots de bajo costo,
mejorar el uso. Todos estos cambios pueden visualizarse lo que facilita el uso de esta plataforma en distintos
en el histrico de versiones del repositorio del proyecto lugares simultneamente, y con distintos objetivos. El
[18]. uso real tambin nos permite mejorar ambas
Sustanciales mejoras similares se realizaron durante arquitecturas, y se espera continuar mejorando el
2013, con aportes en las distintas capas de software y de hardware y software a travs de la retroalimentacin
hardware. En ese mismo ao, se los utiliz como recibida de los docentes y estudiantes, los cuales reportan
plataforma principal en el proyecto de extensin anual problemas o solicitan caractersticas nuevas.
"Divulgando Computacin con Robots en la Escuela
Media'' que realiz encuentros con alumnos de escuela Nuestras experiencias han despertado tambin inters
secundaria, en dnde se les ense a programar en los medios locales [22] y [23], los cuales ayudan a
utilizando robots. En cada encuentro se observaron pocas promover las carreras de informtica, a travs de la
fallas (de una a tres) relacionadas con la plataforma publicacin de las experiencias y proyectos que se llevan
robtica, y todas estas pudieron ser solucionadas en el adelante con la extensin universitaria.
momento [19].
Tambin en el 2013, y en el marco de las X Jornadas A futuro, se espera finalizar el prototipo del
de Informtica de la Universidad de la Patagonia Austral, framework Myro para el lenguaje de programacin Ciao
Ro Gallegos, estos robots educativos fueron utilizados Prolog, el cual se encuentra en etapas iniciales de
como herramienta de pruebas en cuatro actividades desarrollo. Este lenguaje es utilizado en materias dentro
universitarias [20]: del rea de la Inteligencia Artificial, y en las tesis de
grado afines.
1. Curso de extensin "Robtica Cognitiva''.
2. Curso de postgrado de Inteligencia Artificial Adems, es necesario an realizar algunas tareas para
"Robtica Cognitiva''. facilitar el reso de todo el diseo. Por ejemplo, los
3. Taller de programacin para alumnos universita- esquemticos y los archivos de las placas de circuito
rios. impreso deberan ser portadas a formatos soportados por
software libre. De momento, se encuentran en formato [10] Sitio Web del Robot Hummingbird:
Eagle, que aunque es un software gratis no es libre. http://www.hummingbirdkit.com/ - ltimo acceso: 07/08/2014.
Formatos ms adecuados son los generados por Kicad o [11] Sitio Web del Grupo RobotGroup:
Geda. http://www.robotgroup.com.ar/ - ltimo acceso: 07/08/2014.
[12] Daz Javier F., Banchoff Tzancoff Claudia M., Martin
La documentacin existente, esquemticos, diseos de
Sofa y Lpez Fernando, "Aprendiendo a Programar con Juegos
las placas de circuito impreso, software de los robots, y Robots, VII Congreso de Tecnologa en Educacin y
bibliotecas asociadas, ejemplos de programas de usuario, Educacin en Tecnologa. Universidad Nacional del Noroeste
tutoriales de instalacin, y toda la informacin (Buenos Aires, Argentina), Junio 2012 -
relacionada al proyecto, se puede obtener desde nuestro http://hdl.handle.net/10915/19307 - ltimo acceso: 07/08/2014.
sitio web y desde el repositorio de versiones git, lo que [13] Clifton A. Ericson, Concise Encyclopedia of System
cumple en gran parte con los requisitos necesarios para Safety: Definition of Terms and Concepts, Willey, August
ser definido como una arquitectura abierta [24,25]. 2011.
[5] Sitio Web del proyecto Calico: http://calicoproject.org/ - [21] Sitio Web del proyecto de extensin ao 2014 `Con la
ltimo acceso: 07/08/2014. Escuela Media Programamos robots y Conocemos ms de
Computacin''. Universidad Nacional del Comahue:
[6] Douglas Blank, Jennifer S. Kay, James B. Marshall, Keith http://robots.fi.uncoma.edu.ar - ltimo acceso 05/08/2014.
O'Hara and Mark Russo, "Calico: a multi-programming-
language, multi-context framework designed for computer [22] Diario La Maana del Neuqun - Edicin del 04/10/2013:
science education, Proceeding SIGCSE '12 Proceedings of the http://www.lmneuquen.com.ar/noticias/2013/10/4/aprendieron-
43rd ACM technical symposium on Computer Science a-programar-y-crearon-a-frankestito_202090 - ltimo acceso:
Education Pages 63-68 ACM New York, NY, USA 2012 - 07/08/2014.
ISBN: 978-1-4503-1098-7. [23] Programa de Televisin `Cdigo Rupestre'', capitulo `El
[7] Sitio Web de Calico-Myro Robots: lenguaje de los Robots'': http://www.codigorupestre.com.ar/?
http://calicoproject.org/Calico_Myro#Robots - ltimo acceso: p=443 - ltimo acceso: 07/08/2014.
07/08/2014. [24] Wiki del Robot Educativo Fai UNCOMA:
[8] Sitio Web del Robot Scribbler: http://labti.fi.uncoma.edu.ar/trac/wiki/RoboTitos
http://wiki.roboteducation.org/Myro_Hardware - ltimo acceso: [25] Repositorio Git del Robot Educativo Fai UNCOMA:
07/08/2014. https://github.com/zrafa/se_uncoma
[9] Sitio Web del Robot The Finch: http://www.finchrobot.com/
- ltimo acceso: 07/08/2014.