>
Revista Tecnología y Ciencia - Universidad Tecnológica Nacional
DOI: https://doi.org/10.33414/rtyc.35.74-81.2019 - ISSN 1666-693 -
Junio 2019 / Año 17 - Nº 35
Actas de las IX Jornadas Argentinas de Robótica 15-17 de noviembre, Córdoba, Argentina
Presentación: 17/11/2017
Aprobación: 02/12/2017
María Curetti
Centro de Investigaciones Aplicadas, DIGID - Fuerza Aérea Argentina - Argentina
curetti_maria@hotmail.com
Ana Georgina Flesia
Famaf, Universidad Nacional de Cordoba, CIEM Consejo Nacional de Investigaciones Científicas y Técnicas - Argentina
gflesia@gmail.com
Santiago Garcia Bravo
Centro de Investigaciones Aplicadas, DIGID - Fuerza Aérea Argentina - Argentina
sgbravo@iua.edu.ar
Mariano Serra
Centro de Investigaciones Aplicadas, DIGID - Fuerza Aérea Argentina - Argentina
marianoserra88@gmail.com
Ladislao Mathe
Universidad Nacional de Córdoba - Argentina
ing.ladislao.mathe@gmail.com
En este trabajo se describe una propuesta para un curso de robótica avanzada basado en proyectos prácticos e implementado sobre un ordenador embebido Nvidia Jetson Tegra X1 dirigido a estudiantes de grado avanzados o de posgrado. El programa utiliza sensores de última generación y computadoras integradas para la robótica móvil. Estos componentes son integrados a una plataforma de desarrollo móvil. El programa tiene tres rasgos distintivos destacados: (1) se centra en sistemas de software de robótica: los estudiantes diseñan y construyen software de robótica hacia aplicaciones del mundo real, sin ser distraídos por problemas de hardware; (2) promueve el aprendizaje basado en proyectos: los estudiantes aprenden a través de asignaciones de proyectos semanales y un desafío final del curso; (3) el aprendizaje se implementa de manera colaborativa: los alumnos aprenden los conceptos básicos de colaboración y comunicación técnica en las conferencias y trabajan en equipo para diseñar e implementar sus sistemas de software. El programa se basa en el curso de robótica desarrollado por el Profesor John Seng y su equipo, en la Universidad politécnica estatal de California. También discutimos brevemente las direcciones y oportunidades futuras.
Palabras Clave: Robótica práctica, Aprendizaje en base a proyectos, Aprendizaje orientado al equipo, Visión en robótica, Procesamiento embebido
His paper describes a proposal for an advanced robotics course based on practical projects and implemented on an embedded Nvidia Jetson Tegra X1 computer aimed at advanced or postgraduate students. The program uses state-of-the-art sensors and integrated computers for mobile robotics. These components are integrated into a mobile development platform. The program has three distinctive features: (1) it focuses on robotics software systems: students design and build robotics software into real-world applications, without being distracted by hardware problems; (2) promotes project-based learning: students learn through weekly project assignments and a final course challenge; (3) learning is implemented collaboratively: students learn the basic concepts of collaboration and technical communication in conferences and work as a team to design and implement their software systems. The program is based on the robotics course developed by Professor John Seng and his team at the California State Polytechnic. We also briefly discuss future directions and opportunities.
Keywords: Practical robotics, Project-based learning, Team-oriented learning, Robotic vision, Embedded processing
En la actualidad con el avance de la capacidad de procesamiento embebido la robótica ha tomado mayor auge. La posibilidad de fabricar autos que se controlen de manera automática promete revolucionar el transporte, disminuyendo riesgos y aumentando no solo el confort sino también la accesibilidad a personas que no tienen las capacidades necesarias para conducir. Actualmente los vehículos aéreos no tripulados se utilizan comercialmente para repartir mercadería, la visualización del avance de proyectos de construcción y viales. Vehículos autónomos submarinos y rovers están posibilitando el estudio de espacios inexplorados. En resumen una importante rama de la ingeniería en desarrollo en la actualidad es la robótica y sería muy interesante brindar desde la universidad las herramientas a los egresados para que puedan trabajar en futuros desarrollos en este ámbito.
Desde otro punto de vista las carreras de grado de desarrollo tecnológico históricamente han propuesto estrategias para aumentar el número de inscriptos. Es sabido que la robótica es atractiva para los jóvenes y puede aumentar el interés de los mismos en la ciencia la tecnología y las matemáticas. En algunos colegios secundarios se incluye dentro de la currícula talleres en los que los alumnos entran en contacto con distintos proyectos y competencias de robótica (Lego por ejemplo). Cuando estos alumnos seleccionen una carrera en el futuro y cursen la misma es importante valorar los conocimientos previos que tienen en el tema y ofrecerles un medio para direccionar esa energía emprendedora que traen. [1]–[7]
Por otro lado, en la actualidad y en las aplicaciones que siguen surgiendo para la robótica, los sistemas se complejizan. La información del estado del robot (posición velocidad, etc) y del medio que lo rodea son obtenidas por varios sensores. Además, la dinámica del movimiento exige mayor velocidad de procesamiento para ese gran volumen de datos. Por lo tanto, los algoritmos y el software apropiados para fusionar los distintos sensores toman mayor importancia.
Teniendo en cuenta esta complejidad planteada, sería valioso que estudiantes de grado y posgrado se pudieran enfrentar a estos desafíos dentro del marco académico. Aplicando los conocimientos que se han adquirido y enfrentándolos a problemas reales de implementación con herramientas que actualmente se están utilizando para abordar dichos desafíos. Introduciéndolos a conceptos tales como el procesamiento a tiempo real, los sistemas embebidos, la visión en robótica, etc.
En este artículo describimos una propuesta para un curso de robótica avanzada basado en proyectos prácticos e implementados sobre un ordenador embebido Nvidia Jetson Tegra X1 con 256 núcleos de procesamiento de uso general (GP-GPU), plataforma utilizada para desarrollos actuales para conducción autónoma. El curso estará dirigido a estudiantes de grado avanzados o de posgrado, y será dictado por investigadores del Centro de Investigaciones Aplicadas, en base a los desarrollos y avances en el Proyecto Brazo Robótico para Laparoscopia y el PIDDEF 038/12 "DROP" respecto al procesamiento de imágenes y su aplicación al guiado de robots en 2d y 3D a través de los procesadores embebidos Jetson TK1 y TX1. La propuesta surge con el objetivo de divulgar este conocimiento mediante un curso de robótica en el ámbito de la Universidad. [8]—[13]
Como primera medida el curso centrara su atención en el modelado, diseño e implementación del sistema de procesamiento, guiado y control. Teniendo un diseño de hardware sencillo que permita el estudio mediante ensayos de las distintos desarrollos propuestos por los alumnos. Permitiendo de esta manera un contacto directo con los problemas de las aplicaciones reales pero enfocándose en los problemas de robótica avanzada mencionados previamente.
Por otro lado, el separar el curso en pequeños proyectos prácticos permite que el estudiante vaya fijando los distintos conocimientos que se le van introduciendo. Observando y estudiando los resultados obtenidos. Y desarrollando por etapas un proyecto final, un robot autónomo.
Además, el curso está pensado para que los estudiantes trabajen en equipos, preparándolos así para otra singularidad que caracteriza los desarrollos de robótica de gran envergadura. En los proyectos los alumnos podrán dividirse el desarrollo de los diferentes módulos que integraran a 1 sistema, y trabajaran en conjunto para lograr que los módulos se comuniquen y trabajen al unísono. También se incentivará a los estudiantes a utilizar herramientas de subversionado de software que son indispensables para el seguimiento y control de errores y que son ampliamente utilizadas en la industria.
La mayoría de las clases y los ejercicios de laboratorio se basan en el curso de robótica desarrollado por el Profesor John Seng y su equipo, en la Universidad politécnica estatal de California. Pero a diferencia de la estrategia planteada en este curso se busca el desarrollo de un solo sistema integral con varios colaboradores diseñando los distintos módulos. De esta manera se estimulará el trabajo en equipo y se podrá reducir el tiempo total de cursado, desarrollando el proyecto completo en un cuatrimestre.
Este artículo está organizado de la siguiente forma: en la Sección 2, se describirá la plataforma en la que se implementará el proyecto de desarrollo del curso. En la Sección 3, se describirá el contenido técnico que se planea dictar y los laboratorios que se plantearan, con la metodología que se utilizara para realizarlos. Dedicamos la Sección 4 se discutirá potenciales desarrollos educativos y muestras o competencias que se pueden plantear. Y en la Sección 6 se concluye el trabajo con observaciones.
La plataforma de desarrollo que se utilizará es un robot móvil terrestre (Fig. 1), esta elección se realiza debido a ciertas comodidades desde el punto de vista a la realización de ensayos (bajo riesgo y menor costo de despliegue entre otras) pero al utilizar un autopiloto de múltiple plataforma (basado en un autopiloto arduino) los proyectos desarrollados pueden trasladarse a otro tipo de plataformas con sencillez (VANT de ala fija, rotativa, etc).
Fig. 1. Plataforma móvil
El principal elemento de procesamiento es el supercomputador embebido Nvidia Jetson Tegra X1 (Jetson TX1). El mismo cuenta con una GP-GPU que ofrece 1 Teraflops de potencia de cálculo, utilizando sólo 10 Watts de consumo. También tiene una unidad de procesamiento central de cuatro núcleos (CPU) sincronizada a 2 GHz. En la figura dos se observa la TX1 en acción, corriendo un algoritmo demostrativo que detecta la estructura del medio a través de datos de video e inerciales procesando entre 30 y 40 frames por segundo.
El ordenador principal ejecuta el sistema operativo Ubuntu Linux y también ejecuta el sistema operativo de robots (ROS). El entorno ROS permite desarrollar software de robótica de manera modulada. Cada módulo de software se denomina "nodo". Los nodos comparten información mediante "mensajes". El entorno ROS también proporciona herramientas para visualizar los datos que se envían entre los nodos.
El cuerpo del móvil es una plataforma genérica educativa llamada "Wild Thumper 6WD Chassis". Es un chasis robusto de 6 ruedas que tiene la ventaja de estar listo para ser utilizado, pero también está pensado para ser versátil y ampliable.
Cada uno de los seis motores está montado en una suspensión independiente y equipado con cajas de engranajes de acero 34: 1. Los motores se conectan en una regleta de bornes dentro del marco de metal anodizado de 2 mm de espesor y se pueden controlar en dos canales (izquierda y derecha). El chasis completo está perforado con agujeros de montaje de 10 mm de diámetro y 4 mm de diámetro y hay mucho espacio dentro del chasis para baterías, controladores o cualquier carga útil deseada. El chasis viene con 6 ruedas todoterreno de 120 mm.
El auto piloto escogido para controlar la plataforma educativa es el Pixhawk. Este autopiloto es un proyecto independiente de hardware abierto que tiene como objetivo proporcionar hardware de piloto automático de alto nivel a las comunidades académicas a bajo costo y alta disponibilidad. Proporciona hardware al proyecto DroneCode de la Fundación Linux. El Pixhawk ejecuta un sistema operativo en tiempo real (RTOS) muy eficiente y puede ajustarse para controlar distintos tipos de robots (UGV, VANT de ala fija, cuadricópteros,
Fig. 2. Jetson TX1 procesando estructura del medio a través de datos de video e inerciales
hexacópteros, etc). El hardware del autopiloto fue diseñado por un equipo de desarrollo con colaboración del grupo 3D Robotics y el grupo ArduPilot. Cuenta con acelerómetro, giróscopo y magnetómetro triaxiales y un barómetro; y entre los puertos disponibles hay 5 UARTs, CAN, I2C, SPI, ADC.
Finalmente, el sensor principal es una cámara Point grey Blackfly 1.3 MP Color GigE PoE. Tiene una resolución de 1280 x 1024 píxeles y puede capturar 60 cuadros por segundo. Está montada en un gimbal triaxial que cuenta con su propio controlador de software abierto que puede ser comandado por un puerto I2C. Se cuenta además con un GPs, y varios sensores del tipo sonar.
El programa académico del curso está dispuesto de la siguiente manera:
Módulo 1 Introducción al Curso:
Contenido del curso, introducción a la robótica, introducción a Jetson TK1 / TX1, introducción a ROS (sistema operativo de robots). Laboratorio: Construcción del robot e instalación de ROS.
Módulo 2 Sensores y actuadores:
Sonar, acelerómetro y giroscopio; Cámara, Motores y Encoders. Laboratorio: Detectar y esquivar obstáculos con sonar. Módulo 3 Visión en robótica:
Introducción a la Visión por Computadora, Filtrado de imágenes, Momentos de imagen. Laboratorio: Visión por ordenador (introducción a opencv, técnicas varias)
Módulo 4 Aprendizaje de máquinas:
Introducción al Aprendizaje Automático, Redes Neuronales, Caffe. Laboratorio: Conducción Autónoma
Módulo 5 Navegación por estima:
Introducción a Navegación por estima, Cálculo de posiciones, Fusión Sensoriak y filtros Kalman. Laboratorio 5: Navegación por estima.
Módulo 6 Planificación de trayectoria:
Introducción a la planificación de trayectoria. Laboratorio 6: Planificación de trayectorias
Módulo 7 Control:
Introducción a los sistemas de control, Control PID, LQR, LQI. Laboratorio 7: Seguimiento de línea.
Módulo 8 Estimación de estados de robots:
Introducción a la estimación de estados, Estimación de estados con filtros de partículas. Laboratorio 8: Estimación de estados.
Módulo 9 Mapeo:
Introducción al mapeo, SLAM (estimación de posición y mapeo simultáneo). Laboratorio 9: Cartografía
Módulo 10: Proyecto Final
El curso está pensado para ser dictado en 60 horas, 6 por módulo, a dictarse en 10 semanas. Los laboratorios se realizaran en equipos de 3 integrantes. Se proponen uno por semana y son asignados a un integrante de cada equipo que contara con 3 semanas para culminarlo. De esta manera cada integrante será responsable de 3 laboratorios, y los equipos irán ensayando los módulos generados. En el proyecto final se integrarán los módulos para lograr un objetivo complejo o misión que el robot deberá realizar de manera autónoma (recobro de bandera, seguimiento de blanco, etc).
En las horas destinadas a introducir los laboratorios y orientar a los estudiantes en la realización de los mismos, se incentivará a los estudiantes a utilizar herramientas de subversionado, también llamado control de versiones. De esta manera será posible la gestión de los diversos cambios que se realizan sobre los módulos en desarrollo, pudiendo tener un mejor seguimiento sobre los errores y copias de seguridad de las distintas versiones que se vayan desarrollando. Se estimulan así buenas prácticas de programación, que serán necesarias para el desarrollo del proyecto actual y futuros.
Se plantea como una posible mejora del curso la implementación del mismo en una plataforma on-line. Esto permitiría la realización del mismo a distancia, sin perder por este motivo la capacidad de realizar ensayos con el hardware. Entre otros beneficios esta alternativa podría permitir la integración de equipos a distancia, que no solo brindaría experiencia a los estudiantes en una modalidad de trabajo muy utilizada en la actualidad, sino que también permitiría la interrelación de estudiantes de distintas instituciones educativas. Así se lograría fomentar la formación de lazos entre los grupos de investigación que en el futuro beneficiaran a las instituciones y a las ramas de investigación en sí mismas.
Finalmente se podría preparar exposiciones de los resultados obtenidos por los equipos en sus proyectos finales, ya sea a través de presentación de papers, o en algún tipo de muestra en las universidades. De esta manera, se podría atraer a más estudiantes interesados a participar en el tema. Si se realizaran muestras en eventos con presencia de estudiantes de secundario, como la Expo carreras o invitando a los estudiantes a competencias abiertas, se podría estimular a más jóvenes a escoger carreras en el área de las ciencias aplicadas y la tecnología.
En este artículo se presentó un programa de robótica avanzado para estudiantes de grado y posgrado basado en proyectos prácticos y a desarrollarse sobro una plataforma embebida Jetson TX1.E1 dictado del curso brindara herramientas a los estudiantes que en el futuro pueden emplear en distintas ramas de la ingeniería, incluyendo a la robótica. Además al tener un fuerte contenido práctico permitirá que los estudiantes de enfrenten a desafíos en la implementación de proyectos de este tipo. Finalmente, el curso estimulará el desarrollo en equipo y la producción de sistemas con módulos compatibles y buenas prácticas de programación.
En el futuro se espera poder dictar el curso online, posibilitando el cursado a distancia y realizar muestras de los proyectos finales en exposiciones del tipo de la Expo carrera para promover el estudio de carreras tecnológicas en estudiantes secundarios.
E. Kolberg and N. Orlev, 2001"Robotics learning as a tool for integrating science technology curriculum in k-12 schools," in Frontiers in Education Conference, 31st Annual, vol. 1. IEEE, 2001, pp. T2E-12.
A. Welch and D. Huffman, 2011 "The effect of robotics competitions on high school students' attitudes toward science," School Science and Mathematics, vol. 111, no. 8, pp. 416-424.
G. Nugent, B. Barker, N. Grandgenett, and G. Welch, 2016 "Robotics camps, clubs, and competitions: Results from a us robotics project," Robotics and Autonomous Systems, vol. 75, pp. 686-691.
R. T. Johnson and S. E. Londt, 2010 "Robotics competitions: The choice is up to you!." Tech Directions, vol. 69, no. 6, pp. 16-20.
C. Chalmers, 2013 "Learning with first lego league," in Society for Information Technology and Teacher Education (SITE) Conference.(25-29 March, 2013). Association for the Advancement of Computing in Education (AACE), pp. 5118-5124.
H. Fike, P. Barnhart, C. E. Brevik, E. C. Brevik, C. Burgess, J. Chen, S. Egli, B. Harris, P. J. Johanson, N. Johnson et al., 2016 "Using a robotics competition to teach about and stimulate enthusiasm for earth science and other stem topics," in EGU General Assembly Conference Abstracts, vol. 18, p. 10.
S. Karaman, A. Anders, M. Boulet, J. Connor, K. Gregson, W. Guerra, O. Guldner, M. Mohamoud, B. Plancher, R. Shin et al., 2017 "Project-based, collaborative, algorithmic robotics for high school students: Programming self-driving race cars at mit," in Integrated STEM Education Conference (ISEC), 2017 IEEE. IEEE, pp. 195-203.
N. Otterness, M. Yang, S. Rust, E. Park, J. H. Anderson, E D. Smith, A. Berg, and S. Wang, 2017 "An evaluation of the nvidia txl for supporting real-time computer-vision workloads," in Real-Time and Embedded Technology and Applications Symposium (RTAS), 2017 IEEE. IEEE, pp. 353-364.
M. Curetti, S. G. Bravo, G. S. Arri, and L. Mathe, 2013 "Adjustable track-ing algorithm with adaptive template matching," IEEE Latin America Transactions, vol. 11, no. 1, pp. 34-39.
G. Arri, M. Curetti, S. G. Bravo, and L. Mathé, 2013 "Fusión sensorial para una plataforma de seguimiento," in 14th Argentine Symposium on Technology, AST 2013.
M. Curetti, M. Serra, S. G. Bravo, A. G. Flesia, and L. Mathé, "Use of inertial and altimeter information for rectified searches in image target tracking for drone applications," in Information Processing and Control (RPIC), 2015 XVI Workshop on. IEEE, 2015, pp. 1-5.
L. Mathe, D. Samban, and G. Gómez, 2012 "Estudio del funcionamiento del sensor kinect y aplicaciones para bioingeniería," Proyecto final de carrera de Ingeniería en Computación, Universidad Nacional de Córdoba, Córdoba, Veracruz.
L. Mathe, A. Caverzasi, E Saravia, G. Gomez, and J. Pedroni, 2013 "Detection of human-robot collision using kinetic," IEEE Latin America Transactions, vol. 11, no. 1, pp. 143-148.