Full text
Modelar o programar en pr´acticas de rob´otica Antonio J. Mu˜noz-Ram´ırez, J. Manuel G´omez-de-Gabriel Dto. Ingenier´ıa de Sistemas y Autom´atica Universidad de M´alaga [email protected] Resumen En este trabajo se muestra la experiencia de usar una herramienta de desarrollo de ingenier´ıa basada en modelos (MDE) frente a otra herramienta tradicional de programaci´on de sistemas embebidos en lenguaje C, para la realizaci´on de clases pr´acticas de rob´otica. Se ha planteado una pr´actica basada en el control cinem´atico de un robot m´ovil en ambos entornos con similares bloques y funciones de partida. Los resultados muestran tanto la comparaci´on de las evaluaciones objetivas realizadas a los dos grupos como los datos relativos a los tiempos requeridos para la realizaci´on de las diferentes partes de la pr´actica. Si bien, los resultados del aprendizaje son mayores en el caso del m´etodo basado en programaci´on, la diferencia en tiempos invertidos y otras valoraciones hacen m´as adecuado el MDE. Palabras clave: Educaci´on, Rob´otica, Ingenier´ıa basada en Modelos, Simulink. 1. INTRODUCCI ´ ON Las pr´acticas docentes en asignaturas de rob´otica requieren de la implementaci´on de sistemas inform´aticos de control sobre una planta f´ısica experimental. Los enfoques tradicionales de implementaci´on de sistemas embebidos requieren del uso de un lenguaje de programaci´on y de un entorno de desarrollo con unas bibliotecas adecuadas para codificar los modelos de control obtenidos en la fase de dise˜no. Sin embargo, las asignaturas relacionadas con la rob´otica no incluyen en su contenido la ense˜nanza de un lenguaje de programaci´on y las sesiones de pr´acticas se encuentran cada d´ıa m´as restringidas y asociadas a un contenido te´orico oficial que deja poco margen a unificar conocimientos pr´acticos de programaci´on entre los alumnos. El tiempo invertido por el profesor en la realizaci´on de una pr´actica t´ıpica de rob´otica real se compone de una fase de dise˜no, en base a la teor´ıa de la asignatura, de otra fase de implementaci´on en la cual se codifican los m´etodos y algoritmos dise˜nados, y finalmente una fase de depuraci´on y experimentaci´on. Con el enfoque basado en programaci´on, gran parte del tiempo del alumno se invierte en codificar los modelos dise˜nados. La calidad de los resultados depende por tanto de la calidad de la programaci´on. Asimismo, el profesor invierte un tiempo en depurar los programas y encontrar los problemas de la implementaci´on [1]. La Ingenier´ıa basada en modelos (Model-Driven Engineering) ´o MDE, en contraposici´on a la programaci´on, tiene como misi´on permitir a los ingenieros desarrollar y analizar un sistema mediante abstracciones y formalismos m´as adecuados y parecidos a sus modelos mentales que los lenguajes de programaci´on convencionales ([2], [3]). La principal caracter´ıstica a valorar de este enfoque es que se prescinde de la fase de programaci´on, por lo que se puede pasar del dise˜no a la experimentaci´on de manera autom´atica permitiendo dedicar m´as tiempo a los objetivos del aprendizaje. Existen trabajos en los que se usa Simulink para MDE en rob´otica [4, 5], los haptics [6] y tambi´en, como en este caso a la educaci´on [7], si bien no son muchos los estudios comparativos de herramientas como [8] o [9] y menos sobre la eficiencia de ambos enfoques en la educaci´on superior. Otro objetivo de este trabajo es el de comparar la eficiencia de la utilizaci´on de herramientas de desarrollo MDE (con generaci´on autom´atica de c´odigo, como Simulink) respecto a las basadas en programaci´on de sistemas embebidos (como el lenguaje C del entorno Arduino) para la realizaci´on de pr´acticas docentes de control de robots. El presente art´ıculo se encuentra estructurado de la siguiente manera: en la siguiente secci´on se describe el contexto de los experimentos, describiendo brevemente el contexto docente y la plataforma rob´otica educativa utilizada. En la secci´on 3 se describe la pr´actica comparativa y los puntos de partida de ambos experimentos. En la secci´on 4 se muestran los resultados de las evaluaciones objetivas y datos de los tiempos dedicados a cada pr´actica. Finalmente, la secci´on 5 analiza los resultados y establece las conclusiones.
Figura 1: Plataforma educativa de Rob´otica M´ovil PIERO 3 con el m´odulo de visi´on integrado 2. CONTEXTO Este estudio es una continuaci´on de los trabajos desarrollados en un proyecto de innovaci´on educativa de la Universidad de M´alaga con c´odigo PIE13-185, durante el cual se desarroll´o y evalu´o el uso de una plataforma rob´otica did´actica para su uso con herramientas MDE. Los experimentos que se presentan ahora se realizaron durante el curso 2015-16, con alumnos de titulaciones de Grado y M´aster de la Escuela T´ecnica Superior de Ingenier´ıa Industrial: Asignatura de “Laboratorio de Rob´otica”, del grado de Electr´onica Rob´otica y Mecatr´onica (ERM) y la asignatura de “Modelado de Sistemas Mecatr´onicos y Robots” del M´aster de Ingenier´ıa Mecatr´onica. Asimismo, se han realizado seminarios ofertados p´ublicamente a alumnos tanto de la Escuela T´ecnica de Ingenier´ıa Industrial como de la Escuela Polit´ecnica Superior, interesados en realizar pr´acticas con robots m´oviles fuera del programa oficial. Las pr´acticas se han realizado utilizando las plataformas rob´oticas basadas en hardware de bajo coste de c´odigo abierto (Arduino) que pueden ser programadas utilizando tanto lenguaje C (con ligeras simplificaciones) como modelos de Simulink. Contamos con un conjunto de doce robots con lo que los grupos de pr´acticas son de uno o dos estudiantes por robot, seg´un el n´umero de alumnos en cada asignatura. Las plataformas rob´oticas PIERO ([10], [1]) consisten en un robot m´ovil con tracci´on diferencial (V´ease Figura 1) y basadas en un popular microcontrolador que han demostrado una gran robustez y versatilidad para el empleo en diferentes asignaturas de rob´otica, control y mecatr´onica. Entre las caracter´ısticas se encuentran su sistema modular para reconfigurar su sistema sensorial, un sistema de tracci´on diferencial f´acilmente observable por el alumno, y un sistema de electr´onico de control centralizado tambi´en visible. En la Figura 2(a) se pueden apreciar los siguientes componentes principales de su configuraci´on m´as b´asica: dos servomotores motores provistos de codificadores angulares incrementales ´opticos, un circuito de potencia basado en un puente-H, bater´ıas de i´on de litio y un Arduino Mega con una placa de conexiones (shield) para facilitar el cableado. Para facilitar su uso por parte de los alumnos, se han realizado modelos 3D para visualizaci´on y simulaci´on din´amica (v´ease Figura 2(c) ) que permiten al alumno realizar pr´acticas en casa sin necesidad de disponer de la plataforma. 3. EXPERIMENTOS Para comparar ambos m´etodos se ha realizado la misma pr´actica con los dos entornos: Simulink con generaci´on de c´odigo de Arduino y programaci´on en lenguaje C con el IDE original de Arduino. se han medido los resultados del aprendizaje en ambos grupos mediante un cuestionario y se han ajustado los tiempos invertidos en la realizaci´on de cada fase de la pr´actica, que incluye el planteamiento de la base te´orica. El objetivo docente de la practica consiste en controlar la trayectoria del robot mediante una velocidad lineal y angular local cartesiana fija , para lo cual hay que realizar transformaciones de coordenadas mediante la matriz Jacobiana directa e inversa, y finalmente obtener la localizaci´on cartesiana en coordenadas globales del robot mediante odometr´ıa (lo cual requiere de integraci´on num´erica y de control de los tiempos de ejecuci´on del bucle). La comprobaci´on de la calidad de la estimaci´on de la posici´on del veh´ıculo se verifica experimentalmente haciendo detener el veh´ıculo cuando haya realizado un giro de 360 grados. Para desarrollar las pr´acticas tanto en lenguaje C como en Simulink con igualdad de condiciones, se dispone de un conjunto de bloques b´asicos y funciones que realizan las funciones de control de bajo nivel de control del robot (V´eanse Figura 3 y Figura 4). En concreto estos bloques y funciones realizan internamente el control PI de la velocidad de las ruedas ajustado previamente pero no se muestran en las figuras por simplicidad. En ambos casos se proporciona a los alumnos estos programas como plantilla sobre los que pueden trabajar ampli´andolo y modific´andolo. En ambas sesiones de pr´acticas se explican de manera te´orica los conceptos de los diferentes espacios de coordenadas y las transformaciones entre ellos. Tras la parte de teor´ıa, el alumno desarrolla el sistema de control para mover la plataforma con
(a) Esquema de control electr´onico electr´onicos (b) Robot PIERO con manipulador (c) Modelo 3D de PIERO en Simscape Figura 2: Robot PIERO-2 mostrando su sistema electr´onico de control, el brazo opcional montado y su modelo 3D para simulaci´on gr´afica y din´amica. Figura 3: Bloques b´asicos para el desarrollo de las pr´acticas con simulink. Internamente implementa el control PI de la velocidad de las ruedas. Esta plantilla mueve las dos ruedas del robot con velocidades lineales de 0,4m/s Figura 4: Programa b´asico en lenguaje C para el desarrollo de las pr´acticas con Arduino. N´otese que se omite de la figura la implementaci´on de las funciones que realizan el control realimentado de la velocidad lineal en la superficie de las ruedas. En este ejemplo la ruedas izquierda y derecha se mover´ıan con velocidades lineales locales de 0,3m/s en direcciones opuestas. una velocidad cartesiana determinadas y obtener las posiciones del veh´ıculo. La complejidad del trabajo del alumno no es muy diferente en ambos casos. En la Figura 5 se muestra el modelo resultante realizado en Simulink, y en la Figura 6 se muestra el resultado esperado en la implementaci´on mediante programaci´on en lenguaje C. Ambos enfoques deben producir los mismos resultados, si bien en el caso de la programaci´on en lenguaje C ser´a necesario introducir elementos adicionales, que sin embargo son impl´ıcitos en los modelos de Simulink, como los relativos a la temporizaci´on del bucle de control y los de la integraci´on num´erica. Las pr´acticas de comparaci´on se han efectuado mediante grupos de alumnos de diversas asignaturas de los centros de la Escuela de Ingenier´ıas, evalu´andose mediante cuestionarios tras la realizaci´on de la pr´actica. Los cuestionarios est´an compuestos por las siguientes secciones:
Figura 5: Aspecto final de la pr´actica realizada en el entorno de modelado Simulink, donde se muestra la claridad del dise˜no del sistema de control que permite una f´acil revisi´on y donde no se observan elementos relativos a la implementaci´on. Figura 6: Aspecto final de la pr´actica realizada en el lenguaje de programaci´on C, donde se observa que el c´odigo refleja el sistema de control de una manera menos clara y se incluyen aspectos relativos a la temporizaci´on y a la integraci´on num´erica.
Informaci´on de identificaci´on an´onima del alumno (Titulaci´on de origen, equipo utilizado, sesi´on, ...) Preguntas experiencia previa en el entorno de desarrollo en cada caso (Arduino oSimulink). Evaluaci´on objetiva sobre conceptos de rob´otica presentados en la teor´ıa. Evaluaci´on objetiva sobre conceptos de mecatr´onica y Arduino (No explicados en la teor´ıa, pero usados indirectamente en las pr´acticas). Cuestionario de satisfacci´on sobre la pr´actica. Las tres ´ultimas secciones se han promediado y puntuado entre 0 y 10. El incremento esperado del aprendizaje deber´ıa producirse exclusivamente en la secci´on de Rob´otica, mientras que los conocimientos sobre la plataforma (que etiquetaremos como Arduino) deben permanecer constantes ya que no han necesitado aprenderlos y los profesores no se los han ense˜nado. 4. RESULTADOS Para la comparaci´on de los dos enfoques de desarrollo se han realizado dos sesiones piloto de pr´acticas con 10 y 8 alumnos respectivamente. Tras la realizaci´on de cada pr´actica se han realizado los correspondientes cuestionarios y se han observado los tiempos requeridos para la realizaci´on de las diferentes etapas. Los datos relativos a la experiencia previa en estos casos han sido pr´acticamente cero tanto en el caso de Simulink como de Arduino. 4.1. Calificaciones Aunque los resultados subjetivos por parte de los profesores son claramente positivos en t´erminos de ventajas aportadas y eficiencia del uso del tiempo del alumno y del profesor, es necesario examinar los datos de la evaluaci´on objetiva realizada mediante los cuestionarios. La Figura 7 muestra las calificaciones medias obtenidas en las tres ´ultimas secciones de los cuestionarios para los dos tipos de pr´acticas: Aprendizaje sobre conceptos de rob´otica, aprendizaje de conceptos sobre mecatr´onica y Arduino, y de la evaluaci´on subjetiva consistente en la encuesta de satisfacci´on. Los resultados muestran una mejor calificaci´on en todos los aspectos en el grupo de alumnos que realizaron la pr´actica mediante programaci´on en lenguaje C, aunque con resultados muy similares, si bien el reducido tama˜no de la Figura 7: calificaciones medias obtenidas al final de las pr´acticas y encuesta de satisfacci´on con programaci´on en C como en Simulink. Tabla 1: Actividades desarrolladas en la sesi´on pr´actica Actividades Simulink Prog. C Teor´ıa 20 min. 20 min. Control articular 15 min. 20 min. Control Cartesiano 15 min. 20 min. Odometr´ıa 15 min. 40 min. Revisi´on 5 min. 10 min. Tiempo total 70 min. 110 min. muestra hace necesario seguir realizando experimentos durante el siguiente curso acad´emico para tener datos m´as representativos. 4.2. Tiempos Se ha planificado el siguiente cronograma de desarrollo de la pr´actica destinada a comparar ambos m´etodos. Si bien, inicialmente, los tiempos previstos han sido iguales para los los dos, los tiempos finales, modificados para poder impartir la pr´actica satisfactoriamente, en funci´on de los tiempos invertidos por los alumnos, han quedado seg´un la tabla 1. Si bien el n´umero de muestras obtenidas no es a´un significativo, se observa un mayor incremento en alumnos con un menor nivel de experiencia previa obtenido de la primera parte de cuestionario, en ambos grupos de conocimientos. 5. CONCLUSIONES Una comparaci´on cuantitativa sobre los tiempos de dise˜no y resoluci´on de ambas versiones de la pr´acticas por parte del profesorado es dificil de estimar dado que se basa en a˜nos de experiencia en ambas metodolog´ıas si bien una percepci´on cualitativa dar´ıa ganadora a la pr´actica en Simulink por el empleo de elementos m´as generales y f´aciles
de depurar. En la experiencia por parte del profesor a hora de impartir las pr´acticas la comparaci´on entre ambas mostr´o una clara diferencia objetiva a favor de la versi´on en Simulink: las pr´acticas en C requirieron en la mayor´ıa de los casos de un apoyo individualizado casi constante hasta la resoluci´on de la misma tanto en la programaci´on como en la resoluci´on de errores, mientras que en la versi´on Simulink el apoyo fue tan solo puntual en la resoluci´on de errores y estos a su vez fueron f´acilmente detectados por por parte del profesor muy al contrario que en C. Las gr´aficas de aprendizaje denotan un sesgo a favor de la pr´actica en C, que puede deberse fundamentalmente a que el lenguaje C es el ´unico lenguaje de programaci´on estudiado oficialmente, en tan s´olo una asignatura de la titulaci´on, siendo por tanto la programaci´on con el IDE de Arduino y su filosof´ıa textual y secuencial muy familiar para el alumno. La programaci´on en Simulink, su entorno y su enfoque de alto nivel basado en modelado se contrapone a su concepci´on de la programaci´on y dificultar´ıa la asimilaci´on de los conceptos de la pr´actica. Es decir, la pr´actica en Simulink presenta una curva de aprendizaje superior al IDE de Arduino m´as parecido al entorno de programaci´on cl´asico. Sin embargo hay que hacer menci´on de la facilidad de depuraci´on de los modelos de Simulink, que permite la detecci´on r´apida de errores de dise˜no, incluso sin la presencia del robot real gracias a su capacidad de simulaci´on y gr´afica. Elementos, estos, de los que carece la programaci´on en C. Asimismo, si se tienen en cuenta los tiempos dedicados a la realizaci´on de los dos tipos de pr´acticas, a pesar de tener un menor aprendizaje medio, la herramienta MDE proporciona una mayor eficiencia. Dado los beneficios ampliamente reconocidos por la industria de la MBD como en [11] creemos que es necesario su inclusi´on en el curriculum del estudiante de ingenier´ıa, en cuyo caso la pr´actica en Simulink saldr´ıa vencedora desde todos los puntos de vista. Agradecimientos Este trabajo han sido parcialmente financiado por el Proyecto de Innovaci´on Educativa de la Universidad de M´alaga PIE15-180. Los equipos y componentes utilizados en proyecto han sido patrocinados por Ingenier´ıa UNO (http://www.ingenieriauno.com/) y Seeed Studio (http://seeedstudio.com/). Referencias [1] Mu˜noz-Ramirez, A.J., Gomez-De-Gabriel, J.M. y Fernandez-Lozano, J.J,(2015) Ingenier´ıa Basada en Modelos en Pr´acticas de Rob´otica. Jornadas CEA de Autom´atica 2015, Bilbao, Espa˜na. [2] Schmidt, D.C. (2006), Guest editor’s introduction: Model-driven engineering. Computer, 39(2):0025–31, 2006. [3] Harel, D. (1987), Statecharts: a visual formalism for complex systems. Science of Computer Programming, 8(3):231 – 274, 1987. ISSN 0167-6423. [4] Barber, R., Crespo, M. H. J. (2013). Control Practices using Simulink with Arduino as Low Cost Hardware. In The 10th IFAC Symposium on Advances in Control Education. [5] Gartseev, I. B., Lee, L. F., Krovi, V. N. (2011). A low-cost real-time mobile robot platform (ArEduBot) to support projectbased learning in robotics & mechatronics. In Proceedings of 2nd International Conference on Robotics in Education (RiE 2011). [6] Beni, N.; Grottoli, M.; Ferrise, F.; Bordegoni, M., (2014) Rapid prototyping of low cost 1 DOF haptic interfaces, Haptics Symposium (HAPTICS), 2014 IEEE , vol., no., pp.479,483, 23-26 Feb. 2014 [7] Sobota, J., Balda, P., Schlegel, M. (2013). Raspberry Pi and Arduino boards in control education. In Advances in Control Education (Vol. 10, No. 1, pp. 7-12). [8] Kehtarnavaz, N. and Gope,C. (2006), DSP System Design Using Labview and Simulink: A Comparative Evaluation,”2006 IEEE International Conference on Acoustics Speech and Signal Processing Proceedings, Toulouse, 2006, pp. II-II. [9] Wetter, M. and Haugstetter, C (2006), Modelica versus Trnsys - A comparison between and equation-base and a procedural modeling language for building energy simulation. Simbuild 2006, Second National IBPS-USA Conference, Cambridge, USA. [10] Gil-Lozano, J.E. Mu˜noz-Ram´ırez, A.J., Torres Lopez, V.E. y G´omez-de-Gabriel, (2014), Uso de Simulink y Arduino para Pr´acticas de Rob´otica. Jornadas de Autom´atica 2014, Valencia, Espa˜na.
[11] Broy, M., Kirstan, S., Krcmar, H., Sch¨atz, B.,(2011). What is the Benefit of a ModelBased Design of Embedded Software Systems in the Car Industry?. J¨org Rech, Christian Bunse (eds.): Emerging Technologies for the Evolution and Maintenance of Software Models. IGI Global.