You are on page 1of 6

Robot Educativo con Visin Desarrollado como Sistema Embebido de

Arquitectura Abierta

Rafael Ignacio Zurita, Jos Riquelme, Rodolfo del Castillo


Departamento de Ingeniera de Computadoras
Facultad de Informtica
Universidad Nacional del Comahue
{rafa,jose.riquelme,rdc}@fi.uncoma.edu.ar
http://www.fi.uncoma.edu.ar

Resumen inicial es bajar la tasa de desercin que se haba observa-


do en la carrera de grado de Ciencias de la Computacin
Actualmente se estn utilizando tcnicas poco [2].
convencionales aplicadas a la enseanza. En este sentido Muchos tipos de robots educativos y herramientas de
muchos estudios han sido realizados y probados sobre programacin para estos objetivos fueron desarrollados.
cmo la utilizacin de robots educativos incentiva el En particular, Myro (My Robot), desarrollado en
aprendizaje de la informtica. conjunto por varios organismos a travs de IPRE, es uno
En este trabajo presentamos la arquitectura de un de los frameworks ms ampliamente adoptado [3]. Myro
sistema robtico con visin, de bajo costo, construido implementa un protocolo de mensajes para ser enviados
para ser utilizado como plataforma educativa. (y respondidos) por un robot. Su objetivo inicial es
La adaptacin de un sistema Linux embebido y la permitir un fcil acceso a todas las capacidades del robot,
incorporacin de visin permitieron ampliar el uso y que permita su uso a travs de varios lenguajes de
general de esta plataforma. programacin [4].
Se ha utilizado una metodologa de arquitectura Myro ha sido integrado tambin en Calico, un entorno
abierta para poder compartir el desarrollo con otras de desarrollo ms actual, que permite realizar muchas
instituciones y organismos, al mismo tiempo que se tuvo tareas de programacin inicial en un entorno sencillo de
en cuenta el costo asociado y la complejidad de crear utilizar. Aunque Calico integre a Myro, el objetivo
una plataforma de este tipo. principal de esta herramienta es el foco en el entorno de
En la Facultad de Informtica se lo utiliza para programacin para estudiantes iniciales de Ciencias de la
estudiar Sistemas Embebidos, verificar tcnicas de Computacin [5].
Inteligencia Artificial, incentivar el estudio de la Las instituciones que adopten este tipo de
programacin, y divulgar computacin a travs de herramientas en educacin cuentan con algunas alternati-
proyectos de extensin universitaria. vas al momento de seleccin del hardware, ya que
Calico-Myro soporta varios tipos de robots educativos
1. Introduccin comerciales [6].
A pesar de estas alternativas, el unico tipo de reso
Desde el ao 2006, con la aparicin del Instituto IPRE fcil de adoptar es el software de control, el cual es open
(Institute for Personal Robots in Education) y esfuerzos source. Pero, las plataformas de hardware soportadas por
similares, se ha comenzado a trabajar con plataformas Calico (robots) son comerciales [7-10].
robticas educativas en la escuela media y materias En la Argentina, se han realizado algunos esfuerzos
introductorias universitarias a las ciencias de la para desarrollar dispositivos robticos para educacin, ya
computacin [1]. que en nuestra regin es costosa la adquisicin de robots
La utilizacin de estos dispositivos a travs de que se deben importar. Ejemplo de estos esfuerzos es el
lenguajes de programacin de alto nivel motiva al robot educativo N6, desarrollado por RobotGroup
estudiante, ya que los robots exponen aspectos de la Argentina, y que es utilizado con fines educativos en la
computacin que generalmente no son tangibles en los escuela media [11, 12]. N6 incorpora una placa de
primeros aos de las carreras universitarias. El objetivo hardware libre llamada Arduino UNO, utilizada para el
desarrollo de prototipos de electrnica. Aun as, el resto Cumplen o generan estndares y sus
de la arquitectura del robot no puede ser reproducida especificaciones son generales.
fcilmente, ya que no se ha liberado el resto de la Mltiples proveedores de hardware y software.
documentacin necesaria para la fabricacin de los Mltiples soluciones disponibles de acuerdo a
mismos. necesidades especficas.
Con estas premisas, en nuestra Facultad se dise un
Amplio rango de herramientas de desarrollo.
robot de bajo costo, compatible con Myro, el cual se
desarroll y liber bajo licencias de hardware y software
El sistema de hardware y software propuesto para el
libre, lo cual permite su uso de manera local y su
robot comparte muchas de estas caractersticas. El mismo
promocin a otras instituciones interesadas en fabricar y
ha sido diseado en base a las necesidades requeridas del
mejorar una plataforma de estas caractersticas.
proyecto y para ello se han realizado diversos
Adems, se decidi disear la plataforma no slo para
experimentos y pruebas tanto del software como del
su uso en cursos iniciales de ciencias de la computacin,
hardware involucrado. En el caso del hardware se fueron
sino que tambin para ser utilizada en trabajos de
probando distintos mdulos que hacan a la parte mvil
investigacin. Por tal motivo, se opt por el agregado de
del robot, como lo son el control de los motores, el
visin, lo cual aportara un elemento muy utilizado en
control de la cmara y la conexin inalmbrica. En el
reas como Inteligencia Artificial y Visin por
caso del software se fueron adaptando paquetes de
Computador.
programas embebidos que hacan el nexo entre el usuario
Una limitante conocida, para este ltimo objetivo, es
y el robot. Como cada parte del sistema se fue probando
que las plataformas robticas educativas generalmente
por separado y luego en combinacin, de acuerdo a los
utilizan sensores bsicos, que permiten ser controlados
resultados se fue creando una plataforma del tipo abierta
por un microcontrolador de bajos recursos. Sin embargo,
que permiti este tipo de operaciones. Las distintas partes
para lograr la caracterstica de visin se necesita una
del sistema sern descriptas en las siguientes secciones
cmara integrada, por lo cual fue necesario agregar
pero cabe destacar que las mismas pueden adaptarse
recursos computacionales que posibiliten la transmisin
fcilmente o reemplazarse segn las necesidades o
de las secuencias de video.
complejidad del proyecto en base a su evolucin en el
El propsito de este artculo es describir la
futuro.
arquitectura del sistema. Luego, se exponen los resulta-
dos obtenidos tanto en las experiencias reales usando esta
plataforma en ciclos iniciales de las carreras de 2.2. Arquitectura del Hardware
Informtica, como as tambin de su uso como herra- En la Figura 1 se puede observar el esquema bsico
mienta en investigacin. de la arquitectura del hardware del robot.

2. Arquitectura del Robot Educativo con


Visin
2.1. Sistema de arquitectura abierta
La arquitectura abierta es un tipo de hardware o
software que permite a los usuarios el acceso a todas sus
partes sin restricciones propietarias [13]. Permite aadir,
actualizar, modificar e intercambiar componentes.
Normalmente, una arquitectura abierta publica la
totalidad o parte de las especificaciones y diseos que el
desarrollador o integrador quiere compartir. Los sistemas
de arquitectura abierta son sistemas que proporcionan
una combinacin vlida de interoperabilidad,
portabilidad y estndares abiertos de hardware y
software. Tambin puede significar sistemas configura- Figura 1. Arquitectura del Hardware
dos que permiten el acceso sin restricciones de personas El sistema se compone de una placa controladora
u otros equipos. MIPS MR3020 [15], cuyas principales caractersticas se
Ventajas de la arquitectura abierta [14]: presentan en la Figura 2. Dicha placa acta como
interfaz entre el usuario (PC) y el robot, y provee:
No est sujeta a un solo tipo de hardware
propietario.
Comunicacin inalmbrica mediante un canal en 2,4 Ghz En la Figura 5 se puede observar el robot construido
(Wi-Fi); control de una video cmara UVC tipo webcam; y la disposicin de los distintos componentes de
y comunicacin con la placa EasyDuino. hardware mencionados.
En el proceso de seleccin del hardware para el
sistema Linux embebido se estudiaron placas similares,
realizando ingeniera inversa con algunas de ellas, lo cual
permiti experimentar con Linux y realizar pruebas de
laboratorio para analizar y comparar sus caractersticas
[16].

Figura 5. Robot Ensamblado

2.3. Arquitectura del Software


La arquitectura del software, como se observa en la
Figura 6, est compuesta por cinco capas claramente
definidas, distribuidos en los dos componentes necesarios
Figura 2. Placa MIPS MR3020 para la utilizacin de la plataforma robtica educativa.
Los mdulos en recuadros de lnea cortada fueron
En la Figura 3 se presentan las principales desarrollados especficamente para el proyecto. Los
caractersticas de la placa EasyDuino. Esta placa es un dems componentes son piezas de software open source
clon de Arduino UNO, que cuenta con las mismas que fueron adaptadas para los objetivos de la plataforma
prestaciones que el original, a diferencia que la robtica.
programacin del mismo se realiza slo mediante una
conexin serie, que a su vez, se utiliza para la
comunicacin con el MIPS MR3020.

Figura 3. Placa EasyDuino

Para la etapa de potencia, es decir el control de los


motores DC, se utiliza un Shield para el EasyDuino que
posee un chip LD293 (puente H). Adems en el Shield,
se colocaron tres leds y un mini speaker (Buzzer) que
permiten realizar distintas sealizaciones y, sobre la Figura 6. Arquitectura del Software
misma placa, se encuentra la conexin del pack de
bateras que alimenta todo el sistema. Las caractersticas Software de Usuario
de esta interfaz se presentan en la Figura 4. En el componente remoto (PC, porttil o dispositivo
mvil) se observan los siguientes niveles de software:

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.

Durante el 2014 se los est utilizando como


plataforma principal en el proyecto de extensin anual
"Con la Escuela Media Programamos robots y
Conocemos ms de Computacin'', en las clases iniciales
de Inteligencia Artificial y como herramienta de
laboratorio en el desarrollo de varias tesis de grado
relacionadas con visin e inteligencia artificial [21].

Figura 7. Programa para Controlar el Robot

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. Referencias [14] Lic. Wilfrido Caonabo, "Arquitectura del computador,


Instituto Tecnolgico del Cibao Oriental (ITECO), 2014
[15] Wiki de Openwrt para el hardware MR3020:
[1] Briand, L. C., Daly, J., and Wst, J., "A unified framework http://wiki.openwrt.org/toh/tp-link/tl-mr3020
for coupling measurement in objectoriented systems", IEEE
Transactions on Software Engineering, 25, 1, January 1999, pp. [16] Rafael Zurita, Rodolfo del Castillo, Miriam Lechner y
91-121. Eduardo Grosclaude, "Reverse-Engineering a Closed-Box
Hardware and Software Linux Embedded System, Libro de
[1] Tucker Balch, Jay Summet and Doug Blank,"Designing Trabajos de Foro Tecnolgico y Psters - Congreso Argentino
Personal Robots for Education: Hardware, Software, and de Sistema Embebidos, 14-16 de Agosto 2013, Buenos Aires -
Curriculum, IEEE Pervasive Computing, Vol. 7, pp. 5-9, 2008. ISBN 978-987-9374-88-7.
[2] Mikko Apiola, Matti Lattu and Tomi A.,"PasanenCreativity [17] Sitio Web de mjpg_streamer http://sf.net/projects/mjpg-
and intrinsic motivation in computer science education: streamer/ - ltimo acceso: 07/08/2014.
experimenting with robots, ITiCSE '10 Proceedings of the
fifteenth annual conference on Innovation and technology in [18] Repositorio del Proyecto del Robot Educativo Frankestito:
computer science education Pages 199-203 - ACM New York, http://github.com/se_uncoma/ - ltimo acceso: 05/08/2014.
NY, USA 2010 - ISBN: 978-1-60558-820-9. [19] Sitio Web del proyecto de extensin ao 2013
[3] Wiki del Institute for Personal Robots in Education: `Divulgando Computacin con Robots en la Escuela Media''.
http://wiki.roboeducation.org Universidad Nacional del Comahue:
http://divulgando.fi.uncoma.edu.ar - ltimo acceso 05/08/2014.
[4] Stefanie A. Markham and K. N. King,"Using personal
robots in CS1: experiences, outcomes, and attitudinal [20] Boletn Oficial de Noviembre de 2013 - Gobierno de Santa
influences, Proceedings of the fifteenth annual conference on Cruz:
Innovation and technology in computer science education, pp. www.santacruz.gov.ar/boletin/13/noviembre13/12noviembre20
204-208, (2010). 13.pdf - ltimo acceso: 05/08/2014.

[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.