scieee AI-readable full text Open interactive document viewer

Modelar o programar en prácticas de robótica

Muñoz-Ramírez, Antonio José,Gómez-de-Gabriel, Jesús Manuel

Abstract

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 programacion de sistemas embebidos en lenguaje C, para la realizacion de clases practicas de robotica. Se ha plantea do una practica basada en el control cinemático de un robot móvil en ambos entornos con similares bloques y funciones de partida. Los resultados muestran tanto la comparación de las evaluaciones objetivas realiza das a los dos grupos como los datos relativos a los tiempos requeridos para la realización de las diferentes partes de la practica. Si bien, los resultados del aprendizaje son mayores en el caso del método basado en programacion, la diferencia en tiempos invertidos y otras valoraciones hacen m´as adecuado el MDE .

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.