desarrollo y control de robots mÓviles de bajo coste · (not exactly c). en este caso se trata de...

6
DESARROLLO Y CONTROL DE ROBOTS MÓVILES DE BAJO COSTE A. Valera, M. Vallés, R. Zotovic, L.F. Costa, V. Terol Dpto. Ingeniería de Sistemas y Automática, Universidad Politécnica de Valencia {giuprog, mvalles, rzotovic}@isa.upv.es, [email protected], [email protected] Resumen En la actualidad hay una gran cantidad de contenidos educativos y/o de investigación que se pueden cubrir mediante el uso de equipos de robots móviles de bajo coste. Utilizando dichos sistemas los estudiantes pueden tratar con cuestiones como el trabajo en equipo, programación de equipos reales, construcción e integración de sistemas, información multidisciplinar, etc. Este trabajo propone un laboratorio de robótica móvil basado en el sistema de Lego Mindstorms NXT. Debido a que se trata de un entorno muy flexible, fácil de usar y potente, se pueden desarrollar una gran variedad de actividades de programación y control de robots, permitiendo así la implementación de diferentes controladores, trabajar con algoritmos de visión artificial y tratamiento de imágenes, planificación de movimientos, evitación de obstáculos, etc. Palabras Clave: Robótica móvil, Control por computador, Control de robots, Aplicaciones por computador. 1 INTRODUCCIÓN La relación actual entre las tecnologías de la información y el control de procesos ha alcanzado un nuevo estado [1], permitiendo, por ejemplo, la monitorización y el control de procesos a través de Internet [2], la telerrobótica, el desarrollo de actividades docentes de control y automatización, etc. Para el desarrollo de actividades docentes de control de procesos, la robótica está teniendo un gran éxito (tanto para cursos de secundaria como de universidad) debido a una combinación de factores [3]. Los alumnos están muy motivados con la robótica porque pueden experimentar físicamente su trabajo. A pesar de que normalmente el material didáctico para el control de procesos es muy caro, actualmente se pueden adquirir varias plataformas de robots económicas (ActivMedia’s Pionner robot [4], MIT’s HandyBoard and Cricket controller cards [5], The LEGO Group’s LEGO Mindstorms [6], etc.). Estas plataformas se componen habitualmente de controladores, sensores electrónicos, sistemas mecánicos de bajo coste y/o pequeños robots. Éstos no proporcionan la misma precisión que los robots industriales, pero son suficientes para los procesos educativos. Además, debido a su naturaleza multidisciplinar, estas plataformas son muy interesantes para la promoción del trabajo en equipo. Así, cada miembro del equipo se puede hacer responsable del desarrollo de una parte específica del trabajo, como el desarrollo físico del robot, la programación de los distintos subsistemas de éste, el desarrollo de estrategias y planificación de comportamientos, etc. Este trabajo va a proponer un laboratorio de robots móviles basado en la nueva plataforma de LEGO Mindstorms NXT. Este sistema, disponible a partir de agosto de 2006, tiene varias ventajas. La primera es la flexibilidad que este sistema tiene, puesto que gracias a sus sensores y actuadores, así como a la unidad de control programable, se pueden desarrollar una gran variedad de proyectos y actividades. Otra ventaja que aporta es su precio, ya que esta plataforma, con las piezas de construcción y los dispositivos electrónicos tiene un coste aproximado de 250 euros, mucho más económico que el precio de otras plataformas robotizadas. A diferencia de la versión anterior del LEGO basada en el RCX y que únicamente permitía las comunicaciones con una torre de infrarrojos, la nueva versión NXT permite las comunicaciones por USB y por Bluetooth, eliminándose así las limitaciones de los infrarrojos puesto que se permiten distancias mucho más grandes, no exigen una orientación adecuada entre el emisor y el receptor y además, no se pierde la comunicación si hay algún obstáculo entre ellos. Este artículo presenta una serie de actividades desarrolladas en las que se establece el control de robots móviles basados en los LEGO.

Upload: others

Post on 17-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DESARROLLO Y CONTROL DE ROBOTS MÓVILES DE BAJO COSTE · (Not eXactly C). En este caso se trata de un lenguaje de programación para el ladrillo NXT que proporciona estructuras de

DESARROLLO Y CONTROL DE ROBOTS MÓVILES DE BAJO COSTE

A. Valera, M. Vallés, R. Zotovic, L.F. Costa, V. Terol Dpto. Ingeniería de Sistemas y Automática, Universidad Politécnica de Valencia

{giuprog, mvalles, rzotovic}@isa.upv.es, [email protected], [email protected]

Resumen En la actualidad hay una gran cantidad de contenidos educativos y/o de investigación que se pueden cubrir mediante el uso de equipos de robots móviles de bajo coste. Utilizando dichos sistemas los estudiantes pueden tratar con cuestiones como el trabajo en equipo, programación de equipos reales, construcción e integración de sistemas, información multidisciplinar, etc. Este trabajo propone un laboratorio de robótica móvil basado en el sistema de Lego Mindstorms NXT. Debido a que se trata de un entorno muy flexible, fácil de usar y potente, se pueden desarrollar una gran variedad de actividades de programación y control de robots, permitiendo así la implementación de diferentes controladores, trabajar con algoritmos de visión artificial y tratamiento de imágenes, planificación de movimientos, evitación de obstáculos, etc. Palabras Clave: Robótica móvil, Control por computador, Control de robots, Aplicaciones por computador.

1 INTRODUCCIÓN La relación actual entre las tecnologías de la información y el control de procesos ha alcanzado un nuevo estado [1], permitiendo, por ejemplo, la monitorización y el control de procesos a través de Internet [2], la telerrobótica, el desarrollo de actividades docentes de control y automatización, etc. Para el desarrollo de actividades docentes de control de procesos, la robótica está teniendo un gran éxito (tanto para cursos de secundaria como de universidad) debido a una combinación de factores [3]. Los alumnos están muy motivados con la robótica porque pueden experimentar físicamente su trabajo. A pesar de que normalmente el material didáctico para el control de procesos es muy caro, actualmente se pueden adquirir varias plataformas de robots

económicas (ActivMedia’s Pionner robot [4], MIT’s HandyBoard and Cricket controller cards [5], The LEGO Group’s LEGO Mindstorms [6], etc.). Estas plataformas se componen habitualmente de controladores, sensores electrónicos, sistemas mecánicos de bajo coste y/o pequeños robots. Éstos no proporcionan la misma precisión que los robots industriales, pero son suficientes para los procesos educativos. Además, debido a su naturaleza multidisciplinar, estas plataformas son muy interesantes para la promoción del trabajo en equipo. Así, cada miembro del equipo se puede hacer responsable del desarrollo de una parte específica del trabajo, como el desarrollo físico del robot, la programación de los distintos subsistemas de éste, el desarrollo de estrategias y planificación de comportamientos, etc. Este trabajo va a proponer un laboratorio de robots móviles basado en la nueva plataforma de LEGO Mindstorms NXT. Este sistema, disponible a partir de agosto de 2006, tiene varias ventajas. La primera es la flexibilidad que este sistema tiene, puesto que gracias a sus sensores y actuadores, así como a la unidad de control programable, se pueden desarrollar una gran variedad de proyectos y actividades. Otra ventaja que aporta es su precio, ya que esta plataforma, con las piezas de construcción y los dispositivos electrónicos tiene un coste aproximado de 250 euros, mucho más económico que el precio de otras plataformas robotizadas. A diferencia de la versión anterior del LEGO basada en el RCX y que únicamente permitía las comunicaciones con una torre de infrarrojos, la nueva versión NXT permite las comunicaciones por USB y por Bluetooth, eliminándose así las limitaciones de los infrarrojos puesto que se permiten distancias mucho más grandes, no exigen una orientación adecuada entre el emisor y el receptor y además, no se pierde la comunicación si hay algún obstáculo entre ellos. Este artículo presenta una serie de actividades desarrolladas en las que se establece el control de robots móviles basados en los LEGO.

Page 2: DESARROLLO Y CONTROL DE ROBOTS MÓVILES DE BAJO COSTE · (Not eXactly C). En este caso se trata de un lenguaje de programación para el ladrillo NXT que proporciona estructuras de

2 LEGO MINDSTORMS NXT 2.1 INTRODUCCIÓN. En 1998 LEGO proporciona el primer conjunto Mindstorms: Robotics Invention System (RIS 1.0). Éste era un juguete educacional para niños mayores de 12 años. En él, además de las piezas típicas de LEGO, el kit proporcionaba motores de corriente continua, sensores y, lo más importante, el RCX. El RCX es el “ladrillo” programable de LEGO que permitía no sólo el movimiento, sino sentidos y respuesta al entorno. Está basado en el microprocesador H8 de Hitachi, y proporciona convertidores analógico/digital, comunicación serie y temporizadores. Internamente tiene 16Kb de memoria ROM y 33Kb de RAM, tiene una interfaz para 3 actuadores y 3 sensores y el citado puerto de comunicaciones de infrarrojos, así como una pantalla de cristal líquido, 4 botones y un pequeño altavoz. El RCX se desarrolló en colaboración entre LEGO y el MIT [7], [8]. En la primera versión el RCX permitía 6 puertos de entrada y de salida, aunque posteriormente se limitaron a los 3 actuales por razones de consumo. Además, no sólo los entusiastas han ampliado el hardware y el software de este sistema de varios modos [9], [10], sino que recientemente se han publicado en ediciones especiales de revistas como IEEE Robotics and Automation Magazine [11]-[13] o IEEE Control Systems Magazine [14] soluciones basadas en estos dispositivos. En enero de 2006 se presentó en el International Consumer Electronics Show la siguiente generación: el LEGO Mindstorms NXT. La nueva versión además de otros cambios menores en los sensores electrónicos y las piezas de construcción, incorpora una unidad de control nueva: el NXT. Combinando los bloques de construcción, la fácil programación del NXT y su interfaz de entrada y salida se puede obtener un sistema de prototipado rápido para el desarrollo de una gran variedad de actividades, lo que ha permitido que este sistema haya sido ampliamente aceptado como una herramienta para la investigación y la educación universitaria.

2.2 COMPONENTES DEL LEGO MINDSTORMS NXT

Según nuestro punto de vista, los componentes más importantes del LEGO Mindstorms NXT son la unidad de control basada en microcontrolador, los sensores electrónicos y los actuadores.

La unidad de control, definida como ladrillo inteligente NXT, está basada en el ARM7, un potente microcontrolador de 32 bits, con 256 Kbytes FLASH y 64 Kbytes de memoria RAM. Para la programación y las comunicaciones, el NXT está equipado con un puerto USB 2.0 y con un dispositivo inalámbrico Bluetooth clase II, V2.0. Además, también incorpora una pantalla LCD gráfica matricial de 100x64 píxeles, un altavoz de sonido real y 4 botones que permiten una programación simple gracias a un entorno muy intuitivo basado en iconos. Así mismo, el NXT dispone de 4 entradas (una de ellas incluye una expansión IEC 61158 Type 4/EN 50 170 para usos futuros) y 3 salidas analógicas, por lo que además de disponer de 1 entrada más que en la versión anterior, dado que los sensores de rotación están completamente integrados en los actuadores eléctricos en esta versión, es posible tener conectados un número mayor de dispositivos sensores. La nueva versión del LEGO proporciona 4 tipos de sensores electrónicos: de contacto, de luz, de sonido y de distancia. Los sensores de contacto y de luz son una versión mejorada de los sensores para el RCX. Los nuevos sensores de sonido permiten medir niveles de sonido tanto en decibelios (dB) como en decibelios ajustados (dBA), de manera que el sensor se adapta a la sensibilidad del oído humano (frecuencias entre 3 y 6 kHz). Además de los sensores de luz, el NXT tiene otros sensores que permiten “ver” a los robots: los sensores de distancia. Se trata de sensores basados en ultrasonidos, que permiten medir distancias entre 0 y 255 cm, con una precisión de +/- 3 cm.

Figura 1. Sensores del LEGO Mindstorms NXT El último componente más destacable del LEGO son los actuadores. En este caso se trata de motores de corriente continua que incorporan integrados, tal y como se había comentado anteriormente, sensores de rotación. Estos sensores tienen una precisión de 1 grado, mejorando mucho la precisión de los encoders de la versión anterior.

Page 3: DESARROLLO Y CONTROL DE ROBOTS MÓVILES DE BAJO COSTE · (Not eXactly C). En este caso se trata de un lenguaje de programación para el ladrillo NXT que proporciona estructuras de

Figura 2. Actuador del LEGO Mindstorms NXT Además, gracias a un tren de engranajes interno que tiene el motor, éste puede suministrar pares de fuerza muy altos puesto que alimentado a 9V y funcionando a 117 rpm proporciona un par de 16.7N.cm con un consumo de corriente de 0.55A. Para proteger el motor de intensidades muy altas, éstos están equipados por una resistencia PTC montada en serie con el motor, de manera que su valor incrementa rápidamente cuando la temperatura aumenta, limitando de esta forma la intensidad suministrada al motor. Una descripción más detallada sobre los motores del LEGO Mindstorms NXT se puede encontrar en [15].

3 ENTORNOS DE PROGRAMACIÓN A la hora de programar el microcontrolador del NXT se pueden escoger distintos entornos. La elección del entorno de desarrollo dependerá de la complejidad de las operaciones que vayan a desarrollar los robots móviles y de los conocimientos de programación de que se dispongan. La primera opción que se puede utilizar es programar directamente el NXT con los botones que tiene disponibles. Para ello se tiene un sistema basado en iconos que permite programar algoritmos muy simples. Mediante estos iconos se pueden especificar el tipo de movimiento, los sensores a utilizar así como tiempos de espera mediante instrucciones. Por supuesto, debido a que este sistema es muy simple, esto limita mucho las aplicaciones que se pueden desarrollar y, por lo tanto, no es adecuado para el desarrollo de aplicaciones complejas. La segunda opción disponible para la programación es la aplicación LEGO MINDSTORM NXT Software. Se trata de un software basado en el motor LabVIEW de National Instruments y compatible con Mac OS X y Windows XP. El software funciona a base de iconos, disponiendo de dos paletas de programación ("fácil" y "avanzada") y de una serie de 40 tutoriales animados para ayudar a los

estudiantes (y profesores) a conocer como programar un robot totalmente funcional. Mediante este entorno se pueden hacer aplicaciones mucho más complejas, permitiendo especificar en un entorno gráfico muy intuitivo bucles, saltos, control de los motores y sensores, envío de mensajes por Bluetooth, etc.

Figura 3. Entorno LEGO MINDSTORMS NXT Al igual que pasaba con el entorno anterior, si bien este software permite desarrollar aplicaciones más complejas, tampoco resulta adecuado para asignaturas de escuelas técnicas o superiores de ingeniería industrial o informática. Un tercer entorno de desarrollo de aplicaciones para los robots móviles del LEGO disponible es el NXC (Not eXactly C). En este caso se trata de un lenguaje de programación para el ladrillo NXT que proporciona estructuras de programa como arrays, funciones, tareas, sentencias de control de flujo, funciones de acceso a los sensores, actuadores y sistemas de comunicación [16]. Existen varias opciones para la programación de las rutinas NXC, aunque la más utilizada es el Bricx Command Center [17]. Se trata de un entorno de software libre que permite no sólo la edición de los programas, sino que además también suministra herramientas para transferir el programa desde el PC al microcontrolador del NXT. La figura 4 muestra el aspecto que tiene este entorno de programación. Es necesario tener en cuenta que aunque el preprocesador y las estructuras de control de NXC son muy similares al lenguaje C, NXC no es completamente un lenguaje de programación de propósito general puesto que contiene muchas restricciones debido a las limitaciones del intérprete de código-máquina del NXT. Una vez desarrollado el programa fuente en lenguaje C, el compilador NXC genera el código máquina que

Page 4: DESARROLLO Y CONTROL DE ROBOTS MÓVILES DE BAJO COSTE · (Not eXactly C). En este caso se trata de un lenguaje de programación para el ladrillo NXT que proporciona estructuras de

puede ejecutarse directamente en el ladrillo NXT gracias a un intérprete proporcionado por LEGO.

Figura 4. Entorno Bricx Command Center Después de compilarse y generarse el código-máquina, éste se transfiere automáticamente al NXT mediante el puerto USB presionado un botón en el entorno del Bricx Command Center. Una vez cargado en el robot móvil, los alumnos únicamente tienen que apretar un botón para que el robot ejecute el algoritmo de control y puedan validar el trabajo realizado. Debido a que con el entorno de programación que se acaba de comentar se trabaja con un lenguaje de programación parecido a C, la complejidad de las tareas a realizar por el robot y de los algoritmos de control puede ser mucho mayor. Desde el punto de vista de la docencia universitaria, la programación con NXC permite plantear una serie muy amplia de actividades interesantes y motivadoras desde el punto de vista de la robótica. Sin embargo, no hay que olvidar que, aunque el ladrillo NXT está basado en un microcontrolador potente de 32 bits, sigue siendo un microcontrolador. Por ello podemos tener problemas a la hora de querer desarrollar con los robots actividades o algoritmos de control que necesiten una potencia de cálculo grande, que utilicen operaciones matemáticas complejas o, por ejemplo, que necesiten una serie de sensores distintos a los que LEGO proporciona. Para tratar de evitar estos problemas tenemos un entorno alternativo. En este caso la filosofía de trabajo cambia puesto que se utiliza un PC como unidad de control, en vez del NXT. Así, el PC calcula las acciones de control, que serán las posiciones de referencia de las ruedas derecha e izquierda (en el caso de que se trate de un robot móvil). Una vez calculadas las posiciones de referencia, éstas se mandan al NXT mediante el dispositivo Bluetooth. De esta forma se establece un control en cascada: en el PC se establece un control cinemático del robot, y en el NXT se tiene un control dinámico, que se corresponde con un control tipo PID de la velocidad de las ruedas.

Puesto que en este caso se tiene un PC de propósito general para establecer el control más complejo, ya no hay problemas relacionados con el tamaño de los programas, el número de variables, la complejidad matemática, los sensores a utilizar etc. Si se necesita, el PC tiene acceso a los distintos sensores del robot móvil (sensores de distancia, encoders, de luz, etc.) puesto que puede obtener su valor mediante el sistema de comunicaciones inalámbrico Bluetooth. Además de los sensores del robot móvil, gracias al PC, se pueden utilizar por ejemplo cámaras digitales, por lo que se puede implementar de una forma muy fácil algoritmos de visión artificial y procesamiento digital de imágenes. Para este tipo de entorno se puede utilizar cualquier lenguaje de programación, puesto que en realidad únicamente se necesita que el PC pueda escribir y leer datos del dispositivo Bluetooth. Así por ejemplo en [18] se puede encontrar un listado muy amplio (y los enlaces correspondientes) de distintos lenguajes de programación que se pueden utilizar. En este trabajo se ha utilizado el entorno Visual Studio 2005, programándose con lenguaje C#. Se trata de un lenguaje orientado a objetos desarrollado y estandarizado por Microsoft como parte de su plataforma .NET. Se trata de una plataforma que permite el desarrollo de aplicaciones de una forma muy rápida. Utiliza un lenguaje intermedio que se puede ejecutar en cualquier plataforma hardware (que tenga el motor runtime), de forma que el mismo código se puede ejecutar en una gran cantidad de computadores con distintas arquitecturas. 4 CONTROL DE ROBOTS

IMPLEMENTADOS Una vez se han descrito los posibles entornos de programación que se pueden utilizar con los LEGO Mindstorms NXT, a continuación se van a mostrar algunas de las aplicaciones desarrolladas y utilizadas. 4.1 ALGORITMOS DE CONTROL NXC

Los ejemplos más interesantes de aplicaciones de control de robots en los cuales se establece el control internamente en el NXT mediante la programación de rutinas en NXC son los siguientes:

• Seguimiento de líneas: mediante el sensor de luz se debe programar al robot para que siga una línea. La línea se puede crear, por ejemplo, pegando cinta aislante negra sobre una superficie de color más claro, de forma que el sensor de luz determinará si éste se encuentra o no sobre la línea. Gracias a esto se pueden hacer diferentes pruebas de seguimiento, teniendo en cuenta por ejemplo

Page 5: DESARROLLO Y CONTROL DE ROBOTS MÓVILES DE BAJO COSTE · (Not eXactly C). En este caso se trata de un lenguaje de programación para el ladrillo NXT que proporciona estructuras de

el tiempo necesario para hacer el recorrido o la precisión de movimiento que se obtiene. Así se pueden implementar pruebas con dificultad diferente en función de la complejidad del circuito a seguir. En nuestro caso se ha reproducido el circuito de Formula 1 de Cheste (Valencia), cosa que motiva especialmente a los alumnos.

• Movimientos Preprogramados. En estas pruebas se debe programar al robot para que, mediante los encoders de los motores, el robot realice una serie de movimientos preprogramados. La primera prueba que se debe hacer es, partiendo de una posición inicial, el robot debe llegar a una posición final con una orientación determinada. En la segunda prueba se deben encadenar una serie de movimientos de avance y giro. Para validar los algoritmos, en ambos casos se compara la posición (y orientación) final alcanzada, comparándose con la posición teórica de llegada.

• Evitación de obstáculos. Con los sensores de distancia que incorpora los NXT se pueden hacer actividades muy interesantes relacionadas con la evitación de obstáculos. En primer lugar se pueden generar convoyes de vehículos, de manera que el vehículo perseguidor debe seguir a una distancia constante al vehículo perseguido. Para ello, éste se equipa con 3 sensores de distancia colocados en el frontal del vehículo, lo que permite que el vehículo perseguido pueda hacer giros (o incluso que pueda retroceder) sin que el perseguidor se pierda. Una segunda prueba que se realiza es la evitación pura de obstáculos. Aquí los vehículos avanzan a una velocidad constante y se deben controlar para evitar que choquen contra cualquier obstáculo que se interponga en su camino.

4.2 ALGORITMOS DE CONTROL C# DE VISUAL STUDIO 2005

Como se ha comentado anteriormente, si el algoritmo de control es demasiado complejo, puede que no se pueda programar o implementar en el NXT. Es este caso la alternativa es realizar un control en cascada de forma que el control cinemático del robot se implementa en un PC, estableciéndose un control dinámico en el NXT: el control de la velocidad de las ruedas. El PC y el NXT se comunican mediante los dispositivos inalámbricos Bluetooth. Con esta arquitectura de control se pueden hacer actividades mucho más interesantes. Por ejemplo, se puede equipar un servidor con una webcam. A partir del tratamiento digital de la imagen y de la aplicación

que se desee resolver, el servidor envía la información (vía ethernet) a los PC de control local que son los encargados de controlar (mediante comunicaciones Bluetooth) a los robots móviles.

Figura 5. Propuesta de plataforma experimental de

control de robots Con este entorno se han desarrollado por ejemplo diferentes tipos de trayectorias complejas de movimiento para los robots. La figura 6 muestra el primer ejemplo de trayectorias complejas, presentando tanto la referencia como la trayectoria real del robot. En este caso se trata de curvas periódicas y no periódicas obtenidas mediante curvas Spline Cúbicas Natural. En este caso se tienen que suministrar una serie de puntos que serán interpolados por la curva.

Figura 6. Ejemplo de trayectoria Splines Cúbicas Además del método anterior, también se pueden implementar otros métodos de generadores de trayectorias más complejos. Por ejemplo, con la visión artificial no sólo se puede obtener la posición del robot, sino que también puede detectar un conjunto de obstáculos que el robot debe evitar. Gracias a técnicas como el método de descomposición de celdas [19] es muy simple obtener el camino libre de colisiones a partir de la imagen obtenida por la cámara de visión (una webcam en nuestro caso).

Ethernet

Bluetooth

Page 6: DESARROLLO Y CONTROL DE ROBOTS MÓVILES DE BAJO COSTE · (Not eXactly C). En este caso se trata de un lenguaje de programación para el ladrillo NXT que proporciona estructuras de

La figura 7 muestra la imagen obtenida por la webcam, la trayectoria generada libre de colisiones y el movimiento realizado por el robot móvil.

Path search experiment: Planned Trajectory

-80 -60 -40 -20 0 20 40

-20

0

20

40

60

80

Path search experiment: Drive results

x [cm]

y[c

m]

referencemeasured position

Figura 7. Referencia y respuesta del robot móvil 5 CONCLUSIONES Las competiciones de diseño y control de robots son una forma popular y efectiva de enseñar robótica, sistemas de tiempo real y control de procesos, visión por computador, etc. Este trabajo ha presentado un laboratorio de robótica móvil basado en LEGO Mindstorms NXT. El artículo ha presentado primero una serie de entornos distintos que se pueden utilizar para la programación de los robots móviles, centrándose primero en NXC, un lenguaje de programación parecido a C que permite generar programas que se descargan y ejecutan directamente en el NXT, proponiéndose posteriormente C# en el entorno Visual Studio 2005. Con él se pueden programar tareas y estrategias de control más complejas puesto que se ejecutan en un PC de propósito general, estableciéndose la comunicación con el NXT mediante Bluetooth. Para ambos entornos se han presentado una serie de ejemplos y aplicaciones desarrolladas. La plataforma propuesta proporciona básicamente 2 ventajas: su bajo precio y las prestaciones que presenta, ya que al poderse programar en NXC o C# se pueden desarrollar un conjunto muy amplio de actividades distintas y complejas. Agradecimientos Este trabajo ha sido parcialmente financiado por los proyectos FEDER-CICYT con referencia DPI2005-08732-C02-02 y DPI2005-09327-C02-01, del Ministerio de Educación y Ciencia, así como por el proyecto de investigación de la Generalitat Valenciana, Consellería de Empresa, Universidad y Ciencia GV06/115.

Referencias [1] S.H. Yang, X. Chen, and J.L. Alty. “Design

issues and implementation of Internet-based process control systems,” Contr. Eng. Practice, vol. 11, pp.709-720, 2003.

[2] A. Valera, J.L. Díez, M. Vallés, and P. Albertos. “Virtual and Remote Control Laboratory Development,” IEEE Contr. Syst. Mag., vol. 25, no. 1, pp. 35-39, 2005.

[3] J.B. Weinberg, and X. Yu, “Robotics in Education: Low-Cost Platforms for Teaching Integrated Systems”, IEEE Robot. Automat. Mag., vol. 10, no. 2, pp. 4-5, 2003.

[4] ActivMedia Robotics Web site [Online]. Available: http://www.activrobots.com

[5] The Handy Board home page [Online]. Available: http://handyboard.com/

[6] LEGO Mindstorms home page [Online]. Available: http://mindstorms.lego.com/

[7] M. Resnick, F. Martin, R. Sargent, and B. Silverman, “Programmable bricks: Toys to think with”, IBM Syst. J., vol. 35, no, 3&4, pp. 443-452, 1996.

[8] S. Papert, “What’s the big idea? Towards a pedagogy of idea power”, IBM Syst. J., vol. 39, no, 3&4, pp. 720-729, 2000.

[9] D. Baum. Definitive Guide to Lego Mindstorms. Berkley, Ca: Apress, 2000.

[10] D. Baum, M. Gasperi, R.Hempel, and L. Villa. Extreme Mindstorms. Berkley, CA: Apress, 2000.

[11] J.B. Weinberg and X. Yu, “Robotics in education: Low-cost platforms for teaching integrated systems”, IEEE Robot. Automat. Mag., vol. 10, no. 2, pp. 4-6, 2003.

[12] F. Klassner and S.D. Anderson, “LEGO mindstorms; Not just K-12 anymore”, IEEE Robot. Automat. Mag., vol. 10, no. 2, pp. 12-18, 2003.

[13] L. Greenwald and J. Kopena, “Mobile robot labs”, IEEE Robot. Automat. Mag., vol. 10, no. 2, pp. 25-32, 2003.

[14] P. Gawthrop, and E. McGookin, “A LEGO-Based Control Experiment,” IEEE Contr. Syst. Mag., vol. 24, no. 5, pp. 43-56, 2004.

[15] Lego Technic Motors compared characteristics, disponible en: http://www. philohome.com/

motors/motorcomp.htm [16] J. Hansen (2007), “Not eXactly C (NXC)

Programmer’s Guide”. Disponible en: http://bricxcc.sourceforge.net/nbc/

[17] Bricx Command Center 3.3, disponible en: http://bricxcc.sourceforge.net/

[18] Answers.Com, disponible en: http://www.answers.com/topic/lego-mindstorms

[19] Nourbakhsh, I. R., R. Siegwart (2004) “Introduction to Autonomous Mobile Robots”. Campridge MIT Press, MA, 2004.