You are on page 1of 10

UTILIZACIN DE LEGO NXT EN DOCENCIA UNIVERSITARIA

Sebastin Snchez Prieto Departamento de Automtica Universidad de Alcal, Espaa +34918856972 sebastian.sanchez@uah.es scar Rodrguez Polo Departamento de Automtica Universidad de Alcal, Espaa +34918856635 opolo@aut.uah.es Toms Arribas Navarro Departamento de Automtica Universidad de Alcal, Espaa +34918856602 tarribas@ono.com

Resumen En este artculo presentamos el diseo e implementacin de un robot basado en la plataforma LEGO Mindstorm NXT. Este robot es capaz de mantener el equilibrio sobre dos ruedas gracias a la informacin proporcionada por un girscopo, que acta como sensor, y el control llevado a cabo sobre dos motores de corriente continua, que funcionan como actuadores. Este robot ha sido desarrollado bajo el marco de la asignatura de Sistemas Empotrados que forma parte del currculum en el mster en Tecnologas de la Informacin y las Comunicaciones impartido por los Departamentos de Automtica y Teora de la Seal y las Comunicaciones de la Universidad de Alcal en Espaa. El desarrollo del controlador constituye uno de los objetivos de la asignatura y con l se pretende que los alumnos pongan en prctica los conceptos adquiridos en teora tales como: desarrollo y depuracin de software en entornos empotrados, caracterizacin de sensores y actuadores, desarrollo de algoritmos de control, planificacin de actividades en grupo, as como todas aquellas habilidades que les permitan alcanzar el objetivo de hacer que el robot se mantenga en equilibrio. Palabras clave Lego NXT, robots, ECTS, sistemas de control, sistemas empotrados 1. INTRODUCCIN En este momento la Universidad Espaola se encuentra en un proceso de cambio en los currcula de los estudiantes para adecuarse a los nuevos estndares europeos. Uno de los aspectos ms innovadores del nuevo modelo es la inclusin

de un mecanismo de contabilidad del trabajo del alumno conocido como European Credit Transfer System o de forma abreviada ECTS. Este mtodo de contabilidad fue introducido por la Unin Europea con objeto de establecer un mecanismo comn que facilite el intercambio y la movilidad de alumnos entre las distintas universidades europeas. Un ECTS representa entre 25 y 30 horas de trabajo del alumno, las cuales incluyen clases presenciales, exmenes, ejercicios, trabajos, laboratorios y horas de estudio. En el ao 2005 los departamentos de Automtica y de Teora de la Seal y las Comunicaciones decidieron adaptar el currculum de los estudios TIC al nuevo sistema ECTS. La asignatura de Sistemas Empotrados es una asignatura troncal del nuevo plan de estudios que tiene asignados 6 ECTS, de los cuales 2 estn reservados para prcticas o proyectos de laboratorio, lo cual supone entre 50 y 60 horas de trabajo del alumno. El tipo y los contenidos de los proyectos del laboratorio pueden ser propuestos por los profesores o por los alumnos, en este ltimo caso, el profesor debe velar por que el proyecto cumpla con unas mnimas garantas de calidad. Alguno de los proyectos propuestos son los siguientes: estabilizacin de un pndulo invertido, robot autoequilibrado, salida del laberinto, control de posicin de un mvil respecto a otro, navegacin autnoma con conocimiento del medio, etc. Cuando nos planteamos cules deberan ser las herramientas empleadas para el desarrollo de los contenidos prcticos de asignatura, decidimos que fuese el kit de LEGO el utilizado como plataforma bsica. La utilizacin de LEGO Mindstorm en educacin ha sido propuesto en muchos otros estudios [1, 2, 3]. Son varias las caractersticas que hacen de este kit una eleccin adecuada para ser utilizado en entornos educativos. Citemos entre ellos su relativo bajo coste, su facilidad para reconfigurarlo, su reprogramacin, versatilidad y robustez, unido a todo ello el entusiasmo transmitido al alumno, que permite una continua mejora de los diseos [4]. El kit en su versin NXT incluye, aparte de mltiples elementos estructurales como ruedas, engranajes, barras o bolas, motores de corriente continua con encoders, diferentes tipos de sensores y el denominado NXT brick. El brick utiliza un procesador AT91SAM7S256 de 32 bits con 256 KB de memoria flash, 64 KB de RAM, un microcontrolador ATmega48 de 8 bits, un display LCD de 10064 pixel, Bluetooth, USB 2.0 e interfaces I2C. El sistema puede ser programado en varios lenguajes de programacin bajo plataformas MacOS, Linux o Windows. Estas son las razones que nos llevaron a utilizar LEGO como plataforma de desarrollo. El resto del artculo esta organizado como sigue: en la seccin 2 se presenta el objetivo del proyecto. En la seccin 3 se presenta un modelo del sistema. Seguidamente en la seccin 4 hablaremos sobre el controlador. En la seccin 5 comentaremos los resultados y finalmente incluimos las conclusiones.

2. OBJETIVO El principal objetivo de este proyecto es el de desarrollar un robot basado en la plataforma LEGO Mindstorm NXT que sea capaz de mantenerse en equilibrio sobre dos ruedas colocadas en un mismo eje.

Figura 1: Ejemplo de robot autoequilibrado basado en LEGO NXT.

La mayora de los trabajos realizados con LEGO se centran en sistemas de control estrictamente digitales, nosotros en este artculo demostramos que LEGO NXT puede ir ms all, permitiendo el desarrollo de sistemas control en tiempo continuo o si es el caso empleando algoritmos genticos, redes de neuronas o lgica borrosa. En la figura 1 se puede apreciar cul es la apariencia real del robot. Como se puede apreciar, se trata de un sistema muy similar a los clsicos segway [5]. En l tenemos acoplado directamente a las ruedas sendos motores que funcionan como actuadores y tambin como sensores de posicin porque disponen de unos encoders. Dichos encoders permiten determinar cul es la posicin relativa del robot respecto a la posicin inicial, si es que esta informacin nos resulta til. Son estos motores los nicos mecanismos que nos van a permitir mantener al robot en equilibrio. Dado que el entorno de desarrollo software proporcionado por el kit de LEGO est muy limitado, debido a que se trata de un entorno visual pensado para ser

utilizado por nios, proporcionamos al alumno un entorno mucho ms potente y verstil. Dicho entorno ha sido desarrollado por Carnegie Mellon University Robotics Academy y proporciona un completo IDE con herramientas de desarrollo y depuracin utilizando lenguaje C. La apariencia que presenta dicho entorno se puede apreciar en la figura 2. Gracias a este entorno, el alumno debe centrarse nicamente en aquello que es relevante, dado que pone bajo su control y de forma muy sencilla e intuitiva un conjunto de herramientas y de bibliotecas que facilitan en gran medida el desarrollo. Existen otros entornos de desarrollo, pero ninguno en estos momentos, tan completo y fcil de usar como RobotC [6], que es el nombre que recibe este entorno.

Figura 2: Entorno de desarrollo RobotC.

3. MODELADO DEL SISTEMA Para abordar el diseo del controlador es necesario modelar el sistema fsico que debemos controlar. Para llevar a cabo este modelado se ha procedido inicialmente a determinar las caractersticas fsicas de todos los elementos utilizados en el sistema y seguidamente se han determinado las ecuaciones diferenciales que rigen su comportamiento. En la tabla 1 se muestran los valores asociados a cada una de las constantes y variables caractersticas del sistema empleado. Smbolo m1 m2 J1 J2 J3 L Descripcin Masa del sistema Masa de las ruedas Momento de inercia del sistema Momento de inercia de las ruedas Momento de inercia del motor Distancia entre eje de ruedas y centro de Magnitud-Unidad 0,7 kg 0.029 kg 0,09 kg.m2 6,25e-6 kg.m2 0,842 e -3 kg.m2 0,15 m

r B1 K1 n x x x 1 2 1 2 1 2

gravedad Radio de la rueda Friccin de motor Constante de par de motor Factor de reduccin de transmisin Desplazamiento lineal del mvil respecto a la posicin de equilibrio Velocidad lineal de desplazamiento del sistema Aceleracin lineal de desplazamiento del sistema Avance angular determinado por integracin de girscopo Avance angular de la rueda determinado por tacmetro. Velocidad angular determinada por lectura directa de girscopo Velocidad angular de la rueda determinada por diferenciacin de lectura del tacmetro Aceleracin angular determinada por diferenciacin numrica de la lectura del girscopo Aceleracin angular determinada por la diferenciacin numrica de 2

0,025 m 1,29 e -3 N.m.s 0,48N.m/A 0,84 [m] [m/s] [m/s2] [rad] [rad] [rad/s] [rad/s] [rad/s2] [rad/s2]

Tabla 1: Valores asociados a los distintos elementos del sistema.

En la figura 3 se puede observar un diagrama simplificado del robot. A partir de l determinaremos cul es su comportamiento dinmico.

Figura 3: Modelo simplificado del robot.

Del modelo de la Figura 3 es importante destacar la diferenciacin de las variables angulares 1 y 2, pues este detalle es el que diferencia este sistema del tpico carro mvil con pndulo invertido [7]. 1 es obtenido a partir de la integracin de los valores aportados por el girscopo, cuya medida directa es la velocidad angular 1. Ambos valores representan la inclinacin y la velocidad angular del cuerpo, respecto al eje vertical. Por otra parte se define 2 como el ngulo de avance del tacmetro ptico de la rueda, y diferencindolo obtenemos 2 que es la velocidad de giro de la rueda. De este modo, se define (2-1) como la inclinacin relativa de m1. Para nuestro caso F sera una fuerza externa, que consideraremos nula en situacin de equilibrio, pero en condiciones de arrastre de fuerza podra ser distinta de 0. Adicionalmente tambin representamos en F el punto de aplicacin equivalente de fuerza, que el sistema servomotor ejerce sobre el mvil, en sentido contrario, sobre el suelo. Un aspecto crucial del desarrollo es la correcta estimacin de 1 a partir de la informacin aportada por el girscopo. Se hace necesaria una correccin de los datos obtenidos del girscopo para compensar las derivas trmicas asociadas al mismo [8, 9, 10]. El mtodo adoptado consiste en emplear una tcnica de estimacin off-line combinada con un filtro predictor on-line. Las ecuaciones que rigen el comportamiento del sistema son las que se indican a continuacin:
(J1 + J2 + J3 )1 + (m1rl cos1)2 + B1(1 2 ) m1glsin1 = K p u
(1) (2)

(m1rlcos1 J3 )1 + [(m1 + m2 )r 2 + J2 + J3 ]2 B1 (1 2 ) m1rlsin 1 2 2 = K p u + F r

que una vez simplificadas quedan del siguiente modo:


(3) (4)

Con los siguientes valores para las constantes: k1 = -0.0445 k2 = 0.0445 k3 = 11.7925 k4 = -11.6118 k5 = -23.0720 h1 = 1.0503 h2 = -1.0503 h3 = -16.1258 h4 = 782.8234 h5 = 798.4947

Tomando las variables x1= 1, x2= 2, x3= 1, x4= 2 y x5= F como variables de estado, la siguiente expresin define el comportamiento global del sistema:

(5)

Una vez construido el sistema en espacio de estados, podemos obtener la respuesta escaln en lazo abierto. Los resultados se obtienen mediante la herramienta Matlab [11] y se pueden apreciar en la figura 4. Claramente se puede apreciar que el sistema es inestable. Es lgico, puesto que si no se aplica ningn mecanismo de control activo, el robot acabar cayendo.

Figura 4: Respuesta transitoria en lazo abierto del sistema.

4. CONTROLADOR Una vez conocido el comportamiento del sistema en ausencia de ningn tipo de controlador, debemos establecer el mtodo que nos permita mantener al robot en equilibrio. Existen diversos mtodos de control para resolver el problema de estabilidad del robot, entre ellos, modelos lineales, no lineales, predictivos, etc. Debido al carcter prctico de nuestro proyecto de laboratorio hemos optado por sencillez por el modelo PID (Proporcional, Integral, Derivativo) considerando el sistema lineal, para un rango acotado de funcionamiento, dentro del que nos ocuparemos de mantener al sistema funcionando. En la figura 5 se muestra un ejemplo tpico de controlador PID. La seal r(t) es el valor de referencia que

deseamos mantener, en el caso del robot, es el valor del ngulo de equilibrio. y(t) es el valor del ngulo real obtenido a partir de la informacin proporcionada por el girscopo. e(t) es la seal de error que acta como entrada en el bloque PID. u(t) es el valor de la seal de control, en nuestro caso, la potencia aplicada a los motores para compensar las inclinaciones del propio sistema. Finalmente, G(s) es la funcin de transferencia del sistema que obtuvimos en la seccin anterior. Como se requiere que el sistema se mantenga estable y en equilibrio en un punto concreto x, es necesario tener en cuenta 2, de tal manera que nuestro controlador finalmente est formado por dos PID, uno que controla la posicin de equilibrio y otro que hace retornar al sistema al origen xo una vez se encuentra equilibrado.

Figura 5: Esquema de un controlador PID.

Estableciendo adecuadamente el valor de las constantes que definen el PID, podemos obtener una respuesta del sistema como la que se puede apreciar en la figura 6. En ella se observa claramente que el sistema es estable, an en presencia de una excitacin, el error acaba valiendo cero a lo largo del tiempo.

Figura 6: respuesta del robot con el controlador (en bucle cerrado).

5. RESULTADOS Una vez estabilizado el sistema diseando el correspondiente controlador se procede a verificar que los resultados son los esperados. En la prctica el robot es capaz de mantenerse en equilibrio dinmicamente de forma indefinida y adems admite someterlo a fuerzas externas mantenindose estable dentro de unos determinados mrgenes. Estos mrgenes vienen derivados de la linealizacin del modelo, una vez que nos salimos de la zona lineal, el sistema no es controlable y acaba cayendo. 6. CONCLUSIONES En este artculo hemos mostrado cmo de forma sencilla y con unos gastos mnimos en material, podemos poner a disposicin del alumno una herramienta potentsima para que pueda practicar con sistemas dinmicos de control. nicamente se ha mostrado un ejemplo de lo que puede llevarse a cabo con el kit de LEGO. En el ejemplo conseguimos estabilizar adecuadamente un robot de dos ruedas que en lazo abierto es completamente inestable. Existen muchos otros proyectos que dejan la puerta abierta para que el alumno pueda practicar con otros conceptos como son las redes neuronales, los algoritmos borrosos, la inteligencia artificial o cualquier otra temtica asociada a los sistemas computacionales. 7. REFERENCIAS [1] M Resnick, F Martin, R Sargent, B Silverman. Programmable Bricks: Toys to Think With. IBM Systems Journal, Vol. 35, No. 3-4. pp. 443-452. 1996.

[2]

Paul Talaga, Jae C. Oh. Combining AIMA and LEGO mindstorms in an artificial intelligence coursetobuild realworldrobots. Journal of Computing Sciences in Colleges archive. Volume 24 , Issue 3.. Pp. 56-64. 2009. P. J. Gawthrop and E. McGookin. Using lego in control education. In 7th IFAC Symposium on Advances in Control Education, Madrid. IFAC. June 2006. Gawthrop, P. and E. McGookin. A LEGO-Based Control Experiment. IEEE Contr. Syst. Mag., Vol. 24, no. 5, pp. 43-56. 2004. H. G. Nguyen, J. Morrell, K. Mullens, A. Burmeister, S. Miles, N. Farrington, K. Thomas, and D. Gage, "Segway robotic mobility platform," in Mobile Robots XVII, Philadelphia, PA, USA. October 2004. RobotC. www.robotc.net. Jun 2009. Danbing Seto and Lui Sha. A Case Study on Analytical Analysis of the Inverted Pendulum Real-Time Control System. Carnegie Mellon Technical Report. 1999. Y. I. Akcayir and Y. Ozkazanc. Gyroscope drift estimation analysis in land navigation systems. In Proceedings of IEEE Conference on Control Applications. Institute of Electrical and Electronics Engineers. 2003. W. Gao, Q. Nie, G. Zai, and H. Jia. Gyroscope drift estimation in tightlycoupled INS/GPS navigation system. In Proceedings of IEEE Conference on Industrial Electronics and Applications. Institute of Electrical and Electronics Engineers. 2007.

[3] [4] [5]

[6] [7]

[8]

[9]

[10] S. M. Herman and A.B. Poore. Nonlinear least-squares estimation for sensor and navigation biases. In Proceedings of SPIE Conference on Signal and Data Processing of Small Targets. International Society for Optical Engineering. 2006. [11] Matlab. http://www.mathworks.com. Jun 2009.

You might also like