TFG Daniel Rojas Marin.Pdf (1.213Mb)
Total Page:16
File Type:pdf, Size:1020Kb
Tecnol´ogicode Costa Rica Escuela de Ingenier´ıaElectr´onica Programa de Licenciatura en Ingenier´ıaElectr´onica FreeMAES: Desarrollo de una biblioteca bajo el Paradigma Multiagente para Sistemas Embebidos (MAES) compatible con la NanoMind A3200 y el kernel FreeRTOS Informe de Trabajo Final de Graduaci´onpara optar por el t´ıtulode Ingeniero en Electr´onicacon el grado acad´emicode Licenciatura Daniel Andr´esRojas Mar´ın Cartago, 28 de abril de 2021 Declaro que el presente documento de tesis ha sido realizado enteramente por mi perso- na, utilizando y aplicando literatura referente al tema e introduciendo conocimientos y resultados experimentales propios. En los casos en que he utilizado bibliograf´ıahe procedido a indicar las fuentes mediante las respectivas citas bibliogr´aficas.En consecuencia, asumo la responsabilidad total por el trabajo de tesis realizado y por el contenido del presente documento. Daniel Andr´esRojas Mar´ın Cartago, 28 de abril de 2021 C´ed:1-1686-0690 Instituto Tecnol´ogicode Costa Rica Escuela de Ingenier´ıaElectr´onica Proyecto de Graduaci´on Acta de Aprobaci´on Defensa de Proyecto de Graduaci´on Requisito para optar por el t´ıtulode Ingeniero en Electr´onica Grado Acad´emicode Licenciatura El Tribunal Evaluador aprueba la defensa del proyecto de graduaci´ondenominado Free- MAES: Desarrollo de una biblioteca bajo el Paradigma Multiagente para Sistemas Embe- bidos (MAES) compatible con la NanoMind A3200 y el kernel FreeRTOS, realizado por el se~norDaniel Andr´esRojas Mar´ıny, hace constar que cumple con las normas establecidas por la Escuela de Ingenier´ıaElectr´onicadel Instituto Tecnol´ogicode Costa Rica. Miembros del Tribunal Evaluador Dra. Laura Cristina Cabrera Quir´os Dr. William Quir´osSolano Profesora Lectora Profesor Lector Dr. Johan Carvajal God´ınez Profesor Asesor Cartago, 28 de abril de 2021 Resumen En este documento se desarrollan las diferentes etapas para la implementaci´onde un paradigma de software nombrado Multiagente para Sistemas Embebidos (MAES por sus siglas en ingl´es)compatible con el microkernel FreeRTOS y la computadora a bordo NanoMind A3200 desplegada en CubeSats, cuyo microcontrolador (MCU) est´abasado en la arquitectura AVR32 de la compa~niaAtmel (adquirida por Microchip Technology en 2016). Se exponen las clases del modelo MAES y su relaci´oncon el modelo propuesto por la Fundaci´onpara Agentes F´ısicosInteligentes (FIPA), adem´asse describen las estructuras de datos, cambios a funciones equivalentes y adiciones necesarias para transportar una implementaci´onanterior realizada para TI-RTOS al sistema operativo objetivo. Seguida- mente se eval´uanlas clases y m´etodos de la API mediante pruebas unitarias y casos de estudio, de acuerdo a la metodolog´ıaSistemas Multiagentes para Aplicaciones Espacia- les (MASSA), mediante una implementaci´onpara Microsoft Visual C++. Por ´ultimo,se examina el consumo de memoria de la implementaci´onpara las arquitecturas AVR8 y AVR32, considerando un MCU y una aplicaci´on´unicapara cada arquitectura. Se determina que el incremento de memoria Flash causado por la implementaci´onde las aplicaciones mediante el paradigma corresponde aproximadamente a 4.6 kB (9.0 % de 48 kB) para AVR8 y 5.2 kB (1.0 % de 512 kB) para AVR32. Adicionalmente, se propone una arquitectura multiagente que administre el protocolo de comunicaci´on CubeSat (CSP). Palabras clave: AVR32, NanoMind A3200, paradigma de software, sistemas multiagente (SMA), Sistema Operativo de Tiempo Real (RTOS), FreeRTOS Abstract This document develops the different stages for porting a software framework named Multi-Agent for Embedded Systems (MAES) to be compatible with the microkernel FreeRTOS and the on-board computer NanoMind A3200 deployed on CubeSats, who- se microcontroller (MCU) is based on Atmel's AVR32 architecture (then acquired by Microchip Technology on 2016). The MAES model's classes and their relationship with the model proposed by the Foun- dation for Intelligent Physical Agents (FIPA) are displayed. Data structures, function changes and needed additions to translate a previous implementation developed from TI- RTOS to the target OS are further described. Subsequently the classes and API methods are evaluated via unit testing and case studies, according to the Multi-Agent System for Space Applications methodology (MASSA), through a Microsoft Visual C++ port. Lastly, the port's memory usage is examined for AVR8 and AVR32 architectures, considering an MCU and a unique application for each architecture. It is determined that an increase of Flash memory usage caused by the deployment of the applications using the framework approximately corresponds to 4.6 kB (9.0 % of 48 kB) for AVR8 y 5.2 kB (1.0 % of 512 kB) for AVR32. Additionally, an multi-agent architecture capable of managing the CubeSat Space Protocol (CSP) is proposed. Keywords: AVR32, CubeSat, NanoMind A3200, software framework, Multi-Agent Sys- tems (MAS), Real Time Operating System (RTOS), FreeRTOS Para Esmeralda y Luis Agradecimientos Agradezco todas las ayudas proporcionadas por mi familia, principalmente a mi madre Esmeralda Mar´ınMar´ıny mi padre Luis Rojas Murillo por haberme apoyado incondi- cionalmente durante mi tiempo de estudio que, a pesar de las adversidades y problemas que fueron surgiendo, siempre confiaron en m´ıy nunca limitaron mis oportunidades de crecimiento. Adicionalmente agradezco a mi t´ıa,t´ıos,primos y primas; particularmente a Rafael Mar´ınMar´ınquien siempre asisti´omi educaci´ondesde muy joven. Extiendo las gracias a los profesores, tutores e investigadores de los diferentes departamen- tos del Instituto Tecnol´ogicode Costa Rica que continuamente incrementaron mi inter´esy aprecio por la ingenier´ıae investigaci´on.Gracias al tribunal evaluador; al profesor asesor Johan Carvajal God´ınezpor el acompa~namiento en este proyecto y todos los estudiantes con quien compart´ıel placer de aprender, en especial a mis amigos m´as´ıntimos. Por ´ultimoun agradecimiento especial a Olman Quiros Jim´enezpor disponer de su tiem- po y experiencia para atender las consultas que tuviese sobre el equipo electr´onico, sus requerimientos y herramientas de software. Daniel Andr´esRojas Mar´ın Cartago, 28 de abril de 2021 ´Indice general ´Indice de figuras iii ´Indice de tablas iv ´Indice de listados v Lista de s´ımbolos y abreviaciones vi 1. Introducci´on1 1.1. Antecedentes . .2 1.2. Descripci´ondel Problema . .3 1.2.1. S´ıntesis del Problema . .3 1.3. Objetivo General . .3 1.4. Objetivos Espec´ıficos . .3 1.5. Enfoque Metodol´ogicoy Organizaci´onde los Paquetes de Trabajo . .4 2. Implementaci´ondel Paradigma MAES con FreeRTOS6 2.1. Multiagentes y FIPA . .6 2.2. Microkernel FreeRTOS . .8 2.3. Paradigma MAES . 10 2.4. Implementaci´ondel paradigma . 11 2.4.1. Definiciones . 11 2.4.2. Clase sysVars . 12 2.4.3. Clase Agent . 12 2.4.4. Clase Agent Organization . 13 2.4.5. Clase Agent Platform . 14 2.4.6. Clase Agent Message . 16 2.4.7. Clase Generic Behaviour . 16 2.5. API FreeMAES . 18 2.6. Observaciones Finales . 18 3. Evaluaci´onde la API FreeMAES 19 3.1. Pruebas Unitarias . 20 3.1.1. Plan de Pruebas Unitarias . 21 3.2. Planteamiento de Casos de Estudio . 23 i ´Indice general ii 3.2.1. Sender-Receiver . 23 3.2.2. Papel, Piedra o Tijeras . 24 3.2.3. Telemetr´ıa. 25 3.3. Estructura de la Soluci´on. 26 3.4. Resultados de Simulaciones . 29 3.4.1. Sender-Receiver . 29 3.4.2. Papel, Piedra o Tijeras . 30 3.4.3. Telemetr´ıa. 32 3.5. Discusi´onde Resultados . 33 3.6. Observaciones Finales . 34 4. Portabilidad de FreeMAES para AVR8 y AVR32 35 4.1. Consideraciones de Software . 35 4.1.1. CubeSat Space Protocol . 36 4.1.2. Compiladores e IDEs . 37 4.2. Visi´onGeneral de las Familias AVR8 y AVR32 . 38 4.2.1. AVR8: ATmega4809 . 39 4.2.2. AVR32: AT32UC3A . 39 4.3. Cambios para la Portabilidad de FreeMAES . 40 4.4. Desempe~node Memoria de FreeMAES . 40 4.4.1. Aplicaci´onde demostraci´onpara AVR8: LED Sequence . 41 4.4.2. Aplicaci´onde demostraci´onpara AVR32: LED Flash . 42 4.4.3. Resultados sobre el consumo de Memoria . 45 4.4.4. Diferencia en Cantidad de L´ıneasde C´odigo . 46 4.5. Prueba de Concepto: CSP con multiagentes . 46 4.6. Recomendaciones y Requisitos de Desarrollo . 48 4.7. Observaciones Finales . 49 5. Conclusiones y Trabajo Futuro 50 5.1. Conclusiones . 50 5.2. Trabajo Futuro . 51 Bibliograf´ıa 52 A. API FreeMAES 55 A.1. Clase Agent . 55 A.2. Clase Agent Platform . 55 A.3. Clase Agent Organization . 56 A.4. Clase Agent Message . 58 A.5. Clase sysVars . 59 ´Indice de figuras 2.1. Modelo de referencia FIPA . .8 2.2. Estados y transiciones de las tareas . .9 2.3. Diagrama de clases para MAES . 10 2.4. Diagrama de flujo del AMS para cualquier acci´onsolicitada . 15 2.5. Diagrama de flujo del m´etodo execute . 17 2.6. Modelo propuesto para MAES en FreeRTOS: FreeMAES . 18 3.1. Flujo de trabajo para MASSA . 19 3.2. Arquitectura de la primera demostraci´on . 23 3.3. Diagrama de secuencia de la primera demostraci´on . 23 3.4. Arquitectura de la segunda demostraci´on. 24 3.5. Diagrama de secuencia de la segunda demostraci´on . 24 3.6. Arquitectura de la tercera demostraci´on . 25 3.7. Diagrama de secuencia de la tercera demostraci´on . 25 3.8. Diagrama de tiempo de la primera demostraci´on. 30 3.9. Mensajes impresos por la primera demostraci´on . 30 3.10. Diagrama de tiempo de la segunda demostraci´on. 31 3.11. Mensajes impresos por la segunda demostraci´on . 31 3.12. Diagrama de tiempo de la tercera demostraci´on . 32 3.13. Mensajes impresos por la tercera demostraci´on. 33 4.1. CSP respecto al modelo TCP/IP . 36 4.2. Diagrama de flujo para funci´ongeneradora (a) y funci´onde control del LED (b) .