CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS Propuesta de Modelo de Aplicación y Uso Potencial Alumno APU Jonatan Matías Ponzo Director Mg. Diego Azcurra TRABAJO FINAL PRESENTADO PARA OBTENER EL GRADO DE LICENCIADO EN SISTEMAS DEPARTAMENTO DE DESARROLLO PRODUCTIVO Y TECNOLOGICO UNIVERSIDAD NACIONAL DE LANUS 2013 RESUMEN La aplicación sistemática, disciplinada y cuantificable de procesos [IEEE, 1990] permite llevar adelante proyectos de desarrollo de sistemas de manera efectiva y eficiente. La ausencia de una metodología de planificación y control puede llevar a la no conclusión de un proyecto o a la elaboración de un sistema que no satisface las expectativas y requerimientos del cliente. En la actualidad, se identifican diversos modelos que asisten al proceso de ingeniería de requisitos y modelado de sistemas embebidos en la base de conocimiento referente al área de estudio, aunque todos ellos carecen del enfoque necesario para abordar la gestión integral de los proyectos. Esta carencia sin embargo, se encuentra ampliamente cubierta en el ámbito de la Ingeniería de Software. Es por ello que este trabajo final de licenciatura busca seleccionar y analizar algunos de los principales modelos de procesos de sistemas informáticos -preferentemente embebidos- disponibles en la actualidad y generar a partir de su combinación, adaptación y complemento, un nuevo modelo de gestión integral de proyectos destinados al control de Robots Autónomos Móviles basados en Arquitecturas de Sistemas Embebidos que cubra la carencia identificada. ABSTRACT Systematic, disciplined and quantifiable application of processes [IEEE, 1990] allow the carry of systems development projects effectively and efficiently. The lack of planning and control methodology might lead to non-completion of a project or the development of a product that does not meet the expectations and requirements of the client. Nowadays, there are several models that assist in the requirements engineering and embedded systems modeling but they all lack the focus needed to carry out the management of the entire projects. This lack, however, is widely covered in the Software Engineering field. This paper is intended to select and analyze some of the major informatics system's process-based methodologies, preferably embedded systems, available nowadays and to develop, based on their combination and adaptation, a new embedded systems controlled robots's integrated management model. INDICE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. ÍNDICE 1. INTRODUCCIÓN 1 1.1. Contexto del Trabajo Final 1 1.2. Objetivo del Trabajo Final 2 1.2.1. Objetivo general 2 1.2.2. Objetivos particulares 3 1.3. Visión General del Trabajo Final 3 2. ESTADO DE LA CUESTIÓN 5 2.1. Modelos de procesos para sistemas informáticos 5 2.1.1. Modelo de requisitos para sistemas embebidos 6 2.1.2. Goal-oriented patterns for UML-Based modeling of embedded systems requirements 7 2.1.3. IEEE Standard for Developing Software Life Cycle Processes 1074-2006 8 2.2. Esquema Comparativo 9 3. DESCRIPCIÓN DEL PROBLEMA 11 3.1. Identificación del problema de investigación 11 3.2. Problema abierto 12 3.3. Sumario de investigación 12 4. SOLUCIÓN 13 4.1. Modelo de gestión integral de proyectos destinados al control de Robots Autónomos Móviles basados en Arquitecturas de Sistemas Embebidos. 4.1.1. Generalidades 13 13 4.1.2. Influencias 13 4.1.3. Estructura general del modelo 15 4.1.4. Procesos, sub-procesos, actividades, documentos de salida y técnicas sugeridas 15 4.1.5. Descripción y objetivos de los procesos, sub-procesos y actividades propuestas 26 4.1.6. Procedimiento de implementación de la solución 38 4.1.6.1. Selección de un modelo de ciclo de vida 38 4.1.6.2. Creación del ciclo de vida del proyecto, Mapa de actividades 38 4.1.6.3. Secuenciamiento de actividades 39 4.1.6.4. Asignación de documentos de salida 39 4.1.6.5. Iniciación del proyecto 39 5. PRUEBA DE CONCEPTO 41 5.1. Descripción de la prueba de concepto: inspección de cultivos en invernadero 41 5.1.1. Descripción del negocio 41 5.1.2. Descripción del producto a desarrollar 42 TRABAJO FINAL DE LICENCIATURA EN SISTEMAS i JONATAN PONZO INDICE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 5.2. Implementación de la prueba de concepto 42 6. CONCLUSIONES 43 6.1. Aportaciones del Trabajo Final 43 6.2. Futuras Líneas de Investigación 44 7. REFERENCIAS ANEXO I – RELEVAMIENTO DE HARDWARE 47 49 1. Introducción a las familias seleccionadas 52 2. Microprocesador. Arquitectura, frecuencias disponibles y características principales 57 3. Dimensiones, alimentación y condiciones de ambiente soportadas 65 4. Memoria de datos y programa 70 5. Interfaces y puertos de entrada / salida disponibles 75 6. Módulos de expansión 86 7. Programación 92 8. Disponibilidad en el mercado local e internacional y costos 102 9. Principales mercados de aplicación, ventajas y desventajas 106 10. Matriz comparativa 111 11. Referencias 113 ANEXO II – MATRIZ COMPARATIVA ANEXO III – MODELADO DE SISTEMAS EMBEBIDOS 1. Modelo de requisitos para sistemas embebidos 117 127 130 1.1 Introducción 130 1.2 Descripción del modelo 131 1.2.1 Categorías y subcategorías 132 1.2.1.1. Disponibilidad de objetos 132 1.2.1.2. Convocación y demostración 132 1.2.1.3. Selección de alternativas 132 1.2.1.4. Solicitud de acceso 133 1.2.1.5. Aporte (entrada respuesta) 133 1.2.1.6. Verificación / Decisión 133 1.2.1.7. Intervención de agentes 133 1.2.1.8. Acción del agente 134 1.2.1.9. Transferencia / Actualización 135 1.2.1.10 Interrupción / Restitución / Conservación 135 1.2.1.11. Despeño / Cambio 136 1.2.1.12. Precio y Costos 136 1.2.1.13. Descripción y caracterización de los agentes 136 TRABAJO FINAL DE LICENCIATURA EN SISTEMAS ii JONATAN PONZO INDICE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 2. Goal-Oriented Patterns for UML-Based Modeling of Embedded Systems Requirements 138 2.1. Introducción 138 2.2. Notación del modelo basado en metas 139 2.3. Análisis del comportamiento 141 2.4. Patrones COBRA 141 2.5. Plantillas COBRA 142 2.6. Análisis de consistencia en la construcción 147 2.6.1. Consistencia estructural por construcción 147 2.6.2. Consistencia en el comportamiento mediante análisis 149 3. Standard IEEE 1074-2006 para el Desarrollo de procesos de ciclo de vida de Software 149 3.1. Introducción 149 3.2. Descripción general del modelo 150 3.3. Descripción detallada de subprocesos 151 4, Referencias 161 ANEXO IV – DOCUMENTOS DEL PROYECTO 163 Plan de iniciación del proyecto 165 Plan de proyecto 187 Especificación de requisitos 219 Especificación de diseño 257 Manual de operaciones 279 Reporte de instalación y operación del sistema 293 Reporte de evaluación del sistema 305 Informe de estado de la configuración 323 Informe de garantía de calidad 335 TRABAJO FINAL DE LICENCIATURA EN SISTEMAS iii JONATAN PONZO INDICE TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. iv JONATAN PONZO INDICE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. ÍNDICE DE TABLAS Tabla 2.2. Esquema comparativo de modelos 9 ÍNDICE DE FIGURAS Figura 4.1. Secuencia de implementación del modelo solución. 40 NOMENCLATURA ASE Arquitecturas de Sistemas Embebidos COBRA Constraints and OBjects for Requirements Analysis IR Ingeniería de Requerimientos PyMEs Pequeñas y Medianas Empresas RAM Robot Autónomo Móvil SC Sistema de Control SE Sistemas Embebidos SE-RAM Sistemas Embebidos utilizables en Robótica Autónoma Móvil SI Sistemas Informáticos TFL Trabajo Final de Licenciatura UML Unified Modeling Languaje TRABAJO FINAL DE LICENCIATURA EN SISTEMAS v JONATAN PONZO INDICE TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. vi JONATAN PONZO INTRODUCCION CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 1. INTRODUCCION En este Capítulo se plantea el contexto del trabajo final (sección 1.1), se establece su objetivo (sección 1.2), y se resume su estructura (sección 1.3). 1.1. CONTEXTO DEL TRABAJO FINAL En un contexto mundial donde la tecnología avanza a pasos agigantados y se inserta en todos los ámbitos de la sociedad, desde hogares y escuelas hasta medios de comunicación, industrias y organizaciones de toda índole, es imperativo adaptarse y acompañar el crecimiento intentando anticipar los fenómenos de cambio. En muchos casos la introducción de nuevas tecnologías en algunos de estos ámbitos es sinónimo de progreso y ventaja competitiva . A la hora de pensar en el sector industrial, particularmente en PyMEs, principales impulsoras de un país que atraviesa el inicio de un proceso de cambio de paradigma productivo solo comparable con el atravesado durante la década de 1880 [Tangelson, 2004], podemos destacar a la Robótica como una de las principales disciplinas tecnológicas potencialmente aplicables al sector, en pos de su evolución y la búsqueda del aumento de los niveles de eficiencia en la productividad. La Robótica es una disciplina que busca desarrollar unidades electrónicas y mecánicas destinadas a llevar a cabo un conjunto de tareas de manera automatizada, precisa y controlada. La Robótica Autónoma particularmente, es una sub-disciplina de la Robótica convencional enfocada en dotar al robot de un cierto nivel de inteligencia que le permita desempeñarse sin intervención humana. Un Robot autónomo se compone de una estructura electrónica-mecánica [Azcurra et al, 2011] basada en sensores y actuadores y una placa base con un Sistema Embebido encargado de gestionarlos. Un Sistema Embebido [Heath Steve, 2003], a diferencia de un sistema tradicional como puede ser el que posee una computadora personal y cuyo objetivo es cubrir un rango amplio de necesidades, se construye para cubrir un conjunto de necesidades especificas y opera en un sistema computacional dedicado. La clave de los robots autónomos se encuentra en la inteligencia que presenta este Sistema Embebido, la cual le permite, mediante el análisis de las señales obtenidas del entorno, planificar su accionar en pos de alcanzar los objetivos planteados durante su diseño y concepción. Si a un robot autónomo se le incorporara dentro del conjunto de actuadores, un sistema mecánico de desplazamiento controlado, estaríamos en presencia de un sistema denominado Robot Autónomo Móvil. Este trabajo se sitúa en el marco de un Trabajo Final de Licenciatura en Sistemas por lo cual focalizaremos el estudio de los Robots Autónomos Móviles en su Sistema Embebido (SE) de control por sobre su sistema mecánico. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 1 JONATAN PONZO INTRODUCCION CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Los avances tecnológicos a nivel mundial y la gran demanda de estos en todos los sectores hace que existan tanto en el mercado nacional como internacional, numerosos desarrollos de hardware -muchos de ellos open-source o de libre utilización- asequibles y potencialmente utilizables en robótica autónoma móvil [Azcurra et al, 2011]. Esto permite a las industrias acceder de manera directa a la posibilidad de insertar tecnología en sus procesos productivos, mas allá de cuales sean sus dimensiones y su capacidad adquisitiva. Es claro que además de contar con la tecnología adecuada, es importante la intervención de profesionales informáticos tanto en el desarrollo e implementación de soluciones adecuadas a los requerimientos del cliente como en la generación del conocimiento requerido para lograrlo, es decir, la elaboración de metodologías, modelos de procesos, estándares, técnicas y procedimientos que permitan garantizar la conclusión exitosa y controlada de los proyectos generados asegurando niveles de calidad, seguridad, eficiencia y eficacia adecuados. Es importante hacer hincapié en este ultimo requerimiento, el conocimiento. La ausencia de una metodología integral y estandarizada de planificación y control puede derivar en numerosos inconvenientes a lo largo de un proyecto; desde el incremento en los plazos de entrega a causa de la mala planificación previa y un consecuente incremento en los costos, la construcción de un sistema que no satisface o satisface de manera parcial las expectativas y requisitos del cliente debido a la mala ejecución y documentación del proceso de ingeniería de requerimientos hasta la imposibilidad de realizar modificaciones o mantenimiento en el sistema debido a la falta de documentación. La existencia de una metodología integral y estandarizada para el manejo de proyectos de desarrollo de Sistemas Embebidos, permitiría reducir significativamente la aparición de imprevistos a lo largo de un proyecto que deriven en el incumplimiento de acuerdos y plazos establecidos con el cliente o alteren la calidad del producto final, independientemente del equipo de trabajo u organización que lleve adelante el proyecto. 1.2. OBJETIVOS DEL TRABAJO FINAL En esta sección se establece el objetivo general del trabajo y los objetivos particulares propuestos para contribuir al alcance del mismo. 1.2.1. OBJETIVO GENERAL El objetivo general de este TFL es la elaboración de un modelo de gestión integral de proyectos destinados al control de Robots Autónomos Móviles (RAM) basados en Arquitecturas de Sistemas Embebidos (ASE), que permita al Profesional de Sistemas contribuir en el proceso de inserción de la tecnología en la industria (preferentemente PyMEs) mediante el desarrollo e implementación de TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 2 JONATAN PONZO INTRODUCCION CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. soluciones que aseguren la satisfacción de las necesidades del cliente alcanzando niveles de eficiencia y calidad apropiados para la disciplina. 1.2.1. OBJETIVOS PARTICULARES En torno a lo descripto anteriormente, se plantean los objetivos particulares que guían la realización de este trabajo: Objetivo particular I: Efectuar un relevamiento de estándares, modelos de procesos y técnicas existentes en el cuerpo de conocimiento de los sistemas informáticos -preferentemente embebidosy generar mediante su combinación y adaptación, un nuevo modelo de gestión integral de proyectos destinados al control de Robots Autónomos Móviles basados en Arquitecturas de Sistemas Embebidos. Objetivo particular II: Relevar las ASE existentes en el mercado local e internacional focalizando el análisis en sus características técnicas, físicas y comerciales a fin de crear un perfil de las mismas y generar una matriz comparativa que permita contribuir en el proceso de Selección del Hardware óptimo para el desarrollo de la solución requerida. 1.3. VISIÓN GENERAL DEL TRABAJO FINAL Este trabajo final de licenciatura se estructura en torno a 7 capítulos. En el capítulo inicial, se establece una introducción, en la cual se describe el contexto del mismo focalizando en la importancia de la introducción de nuevas tecnologías en diversos ámbitos sociales, principalmente en el sector industrial. Posteriormente se presenta el objetivo general planteado y los objetivos particulares que guían y contribuyen a su alcance. En el capítulo II - Estado de la Cuestión, se realiza un estudio de distintos modelos y estándares existentes en la base de conocimiento de los sistemas informáticos y cuyo objetivo es asistir al profesional del área en la realización de las actividades que puedan estar contenidas en las fases o procesos de un proyecto de desarrollo de sistemas, ya sean estos embebidos o artefactos software. En el capitulo III – Descripción del Problema, se describe la problemática identificada que motiva a la realización de este trabajo final de licenciatura focalizando en el estudio de la conveniencia por parte de los sectores industriales respecto de insertar la tecnología en sus procesos productivos en pos de incrementar su productividad y la carencia de metodologías estandarizadas asociadas a la disciplina que permitan al profesional de sistemas alcanzar este objetivo de manera controlada y cumpliendo con ciertos estándares de calidad. En primer lugar se describe el problema de TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 3 JONATAN PONZO INTRODUCCION CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. investigación planteado, posteriormente se presenta el problema abierto y finalmente se concluye el capitulo con un sumario de investigación. En el capitulo IV – Solución, se propone un modelo que busca alcanzar el objetivo general planteado y de esta manera cubrir la problemática identificada en este TFL. El capitulo contiene la presentación y descripción del modelo propuesto partiendo de una introducción a las cuestiones generales del mismo. Posteriormente se realiza una descripción detallada de sus procesos, subprocesos, actividades asociadas, técnicas sugeridas y documentación de salida y finalmente, se concluye indicando el procedimiento de implementación de la misma. En el Capitulo V – Prueba de Concepto, se presenta un caso de aplicación concreta del nuevo modelo generado, que busca desarrollar un sistema que satisfaga las necesidades de automatización de un proceso productivo descripto y de esta manera, validar la factibilidad de aplicación de la solución planteada. En el capitulo VI – Conclusiones, se describen los aportes realizados por este TFL y se proponen futuras lineas de investigación. En el capitulo VII y final, se enumeran las referencias. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 4 JONATAN PONZO ESTADO DE LA CUESTIÓN CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 2. ESTADO DE LA CUESTIÓN A lo largo de este capitulo se describe el estado de la cuestión en el dominio de los modelos de procesos para Sistemas Informáticos. En la sección 2.1 se presentan y describen tres modelos de procesos para Sistemas Informáticos. Dos de ellos pertenecen al ámbito de los sistemas embebidos (secciones 2.1.1 y 2.1.2), disciplina en la cual se identifico una gran carencia respecto a este tipo de conocimiento y el restante (sección 2.1.3), a pesar de pertenecer al dominio de la ingeniería de software, fue seleccionado por su potencialidad de contribución, tanto desde el aspecto técnico como metodológico, a la generación de una nuevo modelo que cubra la problemática identificada. Por último, en la sección 2.2 se desarrolla un esquema comparativo de las principales ventajas y desventajas de cada modelo seleccionado. Para obtener información mas detallada de los modelos seleccionados y brevemente descriptos a continuación, referirse al ANEXO III – Modelos de Procesos para Sistemas Informáticos. 2.1. MODELOS DE INFORMÁTICOS PROCESOS PARA SISTEMAS Los modelos de procesos, ya sea en sistemas o cualquier otra disciplina, buscan asistir al profesional de la misma en la ejecución ordenada, controlada, documentada y por sobre todo estandarizada, de un conjunto de actividades necesarias para la concepción de un producto o servicio que satisfaga una necesidad planteada. Es por ello que este tipo de conocimiento es considerado de suma relevancia en cualquier asignatura. En el ámbito de la ingeniería de software, se dispone de una gran cantidad y diversidad de modelos de procesos y standards que cumplen con las características anteriormente mencionadas como el Standard IEEE 1074 o el modelo de procesos de software MoProSoft, por mencionar algunos de los mas relevantes. Sin embargo, no sucede lo mismo en la base de conocimiento de los sistemas embebidos donde solo se encontraron al momento de redacción de este trabajo final de licenciatura, una escasa cantidad modelos de procesos y técnicas orientadas a asistir al profesional en fases aisladas de un proyecto como es -tal vez una de las mas determinantes- la fase de ingeniería de requerimientos (IR). A continuación se presentan y describen 2 modelos provenientes del ámbito de los SE, (1) “Modelo de Requisitos para Sistemas Embebidos” de Liliana Gonzalez y German Urrego (2008) y (2) “Model Integrated Systems” de Akos Ledeczi, Arpad Bakay y Miklos Maroti y un standard referente de la ingeniería de software como lo es “IEEE Standard for Developing Software Life TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 5 JONATAN PONZO ESTADO DE LA CUESTIÓN CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Cycle Processes 1074-2006” del Software Engineering Standards Committee of the IEEE Computer Societ, en su ultima versión correspondiente al año 2006. 2.1.1. “MODELO DE REQUISITOS PARA SISTEMAS EMBEBEBIDOS” LILIANA GONZALEZ, GERMAN URREGO (2008). En la actualidad, las metodologías de IR disponibles en el dominio de los sistemas embebidos poseen una fuerte orientación a la etapa de diseño y un énfasis más débil en la etapa de Análisis. Es por esto que usualmente, los diseñadores de sistemas cometen el error de comenzar a diseñar e implementar soluciones que no han sido completamente especificadas y que corresponden a problemas carentes de delimitación. Esto conduce a la construcción de sistemas que no satisfacen las necesidades de los clientes y que incurren en el aumento de los costos y el incumplimiento de los plazos establecidos. Además del fenómeno planteado anteriormente surgen entre otros, los siguientes supuestos: a) Los sistemas basados en embebidos suelen ser desarrollados generalmente por expertos en electrónica, pero alejados del uso de las metodologías de Análisis y Diseño. b) La ausencia de metodologías específicas, reemplazadas por aquellas de propósito general que no contienen ninguna adaptación a los sistemas embebidos. c) Las metodologías existentes en el campo de los SE no cubren todas las fases de la Ingeniería de Requisitos. [Palacio y Giraldo, 2008]. Entre las metodologías existentes, los autores de este modelo focalizaron en ABC-Besoins, un modelo originalmente diseñado para el dominio de sistemas web, que introduce el concepto de “Intervención de agentes” mediante el cual logra integrar y relacionar los requisitos de diferentes contextos y propone además, pautas para el Análisis de Requisitos desde la fase de captura hasta la fase de especificación, logrando la operacionalización de los mismos y la construcción de un modelo conceptual. Todas estas ventajas se deben a un modelo de requisitos expresivo que permite relacionar requisitos de diferentes niveles y capturar las necesidades de los agentes [Palacio y Giraldo, 2008]. La propuesta fue entonces intervenir la metodología ABC-Besoins a fin de adaptarla y transformarla para abarcar aspectos del dominio de SE, y construir un modelo conceptual que facilite la entrada a un lenguaje de especificación [Palacio y Giraldo, 2008], es decir, un lenguaje formal o semi-formal que permita construir modelos de los sistemas que se desea elaborar. El nuevo modelo generado fue bautizado ABC-Besoins-SEM y construido respetando las categorías principales definidas en el modelo tradicional a las cuales se le incorporaron nuevas sub-categorías a fin de definir requisitos más específicos que incorporan los elementos propios de los sistemas embebidos [Palacio y Giraldo, 2008]. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 6 JONATAN PONZO ESTADO DE LA CUESTIÓN CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. El modelo ABC-BENSOINS-SEM fue seleccionado entre la escasa oferta que presenta la base de conocimiento de los sistemas embebidos, por su aporte a la organización y conducción del proceso de ingeniería de requerimientos funcionales y no funcionales de SE dentro de un marco metodológico y controlado basado en la organización de los mismos en torno a Categorías y Subcategorias inherentes a su condición. Además, su concepción se asemeja a la linea de desarrollo planteada en este trabajo final de licenciatura, es decir, la construcción de un nuevo modelo de procesos mediante la adaptación y complemento de modelos existentes y de probado éxito en el ámbito de los sistemas informáticos. Si bien este modelo incorpora algunas categorías enfocadas a la gestión de costos y contempla el comportamiento y algunos aspectos del sistema producido como su disponibilidad y su capacidad de detección de fallas, carece de actividades orientadas a la planificación, gestión y control del proyecto. 2.1.2. “GOAL-ORIENTED PATTERNS FOR UML-BASED MODELING OF EMBEDDED SYSTEMS REQUIREMENTS” DE HEATHER J. GOLDSBY1, SASCHA KONRAD, BETTY H.C. CHENG. Los autores de este modelo tomaron como premisa la naturaleza de utilización de los sistemas embebidos en aplicaciones criticas y por ello su necesidad de ajustarse a diversas restricciones de seguridad. Identificaron además. que los desarrolladores de estos sistemas, usualmente deben enfrentarse a tres retos clave a la hora de aplicar enfoques existentes de Análisis de Requerimientos; Estos son: (1) Modelar y declarar literalmente requerimientos funcionales, no funcionales y restricciones; (2) Modelar de manera operativa el comportamiento deseado; (3) Analizar los modelos de requerimientos de comportamiento en adhesión a las restricciones planteadas. [Heather et al, 2007]. A fin de sobrepasar estos retos, introdujeron patrones COBRA (Constraints and OBjects for Requirements Analysis) que proporcionan plantillas de modelos UML y modelos basados en Metas, implementables en conjunto en la creación de modelos de representación gráfica que capturen múltiples vistas de los requerimientos del sistema y sus restricciones [Heather et al, 2007]. A fin de capturar los componentes esenciales de un sistema embebido, los patrones COBRA modelan los requerimientos asociados a sensores, actuadores, controladores e interfaces de usuarios mediante la relación de modelos basados en metas con modelos UML a nivel de los requerimientos. Esta combinación supone tres beneficios clave: (1) La plantilla del modelo basado en metas especifica de manera declarativa los requerimientos funcionales y no funcionales de un sistema embebido y los refina en las restricciones; (2) La plantilla del modelo UML especifica de manera operativa el comportamiento que satisface los requerimientos; Específicamente, la estructura del TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 7 JONATAN PONZO ESTADO DE LA CUESTIÓN CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. sistema es capturada utilizando diagramas de clase UML y el comportamiento mediante diagramas de estado UML. (3) La consistencia estructural y de comportamiento es establecida entre los modelos UML y basados en metas, resultantes [Heather et al, 2007]. . Para facilitar la implementación de este modelo, se utiliza una plantilla diseñada para direccionar los requerimientos tempranos y tardíos identificando cuando aplicar un patrón, como hacerlo y las metas del mismo -para casos de requerimientos tempranos- e identificando la estructura y comportamiento de los componentes mas relevantes del sistema para los casos de requerimientos tardíos [Heather et al, 2007]. Se ha seleccionado este modelo por introducir a la base de conocimiento de los sistemas embebidos, una técnica de representación gráfica y modelado de requisitos mediante la utilización de patrones COBRA y diagramas UML, capaz de especificar de manera declarativa los requerimientos funcionales y no funcionales de un sistema embebido, refinarlos en las restricciones identificadas y especificar de manera operativa el comportamiento [Heather et al, 2007]. . Este modelo carece por completo de actividades destinadas a la planificación y gestión del proyecto y se enfoca exclusivamente en la fase de IR del sistema embebido a desarrollar. Estas características lo tornan insuficiente para cubrir de manera independiente la carencia planteada pero si muy importante a la hora de complementar un modelo gestión de proyectos dedicados al control de Robots Autónomos mediante sistemas embebidos . 2.1.3. “IEEE STANDARD FOR DEVELOPING SOFTWARE LIFE CYCLE PROCESSES 1074-2006” SOFTWARE ENGINEERING STANDARDS COMMITTEE OF THE IEEE COMPUTER SOCIETY (2006). IEEE es la asociación profesional sin fines de lucro más grande y prestigiosa del mundo [IEEE, 2013] dedicada a fomentar el avance de la innovación tecnológica y la excelencia en beneficio de la humanidad. Sus miembros, ingenieros electrónicos, informáticos, científicos de la computación y expertos en telecomunicaciones de mas de 160 países, inspiran a la comunidad global a través de publicaciones, conferencias, estándares de tecnología y diversas actividades profesionales y educativas. El standard 1074 desarrollado por dicha asociación y cuya ultima versión data del año 2006 está dirigido a los gestores de proyectos, desarrolladores de software, responsables de la garantía de la calidad, a quienes ejecutan tareas de apoyo, a los usuarios y al personal de mantenimiento de productos software y determina un conjunto de actividades esenciales, no ordenadas en el tiempo, que deben ser incorporadas dentro de un Modelo de Ciclo de Vida del producto software a desarrollar, establecido por el usuario para el proyecto a llevar a cabo -la norma no define un ciclo de vida en particular- [Peláez, 2013]. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 8 JONATAN PONZO ESTADO DE LA CUESTIÓN CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. El standard se estructura en torno a procesos y subprocesos, los cuales proponen a su vez actividades a llevar a cabo. El trabajo realizado a lo largo de cada fase se ve reflejado en diversos documentos de salida que brindan marco profesional y controlado a la actividad. Es importante destacar que el mismo es perfectamente adaptable a las necesidades, características y dimensiones de cada proyecto. De manera complementaria, se referencia la guía de estudio “Ciclo de Vida de Software, Proceso Software y Plan de Actividades" [García Martínez, 2009], en la cual se introduce el concepto de “Técnicas Sugeridas” para las actividades propuestas en cada subproceso. Si bien este standard fue diseñado para contribuir en la mejora de la calidad los proyectos de Ingeniería de software, es considerado una importante fuente de aporte, fundamentalmente desde el punto de vista estructural y metodológico, para el desarrollo de un nuevo modelo de gestión de proyectos destinados al control Robots Autónomos mediante Sistemas Embebidos a partir de la adaptación de sus procesos, sub-procesos, actividades relacionadas y documentación de salida, y la inserción y adaptación en su estructura de otros modelos y técnicas seleccionadas de la base de conocimientos de los sistemas embebidos y afines como los descriptos anteriormente en la presente sección. 2.2. ESQUEMA COMPARATIVO En la Tabla 2.2 se presentan las principales virtudes y carencias de cada modelo expuesto en la sección anterior a modo de llevar a cabo un ejercicio comparativo de rápida interpretación. Modelo Virtudes Modelo de Requisitos para Sistemas Embebidos. ABC-BENSOINS-SEM • • Goal-Oriented Patterns for UMLBased Modeling of Embedded Systems Requirements • • Amplia cobertura de la fase de • Ingeniería de Requisitos de Sistemas Embebidos Estructura en torno a Categorías y Sub-categorías que abordan los requerimientos funcionales y no funcionales del sistema según su origen y condición. Su espectro de acción es la fase de ingeniería de requisitos por lo cual carece de todo tipo de actividades destinadas a la planificación, gestión, control y documentación del proyecto. Propone una metodología de • análisis y modelado de requerimientos funcionales y no funcionales con representación gráfica mediante diagramas UML y patrones COBRA. Aborda los requerimientos desde diversos enfoques y valida su consistencia Su espectro de acción es la fase de ingeniería de requisitos por lo cual carece de todo tipo de actividades destinadas a la planificación, gestión, control y documentación del proyecto. Tabla 2.2. a) TRABAJO FINAL DE LICENCIATURA EN SISTEMAS Carencias Esquema comparativo de modelos 9 JONATAN PONZO ESTADO DE LA CUESTIÓN CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. IEE 1074-2006 • • • Desarrollado por la IEEE, presenta una estructura sumamente completa basada en procesos, subprocesos y actividades que abarcan la totalidad de las fases de un proyecto de ingeniería de software. Se adapta a las necesidades y dimensiones de cada proyecto. Su éxito en el ámbito de la ingeniería de software esta ampliamente comprobado. Tabla 2.2. b) Esquema TRABAJO FINAL DE LICENCIATURA EN SISTEMAS • Su espectro de acción es la Ingeniería de software por lo cual carece del enfoque necesario para satisfacer las necesidades de proyectos destinados al control de Robots Autónomos mediante sistemas embebidos. comparativo de modelos 10 JONATAN PONZO DESCRIPCION DEL PROBLEM A CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 3. DESCRIPCIÓN DEL PROBLEMA A lo largo de este capitulo se presenta y describe el problema que motiva a la realización de este trabajo final de licenciatura, haciendo hincapié en el análisis de las ventajas que supone la inserción de la Robótica Autónoma en la industria, la carencia actual de metodologías que permitan llevar a cabo dicha tarea de manera estandarizada y como ésta carencia impacta en la calidad de las soluciones implementadas actualmente. Inicialmente se identifica el problema de investigación (sección 3.1) para luego presentar el problema abierto (sección 3.2). Finalmente se concluye con un sumario de investigación (sección 3.3). 3.1. IDENTIFICACIÓN DEL PROBLEMA DE INVESTIGACIÓN Desde sus inicios, las empresas e industrias han buscado incrementar sus niveles de productividad y elevar la calidad de sus productos y servicios de diversas maneras, entre ellas, mediante la inserción de nuevas tecnologías en sus procesos productivos. Este fenómeno puede suponer una reducción en los costos y tiempos de producción, un incremento en los niveles de control sobre dichos procesos y hasta un incremento en la calidad de los productos o servicio elaborados. A fin de llevar a cabo exitosamente este proceso es imperativa la utilización de metodologías y estándares que permitan asegurar el cumplimiento de los objetivos establecidos en un proyecto de manera controlada, eficaz y eficiente. Este comportamiento puede observarse con un alto grado de madurez en disciplinas afines como la Ingeniería de Software, la cual cuenta con diversos estándares y metodologías de probado éxito en su base de conocimiento como son el Standard IEEE 1074 o el modelo de procesos de software MoProSoft. Estos últimos asisten no solo en las fases inherentes al diseño e implementación de los sistemas desde el punto de vista técnico sino también a la planificación y gestión integral de los proyectos. En el ámbito de los Sistemas Embebidos, sin embargo, se identifica una carencia respecto de este tipo de conocimiento lo cual provoca que los profesionales de sistemas o áreas afines, tiendan a desarrollar soluciones focalizando su labor únicamente en las cuestiones técnicas y sin contemplar actividades de planificación y gestión de los proyectos que generan. De esta manera es factible que deban enfrentar diversos tipos de dificultades durante la ejecución de los mismos y que éstas deriven en comportamientos indeseados como la utilización ineficiente de los recursos disponibles (materiales, humanos y económicos), en la generación de un producto final que muchas veces no satisface o satisface de manera parcial los requerimientos del cliente, entre otros. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 11 JONATAN PONZO DESCRIPCION DEL PROBLEM A CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 3.2. PROBLEMA ABIERTO El problema abierto que se plantea surge de la identificación de una carencia en el cuerpo de conocimiento de los SE, de un modelo de gestión integral de proyectos destinados al control de Robots Autónomos Móviles basados en Arquitecturas de Sistemas Embebidos, que permita al Profesional de Sistemas contribuir en el proceso de inserción de la tecnología en la industria (preferentemente PyMEs) mediante el desarrollo e implementación de soluciones que aseguren la satisfacción de las necesidades del cliente alcanzando niveles de eficiencia y calidad apropiados para la disciplina. 3.3. SUMARIO DE INVESTIGACIÓN De lo expuesto anteriormente surge el siguiente interrogante que guía la investigación: ¿Es posible generar un modelo de gestión integral de proyectos destinados al control de Robots Autónomos Móviles utilizando sistemas embebidos mediante la combinación y adaptación de modelos y estándares de sistemas informáticos seleccionados del cuerpo de conocimiento de la Ingeniería de Software y los Sistemas Embebidos. En caso de que la respuesta a la pregunta anterior sea afirmativa, ¿Es factible la implementación exitosa del modelo generado en un caso de prueba representativo de una problemática real? TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 12 JONATAN PONZO SOLUCION CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 4. SOLUCION A lo largo de este capitulo se propone un modelo de gestión integral de proyectos destinados al control de Robots Autónomos Móviles mediante Sistemas Embebidos que busca cubrir la carencia identificada. 4.1. MODELO DE GESTION INTEGRAL DE PROYECTOS DESTINADOS AL CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. A continuación se realiza una introducción general al modelo propuesto (sección 4.1.1), se mencionan y justifican sus principales influencias (sección 4.1.2) y se describe su estructura principal (sección 4.1.3). En la sección 4.1.4, se realiza un desmembramiento de cada sub-proceso en torno a las actividades, técnicas y documentos que lo componen y por ultimo se realiza una descripción detallada de cada uno de los procesos, subprocesos y actividades propuestas y del procedimiento de implementación del nuevo modelo. 4.1.1. GENERALIDADES El modelo propuesto surge de la adaptación de los subprocesos y actividades existentes en el standard IEEE 1074-2006 [IEEE, 2006] a las características y necesidades de un proyecto de SE; especializa su fase de ingeniería de requerimientos mediante la inserción de dos modelos fuertemente orientados a esta disciplina e incorpora y adapta el concepto de sugerencia de técnicas y documentos de salida para cada subproceso, propuesto por la guía de estudio correspondiente a la carrera de Lic. en Sistemas de la UNLa titulada “Ciclo de Vida de Software, Proceso Software y Plan de Actividades” [García Martínez,2009]. 4.1.2. INFLUENCIAS Los modelos seleccionados para contribuir a la composición del modelo a proponer fueron mencionados y brevemente descriptos en el capitulo 3. Estos son “Modelo de Requisitos para Sistemas Embebidos”, “Goal-Oriented Patterns for UML-Based Modeling of Embedded Systems Requirements” y “Software Engineering Standards Committee of the IEEE Computer Society 1074-2006”. Además de estos modelos y a modo de complementar la propuesta del standard IEEE 1074-2006, se referencia una la guía de estudio correspondiente a la carrera de Lic. en Sistemas de TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 13 JONATAN PONZO SOLUCION CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. la UNLa titulada “Ciclo de Vida de Software, Proceso Software y Plan de Actividades ” la cual sugiere diversas técnicas a utilizar y documentos a elaborar a lo largo de las actividades propuestas en cada subproceso [García Martínez, 2009]. El primer modelo seleccionado, “Modelo de Requisitos para Sistemas Embebidos”, se inserta en el proceso “Desarrollo” del nuevo modelo generado, particularmente en el subproceso “Requisitos” a fin de adaptar y especializar esta fase en el dominio de los sistemas embebidos y ofrecer al profesional una procedimiento estandarizado y sumamente eficaz que permita llevar a cabo exitosamente la fase de ingeniería de requisitos. El mismo fue considerado por introducir una metodología sistemática basada en categorías y subcategorías que busca integrar y relacionar los requisitos de los sistemas embebidos desde diferentes contextos y proponer además, pautas para el análisis de los mismos desde la fase de captura hasta la fase de especificación, logrando su operacionalización y la construcción de un modelo conceptual [Palacio y Giraldo, 2008]. El segundo modelo, “Goal-Oriented Patterns for UML-Based Modeling of Embedded Systems Requirements” se integra de igual manera que el primero, en el proceso “Desarrollo” y subproceso “Requisitos”. El objetivo es poner a disposición una herramienta de igual nivel de eficacia que la anteriormente mencionada, que permita al profesional optar por la mas conveniente según sean las características y necesidades del proyecto en curso. Este modelo fue considerado por incorporar una técnica de modelado y representación gráfica mediante la utilización de Patrones COBRA y Diagramas UML capaz de abordar los requerimientos funcionales y no funcionales de un sistema y refinarlos en torno a las restricciones existentes [Heather et al, 2007] de manera sumamente efectiva . Ambas técnicas por si solas abarcan en su totalidad la fase de IR pero son insuficientes para brindar soporte a las fases previas y posteriores a la misma. Es aquí donde el standard IEEE 1074-2006 adquiere protagonismo como columna vertebral del nuevo modelo, con el objetivo de guiar al profesional de sistemas a lo largo de todo el proyecto y actuar de base estructural tanto para las modelos anteriormente mencionados e integrados, como para cualquier otro que pueda ser desarrollado con el objetivo de asistir en cualquier etapa del proyecto. Su estructura en torno a procesos, subprocesos y actividades -que van desde la concepción del Ciclo de vida hasta el Retiro del Producto- se considera adaptable a las necesidades que puedan desprenderse de un proyecto enfocado al control de Robots Autónomos Móviles basados en SE. Por ultimo y de manera complementaria, la adopción del concepto de técnicas sugeridas, propuesto originalmente en el marco del standard IEEE 1074 en la guía de estudio correspondiente a la carrera de Lic. en Sistemas de la UNLa titulada “Ciclo de Vida de Software, Proceso Software y Plan de Actividades ” [García Martínez, 2009] contribuye a la selección de la técnica apropiada para cada actividad o bien brinda una guía o referencia. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 14 JONATAN PONZO SOLUCION CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 4.1.3. ESTRUCTURA GENERAL DEL MODELO PROPUESTO El modelo toma como columna vertebral la estructura propuesta por el standard IEEE 1074-2006 [IEEE, 2006], es decir, se organiza en torno a procesos y subprocesos que buscan cubrir todos las fases correspondientes a un proyecto dedicado al control de Robots Autónomos Móviles basados en Arquitecturas de Sistemas Embebidos. A continuación se presenta la estructura general del modelo IEEE 2006 adaptada y complementada para satisfacer las necesidades del tipo de proyecto mencionado anteriormente. 4.1.3.1. Procesos de Gestión del Proyecto 4.1.3.1.1 Sub-proceso de Iniciación del proyecto 4.1.3.1.2 Sub-proceso de Planificación del proyecto 4.1.3.1.3 Sub-proceso de Monitoreo y Control 4.1.3.2. Proceso de Pre-Desarrollo 4.1.3.2.1 Sub-proceso de Exploración de Conceptos 4.1.3.2.2 Sub-proceso de Asignación del Sistema 4.1.3.3. Proceso de Desarrollo 4.1.3.3.1 Sub-proceso de Requisitos 4.1.3.3.2 Sub-proceso de Diseño 4.1.3.3.3 Sub-proceso de Implementación 4.1.3.4. Proceso de Post-Desarrollo 4.1.3.4.1 Sub-proceso de Instalación y Validación 4.1.3.4.2 Sub-proceso de Operación y Soporte 4.1.3.4.3 Sub-proceso de Mantenimiento 4.1.3.4.4 Sub-proceso de Retiro 4.1.3.5. Procesos Integrales del Proyecto 4.1.3.5.1 Subproceso de Evaluación 4.1.3.5.2 Sub-proceso de Gestión de la configuración 4.1.3.5.3 Sub-proceso de Desarrollo de Documentación 4.1.3.5.4 Sub-proceso de Formación 4.1.4. PROCESOS, SUB-PROCESOS, ACTIVIDADES, DOCUMENTOS DE SALIDA Y TÉCNICAS SUGERIDAS En esta sección se describe con mayor profundidad la estructura del modelo. Los procesos son desmembrados en torno a los subprocesos que los componen y se listan las actividades propuestas TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 15 JONATAN PONZO SOLUCION CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. para cada subproceso, los documentos de salida que se esperan obtener a partir de las mismas y las técnicas sugeridas para lograrlo. 4.1.4.1. Proceso de Gestión del Proyecto 4.1.4.1.1 Sub-proceso de Iniciación del proyecto Actividades: 4.1.4.1.1.1. Entendimiento del Negocio 4.1.4.1.1.2. Seleccionar un modelo de Ciclo de Vida 4.1.3.1.1.3. Realizar Estimaciones 4.1.3.1.1.4. Asignar Recursos 4.1.3.1.1.5. Definir Métricas 4.1.3.1.1.6. Determinar objetivos de Seguridad Documentación de Salida: ▪ Modelo de Ciclo de Vida Seleccionado ▪ Estimaciones del Proyecto ▪ Asignación de Recursos ▪ Métricas Definidas, Métodos de Análisis y Captura de las mismas ▪ Especificación de Objetivos de Seguridad Técnicas Sugeridas: ▪ Investigación documental. Entrevistas al cliente. ▪ Análisis de camino critico ▪ Diagrama PERT ▪ Diagrama Gantt ▪ Técnicas estadísticas y de Simulación (Metodo Montecarlo) ▪ Modelos empíricos de estimación de esfuerzo del Software(COCOMO, PUTNAM) 4.1.4.1.2. Sub-proceso de Planificación del proyecto Actividades: 4.1.4.1.2.1. Planificación de la Evaluación 4.1.4.1.2.2. Planificación de la Gestión de la Configuración 4.1.4.1.2.3. Planificación de la Transición (si se requiere) 4.1.4.1.2.4. Planificación de la Instalación 4.1.4.1.2.5. Planificación de la Documentación TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 16 JONATAN PONZO SOLUCION CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 4.1.4.1.2.6. Planificación del Entrenamiento 4.1.4.1.2.7. Planificación de la Gestión del Proyecto. 4.1.4.1.2.8. Planificación de la Integración 4.1.4.1.2.9. Planificación de la Gestión del Lanzamiento 4.1.4.1.2.10. Planificación del Mantenimiento 4.1.4.1.2.11. Planificación del Retiro Documentación de Salida: ▪ Plan de Evaluación ▪ Plan de Gestión de la Configuraciones ▪ Plan de Transición e Informe de Impacto ▪ Plan de Instalación ▪ Plan de Documentación ▪ Plan de Entrenamiento ▪ Plan de Gestión del Proyecto ▪ Plan de Integración ▪ Plan de Gestión del Lanzamiento ▪ Plan de Mantenimiento ▪ Plan de Retiro Técnicas sugeridas: ▪ WRS (Working Breakdown Structure) ▪ Diagramas PERT y Gantt 4.1.4.1.3. Sub-proceso de Seguimiento y Control del Proyecto Actividades: 4.1.4.1.3.1. Gestión de Riesgos 4.1.4.1.3.2. Gestión del Proyecto 4.1.4.1.3.3. Identificación de Mejoras al Ciclo de Vida 4.1.4.1.3.4. Almacenamiento de Registros 4.1.4.1.3.5. Recopilación y Análisis de Métricas 4.1.4.1.3.6. Cierre del Proyecto Documentación de Salida: ▪ Reporte de Riesgos ▪ Reporte de Gestión del Proyecto ▪ Reporte de Necesidades de mejora en el Ciclo de Vida ▪ Registro Histórico de Proyectos TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 17 JONATAN PONZO SOLUCION CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. ▪ Reporte de Métricas ▪ Información necesaria para el archivo del Proyecto al momento de su cierre Técnicas Sugeridas: ▪ Análisis de Riesgo técnico ◦ Modelización y Simulación Estática y Dinámica ◦ Prototipado ◦ Revisiones y Auditorías ▪ Análisis de Riesgo económico (Finanzas y Retorno de la Inversión) ▪ Análisis de Riesgo Operativo y de Soporte ▪ Análisis de Riesgo del Programa ◦ Análisis de camino critico CPM ◦ Técnicas de nivelación de recursos ▪ Análisis de riesgo del Hardware. Prototipos ◦ Modelo de ingeniería de requisitos ABC-BesoinsSEM • Categoría Descripción y caracterización de los agentes (disponibilidad, eficiencia, seguridad, confiabilidad ) 4.1.4.2 . Proceso de Pre-Desarrollo 4.1.4.2.1 Sub-proceso de Exploración de Conceptos Actividades: 4.1.4.2.1.1. Identificar ideas o necesidades. 4.1.4.2.1.2. Formular soluciones potenciales. 4.1.4.2.1.3. Conducir estudios de viabilidad. 4.1.4.2.1.4. Refinar y finalizar la idea o necesidad. Documentación de Salida: ▪ Informe preliminar de necesidades ▪ Informe de Soluciones potenciales. Análisis de beneficios y limitaciones ▪ Informe de Viabilidad ▪ Informe de Necesidades TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 18 JONATAN PONZO SOLUCION CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Técnicas Sugeridas: ▪ Técnicas de Adquisición de Conocimientos ▪ Análisis Económico (Coste/Beneficio) ▪ Análisis Técnico ▪ Análisis de Alternativos ▪ Técnicas de Modelización y Prototipado ▪ Diagramas de Flujos de Datos (DFD) 4.1.4.2.2. Sub-proceso de Asignación del Sistema Actividades: 4.1.4.2.2.1. Analizar las funciones del sistema. 4.1.4.2.2.2. Desarrollar la arquitectura del sistema. 4.1.4.2.2.3. Asignar los requisitos del Sistema Documentación de Salida: ▪ Descripción Funcional del Sistema ▪ Arquitectura del Sistema ▪ Requerimientos de Hardware del Sistema ▪ Requerimientos Funcionales del Sistema ▪ Requerimientos No Funcionales del Sistema ▪ Requerimientos de Interface del Sistema ▪ Requerimientos del entorno del Sistema Técnicas Sugeridas:. ▪ Técnicas de Modelización y Prototipado. ▪ Diagramas de Flujo de Datos (DFD). ▪ Modelo de Ingeniería de Requerimientos ABC-BESOINSSEM ▪ Patrones Orientados a Metas para Modelado UML de Requerimientos de Sistemas Embebidos 4.1.4.3. Proceso de Desarrollo 4.1.4.3.1. Sub-proceso de Requisitos Actividades: 4.1.4.3.1.1. Definir y desarrollar los requisitos del software 4.1.4.3.1.2. Definir y desarrollar los requisitos del hardware 4.1.4.3.1.3. Definir los requisitos del entorno 4.1.4.3.1.4. Definir los requisitos de interfaz TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 19 JONATAN PONZO SOLUCION CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 4.1.4.3.1.5. Integrar los requisitos Documentación de Salida: ▪ Informe preliminar de requisitos del sistema ▪ Especificación de requisitos de hardware ▪ Especificación de requisitos de interfaces y entorno ▪ Especificación de requisitos de software ▪ Especificación de requerimientos del sistema Técnicas Sugeridas: ▪ Técnicas orientadas a los procesos ◦ Modelo de ingeniería de requisitos ABC-Besoins-SEM ◦ Patrones Orientados a Metas para Modelado UML de Requerimientos de Sistemas Embebidos ◦ Análisis estructurado • Diagrama de flujos de datos DFD • Diccionario de datos DD ◦ SADT (Structured Analysis and Design Techniques) • Diagramas de transición de estados ◦ Actigramas o Diagramas de Actividades ▪ Técnicas formales de especificación ◦ Técnicas orientadas al estado • Tablas de decisión • Tablas de eventos • Tablas de transición • Mecanismos de estados finitos • Redes de Petri • Modelo de ingeniería de requisitos ABCBesoins-SEM ◦ Categoría Disponibilidad de objetos (estados, eventos) ◦ Categoría Selección de alternativas (modos y submodos de operación) ▪ Técnicas de prototipado TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 20 JONATAN PONZO SOLUCION CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 4.1.4.3.2. Sub-proceso de Diseño Actividades: 4.1.4.3.2.1. Realizar el diseño arquitectónico 4.1.4.3.2.2. Realizar el diseño de la base de datos (si aplica) 4.1.4.3.2.3. Selección de la Arquitectura de Hardware mas conveniente 4.1.4.3.2.4. Diseñar las interfaces 4.1.4.3.2.5. Realizar el diseño detallado Documentación de Salida: ▪ Diseño arquitectónico ▪ Diseño de la base de datos ▪ Diseño de las interfaces ▪ Diseño detallado Técnicas Sugeridas: ▪ Técnicas orientadas a los procesos ◦ Patrones COBRA para modelos UML y basados en Metas. ◦ Diagramas de Flujo ◦ Diseño estructurados Análisis de transformación ◦ Análisis de transacción ◦ Diagramas jerárquicos de procesos Warnier ◦ Diagramas de Chapin o Nassi-Schneiderman ▪ Diseño del dialogo de los interfaces ◦ Patrones COBRA para modelos UML y basados en Metas ◦ Diagramas de Flujo ◦ HIPO (Hierarchy Input Process Output) ◦ Diagramas de Chapin o Nassi-Schneiderman ▪ Técnicas Orientadas a los datos ◦ DFD ◦ Modelos lógicos y físicos de datos ◦ Diagramas jerárquicos Warnier ◦ Diagramas estructurados Jackson ◦ Diagramas de Flujo TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 21 JONATAN PONZO SOLUCION CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. ◦ Diagramas Entidad-Relacion ▪ Técnicas orientadas a los objetos ◦ UML ▪ Técnicas de diseño de bajo nivel ◦ Programación estructurada ◦ Diagramas arborescentes ◦ Diagramas de Chapin o Nassi-Schneiderman ◦ Diagramas jerarquicos Warnier ◦ Diagramas estructurados Jackson ▪ Técnicas de prototipado y refinamiento ▪ ANEXO I – Relevamiento de Hardware y ANEXO II – Matriz Comparativa (selección del hardware apropiado) 4.1.4.3.3. Sub-proceso de Implementación Actividades: 4.1.3.3.1. Configurar e integrar el hardware y las interfaces físicas 4.1.3.3.2. Crear el código fuente 4.1.3.3.3. Crear la Documentación operacional 4.1.3.3.4. Realizar la integración 4.1.3.3.5. Gestionar las versiones del Software Documentación de Salida: • Código fuente • Especificación de Software • Especificación de Hardware • Base de datos (si aplica) • Documentación operacional • Paquete del producto lanzado Técnicas Sugeridas: • Lenguajes de programación • Herramientas de versionado de software • Entornos de modelado de Bases de Datos • Entorno de Programación del hardware seleccionado TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 22 JONATAN PONZO SOLUCION CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 4.1.4.4. Proceso de Post-Desarrollo 4.1.4.4.1. Sub-proceso de instalación y Validación Actividades: 4.1.4.4.1.1. Ajustar parámetros del entorno 4.1.4.4.1.2. Configurar y adaptar interfaces con el entorno productivo y otros sistemas 4.1.4.4.1.3. Aceptar el producto en el ambiente operativo Documentación de Salida: ▪ Reporte de Instalación y operación del Sistema ▪ Reporte del estado de la configuración ▪ Informe de aceptación del software por parte del usuario 4.1.4.4.2. Sub-proceso de operación y soporte Actividades: 4.1.4.4.2.1. Operar el sistema 4.1.4.4.2.2. Proveer de asistencia técnica y consultas 4.1.4.4.2.3. Mantener el histórico de peticiones de soporte Documentación de Salida: ▪ Registro de Operaciones ▪ Registro de Anomalías ▪ Registro de Peticiones de Soporte 4.1.4.4.3. Sub-proceso de mantenimiento Actividades: 4.1.4.4.3.1. Identificación de necesidades de mejora del Software 4.1.4.4.3.2. Identificación de necesidades de mejora del Hardware y Entorno Configurable 4.1.4.4.3.3. Implementación de un método de reporte de problemas 4.1.4.4.3.4. Iteración del Ciclo de Vida Documentación de Salida: ▪ Sugerencia de mejoras al software ▪ Sugerencia de mejoras del hardware ▪ Reporte de anomalías ▪ Reporte de corrección de anomalías ▪ Recomendaciones de Mantenimiento TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 23 JONATAN PONZO SOLUCION CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 4.1.4.4.4. Sub-proceso de retiro Actividades: 4.1.4.4.4.1. Notificar al usuario 4.1.4.4.4.2. Conducir operaciones en paralelo (si aplica) 4.1.4.4.4.3. Retirar el sistema Documentación de Salida: ▪ Notificación oficial al usuario ▪ Registro de operaciones en paralelo ▪ Reporte de revisión Post-Operacion 4.1.4.5. Procesos Integrales del Proyecto 4.1.4.5.1. Subproceso de Evaluación Actividades: 4.1.4.5.1.1. Revisión de Conducta 4.1.4.5.1.2. Crear Matriz de Trazabilidad 4.1.4.5.1.3. Conducir Auditorías 4.1.4.5.1.4. Desarrollar Procedimientos de prueba 4.1.4.5.1.5. Crear datos de prueba 4.1.4.5.1.6. Ejecutar pruebas 4.1.4.5.1.7. Reportar Resultados de la evaluación 4.1.4.5.1.8. Confirmar Acreditación de Seguridad Documentación de Salida: ▪ Resultados de revisión en-proceso ▪ Reporte de revisión Post-implementacion ▪ Recomendación de mejoras en los procesos ▪ Reporte de estado de la gestión ▪ Reporte de análisis de trazabilidad ▪ Reporte de cambios en la asignación del sistema ▪ Matriz de Trazabilidad ▪ Reporte de Auditoría ▪ Plan de Prueba (Procedimientos y datos) ▪ Sumario de Pruebas ▪ Reporte de Evaluación TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 24 JONATAN PONZO SOLUCION CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Técnicas Sugeridas: ▪ Técnicas de prueba de caja blanca ◦ Cobertura de sentencias ◦ Cobertura de decisión o ramificación ◦ Cobertura de condición ◦ Cobertura de decisión/condición ◦ Cobertura de condición múltiple ▪ Técnicas de prueba de caja negra ◦ Partición de equivalencias ◦ Análisis de valores limites ◦ Gráficos causa-efecto ◦ Conjetura de errores ▪ Revisiones formales ▪ Auditorías 4.1.4.5.2 Sub-proceso de gestión de la configuración Actividades: 4.1.4.5.2.1. Realizar la identificación de la configuración 4.1.4.5.2.2. Realizar el control de la configuración 4.1.4.5.2.3. Realizar la información del estado de la configuración Documentación de Salida: ▪ 4.1.4.5.3. Reporte de Identificación de la Configuración Sub-proceso de desarrollo de Documentación Actividades: 4.1.4.5.3.1. Implementar la Documentación 4.1.4.5.3.2. Producir y Distribuir la Documentación Documentación de Salida: ▪ Documentación entregable ▪ Documentación interna del proyecto 4.1.4.5.4. Sub-proceso de Formación Actividades: 4.1.4.5.4.1. Desarrollar los materiales de formación 4.1.4.5.4.2. Validar el programa de formación 4.1.4.5.4.3. Implementar el programa de formación TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 25 JONATAN PONZO SOLUCION CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Documentación de Salida: ▪ Manual de procedimientos y materiales de entrenamiento 4.1.5. DESCRIPCIÓN Y OBJETIVOS DE LOS PROCESOS, SUB-PROCESOS Y ACTIVIDADES PROPUESTAS A continuación se describen los objetivos de los procesos, subprocesos y actividades del modelo. 4.1.5.1. PROCESO DE GESTIÓN DEL PROYECTO En este proceso se sugieren actividades relacionadas a la iniciación, planificación y control del proyecto a lo largo de su ciclo de vida. Las mismas no presentan un orden cronológico de ejecución sino que deben ser asignadas al Ciclo de Vida Seleccionado. Este proceso sera descripto en mayor detalle en la sección 4.1.6. 4.1.5.1.1. Sub-proceso de Iniciación del proyecto 4.1.5.1.1.1. Entendimiento del Negocio Mediante esta actividad se describen y analizan las condiciones inherentes al negocio del cual el sistema formara parte, focalizando en los motivos que alientan y justifican la realización del proyecto. 4.1.5.1.1.2. Seleccionar un modelo de Ciclo de Vida En esta actividad se establece la columna vertebral del proyecto mediante la selección de un modelo de ciclo de vida y la elaboración a partir del mismo del Ciclo de Vida del proyecto, un mapa de actividades, una secuencia de actividades y un mapa de documentos. Para conocer con mayor detalle este proceso referirse a la sección 4.1.6. 4.1.5.1.1.3. Realizar Estimaciones Con base en la descripción de los requisitos del producto a desarrollar, se realizan estimaciones del costo y esfuerzo necesarios para la conclusión exitosa del proyecto. El esfuerzo se obtiene de la estimación expresada en cantidad de horas necesarias para llevar a cabo una actividad por parte de uno o mas recursos asignados. El costo surge de la multiplicación del esfuerzo estimado y la remuneración por hora correspondiente al recurso asignado. Como resultado de esta actividad se obtiene un cuadro de estimación en el cual se listan las fases y actividades del ciclo de vida del proyecto y la estimaciones de costo y tiempo requerido para la realización de cada uno de ellas. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 26 JONATAN PONZO SOLUCION CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 4.1.5.1.1.4. Asignar Recursos En esta actividad se estiman los recursos materiales y humanos necesarios para la realización del proyecto y sus costos. 4.1.5.1.1.5. Definir Métricas En esta sección se describen las métricas que serán recogidas a lo largo del proyecto y los métodos propuestos para hacerlo. 4.1.5.1.1.6. Determinar objetivos de Seguridad: Mediante esta actividad se identifican objetivos de seguridad en el proyecto. 4.1.5.1.2. Sub-proceso de Planificación del proyecto 4.1.5.1.2.1. Planificación de la Evaluación A través de esta actividad se establecen las actividades y recursos necesarios para la evaluación eficaz del producto desarrollado y los procesos utilizados para hacerlo. En este proceso se deben establecer formalmente los criterios de aceptación del sistema por parte del cliente. 4.1.5.1.2.2. Planificación de la Gestión de la Configuración En esta actividad se planifican las acciones y recursos necesarios para la gestión de la Configuración del Sistema, focalizando en deberes y responsabilidades de los miembros de la organización respecto de los procesos a ejecutar y registros a generar. 4.1.5.1.2.3. Planificación de la Transición (si se requiere) Esta actividad aplica únicamente cuando el sistema a generar remplazará a otro sistema existente. De ser así, se planifican las actividades y recursos necesarios para garantizar una transición suave y exitosa. Se establecen deberes y responsabilidades, cronogramas, riesgos y requisitos de seguridad. 4.1.5.1.2.4. Planificación de la Instalación En esta actividad se planifican los recursos y procedimientos necesarios para llevar a cabo la instalación del sistema en el entorno productivo. 4.1.5.1.2.5. Planificación de la Documentación Mediante esta actividad se planifican los documentos entregables y de uso interno, a desarrollar durante el proyecto. Se asignan responsabilidades y plazos y se establecen cronogramas. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 27 JONATAN PONZO SOLUCION CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 4.1.5.1.2.6. Planificación del Entrenamiento Esta actividad consta de la planificación de las actividades y recursos necesarios para el entrenamiento tanto del personal afectado a la realización del proyecto como del usuario final del producto entregado. 4.1.5.1.2.7. Planificación de la Gestión del Proyecto Esta actividad requiere la recopilación y síntesis de una gran cantidad de información. Deberá detallar la organización del proyecto y asignar responsabilidades. Sugerir estándares, metodologías y herramientas para la configuración, gestión de la calidad, seguridad, evaluación, formación y documentación. Definirá los procedimientos para la programación, seguimiento y presentación de informes. Dirigirá consideraciones tales como la planificación empresarial, el entorno, aprobaciones, certificaciones, participación de los usuarios, subcontratación y la seguridad entre otras. Esta actividad incluirá la planificación del soporte, el informe de problemas, gestión de riesgos, el cumplimiento de la seguridad, y la jubilación y retiro del producto. 4.1.5.1.2.8. Planificación de la Integración Esta actividad aplica cuando el sistema debe ser integrado con un sistema existente. En tal caso se planifican las actividades y recursos necesarios para garantizar una integración exitosa. Se establecen deberes y responsabilidades, cronogramas y se identifican riesgos y requisitos de seguridad. 4.1.5.1.2.9. Planificación de la Gestión del Lanzamiento Mediante esta actividad se planifica la transición del sistema del entorno de desarrollo y prueba al productivo. Se asignan deberes y responsabilidades, se establecen plazos, procesos y técnicas requeridas. 4.1.5.1.3. Sub-proceso de Seguimiento y Control del Proyecto 4.1.5.1.3.1. Gestión de Riesgos Esta actividad busca identificar potenciales riesgos técnicos, comerciales y administrativos en el proyecto y elaborar planes de contingencia que disminuyan el impacto de su ocurrencia. 4.1.5.1.3.2. Gestión del Proyecto Mediante esta actividad se debe controlar la ejecución del proyecto comparando las estimaciones realizadas con los valores reales del proyecto. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 28 JONATAN PONZO SOLUCION CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 4.1.5.1.3.3. Identificación de Mejoras al Ciclo de Vida A través de esta actividad y con base en métricas relevadas a lo largo del proyecto, se identifican y proponen mejoras en los procesos utilizados en el Ciclo de Vida del Proyecto. 4.1.5.1.3.4. Almacenamiento de Registros Se almacenan registros resultantes en todos los procesos y subprocesos del Ciclo de Vida del Proyecto para la composición y alimentación del registro histórico de proyectos. El mismo servirá de base para el proceso de estimación en proyectos futuros. 4.1.5.1.3.5. Recopilación y Análisis de Métricas Se recopilan las métricas definidas en la planificación, en momentos claves preestablecidos en el proyecto, se analizan las mismas y se planifican acciones correctivas de ser necesario. 4.1.5.1.3.6. Cierre del Proyecto Se concluye el proyecto, se archivan los registros obtenidos y se notifica a las partes involucradas. 4.1.5.2. PROCESO DE PRE-DESARROLLO El grupo de actividades del proceso de pre-desarrollo se enfocan en la exploración y asignación de funcionalidades y requerimientos del sistema. 4.1.5.2.1. Sub-proceso de Exploración de Conceptos Este sub-proceso contiene actividades referentes a la identificación de necesidades y planteamiento de soluciones en primera instancia. 4.1.5.2.1.1. Identificar ideas o necesidades A partir de los requerimientos planteados por el cliente, se identifican las principales ideas y necesidades del proyecto. 4.1.5.2.1.2. Formular soluciones potenciales Con base en las ideas y necesidades identificadas se elaboran soluciones potenciales. 4.1.5.2.1.3. Conducir estudios de viabilidad En esta actividad se conducen estudios de viabilidad sobre las soluciones potenciales planteadas. Se evalúan tanto los costos, beneficios y riesgos técnicos como comerciales y administrativos de la solución propuesta. Se evalúa el estudio de viabilidad y se selecciona la solución mas conveniente. 4.1.5.2.1.4. Refinar y Finalizar la idea o necesidad Seleccionada la solución, se refina y completa la descripción de la idea o necesidad del proyecto. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 29 JONATAN PONZO SOLUCION CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 4.1.5.2.2. Sub-proceso de Asignación del Sistema Este sub-proceso es el nexo entre la Exploración de Conceptos y la Definición de Requerimientos del sistema. 4.1.5.2.2.1. Analizar las funciones del sistema Con base en la información obtenida a partir de la actividad de Refinación y Finalización de la Idea o Necesidad, se identifican y analizan las funciones del sistema contemplando requerimientos funcionales, no funcionales y restricciones. 4.1.5.2.2.2. Desarrollar la arquitectura del sistema: A partir del análisis de las funcionalidades del sistema se desarrolla la arquitectura básica del sistema. 4.1.5.2.2.3. Asignar los requisitos del Sistema: Mediante esta actividad y con base en la arquitectura del sistema, se categorizan las funcionalidades del sistema identificadas en torno los requerimientos que suponen, es decir, requerimientos de Software, Hardware o Entorno. 4.1.5.3. PROCESO DE DESARROLLO En este proceso se presentan las actividades referentes al modelado de requisitos, diseño e implementación de la solución. 4.1.5.3.1. Sub-proceso de Requisitos En este sub-proceso se presentan las actividades relacionadas al modelado de requisitos del sistema a desarrollar. 4.1.5.3.1.1. Definir y desarrollar los requisitos del software: Mediante esta actividad y con base en la asignación de requisitos se definen los requisitos de software del proyecto. 4.1.5.3.1.2. Definir y desarrollar los requisitos del hardware Mediante esta actividad y con base en la asignación de requisitos se definen los requisitos de hardware del proyecto. 4.1.5.3.1.3. Definir los requisitos del entorno Mediante esta actividad y con base en la asignación de requisitos se definen los requisitos de entorno del proyecto. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 30 JONATAN PONZO SOLUCION CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 4.1.5.3.1.4. Definir los requisitos de interfaz Mediante esta actividad y con base en la asignación de requisitos se definen los requisitos de Interfaz del proyecto tanto con el usuario y el entorno como con otros sistemas. 4.1.5.3.1.5. Integrar los requisitos En esta actividad se analizan e integran los requisitos definidos anteriormente y se evalúan nuevos requerimientos surgidos durante este proceso como producto de la integración. 4.1.5.3.2. Sub-proceso de Diseño En este sub-proceso se definen las actividades inherentes al diseño arquitectónico y detallado del sistema. 4.1.5.3.2.1. Realizar el diseño arquitectónico Esta actividad transforma las especificaciones de requerimientos y la arquitectura del sistema en conceptos de diseño de alto nivel. El resultado de la misma es el diseño arquitectónico del software y hardware del sistema, con distintos niveles de abstracción. 4.1.5.3.2.2. Realizar el diseño de la base de datos (si aplica) Si el sistema prevé la utilización de una base de datos, en esta actividad debe ser diseñada. 4.1.5.3.2.3. Selección de la Arquitectura de Hardware mas conveniente. Esta actividad consta de la selección de la arquitectura de hardware mas conveniente a partir de la especificación de requisitos de hardware desarrollada. 4.1.5.3.2.4. Diseñar las interfaces El objetivo de esta actividad es el diseño de las interfaces del sistema ya sea con el entorno, el usuario u otros sistemas. 4.1.5.3.2.5. Realizar el diseño detallado En esta actividad se refina el diseño arquitectónico disminuyendo el nivel de abstracción empleado en cada componente del sistema. Como resultado de esta actividad, las estructuras de datos y algoritmos son especificadas, al igual que los módulos de hardware y su integración. 4.1.5.3.3. Sub-proceso de Implementación Durante este proceso se presentan las actividades necesarias para transformar el diseño detallado en un sistema compuesto por hardware y software integrado. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 31 JONATAN PONZO SOLUCION CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 4.1.5.3.3.1. Configurar e integrar el hardware y las interfaces físicas Esta actividad sugiere el ensamblado del hardware y la integración de las interfaces físicas en la estructura principal del sistema. 4.1.5.3.3.2. Crear el código fuente Mediante esta actividad se genera el código fuente del programa. 4.1.5.3.3.3. Crear la Documentación operacional Durante esta actividad se genera la documentación necesaria para la instalación, operación y mantenimiento del sistema implementado. 4.1.5.3.3.4. Realizar la integración Esta actividad prevé la transformación del código fuente en una unidad ejecutable y su integración en el hardware ensamblado. 4.1.5.3.3.5. Gestionar las versiones del Software En caso de existir distintas versiones del software desarrollado, esta actividad prevé la compilación, nomenclatura y documentación de las mismas. 4.1.5.4. PROCESO DE POST-DESARROLLO Este proceso contiene el conjunto de actividades necesarias para conducir la instalación, operación, mantenimiento y eventual retiro del sistema. 4.1.5.4.1. Sub-proceso de instalación Mediante este sub-proceso se proponen las actividades necesarias para llevar a cabo exitosamente el proceso de instalación del sistema desarrollado en el entorno productivo. 4.1.5.4.1.1. Ajustar parámetros del entorno Mediante esta actividad y a partir del sistema ensamblado y la especificación de requisitos del entorno, se establecen las condiciones necesarias para el entorno de prueba. 4.1.5.4.1.2. Configurar y adaptar interfaces con el entorno productivo y otros sistemas Establecidas las condiciones del entorno, se ajustan las interfaces físicas del sistema para un despeño óptimo. 4.1.5.4.1.3. Aceptar el producto en el ambiente operativo Esta actividad consiste en el análisis de la información provista por el reporte de Instalación y Operación del Sistema y el reporte de Evaluación del Sistema y su contraste con las condiciones de TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 32 JONATAN PONZO SOLUCION CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. aceptación del usuario establecidas, a fin de determinar que el producto construido es el correcto. En esta actividad se contempla la participación del usuario durante la operación del sistema a fin de que, concluida la misma y bajo las condiciones adecuadas, el producto sea aceptado. La aceptación debe expresarse formalmente por escrito . 4.1.5.4.1.4. Sub-proceso de operación y soporte Este grupo de actividades supone la asistencia técnica al usuario durante el periodo en el cual el mismo opera el sistema por primera vez. 4.1.5.4.1.5. Operar el sistema Durante esta actividad, se opera el sistema siguiendo las instrucciones provistas en el manual de operación. Los resultados obtenidos son registrados para su utilización en los procesos de sugerencia de mejoras y en el Reporte de Instalación y Operación del Sistema. 4.1.5.4.1.6. Proveer asistencia técnica y consultas: Brindar asistencia técnica y proveer respuestas a cualquier consulta que provenga del usuario. 4.1.5.4.1.7. Mantener el histórico de peticiones de soporte: A través de esta actividad se registran todas las peticiones de registro efectuadas a lo largo del proyecto. 4.1.5.4.2. Sub-proceso de mantenimiento Este sub-proceso se compone de las actividades requeridas para la identificación y corrección de anomalías y la implementación de mejoras en el sistema. 4.1.5.4.2.1. Identificación de necesidades de mejora del Software lo largo de esta actividad y con base en el Reporte de Instalación del Sistema y los datos entregados por la metodología de Reporte de Problemas, se identifican las necesidades de mejora del Software. 4.1.5.4.2.2. Identificación de necesidades de mejora del Hardware y Entorno Configurable A lo largo de esta actividad y con base en el Reporte de Instalación del Sistema y los datos entregados por la metodología de Reporte de Problemas, se identifican las necesidades de mejora del Hardware y Entorno configurable. 4.1.5.4.2.3. Implementación de un método de reporte de problemas Esta actividad prevé la implementación de una metodología de reporte de problemas de cualquier índole y origen a lo largo del proyecto. Es posible la sugerencia de soluciones potenciales a los TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 33 JONATAN PONZO SOLUCION CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. problemas detectados así como también de mejoras. Cualquier corrección o mejora implementada debe ser registrada para futuras consideraciones. 4.1.5.4.2.4. Iteración del Ciclo de Vida: Los registros provistos por la Metodología de Reporte de Problemas, en conjunto con las sugerencias de mejora del Software, Hardware y entorno configurable son la base de la iteración del Ciclo de Vida del Proyecto a partir del Subproceso Exploración de Conceptos. Esta actividad busca controlar de manera certera las tareas de corrección de los problemas identificados a fin de asegurar y registrar su concreción. 4.1.5.4.3. Sub-proceso de retiro Este grupo de actividades contempla las tareas necesarias para el retiro del sistema ya sea bien por el cese de las operaciones o por el remplazo del mismo por una versión nueva o actualizada. 4.1.5.4.3.1. Notificar al usuario Esta actividad consta de la notificación formal a los usuarios internos y externos del sistema que el mismo sera retirado de servicio parcial o prontamente. Se deben proveer fechas exactas a fin de tomar los recaudos necesarios que permitan evitar impactos negativos no deseados en el normal funcionamiento de la organización. 4.1.5.4.3.2. Conducir operaciones en paralelo (si aplica) Si el sistema sera reemplazado por uno nuevo o una versión actualizada del mismo, se debe planificar la operación simultanea temporal de ambos (el sistema nuevo y el sistema a retirar) a fin de garantizar una transición segura y exitosa. 4.1.5.4.3.3. Retirar el sistema Esta actividad supone la remoción y archivo del sistema en concordancia con el Plan de Retiro previsto. 4.1.5.5. PROCESOS INTEGRALES DEL PROYECTO Este proceso supone las actividades necesarias para la finalización exitosa y el aseguramiento de la calidad del proyecto. 4.1.5.5.1. Subproceso de Evaluación Este subproceso contiene las actividades destinadas a verificar técnicamente el sistema y auditar los procesos utilizados a lo largo del proyecto. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 34 JONATAN PONZO SOLUCION CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 4.1.5.5.1.1. Conducir Revisiones Diferentes tipos de revisiones son realizadas a lo largo del proyectos. Estas pueden pertenecer a las siguientes categorías: 4.1.5.5.1.1.1. Revisiones Técnicas Destinadas a detectar y corregir errores en las etapas preliminares de requisitos y diseño, codificación e implementación y prueba del sistema. 4.1.5.5.1.1.2. Revisiones Gerenciales Tienen por objetivo asegurar el progreso del proyecto, un correcto uso de los recursos y recomendar acciones correctivas. 4.1.5.5.1.1.3. Inspecciones Tienen por objetivo detectar e identificar defectos en el producto y controlar su corrección. 4.1.5.5.1.1.4. “Walkthroughs” Tienen por objetivo detectar defectos de un producto, examinar alternativas y generar un foro de aprendizaje. 4.1.5.5.1.2. Crear Matriz de Trazabilidad La matriz de Trazabilidad busca asegurar que todas las requisitos funcionales y no funcionales serán evaluados en al menos 1 caso de prueba. 4.1.5.5.1.3. Conducir Auditorías Si bien es posible y aconsejable realizar auditorías internas complementarias, las auditorías deben ser efectuadas por examinadores independientes al proyecto y preferentemente a la organización. Su propósito principal es el relevamiento y revisión de los productos desarrollados y los procesos utilizados a lo largo del proyecto a fin de evaluar su conformidad ante normas internas o externas ya sean de seguridad, calidad, etc., o bien ante cualquier tipo de acuerdo que pudiere existir con el cliente. 4.1.5.5.1.4. Desarrollar Procedimientos de prueba Mediante esta actividad se desarrollan los procedimientos de prueba para los distintos niveles del sistema (pruebas unitarias, de integración, de aceptación, de regresión y sistema). Se debe especificar el tipo de prueba (caja blanca o negra), los ítems a evaluar, los datos de prueba a utilizar, los resultados esperados, los requerimientos de entorno y los procedimientos a seguir para llevar a cabo las pruebas. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 35 JONATAN PONZO SOLUCION CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 4.1.5.5.1.5. Crear datos de prueba A través de esta actividad y con base en en las especificaciones de requerimientos, el diseño detallado del sistema y el código fuente, se construyen los datos necesarios para llevar a cabo los diversos procedimientos de prueba. En caso de tratarse de pruebas de regresión, se requerirá la información correspondiente a las evaluaciones fallidas que motivaron su realización y los aportes surgidos de la experiencia de los usuarios. 4.1.5.5.1.6. Ejecutar pruebas Mediante esta actividad se configura el entorno de evaluación y se llevan a cabo los procedimientos descriptos en los casos de prueba, utilizando los datos generados. Esta actividad puede ser iterativa y realizada en diversas etapas del ciclo de vida del proyecto según se considere necesario. La conclusión exitosa de la prueba estará determinada por la coincidencia de los valores esperados y los valores obtenidos en las pruebas y bajo el marco de la especificación de criterios de aprobación establecida. 4.1.5.5.1.7. Reportar Resultados de la evaluación Mediante esta actividad se presentan los resultados de los procedimientos de prueba ejecutados. 4.1.5.5.1.8. Confirmar Acreditación de Seguridad Mediante esta actividad el sistema obtiene la autorización formal para operar en el entorno productivo. Para ello, totalidad de la documentación del proyecto debe ser verificada y aprobada por escrito por una autoridad de la organización, capaz de asumir la responsabilidad por los potenciales riesgos que puedan surgir durante la operación del sistema. 4.1.5.5.2. Sub-proceso de gestión de la configuración Este sub-proceso identifica los componentes del sistema desarrollado y asiste tanto en su control como en la generación de informes de situación destinados a las áreas gerenciales y financieras de la organización. 4.1.5.5.2.1. Realizar la identificación de la configuración Mediante esta actividad se debe identificar la configuración de todos los productos del proyecto ya sean entregables o no, técnicos o documentales. 4.1.5.5.2.2. Realizar el control de la configuración A través de esta actividad se realiza el control de la configuración de los productos identificados acorde a lo establecido en el Ciclo de Vida del Proyecto. Los cambios realizados en los productos identificados deben ser debidamente registrados. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 36 JONATAN PONZO SOLUCION CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 4.1.5.5.2.3. Realizar la información del estado de la configuración Mediante esta actividad y con base en la información provista por el proceso de identificación y control de la configuración y el Reporte de Cambios Control de Cambios, se genera un Informe de Estado de la Configuración del Sistema 4.1.5.5.3. Sub-proceso de desarrollo de Documentación Este subproceso prevé el diseño, implementación, edición, distribución y mantenimiento de la documentación técnica y procedimental necesarias tanto para los usuarios como los desarrolladores del sistema. 4.1.5.5.3.1. Implementar la Documentación Esta actividad incluye el diseño, elaboración y mantenimiento de la documentación. 4.1.5.5.3.2. Producir y Distribuir la Documentación Elaborada la documentación, se debe producir y distribuir la misma entre sus usuarios. Esta puede ser presentada en formato digital, escrito o cualquier otro medio de presentación según la audiencia lo requiera. 4.1.5.5.4. Sub-proceso de Formación A lo largo de este proceso se presentan las actividades necesarias para conducir las tareas de formación de recursos y usuarios del sistema. 4.1.5.5.4.1. Desarrollar los materiales de formación Esta actividad consta de la identificación y revisión de los materiales e información disponibles, pertinentes a los objetivos de entrenamiento. Se prevé el desarrollo de manuales y materiales necesarios para llevar a cabo las actividades de entrenamiento. Los instructores deber revisar el material de formación y desarrollar presentaciones. 4.1.5.5.4.2. Validar el programa de formación Esta actividad consiste en la presentación del entrenamiento por parte de los instructores, a una clase compuesta de evaluadores, utilizando los manuales y materiales desarrollados en detalle. El objetivo de la actividad es la validación de la exposición y el material elaborado antes de su utilización. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 37 JONATAN PONZO SOLUCION CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 4.1.5.5.4.3. Implementar el programa de formación Esta actividad contempla la provisión de los materiales y la locación necesarios para el entrenamiento y la ejecución del mismo en concordancia con las pautas establecidas en el Plan de Entrenamiento. 4.1.6 PROCEDIMIENTO DE IMPLEMENTACIÓN DE LA SOLUCIÓN En esta sección se presentan y describen los pasos a seguir para la implementación de la solución en un caso de aplicación. Estos son; (1) Selección de un Modelo de Ciclo de Vida. (2) Mapa de Actividades (Sección 4.1.6.1), (3) Creación del Ciclo de Vida del Proyecto (Sección 4.1.6.2), (4) Secuenciamiento de Actividades (Sección 4.1.6.3), (5) Asignación de Documentos de Salida (Sección 4.1.6.4) y (6) Iniciación del Proyecto (Sección 4.1.6.5). 4.1.6.1. SELECCIÓN DE UN MODELO DE CICLO DE VIDA Inicialmente se debe identificar, evaluar y seleccionar un Modelo de Ciclo de Vida acorde a las características, necesidades y expectativas del proyecto y en el cual posteriormente realizar la asignación de las actividades previstas. El proceso de evaluación y selección del modelo de ciclo de vida consta de 5 pasos: 4.1.6.1.1. Identificar todos los modelos de ciclo de vida disponibles para el proyecto 4.1.6.1.2. Identificar los atributos que aplican al finalidad del sistema deseado y al entorno del proyecto 4.1.6.1.3. Identificar las limitaciones que podría suponer la selección del modelo de ciclo de vida evaluado 4.1.6.1.4. Evaluar modelos de ciclo de vida utilizados en proyectos anteriores 4.1.6.1.5. Seleccionar el modelo de ciclo de vida que mejor satisfaga los atributos y limitaciones del proyecto 4.1.6.2. CREACIÓN DEL CICLO DE VIDA DEL PROYECTO. MAPA DE ACTIVIDADES Seleccionado y presentado el Modelo de Ciclo de Vida es tiempo de elaborar el Ciclo de Vida del Proyecto. Esta actividad comienza a partir de la confección de un Mapa de Actividades, el cual contiene la asignación de las actividades propuestas por la solución, a las fases propuestas en el Modelo de Ciclo de Vida seleccionado en el paso anterior. En el Mapa de Actividades además, se deben listar las actividades desestimadas y justificar las razones que motivaron tal decisión. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 38 JONATAN PONZO SOLUCION CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. En este paso además, todas las actividades seleccionadas son nomencladas mediante un codigo identificador para su referencia a lo largo de todo el proyecto. 4.1.6.3 SECUENCIAMIENTO DE ACTIVIDADES Asignadas las actividades a realizar, se debe proceder a su organización en torno a la secuencia de ejecución apropiada para el Proyecto. Para ello se genera un cuadro de Secuencia de Actividades organizadas en torno a las fases definidas por el Modelo de Ciclo Vida seleccionado y la secuencia temporal de ejecución mas apropiada. 4.1.6.4 ASIGNACIÓN DE DOCUMENTOS DE SALIDA Organizadas las actividades en torno a una secuencia de ejecución, solo resta definir que documentos serán producidos durante el proyecto y la intervención de cada actividad en la conformación de los mismos Para ello se elabora un Mapa de Documentación que relaciona todas las actividades previstas con los documentos a desarrollar. 4.1.6.5 INICIACIÓN DEL PROYECTO Los resultados de las actividades anteriormente descriptas conforman el primer documento del Proyecto, titulado “Inicialización del Proyecto”. El mismo será la guía principal y fuente de consulta permanente a lo largo de todo el proyecto y concluido el mismo formará parte del registro histórico de la organización. A continuación, en la figura 4.1 se ilustra la secuencia de ejecución de procedimiento explicado. La misma se puede organizar en torno a 4 bloques principales; Selección de un Modelo de Ciclo de Vida (SMCV), Creación del Ciclo de Vida del Proyecto (CCVP), Secuenciamiento de Actividades (SA) y Asignación de Documentos (AD). Cada uno de esos bloques se alimenta de una entrada y otorga una salida que alimenta al modulo siguiente. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 39 JONATAN PONZO SOLUCION CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Selección de un modelo de ciclo de vida Modelo de Ciclo de Vida Creación del Ciclo de vida del proyecto Ciclo de Vida y Mapa de Actividades Secuencia de Actividades Secuencia de Actividades Asignación de documentos Inicio del Proyecto Figura 4.1. Mapa de Documentos Secuencia de implementación del modelo solución. En el capitulo número 5 titulado “Prueba de Concepto”, se presenta un caso de aplicación real de la solución propuesta, a fin de validar su factibilidad de aplicación en un entorno práctico. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 40 JONATAN PONZO PRUEBA DE CONCEPTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 5. PRUEBA DE CONCEPTO A lo largo este capitulo se presenta un caso de potencial aplicación en la industria a fin de verificar la validez y plausibilidad de la solución planteada en el capitulo anterior. En la sección 5.1 se describe la prueba de concepto a realizar, focalizando el análisis en la descripción del negocio (Sección 5.1.1) y del producto a desarrollar (Sección 5.1.2). Por ultimo se da inicio a la ejecución de la prueba de concepto (Sección 5.2) 5.1. DESCRIPCION DE LA PRUEBA DE INSPECCION DE CULTIVOS EN INVERNADERO CONCEPTO: En esta sección se analiza el caso de aplicación planteado, correspondiente a la construcción de un robot autónomo móvil utilizando un sistema embebido, destinado a tareas de relevamiento de condiciones de temperatura y humedad en invernaderos. 5.1.1 DESCRIPCIÓN DEL NEGOCIO El trabajo en invernaderos [González et al, 2007] requiere de una serie de tareas repetitivas, tediosas y usualmente perjudiciales para la salud por la posible inhalación de productos insecticidas, que son susceptibles de ser robotizadas. Las actividades como control de condiciones ambientales de temperatura y humedad de los cultivos, pulverización de insecticidas, recolección o transporte de materiales, etc, implican un movimiento en el interior del invernadero, por lo cual disponer de una unidad con capacidad autónoma de desplazamiento sería de real utilidad y conveniencia. Ahora bien, ¿Por que automatizar este tipo de tareas? ¿Que beneficios supondría respecto de la ejecución de las mismas por parte de personal humano?. Como bien sabemos, toda actividad comercial como la que nos compete en esta ocasión, cultivo y cosecha de flores y hortalizas en invernadero, persiguen un interés económico principalmente regido por el margen de ganancias que la misma pueda generar. Ese margen de ganancias se obtiene a partir de la sustracción al monto de dinero obtenido por ventas, del monto invertido en los recursos necesarios para la elaboración de los productos a comercializar, en este caso, flores y hortalizas. A la hora de pensar de manera general en los recursos necesarios para la realización exitosa de esta actividad, podemos mencionar la necesidad de contar con; ( a ) infraestructura necesaria para el montaje de los invernaderos, ( b ) materia prima; semillas, fertilizantes, tierra, etc, en este caso, y ( c ) personal capaz de llevar a cabo las tareas de siembra, mantenimiento y recolección del producto, entre otras. La implementación de un robot autónomo móvil en este entorno, podría suponer una reducción en los recursos humanos abocados a las tareas de siembra, mantenimiento y recolección del producto. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 41 JONATAN PONZO PRUEBA DE CONCEPTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. una disminución en los tiempos de operación, una consecuente posibilidad de aumentar el volumen de producción y un incremento en los niveles de control sobre los procesos utilizados, que permita llevar a cabo una mejora continua de la calidad de los productos elaborados. 5.1.2 DESCRIPCIÓN DEL PRODUCTO A DESARROLLAR El robot desarrollado deberá ser capaz de recorrer de manera autónoma y periódica la totalidad de los invernaderos existentes a fin de relevar las condiciones de temperatura y humedad relativa presentes en cada uno de ellos. En un caso de aplicación real en la industria, el robot podría incorporar capacidades de recolección y transporte de materiales, pulverización de insecticidas en los cultivos, acceso remoto a los datos relevados y modificación de las políticas de funcionamiento del robot por parte del usuario, entre otras. Esto supondría una modificación en la especificación de requisitos que podría eventualmente derivar en una modificación del hardware y software utilizado aunque la implementación del modelo de gestión propuesto en este Trabajo Final de Licenciatura no presentaría variación respecto de su metodología de aplicación y eficacia. Por tratarse simplemente de una prueba de concepto que busca validar la factibilidad de implementación de una solución propuesta, la aplicación contemplará simplemente el desempeño de manera autónoma del robot y el relevamiento de valores de temperatura y humedad en los cultivos. La descarga de los registros obtenidos será realizada de manera manual. 5.2. IMPLEMENTACIÓN DE LA PRUEBA DE CONCEPTO Descriptos el negocio (Sección 5.1.1) y el producto a desarrollar (Sección 5.1.2) y conocida la solución propuesta (Capitulo 4), se procede a la implementación del nuevo modelo a fin de elaborar y conducir exitosamente un proyecto destinado al control de Robot Autónomo Móvil basado en una Arquitectura de Sistema Embebido, capaz de llevar a cabo tareas de relevamiento de condiciones ambientales tales como humedad y temperatura en invernaderos. Se adjunta a la presente el ANEXO IV, conteniendo la totalidad de los documentos desarrollados como consecuencia de la implementación de la solución propuesta para la elaboración del sistema requerido. Para continuar con la secuencia de ejecución de la prueba de concepto, dirigirse al capítulo inicial de dicho anexo, titulado Iniciación del Proyecto. En él se describe la estructura general del proyecto y se referencian los documentos y productos elaborados y las actividades realizadas a lo largo del proyecto. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 42 JONATAN PONZO PRUEBA DE CONCEPTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 6. CONCLUSIONES En este Capítulo se enuncian los aportes de este trabajo (Sección 6.1) y se destacan las futuras líneas de investigación que se consideran de interés en base al problema abierto presentado (Sección 6.2). 6.1. APORTES DEL TRABAJO FINAL DE LICENCIATURA A modo de respuesta al interrogante planteado en el capitulo numero tres, podemos afirmar que a lo largo de este trabajo se ha validado la posibilidad de generar un nuevo modelo de gestión integral de proyectos destinados al control de Robots Autónomos Móviles basados en Arquitecturas de Sistemas Embebidos, a partir de la adaptación y combinación de modelos y standards existentes en la actualidad en el dominio de los sistemas informáticos y que el mismo a sido sometido a un caso de prueba en el cual se ha desempeñado de la manera esperada. En este contexto, podemos afirmar que este trabajo final de licenciatura ha propuesto: • Un modelo de gestión integral de proyectos destinados al control de Robots Autónomos Móviles basados en Arquitecturas de Sistemas Embebidos, que busca abordar los proyectos desde su fase de planificación hasta la puesta en producción, mantenimiento y retiro del sistema desarrollado, dotar de un mayor carácter sistémico y profesional a la actividad y garantizar la calidad de los productos desarrollados a través del aseguramiento de la calidad de los procesos implementados. Las fases propuestas son Gestión del Proyecto, PreDesarrollo, Desarrollo, Post-Desarrollo y Procesos integrales del Proyecto y las mismas son desmembradas en subprocesos, actividades, técnicas sugeridas y documentación de salida. Un informe de relevamiento de las arquitecturas de hardware potencialmente utilizables en robótica autónoma y disponibles en el mercado local e internacional a la fecha de redacción de este trabajo final de licenciatura. Un informe del relevamiento de modelos y técnicas disponibles en la base de conocimiento de los sistemas informáticos -disponibles a la fecha de redacción de este trabajo final de licenciatura- que inspiraron e influyeron la creación del modelo propuesto. Una matriz comparativa que se desprende del informe de relevamiento de hardware realizado y que busca agilizar el proceso de selección de la arquitectura que mejor se adapte a la especificación de requerimientos del proyecto. La misma posee información de los TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 43 JONATAN PONZO PRUEBA DE CONCEPTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. desarrollos disponibles al momento de redacción de este trabajo final de licenciatura, aunque establece la estructura necesaria para su adaptación a los constantes cambios en materia de tecnología. El modelo propuesto ha sido sometido a una prueba de concepto que simula un requerimiento productivo surgido del mercado. El mismo se trata de la necesidad de automatización de un conjunto de tareas desarrolladas en invernaderos como el relevamiento de sus condiciones de temperatura y humedad relativa. 6.2. FUTURAS LÍNEAS DE INVESTIGACIÓN Del proceso de desarrollo de este trabajo final de licenciatura en sistemas, se desprenden las siguientes cuestiones que darían lugar a futuras lineas de investigación: 6.2.1. En la fase final del modelo propuesto se propone la realización de una auditoría completa del proyecto a fin validar los productos elaborados a partir del análisis de los procesos utilizados en su construcción y la evaluación de la conformidad del proyecto con normas internas o externas a la organización ya sean de seguridad o calidad, legislaciones, etc, o bien ante cualquier tipo de acuerdo que pudiera existir con el cliente. En este marco, el profesional de sistemas debe enfrentar situaciones que se encuentran fuera de su ámbito de acción y para las cuales no se encuentra debidamente capacitado. De los motivos anteriormente descriptos surgen los siguientes interrogantes: • ¿Es posible la creación de un modelo de auditoría de proyectos destinados al control de Robots Autónomos Móviles basados en Arquitecturas de SE, capaz de guiar al profesional de sistemas en la auditoría de los procesos utilizados y productos desarrollados a lo largo de los mismos? • ¿Es necesario acudir profesionales de otras disciplinas? • ¿En caso afirmativo, que disciplinas deberían ser tenidas en cuenta? 6.2.2. A lo largo de este Trabajo Final de Licenciatura se han adaptado y modificado en número y contenido, diversos procesos, subprocesos, técnicas y documentos propuestos por un standard referente de la ingeniería de software y se han integrado a su estructura, modelos de procesos y técnicas de probado éxito en la fase de IR de Sistemas Embebidos a fin de obtener un nuevo modelo que permita gestionar de manera integral proyectos TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 44 JONATAN PONZO PRUEBA DE CONCEPTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. destinados a la producción de sistemas de esta índole. En este contexto se plantea el siguiente interrogante: • ¿Existen técnicas o modelos en el cuerpo de conocimiento de los sistemas embebidos o áreas afines, capaces de ser integrados a uno o mas subprocesos o actividades del modelo propuesto? 6.2.3. Si bien el modelo generado aporta sistematicidad al proceso de gestión de proyectos destinados al control de RAM basados en ASE y el mismo ha sido sometido a un caso de prueba representativo de una situación de aplicación real, se recomienda su implementación en un proyecto de dimensiones mayores al presentado durante la prueba de concepto y surgido de una necesidad productiva real, a fin de validar su eficacia y evaluar su eficiencia de manera mas precisa. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 45 JONATAN PONZO PRUEBA DE CONCEPTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 46 JONATAN PONZO REFERENCIAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 7. REFERENCIAS Azcurra, D., Rodriguez, D., Pytel, P., Santos, D., Giordano, V., Arboleya, H., García- Martínez, R. (2011). Arquitecturas de Sistemas Embebidos utilizables en Robótica Autónoma. Grupo Investigación en Sistemas de Información Departamento Desarrollo Productivo y Tecnológico. Universidad Nacional de Lanús. Cheng, B, Konrad, S, Kamdoum, S. (2006). Enabling a Roundtrip Engineering Process for the Modeling andAnalysis of Embedded Systems. Proceedings of the ACM/IEEE International Conference on Model Driven Engineering Languages and Systems (MODELS 2006). Fritz, W. (1984). The Intelligent System. SIGART Newsletter, 90: 34-38. ISSN 0163-5719. Fritz, W. (1992). World view and learning systems. Robotics and Autonomous Systems 10(1): 1-7. ISSN 0921-8890. Garcia Martinez. (2009 ). Ciclo de Vida de Software, Proceso Software y Plan de Actividades . Guía de Estudio de la Materia Ingeniería de Software I, Cohorte 2008, Lic. Sistemas, UNLa. R. González 1(P), F. Rodríguez, J. Sánchez-Hermosilla, J. G. Donaire (2007). Experiencias en Sistemas de Navegación de Robots móviles para tareas en invernadero . IV Congreso Nacional y I Congreso Ibérico de Agroingeniería. Gonzalez Palacio, L., Urrego Giraldo, G. (2008). Modelo de Requisitos para Sistemas Embebidos. Heather J. Goldsby1, Sascha Konrad, Betty H.C. Cheng. (2007) Goal-Oriented Patterns for UMLBased Modeling of Embedded Systems Requirements. Heath, Steve (2003). Embedded Systems Design. IEEE (1990) Software Engineering Standards Committee of the IEEE Computer Society (1990). “IEEE Standard Glossary of Software Engineering Terminology”, IEEE std 610.12-1990. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 47 JONATAN PONZO REFERENCIAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. IEEE (2006) Software Engineering Standards Committee of the IEEE Computer Society (2006). IEEE Standard for Developing Software Life Cycle Processes. IEEE (2013) Software Engineering Standards Committee of the IEEE Computer Society (1990). URL http://www.ieee.org.ar/. Sitio vigente 11/2013 Kovitz, B. (2001). Is backtracking so bad? The role of learning in software development. Proceedings of Fifth IEEE International Symposium on Requirements Engineering, Toronto, Canada, pp. 272. Lavi, J, Kudish, J. (2005). Systems modelling & requirements specification using ECSAM: an Analysis Method for Embedded & Computer-based Systems. Innovations Syst Softw Eng. 1: 100–115. Peláez, J (2013). El desarrollo de Software. http://desarrollodesoftwarejorgepelaez.blogspot.com.ar/2013/03/2-el-desarrollo-de-software.html. Sitio vigente 11/2013 Ross, D, Schoman, K. (1977). Structured Analysis for Requirements Definition. Transactions on Software Engineering, IEEE, 3(1): 6-15. Tangelson, O (2004). Argentina frente al siglo XXI. Desarrollo e Integración. Departamento de DesarrolloProductivo y Tecnológico. Universidad Nacional de Lanús. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 48 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS Propuesta de Modelo de Aplicación y Uso Potencial Jonatan Ponzo - [email protected] Universidad Nacional de Lanús – Lic. Sistemas ANEXO I – RELEVAMIENTO DE HARDWARE TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 49 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 50 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. ANEXO I – RELEVAMIENTO DE HARDWARE A lo largo de este documento se realizará un análisis técnico y posterior caracterización según su potencial aplicación en la industria, de 8 desarrollos de hardware preseleccionados en representación de 5 familias tecnológicas diferentes, focalizando en la identificación de sus principales atributos y falencias, su disponibilidad en el mercado y el nivel de accesibilidad a las mismas por parte de una PyME. Los desarrollos seleccionados que serán objeto de comparación a lo largo de este documento pertenecen a las familias Arduino, PIC, Raspberry Pi, PC/104 y Freescale y los principales aspectos a contrastar serán: 1. Arquitectura del microprocesador, frecuencias soportadas y principales características del mismo. 2. Dimensiones y condiciones de ambiente soportadas por el producto. 3. Disposición y características de la Memoria de datos y Programa, 4. Interfaces de entrada/salida disponibles 5. Módulos de expansión compatibles 6. Programación 7. Disponibilidad en el mercado local e internacional y costos 8. Espectro de aplicación Para comenzar realizaremos una breve descripción de cada familia a modo introductorio del posterior análisis técnico comparativo de los desarrollos seleccionados. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 51 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 1. INTRODUCCIÓN A LAS FAMILIAS SELECCIONADAS Existen 5 familias que engloban a los 8 desarrollos seleccionados. Ellas son Arduino, PIC, Raspberry PI, Freescale y PC/104. Cada una de ellas posee características técnicas, físicas y comerciales que las diferencian del resto y las presuponen mas aptas para su aplicación en diversos nichos productivos. 1.1. ATMEL AVR - ARDUINO Arduino es una plataforma de hardware libre basada en una placa con un micro controlador Atmel AVR, diversos puertos de entrada/salida y un entorno de desarrollo y esta básicamente diseñada para facilitar el uso de la electrónica en proyectos multidisciplinarios [2]. Los micro controladores AVR presentan una arquitectura tipo Harvard 8-bit RISC modificada desarrollada por Atmel en 1996 y es una de las primeras familias en implementar un chip de memoria flash para el almacenamiento del programa en lugar de ROM, EPROM o EEPROM. Los más usados por Arduino dentro de esta familia son son el Atmega168, Atmega328, Atmega1280 y ATmega8 por su sencillez y bajo coste. El lenguaje de programación de Arduino es una implementación de Wiring, una plataforma de computación física parecida, que a su vez se basa en Processing, un entorno de programación multimedia. El entorno de desarrollo integrado es libre y se puede descargar gratuitamente [3]. Arduino se puede utilizar para desarrollar objetos interactivos autónomos o puede ser conectado a software del ordenador (por ejemplo: Macromedia Flash, Processing, Max/MSP, Pure Data). Las placas pueden ser montadas a mano o adquirirse ensambladas y al ser open-hardware, tanto su diseño como su distribución es libre. Es decir, puede utilizarse libremente para el desarrollo de cualquier tipo de proyecto sin haber adquirido ninguna licencia [2]. El modelo seleccionado como objeto de comparación en representación de esta familia es el Arduino UNO. Fig. 1. Arduino UNO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 52 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 1.2. PIC PIC es una familia de microcontroladores tipo RISC fabricados por Microchip Technology Inc. y derivados del PIC1650, originalmente desarrollado por la división de microelectrónica de General Instrument. El nombre actual no es un acrónimo. En realidad, el nombre completo es PICmicro, aunque generalmente se utiliza como Peripheral Interface Controller (controlador de interfaz periférico) [32]. El PIC original se diseñó para ser usado con la nueva CPU de 16 bits CP16000. Siendo en general una buena CPU, ésta tenía malas prestaciones de entrada y salida, y el PIC de 8 bits se desarrolló en 1975 para mejorar el rendimiento del sistema quitando peso de E/S a la CPU. El PIC utilizaba microcódigo simple almacenado en ROM para realizar estas tareas; y aunque el término no se usaba por aquel entonces, se trata de un diseño RISC que ejecuta una instrucción cada 4 ciclos del oscilador[32]. En 1985 la división de microelectrónica de General Instrument se separa como compañía independiente que es incorporada como filial (el 14 de diciembre de 1987 cambia el nombre a Microchip Technology y en 1989 es adquirida por un grupo de inversores) y el nuevo propietario canceló casi todos los desarrollos, que para esas fechas la mayoría estaban obsoletos. El PIC, sin embargo, se mejoró con EPROM para conseguir un controlador de canal programable. Hoy en día multitud de PICs vienen con varios periféricos incluidos (módulos de comunicación serie, UARTs, núcleos de control de motores, etc.) y con memoria de programa desde 512 a 32.000 palabras (una palabra corresponde a una instrucción en lenguaje ensamblador y puede ser de 12, 14, 16 ó 32 bits, dependiendo de la familia específica de PICmicro)[32]. Los viejos PICs con memoria PROM o EPROM se están renovando gradualmente por chips con memoria Flash. Así mismo, el juego de instrucciones original de 12 bits del PIC1650 y sus descendientes directos ha sido suplantado por juegos de instrucciones de 14 y 16 bits. Microchip todavía vende versiones PROM y EPROM de la mayoría de los PICs para soporte de aplicaciones antiguas o grandes pedidos [32]. Se pueden considerar tres grandes gamas de MCUs PIC en la actualidad: Los básicos (Linebase), los de medio rango (Mid Range) y los de alto desempeño (high performance). Los PIC18 son considerandos de alto desempeño y tienen entre sus miembros a PICs con módulos de comunicación y protocolos avanzados (USB, Ethernet, Zigbee por ejemplo). TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 53 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Se ha seleccionado en representación de esta familia, el desarrollo ICP05 - IBOARD LITE el cual permite la utilización de una gran variedad de PICs de 40 PINs [32]. Fig. 2. ICP05 iBoard Lite 1.3. ARM - RASPBERRY PI La Raspberry Pi es una placa computadora (SBC) de bajo coste desarrollada en Reino Unido por la Fundación Raspberry Pi. Su diseño incluye un procesador ARM1176JZF-S a 700 MHz y 256 MiB de memoria RAM con el objetivo de ejecutar Linux. No incluye un disco duro o una unidad de estado sólido sino que utiliza una tarjeta SD para el sistema operativo y el almacenamiento permanente de datos [23]. El desarrollo del dispositivo es llevado a cabo por la Fundación Raspberry Pi, una asociación caritativa registrada en la Comisión de Caridad de Inglaterra y Gales cuyo objetivo es "Promover el estudio de las ciencias de la computación y temas relacionados, sobre todo a nivel escolar a fin de recuperar la diversión de aprender computación" [23]. La Fundación Raspberry Pi promoverá principalmente el aprendizaje del lenguaje de programación Python, aunque también apoyará el uso de BBC BASIC y Perl. Muchos otros lenguajes que tienen soporte para Linux y ARM estarán disponibles también y serán mencionados posteriormente. [23] Actualmente existen 2 modelos de Raspberry en el mercado, el Modelo A y el Modelo B, siendo el ultimo una evolución técnica de su antecesor. A diferencia del modelo A, el modelo B incorpora un segundo puerto USB2.0 y un puerto de red 10/100 Base T. Si bien aún no se ha integrado un modulo WiFi, existe la posibilidad de utilizar un adaptador WiFi USB. Al momento Raspberry Pi no es hardware libre sin embargo, miembros de la fundación dieron a conocer su intención de liberar los esquemas y diagramas del producto a fin de promover el desarrollo de módulos compatibles con el mismo [23]. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 54 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Seleccionaremos el Modelo B como objeto de comparación. Fig. 3. Raspberry Pi 1.4. FREESCALE - EDUKIT 08 Freescale Semiconductor Inc. es un fabricante estadounidense de semiconductores creado a partir de la división de semiconductores de Motorola en 2004 centrada en el mercado de los sistemas integrados y las comunicaciones [34]. Freescale también se ha estado encargando de los procesadores PowerPC para los Apple PowerBook y Mac mini hasta la transición de Apple a Intel en 2006. La compañía forma parte desde 2006 de Power.org como miembro fundador de esta asociación para el desarrollo y promoción de la arquitectura PowerPC [34]. “El sistema “EDUKIT08” es una plataforma universal que permite trabajar con las familias más populares de 8 y 32 Bits de Freescale Semiconductor y realizar prácticas completas con una gran variedad de periféricos en un ambiente controlado que facilita el aprendizaje del estudiante del área de microcontroladores.” [16 et al] Fig. 4. Edukit08 TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 55 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Gracias al diseño “removible” de las placas “PLUGIN”, el sistema puede personalizarse para trabajar en las distintas familias de 8 Bits y de 32 Bits Flash que posee Freescale, haciendo que el sistema “evolucione” hacia familias más poderosas y con más prestaciones que la popular HC908. De esta forma, el sistema se adapta a las necesidades de los distintos niveles de estudio que presenta una carrera técnica, tanto en el ámbito de escuelas técnicas, como en el de las universidades, institutos o áreas de capacitación técnica dentro de las empresas. [16 et al] El EDUKIT08 permite al estudiante trabajar en forma profesional usando herramientas de depuración de código de programa avanzadas, como la “Emulación en Tiempo Real” o la grabación “En – Circuito” de la memoria Flash del MCU bajo estudio, sin complicaciones de ningún tipo, en un ambiente controlado, guiado paso a paso y con un completo soporte teórico-práctico totalmente en castellano. [16 et al] El sistema ha sido diseñado para soportar el “mal trato” de los estudiantes, muy frecuente durante el aprendizaje, y la fácil y rápida reparación del mismo si así lo requiriera, ya que se entrega con documentación completa y detallada del mismo. [16 et al] El sistema “EDUKIT08” está compuesto por una placa base o plataforma de trabajo (Motherboard) y una placa de personalización para la familia HC908 (Placa “PLUGIN_AP”) que contiene al MCU MC908AP32CFBE, uno de los miembros más completos de esta popular familia. [16 et al] 1.5. PC/104 PC/104 o PC104 es un estándar de ordenador embebido controlado por el Consorcio que lleva su nombre y que define entre otras cosas, el formato de la placa base o Form Factor y el bus del sistema a fin de facilitar y garantizar la comunicación y expansión entre diversos desarrollos así como la optimización del espacio y los recursos de interconexión [17]. Existen 3 versiones que responden a esta norma; PC/104, PC/104-PLUS y PCI-104. El bus de la versión de 1992 del PC/104 usa 104 pines. Estos pines incluyen todas las líneas normales usadas por el bus ISA, además añade líneas de masa para mejorar la integridad de las señales. La sincronización de las señales y los niveles de tensión son idénticos al bus ISA, pero con menos requisitos de corriente [17]. De forma similar, el bus del PC/104-Plus es una versión compacta del bus PCI. En este caso nos basaremos en desarrollos PC/104 standard. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 56 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. A diferencia de la clásica arquitectura ATX y bus PCI que son usados en la mayoría de los ordenadores personales, el PC/104 está diseñado para aplicaciones específicas, como adquisición de datos o sistemas de control industrial en ambientes no tradicionales. La arquitectura de la placa base no es la típica placa de circuitos integrados backplane en el que van insertados los componentes; en lugar de eso, los componentes se encuentran en módulos que son apilados unos encima de otros. El tamaño estándar es de 90.17 mm × 95.89 mm y la altura es proporcional al número de módulos conectados. Una instalación típica incluye una placa base, conversores analógico-digital y módulos I/O digitales [17]. La arquitectura del microprocesador dependerá de la placa base seleccionada. Existen desarrollos que implementan PIC, AMD, ARM, Intel y Vortex entre otros. Seleccionaremos 1 modelo por cada arquitectura a fin de adicionar una etapa comparativa interna dentro de la misma familia: Pic Microstack, Cool LiteRunner-ECO, Cool LiteRunner-LX800 y CoreModule 435. Fig. 5. PC/104 Developments 2. MICROPROCESADOR: ARQUITECTURA, FRECUENCIAS DISPONIBLES Y CARACTERÍSTICAS PRINCIPALES Presentadas las familias, haremos un recorrido por los diversos desarrollos seleccionados focalizando el análisis en aspectos que entendemos ayudaran a su posterior categorización e identificación del entorno mas apropiado para su aplicación. Los aspectos que serán el foco principal del análisis son: 1. Microprocesador. Arquitectura, frecuencias disponibles y características principales.. 2. Dimensiones, alimentación y condiciones de ambiente soportadas por el producto. 3. Disposición y características de la Memoria de datos y Programa, TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 57 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 4. Interfaces de entrada/salida disponibles 5. Módulos de expansión compatibles 6. Programación 7. Disponibilidad en el mercado local e internacional y costos 8. Espectro de aplicación 2.1. ARDUINO - ARDUINO UNO Como mencionamos durante la introducción, Arduino implementa microcontroladores de la familia AVR. El AVR es una CPU de arquitectura Harvard, posee 32 registros de 8 bits aunque algunas instrucciones sólo operan en un subconjunto de estos registros. La concatenación de los 32 registros, los registros de entrada/salida y la memoria de datos conforman un espacio de direcciones unificado, al cual se accede a través de operaciones de carga/almacenamiento. A diferencia de los microcontroladores PIC, el stack se ubica en este espacio de memoria unificado, y no está limitado a un tamaño fijo [35]. AVR se puede dividir en los siguientes grupos: • ATxmega: procesadores muy potentes con de 16 a 384 kB de memoria flash programable, encapsulados de 44, 64 y 100 pines (A4, A3, A1), capacidad de DMA, eventos, criptografía y amplio conjunto de periféricos con DACs. • ATmega: microcontroladores AVR grandes con de 4 a 256 kB de memoria flash programable, encapsulados de 28 a 100 pines, conjunto de instrucciones extendido (multiplicación y direccionamiento de programas mayores) y amplio conjunto de periféricos. • ATtiny: pequeños microcontroladores AVR con de 0,5 a 8 kB de memoria flash programable, encapsulados de 6 a 20 pines y un limitado set de periféricos. • AT90USB: ATmega integrado con controlador USB • AT90CAN: ATmega con controlador de bus CAN • Tipos especiales: algunos modelos especiales, por ejemplo, para el control de los cargadores de baterías, pantallas LCD y los controles de los motores o la iluminación. • AT90S: tipos obsoletos, los AVRs clásicos TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 58 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Arduino UNO esta basado en el microprocesador Atmega328 aunque existen otros desarrollos basados en Atmega168 y Atmega1280. Posee 14 PINs de entrada salida de los cuales 6 pueden ser usados como salidas PWM, 6 entradas analógicas y un cristal oscilador de 16MHz. La línea AVR puede soportar normalmente clocks de 0-20MHz alcanzando incluso los 32MHz en algunos dispositivos. Además existe un prescaler capaz de dividir el clock hasta 1024 veces. El mismo puede ser configurado por software en tiempo de ejecución 2.2. PIC - ICP05 IBOARD LITE La arquitectura del PIC es sumamente minimalista. Esta caracterizada por las siguientes prestaciones: • Área de código y de datos separadas (Arquitectura Harvard), • Un reducido número de instrucciones de longitud fija. • La mayoría de las instrucciones se ejecutan en un solo ciclo de ejecución (4 ciclos de clock), con ciclos de único retraso en las bifurcaciones y saltos. • Un solo acumulador (W), cuyo uso (como operador de origen) es implícito (no está especificado en la instrucción). • Todas las posiciones de la RAM funcionan como registros de origen y/o de destino de operaciones matemáticas y otras funciones. • Una pila de hardware para almacenar instrucciones de regreso de funciones. • Una relativamente pequeña cantidad de espacio de datos direccionable (típicamente, 256 bytes), extensible a través de manipulación de bancos de memoria. • El espacio de datos está relacionado con el CPU, puertos, y los registros de los periféricos. • El contador de programa esta también relacionado dentro del espacio de datos, y es posible escribir en él (permitiendo saltos indirectos). A diferencia de la mayoría de otros CPU, no hay distinción entre los espacios de memoria y los espacios de registros, ya que la RAM cumple ambas funciones, y esta es normalmente referida como "archivo de registros" o simplemente, registros. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 59 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. ICP05 permite implementar cualquier PIC de 28 PINs por lo cual las características inherentes al microcontrolador dependerá del modelo seleccionado. En este caso, basaremos el análisis en el PIC16F722 que se incluye en el empaque de la placa. 2.2.1. Características PIC16F722 •Mid-Range core with 35 Instruction, 8 Stack Levels •Flash Program Memory •Internal 16MHz oscillator •I²C™, SPI, AUSART •2 X CCP (Caputure/Compare/PWM) •11 Channel 8b ADC •25mA Source/Sink current I/O •One 8-bit Timer (TMR0) •Two 16-bit Timer (TMR1/TMR2) •Watchdog Timer (WDT) •Enhanced Power-On/Off-Reset •Brown-Out Reset (BOR) •In Circuit Serial Programming™ (ICSP™) •Built-in mTouch™ capacative sensing module •Wide Operating Voltage (1.8V – 5.5V) •CPU speed (MIPS) 5 2.1.3 ARM RASPBERRY PI Tanto el modelo A como B de Raspberry Pi, poseen un procesador ARM 1176JZF-S integrado en un SoC Broadcomm BCM2835. ARM es una arquitectura RISC (Reduced Instruction Set Computer) de 32 bits desarrollada por ARM Holdings y es en la actualidad, el conjunto de instrucciones de 32 bits más utilizado en unidades producidas [36]. La relativa simplicidad de los procesadores ARM los hace ideales para aplicaciones de baja potencia. Como resultado, se han convertido en dominante en el mercado de la electrónica móvil e integrada, encarnados en microprocesadores y microcontroladores pequeños, de bajo consumo y TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 60 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. relativamente bajo coste. En 2005, alrededor del 98% de los más de mil millones de teléfonos móviles vendidos cada año utilizan al menos un procesador ARM.3 Desde 2009, los procesadores ARM son aproximadamente el 90% de todos los procesadores RISC de 32 bits embebidos y se utilizan ampliamente en la electrónica de consumo, incluyendo PDAs, tabletas, teléfonos móviles, consolas de mano, calculadoras, reproductores digitales de música y medios (fotos, vídeos, etc.), y periféricos de ordenador como discos duros y routers [36]. Un aspecto importante a la hora de pensar en nuevos desarrollos es que la arquitectura ARM es licenciable. SoC: Broadcom BCM2835 (CPU + GPU + DSP + SDRAM) CPU: ARM1176JZF-S a 700 MHz GPU: Broadcom VideoCore IV,26 OpenGL ES 2.0, decodificador Memoria (SDRAM): 1080p30 H.264 256 MiB (compartidos con la GPU) Tabla 1. Especificaciones técnicas generales de Raspberry Pi Modelo B 2.4. FREESCALE – EDUKIT08 El sistema “EDUKIT08” básico está compuesto por una placa base o plataforma de trabajo (Motherboard) y una placa de personalización para la familia HC908 (Placa “PLUGIN_AP”) que contiene al MCU MC908AP32CFBE, uno de los miembros más completos de esta popular familia. [16 et al] 2.4.1. Características MC908AP32CFBE •CPU Speed: 8 MHz •Clock Frequency: 8 MHz •Core Size: 8 bit •Flash Memory Size: 32 Kb •IC Generic Number: 908AP32 •Interface: I2C, SCI, SPI •Logic Function Number: 32CFBE •Memory Size: 32768 TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 61 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. •Memory Type: FLASH •Microprocessor/Controller Features: LVI, WDT •Mounting Type: SMD •Number of ADC Inputs: 8 •Number of Bits: 8 •Number of I/O Lines: 32 •Number of PWM Channels: 8 •Number of PINs: 44 •Number of Timers: 2 •Number of bits in ADC: 10 •Operating Temperature Range: -40°C to +85°C •Oscillator Type: External, Internal •Package / Case: QFP •Packaging Type: Peel Pack •Peripherals: ADC, LED Drive •Program Memory Size: 32 Kb •Qualified Segment: COMMERCIAL, INDUSTRIAL •RAM Size: 2 Kb •SVHC: No SVHC (20-Jun-2011) •Series: HC08 •Supply Voltage Range: 4.5 V to 5.5 V Fig. 6. Edukit08 MCU MC908AP32CFBE TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 62 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 2.5. PC/104 - PIC MICROSTACK USB MicroStack es una implementación del Standard PC104 para PIC. Permite la utilización de cualquier PIC de 40 PINs por lo cual las características técnicas del microcontrolador dependerán del modelo seleccionado. 2.5.1. Características PIC16F887 •Oscilador interno de precisión calibrado de fabrica y con un rango de frecuencia seleccionable por software entre (Mhz y 32Khz. Monitoreo de Clock a prueba de fallos para aplicaciones criticas. •Modo ahorro de energia •Power-on Reset (POR) •Voltage Brown-out Reset (BOR) seleccionable •Watchdog Timer (WDT) Extendido con oscilador propio •In-Circuit Serial Programming™ (ICSP™) via twoPINs •In-Circuit Debug (ICD) via two PINs •High-endurance Flash/EEPROM cell:- 100,000 erase/write cycle enhanced Flashprogram memory, typical- 1,000,000 erase/write cycle data EEPROMmemory, typical- Data EEPROM retention > 40 years •Self-reprogrammable under software control •Programmable code protection •Peripheral Features: Device Features:- 1 input only pin- 36 I/O- High sink/source current 25 mA- Interrupt-on-pin change option •Timers:- TMR0: 8-bit timer/counter with 8-bit prescaler- TMR1 enhanced: 16-bit timer/counter withprescaler, External Gate Input mode anddedicated low-power 32 kHz oscillator- TMR2: 8-bit timer/counter with 8-bit periodregister, prescaler and postscaler •Capture/Compare/PWM (CCP) module •Enhanced Capture/Compare/PWM (ECCP)module with auto-shutdown and PWM steering •Master Synchronous Serial Port (MSSP) moduleSPI™ mode, I2C™ mode with address maskcapability •Enhanced Universal Synchronous AsynchronousReceiver Transmitter (EUSART) module:Supports RS-485, RS-232 and LINcompatibility- Auto-Baud Detect- Auto-wake-up on Start bit TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 63 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. •Ultra Low-Power Wake-up (ULPWU)Analog Features: •10-bit 14 channel Analog-to-Digital (A/D)Converter •2 Analog Comparator modules with:- Programmable on-chip Voltage Reference(CVREF) module (% of VDD)- Fixed 0.6 Vref- Comparator inputs and outputs externallyaccessibleSR Latch mode 2.6. PC/104 – COOL LITERUNNER-ECO Los procesadores Atom están basados en la micro arquitectura Bonell. Como muchos otros microprocesadores x86, este traduce las instrucciones CISC en operaciones internas más simples, como por ejemplo instrucciones RISC, antes de su ejecución. Los Intel Atom pueden ejecutar hasta dos instrucciones por ciclo y el rendimiento de un Atom de núcleo único es igual a, aproximadamente, la mitad de un Intel Celeron M equivalente, de su misma frecuencia. Implementan el conjunto de instrucciones x86-64 y x86 (IA-32); excepto en los primeros modelos del Intel Atom (versiones N2xx y Z5xx); dichos modelos solo implementan el conjunto de instrucciones x86. Hasta la fecha, todos los Intel Atom actuales ya integran instrucciones x86-64 (las versiones N2xx y Z5xx de Intel Atom están oficialmente descatalogadas). La placa Cool LiterRunner-ECO implementa un microprocesador Intel Atom Z5xx, 1.1 GHz / 1.6 GH dependiendo la frecuencia del modelo elegido. A continuación una comparación entre los modelos disponibles: Processor Number # of Cores # of Threads Clock Speed L2 Cache Bus/Core Ratio FSB Speed FSB Parity Instruction Set Instruction Set Extensions Embedded Options Available Supplemental SKU Lithography Max TDP VID Voltage Range Z510 1 1 1.1 GHz 512 KB 11 400 MHz No 32-bit SSE2, SSE3, SSSE3 Yes No 45 nm 2W 0.75-1.1V Z530 1 2 1.6 GHz 512 KB 12 533 MHz No 32-bit SSE2. SSE3, SSSE3 Yes No 45 nm 2W 0.75 -1.1V Tabla 2. Especificaciones técnicas de los procesadores Atom Z510 y Z530 TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 64 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 2.7. PC/104 - COOL LITERUNNER-LX800 Este modelo presenta un SoC AMD GEODE LX800. Geode es una serie de System on chip "todo en uno" compatibles con el conjunto de instrucciones x86, junto a los componentes de E/S producidos por AMD, dirigidos al mercado de sistemas embebidos [37]. x86 es la denominación genérica dada a ciertos microprocesadores de la familia Intel, sus compatibles y la arquitectura básica a la que estos procesadores pertenecen, por la terminación de sus nombres numéricos: 8086, 80286, 80386, 80486, etc. Han constituido desde su nacimiento un estándar para los ordenadores del tipo Compatible IBM PC [38]. 2.7.1. Características Geode LX800 •Processor AMD Geode [email protected] •Speed 500 MHz •Core Logic I/O companion: CS5536 •Super I/O: ITE8712 •RAM clock 400 MHz •Graphics Integrated in the Geode LX800. Up to 254 MB video memory. •Watchdog yes 2.8. PC/104 - COREMODULE 435 El CPU implementa la arquitectura x86 i586 de bajo consumo mencionada anteriormente con un CPU Vortex86SX de 300MHz o Vortex86DX de 800MHz ambos con 16Kb de cache. Además posee un motor gráfico integrado 2D de 64-bit y 100MHz. 3. DIMENSIONES, ALIMENTACIÓN Y CONDICIONES DE AMBIENTE SOPORTADAS 3.1. ARDUINO UNO La placa base del Arduino UNO tiene un tamaño máximo de 2.7' x 2.1' y presenta 4 perforaciones para su fijación a un contenedor. El Arduino puede ser alimentado vía USB o a través de una fuente externa o batería. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 65 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. La placa puede operar con un voltaje de alimentación desde 6v a 20v pero el rango recomendado es de 7v a 12v. Fig. 7. Diagrama Arduino UNO Los PINs de alimentación son los siguientes: •VIN: Permite alimentar la placa o utilizar la tensión de alimentación provista a través del conector. •5V: Salida de tensión regulada 5V. . •3V3: Salida de tensión regulada de 3.3V x 50 mA. •GND: Tierra. A continuación un cuadro comparativo de los niveles de tensión manejados por los 3 modelos de Atmega soportados por Arduino en sus diversos modelos siendo 328 correspondiente a Arduino UNO. Atmega168 Voltaje operativo Voltaje de entrada recomendado Voltaje de entrada límite Atmega328 Atmega1280 5V (Arduino UNO) 5V 7-12 V 7-12 V 7-12 V 6-20 V 6-20 V 6-20 V 5V Tabla 3. Niveles de tensión manejados por los procesadores Atmega TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 66 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. El microcontrolador Atmega trabaja dentro de un rango de temperaturas de entre -40°C y 85°C permitiéndole al Arduino UNO desempeñarse en ambientes hostiles realizando tareas, por ejemplo, de medición de condiciones climáticas. 3.2. PIC - ICP05 IBOARD LITE La placa provee tensiones de 5V y 3.3V seleccionables para el microcontrolador PIC. Sus dimensiones son muy pequeñas, tan solo 10cm x 5.5cm tornándolo ideal para aplicaciones móviles o en espacios reducidos. El PIC PIC16F722 posee un rango de voltaje de operación de 1.8V – 3.6V y admite un rango de temperaturas de -40°C - 125°C. 3.3. RASPBERRY PI Raspberry PI puede ser alimentada por una fuente externa de 5V o bien a través de un cable USB y su consumo varía según el modelo siendo la más reciente versión la de mayor demanda. Uno de las mayores virtudes de este desarrollo y un gran argumento publicitario además es justamente su tamaño. La placa posee las medidas de una tarjeta de crédito, esto es 85.60mm × 53.98mm y pesa menos de 40g. Consumo energético: Modelo A Modelo B 500 mA, (2.5 W) 700 mA, (3.5 W) Fuente de alimentación: 5 V vía Micro USB o GPIO header Dimensiones: 85.60mm × 53.98mm27 (3.370 × 2.125 inch) Peso < 40g Tabla 4. Información de consumo y dimensiones de Raspberry Pi Modelo A y B TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 67 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Fig. 8. Raspberry Pi Model B. Diagrama de conexiones. 3.4. FREESCALE EDUKIT 08 La alimentación del sistema EDUKIT08 se lleva a cabo por medio de fuentes externas de corriente continua o corriente alterna (DC o AC desde 7 a 16V) o a través del puerto USB 2.0 que dispone cualquier PC o Notebook y el rango de tensión que provee es de 4.5V a 5.5V. Las dimensiones de la placa son 210 mm de largo y 160 mm de ancho aproximadamente. Al ser un desarrollo destinado al aprendizaje, deja de lado la optimización del espacio e incorpora una gran variedad de interfaces de entrada y salida a lo largo de toda su superficie [16]. 3.5. PC/104 - PIC MICROSTACK La placa MicroStack puede ser alimentada a través de una fuente externa de 5V o bien a través de un cable USB y su conexión a cualquier PC y entrega un rango de tensiones de entre 5V y 3.3V. Sus medidas son 65mm x 80mm y su altura 16mm TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 68 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 3.6. PC/104 - COOL LITERUNNER-ECO Estos desarrollos fueron diseñados íntegramente pensando en su aplicación comercial o industrial por lo cual soportan grandes rangos de temperatura y sus medidas son ajustadas teniendo en cuenta su potencial de procesamiento. Sus dimensiones responden al Standard PC/104, 96mm x 90mm (3.775” x 3.550”) y los rangos de temperaturas soportados los siguientes: •0°C…+60°C (comercial) •-20°C…+60°C (industrial) •-40°C…+85°C (extendido) Su alimentación es a través de una fuente externa de 5V ±5 % y todas las tensiones necesarias son generadas en la placa. El consumo es aproximadamente 11W. 3.7. PC/104 - COOL LITERUNNER-LX800 Este es un desarrollo de similares características al anterior, sus medidas responden al Standard PC/104, 96mm x 90mm (3.775” x 3.550”) y los rangos de temperatura soportados son los siguientes: • 0°C…+60°C (comercial) • -20°C…+60°C (industrial) • -40°C…+85°C (extendido, opcional) La alimentación se realiza a través de una fuente externa de 5 V ±5 y todas las tensiones necesarias son generadas en la placa. Su consumo típico es menor al del desarrollo anterior rondando los 5W aunque en ocasiones puede alcanzar los 6W. 3.8. PC/104 - COREMODULE 435 Completando los desarrollos PC/104 encontramos condiciones similares en el CoreModule 435 el cual implementa un micro Vortex86DX. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 69 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Sus dimensiones, al igual que las 2 placas anteriores responden al Standard PC/104, es decir, 90x96mm (3.6x3.8”) y una altura de 2.36mm Los rangos de temperatura soportados son: • Standard: -20°C - +70°C • Extendido: -40°C - +85°C • Almacenamiento: -55°C - +85°C La alimentación se realiza a través de una fuente externa de 5V y posee un consumo de 6.5W 4. MEMORIA DE DATOS Y PROGRAMA La disposición de la memoria de datos y de programa esta fuertemente ligada a el tipo de arquitectura implementada siendo las mas representativas Harvard, caracterizada por poseer almacenamientos físicamente separados para los datos y las instrucciones y Von Neumann que utiliza el mismo dispositivo de almacenamiento tanto para datos como para instrucciones. Vale aclarar además las variantes técnicas de dispositivos de almacenamiento que encontraremos a lo largo del análisis. •EEPROM: Memoria programable y borrable electrónicamente. •SDRAM: Memoria de acceso dinámico y almacenamiento temporal por su condición de volátil. •FLASH: La memoria flash es una tecnología de almacenamiento derivada de la memoria EEPROM que permite la lecto-escritura de múltiples posiciones de memoria en la misma operación. •DDR: Memoria de acceso aleatorio y almacenamiento temporal por su condición de volátil. Es una evolución de la SDRAM. •MicroSD: Formato de memoria de almacenamiento permanente flash. Habiendo sido mencionada la arquitectura de cada desarrollo durante el comienzo de este documento, haremos una descripción de las características de las memorias de datos y programa de los desarrollos seleccionados. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 70 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 4.1. ARDUINO UNO El micro controlador ATmega328 posee 32 KB de memoria de los cuales 0.5KB están destinados al bootloader o sector de arranque, 2 KB de SDRAM y 1 KB de EEPROM integrados en el mismo chip lo cual evita en la mayoría de los casos la necesidad de utilizar almacenamiento externo requerido por algunas aplicaciones [9]. Memoria de Programa Las instrucciones del programa son almacenadas en la memoria Flash. Aunque la MCU es de 8 bits, cada instrucción puede tomar una o 2 palabras de 16 bits. El tamaño de la memoria de programa usualmente forma parte de la nomenclatura del dispositivo, Por ej. la linea Atmega64x posee 64kb de memoria Flash [9]. Memoria de Datos El espacio de direccionamiento de datos consiste en registros de archivo, registros de I/O y SRAM. Registros Internos Los microcontroladores de la familia AVR poseen 32 registros de trabajo de 8 bits cada uno. En muchas ocasiones son mapeados en las primeras 32 posiciones de memoria y seguidos de los 64 registros correspondientes a I/O [9]. EEPROM Casi todos los micro controladores AVR poseen una memoria EEPROM destinada al almacenamiento semi-permanente. Al igual que la Flash, la memora EEPROM es no volatil. En muchos casos, la memoria interna EEPROM no se encuentra mapeada dentro del espacio de direccionamiento de la MCU y por ello puede ser solamente accedida de la misma manera que una memoria externa. La memoria SDRAM es utilizada para el almacenamiento temporal de datos [9]. Atmega168 Memoria Flash SRAM EEPROM 16KB (2KB reservados para el bootloader) 1 KB 512 bytes Atmega328 (Arduino UNO) 32KB (2KB reservados para el bootloader) 2 KB 1 KB Atmega1280 128KB (4KB reservados para el bootloader) 8 KB 4 KB Tabla 5. Tamaño de memorias en los procesadores Atmega TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 71 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 4.2. PIC A diferencia de la mayoría de CPUs, no hay distinción entre los espacios de memoria y los espacios de registros, ya que la RAM cumple ambas funciones, y esta es normalmente referida como "archivo de registros" o simplemente, registros. Memoria de datos Los microcontroladores PIC poseen registros que funcionan como una RAM de propósito general. Los registros de propósito específico para los recursos de hardware disponibles dentro del propio chip también están direccionados en la RAM. La direccionalidad de la memoria varía dependiendo la línea de dispositivos, y todos los dispositivos PIC tienen algún tipo de mecanismo de manipulación de bancos de memoria que pueden ser usados para acceder memoria externa o adicional. Las series más recientes de dispositivos disponen de funciones que pueden cubrir todo el espacio direccionable, independientemente del banco de memoria seleccionado. En los dispositivos anteriores, esto debía lograrse mediante el uso del acumulador. Para implementar direccionamiento indirecto, se usa un registro de "selección de registro de archivo" (FSR) y uno de "registro indirecto" (INDF): Un número de registro es escrito en el FSR, haciendo que las lecturas o escrituras al INDF serán realmente hacia o desde el registro apuntado por el FSR. Los dispositivos más recientes extienden este concepto con post y pre incrementos/decrementos para mayor eficiencia al acceder secuencialmente a la información almacenada. Esto permite que se pueda tratar al FSR como un puntero de pila. La memoria de datos externa no es directamente direccionable excepto en algunos microcontroladores PIC 18 de gran cantidad de pines [32]. Tamaño de palabra El tamaño de palabra de los microcontroladores PIC es fuente de muchas confusiones. Todos los PICs (excepto los dsPIC) manejan datos en trozos de 8 bits, con lo que se deberían llamar microcontroladores de 8 bits. Pero a diferencia de la mayoría de las CPU, el PIC usa arquitectura Harvard, por lo que el tamaño de las instrucciones puede ser distinto del de la palabra de datos. De hecho, las diferentes familias de PICs usan tamaños de instrucción distintos, lo que hace difícil comparar el tamaño del código del PIC con el de otros microcontroladores. Por ejemplo, un microcontrolador tiene 6144 bytes de memoria de programa: para un PIC de 12 bits esto significa 4096 palabras y para uno de 16 bits, 3072 palabras [32]. El PIC16F1933 posee una memoria de programa tipo flash de 3.5KB y una RAM de 128 bytes TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 72 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 4.3. RASPBERRY PI Raspberry PI posee 256 MB de memoria RAM con el objetivo de ejecutar Linux. No incluye un disco duro o una unidad de estado sólido sino que utiliza una tarjeta SD para el sistema operativo y el almacenamiento permanente de datos. Se recomienda utilizar memorias SD de alta velocidad para el almacenamiento del sistema operativo. 4.4. FREESCALE EDUKIT 08 El CPU08 pertenece a la arquitectura del tipo “Von Neuman” clásica, característica de la familia 68xx de Freescale y ampliamente utilizada en todo el mundo. En este tipo de arquitectura, existe un solo Bus de datos, tanto para memoria de programas como para memoria de datos, lo que da origen a un mapa “lineal” de acceso a memoria y por consiguiente no existen instrucciones especiales y diferentes para trabajar con “datos” o con código de programa. De esta forma, todas las instrucciones son aplicables en cualquier parte del mapa de memoria sin importar si se trabaja con datos o código. Por lo que no es raro encontrar aplicaciones cuyos programas corran desde RAM como si estuvieran en FLASH. Esto no podría hacerlo una arquitectura Hardvard clásica MCU MC908AP32CFBE. Las características relacionadas con la memoria en el EDUKIT08 son las siguientes [34] • Memoria de programa Flash de 32 Kb • Memoria RAM de 2KB • Dispositivo de memoria externa EEPROM (24LC256) para prácticas de comunicaciones I2C 256kbits Los sistemas PC/104 usualmente requieren de dispositivos de almacenamiento semi permanente no volátiles. Las mas populares actualmente son las memorias Flash y los discos de estado solido (SSD) debido a su bajo consumo y a que los discos convencionales de desplazamiento mecánico son mas permeables a fallas en entornos hostiles. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 73 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 4.5. PC/104 - PIC MICROSTACK La arquitectura responde a la de PIC. La cantidad de memoria de datos y programa varía según el PIC elegido. El PIC16F887 posee una memoria de programa Flash de 14Kb, una memoria RAM de 368Bytes y una memoria de datos EEPROM de 256Kb. 4.6. PC/104 - COOL LITERUNNER-ECO Al igual que Raspberry Pi, Cool LiteRunner-ECO ejecuta el sistema operativo desde una memoria µSD booteable. Además posee una memoria RAM de 2GB DDR2 (tamaño variable según preferencia) soldada a la placa y su micro posee una cache de nivel 1 de 32KB para instrucciones y una de nivel 2 de 512 Kb. El Procesador posee un nivel de cache primario de 32KB para instrucciones y 24KB para datos y un nivel secundario de 512KB 8-way set associative. 4.7. PC/104 - COOL LITERUNNER-AMD LX800 El microcontrolador de la placa AMD LX800 posee una memoria de programa de 64k, una cache de nivel 1 de 64K y una de nivel 2 de de 128K. Posee una memoria RAM DDR400 de 256Mb 400MHz soldada a la placa y además dispone de un puerto SODIMM de 200-pin para capaz de soportar hasta 1GB DDR 333/400. 4.8. PC/104 - COREMODULE 435 La placa implementa los procesadores Vortex86SX 300MHz y Vortex86DX 800MHz. Los mismos poseen una Cache 16kB I-cache, 16kB D-cache. La placa posee una memoria RAM DDR2 de 256MB soldada y un puerto para conectar almacenamiento CompactFlash y 2 interfaces PATA DMA 100 IDE capaces de soportar hasta 2 discos rígidos. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 74 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE 5. INTERFACES DISPONIBLES CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Y PUERTOS DE ENTRADA/SALIDA 5.1. ARDUINO UNO Cualquiera de los 14 PINs digitales en el Arduino UNO puede ser programado para ser utilizados como entrada o Salida mediante funciones simples. Operan con una tensión de 5V y pueden proveer o recibir una corriente de 40 mA. Además existe la posibilidad de utilizar una resistencia de pull-up de 20-50KOhms [2]. Si bien todos los PINs pueden ser utilizados como entradas o salidas, existen algunos PINs que poseen funciones especiales como transmisión y recepción de datos seriales TTL, manejo de interrupciones externas, salidas analógicas PWM, manejo de LEDs, etc. De manera similar a Freescale Edukit08, los registros de puertos permiten la manipulación a mas bajo nivel y de forma mas rápida de los pines de E/S del micro controlador de las placas Arduino. Los pines de las placas Arduino están repartidos entre los registros B(0-7), C (analógicos) y D(813). Mediante las siguientes variables podemos ver y modificar su estado: • DDR[B/C/D]: Data Direction Register (o dirección del registro de datos) del puerto B, C ó D. Sirve para especificar que pines queremos usar como de entrada y cuales de salida. Variable de Lectura/Escritura. • PORT[B/C/D]: Data Register (o registro de datos) del puerto B, C ó D. Variable de Lectura/Escritura. • PIN[B/C/D]: Input PINs Register (o registro de pines de entrada) del puerto B, C ó D. Variable de sólo lectura. Por ejemplo, para especificar que queremos utilizar los pines 1 a 7 como salidas y el 0 como entrada, bastaría utilizar la siguiente asignación DDRD = B11111110; TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 75 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Fig. 9. Diagrama de componentes de Arduino UNO El Arduino UNO es capaz de establecer comunicación con una computadora, otro Arduino o incluso oto Micro controlador El ATmega328 implementa la tecnología de comunicación serial UART TTL (5V) mediante la utilización de los PINs 0 (RX) y 1 (TX). EL Firmware ATmega16U2 canaliza esta comunicación serial a través del puerto USB y facilita la conexión con el software de programación por computadora utilizando los drivers COM standard, es decir sin la necesidad de utilizar drivers externos [9]. 5.2. PIC – ICP05 IBOARD LITE iBoard Lite fue construido incorporando un amplio set de puertos que cubren diversos entornos de aplicación como control de Motores, Sensores, Log de datos, etc. A través de todos estos puertos, el usuario puede fácilmente conectar diferentes tipos de módulos externos de entrada salida con diversas fuentes de alimentación. Además incluye un puerto para la conexión de una pantalla LCD con la posibilidad de controlar el backlight y conexión directa con los PINs del PIC. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 76 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Fig. 10. Conexion de modulos en iBoard Lite A continuación se detallan los puertos de entrada y salida disponibles en la placa. •Diferentes entradas de alimentación VS1 y VS2 provenientes del PIC y de una fuente externa. •Conector ICSP para la programación on-board del PIC •Puerto para la conexión del display LCD •Socket 28-Pin IC •Puerto IO de 8 canales •Puerto analógico de 8 canales •Puerto para el manejo de servo motores de 4 canales. •Puerto USART de 1 canal •Puertos de comunicación (SPI/I2C/USART/PS2/USB) • Puerto para el manejo de motores paso a paso (ULN2003A - 500mA Darlington driver) - 1 canal •Puerto para manejo de motores de DC (L293D – con control de sentido y velocidad) - 1 canal •(ULN2003A & L293D no son provistos con la placa) •Convertidor Boost/Buck - 1 canal •Botones de encendido - SW1 (VS1) y SW2 (VS2) 5.3. RASPBERRY PI A la hora de describir la composición de hardware de un Raspberry PI no podemos evitar realizar una breve introducción al concepto de SoC (System on Chip). TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 77 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. System-on-a-chip o SoC (también referido como system-on-chip), describe la tendencia cada vez más frecuente de usar tecnologías de fabricación que integran todos o gran parte de los módulos componentes de un ordenador o cualquier otro sistema informático o electrónico en un único circuito integrado o chip. El diseño de estos sistemas puede estar basado en circuitos de señal digital, señal analógica, o incluso de señal mixta y a menudo módulos o sistemas de radiofrecuencia (módulos de comunicación inalámbrica: Wi-Fi, Bluetooth, etc.) [38]. Modelo A 1 Conector RCA, Puertos USB 2.0: Salidas de vídeo: Salidas de audio: Conectividad de red: Periféricos de bajo HDMI 3.5 mm jack, HDMI Ninguna Pines GPIO, SPI, I²C, nivel: UART26 Modelo B 2 (vía hub USB integrado) Conector RCA, HDMI 3.5 mm jack, HDMI RJ45 Pines GPIO, SPI, I²C, UART26 Tabla 6. Puertos de entrada y salida disponibles en los modelos A y B de Raspberry Pi A diferencia del modelo A, el modelo B incorpora un segundo puerto USB2.0 y un puerto de red 10/100 Base T. Si bien aún no se ha integrado un modulo WiFi, existe la posibilidad de utilizar un adaptador WiFi USB. A continuación una lista detallada de los puertos de entrada y salida presentes en Raspberry Pi Modelo B: 5.3.1. Características Raspberry Pi Modelo B • LAN9512 (Solo Modelo B) : • 10/100Mb Ethernet (Auto-MDIX)[4] • Conector Micro USB (5v – Solo para alimentación) • Interface DSI de 15-PINs que provee 2 canales de datos, 1 canal de clock, 1 de 3.3v y 1 de GND. A futuro dará soporte a la conexión de múltiples pantallas. • Salida de Video HDMI • Salida de video Composite RCA • Interface MIPI CSI-2 de 15 PINs. A futuro dará soporte a módulos de expansión de cámara. La GPU soporta la captura de imágenes de hasta 40MPixels y captura de video 1080p 30fps • Salida de Audio Stereo de 3.5mm • Slot de memoria SD/MMC/SDIO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 78 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. • 1x USB 2.0 (Modelo A) 2x USB 2.0 (Modelo B) • Cabezal de expansión 26-pin 2.54 mm: see • 8 GPIOs 3v3 (entradas/salidas de propósito general) • 2-pin UART consola serial, 3v3 TTL (depuración); o 2 GPIOs 3v3 • Interfaz I²C (3v3); or 2 GPIOs at 3v3 • Interfaz SPI (3v3); or 5 GPIOs at 3v3 • 3v3, 5v y GND • ARM JTAG • Segunda Interfaz I²C interface (3v3) (PINs configurados por software) • Interfaz I²S (PINs configurados por software) • 6 PINs reservados para uso futuro • Cabezal de expansión de 8-pin 2.54 mm destinado a GPU JTAG* • Cabezal de expansión 7-pin 2.54 mm destinado a LAN9512 JTAG* • Puerto Ethernet 10/100Mb RJ45 (Modelo B) • TP1 and TP2 que proveen +5V y GND respectivamente • 5 Leds de estado: • D5(Green) - OK – Actividad SDCard • D6(Red) - PWR - 3.3 V Alimentación • D7(Green) - FDX - Full Duplex (LAN) (Modelo B) • D8(Green) - LNK - Link/Activity (LAN) (Modelo B) • D9(Yellow) - 10M - 10/100Mbit (LAN) (Modelo B) TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 79 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Fig. 11. Diagrama de modulos Raspberry Pi Model B (*) JTAG, un acrónimo para Joint Test Action Group, es el nombre común utilizado para la norma IEEE 1149.1 titulada Standard Test Access Port and Boundary-Scan Architecture para test access ports utilizada para testear PCBs (Printed Circuit Boards) utilizando escaneo de límites. Diseñado originalmente para circuitos impresos, actualmente es utilizado para la prueba de submódulos de circuitos integrados, y es muy útil también como mecanismo para depuración de aplicaciones empotradas, puesto que provee una puerta trasera hacia dentro del sistema. Cuando se utiliza como herramienta de depuración, un emulador en circuito que usa JTAG como mecanismo de transporte permite al programador acceder al módulo de depuración que se encuentra integrado dentro de la CPU. El módulo de depuración permite al programador corregir sus errores de código y lógica de sus sistemas [40]. Periféricos de Bajo Nivel Además de los ya conocidos puertos USB, Ethernet y HDMI, Raspberry Pi ofrece una serie de interfaces de bajo nivel diseñadas para conectar al mismo de manera más directa con otros chips o módulos. Esta GPIO (I/O de propósito general) es capaz de controlar LEDs, servo motores y otros componentes electrónicos. I/O de Propósito General (GPIO) Las GPIO se presentan en forma de PINs genéricos cuyo comportamiento, incluyendo su condición de entrada o salida, puede ser programada a través del software. La Raspberry Pi permite a los periféricos y los módulos de expansión acceder a la CPU a través de estos PINs. Los mismos se presentan el la placa en un cabezal de expansión de 26 pines distribuidos TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 80 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. en 2 columnas de 13 PINs cada una. Proveen 8 PINs GPIO y acceso a interfaces I²C, SPI, UART, SPI (Serial Peripheral Interface), terminales de alimentación +3v3, +5v y GND, terminales PWM (Pulse-width modulation), entre otros. El nivel de voltaje manejado por las GPIO es de 3.3 V x 2-16 mA y no toleran la utilización de 5v. Si bien no esta soportado en el kernel oficial, las GPUs pueden ser utilizadas como interrupción recompilando el kernel desde fuentes modificadas. MIPI CSI-2 Es una interface de Cámara Serial ubicada entre los conectores Ethernet y HDMI a través de la cual se podrá conectar una Cámara compatible que será producida a corto plazo. DSI Interface de Pantalla Serie. Posee 2 canales de datos y 1 de clock pensados para controlar dispositivos LCD. Algunos Smartphones implementan esta tecnología en la actualidad. CEC Consumer Electronics Control (CEC) es una característica de la interface de video HDMI diseñada para controlar otros dispositivos con la misma característica a través de un solo comando remoto. Esa característica se torna sumamente relevante a la hora de pensar en Raspberry Pi como un media center. Mas adelante conoceremos el software necesario para implementar esta aplicación. 5.4. FREESCALE – EDUKIT08 El EDUKIT08 fue diseñado como un dispositivo fuertemente orientado a la educación, por ello implementa una gran variedad de módulos de entrada y salida directamente incorporados en la placa y listos para ser utilizados. Algunas características sobresalientes relativas a la interacción con el medio son las siguientes: • Plataforma de trabajo completa, con los circuitos necesarios para realizar prácticas de distintos periféricos utilizados frecuentemente en las aplicaciones con microcontroladores. • No es necesario “cableado” o armado de placa alguna por parte del estudiante, facilitando las prácticas, ahorrando costos en materiales, y reduciendo los tiempos de “puesta en marcha” de las experiencias. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 81 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. • Permite “focalizar” al estudiante y al docente en las prácticas con los distintos módulos que componen un MCU de la familia Freescale, y no “gastar” tiempo en la preparación de las mismas. • Herramienta de Emulación en Tiempo Real / grabación de la memoria Flash incorporada dentro del sistema didáctico, lo que permite facilidad de uso y ahorro de dinero al no usar herramientas externas. • El sistema “EDUKIT08” está equipado con periféricos poco comunes en otros sistemas didácticos, como la interface RS-485 Master / Slave para soportar redes de hasta 32 nodos, o la interface IRDA / SIR que permite establecer comunicaciones inalámbricas infrarrojas hasta una distancia de 1 mts y 115 KBps con otro sistema idéntico o con otro dispositivo IRDA. • Facilidad de adaptación para trabajar con distintas familias de 8 y 32 Bits de Freescale, por medio de las placas removibles “PLUGIN”. • El sistema didáctico ha sido diseñado para crecer en prestaciones y aplicaciones gracias a una gama de “placas de expansión” que permiten realizar múltiples experiencias (sistemas de control, comunicación por RF con tecnología ZigBee, manejo de display gráfico, etc.). A continuación, los módulos incluidos: • Display inteligente LCD 16 caracteres x 2 líneas con backlight, control de Contraste para escritura a 8 y 4 bits de datos. • Display LED de 4 dígitos de 7 segmentos con punto decimal para escritura por multiplexación de líneas. • Puerto Serial UART RS-232C (SCI1) para prácticas de comunicación con distintos dispositivos externos (PCs, Modems, Impresoras, otros EDUKIT08, etc.). • Puerto Serial UART RS-232C / RS-485 / Infrarrojo IRDA (SCI2), seleccionable por medio de Jumpers, para comunicaciones en red, inalámbricas, etc.). • 4 pulsadores para función KBI (KeyBoard Interrupt) y usos grales • Diodos LEDs de usos grales., indicaciones y “monitoreo” de señales varias. • Dispositivo de memoria externa EEPROM (24LC256) para prácticas de comunicaciones I2C. • MCU integrado para emular comunicaciones SPI y Generación de Señales para prácticas de función ICAP (captura de pulsos). • Diodo LED de potencia para prácticas de control por PWM. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 82 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. • Sensor de Temperatura (LM335Z) y Preset para prácticas conversor A/D de 8 y 10 Bits de Resolución. • Puertos I/O de propósitos grales., IRQ e interface SPI disponibles mediante jumpers. . Fig. 12. Pulsadores y displays de 7 segmentos en EDUKIT08 5.5. PC104 – PIC MICROSTACK Mas alla de sus 2 puertos USB, el PIC MicroStack no incorpora una gran variedad de módulos de entrada y salida embebidos en la placa principal pero compensa dicha carencia su apego al standard PC/104 lo que lo hace ampliamente compatible con cualquier desarrollos que se ajuste a dicho standard. Existe una gran variedad de placas PC/104 que adicionan dispositivos de entrada y salida como sensores, actuadores, etc. Posteriormente conoceremos en mas detalle algunos de los módulos disponibles en el mercado. Fig. 13. Diagrama de modulos de PIC Microstak TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 83 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 5.6. PC/104 - COOL LITERUNNER-ECO Esta placa incorpora una interesante combinación de interfaces. Posee 2 Puertos Ethernet de 1Gbi para comunicaciones de alta velocidad, 2 puertos SATA para la conexión de dispositivos de almacenamiento semi permanente como discos rígidos mecánicos (HDD) o de estado sólido (SSD), Puertos seriales LPT y PS2 y 8 PINs de entrada/salida de propósito general libremente configurables por software. En el plano audiovisual, posee conexiones VGA y LVDS e interfaces de sonido de alta definición digital y analógica. A continuación una lista de los puertos presentes en la placa: •VGA and LVDS (c/ backlight) •2 x Gigabit LAN •2 x SATA •7 x USB 2.0 hosts •2 x RS232/RS422/RS485 •HD Audio •I/O Signals 8 GPIO •Mini PCI Express 1 slot 5.7. PC/104 - COOL LITERUNNER-LX800 Cool LiteRunner-LX800 presenta una configuración muy similar a la de una PC convencional. Posee 2 puertos de red Ethernet 100/10 BaseT, 4 puertos USB 2.0, Puertos serial PS2, RS232/RS422/RS485, puerto de video VGA y Audio AC97. Adicionalmente incorpora 8 entradas y salida. A continuación una lista completa de los dispositivos e interfaces de entrada y salida disponibles en este desarrollo. •Graphics up to 1920 x 1440 pixels - CRT, TFT, LVDS, with backlight •2x 100/10 BaseT Ethernet •4 x USB 2.0 •AC97 sound •IDE Ultra ATA100, CompactFlash™ socket •Mini-PCI slot TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 84 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. •Graphics Integrated in the Geode LX800. Up to 254 MB video memory. •CRT Analog VGA 1920 x 1440 pixel at 85 Hz max. •TFT Single channel, 18 bits 1600 x 1200 pixel at 60 Hz max. •LVDS Single channel, 18 and 24 bits 1600 x 1200 pixel at 60 Hz max. •Audio AC97 2.1, 2 channels •Serial 2 x RS232/RS422/RS485 •1 x RS485/Irda with termination •IDE 1 x Ultra ATA100 (ATA6) port •Compact Flash Type 2 socket •LPT Multi-Mode™ bi-directional Parallel •PS2 Keyboard, mouse •GPIO 8 programmable signals •Status LED HDD, power, standby, power mode, live, 4x Ethernet, watchdog •ISA Bus PC/104 •PCI Bus Mini-PCI slot •I²C bus Supported 5.8. PC/104 - COREMODULE 435 De similares características a Cool LiteRunner-LX800, CoreModule 435 presenta los siguientes puertos de entrada y salida: •4 Serial, 2 USB, 8 GPIOs •PC/104 ISA •PATA DMA 100 IDE interface supports up to two hard drives •Storage CompactFlash socket •Serial 2x RS-232, 2x RS-232/422/485 •USB 2x USB 2.0 ports •KB/MS PS/2 interface •GPIO Eight general-purpose digital I/O PINs •Ethernet 1x integrated Vortex86 10/100 port and 1x Intel 82451PI •1 x Gigabit Ethernet TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 85 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. •1 x VGA Video Interface, Graphics Engine Integrated 2D, 64-bit, single-cycle, 100MHz Resolution 1600x768, Video Memory 32MB/64MB DDR2 •TTL/TFT Dual channels 12-bit or Single Channel 18-bit color depths 6. MÓDULOS DE EXPANSIÓN Además de los dispositivos y puertos de entrada y salida embebidos en la placa, cada desarrollo permite anexar a si mismo diversos módulos independientes, capaces de ampliar su capacidad de interacción con el medio. A continuación presentaremos algunos de los módulos mas significativos disponibles en el mercado para cada desarrollo. 6.1. ARDUINO UNO Las denominadas placas "Shield" son extensiones para Arduino (generalmente Arduino UNO o Arduino Pro 328) que permiten expandir sus posibilidades de inter-conectividad. Fig. 14. Placas de expansion PC/104 Mencionamos a continuación, las placas mas destacadas. •Arduino WIFI Shield •Arduino Motor Shield •Arduino Wireless SD Shield •EasyVR Arduino Shield TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 86 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. •Arduino RFID Shield •Arduino Musical Shield •Arduino CAN-BUS Shield •Arduino MicroSD Shield •Arduino USB Host Shield •Arduino Screw Shield •Arduino Cellular Shield •Arduino GPS Shield •Arduino SD Shield •Arduino Photo Shield •Arduino Ethernet Shield 6.2. PIC – IBOARD ICA05 Entre los módulos de expansión disponibles para el iBoard ICA05 destacamos el siguiente. ICA05 – Kit de desarrollo gráfico LCD Este kit incorpora un completo set capaz de abarcar cualquier tipo de aplicación (Oscilosconpio, monitoreo de señales, visualización de gráficos, etc.). Posee un puerto externo GLCD a través del cual el usuario puede montar LCD a la estructura cobertora del modulo. Adicionalmente incluye sensores de temperatura, luz y voltaje fácilmente interconectables con los PINs del PIC. Fig. 15. Modulo de expansion serial y display 7 segmentos en iBoard Lite 6.3. FREESCALE – EDUKIT08 Gracias al diseño “removible” de las placas “PLUGIN”, el sistema puede personalizarse para trabajar con las distintas familias de 8 Bits y de 32 Bits Flash que posee Freescale, haciendo que el TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 87 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. sistema “evolucione” hacia familias más poderosas y con más prestaciones que la popular HC908. [16] Algunas de las placas “PLUGIN” para trabajar con HC908, HC9S08, y Serie FLEXIS 8 / 32 Bits disponibles son: 9. Placa “PLUGIN_AP” contiene MC68HC908AP32 para HC908. 10. Placa “PLUGIN_AW” contiene MC9S08AW60 para HC9S08. 11. Placa “PLUGIN_FLX08” contiene MC9S08AC60CFUE para HC9S08 Flexis. 12. Placa “PLUGIN_FLXCV1” contiene MCF51AC256AVFUE para ColdFire “V1”Flexis con módulo CAN. 13. Placa “PLUGIN_FLXJM” contiene MCF51JM128CFUE para ColdFire “V1” Flexis con módulo USB. 6.4. RASPBERRY PI Existe una gran cantidad de conexiones en Raspberry Pi capaces de ser utilizadas como puertos de expansión. Entre los principales encontramos: •Rpi GPIO (Entrada/Salida de propósito general) completamente configurable por software. •Conector DSI que permite la conexión y control de pantallas LCD. •Conector CSI que permite la conexión de una cámara. Fig. 16. Modulo de expansion en Raspberry Pi Los módulos adicionales más significativos disponibles para Raspberry Pi son los siguientes: Heber x10i Heber x10i permite administrar múltiples entradas y salidas vía USB en tiempo real desde una PC. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 88 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. AFLEX Es un módulo de control dual de motores y adquisición de datos con interfaces I2C y serial. Provee drivers para el manejo de 2 motores de hasta 3.5A, un puerto de 8bits con PINs configurables como entrada, salida o entrada analógica, un conversor analógico digital ADC de 10 bits con hasta 4 canales analógicos, 4 entradas para conexiones de sensores y un sensor infrarrojo. GELI 'jelly'(GPIO Experimenter and Lab Interface Board) Modulo expansor de GPIO que incorpora conversores analogico-digitales, control de motores de continua, un puerto RS232, un clock de tiempo real FS1307 y una placa de desarrollo iWire de 150mm x 100mm. aLaMode “À la mode” es un clon de Arduino diseñado para oficiar de interface con Raspberry Pi. Incorpora sensores, manejo de servo motores y un clock de tiempo real. PiBorg Pi borg es un modulo que permite controlar motores de continua, motores paso a paso, BLDC y Solenoides de hasta 10A desde Raspberry PI. Permite administrar velocidad, aceleración y sentido de los mismos. Pi232 RS232 board Pi232 incorpora un puerto RS232 que se conecta al GPIO. Relay board and Raspberry Pi GPIO Modulo expansor que incorpora 8 relays y 8 entradas adicionales. MiniPiio L293D Es un pequeño modulo (50mm x 40mm) que adiciona dual H-Bridge para el control de motores de continua utilizando un chip L283D MiniPiio DIO16 Es un modulo que adiciona 16 canales de entradas/salidas digitales. Puede añadirse a partir del puerto SP1 o I2C. MiniPiio RS232 Incorpora una interface basica TTL-RS232. Sus medidas son 50mm x 40mm TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 89 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Para conocer mas módulos visitar http://elinux.org/RPi_Expansion_Boards 6.5. PC/104 El standard PC/104 vuelve fácilmente expandibles a los desarrollos que lo implementan. La medida de las placas es fija al igual que el puerto de interconexión (ISA, PCI o PCI-Express) y su posición en la placa con la intención de agruparlas en forma de pila ahorrando espacio y reduciendo la cantidad de conectores necesarios. Existen 3 implementaciones del standard PC/104 que varían en el puerto utilizado para la interconexión de las capas. •PC/104: Utiliza el puerto ISA •PCI-104: Utiliza el puerto PCI •PC/104-Plus: Permite utilizar ISA o PCI •PC/104-Express: Permite utilizar los puertos PCI y PCI Express. Fig. 17. Diagrama de interconexion de placas PC/104 Algunos módulos de expansión disponibles en el standard PC/104 y sus variantes son: MiniModule SIO Provee una gran flexibilidad a sistemas basados en CoreModule 730 expandiendo sus opciones de entrada/salida. Incluye además del puerto de interconexión PC/104 (ISA), puertos seriales, paralelos, Lectora de diskettes (Floppy) e interfaces PS/2. Sus principales características son: TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 90 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 14. PC/104 (ISA Bus) 15. 4 serial ports - 2 with DB-9 connectors on I/O edge, 2 by pin header 16. 2 USB 2.0 ports, Parallel Port, Floppy, PS/2, I2C, LPC Modulo Multi-funcion analogico y digital PCM-MIO-G Diseñada principalmente para asistir a la conversion analogico-digital de alta precision, el modulo PCM-MIO-G presenta las siguientes especificaciones: Fig. 18. Interconexion de placas PC/104 o “Stack” Entradas Analógicas: • Two 8-channel, 16-bit Analog-to-Digital (A/D) (LTC-1859CG) with sample-and-hold circuit support • Sample Rate: 85 ksps • Conversion Rate: 100 ksps • Each channel independently software programmable for input type and range • Input ranges: 0-5V, 0-10V, +/-5V or +/-10V • Input Protection: +/-25V • Supports industry standard signal conditioners TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 91 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. • Any combination of up to 16 single-ended input channels and up to 8 differential input channels • DMA or interrupt I/O supported Salidas Analógicas: • Two, 4-channel, 12-bit Digital-to-Analog (D/A) (LTC-2704CGW-12) • Output ranges: 0-5V, 0-10V, +/-5V or +/-10V • Each channel independently software programmable for output type and range • Output channels can be updated and cleared individually or simultaneously • Interrupt I/O supported • Supports industry standard signal conditioners • Digital I/O • 48 Bidirectional lines with Input, Output or Output with Readback with event-sense support (WS16C48) • 12 mA Sink Current • Compatible with industry standard I/O racks El modulo opera dentro del rango de temperatura -40°C to +85°C. 7. PROGRAMACIÓN 7.1. ARDUINO UNO El entorno de programación de Arduino es fácil de usar para principiantes y lo suficientemente flexible para los usuarios avanzados. Pensando en los docentes, Arduino está basado en el entorno de programación de Procesing con lo que el estudiante que aprenda a programar en este entorno se sentirá familiarizado con el entorno de desarrollo Arduino. [33] La plataforma Arduino se programa mediante el uso de un lenguaje propio basado en el popular lenguaje de programación de alto nivel Processing. Sin embargo, es posible utilizar otros lenguajes de programación y aplicaciones populares en Arduino. Algunos ejemplos son Java, Flash, C#, Perl, Python, y Ruby, entre otros. Esto es posible debido a que Arduino se comunica mediante la transmisión de datos en formato serie que es algo que la mayoría de los lenguajes anteriormente TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 92 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. citados soportan. Para los que no soportan el formato serie de forma nativa, es posible utilizar software intermediario que traduzca los mensajes enviados por ambas partes para permitir una comunicación fluida [33]. Es interesante tener la posibilidad de operar Arduino mediante esta gran variedad de sistemas y lenguajes puesto que dependiendo de cuales sean las necesidades del problema que vamos a resolver podremos aprovecharnos de la gran compatibilidad de comunicación que ofrece. Arduino esta basado en C y soporta todas sus funciones estándar y algunas de C++. Además existen interfaces de programación gráfica como Pduino y Minibloq. El micro controlador ATmega 328 contiene un bootloader pre grabado que permite la carga del código a través del mismo sin la necesidad de programadores externos, puede ser programado a través del puerto USB mediante el software Arduino o utilizando la interface ICSP de programación serial (In-Circuit Serial Programming) lo cual sobreescribirá el bootloader. El software Arduino de programación puede ejecutarse tanto en MS Windows como en GNU/Linux o bien puede utilizarse Atmel para Windows o DFU en Linux y Mac OS X [33]. Librerías Arduino posee una gran variedad de Librerías que facilitan ampliamente su programación. Entre ellas destacamos: • Serial: Lectura y escritura mediante el puerto serie. • EEPROM: Lectura y escritura en el almacenamiento permanente. • Ethernet: Conexión a Internet mediante “Arduino Ethernet Shield“. Puede funcionar como servidor que acepta peticiones remotas o como cliente. Se permiten hasta cuatro conexiones simultaneas; • Firmata: Comunicación con aplicaciones de PC utilizando el protocolo estándar del puerto serie. • LiquidCrystal: Control de LCDs con chipset Hitachi HD44780 o compatibles. La biblioteca soporta los modos de 4 y 8 bits. • Servo: Control de servo motores. A partir de la versión 0017 de Arduino la biblioteca soporta hasta 12 motores en la mayoría de placas Arduino y 48 en la Arduino Mega. El manejo de la biblioteca es bastante sencillo. Mediante attach(número de pin) añadimos un servo y mediante write podemos indicar los grados que queremos que tenga el motor (habitualmente de 0 a 180). TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 93 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. • SoftwareSerial: Comunicación serie en pines digitales. Por defecto Arduino incluye comunicación sólo en los pines 0 y 1 pero gracias a esta biblioteca podemos realizar esta comunicación con el resto de pines. • Stepper: Control de motores paso a paso unipolares o bipolares. El manejo es sencillo. Basta con iniciar el motor mediante Stepper indicando los pasos que tiene y los pines a los que esta asociado. Se indica la velocidad a la que queramos que gire en revoluciones por minuto con setSpeed(rpm) y se indican los pasos que queremos que avance con step(pasos). Existe la posibilidad de anexar el modulo Arduino Motor Shield basado en el circuito integrado L298, el cual es driver doble "full bridge" diseñado para controlar cargas inductivas como relays, solenoides, motores DC y motores paso a paso. Permite manejar dos motores DC con la placa Arduino, controlando la velocidad y dirección de cada uno de forma independiente. También se puede medir la absorción de corriente de cada motor, entre otras características. • Wire: Envío y recepción de datos sobre una red de dispositivos o sensores mediante Two Wire Interface (TWI/I2C). Además las bibliotecas Matrix y Sprite de Wiring son totalmente compatibles con Arduino y sirven para manejo de matrices de leds. Creación de bibliotecas Además de las bibliotecas base, las que son compatibles y las que han aportado otras personas tenemos la posibilidad de escribir nuestra propia biblioteca. Esto es muy interesante por varias razones: • Permite disponer de código que puede reutilizarse en otros proyectos de forma cómoda • Nos permite mantener el código fuente principal separado de las bibliotecas de forma que sean mantenibles de forma separada; • Permite una organización de los programas construidos más clara y elegante. 7.2. PIC El PIC usa un juego de instrucciones tipo RISC, cuyo número puede variar desde 35 para PICs de gama baja a 70 para los de gama alta. Las instrucciones se clasifican entre las que realizan operaciones entre el acumulador y una constante, entre el acumulador y una posición de memoria, TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 94 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. instrucciones de condicionamiento y de salto/retorno, implementación de interrupciones y una para pasar a modo de bajo consumo llamada sleep [32]. Microchip proporciona un entorno de desarrollo freeware llamado MPLAB que incluye un simulador software y un ensamblador aunque otras empresas desarrollan compiladores C y BASIC. Microchip también vende compiladores para los PICs de gama alta ("C18" para la serie F18 y "C30" para los dsPICs) y se puede descargar una edición para estudiantes del C18 que inhabilita algunas opciones después de un tiempo de evaluación. Para el lenguaje de programación Pascal existe un compilador de código abierto, JAL, lo mismo que PicForth para el lenguaje Forth. GPUTILS es una colección de herramientas distribuidas bajo licencia GPL que incluye ensamblador y enlazador, y funciona en Linux, MacOS y Microsoft Windows. GPSIM es otra herramienta libre que permite simular diversos dispositivos hardware conectados al PIC [32]. La mayoría de las instrucciones se ejecutan en un solo ciclo de ejecución (4 ciclos de clock), con ciclos de único retraso en las bifurcaciones y saltos. Existe un solo acumulador (W), cuyo uso (como operador de origen) es implícito (no está especificado en la instrucción) y todas las posiciones de la RAM funcionan como registros de origen y/o de destino de operaciones matemáticas y otras funciones. Implementa una pila de hardware para almacenar instrucciones de regreso de funciones y posee una relativamente pequeña cantidad de espacio de datos direccionable (típicamente, 256 bytes), extensible a través de manipulación de bancos de memoria [32]. El espacio de datos está relacionado con el CPU, puertos, y los registros de los periféricos, el contador de programa esta también relacionado dentro del espacio de datos y es posible escribir en él (permitiendo saltos indirectos). A diferencia de la mayoría de otros CPU, no hay distinción entre los espacios de memoria y los espacios de registros, ya que la RAM cumple ambas funciones, y esta es normalmente referida como "archivo de registros" o simplemente, registros. Para transferir el código de un ordenador al PIC normalmente se usa un dispositivo llamado programador. La mayoría de PICs que Microchip que se distribuyen hoy en día incorporan ICSP (In Circuit Serial Programming, programación serie incorporada) o LVP (Low Voltage Programming, programación a bajo voltaje), lo que permite programar el PIC directamente en el circuito destino. Para la ICSP se usan los pines RB6 y RB7 (En algunos modelos pueden usarse otros pines como el TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 95 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. GP0 y GP1 o el RA0 y RA1) como reloj y datos y el MCLR para activar el modo programación aplicando un voltaje de 13 voltios [32]. Existen muchos programadores de PICs, desde los más simples que dejan al software los detalles de comunicaciones, a los más complejos, que pueden verificar el dispositivo a diversas tensiones de alimentación e implementan en hardware casi todas las funcionalidades. Muchos de estos programadores complejos incluyen ellos mismos PICs preprogramados como interfaz para enviar las órdenes al PIC que se desea programar. Uno de los programadores más simples es el TE20, que utiliza la línea TX del puerto RS232 como alimentación y las líneas DTR y CTS para mandar o recibir datos cuando el microcontrolador está en modo programación. El software de programación puede ser el ICprog, muy común entre la gente que utiliza este tipo de microcontroladores. Entornos de programación basados en interpretes BASIC ponen al alcance de cualquiera proyectos que parecieran ser ambiciosos [32]. A continuación una buena recopilación de herramientas de desarrollo para PICs: • PICStart Plus (puerto serie y USB) • Promate II (puerto serie) • MPLAB PM3 (puerto serie y USB) • ICD2 (puerto serie y USB) • ICD3 (USB) • PICKit 1 (USB) • IC-Prog 1.06B • PICAT 1.25 (puerto USB2.0 para PICs y Atmel) • WinPic 800 (puerto paralelo, serie y USB) • PICKit 2 (USB) • PICKit 3 (USB) • Terusb1.0 • Eclipse (PICs y AVRs. USB.) • MasterProg (USB) • Además es posible hacer un programador de manera casera, en http://microspics.blogspot.com hay una lista con los más utilizados. • Depuradores integrados • ICD (Serie) • ICD2 (Serie ó full speed USB - 2M bits/s) TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 96 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. • ICD3 (High speed USB - 480M bits/s) • Emuladores • Proteus - ISIS • ICE2000 (puerto paralelo, convertidor a USB disponible) • ICE4000 (USB) • PIC EMU • PIC Cdlite 7.2.1. PIC- ICP05 iBoard Lite Como se menciono en el apartado anterior, una de las metodologías de programación utilizadas en los PICs distribuidos en la actualidad es ICSP (In Circuit Serial Programming). ICP05 iBoard Lite no es la excepción e incorpora dicho puerto. Además posee puertos de comunicación SPI/I2C/USART/PS2/USB. 7.3. RASPBERRY PI Como fue mencionado anteriormente, Raspberry Pi esta diseñado para utilizar sistemas operativos basados en el kernel de Linux debido a su gran capacidad de adaptabilidad a especificaciones de hardware de baja y mediana performance permitiendo optimizar la utilización de los recursos. Si bien la distribución de Linux Debian es la mas recomendada en la actualidad y puede ser descargada libremente del sitio de Raspberry, existen diversas opciones compatibles como: OS Completo: •Arch Linux ARM •Debian 6.0 (Squeeze) •Gentoo Linux •Google Chrome OS •Puppy Linux •Raspberry Pi Fedora Remix •Raspbian (Wheezy port with faster FP support) •RiscOS •Slackware ARM (formally ARMedslack) •QtonPi (embedded Linux) TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 97 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Distribuciones livianas multi-proposito: • Squeezed Arm Puppy for ARMv6 (sap6) Distribuciones livianas dedicadas: • IPFire • OpenELEC • Raspbmc (Media Center) • XBMC (Media Center) La GPU es accedida a través del firmware que es cargado en la misma en tiempo de booteo proveniente de la tarjeta SD. Esta imagen es conocida como Image Blob. Las aplicaciones utilizan llamadas en tiempo de ejecución a librerías de código cerrado las cuales a su vez, realizan llamadas a drivers de código abierto en el Kernel de Linux. Las aplicaciones de vídeo utilizan OpenMax, las aplicaciones 3D utilizan OpenGL ES y las aplicaciones 2D utilizan OpenVG. Estos últimos 2 a su vez, utilizan EGL. OpenMAX y EGL utilizan drivers de código abierto del Kernel. Programación El Sistema Operativo de Raspberry Pi se basa en el kernel de Linux como mencionamos anteriormente y soporta, entro otros lenguajes de programación como Python, BBC Basic, C y Perl principalmente, los mencionados en la siguiente lista: Testeados en la placa: •Clojure •gcc •g++ •Interp •Mono (C#) •OCaml •NodeJS 0.6.18 (Javascript) •Perl •Python (Lenguaje principal) •Ruby 1.9.2 (KidsRuby) •Scala TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 98 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Se espera que funcionen: • Java • Eclipse • Tcl/Tk • Lazarus • (maybe) BoaConstructor • Anjuta for C/C++ • Dev-C++ • CodeBlocks • Lua • BBC BASIC • mdfs.net • ROOL • Small Basic • Squeak implementation of Smalltalk • Processing • Other BASIC variants common to Debian/Ubuntu/Fedora etc. are all likely to work fine, including: • basic256 - educational BASIC programming environment for children • bwbasic - Bywater BASIC Interpreter • sdlbasic - BASIC interpreter for game development • yabasic - Yet Another BASIC interpreter • Regina Rexx • GalaxC programming language and XXICC "Chicken Coop" environment (works in progress) Entornos gráficos de Programación soportados: •Gambas (Estilo Visual Basic) •Scratch •Alice •Android App Inventor •Kodu •Star Logo TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 99 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. •PrimerLabs CodeHero Lenguajes orientados a Robótica: •Lego Mindstorms •Kturtle and other Logo/turtle graphics (The IO board supports motor drive outputs) 7.4. FREESCALE – EDUKIT08 El sistema EDUKIT08 es 100% compatible con entornos integrados de desarrollo como el WinIDE de P&E Microcomputer Systems, CodeWarrior 5.x / 6.x de Freescale Semiconductor, ICC08 de Imagecraft, Cosmic Compiler, etc Entorno WinIDE: El sistema didáctico soporta entornos integrados de trabajo como el WinIDE (un entorno muy sencillo para el estudiante que recién hace sus primeros pasos en el mundo de los MCUs) que permite trabajar en Assembler en forma muy integrada. [16] • Edición con WinIDE (editor de Texto). • Ensamblado con CASM08 compilador assembler. • Programación de la memoria FLASH con el PROG8SZ y múltiples Algoritmos de programación ".08p". • Carga de código en memoria FLASH para uso de depuración. Emulación en Tiempo Real y depuración con ICD08SZ, incluyendo: • Carga de código en RAM. • Ejecución "Real -Time" en RAM o FLASH (grabada con PROG08SZ) • Un "hardware breakpoint" en FLASH (en cualquier posición flash) • Multiples breakpoints en RAM • Modos de ejecución Paso a Paso, Multi-paso, y continuo. • Depuración en "Real - Time" sin demoras o instrucciones extra. • Visualización en pantalla de registros del CPU, ventana de memoria, variables elegidas por el usuario, etc. • Documentación de Ayuda "On-Line" para todo el software. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 100 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. • Software integrado dentro del entorno WinIDE, permite acceso inmediato a las aplicaciones. Entorno Integrado CodeWarrior: El entorno CodeWarrior de Freescale Semiconductor es un entorno muy profesional apto para trabajar con todas las familias de 8 a 32 bits que permite realizar proyectos tanto en Assembler como en código “C” y posee una herramienta de configuración de periféricos llamada “Processor Expert” que facilita la tarea de configuración de los registros de cada uno de los periféricos utilizados en una aplicación por medio de simples “Clicks” en distintas opciones. [16] 7.5. PC/104 - PIC MICROSTACK La metodología de programación de los PICs ha sido explicada en apartados anteriores por lo cual continuaremos con particularidades que incorpora el desarrollo MicroStack. La instalación del software Mecanique Microcode Loader automáticamente instala un puerto COM virtual en la PC o Laptop habilitando al conexión directa con el MicroStack a través de un cable USB y permitiendo la carga de archivos .hex generados por la mayoria de los compiladores PIC como MPLAB. El software de programacion MicroCode Loader funciona en Windows 95, 98, ME, NT, 2000, XP y Vista y es muy intuitivo. No es necesario hardware adicional para la programación en tanto se utilice un PIC con BootLoader y la placa sea alimentada a través del puerto USB. El puerto COM virtual permite la comunicación serial simple a traves del USB1 para, por eje, log de datos. Los desarrollos siguientes implementan arquitecturas tradicionales de PC como x86 por lo cual soportan sistemas operativos convencionales como Windows y Linux y consecuentemente todos los entornos de desarrollo correspondientes a los lenguajes de programación soportados por dichas plataformas. A continuación los sistemas operativos soportados por cada desarrollo. 7.6. PC/104 - COOL LITERUNNER-ECO Sistemas Operativos soportados: Windows XP, XP Embedded, Windows CE, Linux, DOS 7.7. PC/104 - COOL LITERUNNER-LX800 Sistemas Operativos soportados: Windows XP, XP Embedded, Windows CE, Linux, VxWorks TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 101 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 7.8. PC/104 - COREMODULE 435 Sistemas Operativos soportados:: QNX v6.3; Windows CE 5.0, 6.0 8. DISPONIBILIDAD EN EL INTERNACIONAL Y COSTOS. MERCADO LOCAL E 8.1. ARDUINO UNO Las productos Arduino son fabricados en Italia por SmartProjects. La mejor alternativa para adquirir placas o Shields Arduino en Argentina es a través de su distribuidor local Intek Elelronica. Su sitio web es http://www.intekelectronica.com.ar/ y el Arduino UNO se comercializa a un costo de $257.81. Dada la popularidad del modelo, su disponibilidad es alta y el tiempo de entrega no supera los 7 dias. Existe la posibilidad de adquirir Arduino UNO junto con un kit de desarrollo que contiene los siguientes elementos: •1 Arduino Uno + 1 cable USB •1 conector recto, linea individual 2,54 40x1 •1 placa de experimentación (Protoboards) con 840 puntos •1 kit de 70 hilos para el cableado •5 10K Ohm Resistencias 1/4W •5 2.2K Ohm Resistencias 1/4 W •10 220 Ohm Resistencias 1/4W •5 330K Ohm Resistencias 1/4W •5 100nF condensadores polyester •5 10nF condensadores polyester •3 100uF condensadores electrolíticos 25Vdc •1 4,7K Ohm Termistore •1 70..100K Ohm LDR VT90N2 •3 5mm LED ROJOS •1 5mm LED VERDES •1 5mm LED AMARILLOS •1 10Kohm potenciómetro, para PCB TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 102 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. •2 BC547 Transistores TO92 •1 Zumbador •5 Pulsadores para PCB, 12x12mm de tamaño •2 4N35 Optoacoplador 6DIP •2 sensores Tilt •1 Diodo 1n4007 •1 MOS Irf520 Otras alternativas internacionales con envío a la Argentina son las siguientes: • DitenTec - http://www.ditentec.com.ar – Arduino UNO U$S 215 • OpenHacks - http://www.openhacks.com/ - Arduino UNO U$S 215 Si bien el costo del producto es inferior a el del distribuidor local, se deben afrontar impuestos de importación del orden de los U$S90 y tiempos de entrega superiores a las 2 semanas. 8.2. PIC - ICP05 IBOARD LITE ICP05 iBoard lite puede adquirirse a través su sitio de internet: PICCircuit.com - http://www.piccircuit.com/shop/pic-dev-board/21-icp05-iboard lite.html a un costo de U$S 40 + envìo 6U$S ambos abonables mediante Paypal. El tiempo de entrega es de 6 a 21 dìas habiles. Durante ese periodo el producto puede ser rastreado mediante el uso del Tracking Number provisto por el comercializador El modulo de expansión gráfica ICA05 puede ser adquirido bajo las mismas condiciones a un costo de U$S40 en el siguiente sitio: http://www.piccircuit.com/shop/pic-dev-board/67-ica05-graphic-lcddevelopment-kit.html U$S 39.90. 8.3. RASPBERRY PI Raspberry Pi puede ser adquirido a través de distribuidores diferentes, RS y Element14 y su precio es de U$D 35 + impuestos y envio alcanzando un valor estimado de U$S42 a la provincia de Buenos Aires. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 103 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. • RS online http://raspberrypi.rsdelivers.com/default.aspx?cl=1 • Element14. Precio http://www.element14.com/community/groups/raspberry-pi Ambos comercializadores realizan envíos a la Argentina. Al momento de la redacción de este documento existe una sobre demanda del producto que retrasa notablemente los tiempos de entrega incluso debiendo ocupar listas de espera. Se prevé que bajo circunstancias convencionales, el tiempo de entrega serà de entre 2 y 3 semanas. Raspberry Pi posee garantía y acepta devoluciones. En algunos casos, la fundación Raspberry Pi se hace cargo de los gastos de envío. 8.4. FREESCALE EDUKIT08 EDUKIT08 puede es desarrollado por EDU Devices y puede ser adquirido en Argentina a través de su sitio http://www.edudevices.com.ar/index.htm. Su costo es de U$S $ 240.- + I.V.A (10,5%) , Existe también la posibilidad de adquirir una versión mas completa que incluye EDUKIT08 + el PLUGIN_AW + R(S)_POD por un costo de U$S350. Su desarrollador es de origen nacional por lo cual su nivel de disponibilidad es muy alto y el tiempo de entrega bastante reducido. 8.5. PC/104 PC104 PIC MicroStack es comercializado por Farnell y distribuido de manera local por ElectroComponentes. Su precio internacional es de U$S73 y puede ser adquirido a través de los siguientes sitios: Farnell: http://uk.farnell.com/powerlite-systems/usb-microstak/main-board-kit-usb-microstak/dp/1466680 debiendo afrontar gastos de envío e impuestos de importación (20U$S aproximadamente) y tiempos de entrega aproximados de entre 2 y 3 semanas dependiendo de la existencia de stock. Electrocomponentes (Distribuidor local de Farnell): Solís 225/227/229, 1078-Buenos Aires, Argentina Tel: +54 11443753366 Email: [email protected] TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 104 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Web: www.electrocomponentes.com Mediante este distribuidor se disminuyen los costos de importación y se elimina el costo de envío internacional aunque su disponibilidad es reducida y los tiempos de entrega pueden no variar respecto de Farnell. Linea Cool LiteRunner y CoreModule Cool LiteRunner-ECO, Cool LiteRunner-LX800 y CoreModule 435 son comercializados por AdLink y distribuida por SCS Embeeded Tech y pueden adquirirse a través de su sitio web http://scsembeddedtech.com/Lippert_PC-104_Price_List.php. Los precios varían según el rango de temperatura de operación. A continuación los costos de los 3 desarrollos en todas sus variantes. Cool LiteRuneer LX800: Modelo: Cool LiteRunner-LX800 (CLR-LX800), Prod. 702-0008-10 - Rango de Temperatura: 0°C .. +60°C - Costo: $494.00 Prod. 802-0008-10 - Rango de Temperatura: -20°C .. +60°C - Costo: $529.00 Prod. 902-0008-10 - Rango de Temperatura: -40°C .. +85°C - Costo: $713.00 Cool LiteRunner-ECO Modelo: Cool LiteRunner-ECO (CLR-ECO), Intel Atom Z510 (1.1GHz), 2GB RAM Prod: 702-0012-12 - Rango de temperatura: 0°C .. +60°C - Costo: $633.00 Prod: 802-0012-12 - Rango de temperatura: -20°C .. +60°C- Costo: $686.00 Prod: 902-0012-12 - Rango de temperatura: -40°C .. +85°C - Costo: $892.00 Modelo: Cool LiteRunner-ECO (CLR-ECO), Intel Atom Z530 (1.6GHz), 2GB RAM, incl. Disipador de calor Prod: 702-0012-15 - Rango de temperatura: 0°C .. +60°C - Costo: $792.00 Prod: 802-0012-15 - Rango de temperatura: -20°C .. +60°C - Costo: $858.00. Prod: 902-0012-15 - Rango de temperatura: -40°C .. +85°C - Costo: $1116.00. Existen modelos con inferior capacidad de memoria RAM a precios mas económicos. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 105 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Distribucion Local: Existe un distribuidor de desarrollos PC/104 en Argentina llamado Microtec. Su sitio web es http://microtec.com.ar/ y distribuyen entre otras la línea Cool LiteRunner y modulos de expansion PC/104: http://microtec.com.ar/productos/adquisicion/pc104/modulos-pc-104_50.html 9. PRINCIPALES MERCADOS DE APLICACIÓN, VENTAJAS Y DESVENTAJAS. 9.1. ARDUINO UNO Las aplicaciones que nos ofrece Arduino son múltiples, y dependerá de nuestra imaginación. Mediante sensores podemos crear aplicaciones sencillas enfocadas a la docencia para estudiantes de electrónica, proyectos más elaborados para la industria utilizando servomotores o incluso sistemas dirigidos simplemente al ocio. Es muy utilizado también en los entornos artísticos para crear obras más elaboradas, dada su facilidad de programación [2]. Arduino se puede utilizar para desarrollar objetos interactivos autónomos o puede ser conectado a software del ordenador (por ejemplo: Macromedia Flash, Processing, Max/MSP, Pure Data). Las placas se pueden montar a mano o adquirirse y el entorno de desarrollo integrado libre se puede descargar gratuitamente [2]. Al ser open hardware, tanto su diseño como su distribución es libre. Es decir, puede utilizarse libremente para el desarrollo de cualquier tipo de proyecto sin haber adquirido ninguna licencia [2]. ¿Por qué Arduino? Hay muchos otros microcontroladores y plataformas con microcontroladores disponibles para la computación física. Parallax Basic Stamp, BX-24 de Netmedia, Phidgets, Handyboard del MIT, y muchos otros ofrecen funcionalidades similares. Todas estas herramientas organizan el complicado trabajo de programar un microcontrolador en paquetes fáciles de usar. Arduino, además de simplificar el proceso de trabajar con microcontroladores, ofrece algunas ventajas respecto a otros sistemas a profesores, estudiantes y amateurs: [33] • Asequible - Las placas Arduino son más asequibles comparadas con otras plataformas de microcontroladores. La versión más cara de un modulo de Arduino puede ser montada a mano, e incluso ya montada cuesta bastante menos de 60€ TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 106 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. • Multi-Plataforma - El software de Arduino funciona en los sistemas operativos Windows, Macintosh OSX y Linux. La mayoría de los entornos para microcontroladores están limitados a Windows. • Software ampliable y de código abierto- El software Arduino esta publicado bajo una licencia libre y preparado para ser ampliado por programadores experimentados. El lenguaje puede ampliarse a través de librerías de C++, y si se está interesado en profundizar en los detalles técnicos, se puede dar el salto a la programación en el lenguaje AVR C en el que está basado. De igual modo se puede añadir directamente código en AVR C en tus programas si así lo deseas. • Hardware ampliable y de Código abierto - Arduino está basado en los microcontroladores ATMEGA168,ATMEGA328 y ATMEGA1280. Los planos de los módulos están publicados bajo licencia Creative Commons, por lo que diseñadores de circuitos con experiencia pueden hacer su propia versión del módulo, ampliándolo u optimizándolo. Incluso usuarios relativamente inexpertos pueden construir la versión para placa de desarrollo para entender cómo funciona y ahorrar algo de dinero. [33] 9.2. PIC – ICP05 IBOARD LITE Este diminuto desarrollo, tan solo 10cm x 5.5cm posee un increíble espectro de aplicación. Su gran cantidad y variedad de dispositivos de entrada/salida y módulos disponibles en el mercado hace que pueda ser implementado para el control de motores DC, medición, registro y control de condiciones ambientales, monitoreo de señales, visualización de gráficos, dispositivos de seguridad y muchos mas. Además de sus condiciones técnicas, se puede adquirir a un precio realmente bajo, U$S40. En su sitio web encontraremos una gran cantidad de video-tutoriales referentes a las diversas aplicaciones disponibles. http://www.piccircuit.com/shop/pic-code/41-tutorial-5a-4x3-keypad- demo.html ICA05 – Kit de desarrollo gráfico LCD Este kit incorpora un completo set capaz de abarcar cualquier tipo de aplicación (Oscilosconpio, monitoreo de señales, visualización de gráficos, etc.). Posee un puerto externo GLCD a través del cual el usuario puede montar LCD a la estructura cobertora del modulo. Adicionalmente incluye sensores de temperatura, luz y voltaje fácilmente interconectables con los PINs del PIC. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 107 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Keypad y Display 7 Segmentos Existe la posibilidad de adicionar a la placa un teclado numérico de 12 dígitos y displays de 7 segmentos. En el siguiente sitio web se encuentran diversos tutoriales inherentes a su aplicación: http://www.piccircuit.com/shop/pic-code/41-tutorial-5a-4x3-keypad-demo.html Fig. 19. Modulos de expansion Keypad y Display 7 segmentos en iBoard Lite 9.3. RASPBERRY PI El Raspberry Pi es un dispositivo de un tamaño diminuto (mide casi lo mismo que una tarjeta de crédito), pero en sus ínfimas dimensiones de 85,6 x 53,98 x 17 mm atesora grandes posibilidades, como la reproducción de vídeo 1080p, conexión a redes e Internet y la administración de dispositivos de demótica lo cual la torna muy versátil a la hora de pensar en sus posibles aplicaciones. Además de sus características técnicas, Raspberry Pi es sumamente asequible en relación a sus prestaciones, tan solo U$35 dólares. A continuación se listan algunos de los proyectos activos mas interesantes que involucran a la Raspberry Pi y sus fuentes de consulta: Automatización y Monitoreo de Hogares Proyectos que involucran la utilización de tecnologías como x10 y 1-Wire en combinación con Raspberry Pi al servicio de la automatización y monitoreo de Hogares, principalmente orientado a la calefacción y refrigeración de los mismos, control de iluminación, etc. Mas información sobre proyectos activos en http://www.domoticaforum.eu/ y http://raspberrypi.homelabs.org.uk/ TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 108 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Reproducción de Medios Su tamaño, bajo costo y capacidad de reproducción de video y sonido de alta definición, hacen de Raspberry Pi una alternativa muy tentadora a la hora de pensar en el mercado de media centers. XBMC, uno de los software mas reconocidos este ámbito y con una gran comunidad de desarrollo a lo largo del mundo, ya posee su versión compatible con Raspberry Pi y directamente booteable desde una memoria flash. El proyecto OpenELEC ha tomado la gran iniciativa de ofrecer soporte para el Raspberry Pi con su distribución XBMC lista para funcionar desde memorias flash. Al usar OpenELEC la memoria RAM se reconfigura de manera automática para dedicar el 50% a los gráficos y de esta manera funcionar sin complicaciones (sólo un 25% del RAM se invierte en gráficos). Si a esto le sumamos la compatibilidad de Raspberry Pi con el protocolo CEC que nos permite controlar nuestro nuevo media center desde el control remoto de nuestro televisor, no podemos dejar de posicionar a esta aplicación como una de las mas prometedoras. Mas información sobre XBMC en Raspberry Pi en: http://www.raspbmc.com/ http://wiki.openelec.tv/index.php?title=Building_and_Installing_OpenELEC_for_Raspberry_Pi Servicios de Internet Raspberry Pi utiliza Linux como sistema operativo y por ello puede ser fácilmente configurado para funcionar como Web Server Apache, Proxy Server utilizando Squid, un servidor de correo electrónico con Sendmail o Squirrel, un servidor de descargas torrent a través de Rtorrent o Transmission y hasta utilizarse para telefonía IP con Skype o Ekiga. Como vemos, el espectro de aplicación de Raspberry Pi tan amplio como el de una PC convencional pero con el plus que le brinda su ínfimo tamaño y su extremadamente conveniente costo. 9.4. FREESCALE EDUKIT08 El sistema “EDUKIT08” es una plataforma universal que permite trabajar con las familias más populares de 8 y 32 Bits de Freescale Semiconductor y realizar prácticas completas con una gran TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 109 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. variedad de periféricos en un ambiente controlado que facilita el aprendizaje del estudiante del área de microcontroladores. El sistema ha sido diseñado para soportar el “mal trato” de los estudiantes, muy frecuente durante el aprendizaje, y la fácil y rápida reparación del mismo si así lo requiriera, ya que se entrega con documentación completa y detallada del mismo. [16] Es común que el estudiante de microcontroladores deba enfrentar una serie de dificultades al comenzar con su aprendizaje, no solo en los aspectos teóricos, sino también en los prácticos, lidiando con el manejo de herramientas de hardware, software y circuitos de aplicación específicos de cada práctica. El sistema didáctico “EDUKIT08” facilita el acceso al mundo de los microcontroladores al contar con un “ambiente controlado” de sus distintos periféricos, prácticas guiadas paso a paso y herramientas sencillas e intuitivas de software. [16] Al ser un desarrollo destinado a la educación, su simplicidad de programación y su gran versatilidad a la hora de interactuar con el medio lo torna muy conveniente para la generación de prototipos de prueba utilizando microcontroladores Freescale y una gran variedad de dispositivos de entrada/salida. Su espectro de aplicación es muy amplio y va desde la medición, registro y control de condiciones ambientales como temperatura y luz y comando remoto de dispositivos infrarrojos y a través de puerto serie hasta la automatización de motores DC en pequeños y medianos emprendimientos. 9.5. PC/104 PC/104 o PC104 es un estándar de ordenador embebido que define el formato de la placa base (form factor) y el bus del sistema. A diferencia de la clásica arquitectura ATX y bus PCI que son usados en la mayoría de los ordenadores personales, los dispositivos PC/104 están diseñado para funcionar en ambientes industriales donde las condiciones ambientales no son las convencionales y además son fácilmente adaptables a cualquier aplicación a través del anexo de módulos que compatibles con el mismo standard de interconexión. La gran disponibilidad y variedad de módulos en el mercado permite pensar en PC/104 como soporte de aplicaciones destinadas a control de maquinas, instrumental médico, telecomunicaciones, equipamiento de diagnostico, manejo remoto de redes, sistemas de seguridad y sistemas de medición garantizando un alto nivel de estabilidad frente a condiciones de operación adversas. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 110 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 10. MATRIZ COMPARATIVA A lo largo de este documento hemos efectuado un relevamiento y análisis técnico y comercial detallado de los diversos desarrollos preseleccionados y las familias que los integran intentando identificar sus principales virtudes y defectos a fin de categorizarlos según su potencial aplicación. Adicional a este, se ha realizado un anexo conteniendo una matriz comparativa a fin de agilizar el proceso de selección del desarrollo mas adecuado a las necesidades del usuario que lo requiere. Para mas información consultar el Anexo II – Matriz Comparativa. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 111 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 112 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 11. REFERENCIAS 1. Arduino, 2012. Interfacing with Other http://www.arduino.cc/playground/Main/InterfacingWithSoftware Pagina Software. Vigente al 26/09/12. 2. Arduino, 2012. Arduino Home Page. http://arduino.cc/. Pagina Vigente al 26/09/12. 3. Arduino, 2012. Languaje Reference. http://arduino.cc/en/Reference/HomePage? from=Reference.Extended. Pagina Vigente al 26/09/12. 4. Arduino, 2012. Serial. http://arduino.cc/en/Reference/Serial. Pagina Vigente al 26/09/12. 5. Arduino, 2012. Port Registers. http://arduino.cc/en/Reference/PortManipulation. Pagina Vigente al 26/09/12. 6. Arduino, 2012. Libraries. http://arduino.cc/en/Reference/Libraries. Pagina Vigente al 26/09/12. 7. Arduino, 2012. Shields. http://arduino.cc/en/Main/ArduinoShields. Pagina Vigente al 26/09/12. 8. Wiring, 2012. Wiring overview. http://wiring.org.co/. Pagina Vigente al 26/09/12. 9. Atmel Corportation, 2012. ATmega328 Datasheet. http://www.atmel.com/devices/atmega328.aspx. Pagina Vigente al 26/09/12. 10. Microchip, 2006. Microchip 8-bit PIC Microcontroller http://ww1.microchip.com/downloads/en/DeviceDoc/39630C.pdf. Pagina Solutions. Vigente al 26/09/12. 11. Microchip, 2009. PIC16F722 http://ww1.microchip.com/downloads/en/DeviceDoc/41341E.pdf. Datasheet, Pagina Vigente al 26/09/12. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 113 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 12. Microchip, 2009. PIC16F887 Datasheet, http://ww1.microchip.com/downloads/en/DeviceDoc/41291D.pdf. Pagina Vigente al 26/09/12. 13. iCircuit Technologies, 2010. ICP05 iBoard Lite Datasheet. http://www.piccircuit.com/shop/doc/iCP05v1.2.pdf. Pagina Vigente al 26/09/12. 14. Edudevices, 2009. Placa Didáctica / Entrenamiento Para las flias. HC908 / HC9S08 y Serie Flexis HC9S08 / V1 ColdFire, Revision 0. http://www.edudevices.com.ar/download/productos/edukit/edukit/BROCHURE_EDUKIT0 8_ED.pdf. Pagina vifente al 26/09/12 15. Edudevices, 2011, Sistema Didáctico para MCUs Freescale Edukit 08. http://www.edudevices.com.ar/productos_edukit.htm. Pagina vigente al 26/09/12 16. Freescale, 2005, 8-bit Microcontrollers (MCU) MCU 32K FLASH 10 bit ADC Datasheet. http://www.rlocman.ru/i/File/dat/Freescale/Microcontrollers_MCU/MC908AP16CFAE.pdf. pagina vigente al 26/09/12 17. PC/104 Consortium, 2008, Specifications, Version 2.6. http://www.pc104.org/pc104_specs.php. Pagina vigente al 26/09/2012 18. Lippert ADLink Technology, 2012, Cool LiteRunner ECO Datasheet. http://www.adlinktech.com/PD/marketing/Datasheet/CoolLiteRunnerECO/CoolLiteRunner-ECO_Datasheet_en_1.pdf. Pagina vigente al 26/09/2012 19. Lippert ADLink Technology, 2012, Cool LiteRunner LX800 Datasheet. http://www.adlinktech.com/PD/marketing/Datasheet/CoolLiteRunnerLX800/CoolLiteRunner-LX800_Datasheet_en_1.pdf. Pagina vigente al 26/09/2012 20. Lippert ADLink Technology, 2012, CoreModule 435 Datasheet. http://www.adlinktech.com/PD/marketing/Datasheet/CoreModule435/CoreModule435_Dat asheet_en_1.pdf. Pagina vigente al 26/09/2012 TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 114 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE 21. Power CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Lite Systems, 2012, USB Microstak Datasheet. http://www.farnell.com/datasheets/95552.pdf. Pagina vigente al 26/09/2012 22. Raspberry Pi Foundation, 2012, Raspberry Pi Frequently asked questions. http://www.raspberrypi.org/faqs#. Pagina vigente al 26/09/2012 23. Raspberry Pi Wiki Council, 2012, Raspberry Pi Wiki. http://elinux.org/RaspberryPiBoard. Pagina vigente al 26/09/2012 24. Raspberry Pi Wiki Council, 2012, Raspberry Pi Hardware. http://elinux.org/RPi_Hardware. Pagina vigente al 26/09/2012 25. Raspberry Pi Wiki Council, 2012, Raspberry Pi Low-Level Peripherals. http://elinux.org/RPi_Low-level_peripherals. Pagina vigente al 26/09/2012 26. Raspberry Pi Wiki Council, 2012, Raspberry Pi Expansion Boards. http://elinux.org/RPi_Expansion_Boards. Pagina vigente al 26/09/2012 27. Raspberry Pi Wiki Council, 2012, Raspberry Pi Programming. http://elinux.org/RPi_Programming. Pagina vigente al 26/09/2012 28. ARM, 2009, ARM1176JZF-S™ Technical Reference Manual r0p7. http://infocenter.arm.com/help/topic/com.arm.doc.ddi0301h/DDI0301H_arm1176jzfs_r0p7 _trm.pdf. Pagina vigente al 26/09/2012 29. Communications of the ACM, 2011, An interview with Steve Furber, Volume 54 Issue 5, page 34. http://dl.acm.org/citation.cfm?doid=1941487.1941501. Pagina vigente al 26/09/2012 30. Stas Khirman, 2004, JTAG Version: 0.04. http://hri.sourceforge.net/tools/jtag_faq_org.html. Pagina vigente al 26/09/2012 31. Shiffman, Daniel. 2009. Interview with Casey Reas and Ben Fry. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 115 JONATAN PONZO ANEXO I – RELEVAMIENTO DE HARDWARE 32. Wikipedia, CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 2012. Microcontrolador http://es.wikipedia.org/wiki/Microcontrolador_PIC#Referencias. Pagina PIC. vigente al 26/09/2012 33. Wikipedia, 2012. Atmel AVR. http://en.wikipedia.org/wiki/Atmel_AVR. Pagina vigente al 26/09/2012 34. Wikipedia, 2012. Freescale. http://es.wikipedia.org/wiki/Freescale. Pagina vigente al 26/09/2012 35. Unmanned Industrial. Atmel AVR. http://www.unmannedindustrial.com/Atmel%20AVR. Pagina vigente al 26/09/2012 36. Wikipedia, 2012. Arquitectura ARM. http://es.wikipedia.org/wiki/Arquitectura_ARM. Pagina vigente al 26/09/2012 37. Wikipedia, 2012. AMD Geode. http://es.wikipedia.org/wiki/AMD_Geode. Pagina vigente al 26/09/2012 38. Wikipedia, 2012. x86. http://es.wikipedia.org/wiki/X86. Pagina vigente al 26/09/2012 39. Wikipedia, 2012. System on a Chip (SoC)http://es.wikipedia.org/wiki/System_on_a_chip. Pagina vigente al 26/09/2012 40. Wikipedia, 2012. JTAG. http://es.wikipedia.org/wiki/JTAG. Pagina vigente al 26/09/2012 TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 116 JONATAN PONZO ANEXO II – MATRIZ COMPARATIVA CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Propuesta de Modelo de Aplicación y Uso Potencial Jonatan Ponzo - [email protected] Universidad Nacional de Lanús – Lic. Sistemas ANEXO II – MATRIZ COMPARATIVA TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 117 JONATAN PONZO AVR Atmel PIC ARM Freescale Arduino UNO iBoard Lite Raspberry Pi B EDUKIT08 ARM 1176JZF-S 32bits SoC Broadcomm BCM2835 MC908AP32CFBE 8 bits AVR Atmega328 8bits PICs 28 Pins PIC16F722 8bits Arquitectura Harvard – RISC Harvard RISC CISC Frecuencia 20 Mhz 16 MHz – 5 MIPS 8 MHz Cache - - 700 MHz L1 Cache 32Kb (Instr.) L2 Cache 128Kb (GPU) 85.60mm × 53.98mm <40g 210 mm x 160 mm Dimensiones 2.7' x 2.1' 10cm x 5.5cm Rangos de Temperatura -40°C y 85°C -40°C - 125°C - - Rangos de Tensión 1.8V – 5.5V 3.6v – 6v 5V USB – Fuente externa 7 a 16V Alimentación 6v-20v / Recom 7v-12v 9V Recomendado USB – Fuente externa Consumo 30MA+ 25mA+ 700mA 3.5W - Memoria de Programa 32Kb Flash 3.5KB Flash MicroSD Slot 32 Kb Flash Memoria de Datos 2Kb SDRAM 128 bytes RAM 256MB DDR2 2KB RAM Registros Internos 32 x 8bits - - - Almacenamiento Pte. 1KB EEPROM - MicroSD Slot EEPROM (24LC256)256Kb Microcontrolador 5V USB – Fuente externa - 5V USB – Fuente Externa Puertos E/S AVR Atmel PIC Arduino UNO iBoard Lite *14 PINs E/S Dig Prog 5v x 40mA TTL, PWM *1 x USB *2 PINs Serial *6 PINs Ent Analogicas UART TTL – Serie via USB Comunicación Módulos de expansión Modo de programación Arduino WIFI Shield Arduino Motor Shield Arduino Wireless SD Shield EasyVR Arduino Shield Arduino RFID Shield Arduino Musical Shield Arduino CAN-BUS Shield Arduino MicroSD Shield Arduino USB Host Shield Arduino Screw Shield Arduino Cellular Shield Arduino GPS Shield Arduino SD Shield Arduino Photo Shield Arduino Ethernet Shield USB (Arduino Soft) ICSP MPLAB ICSP Display LCD in IO x 8 canales 8 canales analógico Servo motores x 4 Mot. PaP ULN2003A 500mA Darl. x 1 Mot. DC L293D x 1 Conv Boost/Buck x 1 SPI/I2C/USART/PS2/USB ICM07A - 4X3 KEYPAD ICP01 - USB PIC PROGRAMMER ICM17 - ULN2003A DRIVER CODE01 TIMER/TEMPERATURE DISP ICA05 - GRAPHIC LCD DEV KIT ICM25 – PS/2 PORT ARM Freescale Raspberry Pi B EDUKIT08 Micro USB DSI x 15-PINs HDMI Video Composite RCA MIPI CSI-2 de 15 PINs. Audio Stereo de 3.5mm SD/MMC/SDIO 2x USB 2.0 26-pin TTL UART GPIO ARM JTAG 2 x I2C 8-pin GPU JTAG 7-pin LAN9512 JTAG TP1/TP2 +5V/GND RS-485 Master / Slave IRDA / SIR LCD 16 carac x 2 líneas LED de 4 díg x 7 seg 4 pulsadores Diodos LEDs Diodo LED de potencia Sensor Temperatura (LM335Z) Preset p/ conversor A/D I/O de propósitos grales IRQ e interface SPI Ethernet 10/100Mb RJ45 WiFi via Dongle USB UART RS-232C/RS-485/IRDA Heber x10i I/O USB AFLEX DC Motores GELI 'jelly' DC Motores aLaMode Clon Arduino PiBorg PaP Motores Pi232 RS232 board Relay board MiniPiio L293D H-Bridge MiniPiio DIO16 I/O Dig MiniPiio RS232 Serial *PLUGIN_APMC68HC908AP32 HC908 *PLUGIN_AW MC9S08AW60 HC9S08 *PLUGIN_FLX08 MC9S08AC60CFUE HC9S08 Flexis *PLUGIN_FLXCV1 MCF51AC256AVFUE ColdFire V1 Flexis CAN. *PLUGIN_FLXJM” MCF51JM128CFUE ColdFire V1 Flexis USB. WinIDE CodeWarrior 5.x/6.x ICC08 de Imagecraft Cosmic Compiler ICSP MPLAB Carga externa de MicroSD Lenguajes soportados Programación Gráfica AVR Atmel PIC ARM Freescale Arduino UNO iBoard Lite Raspberry Pi B EDUKIT08 Arduino (Processing) Java Flash C# Perl Python Ruby Pduino y Minibloq Assembler C BASIC. PASCAL Forth MPLAB PICStart Plus (serie y USB) Promate II (serie) MPLAB PM3 (serie y USB) ICD2 (puerto serie y USB) ICD3 (USB) PICKit 1 (USB) IC-Prog 1.06B PICAT 1.25 (USB2.0) WinPic 800 paral/seriE/USB) PICKit 2 (USB) PICKit 3 (USB) Terusb1.0 Eclipse (PICs y AVRs. USB.) MasterProg (USB) Gcc, Clojure g++ Interp Mono (C#) OCaml NodeJS 0.6.18 (Jscript) Perl Python Ruby 1.9.2 (KidsRuby) Scala Java Eclipse Tcl/Tk Lazarus (maybe) BoaConstructor Anjuta for C/C++ Dev-C++ CodeBlocks Lua BBC BASICJ mdfs.net ROOL Small Basic Squeak (Smalltalk) Processing basic256 bwbasic sdlbasic yabasic Regina Rexx GalaxC Gambas Scratch Alice Android App Inventor Kodu Star Logo PrimerLabs CodeHero Assembler, C WinIDE CodeWarrior 5.x/6.x ICC08 de Imagecraft Cosmic Compiler AVR Atmel PIC Arduino UNO iBoard Lite ARM Freescale Sistemas Operativos Windows, Linux y MacOS Windows, Linuxm MacOS Raspberry Pi B Arch Linux ARM Debian 6.0 (Squeeze) Gentoo Linux Google Chrome OS Puppy Linux Raspberry Pi Fedora Remix Raspbian (Wheezy port) RiscOS Slackware ARM QtonPi (embedded Linux) Squeezed Arm Puppy ARMv6 IPFire OpenELEC Raspbmc (Media Center) XBMC (Media Center) Disponibilidad local SI, < 5 días hábiles NO NO SI Costo local $ 257.81 IVA Incluido - U$S240+IVA Costo Internacional U$S 25 + U$S7(Envío,Imp) U$S 40 + envío 6U$S U$S42 Imp y Envío Incluido Tiempo de entrega ~15 días hábiles ~15 días hábiles ~15 días hábiles < 5 días hábiles Principales virtudes Multiplataforma Open Hardware Open Software Escalabilidad Diversidad de disp I/O Amplia documentación Fácil Programación Gran Comunidad Dimensiones reducidas Bajo costo Diversidad de disp I/O Compatibilidad PICs 28PINs Bajo Costo Dimensiones reducidas Interfaces MultMedia HD Gran Comunidad Simplicidad de programación Amplia documentación c/ejem Soporte técnico local Comercialización local Diversidad de I/O on board Orientación Educativa Industria Docencia Servo Motores Sensores Industria Control de motores DC Medición, registro y control de condiciones ambientales Monitoreo de señales Visualización de gráficos Dispositivos de seguridad Docencia/investigación Automatización de Hogares Servicios de Internet Media Center PC Portatil Aplicaciones posibles EDUKIT08 Windows - Educación Prototipado PC/104 PIC MicroStack Cool LiteRunner ECO Cool LiteRunner LX800 CoreModule 435 PICs 40 Pins PIC16F887 – 8bits Intel Atom Z510-Z530 32bits AMD LX800 32bits Microcontrolador Vortex86SX - 86DX 32Bits Arquitectura Harvard x86 x86 x86 Frecuencia 8Mhz - 500MHz L1 Cache 64Kb L2 Cache 128Kb 300MHz – 800MHz Cache 1.1GHz – 1.6GHz L1 Cache 32Kb (Instr) L2 Cache 512Kb 65mm x 80mm x 16mm esp. 96mm x 90mm 96mm x 90mm 90x96mm 0°C...+60°C (comercial) -20°C...+60°C (industrial) -40°C...+85°C (extendido) 0°C...+60°C (comercial) -20°C...+60°C (industrial) -40°C...+85°C (extendido) Standard: -20°C - +70°C Extendido: -40°C - +85°C Almacenamiento: -55°C - +85°C L1 Cache 16Kb Dimensiones Rangos de Temperatura - Rangos de Tensión - 4.75v – 5.25v 4.75v – 5.25v 4.75v – 5.25v Alimentación 5V USB – Fuente Externa 5V ±5 % Fuente externa 5V ±5 % Fuente externa 5V ±5 % Fuente externa Consumo - 11W 5W – 6W 6.5W Memoria de Programa 14Kb Flash MicroSD Slot MicroSD Slot MicroSD Slot Memoria de Datos 368 Bytes 2GB DDR2 exp. DDR400 de 256Mb 400MHz Exp RAM DDR2 de 256MB exp. Registros Internos - - - MicroSD Slot, 2 x SATA MicroSD Slot IDE UltraATA100 CompactFlashTM MicroSD Slot PATA DMA 100 IDE x 2 HDD Storage CompactFlash socket Almacenamiento Pte. EEPROM 256Kb PC/104 PIC MicroStack Cool LiteRunner ECO Cool LiteRunner LX800 CoreModule 435 2 x USB Puerto PC/104 (ISA) VGA and LVDS (c/ backlight) 2 x SATA 7 x USB 2.0 hosts HD Audio I/O Signals 8 GPIO Mini PCI Express 1 slot ISA Bus PC/104 4 x USB 2.0 IDE Ultra ATA100 CompactFlashTM socket Mini-PCI slot CRT VGA 1920x1440 85HZ TFT S/CH 18 bits 1600x1200 60Hz LVDS S/CH 18/24 bits 1600x1200 60Hz Audio AC97 2.1 2CH LPT bi-directional PS2 Keyboard, mouse GPIO x 8 ISA Bus PC/104 PCI Bus Mini-PCI slot I2C bus Supported UART 2 x Gigabit LAN 2 x RS232/RS422/RS485 2x 100/10 BaseT Ethernet S2 x RS232/RS422/RS485 1 x RS485/Irda PC/104 ISA PATA DMA 100 IDE Storage CompactFlash socket USB 2x USB 2.0 ports KB/MS PS/2 interface 8 x GPIO digital I/O PINs 1 x VGA Video Interface 100MHz/1600x768/32MB/64MBDDR2 TTL/TFT D/C 12-bit S/C 18-bit 1 x Ethernet 10/100 1 x Ethernet Intel 82451PI 1 x Gigabit Ethernet 2x RS-232 2x RS-232/422/485 Módulos de expansión MiniModule SIO PCM-MIO-G Cualquier Modulo PC/104 Idem F Idem F Idem F Modo de programación Mecanique Microcode Loader ICSP MPLAB Carga externa de MicroSD Carga externa de MicroSD Carga externa de MicroSD Puertos E/S Comunicación PC/104 PIC MicroStack Cool LiteRunner ECO Cool LiteRunner LX800 CoreModule 435 Assembler C BASIC. PASCAL Forth Depende del SO Depende del SO Depende del SO Depende del SO Depende del SO Depende del SO Lenguajes soportados Programación Gráfica Mecanique Microcode Loader ICSP MPLAB PC/104 PIC MicroStack Cool LiteRunner ECO Cool LiteRunner LX800 CoreModule 435 Sistemas Operativos Windows (MPLab, MML) XP, XP Embedded, Windows CE Linux DOS Windows XP XP Embedded Win CE Linux, VxWorks Supported QNX v6.3 Windows CE 5.0, 6.0 Disponibilidad local SI BAJA, Microtec BAJA, Microtec BAJA, Microtec Costo local ~U$S103 Desconocido Desconocido Desconocido Costo Internacional U$S73 + U$S20 Envio e Imp $494.00/$529.00/$713.00 $633.00/$686.00/$892.00 $792.00/$858.00/$1116.00 Tiempo de entrega ~15 días hábiles ~15 días hábiles ~15 días hábiles ~15 días hábiles Dimensiones Reducidas Bajo Costo Compatibilidad PICs 40 PINs Compatibilidad Std PC/104 Diversidad de modulos exp. Disponibilidad Local Fuertemente Industrial Control de maquinas Instrumental médico Telecomunicaciones Equipamiento de diagnostico Manejo remoto de redes Sistemas de seguridad Sistemas de medición Poder de Procesamiento Memoria Ram Bajo Costo Fuertemente Industrial Control de maquinas Instrumental médico Telecomunicaciones Equipamiento de diagnostico Manejo remoto de redes Sistemas de seguridad Sistemas de medición Diversidad de Ifaces I/O Bajo Consumo Fuertemente Industrial Control de maquinas Instrumental médico Telecomunicaciones Equipamiento de diagnostico Manejo remoto de redes Sistemas de seguridad Sistemas de medición Diversidad de Ifaces I/O Bajo Consumo Fuertemente Industrial Control de maquinas Instrumental médico Telecomunicaciones Equipamiento de diagnostico Manejo remoto de redes Sistemas de seguridad Sistemas de medición Principales virtudes Aplicaciones posibles ANEXO III – MODELADO DE SISTEMAS EMBEBIDOS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS Propuesta de Modelo de Aplicación y Uso Potencial Jonatan Ponzo - [email protected] Universidad Nacional de Lanús – Lic. Sistemas ANEXO III – MODELOS DE PROCESOS PARA SISTEMAS INFORMATICOS TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 127 JONATAN PONZO ANEXO III – MODELADO DE SISTEMAS EMBEBIDOS TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 128 JONATAN PONZO ANEXO III – MODELADO DE SISTEMAS EMBEBIDOS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. ANEXO III - MODELOS DE PROCESOS PARA SISTEMAS INFORMATICOS A lo largo de este anexo se presentan y describen 3 modelos de aplicación seleccionados, pertenecientes al ámbito de los sistemas informáticos -preferentemente embebidos- cuyo objetivo es asistir al profesional informático en la realización de ciertas actividades contenidas en las etapas de un proyecto. La descripción de los modelos contiene fragmentos textuales extraídos de las publicaciones originales, ya sea en su idioma original o bien una traducción al castellano. A continuación se mencionan los modelos a describir: 1. “Modelo de Requisitos para Sistemas Embebebidos”. Autores: Liliana Gonzalez Palacio, German Urrego Giraldo, 2008. 2. “Goal-Oriented Patterns for UML-Based Modeling of Embedded Systems Requirements” (Patrones Orientados a Metas para Modelado UML de Requerimientos de Sistemas Embebidos). Autores: Heather J. Goldsby1, Sascha Konrad, Betty H.C. Cheng, 3. “IEEE Standard for Developing Software Life Cycle Processes”. Autor: Software Engineering Standards Committee of the IEEE Computer Society, 2006. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 129 JONATAN PONZO ANEXO III – MODELADO DE SISTEMAS EMBEBIDOS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 1. “MODELO DE REQUISITOS PARA SISTEMAS EMBEBIDOS” DE LILIANA GONZALEZ Y GERMAN URREGO, 2008. 1.1 INTRODUCCIÓN En la actualidad, las metodologías de ingeniería de requisitos propuestas para el dominio de los sistemas embebidos, no establecen continuidad en su proceso de desarrollo, ya que poseen una fuerte orientación a la etapa de diseño y un énfasis más débil en la etapa de Análisis. Por ello, a menudo los diseñadores de sistemas cometen el error de comenzar a diseñar e implementar soluciones que no han sido completamente especificadas y que corresponden a problemas a los que les falta delimitación, lo cual conduce a la construcción de sistemas que no satisfacen las necesidades de los clientes y que incurren en el aumento de los costos y en el incumplimiento de los plazos establecidos [Palacio – Giraldo, 2008]. Entre las metodologías existentes en el ámbito de los sistemas informáticos, ABC-Besoins, con el concepto de “Intervención de agentes” logra integrar y relacionar los requisitos de diferentes contextos y propone además, pautas para el Análisis de requisitos desde la fase de captura hasta la fase de especificación, logrando la operacionalización de dichos requisitos y la construcción de un modelo conceptual. Todas estas ventajas se deben a un modelo de requisitos expresivo que permite relacionar requisitos de diferentes niveles y capturar las necesidades de los agentes [Palacio – Giraldo, 2008]. A fin de cubrir la carencia identificada en el comienzo de esta sección, los autores de este modelo propusieron intervenir la metodología ABC-Besoins, originalmente diseñada para el dominio de sistemas web, adaptándola y transformándola para tener en cuenta aspectos del dominio de sistemas embebidos, y construir un modelo conceptual que facilite la entrada a un lenguaje de especificación [Palacio – Giraldo, 2008]. El nuevo modelo generado fue bautizado ABC-Besoins-SEM y construido respetando las categorías principales definidas en el modelo tradicional a las cuales se le incorporaron nuevas sub-categorías a fin de definir requisitos más específicos que incorporaran los elementos propios de los sistemas embebidos. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 130 JONATAN PONZO ANEXO III – MODELADO DE SISTEMAS EMBEBIDOS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 1.2. DESCRIPCIÓN DEL MODELO A continuación se mencionan las categorías del modelo original ABC-Bensoins y las sub-categorías adicionadas y que conforman el nuevo modelo ABC-Besoins-SEM: Categorías (Originales ABC-Besoins) Subcategorías 1. Estados Disponibilidad de objetos 2. Eventos Convocación y demostración 3. Interfaces 1. Modos de Operación Selección de alternativas 2. Submodos de Operación • Interacciones con súper-sistema Interacción de agentes • Interacciones con otros SE y el ambiente. • Funcionalidades de entrada • Acción del agente Funcionalidades de proceso • Transferencia / Actualización Funcionalidades de salida Sin Subcategorías Interrupción / Restitución / • Prevención de fallas Conservación • Detección de fallas Desempeño / Cambio Sin Subcategorias Precio y costos • Tamaño • Consumo de energía 1. Disponibilidad Descripción o caracterización de los agentes 2. Fiabilidad 3. Seguridad frente al exterior 4. Seguridad frente a ataques 5. Eficiencia Tabla 1. Categorías del modelo ABC-BENSOINS-SEM TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 131 JONATAN PONZO ANEXO III – MODELADO DE SISTEMAS EMBEBIDOS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 1.2.1. CATEGORÍAS Y SUBCATEGORIAS 1.2.1.1. Disponibilidad de objetos Son requisitos que permiten indicar la forma en que se deben comportar y comunicar los componentes del sistema de acuerdo a los diferentes modos de operación, que se dan de acuerdo a los valores de determinadas señales que fluyen entre procesos y entre componentes del sistema [Palacio – Giraldo, 2008]. Subcategorias: • Estados / Eventos : Una señal comunica la ocurrencia de un evento que genera consecuencias como un cambio de estado (Lavi et al,. 2005). Representa una condición necesaria para que un proceso de ejecute. 1.2.1.2. Convocación y demostración Estos requisitos tienen que ver con la comunicación que debe establecer el sistema con otros sistemas, tales como su súper-sistema y demás sistemas embebidos que se encuentran dentro de él. Se relacionan con las interfaces provistas para comunicarse hacia el exterior [Palacio – Giraldo, 2008]. Subcategorias: • Interfaces: Es importante resaltar que los sistemas embebidos usualmente no tienen una interfaz propia con el usuario humano, sino que operan a través de una interfaz provista por el sistema global o el súper sistema. Como consecuencia, la especificación de requisitos de interfaz de usuario del sistema embebido será similar a la del sistema global o contenedor. [Palacio – Giraldo, 2008] 1.2.1.3. Selección de alternativas Son requisitos relacionados con la forma en que el sistema debe desplegar al usuario las posibles alternativas de uso. Este tipo de requisitos da paso a los modos y submodos de operación [Palacio – Giraldo, 2008]. Subcategorias: • Modos de operación: Un modo de operación es un conjunto de funcionalidades del sistema que se activan o desactivan con la ocurrencia de un evento, envío de una señal y posterior TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 132 JONATAN PONZO ANEXO III – MODELADO DE SISTEMAS EMBEBIDOS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. entrada a un modo de operación. Los modos de operación típicos de un sistema embebido son: encendido, apagado (Lavi et al., 2005). • Submodos de operación: Pensando en jerarquía, cada modo de operación puede ser refinado en submodos. Por ejemplo, si el sistema embebido está en modo encendido, a su vez puede estar en uno de los siguientes submodos: en configuración, en operación normal, en mantenimiento (Lavi et al., 2005) 1.2.1.4. Solicitud de Acceso Descripción de la categoría: Luego de conocer las posibilidades que ofrece el sistema, el usuario selecciona cual es la de su interés. Estos requisitos tienen entonces que ver con dicha selección, y continuando con los modos de operación, tienen que ver con las funcionalidades que deben estar activas por cada modo [Palacio – Giraldo, 2008]. Subcategorias: No posee 1.2.1.5 Aporte (entrada-respuesta) Siguiendo con el proceso para el ofrecimiento y posterior selección de servicios, estos requisitos reflejan las acciones que el usuario debe realizar para acceder a alguna de las alternativas que ofrece el sistema. Por ejemplo, si el sistema es un cajero automático, luego de seleccionar la opción de ingresar al sistema, el cajero pide el ingreso de una contraseña para poder continuar y desplegar otras opciones [Palacio – Giraldo, 2008]. Subcategorias: No posee 1.2.1.6. Verificación / Decisión Posterior al aporte del usuario para obtener el servicio o funcionalidad requerida, el sistema hace verificaciones internas y continúa con el proceso para la prestación del servicio o la activación de la funcionalidad [Palacio – Giraldo, 2008]. Subcategorias: No posee 1.2.1.7. Interacción de Agentes Estos requisitos, al igual que los denominados “Acción del agente”, hacen parte de los más conocidos como “requisitos funcionales”. De manera general, un requisito funcional indica cuales TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 133 JONATAN PONZO ANEXO III – MODELADO DE SISTEMAS EMBEBIDOS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. son las funciones que debe proveer el sistema a los agentes que lo usan, incluyendo como agentes los otros sistemas con los que debe interactuar. Aunque los sistemas embebidos están más orientados a la acción que a la interacción, existen relaciones que se establecen con los sistemas interactuantes y que aportan al cumplimiento de la función general del súper-sistema [Palacio – Giraldo, 2008]. Subcategorias: • Interrelaciones con Súper-Sistema: Aquí solo se detallan las funciones que permiten la interacción del sistema embebido y el súper-sistema. • Interrelación con otros sistemas embebidos y el ambiente: Como ya se mencionó en las características propias de los sistemas embebidos, la presencia de jerarquía permite que cada sistema embebido incluido en un súper-sistema tenga asignada una función específica, que aporta al logro de una función general. En esta subcategoría se tendrán en cuenta las interrelaciones con los sistemas embebidos incluidos dentro del súper-sistema y la comunicación con el ambiente [Palacio – Giraldo, 2008]. 1.2.1.8. Acción del Agente Estos requisitos también hacen parte de los “requisitos funcionales”, pero no se ocupan de las interacciones, sino de las funcionalidades y servicios que debe proveer el sistema para cumplir con su propósito específico dentro del súper-sistema (Fuentes y Zúñiga, 2003) [Palacio – Giraldo, 2008]. Subcategorias: • Funcionalidades de entrada: Para determinar estas funcionalidades es preciso observar el sistema embebido como una caja negra, y analizar cuales son las entradas que debe recibir, tanto del súper-sistema, como de los otros sistemas embebidos, para comenzar su funcionamiento [Palacio – Giraldo, 2008]. • Funcionalidades de proceso: En este punto es preciso observar el sistema embebido como una caja blanca, para encontrar las funciones que debe proveer y lograr las salidas que se conectarán con otros sistemas. Entre las funciones típicas de proceso en un sistema embebido se cuentan: iniciación, configuración, diagnóstico, almacenamiento, terminación [Palacio – Giraldo, 2008]. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 134 JONATAN PONZO ANEXO III – MODELADO DE SISTEMAS EMBEBIDOS • CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Funcionalidades de salida: Al igual que las funcionalidades de entrada, para esta subcategoría se observa el sistema como una caja negra y se determina que debe entregar a los demás sistemas para cumplir con su función específica [Palacio – Giraldo, 2008]. 1.2.1.9. Transferencia / Actualización Son requisitos que reflejan cambios o actualizaciones a realizar luego de que el usuario lleve a cabo determinada acción. Subcategorias: No posee 1.2.1.10 Interrupción/ restitución/ conservación Son requisitos relacionados con la reacción del sistema ante errores y fallos, por lo tanto es la forma de convertir en funcional un requisito como la fiabilidad del sistema [Palacio – Giraldo, 2008]. Subcategorias: • Prevención de fallas: Estos requisitos expresan características que deben ser incluidas para minimizar las posibilidades de error del sistema antes de su entrada en funcionamiento. Por ejemplo, es importante incorporar componentes hardware fiables, y usar metodologías de especificación y diseño rigurosas [Palacio – Giraldo, 2008]. • Detección de fallas: A pesar de definir características para evitar que ocurran fallas, éstas pueden ocurrir, y es preciso tener mecanismos que permitan determinar cuando el sistema entró en un estado de error y que acciones se deben emprender para recuperarse. La incorporación de facilidades de auto chequeo y el uso de módulos del sistema redundantes son ejemplos. La inclusión de planes de contingencia también aumenta la tolerancia ante fallas, esto implica identificar las funciones críticas del sistema, y por cada función determinar las posibles fallas que puedan ocurrir, y por último, indicar posibles soluciones ante cada falla. Es importante hacer énfasis en estos requisitos, si se tiene en cuenta que será el propio sistema embebido el que se recupere, teniendo en cuenta que tiene poca interacción con el usuario humano [Palacio – Giraldo, 2008]. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 135 JONATAN PONZO ANEXO III – MODELADO DE SISTEMAS EMBEBIDOS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 1.2.1.11 Desempeño / Cambio Estos requisitos permiten incluir formas de optimizar tiempos para realizar una operación. Subcategorias: No posee 1.2.1.12 Precio y Costos Las principales características que determinan el precio de un sistema embebido son: su tamaño y el consumo de energía, factores que pueden sacar a un competidor del mercado, por lo cual, es preciso hallar un punto de equilibrio entre lo que cuestan las componentes a incluir y su ventaja frente a tamaño y consumo de energía [Palacio – Giraldo, 2008]. Sub-categorías: • Tamaño: Son requisitos que indican cual debe ser el tamaño de las componentes del sistema. La mayoría de los sistemas embebidos deben ser fáciles de transportar por el usuario y además, hacen parte de dispositivos que deben ser en esencia pequeños (por ejemplo, teléfonos celulares, PDA). Los diseñadores deben tener especial cuidado con los componentes que seleccionan [Palacio – Giraldo, 2008]. • Consumo de Energía: El consumo de energía es una de las características que indica el grado de portabilidad de un sistema embebido, y también depende de los componentes que el diseñador escoja a la hora de construir e implementar el sistema embebido [Palacio – Giraldo, 2008]. 1.2.1.13 Descripción y caracterización de los agentes Son requisitos no funcionales que definen propiedades emergentes del sistema, tales como disponibilidad, eficiencia, seguridad, confiabilidad. Pueden especificar también la utilización de una herramienta particular, un lenguaje de programación o un método de desarrollo durante la construcción del sistema. En los sistemas embebidos pueden ser más críticos que los requisitos funcionales [Palacio – Giraldo, 2008]. Subcategorias: • Disponibilidad: Requisitos que manifiestan la necesidad de que un sistema, en un punto del tiempo, sea operativo y capaz de ofrecer los servicios requeridos por los usuarios (Humanes et al., 2004). TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 136 JONATAN PONZO ANEXO III – MODELADO DE SISTEMAS EMBEBIDOS • CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Fiabilidad: Requisitos creados para garantizar que el sistema ejecute sus funcionalidades libre de fallos en un tiempo especificado y en un ambiente determinado (Humanes et al., 2004). Para cumplir con estos requisitos puede ser necesario especificar requisitos adicionales relacionados con la gestión de fallas . • Seguridad frente al exterior: Requisitos relacionados con aquellos atributos que debe tener el sistema para operar sin provocar daños en el ambiente y sin entorpecer las funciones de los demás sistemas con los cuales interactúa [Palacio – Giraldo, 2008]. • Seguridad frente a ataques: Requisitos orientados a evitar ataques externos que pongan en peligro las funcionalidades del sistema, o que permitan comportamientos como: Denegación de servicio (que pone en peligro la disponibilidad), corrupción de programas o datos manejados por el sistema (lo cual puede afectar el comportamiento del sistema y, por tanto, la fiabilidad y la seguridad), revelación de información manejada por el sistema. Si no se garantiza este tipo de seguridad, el sistema puede ser corrompido y puede comportarse de una forma inesperada [Palacio – Giraldo, 2008]. • Eficiencia: Requisitos que permiten lograr un efecto determinado optimizando los recursos disponibles. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 137 JONATAN PONZO ANEXO III – MODELADO DE SISTEMAS EMBEBIDOS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 2. “GOAL-ORIENTED PATTERNS FOR UML-BASED MODELING OF EMBEDDED SYSTEMS REQUIREMENTS” (PATRONES ORIENTADOS A METAS PARA MODELADO UML DE REQUERIMIENTOS DE SISTEMAS EMBEBIDOS) DE HEATHER J. GOLDSBY1, SASCHA KONRAD, BETTY H.C. CHENG, 2.1. INTRODUCCIÓN Los sistemas embebidos son utilizados en aplicaciones criticas que deben ajustarse a diversas restricciones de seguridad. Sus desarrolladores, usualmente deben enfrentarse a tres retos clave a la hora de aplicar enfoques existentes de análisis de requerimientos; Estos son: (1) modelar y declarar literalmente requerimientos funcionales, no funcionales y restricciones; (2) modelar de manera operativa el comportamiento deseado y (3) analizar los modelos de requerimientos de comportamiento en adhesión a las restricciones planteadas [Heather et al, 2007]. Si bien existen diversos enfoques que proveen patrones que relacionan modelos basados en metas con modelos UML, ninguno de ellos logra abordar los requerimientos funcionales del sistema y por ello no son capaces de asistir a los desarrolladores a determinar formalmente si el comportamiento especificado por el modelo UML satisface los requerimientos funcionales de un sistema embebido. A fin de cubrir esta carencia y sobrepasar los retos planteados al inicio de esta sección, este desarrollo introduce patrones COBRA que proveen plantillas de modelos UML y modelos basados en Metas, implementables en conjunto para crear modelos que capturen múltiples vistas de los requerimientos del sistema y sus restricciones [Heather et al, 2007]. A fin de capturar los componentes esenciales de un sistema embebido, los patrones COBRA modelan los requerimientos asociados a sensores, actuadores, controladores e interfaces de usuarios mediante la relacionan de modelos basados en metas con modelos UML a nivel de los requerimientos. Esta combinación supone tres beneficios clave: (1) La plantilla del modelo basado en metas especifica de manera declarativa los requerimientos funcionales y no funcionales de un sistema embebido y los refina en las restricciones; (2) La plantilla del modelo UML especifica de manera operativa el comportamiento que satisface los requerimientos, específicamente, la estructura del sistema es capturada utilizando diagramas de clase UMLy el Comportamiento mediante diagramas de estado UML. (3) La consistencia estructural y de comportamiento es establecida entre los modelos UML y basado en metas resultantes [Heather et al, 2007]. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 138 JONATAN PONZO ANEXO III – MODELADO DE SISTEMAS EMBEBIDOS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Para facilitar la implementación de este modelo, se utiliza una plantilla diseñada para direccionar los requerimientos tempranos y tardíos identificando cuando aplicar un patrón, como hacerlo y las metas del mismo -para casos de requerimientos tempranos- e identificando la estructura y comportamiento de los componentes mas relevantes del sistema para los requerimientos tardíos [Heather et al, 2007]. 2.2. NOTACIÓN DEL MODELO BASADO EN METAS Se utiliza el enfoque de requerimientos no funcionales para especificar la plantilla de modelos orientados a metas. En general, las metas son objetivos del sistema y los modelos orientados a metas las especifican y describen sus relaciones. Los modelos orientados a metas habilitan a los desarrolladores a evaluar soluciones alternativas y documentar la racionalidad detrás de los requerimientos, es decir, describen por que existen los requerimientos. Los patrones COBRA contienen cuatro tipos de metas con sus respectiva representación gráfica [Heather et al, 2007]; Softgoal Softgoal Operationalization Functional Goal TRABAJO FINAL DE LICENCIATURA EN SISTEMAS Se representa mediante una nube y describe objetivos no funcionales cuyo cumplimiento no puede ser siempre evaluado formalmente, por ejemplo, la reusabilidad o calidad. Se representa mediante una nube sombreada y describe una técnica de desarrollo o una artefacto que contribuye al éxito de un softgoal. En este caso, se utiliza para relacionar softgoals con requerimientos tardíos. Se representa mediante un rectángulo de bordes redondeados y describe un objetivo funcional que el sistema puede alcanzar, por ejemplo, le detección de una falla. 139 JONATAN PONZO ANEXO III – MODELADO DE SISTEMAS EMBEBIDOS Functional Goal CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Se representa mediante un rectángulo de bordes redondeados sombreado y describe un objetivo funcional que el sistema puede verificar mediante un análisis formal. Existen 2 tipos de relaciones entre las metas o goals anteriormente descriptas, estas son, Contribution Relationship y Refinement Relationship y se describen a continuación.. 1 Contribution Relationship; representada mediante una flecha con la palabra “helps” o ”hurts”, si el elemento origen ayuda o perjudica la realización del Softgoal destino respectivamente [Heather et al, 2007]. helps/hurts 2 Refinement Relationship; representada mediante una flecha con la palabra “AND” u ”OR”, establece la dependencia exclusiva o no de diversos sub-goals para con la realización de un Softgoal jerárquicamente superior. Una meta o goal posee una relación AND si y solo si todas sus sub-metas deben ser alcanzadas para ella también serlo mientras que es OR si solo alguna de las sub-metas deben ser alcanzadas para que ella alcance su propósito [Heather et al, 2007]. OR/AND Dentro de los patrones CORBA, los softgoals operationalization contribuyen al alcance de los softgoal. Adicionalmente, los softgoals son refinados por los functional goals, los cuales a su vez son refinados por los constraint goals [Heather et al, 2007]. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 140 JONATAN PONZO ANEXO III – MODELADO DE SISTEMAS EMBEBIDOS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 2.3. ANÁLISIS DEL COMPORTAMIENTO Después de instanciar un patrón COBRA, es necesario validar la consistencia del comportamiento en los modelos UML y orientados a Metas mediante una herramienta llamada SPIN Model Checker. Esta herramienta verifica que el modelo UML contemple las restricciones especificadas en el modelo orientado a metas. Antes de utilizar SPIN, es necesario traducir los modelos orientados a metas y UML a una representación formal. Se utiliza la herramienta Hydra para traducir los modelos UML y Spider (Specification Pattern Instantiation and Derivation EnviRonment) para los orientados a Metas [Heather et al, 2007]. 2.4. PATRONES COBRA En la Tabla 2 se observa un catalogo de patrones COBRA indicando su clasificación (estructural o funcional), una breve descripción del mismo, su meta funcional primaria y como algunos de los requerimientos no funcionales clave del sistema embebido como el rendimiento, adaptabilidad y reusabilidad son afectados por el mismo [Heather et al, 2007]. Los patrones clasificados como estructurales contienen plantillas UML enfocadas en la identificación de objetos, abstracción de objetos en clases y la captura de relaciones entre clases mientras que los patrones funcionales contienen plantillas UML que especifican el comportamiento de los objetos/clases mediante la definición del comportamiento esencial de los objetos reactivos. En las columnas de los requerimientos no funcionales, los signos menos (-) y más (+) indican si un patrón dado ayuda o perjudica un requerimiento establecido. Si el campo esta en blanco, el impacto del patrón sobre el Soft-goal no es significante [Heather et al, 2007]. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 141 JONATAN PONZO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Descripcion Meta Funcional Principal Sensor Activo Estructural Especifica diversos tipos de sensores activos y sus relaciones con el componente computacional Sensor Pasivo Estructural Especifica diversos tipos de sensores pasivos y sus relaciones con el componente computacional Actuador Estructural Especifica diversos tipos de actuadores y sus relaciones con el componente computacional Control Estructural NFR Control Descomposicion Indicador Comunicacion Componente Computacional Corrector Detector Gestor de Fallas Describe como modelar los controles de una interface de usuario a fin de adquirir valores de entrada Estructural Una vision global de las relaciones de los componentes en el sistema Describe como modelar los indicadores de una interface Estructural de usuario a fin de señalozar el estado actual al usuario Especifica como debe interactuar el sistema con entidades Operativo externas como dispositivos de diagnostico Especifica diversos modos operativos del componente Operativo computacional de un sistema embebido Describe como pueden ser incluidas capacidades de Operativo correccion de fallas en el sistema Describe como pueden ser incluidas capacidades de Operativo deteccion de fallas en el sistema Operativo Describe como modelar gestores globales y locales a fin de proveer un mayor nivel de abstraccion Monitoreo del entorno, envio de informacion Monitoreo del entorno, Requiere explicita solicitud de Informacion Influencia del entorno mediante la configuracion de un valor en el actuador Recepcion de informacion del usuario Descomposicion del sistema en Componentes Proveer informacion al usuario Reusabilidad Clasificacion Rendimiento Nombre Adaptabilidad ANEXO III – MODELADO DE SISTEMAS EMBEBIDOS + - + - + + + + - + + + - + Interactuar con entidades externas como dispositivos de diagnostico - + Distribuir tareas computacionales - + Corregir fallas - + - Detectar fallas - + - Gestion centralizada de fallas - + - Tabla 2. Evaluación de Patrones Cobra 2.5. PLANTILLAS COBRA La plantilla de patrones esta dividida en 4 secciones. La primera sección describe el nombre y clasificación del patrón (estructural o de comportamiento). Las secciones correspondientes a la ingeniería de requerimientos tempranos (2) y tardíos (3) incluyen campos adaptados a las respectivas fases del ciclo de vida de desarrollo de software. La sección de ingeniería temprana de requerimientos incluye una plantilla correspondiente al modelo orientado a metas mientras que la sección de ingeniería tardía de requerimientos incluye un diagrama de clases UML estructural y un diagrama de estado y secuencia para el modelado del comportamiento. La cuarta y última sección Meta-Data Patterns identifica los patrones COBRA y de diseño y su utilización [Heather et al, 2007]. A continuación se describe la plantilla de patrones CORBA en detalle. 1. Nombre del Patrón y Clasificación 1.1. Componente computacional: Patrón de Comportamiento 2. Ingeniería de Requerimientos temprana TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 142 JONATAN PONZO ANEXO III – MODELADO DE SISTEMAS EMBEBIDOS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 2.1. Motivación Este patrón se encarga de lo componentes computacionales usualmente llamados controladores de un sistema embebido. Estos componentes tienen la tarea de realizar los cómputos necesarios e interactuar con el entorno mediante sensores y actuadores. En un sistema embebido distribuido, en contraste con uno centralizado, existen numerosos componentes que interactúan entre mediante el intercambio de mensajes [Heather et al, 2007]. Los componentes computacionales usualmente tienen diversos modos de operación. Por ejemplo en un sistema distribuido de control de vuelo de un aeroplano, ningún componente debería apagarse completamente sino entrar en un modo de apagado parcial ofreciendo la posibilidad de ejecutar funciones básicas necesarias para operar el avión. Generalmente, dependiendo de la gravedad de la falla, un componente computacional podría cambiar su modo de operación actual luego de la detección de la misma [Heather et al, 2007]. . 2.2. Aplicabilidad El Patrón de Componente Computacional es aplicable para el modelado de componentes computacionales en sistemas embebidos centralizados y distribuidos[Heather et al, 2007]. 2.3. Plantilla del Modelo orientado a Metas La Figura 2 representa la plantilla del Modelo orientado a Metas para el Patrón de Componente Computacional. Se utilizan círculos con letras para etiquetar los elementos del diagrama y así facilitar su descripción. El Patrón de Componente Computacional perjudica (A) la asequibilidad debido a que redundancia de hardware y/o software podría ser requerida en algunos modos de operación pero a su vez contribuye a la reusabilidad porque numerosos componentes computacionales podrían ser construidos utilizando variantes del mismo modelo[Heather et al, 2007]. El Softgoal operationalization, por ejemplo las metas C-H, restringen la estructura de la instanciación de la plantilla del modelo UML. Las metas funcionales (I) Initialize components, (J) Change operational mode y (K), alcanzan la meta operacional y especifican los requerimientos TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 143 JONATAN PONZO ANEXO III – MODELADO DE SISTEMAS EMBEBIDOS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. funcionales que deberían ser satisfechos por el patrón. Además, son refinadas al tipo AND por Constraint Goals como (L), que describen una propiedad especifica y analizable, que instancias de la plantilla del modelo UML para componentes computacionales deberían satisfacer. Estos Constraint Goals son especificados utilizando lenguajes naturales estructurados que permiten al desarrollador utilizar la herramienta Spider para traducirlos a una forma de representación [Heather et al, 2007]. Nota: Instanciar una plantilla de modelo orientado a metas tiene 2 pasos. Primero, cada meta en la plantilla es adaptada remplazando el valor genérico subrayado con la información especifica relativa al sistema embebido en desarrollo. La plantilla puede ser adicionalmente adaptada añadiendo softgoals adicionales relevantes para el sistema. Estos softgoals podrían refinar a los existentes o introducir nuevos requisitos no funcionales. Segundo, la plantilla instanciada del modelo orientado a metas es incorporada dentro de la totalidad del modelo orientado a metas para el sistema embebido estableciendo una relación de refinamiento o contribución entre la nomenclatura del softgoal y la instancia del patrón. Por ejemplo, (D) y un softgoal en el modelo de metas del sistema [Heather et al, 2007]. 3. Ingeniería de Requerimientos tardía 3.1. Estructural El diagrama de clases UML del patrón Componente Computacional puede ser observado en la Figura 3. En un sistema distribuido, un Componente Computacional se comunica con otros de su tipo mediante el intercambio de mensajes mientras que en un sistema centralizado solo existe un Componente Computacional. Adicionalmente, un Componente Computacional puede interactuar con una Interface de usuario a fin de proveer información al usuario acerca de el estado actual de operación así como recibir entradas [Heather et al, 2007]. Nota: Un desarrollador instancia este diagrama para construir clases concretas que heredan de las clases abstractas presentadas en el diagrama. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 144 JONATAN PONZO ANEXO III – MODELADO DE SISTEMAS EMBEBIDOS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 3.2. Comportamientos Los siguientes modos de operación son provistos por el Componente Computacional. Cada modo de operación es representado como un estado [Heather et al, 2007]. 3.2.1. Apagado Estado que precede a la activación del Componente Computacional 3.2.2. Inicialización En este estado se produce la inicialización del Componente Computacional en el cual, por ejemplo, se revisa el estado de todos los componentes. 3.2.3. Comportamiento normal Estado en el cual no han ocurrido fallas y el Componente Computacional funciona normalmente. 3.2.4. Control Manual/Externo En este estado el Componente Computacional es operado por una entidad externa como un dispositivo de diagnóstico. 3.2.5. Parada de Producción Cesa la operación inmediatamente pero no corta la alimentación. Este estado es apropiado cuando un Componente Computacional necesita ser detenido pero un dispositivo debería continuar operando para evitar situaciones riesgosas. Por ejemplo, la refrigeración de un dispositivo debería continuar incluso ante un caso de un mal funcionamiento del sistema. 3.2.6. Parada de Protección Este estado es útil por ejemplo cuando un humano ingresa en un área peligrosa. El Componente Computacional debería ser capaz de completar su tarea actual y asegurar el entorno pero a su vez apagarse lo antes posible. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 145 JONATAN PONZO ANEXO III – MODELADO DE SISTEMAS EMBEBIDOS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 3.2.7. Apagado Parcial Es un estado en el cual el Componente Computacional ofrece solo funcionalidades básicas; Por ejemplo, en dispositivos médicos debe permanecer en un estado de monitoreo. 3.2.8. Suspensión Ninguna funcionalidad es prevista en este estado aunque se realizan acciones seguras como por ejemplo, la auto destrucción de un cohete en caso de funcionamiento inesperado. La única manera de salir de este estado es mediante el reinicio completo del sistema. 3.3. Participantes Los participantes son el Componente Computacional y la Interface de Usuario. 3.4. Colaboraciones 3.4.1. Componente Computacional Efectúa las operaciones necesarias e interactúa con el entorno. 3.4.2. Interface de Usuario Es utilizada para indicar al usuario el estado actual del sistema. Esta información es importante para que el usuario este al tanto de que el sistema esta funcionando en un modo seguro. Adicionalmente el usuario puede provee entradas al sistema mediante este dispositivo. 3.5. Consecuencias 3.5.1. Los modos operacionales seguros requeridos deben ser implementados los Componentes Computacionales. 3.5..2. Redundancia de Hardware y Software podría ser requerida para algunos modos de operación, incrementando el costo del sistema. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 146 JONATAN PONZO ANEXO III – MODELADO DE SISTEMAS EMBEBIDOS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 4. Patrón Meta-Data 4.1. Patrones de Diseño aplicables Strategy pattern [10], Double Checked Locking pattern [32], Acceptor-Connector pattern [32] 4.2. Alias A determinar. 4.3. Usos probables A determinar. 4.4. Patrones COBRA relacionados: Detector, Corrector, Fault Handler, Indicator. 2.6. ANÁLISIS DE CONSISTENCIA EN LA CONSTRUCCIÓN. Es necesario establecer una consistencia entre los modelos UML y basados en Metas. La consistencia estructural es establecida mediante la construcción de diagramas UML relacionando elementos del modelo basado en Metas mientras que la consistencia de comportamiento, es alcanzada mediante el Análisis de los modelos UML en consideración de las restricciones especificadas en el modelo basado en Metas [Heather et al, 2007]. 2.6.1. Consistencia estructural por construcción. La consistencia estructural identifica las clases/objetos cuyo comportamiento está limitado por la aplicación del patrón y se establece durante la construcción de la meta y los modelos UML. En concreto, la consistencia estructural crea una relación explícita entre los softgoals operationalization de la instanciación de una plantilla de modelo orientado a metas y elementos correspondientes a la instanciación de la plantilla del modelo UML. Hay cuatro tipos de softgoal operationalization y cada uno proporciona información cada vez más concreta acerca de la creación de instancias de la plantilla de diagrama de clases [Heather et al, 2007]. Pueden observarse los tipos de softgoal operationalization referentes a los elementos genéricos definidos por la plantilla del modelo Componente Computacional en la Figura 2: TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 147 JONATAN PONZO ANEXO III – MODELADO DE SISTEMAS EMBEBIDOS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Fig. 2. Plantilla del modelo orientado a metas para el patrón Componente Computacional El nombre del patrón es identificado a un cierto nivel de abstracción, por ejemplo Patrón de Componente Computacional El contexto es provisto mediante la nomenclatura de la instancia del patrón, por ejemplo, Componente Computacional N. Los Softgoal operationalization identifican los componentes de la plantilla del diagrama de clases UML. Por ejemplo (E) Clase abstracta del Componente Computacional y (F) La clase abstracta de la interface de usuario identifica las clases abstractas definidas por la plantilla de diagrama de clases UML para este patrón como puede observarse en la Figura 3. Los softgoal operationalization identifican las clases que deben ser usadas para instanciar las plantillas de diagrama de clases UML. Por ejemplo, (G) Componente Computacional Concreto y (H) Interface de Usuario Concreta, nombren las clases concretas construidas para instanciar la plantilla de diagrama de clases UML para un Componente Computacional especifico. Notas Fig. 2. La consistencia estructural provee a los desarrolladores una guía para el mantenimiento de ambos modelos. Si una meta restrictiva dentro de la instancia de una plantilla de un modelo orientado a metas es modificada, las relaciones de consistencia estructural indicaran aquellos elementos del diagrama de clases UML cuyos diagramas de estado potencialmente necesitaran ser modificados TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 148 JONATAN PONZO ANEXO III – MODELADO DE SISTEMAS EMBEBIDOS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. para satisfacer la restricción. De igual manera, si un diagrama de estado de una clase UML es modificado, las relaciones de consistencia estructural indicaran las metas que deberían ser modificadas [Heather et al, 2007]. 2.6.2. Consistencia en el comportamiento mediante análisis. La consistencia en el comportamiento es establecida mediante un Análisis formal. Específicamente el modelo UML resultante de la instanciación de los patrones COBRA es analizado en considerando las metas restrictivas. El Análisis tiene tres pasos: (1) Utilizando la herramienta Hydra se traduce el modelo UML a una representación formal capaz de ser analizada con la herramienta de revisión de modelos Spin. (2) Utilizando la herramienta Spider, las metas restrictivas son traducidas a una representación formal mediante la instanciación de todos. (2) El modelo formalizado UML es analizado considerando la meta restrictiva declarada. Cualquier error que sea detectado debe ser corregido antes de aplicar otro patrón. Para determinar la fuente de un error, se puede utilizar la herramienta Violation Trace provista en Spin o bien revisar el modelo original UML con la herramienta Theseus. Si estas herramientas arrojaran como resultado que el comportamiento es valido entonces la propiedad especificada por la meta restrictiva es errónea y debe ser modificada. En casos donde un comportamiento erróneo es detectado, el modelo UML debe ser corregido antes de aplicar otro patrón que incorpore mas detalles al modelo [Heather et al, 2007]. 3. STANDARD IEEE 1074-2006 PARA EL DESARROLLO DE PROCESOS DE CICLO DE VIDA DE SOFTWARE 3.1. INTRODUCCIÓN IEEE es la asociación profesional sin fines de lucro más grande y prestigiosa del mundo [IEEE, 2013] dedicada a fomentar el avance de la innovación tecnológica y la excelencia en beneficio de la humanidad. Sus miembros, Ingenieros electrónicos, informáticos, científicos de la computación y expertos en telecomunicaciones de mas de 160 países, inspiran a la comunidad global a través de publicaciones, conferencias, estándares de tecnología y diversas actividades profesionales y educativas. El standard 1074 desarrollado por dicha asociación y cuya ultima versión data del año 2006 está dirigido a los gestores de proyectos, desarrolladores de software, responsables de la garantía de la calidad, a quienes ejecutan tareas de apoyo, a los usuarios y al personal de mantenimiento de productos software y determina un conjunto de actividades esenciales, no ordenadas en el tiempo, TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 149 JONATAN PONZO ANEXO III – MODELADO DE SISTEMAS EMBEBIDOS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. que deben ser incorporadas dentro de un Modelo de Ciclo de Vida del producto software a desarrollar, establecido por el usuario para el proyecto a llevar a cabo -la norma no define un ciclo de vida en particular-[Peláez, 2013]. 3.2. DESCRIPCIÓN GENERAL DEL MODELO El standard se encuentra estructurado en torno a procesos y subprocesos los cuales a su vez contienen actividades a llevar a cabo utilizando Técnicas sugeridas. El trabajo realizado a lo largo de cada etapa se ve reflejado en diversos documentos de salida que brindan un marco profesional y controlado a la actividad. A continuación se describen los procesos, sub-procesos y actividades asociadas al standard. 1. Procesos de Gestión del Proyecto 1.1. Sub-proceso de iniciación del proyecto 1.2. Sub-proceso de Planificación del proyecto 1.3. Sub-proceso de Monitoreo y Control 2. Proceso de Pre-Desarrollo 2.1. Sub-proceso de Exploración de Conceptos 2.2.Sub-proceso de Asignación del Sistema 2.3. Sub-proceso de Importación de Software 3. Proceso de Desarrollo 3.1. Sub-proceso de requisitos 3.2. Sub-proceso de Diseño 3.3. Sub-proceso de implementación 4. Proceso de Post-Desarrollo 4.1. Sub-proceso de instalación 4.2. Sub-proceso de operación y soporte 4.3. Sub-proceso de mantenimiento 4.4. Sub-proceso de retiro 5. Procesos Integrales del Proyecto 5.1. Subproceso de Evaluación 5.2. Sub-proceso de gestión de la configuración 5.3. Sub-proceso de desarrollo de Documentación 5.4. Sub-proceso de Formación TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 150 JONATAN PONZO ANEXO III – MODELADO DE SISTEMAS EMBEBIDOS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 3.3. DESCRIPCIÓN DETALLADA DE SUBPROCESOS A continuación se detallan los procesos y sub-procesos presentados anteriormente, las actividades que los componen y se incluye un conjunto de técnicas sugeridas y documentación de salida, propuestos en la guía de estudio “Ciclo de Vida de Software, Proceso Software y Plan de Actividades" [García Martínez, 2009]. 1. Procesos de Gestión del Proyecto 1.1. Sub-proceso de iniciación del proyecto Actividades: 1.1.1. Seleccionar un modelo de Ciclo de Vida 1.1.2. Realizar Estimaciones 1.1.3. Asignar Recursos 1.1.4. Definir Métricas 1.1.5. Determinar objetivos de Seguridad Documentación de Salida: ▪ Modelo de Ciclo de Vida Seleccionado ▪ Estimaciones del Proyecto ▪ Asignación de Recursos ▪ Métricas Definidas y Métodos de Análisis y Captura de las mismas ▪ Especificación de Objetivos de Seguridad Técnicas Sugeridas: ▪ Análisis de camino critico ▪ Análisis PERT ▪ Diagrama de Gantt ▪ Técnicas estadísticas ▪ Técnicas de Simulación (Metodo Montecarlo) ▪ Modelos empíricos de estimación de esfuerzo del Software(COCOMO, PUTNAM) 1.2. Sub-proceso de planificación del proyecto Actividades: ▪ Planificación de la Evaluación ▪ Planificación de la Gestión de la Configuración ▪ Planificación de la Transición (si se requiere) TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 151 JONATAN PONZO ANEXO III – MODELADO DE SISTEMAS EMBEBIDOS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. ▪ Planificación de la Instalación ▪ Planificación de la Documentación ▪ Planificación del Entrenamiento ▪ Planificación de la Gestión del Proyecto. ▪ Planificación de la Integración ▪ Planificación de la Gestión del Lanzamiento Documentación de Salida: ▪ Plan de Evaluación ▪ Plan de Gestión de la Configuraciones ▪ Plan de Transición e Informa de Impacto ▪ Plan de Instalación ▪ Plan de Documentación ▪ Plan de Entrenamiento ▪ Plan de Gestión del Proyecto ▪ Plan de Integración ▪ Plan de Gestión del Lanzamiento 1.3. Sub-proceso de seguimiento y control del proyecto Actividades: ▪ Gestión de Riesgos ▪ Gestión del Proyecto ▪ Identificación de Mejoras al Ciclo de Vida ▪ Almacenamiento de Registros ▪ Recopilación y Análisis de Métricas ▪ Cierre del Proyecto Documentación de Salida: ▪ Reporte de Riesgos ▪ Reporte de Gestión del Proyecto ▪ Reporte de necesidades de mejora en el Ciclo de Vida ▪ Registro Histórico de Proyectos ▪ Reporte de Métricas ▪ Información necesaria para el archivo del Proyecto al momento de su cierre Técnicas Sugeridas: ▪ Análisis de riesgo técnico TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 152 JONATAN PONZO ANEXO III – MODELADO DE SISTEMAS EMBEBIDOS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. ◦ Modelización y Simulación Estática y Dinámica ◦ Prototipado ◦ Revisiones ◦ Auditorías ▪ Análisis de riesgo económico ▪ Análisis de finanzas ▪ Retorno de la inversión ▪ Análisis de riesgo operativo y de soporte ▪ Análisis de riesgo del programa ◦ Análisis de camino critico CPM ◦ Técnicas de nivelación de recursos • Análisis de riesgo del hardware 2. Proceso de Pre-Desarrollo 2.1. Sub-proceso de Exploración de Conceptos Actividades: ▪ Identificar ideas o necesidades. ▪ Formular soluciones potenciales. ▪ Conducir estudios de viabilidad. ▪ Refinar y Finalizar la idea o necesidad. Documentación de Salida: ▪ Informe preliminar de necesidades ▪ Informe de Soluciones potenciales. Beneficios y Limitaciones ▪ Informe de Viabilidad ▪ Informe de Necesidades Técnicas Sugeridas: ▪ Técnicas de Adquisición de Conocimientos. ▪ Análisis Económico (Coste/Beneficio). ▪ Análisis Técnico. ▪ Análisis Alternativos. ▪ Técnicas de Modelización. ▪ Diagramas de Flujos de Datos (DFD). ▪ Prototipado. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 153 JONATAN PONZO ANEXO III – MODELADO DE SISTEMAS EMBEBIDOS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 2.2. Sub-proceso de Asignación del Sistema Actividades: ▪ Analizar las funciones del sistema. ▪ Desarrollar la arquitectura del sistema. ▪ Asignar los requisitos del Sistema Documentación de Salida: ▪ Descripción Funcional del Sistema ▪ Arquitectura del Sistema y Requerimientos de Seguridad ▪ Requerimientos Humanos y de Hardware del Sistema ▪ Requerimientos Funcionales del Sistema ▪ Requerimientos de Interfaces del Sistema Técnicas Sugeridas: ▪ Técnicas de Adquisición de Conocimientos. ▪ Técnicas de Modelización. ▪ Diagramas de Flujo de Datos (DFD). 2.3. Sub-proceso de Importación de Actividades Actividades: ▪ Identificar Requerimientos de software importados ▪ Evaluar fuentes de software importado ▪ Definir método de importación de software ▪ Importar software Documentación de Salida: ▪ Especificación de requerimientos de software importados ▪ Fuentes del software importados ▪ Métodos candidatos para la importación del software ▪ Método seleccionado para la importación del software ▪ Software Importados ▪ Documentación del Software Importados 3. Proceso de Desarrollo 3.1. Sub-proceso de requisitos Actividades: ▪ Definir y desarrollar los requisitos del software ▪ Definir los requisitos de interfaz TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 154 JONATAN PONZO ANEXO III – MODELADO DE SISTEMAS EMBEBIDOS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. ▪ Integrar los requisitos del software Documentación de Salida: ▪ Informe preliminar de requisitos del sistema ▪ Especificación de requisitos de interfaces ▪ Especificación de requerimientos del sistema Técnicas Sugeridas: ▪ Técnicas orientadas a los procesos ◦ Análisis estructurado ▪ Diagrama de flujos de datos DFD ▪ Diccionario de datos DD ◦ SADT Structured Analysis and Design Techniques ▪ Diagramas de transición de estados ◦ Diagramas de descomposición ▪ WRS Working Breackdown Structure ▪ RBS Resource Breakdown Structure ▪ OBS Object Breakdown Structure ◦ Actigramas o Diagramas de Actividades • Técnicas formales de especificación ◦ Técnicas relacionales ▪ Ecuaciones implícitas ▪ Relaciones recurrentes ▪ Axiomas algebraicos ▪ Expresiones regulares ◦ Técnicas orientadas al estado ▪ Tablas de decisión ▪ Tablas de eventos ▪ Tablas de transición ▪ Mecanismos de estados finitos ▪ Redes de Petri • Técnicas de prototipado 3.2. Sub-proceso de Diseño Actividades: ▪ Realizar el diseño arquitectónico TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 155 JONATAN PONZO ANEXO III – MODELADO DE SISTEMAS EMBEBIDOS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. ▪ Realizar el diseño de la base de datos (si aplica) ▪ Diseñar las interfaces ▪ Realizar el diseño detallado Documentación de Salida: ▪ Diseño arquitectónico ▪ Diseño de la base de datos ▪ Diseño de las interfaces ▪ Diseño detallado Técnicas Sugeridas: ▪ Técnicas orientadas a los procesos ◦ Diseño estructurados Análisis de transformación ◦ Análisis de transacción ◦ Patrones COBRA para modelos UML y basados en Metas. ▪ Diseño del dialogo de los interfaces ◦ Diseño lógico o diseño del perfil ◦ HIPO (Hierarchy Input Process Output) ◦ Patrones COBRA para modelos UML y basados en Metas. ▪ Técnicas Orientadas a los datos ◦ Modelo lógico de datos ◦ Modelo físico de datos ◦ Warnier ◦ Jackson ▪ Técnicas orientadas a los objetos ◦ Modelo de clases/objetos ◦ Diagrama de módulos ▪ Técnicas de diseño de bajo nivel ◦ Programación estructurada ▪ Diagramas arborescentes ▪ Diagramas de Chapin ◦ Programación orientada a objetos ◦ Warnier ◦ Jackson TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 156 JONATAN PONZO ANEXO III – MODELADO DE SISTEMAS EMBEBIDOS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. ▪ Técnicas de prototipado ▪ Técnicas de refinamiento 3.3. Sub-proceso de Implementación Actividades: • Crear el código fuente • Crear la Documentación operacional • Realizar la integración • Gestionar las versiones del Software Documentación de Salida: • Codigo fuente • Software Ejecutable • Base de datos • Documentación operacional • Software integrado • Paquete del producto lanzado Técnicas Sugeridas: 4. • Warnier • Jackson • Lenguajes de programación • Entorno de Programación del hardware seleccionado Proceso de Post-Desarrollo 4.1. Sub-proceso de instalación Actividades: • Distribuir el Software • Instalar el software • Aceptar el software en el ambiente operativo Documentación de Salida: • Reporte de Instalación del Software • Informe de aceptación del software por parte del usuario 4.3. Sub-proceso de operación y soporte Actividades: • TRABAJO FINAL DE LICENCIATURA EN SISTEMAS Operar el sistema 157 JONATAN PONZO ANEXO III – MODELADO DE SISTEMAS EMBEBIDOS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. • Proveer de asistencia técnica y consultas • Mantener el histórico de peticiones de soporte Documentación de Salida: • Registro de Operaciones • Registro de Anomalías • Registro de Peticiones de Soporte 4.4. Sub-proceso de mantenimiento Actividades: • Identificación de necesidades de mejora del Software • Verificación del método de reporte de problemas • Iteración del Ciclo de Vida Documentación de Salida: • Sugerencia de mejoras al software • Reporte de anomalías • Reporte de corrección de anomalías • Recomendaciones de Mantenimiento 4.5. Sub-proceso de retiro Actividades: • Notificar al usuario • Conducir operaciones en paralelo (si aplica) • Retirar el sistema Documentación de Salida: 5. • Notificación oficial al usuario • Registro de operaciones en paralelo • Reporte de revisión Post-Operacion Procesos Integrales del Proyecto 5.1. Subproceso de Verificación y validación Actividades: • Revisión de Conducta • Crear Matriz de Trazabilidad • Conducir Auditorias • Desarrollar Procedimientos de prueba • Crear datos de prueba TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 158 JONATAN PONZO ANEXO III – MODELADO DE SISTEMAS EMBEBIDOS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. • Ejecutar pruebas • Reportar Resultados de la evaluación • Confirmar Acreditación de Seguridad Documentación de Salida: • Resultados de revisión en-proceso • Reporte de revisión Post-implementación • Recomendación de mejoras en los procesos • Reporte de estado de la gestión • Reporte de análisis de trazabilidad • Reporte de cambios en la asignación del sistema • Matriz de Trazabilidad • Reporte de Auditoría • Plan de Prueba • Sumario de Pruebas • Reporte de Evaluación Técnicas Sugeridas: • Técnicas de prueba de caja blanca ◦ Cobertura de sentencias ◦ Cobertura de decisión o ramificación ◦ Cobertura de condición ◦ Cobertura de decisión/condición ◦ Cobertura de condición múltiple • Técnicas de prueba de caja negra ◦ Partición de equivalencias ◦ Análisis de valores limites ◦ Gráficos causa-efecto ◦ Conjetura de errores • Revisiones formales • Auditorías 5.2. Sub-proceso de gestión de la configuración Actividades: • TRABAJO FINAL DE LICENCIATURA EN SISTEMAS Realizar la identificación de la configuración 159 JONATAN PONZO ANEXO III – MODELADO DE SISTEMAS EMBEBIDOS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. • Realizar el control de la configuración • Realizar la información del estado de la configuración Documentación de Salida: • Reporte de Identificación de la Configuración 5.3. Sub-proceso de desarrollo de Documentación Actividades: • Implementar la Documentación • Producir y Distribuir la Documentación Documentación de Salida: • Documentación publicada 5.4. Sub-proceso de Formación Actividades: • Desarrollar los materiales de formación • Validar el programa de formación • Implementar el programa de formación Documentación de Salida: • Manual de entrenamiento • Materiales de entrenamiento TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 160 JONATAN PONZO ANEXO III – MODELADO DE SISTEMAS EMBEBIDOS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 4. REFERENCIAS Azcurra, D., Rodriguez, D., Pytel, P., Santos, D., Giordano, V., Arboleya, H., García- Martínez, R., 2011. Arquitecturas de Sistemas Embebidos utilizables en Robótica Autónoma. Fuentes, A, Hardings, J, Zuñiga, M. (2003). Software libre en sistemas embebidos. Seminario de software libre. Garcia Martinez. (2009 ). Ciclo de Vida de Software, Proceso Software y Plan de Actividades . Guía de estudio de la materia Ingeniería de Software I, Cohorte 2008, Lic. Sistemas, UNLa. Heather J. Goldsby1, Sascha Konrad, Betty H.C. Cheng. Goal-Oriented Patterns for UML-Based Modeling of Embedded Systems Requirements (Patrones Orientados a Metas para Modelado UML de Requerimientos de Sistemas Embebidos) Humanes, D, López, J, Robles, I, Sánchez, C. (2004). Sistemas Críticos. Ingeniería Técnica en Informática de Gestión. Escuela Politécnica. Universidad de Alcalá de Henares. España. IEEE (2013) Software Engineering Standards Committee of the IEEE Computer Society (1990). URL http://www.ieee.org.ar/. Sitio vigente 11/2013 Kovitz, B. (2001). Is backtracking so bad? The role of learning in software development. Proceedings of Fifth IEEE International Symposium on Requirements Engineering, Toronto, Canada, pp. 272. Lavi, J, Kudish, J. (2005). Systems modelling & requirements specification using ECSAM: an analysis method for embedded & computer-based systems”. Innovations Syst Softw Eng. 1: 100– 115 Liliana Gonzalez Palacio, German Urrego Giraldo, 2008. Modelo de Requisitos para Sistemas Embebebidos. Peláez, J (2013). El desarrollo de Software. http://desarrollodesoftware-jorgepelaez.blogspot.com.ar/2013/03/2-eldesarrollo-de-software.html. Sitio vigente 11/2013 Ross, D, Schoman, K. (1977). Structured Analysis for Requirements Definition. Transactions on Software Engineering, IEEE, 3(1): 6-15. Software Engineering Standards Committee of the IEEE Computer Society, 2006. IEEE Standard for Developing Software Life Cycle Processes. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 161 JONATAN PONZO ANEXO III – MODELADO DE SISTEMAS EMBEBIDOS TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 162 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS Propuesta de Modelo de Aplicación y Uso Potencial Jonatan Ponzo - [email protected] Universidad Nacional de Lanús – Lic. Sistemas ANEXO IV – DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 163 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS 164 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS Robot para Automatización de Tareas de Invernadero Plan de Inicialización del Proyecto Versión 1.0 Autor: Jonatan Ponzo Lanzamiento: Septiembre 2013 TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 165 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS 166 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS Histórico de Modificaciones Fecha 12/01/13 Descripción del cambio Creación del Documento TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 167 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS 168 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS Tabla de Contenidos 1. Introducción 2. Selección de un Modelo de Ciclo de Vida 3. Creación del Ciclo de Vida del Proyecto y Mapa de Actividades-Documentos 4. Organización de las Actividades en Secuencia de Ejecución 5. Mapa de Documentos y Actividades-Documento 6. Apéndices/Anexos Apéndice A: Mapa de Actividades Apéndice B: Secuencia de Actividades Apéndice C: Mapa de Documentos y Actividades TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 169 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS 170 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO 1. CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS Introducción A lo largo de este documento se desarrolla y presenta la estructura de procesos y actividades que determinan la conformación de la columna vertebral del proyecto que busca garantizar la conclusión efectiva y eficiente del mismo. Las 4 fases que definen la estructura general del proyecto son las siguientes: 1. Selección de un Modelo de Ciclo de Vida 2. Creación del Ciclo de Vida del Proyecto y Mapa de Actividades 3. Organización de las Actividades Secuencia de Ejecución 4. Mapa de Documentos y Actividades 2. Selección de un Modelo de Ciclo de Vida Iniciamos el Proyecto con el proceso de selección de un Modelo de Ciclo de Vida acorde a las etapas y actividades que se presumen necesarias para la realización exitosa del mismo. Hemos seleccionado un Modelo de Ciclo de Vida “Simple Evolutivo”. Sus etapas y actividades se presentan a continuación: 1 Planificación 1.1 Identificar la misión del proyecto 1.2 Identificar los recursos 1.3 Identificar métricas de calidad 1.4 Planificar el Proyecto 2 Análisis y Diseño 2.1 Definir objetivos 2.2 Definir requisitos y requerimientos 2.3 Diseñar el Sistema 3 Implementación y Prueba 3.1 Desarrollar componentes 3.2 Integrar e implementar el Sistema 3.3 Verificación y Validación TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 171 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS 4 Garantía de Calidad 4.1 Conducir revisiones y determinar mejoras en el Producto 4.2 Planificar el Mantenimiento 4.3 Conducir auditorías y determinar mejoras en los Procesos 4.4 Implementar Documentación 4.5 Cerrar el proyecto 3. Creación del Ciclo de Vida del Proyecto y Mapa de Actividades. Seleccionado y presentado el Modelo de Ciclo de Vida procedemos a la elaboración de un Mapa de Actividades conteniendo la asignación de las actividades propuestas por el Modelo Integral de Gestión de Proyectos destinados al control de Robots Autónomos Móviles basados en Arquitecturas de Sistemas Embebidos propuesto y foco de esta Prueba de Concepto, a las fases propuestas en el Modelo de Ciclo de Vida seleccionado. En el Mapa de Actividades, el cual puede encontrarse en el apéndice A a continuación, se pueden además observar las actividades desestimadas y su correspondiente justificación. 4. Organización de Actividades en secuencia de ejecución Definido el Mapa de Actividades, se deben organizan las mismas en torno a la secuencia de ejecución apropiada para el Proyecto. Para ello se genera un cuadro de Secuencia de Actividades organizadas en torno a las fases definidas por el Modelo de Ciclo Vida seleccionado y la secuencia temporal de ejecución mas apropiada. El mismo puede observarse en el apéndice B. 5. Mapa de Documentación y Actividades Organizadas las actividades en torno a una secuencia de ejecución, solo resta establecer la participación de cada actividad en la conformación de los documentos a producir a lo largo del proyecto. Para ello se desarrolla un Mapa de Documentación que relaciona todas las actividades previstas con los documentos a producir. El mismo puede encontrarse en el apéndice C. Para continuar con el flujo de la Prueba de Concepto, dirigirse a los documentos generados a lo largo del Ciclo de Vida del proyecto y referenciados como fue anteriormente mencionado, en el Mapa de Documentación. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 172 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS Apéndice A. Mapa de Actividades TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 173 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS 174 JONATAN PONZO A.1 A.1.1 A.1.1.1 A.1.1.2 A.1.1.3 A.1.1.4 A.1.1.5 A.1.1.6 A.1,2 A.1.2.1 A.1.2.2 A.1.2.3 A.1.2.4 A.1.2.5 A.1.2.6 A.1.2.7 A.1.2.8 A.1.2.9 A.1.2.10 A.1.2.11 A.1.3 A.1.3.1 A.1.3.2 A.1.3.3 A.1.3.4 A.1.3.5 A.1.3.6 A.2 A.2.1 A.2.1.1 A.2.1.2 A.2.1.3 A.2.1.4 A.2.2 A.2.2.1 A.2.2.2 A.2.2.3 A.3 A.3.1 A.3.1.1 A.3.1.2 A.3.1.3 A.3.1.4 A.3.1.5 A.3.2 A.3.2.1 A.3.2.2 A.3.2.3 A.3.2.4 Proceso de Gestion del Proyecto Sub-proceso de Iniciación del proyecto Seleccionar un modelo de Ciclo de Vida Realizar Estimaciones Asignar Recursos Definir Métricas Determinar objetivos de Seguridad Entendimiento del Negocio Sub-proceso de Planificación del proyecto Planificación de la Evaluación Planificación de la Gestión de la Configuración Planificación de la Transición (si se requiere) Planificación de la Instalación Planificación de la Documentación Planificación del Entrenamiento Planificación de la Gestión del Proyecto. Planificación de la Integración Planificación de la Gestión del Lanzamiento Planificación del Mantenimiento Planificación del Retiro Sub-proceso de Seguimiento y Control del Proyecto Gestión de Riesgos Gestión del Proyecto Identificación de Mejoras al Ciclo de Vida Almacenamiento de Registros Recopilación y Análisis de Métricas Cierre del Proyecto Proceso de Desarrollo Pre-Desarrollo Sub-proceso de Exploración de Conceptos Identificar ideas o necesidades. Formular soluciones potenciales. Conducir estudios de viabilidad. Refinar y Finalizar la idea o necesidad. Sub-proceso de Asignación del Sistema Analizar las funciones del sistema. Desarrollar la arquitectura del sistema. Asignar los requisitos del Sistema Proceso de Desarrollo Sub-proceso de Requisitos Definir y desarrollar los requisitos del hardware Definir y desarrollar los requisitos del interfaces Definir los requisitos del entorno Definir los requisitos de software Integrar los requisitos Sub-proceso de Diseño Realizar el diseño arquitectónico Realizar el diseño de la base de datos (si aplica) Selección de la Arquitectura de Hardware mas conveniente. Diseñar las interfaces TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 175 GARANTIA DE CALIDAD PLANIFICACIÓN MAPA DE ACTIVIDADES IMPLEMENTACIÓN Y PRUEBA CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS ANÁLISIS Y DISEÑO ANEXO IV – DOCUMENTOS DEL PROYECTO X X X X X X X X NA NA NA NA X X NA NA NA NA X X X X X X X X X X X X X X X X X X X X X X X X X NA NA NA NA X X JONATAN PONZO A.4.2 A.4.2.1 A.4.2.2 A.4.2.3 A.4.3 A.4.3.1 A.4.3.2 A.4.3.3 A.4.3.4 A.4.4 A.4.4.1 A.4.4.2 A.4.4.3 A.5 A.5.1 A.5.1.1 A.5.1.2 A.5.1.3 A.5.1.4 A.5.1.5 A.5.1.6 A.5.1.7 A.5.1.8 A.5.2 A.5.2.1 A.5.2.2 A.5.2.3 A.5.3 A.5.3.1 A.5.3.2 A.5.4 A.5.4.1 A.5.4.2 A.5.4.3 A.3.3 A.3.3.1 A.3.3.2 A.3.3.3 A.3.3.4 A.3.3.5 A.4 Sub-proceso de operación y soporte Operar el sistema Proveer de asistencia técnica y consultas Mantener el histórico de peticiones de soporte Sub-proceso de mantenimiento Identificación de necesidades de mejora del Software Identificación de necesidades de mejora del Hardware y Entorno Configurable Implementación de un método de reporte de problemas Iteración del Ciclo de Vida Sub-proceso de retiro Notificar al usuario Conducir operaciones en paralelo (si aplica) Retirar el sistema Procesos Integrales del Proyecto Subproceso de Verificación y Validación Conducir Revisiones Crear Matriz de Trazabilidad Conducir Auditorías Desarrollar Procedimientos de prueba Crear datos de prueba Ejecutar pruebas Reportar Resultados de la evaluación Confirmar Acreditación de Seguridad Sub-proceso de gestión de la configuración Realizar la identificación de la configuración Realizar el control de la configuración Realizar la información del estado de la configuración Sub-proceso de desarrollo de Documentación Implementar la Documentación Producir y Distribuir la Documentación Sub-proceso de Formación Desarrollar los materiales de formación Validar el programa de formación Implementar el programa de formación Sub-proceso de Implementación Configurar e integrar el hardware y las interfaces físicas Crear el código fuente Crear la Documentación operacional Realizar la integración Gestionar las versiones del Software Proceso de Post-Desarrollo TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 176 GARANTIA DE CALIDAD PLANIFICACIÓN MAPA DE ACTIVIDADES IMPLEMENTACIÓN Y PRUEBA CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS ANÁLISIS Y DISEÑO ANEXO IV – DOCUMENTOS DEL PROYECTO X X X X X X X NA NA NA NA NA NA NA NA NA NA NA NA X X X X X X X X X X X X X X X X NA NA NA NA NA NA NA NA NA NA NA NA X X X X X JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS JUSTIFICACION DE ACTIVIDADES NO REALIZADAS A.1.2.3 Planificación de la Transición (si se requiere) A.3.2.2 Realizar el diseño de la base de datos (si aplica) A.4.4.2 Conducir operaciones en paralelo (si aplica) A.1.2.11 Planificación del Retiro A.4.4.3 Retirar el sistema A.4.4.1 Notificar al usuario A.5.4.1 Desarrollar los materiales de formación A.5.4.2 Validar el programa de formación A.5.4.3 Implementar el programa de formación TRABAJO FINAL DE LICENCIATURA EN SISTEMAS No se presenta una transición No se utilizara una base de datos No se prevén actividades en paralelo No se prevé el retiro del sistema No se prevé el retiro del sistema No se prevé el retiro del sistema No son necesarias actividades de formación No son necesarias actividades de formación No son necesarias actividades de formación 177 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS 178 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS Apéndice B. Secuencia de Actividades TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 179 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS 180 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO Fase del Ciclo de Vida PLANIFICACION Identificar la misión del proyecto Identificar los Recursos Identificar Metricas de Calidad Planificar el Proyecto ANÁLISIS Y DISEÑO Definir Objetivos Definir Requisitos y Requerimientos Diseñar el Sistema IMPLEMENTACIÓN Y PRUEBA Desarrollar Componentes Integrar e implementar el Sistema Verificacion y Validacion TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS Actividad del Modelo A.1.1.6 A.1.1.1 A.1.1.2 A.1.1.3 A.1.1.4 A.1.3.1 A.1.1.5 A.4.3.3 A.1.2.7 A.1.2.4 A.1.2.8 A.1.2.1 A.1.2.9 A.1.2.2 A.1.2.10 A.1.2.5 A.5.1.1 Entendimiento del Negocio Seleccionar un modelo de Ciclo de Vida Realizar Estimaciones Asignar Recursos Definir Métricas Gestión de Riesgos Determinar objetivos de Seguridad Implementación de un método de reporte de problemas Planificación de la Gestión del Proyecto. Planificación de la Instalación Planificación de la Integración Planificación de la Evaluación Planificación de la Gestión del Lanzamiento Planificación de la Gestión de la Configuración Planificación del Mantenimiento Planificación de la Documentación Conducir Revisiones A.2.1.1 A.2.1.2 A.2.1.3 A.2.1.4 A.2.2.1 A.2.2.2 A.2.2.3 A.3.1.1 A.3.1.2 A.3.2.3 A.3.1.3 A.3.1.4 A.3.1.5 A.3.2.1 A.3.2.4 A.3.2.5 A.5.1.1 Identificar ideas o necesidades. Formular soluciones potenciales. Conducir estudios de viabilidad. Refinar y Finalizar la idea o necesidad. Analizar las funciones del sistema. Desarrollar la arquitectura del sistema. Asignar los requerimientos del Sistema Definir y desarrollar los requisitos del hardware Definir y desarrollar los requisitos del Interfaces Selección de la Arquitectura de Hardware mas conveniente. Definir los requisitos del entorno Definir los requisitos de software Integrar los requisitos Realizar el diseño arquitectónico Diseñar las interfaces Realizar el diseño detallado Conducir Revisiones A.3.3.2 A.3.3.5 A.3.3.1 A.3.3.4 A.4.1.1 A.4.1.2 Crear el código fuente Gestionar las versiones del Software Configurar e integrar el hardware y las interfaces físicas Realizar la integración Ajustar parámetros del entorno Configurar y adaptar interfaces con el entorno productivo y otros sistemas Crear la Documentación operativa Operar el sistema Proveer de asistencia técnica y consultas Mantener el histórico de peticiones de soporte Desarrollar Procedimientos de prueba Crear Matriz de Trazabilidad Crear datos de prueba Ejecutar pruebas Almacenamiento de Registros Reportar Resultados de la evaluación Aceptar el producto en el ambiente operativo Conducir Revisiones A.3.3.3 A.4.2.1 A.4.2.2 A.4.2.3 A.5.1.4 A.5.1.2 A.5.1.5 A.5.1.6 A.1.3.4 A.5.1.7 A.4.1.3 A.5.1.1 181 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO Fase del Ciclo de Vida GARANTIA DE CALIDAD Conducir revisiones y determinar mejoras en el producto Planificar el Mantenimiento Conducir Auditorias y determinar mejoras en los procesos Implementar Documentación Cerrar el Proyecto TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS Actividad del Modelo A.5.2.1 A.5.2.2 A.5.2.3 A.5.1.1 A.4.3.1 A.4.3.2 A.5.1.8 A.1.2.10 A.1.3.5 A.1.3.3 A.5.1.3 A.5.3.1 A.5.3.2 A.4.3.4 A.1.3.6 Desarrollar la identificación de la configuración Realizar el control de la configuración Realizar la información del estado de la configuración Conducir Revisiones Identificación de necesidades de mejora del Software Identificación de necesidades de mejora del Hardware y Entorno Confirmar Acreditación de Seguridad Planificación del Mantenimiento Recopilación y Análisis de Métricas Identificación de Mejoras al Ciclo de Vida Conducir Auditorías Implementar la Documentación Producir y Distribuir la Documentación Iteración del Ciclo de Vida Cierre del Proyecto 182 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS Apéndice C. Mapa de Documentos y Actividades TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 183 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS 184 JONATAN PONZO Actividad A.1.1.6 Entendimiento del Negocio A.1.1.1 Seleccionar un modelo de Ciclo de Vida A.1.1.2 Realizar Estimaciones A.1.1.3 Asignar Recursos A.1.1.4 Definir Métricas A.1.3.1 Gestión de Riesgos A.1.1.5 Determinar objetivos de Seguridad A.4.3.3 Implementación de un método de reporte de problemas A.1.2.7 Planificación de la Gestión del Proyecto. A.1.2.4 Planificación de la Instalación A.1.2.8 Planificación de la Integración A.1.2.1 Planificación de la Evaluación A.1.2.9 Planificación de la Gestión del Lanzamiento A.1.2.2 Planificación de la Gestión de la Configuración A.1.2.10 Planificación del Mantenimiento A.1.2.5 Planificación de la Documentación A.2.1.1 Identificar ideas o necesidades. A.2.1.2 Formular soluciones potenciales. A.2.1.3 Conducir estudios de viabilidad. A.2.1.4 Refinar y Finalizar la idea o necesidad. A.2.2.1 Analizar las funciones del sistema. A.2.2.2 Desarrollar la arquitectura del sistema. A.2.2.3 Asignar los requerimientos del Sistema A.3.1.1 Definir y desarrollar los requisitos del hardware A.3.1.2 Definir y desarrollar los requisitos del interfaces A.3.1.3 Definir los requisitos del entorno A.3.2.3 Selección de la Arquitectura de Hardware mas conveniente. A.3.1.4 Definir los requisitos de software A.3.1.5 Integrar los requisitos A.3.2.1 Realizar el diseño arquitectónico A.3.2.4 Diseñar las interfaces A.3.2.5 Realizar el diseño detallado A.3.3.2 Crear el código fuente A.3.3.5 Gestionar las versiones del Software A.3.3.1 Configurar e integrar el hardware y las interfaces físicas A.3.3.4 Realizar la integración Salida del Proceso Propuesta, Alcances y Objetivos Ciclo de vida Seleccionado Mapa de Actividades Lista de actividades no utilizadas Mapa de Documentos Estimaciones del Proyecto Asignación de Recursos Definición de Métricas Especificación de Riesgos Especificación de Objetivos de Seguridad Método de Reporte de Problemas Plan de Gestión del Proyecto Plan de Instalación Plan de Integración Plan de Evaluación Plan de Gestión del Lanzamiento Plan de Gestión del la Configuración Plan de Mantenimiento Plan de Documentación Informe Preliminar de Necesidades Informe Preliminar de Soluciones Potenciales Informe de Viabilidad Descripción de Idea o Necesidad Descripción de Funciones del Sistema Descripción de Arquitectura del Sistema Asignación de requerimientos Informe de requerimientos de Software Informe de requerimientos de Hardware Informe de requerimientos de Entorno Especificación de Hardware Informe de requerimientos de Interfaz Informe de Integración de los requerimientos Diseño Arquitectónico Diseño de Interfaces Diseño detallado Código ejecutable Control de Versiones del Software Hardware Integrado Software y Hardware Integrado Documento Generado Plan de Proyecto Plan de Proyecto Plan de Proyecto Plan de Proyecto Plan de Proyecto Plan de Proyecto Plan de Proyecto Plan de Proyecto Plan de Proyecto Plan de Proyecto Plan de Proyecto Plan de Proyecto Plan de Proyecto Plan de Proyecto Plan de Proyecto Plan de Proyecto Plan de Proyecto Plan de Proyecto Plan de Proyecto Especificación de Requisitos Especificación de Requisitos Especificación de Requisitos Especificación de Requisitos Especificación de Requisitos Especificación de Requisitos Especificación de Requisitos Especificación de Requisitos Especificación de Requisitos Especificación de Requisitos Especificación de Requisitos Especificación de Requisitos Especificación de Requisitos Especificación de Diseño Especificación de Diseño Especificación de Diseño Actividad A.4.1.1 A.4.1.2 A.3.3.3 A.4.2.1 A.4.2.2 A.4.2.3 A.5.1.4 A.5.1.2 A.5.1.5 A.5.1.6 A.1.3.4 A.5.1.7 A.4.1.3 A.5.2.1 A.5.2.2 A.5.2.3 A.5.1.1 A.4.3.1 A.4.3.2 A.5.1.8 A.1.3.3 A.1.3.5 A.5.1.3 A.5.3.1 Salida del Proceso Ajustar parámetros del entorno Configurar y adaptar interfaces con el entorno productivo y otros sistemas Crear la Documentación operativa Instrucciones de operación Operar el sistema Proveer de asistencia técnica y consultas Mantener el histórico de peticiones de soporte Reporte Histórico de Peticiones de Soporte Desarrollar Procedimientos de prueba Procedimientos de Prueba Crear Matriz de Trazabilidad Matriz de Trazabilidad Crear datos de prueba Datos de Prueba Ejecutar pruebas Almacenamiento de Registros Reportar Resultados de la evaluación Informe de Resultados de Prueba Aceptar el producto en el ambiente operativo Robot Instalado Desarrollar la identificación de la configuración Realizar el control de la configuración Realizar la información del estado de la configuración Reporte del estado de la configuración Conducir Revisiones Informe de revisión del proceso Identificación de necesidades de mejora del Software Necesidades de Mejora del Software Identificación de necesidades de mejora del Hardware y Entorno ConfigurableNecesidades (EC) de Mejora del Hardware y EC Confirmar Acreditación de Seguridad Verificación de Objetivos de Seguridad Identificación de Mejoras al Ciclo de Vida Recomendaciones de mejora en los procesos Recopilación y Análisis de Métricas Conducir Auditorías Resultados de la auditoría Implementar la Documentación Documentación Documento Generado Reporte de Instalación y operación del Sistema Reporte de Instalación y operación del Sistema Manual de Operaciones Reporte de Instalación y operación del Sistema Reporte de Instalación y operación del Sistema Reporte de Instalación y operación del Sistema Reporte de Evaluación del Sistema Reporte de Evaluación del Sistema Reporte de Evaluación del Sistema Reporte de Evaluación del Sistema Reporte de Evaluación del Sistema Reporte de Evaluación del Sistema Reporte de Evaluación del Sistema Informe de Estado de la Configuración Informe de Estado de la Configuración Informe de Estado de la Configuración Informe de Garantía de Calidad Informe de Garantía de Calidad Informe de Garantía de Calidad Informe de Garantía de Calidad Informe de Garantía de Calidad Informe de Garantía de Calidad Informe de Garantía de Calidad ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS Robot para Automatización de Tareas de Invernadero Plan de Proyecto Versión 1.0 Autor: Jonatan Ponzo Lanzamiento: Septiembre 2013 TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 187 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS 188 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS Histórico de Modificaciones Fecha Descripción del cambio 14/01/13 Creación del Documento 23/02/13 Planificación del Mantenimiento 24/02/13 Actualización de Objetivos de Seguridad TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 189 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS 190 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS Tabla de Contenidos 1. Generalidades del Proyecto 1.1 Sumario del Proyecto 1.1.1. Descripción del Negocio 1.1.2. Propósito, Alcance y Objetivos 1.1.3. Supuestos y Limitaciones 1.1.4. Entregables 1.1.5. Reporte de Problemas 1.2 Estimaciones 1.3 Recursos 1.4 Riesgos 1.5 Métricas 1.6 Objetivos de Seguridad 2. Plan de Integración 3. Plan de Evaluación 4. Plan de Instalación 5. Plan de Gestión de la Configuración 6. Plan de Mantenimiento 7. Plan de Documentación 8. Plan de Gestión de Lanzamiento 9. Apéndices/Anexos Apéndice A - Planillas TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 191 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS 192 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO 1. CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS Generalidades del Proyecto En esta sección se describen los las características generales del proyecto y el negocio. 1.1 Sumario del Proyecto 1.1.1 Descripción del Negocio El trabajo en invernaderos requiere de una serie de tareas repetitivas, tediosas y usualmente perjudiciales para la salud por la posible inhalación de productos insecticidas, que son susceptibles de ser robotizadas . Las actividades como control de condiciones ambientales de temperatura y humedad de los cultivos, pulverización de insecticidas, recolección o transporte de materiales, implican un movimiento en el interior del invernadero, por lo cual disponer de un vehículo con capacidad autónoma de desplazamiento sería de real utilidad y conveniencia1. Ahora bien, ¿Por que automatizar este tipo de tareas? ¿Que beneficios supondría respecto de la ejecución de las mismas por parte de personal humano?. Como bien sabemos, toda actividad comercial como la que nos compete en esta ocasión, cultivo y cosecha de flores y hortalizas en invernadero, persiguen un interés económico principalmente regido por el margen de ganancias que la misma pueda generar. Ese margen de ganancias se obtiene a partir de la resta al monto de dinero obtenido por ventas, del monto gastado o invertido en recursos necesarios para la elaboración de los productos a comercializar, en este caso, flores y hortalizas. A la hora de pensar de manera general en los recursos necesarios para la realización exitosa de esta actividad, podemos mencionar la necesidad de contar con; (a) infraestructura necesaria para el montaje de los invernaderos, (b) materia prima; semillas en este caso, y © personal capaz de llevar a cabo las tareas de siembra, mantenimiento y recolección del producto. La implementación de un robot autónomo móvil en este entorno, podría suponer el remplazo de un alto porcentaje de los recursos humanos requeridos para las tareas de siembra, mantenimiento y 1 R. González 1(P), F. Rodríguez, J. Sánchez-Hermosilla, J. G. Donaire (2007). Experiencias en sistemas de navegación de robots móviles para tareas en invernadero . IV Congreso Nacional y I Congreso Ibérico de Agroingeniería. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 193 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS recolección del producto, lo cual no solo implicaría una disminución notable en los costos por reducción de salarios sino también la de los tiempos de operación con la capacidad que esto conlleva de permitir un aumento en el volumen de producción y un incremento en los niveles de control sobre los procesos utilizados que permite implementar procesos de mejora continua de la calidad de los productos elaborados. 1.1.2 Propósito, Alcance y Objetivos El propósito de este proyecto es la planificación, construcción y mantenimiento de un Robot Autónomo Móvil destinado a la automatización de tareas de invernadero requeridas por el cliente. Todas las actividades directamente relacionadas con el propósito son consideradas dentro del alcance del proyecto. Los Objetivos del Proyecto son los siguientes: • Culminar exitosamente el proyecto dentro del plazo de tiempo estimado. • Culminar exitosamente el proyecto haciendo uso de los recursos asignados. • Proveer la totalidad de los entregables supuestos en la sección 1.1.4 • Entregar un producto correctamente construido y que satisfaga las necesidades planteadas por el cliente. 1.1.3 Supuestos y Limitaciones El proyecto es planificado en torno a los siguientes supuestos y limitaciones: • Este proyecto se encuadra en la etapa de Prueba de Concepto del Trabajo Final de Licenciatura en Sistemas que propone un modelo de gestión integral de proyectos destinados al control de robots autónomos móviles basados en Arquitecturas de Sistemas Embebidos. • Por el supuesto anterior, el proyecto contara solo con 1 recurso humano no remunerado encargado de llevar a cabo todas las tareas del proyecto, incluso las inherentes al cliente. • Por tratarse de una prueba de concepto y no un requerimiento real por parte del cliente, no se cuenta con un entorno productivo (un invernadero) y la validación y verificación se llevaran a cabo en un entorno de prueba desarrollado para la ocasión. El sistema a desarrollar es un prototipo. • No se cuenta con un registro histórico de proyectos. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 194 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS 1.1.4 Entregables Los ítems mencionados a continuación son entregados como resultado de este proyecto. • Robot Autónomo Móvil para tareas de Invernadero (prototipo) • Código Fuente y Librerías utilizadas • Manual de operaciones del Robot. Especificación de Hardware y Diagrama de Ensamblado 1.1.5 Reporte de Problemas A fin de proceder satisfactoriamente y mantener un registro apropiado ante la ocurrencia de problemas de cualquier índole y origen surgidos a lo largo del proyecto se implementa una Planilla de Reporte y Registro de Problemas. La misma puede sen encontrado en el Apéndice I – Planillas. Sus resultados serán evaluados durante la etapa de Aseguramiento de la Calidad. 1.2 Estimaciones En esta sección se supone la estimación del esfuerzo y costo necesario para la realización de los procesos y actividades involucradas en el Ciclo de Vida del Proyecto. El esfuerzo se obtiene de la estimación expresada en cantidad de horas necesarias para llevar a cabo una actividad, realizada por los recursos humanos encargados de las mismas. El costo surge de la multiplicación del esfuerzo estimado y el valor en pesos argentinos de la hora de trabajo del recurso humano. Como fue mencionado en la sección 1.1.3, el proyecto cuenta únicamente con 1 recurso humano y el mismo no es remunerado por lo cual se desestima el calculo de costos asociados al mismo. No se cuenta con un registro histórico de proyectos que faciliten el proceso de estimación. Se genera un cuadro de estimación que se puede observar en la Figura 1, en el cual se listan las fases y actividades del ciclo de vida del proyecto y la estimaciones del tiempo requerido para la realización de cada uno de ellas. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 195 JONATAN PONZO PLANIFICACION A.1.1.6 Entendimiento del Negocio A.1.1.1 Seleccionar un modelo de Ciclo de Vida A.1.1.2 Realizar Estimaciones A.1.1.3 Asignar Recursos A.1.1.4 Definir Métricas A.1.3.1 Gestión de Riesgos A.1.1.5 Determinar objetivos de Seguridad A.4.3.3 Implementación de un método de reporte de problemas A.1.2.7 Planificación de la Gestión del Proyecto. A.1.2.4 Planificación de la Instalación A.1.2.8 Planificación de la Integración A.1.2.1 Planificación de la Evaluación A.1.2.9 Planificación de la Gestión del Lanzamiento A.1.2.2 Planificación de la Gestión de la Configuración A.1.2.10 Planificación del Mantenimiento A.1.2.5 Planificación de la Documentación A.5.1.1 Conducir Revisiones ANÁLISIS Y DISEÑO A.2.1.1 Identificar ideas o necesidades. Formular soluciones potenciales. A.2.1.2 Conducir estudios de viabilidad. A.2.1.3 A.2.1.4 Refinar y Finalizar la idea o necesidad. A.2.2.1 Analizar las funciones del sistema. A.2.2.2 Desarrollar la arquitectura del sistema. A.2.2.3 Asignar los requerimientos del Sistema A.3.1.1 Definir y desarrollar los requisitos del hardware A.3.1.2 Definir y desarrollar los requisitos del Interfaces A.3.2.3 Selección de la Arquitectura de Hardware mas conveniente. A.3.1.3 Definir los requisitos del entorno A.3.1.4 Definir los requisitos de software A.3.1.5 Integrar los requisitos A.3.2.1 Realizar el diseño arquitectónico A.3.2.4 Diseñar las interfaces A.3.2.5 Realizar el diseño detallado Recurso Actividad Costo (ARS$) CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS Duración (HS) ANEXO IV – DOCUMENTOS DEL PROYECTO 4 16 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj 1 1 1 1 1 4 1 8 4 4 4 4 16 2 2 16 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj Fig. 1.a) Cuadro de Estimaciones TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 196 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS IMPLEMENTACION Y PRUEBA A.3.3.2 Crear el código fuente A.3.3.5 Gestionar las versiones del Software A.3.3.1 Configurar e integrar el hardware y las interfaces físicas A.3.3.4 Realizar la integración A.4.1.1 Ajustar parámetros del entorno A.4.1.2 Configurar y adaptar interfaces con el entorno productivo y otros sistemas A.3.3.3 Crear la Documentación operativa A.4.2.1 Operar el sistema A.4.2.2 Proveer de asistencia técnica y consultas A.4.2.3 Mantener el histórico de peticiones de soporte A.5.1.4 Desarrollar Procedimientos de prueba A.5.1.2 Crear Matriz de Trazabilidad A.5.1.5 Crear datos de prueba A.5.1.6 Ejecutar pruebas Almacenamiento de Registros A.1.3.4 A.5.1.7 Reportar Resultados de la evaluación A.4.1.3 Aceptar el producto en el ambiente operativo A.5.1.1 Conducir Revisiones GARANTIA DE CALIDAD A.5.2.1 Desarrollar la identificación de la configuración A.5.2.2 Realizar el control de la configuración A.5.2.3 Realizar la información del estado de la configuración A.4.3.1 Identificación de necesidades de mejora del Software A.4.3.2 Identificación de necesidades de mejora del Hardware y Entorno A.5.1.8 Confirmar Acreditación de Seguridad A.1.2.10 Planificación del Mantenimiento A.5.1.1 Conducir Revisiones Recopilación y Análisis de Métricas A.1.3.5 A.1.3.3 Identificación de Mejoras al Ciclo de Vida A.5.1.3 Conducir Auditorías A.5.3.1 Implementar la Documentación A.5.3.2 Producir y Distribuir la Documentación A.4.3.4 Iteración del Ciclo de Vida A.1.3.6 Cierre del Proyecto Recurso ponzoj Descripcion Jonatan Matias Ponzo 16 1 8 2 1 1 1 2 2 4 2 1 8 1 1 2 1 5 2 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj 1 1 1 1 1 2 1 1 1 2 8 1 4 1 195 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 $0,00 ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj ponzoj $/Hs $0,00 Hs Asignadas 195 Fig. 1.b) Cuadro de Estimaciones Estimado el tiempo necesario para cada actividad y teniendo en cuenta que solo se cuenta con 1 recurso humano, estaríamos en condiciones de establecer un Diagrama Gantt a fin de ubicar las actividades y su prolongación temporal en el calendario y así poder estimar una posible fecha de finalización del proyecto. Sin embargo, la disponibilidad variable del recurso humano quita cualquier sentido a la aplicación de esta técnica. Se fija como meta de finalización del proyecto el TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 197 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS día 16 de Febrero de 2013. 1.3 Recursos Además del tiempo y costo de asociado al trabajo realizado por los recursos humanos, existen costos asociados a los recursos materiales necesarios para llevar a cabo el proyecto. A continuación se realiza la estimación correspondiente. Recurso Descripción Costo Kit ROBOT N6 V1.1 Kit Arduino, Carcaza, 2 Motores 2 Sensores IR, 2 Sensores Ultrasonido $1.700,00 (Provisto por la Universidad) 2 Sensores IR Sensores IR para deteccion de marcas $64,00 1 Modulo MicroSD Arduino Modulo Lecto-Grabador de tarjetas micro SD $60,00 Cables y Conectores Cables y Conectores necesarios $20,00 PC/Laptop Necesaria para la generación del código fuente y la integración del mismo con el hardware Entorno de Prueba Materiales necesarios para el montaje de un entorno de prueba. $100,00 Sensor de Temperatura y Humedad Componente electrónico para el sensado de Temperatura y Humedad $50,00 $0,00 (Provisto por el Desarrollador) En lo que respecta a los recursos humanos requeridos por el proyecto, si bien fue expresado en secciones anteriores que se cuenta con tan solo 1 recurso, a continuación se listan los roles que el mismo deberá tomar a lo largo del proyecto y la carga de tiempo requerida por cada uno de ellos. Rol Líder de Proyecto Analista de Requerimientos Técnico Electrónico Arquitecto de Software Programador Instalador Verificador TRABAJO FINAL DE LICENCIATURA EN SISTEMAS Horas 70 36 16 20 17 12 19 190 198 Cantidad 1 1 1 1 1 1 1 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS El proyecto cuenta con un Robot Múltiplo N6 (Duinobot v1.2) provisto por la UNLa. El mismo contiene los actuadores necesarios, 2 sensores infrarrojos para el sensado de linea, y un sensor ultrasónico. Se cuenta con un presupuesto de $600 para la adquisición de los sensores faltantes y la construcción del entorno de prueba. 1.4 Riesgos La realización de un proyecto de estas características supone la aparición de ciertos riesgos asociados a los procesos y actividades a llevar a cabo y a los recursos a utilizar. A continuación se presentan los potenciales riesgos identificados y el plan de contingencia asociado a cada uno de ellos. El cuadro desarrollado sufrirá modificaciones a lo largo del proyecto ya sea para la introducción de nuevos registros o para la actualización de los existentes. Riesgo Procesos del Proyecto Descripción Criticidad Procesos o Actividades No contempladas en el Ciclo de Vida del Proyecto Variable El Robot enfrenta situaciones imprevistas durante el recorrido Dificultad en la Implementación de el entorno de prueba Dificultades con el Hardware El Robot presenta alguna dificultad relacionada al hardware o requiere de componentes o interfaces Adicionales Contingencia Seguimiento Ejecución de cualquier actividad o proceso necesario no especificado en el Ciclo de Vida del Proyecto y registro del mismo en el informe de Sugerencia de Mejoras en los Procesos Media Se evalúa la probabilidad de ocurrencia del imprevisto en el entorno productivo y se Actúa en consecuencia sobre el robot o sobre el entorno Media Se contacta a RobotGroup; desarrollador y distribuidor del producto *Actualización (23/02/13): No se identificaron nuevos riesgos a lo largo de todo el proyecto. 1.5 Métricas En esta sección se describen las métricas que serán recogidas a lo largo del proyecto y los métodos utilizados para hacerlo. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 199 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS Métrica M1: En primer lugar se implementara una métrica cuyo objetivo es la validación y ajuste de la estimación de tiempo realizada. El registro de esta métrica se llevara a cabo mediante la notación del tiempo utilizado para cada actividad una vez finalizada la misma por parte de la persona encargada de llevarla a cabo. El mismo se llevara a cabo en la Planilla de Control de Actividades presentada en el Apéndice A Planillas Al finalizar cada fase del ciclo de vida esta estipulada una actividad de revisión en la cual se relevaran las métricas recolectadas y se evaluará tanto la eficacia de la estimación realizada como la evolución del proyecto aplicando las medidas que se consideren necesarias para mantener el normal curso del proyecto y satisfacer las expectativas y objetivos planteados. Métrica M2: En segundo lugar, se implementara una métrica referente a la cantidad de obstáculos y problemas encontrados a lo largo del proyecto ya sea bien en los procesos utilizados como en las cuestiones meramente técnicas. El registro de esta métrica se llevara a cabo mediante el método de reporte de problemas propuesto en la sección 1.1.5. La evaluación de esta métrica se llevara a cabo en la actividad de revisión prevista en el final de cada fase del Ciclo de Vida. Métrica M3: Por ultimo se implementara una métrica destinada al control de cambios. Los datos serán obtenidos de la Planilla de Control de Cambios presentada en el Apendice A – Planillas, en la cual se asientan todas las solicitudes a fin de evaluar su implementación y registrar el evento . La misma será descripta con mayor detalle en el Plan de Gestión de la Configuración. La evaluación de esta métrica se realizara en las mismas circunstancias que las anteriores, es decir, durante la actividad de revisión prevista en el final de cada fase del Ciclo de Vida. Además del propósito particular de cada métrica, todas ellas poseen un objetivo en común que es la alimentación del registro histórico de proyectos que fomente la mejora constante de los procesos y consecuentemente de los productos elaborados. 1.6 Objetivos de Seguridad No se identifican objetivos de seguridad en la etapa inicial del proyecto. A pesar de que el producto TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 200 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS a desarrollar no prevé el uso de datos ni información sensible se deja el proceso abierto a futuras consideraciones que puedan surgir a lo largo del proyecto. *Actualización (23/02/13): No se identificaron Objetivos de Seguridad a lo largo de todo el proyecto. 2. Plan de Integración El objetivo principal de esta sección es la planificación de las actividades y recursos necesarios para llevar a cabo la integración de los componentes de software entre si y con el hardware del robot para finalmente consolidar el sistema requerido. Las dimensiones de este proyecto en particular tornan innecesaria la modularización del desarrollo del software por lo cual la planificación de la integración se refiere únicamente a la necesaria entre el software y el hardware. Como requerimiento principal de esta tarea es necesaria la concreción de las actividades referentes a la generación del código de programa y a la selección y ensamblado del hardware apropiado, incluyendo las interfaces físicas. La integración se llevará a cabo mediante el entorno de programación DuinoPack provisto por RobotGroup junto con el hardware. El mismo es una versión del Arduino IDE con la incorporación de las librerías y agregados necesarios para trabajar con el hardware provisto. La documentación de instalación y operación de dicho software se encuentra disponible en la base de conocimiento del proyecto (Guide.Robotics-1.ESP.20120229 ). La comunicación entre el hardware y el entorno de programación es mediante un cable USBMiniUSB. El mismo se encuentra disponible al igual que los drivers requeridos. Las actividades requeridas para la integración: • Desarrollado y compilación del código fuente mediante el entorno de programación • Conexión del Hardware Arduino al entorno de programación mediante el cable usb- TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 201 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS micro.usb provisto. • Alimentación y Encendido del hardware • Instalación de los drivers provistos • Carga del código en el hardware Duinobot. (Instrucciones provistas en el manual Guide.Robotics-1.ESP.20120229 ) • Operación del Robot. Concluidas estas actividades el Robot se encuentra en condiciones de ser verificado y validado siguiendo las actividades establecidas en el Plan de Evaluación. 3. Plan de Evaluación A través de este plan se establecen las actividades y recursos necesarios para la evaluación eficaz del producto desarrollado y los procesos utilizados para hacerlo. Es por eso que organizaremos el documento en torno a las evaluaciones del Producto y del Proceso. 3.1 Evaluación del Producto Como requerimiento principal para la realización de las tareas de evaluación, es necesaria la concreción de las actividades descriptas en el Plan de Integración. La metodología de verificación del producto consta de las siguientes actividades: A.5.1.4 Desarrollar procedimientos de prueba A.5.1.2 Crear una Matriz de Trazabilidad A.5.1.5 Crear datos de Prueba A.5.1.6 Ejecutar las Pruebas A.5.1.7 Reportar los Resultados de la Evaluación. Se realizarán pruebas dinámicas de Sistema y Aceptación utilizando metodologías funcionales de Caja Negra a fin de verificar que el sistema esta correctamente construido y validar que la funcionalidad presentada es la requerida. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 202 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS Se desestiman las pruebas unitarias y de integración por considerarse innecesarias dadas las dimensiones y características del proyecto. Se generarán los casos de pruebas con base en la especificación de requisitos y funcionalidades del proyecto y las metodologías de prueba seleccionadas. Posteriormente se desarrollará una matriz de trazabilidad con el objetivo de asegurar que la evaluación de todas las funcionalidades esta cubierta por alguno de los casos de prueba desarrollados. Estas actividades se desarrollan y presenta en mayor detalle en el Informe de Pruebas del Sistema. Será necesaria la construcción de un entorno de prueba que emule las condiciones básicas de un invernadero e incorpore los aspectos requeridos por el robot para realizar correctamente su tarea. La especificación básica de requerimientos del entorno de prueba se describe a continuación y será refinada con el correr de las pruebas: • La ancho mínimo del camino debe ser de 30 cm dadas las dimensiones del robot. • Se debe fijar sobre el centro del camino una franja blanca de 15 cm de ancho como mínimo conteniendo a su vez en su centro, una linea de color negro opaco de al menos 3 cm de ancho. La disposición de la cinta debe acompañar el recorrido del camino. Esto es necesario para el garantizar el correcto desplazamiento del robot. • Es importante despejar cualquier tipo de obstáculo que impida la normal circulación del robot aunque en caso de encontrarse, el mismo intentara superarlo. • Se debe disponer en el recorrido marcas transversales al mismo que señalicen la ubicación de un puesto a relevar sobre uno de los laterales y la disposición de una marca de fin de recorrido sobre el otro. Ambas deben ser color negro opaco y presentar un espesor de al menos 3 cm. Los requerimientos del entorno de prueba serán descriptos con mayor detalle posteriormente. Desarrolladas y ejecutadas las pruebas, se describen sus procedimientos, se almacenan y presentan sus resultados, se corrigen y reportan los errores detectados y se registran las posibilidades de mejora observadas en el Plan de Pruebas del Sistema. 3.1.1 Condiciones de Aceptación Por tratarse de una prueba de concepto en la cual no interviene un cliente real, las condiciones de TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 203 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS aceptación del sistema serán descriptas en este documento y se limitan a las descriptas debajo. En un proyecto real podría ser necesaria la elaboración de un documento independiente y se debe solicitar la conformidad escrita del cliente respecto del acuerdo establecido. • El sistema cumple con la totalidad de los requisitos funcionales excluyentes • El sistema cumple con la totalidad de los requisitos no funcionales 3.2 Evaluación del Proceso La evaluación de los procesos utilizados se llevará a cabo mediante la aplicación de técnicas estáticas de pruebas como revisiones técnicas y gerenciales y a través del estudio de métricas establecidas en el proyecto como la métrica M2 que refleja la cantidad de obstáculos y problemas encontrados a lo largo del proyecto ya sea bien en los procesos utilizados como en las cuestiones meramente técnicas. Las conclusiones serán reflejadas en el Reporte de Sugerencia de Mejoras al Ciclo de Vida, dentro del Informe de Garantía de Calidad. 4. Plan de Instalación Culminada la fase de evaluación del producto se procede a la Instalación del mismo en el entorno productivo. Las Actividades requeridas por este proceso son las siguientes: A.4.1.1 Ajustar parámetros de entorno A.4.1.2 Configurar y Adaptar las interfaces al entorno productivo y otros sistemas A.4.1.3 Adaptar el Software al ambiente operativo A.3.3.3 Crear la Documentación Operativa A.4.2.1 Operar el Sistema A.4.2.2 Proveer de asistencia técnica y consultas A.5.1.4 Mantener el histórico de peticiones de soporte TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 204 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS Culminadas estas actividades, el sistema se encuentra técnicamente listo para entrar en operación. Los parámetros de entorno tales como la señalización del recorrido, el circuito de caminos que recorren los invernaderos, los niveles de temperatura, etc han sido fijados en el software del robot. El proceso de relevamiento y sintonía de estos parámetros comienza en la Fase de Evaluación del Proyecto. Los resultados de este proceso puede encontrarse en el Reporte de Instalación y Operación del Sistema. 5. Plan de Gestión de la Configuración Se denomina Gestión de la Configuración1 al conjunto de procesos destinados a asegurar la calidad de todo producto obtenido durante cualquiera de las etapas del desarrollo de un Sistema de Información (S.I.), a través del estricto control de los cambios realizados sobre los mismos y de la disponibilidad constante de una versión estable de cada elemento para toda persona involucrada en el citado desarrollo. Estos dos elementos (control de cambios y control de versiones de todos los elementos del S.I.) facilitan también el mantenimiento de los sistemas al proporcionar una imagen detallada del sistema en cada etapa del desarrollo. La gestión de la configuración se realiza durante todas las fases del desarrollo de un sistema de información, incluyendo el mantenimiento y control de cambios, una vez realizada la puesta en producción. Previo al paso a producción del sistema, es necesario identificar los ítems de la configuraciones (de aquí en mas, Configuration Ítems o CI) que estarán sujetos a control, establecer una metodología de control de cambios que garantice la ejecución ordenada y documentada de los mismos y por ultimo identificar y describir el primer “baseline”, es decir el estado actual de los CI. Los CI serán definidos en el Informe de Estado de la Configuración. A continuación se describe el procedimiento a llevar a cabo ante la necesidad de realizar una modificación en el sistema productivo. Se generan una Planilla de Control de Cambios a fin de registrar las actividades realizadas durante el proceso. La misma puede encontrarse en el Apéndice A. 1 Wikipedia Foundation, Inc. 2008. Gestión de la configuración. http://es.wikipedia.org/wiki/Configuration_management. Vigencia 11/2013. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 205 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS 1. Identificación y Solicitud ◦ Se registra e identifica mediante un código único el cambio requerido y su respectivo plan de acción en la planilla de Solicitud de Cambios. El mismo puede surgir de un incidente o una sugerencia de mejora. 2. Evaluación ◦ Se analiza el cambio solicitado focalizando en la identificación y análisis de los ítems de configuración afectados, la relación riesgo-costo/beneficio de la implementación y evaluando el potencial impacto en el desempeño del sistema. 3. Respuesta ◦ Se aprueba o rechaza el cambio justificando la elección. Se registra la decisión en la Planilla de Solicitud de Cambio 4. Notificación, Implementación y Prueba ◦ En caso de ser aprobado, se notifica al usuario con antelación al evento, se implementa el cambio y se procede a la evaluación del mismo. 5. Registro ◦ Se actualiza el Informe de Estado de la Configuración a fin de reflejar los cambios realizados y se establece un nuevo “baseline”. Se llama “baseline” a una configuración que ha sido revisado formalmente, sobre el que se ha llegado a un acuerdo, que de ahí en adelante servirá como base para un desarrollo posterior y que puede cambiarse solamente a través de procedimientos formales de control de cambios. Los cambios pueden ser preventivos o reactivos, es decir, planificarse a partir de una necesidad de mejora o en respuesta a un incidente. En ambos casos, se debe seguir el mismo proceso indicando en el los 3 dígitos iniciales del identificador de la Planilla de Control de Cambios si el mismo fue originado por un Incidente (INC) o una necesidad de Mejora (MEJ). TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 206 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS 6. Plan de Mantenimiento Ya en producción, el sistema puede requerir de un cronograma de mantenimiento tanto perfectivo como correctivo que permitan garantizar la continuidad de funcionamiento del Robot con el transcurso del tiempo. Se sugiere el siguiente Cronograma de Mantenimiento: 1. Relevamiento semanal de los registros de Solicitud de Asistencia Técnica y planificación de cambios perfectivos. 2. Evaluación mensual en el entorno productivo por parte del personal técnico del proyecto, del funcionamiento del hardware y las interfaces físicas. Limpieza y lubricación de la estructura y las partes móviles. Reemplazo de baterías. Relevamiento de posibilidades de mejora. Duración promedio 2hs, dependiendo de las dimensiones y complejidad del entorno. 3. Evaluación y corrección diaria por parte del usuario de las condiciones del entorno; caminos y sus señalizaciones, invernaderos, obstáculos, etc. Las actividades a realizar en la visita de mantenimiento y los resultados de las mismas son registrados en la Planilla de Reporte de Mantenimiento. Pueden encontrarse las Planillas de Solicitud de Asistencia Técnica y Reporte de Mantenimiento en el Apéndice A. 7. Plan de Documentación Esta sección describe el plan de documentación entregable y no entregable del proyecto. Los documentos serán desarrollados a lo largo de todo el proyecto y no como última actividad del mismo. A continuación se listan los documentos a producir. La participación de actividades en la conformación de los documentos puede encontrarse en el Mapa de Documentos. • Inicialización del Proyecto ◦ Mapa de Actividades ◦ Mapa de Documentos ◦ Secuencia de Actividades TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 207 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO • CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS Plan de Proyecto ◦ Cuadro de Estimaciones ◦ Planillas ▪ Reporte de Problemas ▪ Control de Actividades ▪ Control de Cambios ▪ Asistencia Técnica ▪ Mantenimiento • Especificación de Requisitos • Especificación de Diseño • Manual de Operaciones ◦ Instructivo de Operación básica ◦ Descarga de Datos ◦ Alteración del Entorno ◦ Mantenimiento ◦ Instrucciones de Soporte Técnico • Reporte de Instalación y Operación del Sistema • Reporte de Evaluación del Sistema • Informe de Estado de la Configuración • Informe de Garantía de Calidad 8. Plan de Gestión de Lanzamiento En esta sección se planifican las actividades y recursos necesarios para la transición del producto, desde el entorno de prueba hacia el entorno productivo. Como fue mencionado en apartados anteriores, este proyecto se enmarca en las condiciones de una Prueba de Concepto de un Trabajo Final de Licenciatura en Sistemas por lo cual no prevé la implementación inmediata del producto en un entorno productivo sino que busca validar un modelo de aplicación propuesto. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 208 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS A pesar de esto, se listan algunas consideraciones y una secuencia de actividades clave sugeridas para la conducción exitosa de esta fase. Se omite la asignación de recursos a las actividades. • El sistema no interactúa ni interfiere con otros sistemas informáticos o electrónicos productivos lo cual reduce notablemente el riesgo de impacto negativo en la productividad. • Dependiendo de la dimensión y disposición del camino en los invernaderos, el sistema podría eventualmente interferir en la realización de ciertas actividades manuales realizadas por personal del Invernadero. La prolongación temporal del proceso de transición del producto podría generar un deterioro en el nivel de productividad del negocio. La metodología de lanzamiento del producto se alinea a la propuesta en el Plan de Gestión de Cambios. De igual manera que ante un cambio, previo al lanzamiento del producto, se debe validar y verificar el producto a implementar, analizar la relación costo-riesgo/beneficio y elaborar planes de contingencia necesarios para minimizar el riesgo de impacto negativo en la producción. La secuencia básica de actividades sugerida para el Plan de Lanzamiento de un producto de características similares a las de este proyecto es la siguiente: 1. Planificar el Lanzamiento 2. Coordinar el diseño, construcción y configuración del entregable 3. Coordinar la evaluación y aprobación del producto por parte de Gestión de Cambios. 4. Planificar la transición del producto al entorno operativo. Evaluar Riesgos. 5. Coordinar las actividades de comunicación y entrenamiento 6. Coordinar la distribución e instalación del producto 7. Registrar y proveer información referente a la calidad del lanzamiento y la operación del producto. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 209 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS 210 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS Apéndice A. Planillas TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 211 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS 212 JONATAN PONZO Planilla de Reporte de Problemas REPORTE ID FECHA PROPIETARIO DEL PROBLEMA FASE DESCRIPCION SOLUCIONES POTENCIALES SEGUIMIENTO CORRECCION FECHA DESCRIPCION EJECUTOR PROPUESTAS DE MEJORA FINALIZADO Planilla de Reporte de Asistencia Técnica NOTIFICACION ID FECHA CATEGORIA hard/soft DESCRIPCION ASISTENCIA TÉCNICA CRITICIDAD RESOLUCION EJECUTOR FECHA alta/media/baja Planilla de Solicitud de Asistencia técnica SOLICITUD DE ASISTENCIA TÉCNICA FECHA: SISTEMA: CATEGORIA: SOFTWARE HARDWARE DESCRIPCION DEL PROBLEMA: CRITICIDAD: CONTACTO PRINCIPAL: EMAIL DE CONTACTO: TELEFONO DE CONTACTO: ENTORNO COMENTARIOS Planilla de Reporte de Mantenimiento ORDEN DE MANTENIMIENTO ID CLIENTE FECHA PRODUCTO ACTIVIDAD PROBLEMAS REPORTADOS ID FECHA RESULTADO CATEGORIA IDENTIFICACION DE POSIBLES MEJORAS ID CATEGORIA COMENTARIOS DESCRIPCION CRITICIDAD DESCRIPCION EJECUTOR FECHA COMENTARIOS COSTO BENEFICIO Planilla de Control de Actividades ACTIVIDAD COMIENZO FECHA CONTROL DE ACTIVIDADES FINALIZACION EJECUTOR FECHA FINALIZADO COMENTARIOS ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS Planilla de Solicitud de Cambio Información General ID del Cambio Nombre del Sistema Solicitante Fecha Teléfono Email Definición de la Solicitud de Cambio Descripción – Describir el cambio propuesto. Justificación Impacto ante la no implementación del cambio Soluciones Alternativas Riesgos a tener en cuenta Estimación de Esfuerzo y Recursos Origen (marcar con una X) Impacto (marcar con una X) Preventivo Software Hardware Correctivo Entorno Procedimientos Mejora Documentación Configuration Items Afectados Revisión de la Solicitud de Cambio Fecha de Revisión Nombre del Revisor Resolución Justificación Aprobado Rechazado TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 217 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS Información General ID del Cambio Nombre del Sistema Fecha Demorado TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 218 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS Robot para Automatización de Tareas de Invernadero Especificación de Requisitos Versión 1.0 Autor: Jonatan Ponzo Lanzamiento: Septiembre 2013 TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 219 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS 220 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS Histórico de Modificaciones Fecha Descripción del cambio 23/01/13 Creación del Documento 21/02/13 Actualización de Requerimientos de Software del Proyecto TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 221 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS 222 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS Tabla de Contenidos 1. Introducción 2. Informe preliminar de Necesidades 3. Informe preliminar de Soluciones Potenciales a. Solución A: Robot Autónomo Móvil b. Solución B: Aplicación de Tecnología al Entorno 4. Informe de Viabilidad a. Solución A: Robot Autónomo Móvil b. Solución B: Aplicación de Tecnología al Entorno 4.1. Selección de la Solución mas conveniente 5. Descripción de Idea o Necesidad 6. Descripción de Funciones del Sistema 7. Descripción de Arquitectura del Sistema 8. Asignación de Requerimientos 9. Informe de Requerimientos de Hardware e Interfaces 10. Informe de Requerimientos de Entorno 11. Especificación de Desarrollo de Hardware Seleccionado. 11.1 Selección de Hardware 11.2 Descripción del Hardware seleccionado 12. Informe de Requerimientos de Software del Proyecto 13. Informa de Requerimientos de Software del Sistema 14. Informe de Integración de Requisitos TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 223 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS 224 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS 1. Introducción A lo largo de este documento abordaremos las actividades necesarias para identificar con el mayor grado de precisión posible las necesidades del cliente respecto de la solución a construir y de esta manera derivar la especificación de requisitos y funcionalidades de hardware, software y entorno que permitan abordar adecuadamente la fase de diseño. Esta fase se considera una de las mas criticas de todo proyecto de ingeniería de sistemas ya que una deficiente especificación de requisitos puede derivar en la construcción de un producto que no responde a las necesidades del cliente provocando la necesidad de reiniciar el proyecto. 2. Informe Preliminar de Necesidades El trabajo en invernaderos1 requiere de una serie de tareas repetitivas, tediosas y usualmente perjudiciales para la salud por la posible inhalación de productos insecticidas, que son susceptibles de ser robotizadas. Entre las mismas podemos mencionar el control de condiciones ambientales de temperatura y humedad de los cultivos, pulverización de insecticidas, recolección o transporte de materiales. Ahora bien, ¿Por que automatizar este tipo de tareas? ¿Que beneficios supondría respecto de la ejecución de las mismas por parte de personal humano?. Como bien sabemos, toda actividad comercial como la que nos compete en esta ocasión, cultivo y cosecha de flores y hortalizas en invernadero, persiguen un interés económico principalmente regido por el margen de ganancias que la misma pueda generar. Ese margen de ganancias se obtiene a partir de la resta al monto de dinero obtenido por ventas, del monto gastado o invertido en recursos necesarios para la elaboración de los productos a comercializar, en este caso, flores y hortalizas. A la hora de pensar de manera general en los recursos necesarios para la realización exitosa de esta actividad, podemos mencionar la necesidad de contar con; (a) infraestructura necesaria para el montaje de los invernaderos, (b) 1 R. González 1(P), F. Rodríguez, J. Sánchez-Hermosilla, J. G. Donaire (2007). Experiencias en sistemas de navegación de robots móviles TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 225 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS para tareas en invernadero . IV Congreso Nacional y I Congreso Ibérico de Agroingeniería. materia prima; semillas en este caso, y © personal capaz de llevar a cabo las tareas de siembra, mantenimiento y recolección del producto. La automatización de las tareas mencionadas , podría suponer el remplazo de un alto porcentaje de los recursos humanos requeridos para las tareas de siembra, mantenimiento y recolección del producto, lo cual no solo implicaría una disminución notable en los costos por reducción de salarios innecesarios sino también la de los tiempos de operación con la capacidad que esto conlleva de permitir aumentar el volumen de producción y un incremento en los niveles de control sobre los procesos utilizados que permite implementar procesos de mejora continua de la calidad de los productos elaborados. 3. Informe Preliminar de Soluciones Potenciales En respuesta a las necesidades planteadas en la sección anterior, se plantean las siguientes soluciones potenciales: Solución A: Robot Autónomo Móvil La primera solución potencial consta de la construcción de un robot con capacidad autónoma de desplazamiento cuyo objetivo sea el recorrido de los invernaderos a través de caminos preexistentes, en busca del relevamiento de condiciones de temperatura y humedad y a futuro tenga la capacidad de incorporar funciones como pulverización de insecticidas, recolección de materiales, captura de imágenes. Solución B: Aplicación de tecnología al entorno La segunda solución potencial busca implementar tecnología al entorno, en este caso el invernadero. La instalación de sensores de temperatura y humedad en cada invernadero, la disposición de aspersores tanto para riego como para aplicación de insecticidas, la utilización de cámaras de seguridad para el control y seguimiento del cultivo, entre otras. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 226 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS 4. Informe de Viabilidad El objetivo del Estudio de Viabilidad del Sistema es el análisis de un conjunto concreto de necesidades para proponer una solución a corto plazo, que tenga en cuenta restricciones económicas, técnicas, legales y operativas. A continuación abordaremos el análisis de las soluciones propuestas focalizando en los aspectos recientemente sugeridos. Solución A: Robot Autónomo Móvil Económico: Desde el punto de vista económico, esta propuesta supone una inversión reducida respecto del hardware ya que se prevé que el mismo robot releve la totalidad de los invernaderos. Existen arquitecturas de sistemas embebidos en el mercado local como internacional capaces de satisfacer las necesidades a costos realmente convenientes. Técnico: Existen numerosas implementaciones de robots autónomos móviles utilizando sistemas embebidos en la actualidad y diversos tipos de sensores compatibles con los mismos. En lo que respecta al recorrido del entorno, se pueden establecer diversos tipos y técnicas de algoritmos de recorrido según la conveniencia. Entre ellos podemos destacar por su simpleza de implementación, el Seguimiento de una Linea o la indicación preestablecida de coordenadas de desplazamiento. Las condiciones ambientales de operación como ser la temperatura no son factores de riesgo para el hardware. Legales: No se presumen acciones o características en el sistema que puedan provocar conflictos legales. Operativos: Se considera que este sistema puede suponer una mejora notable en la productividad de un invernadero. No se detectan aspectos técnicos o referentes al entorno que puedan poner en riesgo la factibilidad de implementación del Robot. Solución B: Aplicación de tecnología al entorno Económico: Desde el punto de vista económico, esta solución supone un nivel de inversión TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 227 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS relativamente alto respecto del caso anteriormente analizado. Cada invernadero debe contar con sus propios sensores, cámaras, aspersores, etc. Además de ello, es necesaria el establecimiento de un medio de comunicación y centralización de la información obtenida. Técnico: En lo que respecta a las cuestiones técnicas, la solución es perfectamente implementable ya que existen una gran diversidad dispositivos de sensado de condiciones ambientales y medios de comunicación y centralización de la información obtenida, disponibles en el mercado. Legal: No se presumen acciones o características en el sistema que puedan provocar conflictos legales. Operativo: Se considera que este sistema puede suponer una mejora notable en la productividad de un invernadero. No se detectan aspectos técnicos o referentes al entorno que puedan poner en riesgo la factibilidad de implementación de la solución. 4.1 Selección de la Solución mas conveniente Presentadas y analizadas las soluciones potenciales se decide la selección de la opción A, un Robot Autónomo Móvil por suponer una conveniencia tanto en el aspecto Técnico como Económico. Los motivos que impulsaron esta decisión se listan a continuación. • Utilizando un robot autónomo móvil, se reduce la cantidad de hardware necesario ya que la misma unidad recorrerá la totalidad de los invernaderos. • La adaptabilidad y escalabilidad del robot autónomo móvil es notablemente superior a la de la opción B. Ante la necesidad de modificar la ubicación o agregar un invernadero simplemente se requieren modificaciones leves en el software y el camino y no en el hardware. • Un robot autónomo móvil puede incorporar con mayor facilidad que la opción B. la habilidad de recolectar residuos y materiales. La principal desventaja o riesgo detectado en la utilización de la opción A, es la dependencia que se genera en torno a una sola unidad, es decir, si ocurre alguna falla que provoque la TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 228 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS caída del servicio del robot, la totalidad de los invernaderos se verán impactados. La opción B en cambio, tendría una composición modular que evitaría la denegación total del servicio. Sin embargo, la relación costo-beneficio y el nivel de criticidad que el cliente le asigna a la actividad, hacen que la opción a implementar sea la A, un Robot Autónomo Móvil. 5. Descripción de Idea o Necesidad Con base en el Informe Preliminar de Necesidades y el Informe de Viabilidad se refina y presenta la descripción de la Idea o Necesidad. A fin de satisfacer la necesidad de automatización de un conjunto de tareas inherentes a la actividad diaria de un Invernadero, como ser el relevamiento de condiciones ambientales tales como temperatura y humedad, la aspersión de insecticidas, recolección y/o transporte de materiales y captura de imágenes, entre otras, es necesaria la construcción de un Robot móvil capaz de desplazarse de manera autónoma y programada a lo largo de los caminos dispuestos en el interior de uno o mas invernaderos. El robot debe partir de una posición inicial preestablecida y desandar los caminos dispuestos y conocidos con el fin de visitar la totalidad de los invernaderos o puestos dentro de ellos, deseados, a fin de realizar las actividades mencionadas anteriormente. Es un aspecto a definir la técnica y los algoritmos a utilizar para el recorrido del entorno. Entre las opciones principales se encuentran la disposición de una linea de seguimiento en el camino y diversas marcas que le permitan al robot identificar los distintos puestos a relevar y el inicio/fin del circuito. Es un requisito no excluyente pero deseado que el robot tenga la capacidad de superar obstáculos simples que se le presenten en el camino. Una vez completado el recorrido, el robot debe retornar al punto de partida donde la información relevada sera descargada manualmente para su análisis y llegado el momento, desde donde deberá emprender un nuevo recorrido. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 229 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS En la primera etapa de este desarrollo, se prevé solo la implementación de la funcionalidad de sensado de humedad y temperatura aunque debe considerarse en el diseño la posibilidad de una futura incorporación de las funcionalidades restantes. 6. Descripción de Funciones del Sistema Refinada la Idea o Necesidad, se describen las funcionalidades requeridas en el sistema a desarrollar. Para ello se utiliza el Modelo de Requisitos para Sistemas Embebidos ABCBESOINS-SEM propuesto en las técnicas sugeridas. Se listaran las categorías y subcategorías indicadas por el modelo y se analizaran los requisitos del sistema particular de este proyecto. 1. Disponibilidad de Objetos 1.1 Estados 1.1.1 Los estados responden a los modos y submodos mencionados en la categoría Selección de Alternativas 1.2 Eventos El Sistema deberá conmutar su modo y submodos de operación de acuerdo a los siguientes eventos: 1.2.1 La pulsación de un botón físico de Encendido y Apagado provoca la transición del modo Encendido a Apagado y viceversa. 1.2.2 La pulsación de un botón físico de Comienzo y Parada forzada, ubicado en el robot, provoca el cambio de submodo de operación de Espera a Operacional y viceversa. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 230 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS 1.2.3 El sistema debe poseer la capacidad de cronogramar la frecuencia de los recorridos. El temporizador conmutara el submodo de operación del sistema de Espera a Operacional. 1.2.4 La culminación del recorrido planificado provocará que el robot se dirija a una posición de finalización preestablecida donde conmutara el submodo del sistema de Operacional a Espera 1.2.5 El sistema debe ser capaz de identificar el momento en el cual se encuentra en un puesto donde debe realizar la actividad deseada. En ese momento conmutara el submodo de operación a Sensado. 2. Convocación y demostración 2.1 Interfaces 2.1.1 El sistema debe contener un pulsador de encendido y apagado. 2.1.2 El sistema debe contener un pulsador de arranque y parada de emergencia. 2.1.3 El sistema debe ser capaz de sensar las condiciones de humedad y temperatura de un puesto o invernadero y almacenarla en su memoria para la posterior descarga y análisis de la misma. 2.1.4 El Sistema debe ser capaz de desplazarse de manera autónoma utilizando preferentemente ruedas o cualquier otro tipo de actuadores por un camino regular siguiendo una linea trazada en el mismo o bien ejecutando instrucciones preconfiguradas. 2.1.5 El sistema debe proporcionar un puerto de descarga de la información relevada a una PC. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 231 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS 2.1.6 El sistema debe ser capaz de identificar el momento en el cual se encuentra en un puesto donde debe realizar la actividad deseada, detener su marcha y posicionarse de manera apropiada. 2.1.7 Es un requerimiento no excluyente pero deseable que el sistema sea capaz de sortear obstáculos básicos que se le presenten en el camino. 2.1.8 El sistema debe informar la conclusión del relevamiento de un puesto o del recorrido completo mediante un actuador lumínico o sonoro. 3. Selección de alternativas 3.1 Modos de operación 3.1.1 El sistema posee 2 modos de operación; Encendido o Apagado y 3 submodos de operación dentro del modo de operación Encendido. Estos son En Espera, Operacional y Sensado. 3.2 Submodos de operación 3.2.1 Modo Encendido 3.2.1.1 Submodo En Espera: El robot esta realizando una descarga de información, esperando un recorrido cronogramado o bien que se aguardando a que se presione el botón de comienzo forzado. 3.2.1.2 Submodo Operativo: El robot se encuentra en movimiento 3.2.1.3 Submodo Sensado: El robot se encuentra detenido y realizando mediciones de temperatura y humedad. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 232 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS 3.2.2 Modo Apagado No hay submodos de operación 4. Solicitud de Acceso 4.1 Modo Encendido 4.1.1 Submodo Espera: 4.1.1.1 Debe estar disponible la funcionalidad del botón de comienzo y parada forzada 4.1.1.2 Debe estar disponible la funcionalidad de Cronograma de Recorridos 4.1.1.3 Debe estar disponible la funcionalidad de descarga de información 4.1.2 Submodo Operativo: 4.1.2.1 Deben estar disponibles todas las funcionalidades descriptas en la categorías “Interacción de Agentes” y “Acción del agente” 4.1.3 Submodo Sensado: 4.1.3.1 Deben estar disponibles todas las funcionalidades descriptas en la categorías “Interacción de Agentes” y “Acción del agente” 4.2 Modo Apagado No hay submodos presentes en este modo de operación. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 233 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS 5. Aporte (entrada-respuesta) 5.1 El usuario debe presionar el botón de Comienzo/Parada de emergencia o Encendido/Apagado para alterar el estado del robot y acceder a las funcionalidades que brinda. 6. Verificación / Decisión 6.1 El sistema no presenta requerimientos de este tipo 7. Interacción de Agentes 7.1 Interrelaciones con Súper-Sistema El sistema no presenta requisitos de este tipo 7.2 Interrelación con otros sistemas embebidos y el ambiente 7.2.1 El sistema debe permitir la descarga de datos relevados por el sensor mediante su conexión a una PC 7.2.2 Debe ser capaz de detectar una linea en el camino y desplazarse siguiendo la disposición de la misma. Esta lo llevara a los diversos puestos que deben ser relevados. 7.2.3 El sistema debe ser capaz de identificar el momento en el cual se encuentra en un puesto donde debe realizar la actividad deseada, detener su marcha y posicionarse de manera apropiada. 7.2.4 Es un requerimiento no excluyente pero deseable que el sistema sea capaz de sortear obstáculos básicos que se le presenten en el camino. 7.2.5 Concluido el relevamiento de un puesto, el sistema debe notificar la TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 234 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS situación mediante una señal lumínica o sonora. 7.2.6 Concluido el recorrido, el sistema debe retornar al punto de partida o bien detenerse en un punto de culminación preestablecido y notificar mediante una señal lumínica o sonora dicha condición. 8. Acción del Agente 8.1 Funcionalidades de entrada 8.1.1 El sistema debe recibir una entrada proveniente de la pulsación del botón de Comienzo y Parada forzada que le permita conmutar el submodo de operación. 8.1.2 El sistema debe recibir una entrada del modulo temporizador que le permita conmutar el submodo de operación. 8.1.3 El sistema debe recibir una entrada de los sensores infrarrojos detectores de linea que le permitan establecer una ruta de desplazamiento 8.1.4 El sistema debe recibir una entrada de los sensores ultrasónicos a fin de detectar le presencia de un obstáculo. 8.1.5 El sistema debe recibir datos relevados por el sensor de temperatura y humedad y almacenarlos. 8.1.6 El sistema debe recibir una entrada proveniente de la fuente de alimentación. 8.2 Funcionalidades de proceso 8.2.1 El sistema debe almacenar los datos obtenidos por el sensor de temperatura TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 235 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS 8.2.2 El sistema debe analizar las entradas obtenidas por los sensores infrarrojos detectores de linea 8.2.3 El sistema debe analizar las entradas obtenidas por los sensores de ultrasonido 8.3 Funcionalidades de salida 8.3.1 El sistema debe proveer una señal a los actuadores (motores de las ruedas) para provocar su desplazamiento 8.3.2 El sistema debe proveer una señal a un actuador lumínico o sonoro para notificar la conclusión del relevamiento de un puesto o de la totalidad del recorrido. 9. Transferencia / Actualización 9.1 El sistema debe analizar las entradas obtenidas por los sensores infrarrojos y enviar una señal a los actuadores para provocar su movimiento en seguimiento de la linea existente en el camino 9.2 El sistema debe analizar las entradas obtenidas por los sensores de ultrasonido y enviar una señal a los actuadores para provocar un movimiento que busque evitar el obstáculo detectado. 9.3 El sistema debe analizar la entrada provista por el usuario mediante la pulsación del botón de Comienzo o Parada forzada y conmutar el submodo de operación entre Espera u Operativo según corresponda. 10. Interrupción/ restitución/ conservación TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 236 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS 10.1 Prevención de fallas El sistema no presenta requerimientos de este tipo 10.2 Detección de fallas El sistema no presenta requerimientos de este tipo 11. Desempeño / Cambio El sistema no presenta requerimientos de este tipo 12. Precio y Costos 12.1 Tamaño 12.1.1 El sistema debe poder desplazarse fácilmente por caminos de dimensiones reducidas. 12.2 Consumo de energía 12.2.1 Al tratarse de un sistema móvil autónomo, es deseable que el consumo del mismo sea bajo ya que será alimentado por baterías 13. Descripción y caracterización de los agentes 13.1 Disponibilidad El sistema no presenta requisitos de este tipo 13.2 Fiabilidad El sistema no presenta requisitos de este tipo 13.3 Seguridad frente al exterior 13.3.1 El sistema debe ser capaz de soportar condiciones ambientales con altos niveles de humedad y en algunos casos temperaturas por debajo o TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 237 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS encima del promedio. 13.4 Seguridad frente a ataques 13.4.1 El hardware debe estar protegido ante una eventual caída o choque leve del robot. 13.5 Eficiencia 13.5.1 Por tratarse de una prueba de concepto, el robot debe presentar un porcentaje de eficiencia de al menos 60%. 7. Descripción de la Arquitectura del Sistema A partir de la descripción de funcionalidades realizada, se plantea una arquitectura básica basada en un sistema embebido capaz de incorporar un conjunto de actuadores y sensores destinados a provocar a partir del procesamiento de señales obtenidas del entorno y mediante una serie de algoritmos por parte del microcontrolador del sistema, su propio movimiento. En la Figura 1 se puede observar la composición modular del sistema y en la Figura 2 la disposición jerárquica de los módulos. Fig. 1 Diagrama básico de Arquitectura del Sistema. MC: Microcontrolador, M: Memoria, SE: Sistema Embebido TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 238 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS Entorno Sensores Actuadores Controlador Sistema Embebido Almacenamiento Microcontrolador Entradas / Salidas Fig. 2 Disposición jerárquica de los módulos del sistema. 8. Asignación de Requerimientos Con base en la descripción de funcionalidades presentada en la sección 6, se procede a la asignación de las mismas al tipo de requerimiento que suponen; Requerimiento de Software, Hardware, Interfaces o Entorno. En la Figura 3 puede observarse el mapa de Asignación de requerimientos que servirá de entrada principal en las secciones siguientes; Especificación de Requisitos de Hardware, Especificación de Requisitos de Interfaces, Especificación de Requisitos de Software y Especificación de Requisitos de Entorno. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 239 JONATAN PONZO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 3.1.1 3.2.1.1 3.2.1.2 3.2.1.3 4.1.1.1 4.1.1.2 4.1.1.3 4.1.2.1 4.1.3.1 5.1 7.2.2 X X X X X X X X X X X X X X X X X X X X X 7.2.3 7.2.4 7.2.5 7.2.6 8.1.1 8.1.2 8.1.3 8.1.4 8.1.5 8.1.6 8.2.1 8.2.2 8.2.3 8.3.1 8.3.2 9.1 9.2 9.3 12.1.1 12.2.1 13.1.1 13.3.1 13.4.1 13.5.1 X X X Entorno Hardware/Interfaz Funcionalidad X X X X X X X X X Requerimiento Entorno Hardware/Interfaz Funcionalidad Software Requerimiento Software ANEXO IV – DOCUMENTOS DEL PROYECTO X X X Ver 2.1.7 Ver 2.1.8 X X X X X X X X X X X X X X X X X X X X X X X X Fig. 3 Mapa de Asignación de Requisitos 9. Informe de Requerimientos de Hardware e Interfaces En esta sección se listan las funcionalidades que supondrían un requerimiento de Hardware, se analizan y se extrae de ellas la especificación de requisitos de hardware del proyecto. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 240 JONATAN PONZO Funcionalidad 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 7.2.2 7.2.3 7.2.6 8.1.3 8.1.4 8.1.5 8.1.6 8.2.1 12.1.1 12.2.1 13.1.1 13.3.1 13.4.1 Hardware / Interfaz ANEXO IV – DOCUMENTOS DEL PROYECTO X X X X X X X X X X X X X X X X X X X X X CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS 2.1.1 El sistema debe contener un pulsador de encendido y apagado. ▪ 1 Entrada Digital ▪ 1 Pulsador 2.1.2 El sistema debe contener un pulsador de arranque y parada de emergencia. ▪ 1 Entrada Digital ▪ 1 Pulsador 2.1.3 El sistema debe ser capaz de sensar las condiciones de humedad y temperatura de un puesto o invernadero y almacenarla en su memoria para la posterior descarga y análisis de la misma. ▪ 1 Entrada Analógica o Digital ▪ 1 Sensor de Temperatura y Humedad ▪ Unidad de almacenamiento permanente integrada 2.1.4 El Sistema debe ser capaz de desplazarse de manera autónoma utilizando preferentemente ruedas o cualquier otro tipo de actuadores por un camino regular siguiendo una linea trazada en el mismo. ▪ 2 Salidas Digitales o Analógicas ▪ 2 Motores DC ▪ 2 Ruedas ▪ 2 Sensor Infrarrojo para la detección de Linea ▪ 2 entradas analogicas TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 241 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS 2.1.5 El sistema debe proporcionar un puerto de descarga de la información relevada a una PC. ▪ Puerto de comunicación preferentemente USB. 2.1.6 El sistema debe ser capaz de identificar el momento en el cual se encuentra en un puesto donde debe realizar la actividad deseada, detener su marcha y posicionarse de manera apropiada. ▪ 1 Entrada Analógica ▪ 1 Sensor Infrarrojo para la detección de una marca 2.1.7 Es un requerimiento no excluyente pero deseable que el sistema sea capaz de sortear obstáculos básicos que se le presenten en el camino. ▪ 1 Entrada Analógica ▪ 1 Sensor Ultrasónico 2.1.8 El sistema debe informar la conclusión del relevamiento de un puesto o del recorrido completo mediante un actuador lumínico o sonoro. ▪ 2 Salidas Digitales ▪ 1 LED ▪ 1 Buzzer 7.2.2 Debe ser capaz de detectar una linea en el camino y desplazarse siguiendo la disposición de la misma. Esta lo llevara a los diversos puestos que deben ser relevados. ▪ Requerimiento cubierto en 2.1.4 7.2.3 El sistema debe ser capaz de identificar el momento en el cual se encuentra en un puesto donde debe realizar la actividad deseada, detener su marcha y posicionarse de manera apropiada. ▪ Requerimiento cubierto en 2.1.6 TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 242 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS 7.2.6 Concluido el recorrido, el sistema debe retornar al punto de partida o bien detenerse en un punto de culminación preestablecido y notificar mediante una señal lumínica o sonora dicha condición. ▪ 1 entrada analógica 8.1.3 El sistema debe recibir una entrada de los sensores infrarrojos detectores de linea que le permitan establecer una ruta de desplazamiento ▪ Requerimiento cubierto en 2.1.4 8.1.4 El sistema debe recibir una entrada de los sensores ultrasónicos a fin de detectar le presencia de un obstáculo. ▪ Requerimiento cubierto en 2.1.7 8.1.5 El sistema debe recibir datos relevados por el sensor de temperatura y humedad y almacenarlos. ▪ Requerimiento cubierto en 2.1.3 8.1.6 El sistema debe recibir una entrada proveniente de la fuente de alimentación. ▪ Fuente de alimentación mediante baterías. La especificación del voltaje y potencia requerida se efectuara una vez seleccionado el hardware a utilizar. 8.2.1 El sistema debe almacenar los datos obtenidos por el sensor de temperatura ▪ Requerimiento cubierto en 2.1.3 12.1.1 El sistema debe poder desplazarse fácilmente por caminos de dimensiones reducidas. ▪ El desarrollo de hardware debe presentar dimensiones reducidas. 12.2.1 Al tratarse de un sistema móvil autónomo, es deseable que el consumo de energía del mismo sea reducido ya que será alimentado por baterías. ▪ El desarrollo de hardware seleccionado debe suponer un consumo reducido de energía. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 243 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS 13.1.1 El sistema debe ofrecer una disponibilidad de 12 horas durante 5 días de la semana. ▪ El sistema debe presentar un nivel de consumo que le permita funcionar durante 12 hs con la menor cantidad de interrupciones posibles. 13.3.1 El sistema debe ser capaz de soportar condiciones ambientales con altos niveles de humedad y en algunos casos temperaturas por encima del promedio. ▪ El robot debe presentar una carrocería resistente a las condiciones supuestas. 13.4.1 El hardware debe estar protegido ante una eventual caída o choque leve del robot. ▪ Requerimiento cubierto en 13.3.1 A continuación se listan los requerimientos de Hardware extraídos del análisis realizado: ▪ Arquitectura de Sistema Embebido • 2 Entrada Digital • 6 Entradas Analógicas • 2 Salidas Digitales • 2 Salidas Digitales o Analógicas • Unidad de almacenamiento permanente integrada • Puerto de comunicación preferentemente USB. • Fuente de alimentación mediante baterías. La especificación del voltaje y potencia requerida se efectuara una vez seleccionado el hardware a utilizar. • El desarrollo de hardware debe presentar dimensiones reducidas. • El desarrollo de hardware seleccionado debe suponer un consumo reducido de energía. • El sistema debe presentar un nivel de consumo que le permita funcionar durante 12 hs con la menor cantidad de interrupciones posibles. • El robot debe presentar una carrocería resistente a las condiciones supuestas. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 244 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS ▪ Interfaces • 2 Pulsadores • 1 Sensor de Temperatura y Humedad • 2 Motores DC • 2 Ruedas • 2 Sensor Infrarrojo para la detección de Linea • 2 Sensor Infrarrojo para la detección de marcas • 1 Sensor Ultrasónico • 1 Modulo SDCARD • 1 LED • 1 Buzzer Funcionalidad 1.2.4 2.1.6 7.2.2 7.2.3 8.1.1 Entorno 10. Informe de Requerimientos de Entorno X X X X X 1.2.4 La culminación del recorrido planificado provocará que el robot se dirija a una posición de finalización preestablecida donde conmutara el submodo del sistema de Operacional a Espera Debe colocarse una linea transversal al ▪ camino en la posición de partida y espera. Ver Figura 5. 2.1.6 El sistema debe ser capaz de identificar el momento en el cual se encuentra en un puesto donde debe realizar la actividad deseada, detener su marcha y posicionarse de manera apropiada. ▪ Debe Realizarse una linea transversal al camino en la posición donde se encuentra un puesto a verificar. Ver Figura 5. 7.2.2 Debe ser capaz de detectar una linea en el camino y desplazarse siguiendo la disposición de la misma. Esta lo llevara a los diversos puestos que deben ser relevados. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 245 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS ▪ El camino a recorrer debe disponer en su centro de una linea negra opaca de 3- centímetros sobre un fondo blanco. Esto se puede lograr o bien pintando la misma si es que la superficie del camino es totalmente blanca o bien desplegando una suerte de rollo de material blanco con una linea pintada en su centro como puede apreciarse en la Figura 4. 7.2.3 El sistema debe ser capaz de identificar el momento en el cual se encuentra en un puesto donde debe realizar la actividad deseada, detener su marcha y posicionarse de manera apropiada. ▪ Requerimiento cubierto por 2.1.68.1.1 El sistema debe recibir una entrada proveniente de la pulsación del botón de Comienzo y Parada forzada que le permita conmutar el submodo de operación. ▪ El usuario debe presionar el botón de Comienzo y Parada Forzada TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 246 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS Punto de Partida Camino Adaptación suelo irregular Puesto a relevar Punto de Partida Camino Adaptación suelo blanco Puesto a relevar Fig. 5 Adaptacion del camino TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 247 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO 11. CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS Especificación de Desarrollo de Hardware Seleccionado. Conocida la especificación de requerimientos y en carácter previo a la concepción de la especificación de requisitos de software se procede, mediante la utilización del documento de Relevamiento de Hardware y la Matriz Comparativa provista por el modelo objeto de validación, a la selección del hardware que mejor se adapte a las necesidades planteadas. Especificación de requerimientos de Hardware: ▪ Arquitectura de Sistema Embebido • 2 Entrada Digital • 3 Entradas Analógicas • 2 Salidas Digitales • 2 Salidas Digitales o Analógicas • Unidad de almacenamiento permanente integrada • Puerto de comunicación preferentemente USB. • Fuente de alimentación mediante baterías. La especificación del voltaje y potencia requerida se efectuara una vez seleccionado el hardware a utilizar. • El desarrollo de hardware debe presentar dimensiones reducidas. • El desarrollo de hardware seleccionado debe suponer un consumo reducido de energía. • El sistema debe presentar un nivel de consumo que le permita funcionar durante 12 hs con la menor cantidad de interrupciones posibles. • El robot debe presentar una carrocería resistente a las condiciones supuestas. Luego de analizar la especificación de requerimientos de hardware y con soporte en Diagrama Comparativo de Hardware propuesto por el TFL y accesible a través del ANEXO II adjunto al mismo, se selecciona la plataforma Arduino por satisfacer la necesidad de entradas y salidas analógicas, ofrecer la posibilidad de almacenamiento permanente, presentar un nivel TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 248 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS de consumo bajo y dimensiones reducidas además de una gran comunidad de desarrollo y documentación disponible de manera gratuita. Cabe destacar además que Arduino es una plataforma Libre. Tras el análisis de la carrocería, sensores y actuadores necesarios para el robot; ▪ Interfaces • 2 Pulsadores • 1 Sensor de Temperatura y Humedad • 2 Motores DC • 2 Ruedas • 2 Sensor Infrarrojo para la detección de Linea • 2 Sensores Infrarrojos para la detección de una marca • 1 Sensor Ultrasónico • 1 LED • 1 Buzzer 11.1 Selección del Hardware Se selecciona el desarrollo basado en Arduino llamado Kit Duinobot - Multiplo N6 desarrollado por RobotGroup Argentina que incorpora la mayor parte de los sensores y actuadores requeridos simplificando la etapa de ensamblado del robot. El kit Duinobot no incluye el sensor de Temperatura y Humedad ni los sensores infrarrojos laterales para la detección de marcas en el camino. Estos serán adquiridos de manera independiente e integrados en el sistema. Se selecciona el sensor de humedad y temperatura DHT11 de amplia disponibilidad en el mercado y probado éxito en implementaciones con Arduino. Los sensores IR laterales son iguales a los frontales y provistos por RobotGroup. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 249 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS 11.2 Descripción General del Hardware Seleccionado A continuación se detallan las características de Múltiplo N6: El Múltiplo N6 es un modelo de robot con fines educativos diseñado y ensamblado en el país por la empresa RobotGroup. Para poder moverse, el robot cuenta con tres ruedas, dos delanteras independientes y una trasera mas pequeña que gira libremente. Las ruedas delanteras cuentan con tracción diferencial gracias a dos motores de corriente continua que se controlan por software independientemente uno del otro. Esto permite programar el robot para que vaya hacia adelante, hacia atrás o que gire variando la velocidad de una a rueda con respecto de la otra. Para poder percibir el entorno, posee varios sensores: dos sensores reflexivos y uno ultrasónico. Los reflexivos emiten luz infrarroja y detectan cambios de contraste entre las superficies claras y oscuras, permitiendo programar el robot para que siga una linea o detecte un borde, entre otras cosas. El sensor ultrasónico agrega la posibilidad de detectar o obstáculos a distancia con una precisión del orden de los centímetros. Todos estos sensores, los motores y un buzzer que emite frecuencias en el espectro audible se conectan a una placa central llamada Duinobot basada en Arduino, con un microcontrolador programable Atmega32U4. Recordemos que Arduino es una plataforma Libre y puede ser modificada respetando las pautas establecidas en su licencia (Creative Commons), es por esto que Robotgroup ha diseñado Duinobot, una implementación de Arduino a la cual le han realizado modificaciones de acuerdo a sus deseos y necesidades. El robot, además, tiene algunos conectores libres para otros tipos de sensores que pueden ser agregados adicionalmente a futuro. 11.3 Especificaciones técnicas del Hardware seleccionado A continuación se listan las principales características del desarrollo de hardware seleccionado. Las mismas fueron tomadas del documento Guide.Robotics-1.ESP.20120229 el TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 250 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS cual puede ser descargado de manera gratuita del sitio oficial del desarrollador: http://www.robotgroup.com.ar Alimentación: • El controlador Duinobot posee un sistema de alimentación que permite entregar hasta 12 V a los motores partiendo de sólo 3 pilas AA (o cualquier otra celda de 3.6 V, ya sea NiMH o Li- Ion). Además, es capaz de elevar la tensión de alimentación de la lógica del circuito, permitiendo la conexión de todo tipo de sensores estándar y otros accesorios Múltiplo de 5V. • También es posible alimentar la placa mediante un puerto USB. Sensores : • Dos sensores infrarrojos reflexivos. Se pueden utilizar tanto como para medir luz reflejada (por ejemplo, color), como para medir luz incidente. La aplicación mas común es detectar una linea en el piso para poder seguirla. • Un sensor de distancia ultrasónico que permite identificar la distancia a un obstáculo con precisión de centímetros. • Un sensor interno de carga de la batería que permite conocer el voltaje de la fuente de alimentación. Software: El controlador DuinoBot se basa en Arduino y puede ser programado de forma nativa standalone (escribiendo software de modo que quede residente en el microcontrolador del robot) en C++, Bitlash y otros lenguajes de alto nivel. Microcontrolador : • Placa controladora DuinoBot basada en el microprocesador AVR ATMega32U4 y desarrollada por RobotGroup. • Memoria de programa: Flash de 32 KBytes. • Memoria de datos volátil: SRAM 2.5 KBytes. • Memoria de datos no volátil: EEPROM de 1 KByte. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 251 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS • Velocidad: 14-16 MIPS @ 16 Mhz. Interfaz de usuario: • Un buzzer permite la generación de tonos a diferentes frecuencias. • LED de usuario. • LED indicador de 5V (alimentación lógica). • LED indicador de alimentación de motores (6V / 12V). • 4 LEDs indicadores de sentido de giro de los motores. • Un pulsador de Reset. • Un pulsador de Usuario/Run. Comunicaciones : • USB por hardware en el microcontrolador (lo cual permite utilizarlo como CDC, HID, entre otros, según el software que el usuario baje al microcontrolador). Esto permite utilizar la placa controladora también como kit de desarrollo para aplicaciones USB. • Puerto extra serie TTL con conector estándar para módulos de comunicaciones Múltiplo (C0). Entradas y Salidas : • Seis entradas para sensores analógicos de 10 bits, con ficha estándar para los sensores Múltiplo . (S0 a S5). Las entradas analógicas pueden funcionar también como salidas digitales programables de hasta 40 mA (200 mA como máximo entre todos los pines). • Doble puente H MOSFET de alto rendimiento para motores de 2.5 a 13.5 V, corriente promedio de 1.2 A y pico de 3.2 A (M0 y M1). • Mas entradas y salidas disponibles en los conectores estándar Arduino. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 252 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS 12. Informe de Requerimientos de Software del Proyecto Los requerimientos del software necesario para la construcción del sistema requerido se desprenden principalmente de la arquitectura de hardware seleccionada (Sección 11). Como fue mencionado en la sección anterior, el hardware a utilizar para la construcción del sistema es Múltiplo N6 de Robotgroup, el cual contiene una placa base Duinobot basada en Arduino. Esta plataforma ofrece la posibilidad de desarrollar el software en diversos lenguajes y proporciona junto con el hardware, Duinopack; un entorno Arduino 0022 (entorno de programación oficial de Arduino) modificado especialmente por el fabricante de Múltiplo N6 para incorporar todas las librerías necesarias para el comando de los sensores y actuadores incluidos. Arduino 0022 además, posee una gran cantidad de documentación de acceso libre y una gran comunidad de programadores. El entorno de programación Duinopack puede descargarse de manera gratuita desde el sitio web del fabricante http://multiplo.org/files/soft/DuinoPack.v1.0.zip. A la fecha, la versión mas reciente es la 1.0 y es la que utilizaremos. *Actualización (21/02/13): Se requiere el uso de una librería para el manejo del sensor DHT11. La misma puede ser descargada y utilizada de manera gratuita. 13. Informe de Requerimientos de Software del Sistema Los requerimientos de software para la implementación del sistema requerido se desprenden principalmente de descripción de funcionalidades (Sección 6) y la arquitectura del sistema (Sección 7). A continuación se presenta el Diagrama de Contexto (Figura 6) que presenta un esquema básico de interacción del sistema con el entorno, el usuario y otros sistemas, la Tabla de Eventos (Figura 7), en la cual se describen los procesos principales del sistema y se describen sus entradas y respuestas y por ultimo el Diagrama de Flujo de Datos (Figura 8), que representa gráficamente los procesos descriptos en la Tabla de Eventos e interrelaciona TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 253 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS sus entradas y respuestas. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 254 JONATAN PONZO Fig. 6 Diagrama de Contexto Fig. 8 Diagrama de Flujo de Datos ANEXO IV - DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. TABLA DE EVENTOS EVENTOS # TIPO ENTIDAD EXTERNA DESCRIPCION FLUJO DE DATOS ESTIMULO RESPUESTA FUNCION ASOCIADA 1 TEMP SENSADO DE AMBIENTE TEMPERATURA Y HUMEDAD SENSAR AMBIENTE 2 TEMP SENSADO DE CAMINO DISPOSICION DEL CAMINO SENSAR CAMINO 3 TEMP SENSADO DE OBSTACULOS DISPOSICION DEL OBSTACULO SENSAR OBSTACULOS 4 TEMP SENSADO DE PUESTOS DISPOSICION DEL PUESTO SENSAR PUESTOS 5 TEMP SENSADO DEL CIRCUITO DISPOSICION DEL CIRCUITO (INICIO – FIN) SENSAR CIRCUITO DATOS RELEVADOS DESCARGAR DATOS 7 TEMP ARRANQUE TEMPORIZADO ORDEN DE DESPLAZAMIENTO TEMPORIZADO INICIO TEMPORIZADO 8 TEMP ESQUIVAR OBSTACULO OBSTACULO ESQUIVADO ESQUIVAR OBSTACULO 9 TEMP DESPLAZARSE POR EL CAMINO DESPLAZAMIENTO DESPLAZARSE 10 EXT SOLICITUD DE INICIAR / PARAR ARRANQUE / PARADA FORZADO FORZADA 6 EXT PUESTO DE DESCARGA USUARIO DESCARGA DE DATOS SOLICITUD DE DATOS ORDEN DE INICIO / INICIAR / PARAR PARADA FORZADA FORZADO Fig. 7 Tabla de Eventos 14. Informe de Integración de Requisitos Analizadas las especificaciones de requerimientos de Hardware e Interfaces, Entorno y Software detalladas en las secciones anteriores, no se identifica el desprendimiento de un nuevo requerimiento relativo a la integración de los mismos aunque no se descarta la posibilidad de ocurrencia durante la fase de Diseño e Implementación. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 257 JONATAN PONZO ANEXO IV - DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 258 JONATAN PONZO ANEXO IV - DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Robot para Automatización de Tareas de Invernadero Especificación de Diseño Versión 1.0 Autor: Jonatan Ponzo Lanzamiento: Septiembre 2013 TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 259 JONATAN PONZO ANEXO IV - DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 260 JONATAN PONZO ANEXO IV - DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Histórico de Modificaciones Fecha 07/02/13 Descripción del cambio Creación del Documento TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 261 JONATAN PONZO ANEXO IV - DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 262 JONATAN PONZO ANEXO IV - DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Tabla de Contenidos 1. Introducción 2. Especificación de Diseño Arquitectónico 3. Especificación de Diseño de Interfaces 4. Especificación de Diseño Detallado. 1. Diseño Detallado de Hardware 2. Diseño Detallado de Software TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 263 JONATAN PONZO ANEXO IV - DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 264 JONATAN PONZO ANEXO IV - DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 1. Introducción En este capitulo, tomaremos como base la información generada en el capitulo anterior inherente a la especificación de requisitos de Hardware e Interfaces, Software y Entorno y derivaremos el Diseño Arquitectónico del Sistema (Sección 2) tanto a nivel Hardware (Sección 2.1) como Software (Sección 2.2). Realizaremos la Especificación de Diseño de las Interfaces (Sección 3) y por ultimo presentaremos el Diseño Detallado del Sistema que permitirá alimentar las fases subsiguientes de desarrollo e implementación del robot. 2. Especificación de Diseño Arquitectónico El sistema se compone de una placa base la cual contiene un microcontrolador, unidades de almacenamiento temporario y permanente y una serie de entradas y salidas digitales y analógicas programables que le permiten al robot interactuar con el entrono y planificar su conducta. Cuanta además con un grupo de sensores; Sensor de Temperatura y Humedad, Sensor Ultrasónico, Sensores Infrarrojos, y un grupo de actuadores; 2 motores DC para el movimiento de las ruedas, 1 LED y 1 Buzzer. El hardware será gestionado por un sistema embebido basado en el lenguaje de programación sugerido para la arquitectura seleccionada, el cual se encargara de analizar las señales obtenidas del entorno y proporcionar las señales necesarias a los actuadores, para desplazarse de la manera mas conveniente. A partir de la descripción de la arquitectura básica y disminuyendo el nivel de abstracción empleado, se desarrolla un diagrama de la arquitectura del sistema con un mayor nivel de detalle. El mismo puede observarse en la Figura 1 En la Figura 2, anteriormente presentada en el documento de Especificación de Requisitos, se puede observar un esquema que presenta la arquitectura y disposición jerárquica de los módulos que componen al sistema embebido. A continuación, en la Figura 3 del presente documento, presentaremos una representación de dicho esquema con un nivel de abstracción mayor a fin de conocer los submódulos que componen a cada uno de los bloques principales del sistema embebido. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 265 JONATAN PONZO ANEXO IV - DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 5 3 6 SE SE 1 4 2 Sensores Actuadores 1. Ultrasonido 2. Infrarrojo 3. Humedad y Temperatura 4. Ruedas x 2 5. LED 6. Buzzer Fig. 1 Diagrama de Arquitectura del Hardware del Sistema Sensores Actuadores Entorno Controlador Sistema Embebido Almacenamiento Microcontrolador Entradas / Salidas Fig.2 Disposición jerárquica de los módulos del sistema. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 266 JONATAN PONZO ANEXO IV - DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Como se puede observar en la Figura 2, el sistema presenta un modulo principal inmediatamente sobre la capa del sistema embebido, llamado Controlador. El mismo es el encargado de interactuar con las Interfaces ya sean de sensado o actuado. En la Figura 3 podemos observar la descomposición del modulo Controlador. El mismo presenta 2 módulos en su base. Una capa de Relevamiento, destinada a la gestión de la tarea de sensado de temperatura y humedad en los Puestos y almacenamiento de los registros obtenidos y una capa de Desplazamiento, destinada a la gestión del movimiento del Robot a lo largo del camino. Esta capa contiene submódulos dedicados a la gestión del sensado (del Circuito, Puestos, Obstáculos y Camino) y del Actuado, principalmente a través de los motores DC que provocaran el giro de las ruedas aunque también de los dispositivos de señalización como LEDs y Buzzers que indican la finalización de ciertas actividades. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 267 JONATAN PONZO Sensores TEMP/HUM SENSADO Actuadores NOTIFICACIONES ALMACENAMIENTO RUEDAS CIRCUITO PUESTOS ACTUADO RELEVAMIENTO CAMINO OBSTACULOS SENSADO DESPLAZAMIENTO CONTROLADOR Sistema Embebido Almacenamiento Microcontrolador Fig.3 Diagrama de Arquitectura de Software del Sistema Entradas / Salidas ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 3. Especificación de Diseño de Interfaces De la Especificación de Requerimiento se desprende la necesidad de contar con un conjunto de Sensores y Actuadores que permitan al Robot interactuar con el Entorno, botones que permitan la interacción con el Usuario y un puerto USB que permita la interacción con el sistema de descarga de datos. La disposición física de los mismos puede observarse en la Figura 1 de la Sección 2. A continuación presentamos el Diseño Arquitectónico de las interfaces del sistema con un mayor nivel de abstracción. No se contemplan el puerto USB ni los botones de encendido/apagado y arranque/parada forzada en el diagrama por considerarlos parte componente integrada en el hardware base Arduino de Múltiplo N6 aunque serán tenidos en cuenta a la hora de realizar el diseño detallado. SENSORES IR ACTUADORES ULTRASONICO TEMP/HUM MOTOR DC LED BUZZER Controlador Sistema Embebido Almacenamiento Microcontrolador Entradas / Salidas Fig. 4 Diagrama Arquitectónico de Interfaces TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 269 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 4. Especificación de Diseño Detallado A lo largo de esta sección, profundizaremos la descripción del diseño Arquitectónico de Hardware del Sistema presentado en la Figura 1, detallando las conexiones entre las interfaces físicas y la plataforma de hardware Arduino (Sección 3.1). Posteriormente y ya dentro del ámbito del software, analizaremos los submódulos Desplazamiento y Relevamiento, principales componentes del módulo Controlador y presentados en la Figura 3 de la sección 2. Desarrollaremos los diagramas de flujo correspondientes a los mismos a fin de describir con el mayor nivel de precisión posible los distintos escenarios que el sistema puede enfrentar (Sección 3.2). 4.1 Diseño detallado de Hardware Como fue mencionado en el documento de especificación de requisitos, el hardware a utilizar consta de un kit desarrollado por RobotGroup llamado Múltiplo. El mismo utiliza Duinobot (una implementación de Arduino) y su carcasa fue especialmente diseñada para facilitar el conexionado de las distintas interfaces que provee el kit, como los motores y ruedas, sensores infrarrojos, sensores ultrasónicos, leds y buzzers. Presenta un sistema de conectores en el frente del robot que permiten conectar cualquier sensor provisto por RobotGroup de manera simple y ágil. Puede descargarse de manera gratuita desde el sitio web de RobotGroup ( robotgroup.com.ar ), el documento con las indicaciones de montaje del robot Múltiplo, incluyendo tanto las referentes al montaje de la carcasa y las partes mecánicas como el conexionado de las interfaces en la placa Arduino. El sensor de humedad y temperatura DHT11 no esta incluido en el kit y su conexionado no presenta la ficha standard de RobotGroup, por lo cual a continuación en la figura 5 presentaremos el diagrama de conexionado con la placa Duinobot. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 270 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Fig. 5 Diagrama de conexión del sensor DHT11 Por último, en la figura 6, presentamos el diagrama completo de conexionado de los diversos sensores requeridos, al modulo principal. La disposición de los actuadores no sufrió modificaciones respectos del diseño original del kit Múltiplo N6 por lo cual se omite su descripción en el gráfico. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 271 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Fig 6. Diagrama de conexión del hardware 4.2 Diseño detallado de Software En esta sección desarrollaremos el diseño detallado de cada uno de los submódulos del módulo Controlador, identificados en el diseño arquitectónico desde el nivel de abstracción mas alto hasta el mas bajo. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 272 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Fig 7. Diagrama de Flujo Submódulo Camino TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 273 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Fig 8. Diagrama de Flujo Submódulo Obstaculos Fig 9. Diagrama de Flujo Submódulo Puestos TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 274 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. En la Figura 7 puede observarse el submódulo correspondiente a la detección del camino y desplazamiento. El mismo utiliza 2 sensores infrarrojos frontales para detectar una linea en el camino y envía la señal correspondiente a los actuadores (2 motores DC). El resultado es el movimiento recto del robot o bien la corrección de la trayectoria según corresponda. En la Figura 8 se observa el submódulo de Obstáculos. El mismo es el encargado de detectar cualquier obstáculo que se presente en el recorrido y planificar el movimiento de manera tal de sortear el mismo. Utiliza un sensor ultrasónico y envía la señal correspondiente a los motores DC. El resultado de este modulo es la continuación del estado anterior del robot o bien la corrección de la trayectoria según corresponda. En la Figura 9 se puede observar el submódulo de Puestos. El mismo es el responsable de detectar la presencia de un puesto a sensar. Para ello utiliza un sensor infrarrojo lateral para detectar una marca en el camino. El resultado es la continuación del estado anterior del robot o bien el paso del mismo al modo de sensado. En la Figura 10 se puede observar el submódulo de Circuito, encargado de detectar la finalización del recorrido. Esto es posible a través de el sensado de una marca lateral en el camino mediante el mismo sensor Fig 10. Diagrama de Flujo Submódulo Circuito TRABAJO FINAL DE LICENCIATURA EN SISTEMAS infrarrojo utilizado en el submódulo de puestos aunque con un valor disparador diferente. El resultado es la 275 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. continuación del estado anterior o bien el paso del robot al modo Espera. En la Figura 11, puede observarse el diagrama de flujo completo del sistema. El mismo incorpora el requerimiento de arranque temporizado e inicio/parada forzada mediante la pulsación de un botón por parte del usuario. Dadas las dimensiones del diagrama, se presenta en 2 tramos. Fig. 11.a) Diagrama de flujo completo TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 276 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Fig. 11.b) Diagrama de flujo completo TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 277 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 278 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Robot para Automatización de Tareas de Invernadero Manual de Operaciones Versión 1.0 Autor: Jonatan Ponzo Lanzamiento: Septiembre 2013 TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 279 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 280 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Histórico de Modificaciones Fecha 11/02/13 Descripción del cambio Creación del Documento TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 281 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 282 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Tabla de Contenidos 1. Introducción 2. Especificación de Hardware 3. Operación básica 4. Descarga de datos 5. Modificaciones en el Recorrido – Nuevos Puestos 6. Mantenimiento 7. Soporte técnico TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 283 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 284 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 1. Introducción El producto desarrollado se trata de un Robot Autónomo Móvil de pequeñas dimensiones, destinado a la realización de tareas de invernadero, particularmente en esta fase inicial, la medición de valores de temperatura y humedad relativa. Cuenta con sensores infrarrojos y ultrasónicos que le permiten planificar su accionar respecto de las condiciones del entorno y con actuadores que le permiten desplazarse por los caminos dispuestos. Este manual de operaciones fue desarrollado con el objetivo de guiar al usuario final en la ejecución de las actividades necesarias para la correcta operación y mantenimiento del Robot. El mismo esta estructurado en 6 secciones que se describen brevemente a continuación. La sección 1 hace referencia a la Operación básica del sistema; Provee las indicaciones necesarias para la puesta en marcha y normal operación del robot en el entorno productivo. La sección 2 esta dedicada a la Descarga de Datos relevados por el robot a una PC. La sección 3 busca guiar al usuario en el proceso de modificación del entorno ya sea bien para adicionar o remover un puesto a relevar o para realizar modificaciones en el camino. En la sección 5 se proveen sugerencias y consideraciones a la hora de pensar en el mantenimiento del equipo y por ultimo, en la sección numero 6, se presenta la información necesaria a la hora de solicitar asistencia técnica. 2. Especificación de Hardware El sistema esta basado en la implementación de hardware Múltiplo N6 la cual utiliza el modulo Duinobot v1.2, una variación de Arduino al cual le fueron adicionados 2 sensores infrarrojos para la detección de marcas laterales y un sensor de humedad y temperatura. A continuación la especificación completa de hardware del sistema y un diagrama de conexión. Alimentación: • El sistema posee un sistema de alimentación que permite entregar hasta 12 V a los motores partiendo de sólo 3 pilas AA (o cualquier otra celda de 3.6 V, ya sea NiMH o Li- Ion). Además, es TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 285 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. capaz de elevar la tensión de alimentación de la lógica del circuito, permitiendo la conexión de todo tipo de sensores estándar y otros accesorios Múltiplo de 5V. • También es posible alimentar la placa mediante un puerto USB. Sensores : • Cuatro sensores infrarrojos reflexivos destinados al sensado del camino y la disposición de los puestos y el circuito. • Un sensor de distancia ultrasónico que permite identificar la distancia a un obstáculo con precisión de centímetros. • Un sensor interno de carga de la batería que permite conocer el voltaje de la fuente de alimentación. • Un sensor de humedad y temperatura DHT11 Software: El controlador del robot ha sido programado con un entorno Arduino modificado por el fabricante de Multiplo N6 a fin de proveer las librerias necesarias para el manejo de las diversas interfaces presentes. Microcontrolador : • Placa controladora DuinoBot basada en el microprocesador AVR ATMega32U4 y desarrollada por RobotGroup. • Memoria de programa: Flash de 32 KBytes. • Memoria de datos volátil: SRAM 2.5 KBytes. • Memoria de datos no volátil: EEPROM de 1 KByte. • Velocidad: 14-16 MIPS @ 16 Mhz. Interfaz de usuario: • Un buzzer permite la generación de tonos a diferentes frecuencias. • LED de usuario. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 286 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. • LED indicador de 5V (alimentación lógica). • LED indicador de alimentación de motores (6V / 12V). • 4 LEDs indicadores de sentido de giro de los motores. • Un pulsador de Reset. • Un pulsador de Usuario/Run. Comunicaciones : • USB por hardware en el microcontrolador (lo cual permite utilizarlo como CDC, HID, entre otros, según el software que el usuario baje al microcontrolador). • Puerto extra serie TTL con conector estándar para módulos de comunicaciones Múltiplo (C0). Entradas y Salidas : • Seis entradas para sensores analógicos de 10 bits, con ficha estándar para los sensores Múltiplo. (S0 a S5). Las entradas analógicas pueden funcionar también como salidas digitales programables de hasta 40 mA (200 mA como máximo entre todos los pines). • Doble puente H MOSFET de alto rendimiento para motores de 2.5 a 13.5 V, corriente promedio de 1.2 A y pico de 3.2 A (M0 y M1). • Mas entradas y salidas disponibles en los conectores estándar Arduino. (4 entradas analógicas y 13 entradas/salidas digitales entre otras) En la Figura 1 puede observarse el diagrama de conexión especificado respecto de los puertos de entrada/salida standard de Multiplo N6 y la disposición de los sensores en la estructura del robot. Cabe destacar que el sensor de Humedad y Temperatura DHT11 no presenta una ficha standard de Multiplo N6 y sera conectado directamente a la placa Duinobot, ocupando la entrada que utiliza el puerto S0. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 287 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Fig. 1 Diagrama de conexión y disposición de los sensores 3. Operación Básica El sistema cuenta con 3 modos de operación una vez encendido; Modo Espera, Modo Operativo y Modo Sensado y es capaz de conmutar su condición entre estos estados por eventos sucedidos internamente o provenientes del entorno. Entre los eventos provenientes del entorno se encuentran principalmente las condiciones relevadas del camino como marcas en el camino, obstáculos y los puestos y el accionar del usuario mediante el accionar de un botón. A continuación se describen los modos de operación disponibles y las acciones que determinan su activación. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 288 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Modo Espera: Al ser encendido, el Sistema se sitúa en este modo automáticamente. Se encuentra detenida su marcha y no se realizan actividades de sensado del entorno. Existen 2 variables capaces de modificar este estado; La pulsación del botón de arranque / parada forzada por parte del usuario o bien la culminación del temporizador interno pre-programado. En ambos casos, el robot conmutara del estado Espera al estado Operativo que se describe a continuación. Modo Operativo: En este modo, el sistema se encuentra en movimiento o relevando las condiciones del camino y planificando su accionar en consecuencia. Los eventos que hacen posible la alteración de este estado son la activación del botón de arranque / parada forzada por parte del usuario o la detección de una marca de fin de circuito, acciones que provocarán la inmediata conmutación al estado de espera o la detección de un puesto, evento que provocara la conmutación al estado de sensado, descripto a continuación. Modo Sensado: Este modo se inicia a partir de la detección de un puesto a relevar en el camino. El robot detiene su marcha, realiza mediciones de temperatura y humedad del ambiente, almacena los datos obtenidos y señaliza la finalización del proceso mediante una señal sonora y/o lumínica. La culminación del proceso de medición, automáticamente supone el paso al modo Operativo nuevamente. En este modo además, es posible la descarga de datos mediante una PC. 4. Descarga de Datos Culminado un recorrido o la jornada productiva, el usuario debe descargar los datos de temperatura y humedad relavados por el sistema. EL procedimiento para realizar esta actividad se describe a continuación: 1. Conmutar el estado del robot al modo Espera TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 289 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 2. Conectar el robot a una PC que contenga el entorno de desarrollo Arduino mediante un cable USB-MiniUSB 3. Iniciar el Entorno de Programación Arduino 4. Abrir el Software Descargador. El código fuente del descargador se adjunta al proyecto junto con el código del sistema. 5. Modificar el parámetro referente a la cantidad de puestos presentes en el circuito. 6. Cargar el código en el Sistema y observar los resultados en el Monitor Serial. El monitor serial presentara los datos de Temperatura y Humedad relevados en cada puesto. 5. Modificación del Recorrido – Nuevos Puestos Este sistema ha sido diseñado para adaptarse fácilmente y sin necesidad de intervenir en el código de programa, a la variación del entorno ya sea por la adición o remoción de un puesto, por la modificación del camino o por la aparición de un obstáculo imprevisto. El robot no posee un mapa precargado del recorrido sino que evalúa el camino y planifica su desplazamiento en consecuencia. De ser requerida la adición de un nuevo puesto, simplemente es necesario conectar el mismo al circuito original mediante un camino que satisfaga la especificación de requerimientos provista en el Informe de Especificación de Requerimientos, es decir, que presente la señalización correspondiente en su centro para guiar el recorrido del robot y la marca transversal en el sitio de sensado para posibilitar la identificación del puesto a sensar. Para mas información consultar el Informe de Requerimientos, sección Requerimientos del Entorno. 6. Mantenimiento A fin de garantizar la efectividad y eficiencia en la operación del sistema y prolongar su vida útil se ha elaborado un plan de mantenimiento del sistema. EL mismo fue presentado en el Plan de Proyecto y se describe a continuación: TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 290 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Ya en producción, el sistema puede requerir de un cronograma de mantenimiento tanto perfectivo como correctivo que permitan garantizar la continuidad de funcionamiento del Robot con el transcurso del tiempo. Se sugiere el siguiente Cronograma de Mantenimiento: 1. Relevamiento semanal de los registros de Solicitud de Asistencia Técnica y planificación de cambios perfectivos. 2. Evaluación mensual en el entorno productivo por parte del personal técnico del proyecto, del funcionamiento del hardware y las interfaces físicas. Limpieza, ajuste y lubricación de la estructura y las partes móviles según sea necesario. Reemplazo de baterías. Relevamiento de posibilidades de mejora. Duración promedio 2hs, dependiendo de las dimensiones y complejidad del entorno. 3. Evaluación y corrección diaria por parte del usuario de las condiciones del entorno; caminos y sus señalizaciones, invernaderos, obstáculos, etc. Las actividades a realizar en la visita de mantenimiento y los resultados de las mismas son registrados en la Planilla de Reporte de Mantenimiento. Pueden encontrarse las Planillas de Solicitud de Asistencia Técnica y Reporte de Mantenimiento en el Apéndice A o bien en la sección 6 de desde documento, dedicada al Soporte Técnico del producto. 7. Soporte Técnico Como se describe en la sección anterior, fue planificado al inicio de este proyecto, el mantenimiento preventivo y reactivo del sistema. Sin embargo, es posible la necesidad de contar con asistencia técnica en cualquier momento. Para solicitar asistencia técnica, enviar un correo electrónico a [email protected] presentando la siguiente planilla completa. La misma permitirá asegurar la provisión de la información necesaria para que personal de soporte técnico sea capaz de realizar un primer diagnostico del problema, coordinar una visita y registrar la solicitud para futuras revisiones y auditorías. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 291 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Planilla de Solicitud de Asistencia Técnica SOLICITUD DE ASISTENCIA TÉCNICA FECHA: SISTEMA: CATEGORIA: SOFTWARE HARDWARE ENTORNO DESCRIPCION DEL PROBLEMA: CRITICIDAD: CONTACTO PRINCIPAL: EMAIL DE CONTACTO: TELEFONO DE CONTACTO: TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 292 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Robot para Automatización de Tareas de Invernadero Reporte de Instalación y Operación del Sistema Versión 1.0 Autor: Jonatan Ponzo Lanzamiento: Septiembre 2013 TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 293 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 294 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Histórico de Modificaciones Fecha 14/02/13 Descripción del cambio Creación del Documento TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 295 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 296 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Tabla de Contenidos 1. Introducción 2. Configuración del Entorno 3. Adaptación de Interfaces al Entorno 4. Operación 4.1 Defectos encontrados 4.2 Propuesta de Mejoras 4.3 Observaciones TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 297 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 298 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 1. Introducción Completadas las actividades referentes al desarrollo e integración, es momento de operar el sistema en el entorno de prueba, o en caso de no utilizarse este, en el entorno productivo. El objetivo de esta tarea es la detección preliminar de fallas tanto en el hardware como en el software y la sugerencia de correcciones o mejoras en carácter previo al proceso de evaluación formal. 2. Configuración del Entorno En carácter previo a la operación del sistema, es necesario configurar el entorno en conformidad con la especificación de requerimientos del entorno elaborada. Por tratarse de una prueba de concepto, el proyecto no dispone de un entorno productivo real por lo cual se desarrollara un entorno de prueba a escala que presentara las características requeridas por el sistema para despeñarse normalmente. A continuación se describen sus principales características. El entorno de prueba consta de un circuito cerrado de dimensiones reducidas que dispone a lo largo de su recorrido de 1 o 2 puestos a relevar. El camino presenta las dimensiones mínimas requeridas para el normal desplazamiento del robot y esta montado sobre una superficie rectangular de madera pintada de color blanco brillante de modo de potenciar el proceso de reflejado de luz. Las marcas en el camino tanto para el desplazamiento como para la señalización de puestos e inicio / fin de recorrido fueron pintadas con pintura de color negro opaco a fin de potenciar el efecto de absorción de luz. A lo largo del circuito, se encuentran 1 o 2 puestos a relevar construidos con materiales descartables que simulan simplemente la estructura de un invernadero y no sus condiciones ambientales internas. Los mismos están señalizados en la superficie del camino de acuerdo a la especificación de requerimientos. Además, se dispuso una marca adicional para la indicación de fin de circuito. En la figura 1 se puede observar un diagrama del entorno construido. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 299 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Además del entorno fijo, es necesario disponer de un obstáculo móvil capaz de ser ubicado aleatoriamente a lo largo del camino a fin de evaluar la capacidad del robot de sortearlo. No se especifican características del obstáculo ya que en condiciones reales podría presentarse de diversas formas. 0.8 m 1m OBSTACULO (MOVIL) INICIO / FIN DEL CIRCUITO PUESTO I PUESTO II (MOVIL) Fig. 1 Entorno de Prueba TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 300 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 3. Adaptación de Interfaces al Entorno Configurado el entorno es pertinente evaluar la disposición de las interfaces físicas del robot respecto del mismo. En primer lugar se debe evaluar la posición de los sensores infrarrojos frontales destinados al sensado del camino. Los mismos deben ser capaces de ubicarse totalmente sobre la linea central del camino. Pasando a los sensores infrarrojos encargado de la detección de las marcas de los puestos y el inicio y fin del circuito, los mismos debe estar ubicados sobre los laterales izquierdo y derecho del robot respectivamente, de manera transversal al camino. Los sensores ultrasónicos por defecto están correctamente ubicados por lo cual solo resta verificar el sensor de humedad y temperatura. No se prevé una posición ideal para el mismo por lo cual se debe chequear simplemente que se encuentre separado algunos centímetros de la carcasa del robot para evitar interferencias en la medición. 4. Operación Se procede a operar el robot siguiendo las instrucciones provistas en el manual de Operaciones. A continuación se detallan las observaciones realizadas, defectos encontrados y mejoras sugeridas. Durante la operación del sistema se realizaron diversos ajustes inherentes a la relación del robot con el entorno, es decir, se alteraron algunas características de la señalización en el entorno y la disposición y ubicación de los sensores destinados al sensado del camino. Con el correr de las ejecuciones se refinaron los parámetros de velocidad y ángulo de giro del robot así como la disposición de las marcas en el entorno a fin de estabilizar la marcha. Se registró el proceso de operación del sistema y descarga de información mediante la filmación de 2 videos. Los mismos se encuentran adjuntos al proyecto o bien pueden observarse a través de internet mediante los siguientes links: TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 301 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Video Operación: http://www.youtube.com/watch?v=JIziVltf3iA Video Descarga de Información: http://www.youtube.com/watch?v=zXe7yXsXopM Los links se encuentran vigentes a la fecha de lanzamiento inicial de este documento. 4.1 Defectos encontrados Se detecto un problema relacionado con los sensores laterales. Los mismos, al cursar una curva pronunciada, se posicionaban por encima de la linea central provocando su activación ante un evento no deseado. Para solucionarlo se modifico la ubicación de los mismos en el cuerpo del robot. Se detecto un problema de obstrucción en la rueda de giro trasera, ocasionada por la disposición del cable conector de uno de los sensores laterales. Se solucionó fijando el cable a la estructura del robot. Se detectaron además algunas situaciones en las cuales el robot se comporta de forma errónea o imprevista. Al enfrentarse con un obstáculo, el robot intenta desplazarlo mediante una serie de golpes aplicados sobre el mismo. Al avanzar a una velocidad considerablemente mayor a la promedio, en ocasiones puede perder orientación y acabar fuera del circuito e imposibilitado de continuar con la operación. La funcionalidad relacionada con el sorteo de obstáculos no es excluyente por lo cual no se prevén acciones a efectuar para corregir este defecto. 4.2 Propuesta de Mejoras Luego de operar el sistema en reiteradas oportunidades y refinar la relación entre el robot y el entorno para su óptimo desempeño, se proponen las siguientes mejoras: • Disminuir el espesor de las marcas de puesto un 25% a fin de evitar el sensado reiterado. • Prolongar la longitud de la marca de fin de circuito un 25% a fin de evitar el sorteo de la marca ocasionado por una maniobra de corrección de curso. • Adicionar al entorno una marca de puesto móvil a fin de ser utilizada durante la fase de pruebas, en la validación de la funcionalidad que requiere la posibilidad de modificar la cantidad de puestos a relevar sin alterar el software. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 302 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO • CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Perfeccionar los algoritmos de sensado y desplazamiento a fin de sortear situaciones imprevistas que puedan mediante la generación de comportamientos indeseados, dejar al sistema fuera de operación. 4.3 Observaciones El grado de eficacia del robot es aproximadamente del 60%. Es decir, 4 de cada 10 veces en promedio, que el mismo es puesto en operación, se encuentra con una situación improvista que le impide continuar operando. Este valor es aceptado en el marco de una prueba de concepto aunque no lo seria si el equipo debiera operar en un entorno productivo. La memoria EEPROM tiene una cantidad finita de ciclos de escritura disponibles por lo cual no es recomendable su utilización en aplicaciones productivas. En su lugar se recomienda el uso de memorias del tipo SDCard. A la fecha no se dispone de librerías para el manejo de memorias SDCard, compatibles con Duinobot. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 303 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 304 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Robot para Automatización de Tareas de Invernadero Reporte de Evaluación del Sistema Versión 1.0 Autor: Jonatan Ponzo Lanzamiento: Septiembre 2013 TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 305 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 306 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Histórico de Modificaciones Fecha Descripción del cambio 21/02/13 Creación del Documento 22/02/13 Aceptación del Sistema TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 307 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 308 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Tabla de Contenidos 1. Introducción 2. Procedimientos de Prueba 3. Matriz de Trazabilidad 4. Datos de Prueba 5. Ejecución y Resultados 6. Aceptación del Sistema 7. Apéndices/Anexos Apéndice A – Casos de Prueba Apéndice B – Matriz de Trazabilidad TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 309 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 310 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 1. Introducción A lo largo de este capitulo y con base en la especificación de funcionalidades y requisitos del sistema, se diseñan los procedimientos de prueba necesarios (Sección 2), se realiza una matriz de trazabilidad a fin de garantizar la evaluación de la totalidad de las funcionalidades requeridas (Sección 3), se generan los datos necesarios para las pruebas (Sección 4) y por ultimo se ejecutan las mismas y se reportan sus resultados. 2. Procedimientos de Prueba Por las dimensiones del proyecto y por tratarse de una prueba de concepto, se obviaran las pruebas unitarias y de integración y solo se llevaran a cabo pruebas de sistema y aceptación mediante técnicas funcionales de caja negra a fin de verificar que el sistema desarrollado cumple con la totalidad de las funcionalidades descriptas en el documento de especificación de requerimientos. Los casos de prueba desarrollados pueden observarse en el Apéndice A – Planilla de Casos de Prueba. Cada caso de prueba contiene un código identificador que lo diferencia del resto y presenta una descripción breve de la funcionalidad a evaluar, la categoría del requerimiento a evaluar, es decir, si es un requerimiento funcional o no funcional, las condiciones en las cuales la prueba es llevada a cabo, los resultados esperados y por ultimo el resultado de la misma. Dado que el proyecto solo cuenta con un recurso humano, no se provee dicha información en la descripción del caso de prueba. 3. Matriz de Trazabilidad A fin de garantizar la evaluación de la totalidad de las funcionalidades requeridas, se desarrolla la matriz de Trazabilidad que puede observarse en el Apéndice B – Matriz de Trazabilidad. En la misma se lista la totalidad de los requerimientos funcionales y no funcionales del proyecto y los casos de prueba diseñados y se asigna cada requerimiento funcional a uno o mas casos de prueba según corresponda. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 311 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 4. Datos de prueba Construido el entorno de prueba de manera acorde a la especificación de requisitos provista, no se requiere el desarrollo de datos de prueba adicionales para los casos de prueba previstos. 5. Ejecución y Resultados Elaborados los casos de prueba y garantizada la evaluación de la totalidad de las funcionalidades requeridas mediante su ejecución, se procede a iniciar la ejecución de los casos de prueba elaborados. Como fue mencionado anteriormente, el robot desarrollado es el resultado de una prueba de concepto por lo cual no existe un entorno productivo sino simplemente un entorno de prueba, construido para la ocasión. Por la misma razón, el cliente y usuario final encargado de aceptar el producto, es quien lo ha desarrollado y llevará a cabo las pruebas. Finalizadas las mismas y obteniendo los resultados esperados, el producto es formalmente aceptado. Ejecutadas las pruebas, pueden observarse sus resultados en el Apéndice A – Casos de Prueba. Aproximadamente el 88% de los casos de prueba arrojaron resultados totalmente satisfactorios mientras que el 12% de los casos de prueba restantes no fueron fallidos sino que arrojaron resultados parcialmente exitosos, es decir, presentaron fallas en un porcentaje minoritario de iteraciones de la prueba. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 312 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 6. Aceptación del Sistema Concluida la etapa de pruebas y habiendo obtenido los resultados esperados tanto técnica como documentalmente, se procede a aceptar formalmente el sistema. Firma Aclaración Fecha TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 313 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 314 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Apéndice A – Casos de Prueba TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 315 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 316 JONATAN PONZO ID CP001 CP002 CP003 DESCRIPCION Seguimiento de Circuito Detección de Puesto Detección y sorteo de un obstaculo CATEGORIA Funcional Funcional Funcional Detección de fin de circuito CP004 CP005 CP006 Funcional Sensado de Temperatura y Humedad en Puesto Almacenamiento de valores de Humedad y Temperatura relevados Funcional Funcional CP006 Inicio forzado Funcional CP007 Parada forzada Funcional CP008 Inicio temporizado Funcional CP009 Descarga de Información Funcional CP010 Consumo No Funcional CP011 Operación en condiciones adversas No Funcional CONDICIONES El robot dispone de un circuito que cumple con la especificación de Requerimientos y se encuentra en modo operativo El robot se encuentra en movimiento y el un puesto se encuentra señalizado en el circuito El robot se encuentra en movimiento y un obstáculo se dispone en el circuito. El robot se encuentra en movimiento y el fin del circuito se encuentra proximo y señalizado acorde a lo requerido. El robot se encuentra en modo sensado como resultado de la deteccion de un puesto. El robot ha sensado recientemente las condiciones de humedad y temperatura del ambiente y aun se encuentra en modo sensado El robot se encuentra en modo espera El robot se encuentra en modo operativo El robot se encuentra en modo espera y el temporizador ha sido configurado en un valor de prueba de 5 minutos El robot ha concluido su recorrido y se encuentra en modo espera El robot funciona toda una jornada con el mismo set de baterias El robot opera en condiciones adversas de temperatura ENTRADA RESULTADO EVALUACION Linea dispuesta en el camino, acorde a lo requerido} El robot se desplaza por el circuito siguiendo la linea dispuesta Exitosa un 100% cuando no debe enfrentar un obstaculo y un 60% cuando debe hacerlo Ninguna Ninguna Ninguna El robot se detiene en el puesto, conmuta su estado a modo Sensado y notifica el evento mediante un sonido El robot golpea el obstáculo hasta liberar el camino El robot se detiene, conmuta su estado al modo Espera y notifica el evento mediante un sonido Valores de Humedad y Temperatura relevados El robot solicita al sensor de humedad y temperatura los valores presentes en el entorno en ese momento El robot almacena los valores obtenidos en la memoria interna Pulsación del botón de inicio forzado Pulsación del botón de parada forzada Finalización del temporizador El robot conmuta al modo operativo y comienza el recorrido El robot se detiene y conmuta al modo espera. El robot conmuta al modo operativo y comienza el recorrido Conexión del robot al puesto de descarga y ejecución del programa descargador Ninguna El programa descargador informa los valores de temperatura y humedad relevados en cada puesto El robot no requiere del reemplazo de baterias Valores de Humedad y Temperatura fuera del promedio El robot no altera su operatividad Condiciones Ambientales Exitosa Existosa en un 50% de las pruebas realizadas dependiendo de la ubicación y caracteristicas del obstaculo Exitosa Exitosa Exitosa Exitosa Exitosa Exitosa Exitosa Exitosa Exitosa ANEXO IV – DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 318 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Apéndice B – Matriz de Trazabilidad TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 319 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 320 JONATAN PONZO Caso de Prueba CP001 CP002 CP003 CP004 CP005 CP006 CP007 CP008 CP009 CP010 CP011 1.2.1 La pulsación de un botón físico de Encendido y Apagado provoca la transición del modo Encendido a Apagado y viceversa. NO REQUIERE UN CASO DE PRUEBA 1.2.2 La pulsación de un botón físico de Comienzo y Parada forzada, ubicado en el robot, provoca el cambio de submodo de operación de Espera a Operacional y viceversa. X X 1.2.3 El sistema debe poseer la capacidad de cronogramar la frecuencia de los recorridos. El temporizador conmutara el submodo de operación del sistema de Espera a Operacional. X 1.2.4 La culminación del recorrido planificado provocará que el robot se dirija a una posición de finalización preestablecida donde conmutara el submodo del sistema de Operacional a Espera X 1.2.5 El sistema debe ser capaz de identificar el momento en el cual se encuentra en un puesto donde debe realizar la actividad deseada. En ese momento conmutara el submodo de operación a Sensado. 2.1.1 El sistema debe contener un pulsador de encendido y apagado. 2.1.2 El sistema debe contener un pulsador de arranque y parada de emergencia. X NO REQUIERE UN CASO DE PRUEBA X 2.1.3 El sistema debe ser capaz de sensar las condiciones de humedad y temperatura de un puesto o invernadero y almacenarla en su memoria para la posterior descarga y análisis de la misma. 2.1.4 El Sistema debe ser capaz de desplazarse de manera autónoma utilizando preferentemente ruedas o cualquier otro tipo de actuadores por un camino regular siguiendo una linea trazada en el mismo o bien ejecutando instrucciones preconfiguradas. 2.1.5 X X X X X X X X 2.1.7 Es un requerimiento no excluyente pero deseable que el sistema sea capaz de sortear obstáculos básicos que se le presenten en el camino. 2.1.8 El sistema debe informar la conclusión del relevamiento de un puesto o del recorrido completo mediante un actuador lumínico o sonoro. X X El sistema debe proporcionar un puerto de descarga de la información relevada a una PC. 2.1.6 El sistema debe ser capaz de identificar el momento en el cual se encuentra en un puesto donde debe realizar la actividad deseada, detener su marcha y posicionarse de manera apropiada. X X X X X X Requerimiento Caso de Prueba CP001 CP002 CP003 CP004 CP005 CP006 CP007 CP008 CP009 CP010 CP011 4.1.1.1 En el submodo Espera debe estar disponible la funcionalidad del botón de comienzo y parada forzada 4.1.1.2 En el submodo Espera debe estar disponible la funcionalidad de Cronograma de Recorridos 4.1.1.3 En el submodo Espera debe estar disponible la funcionalidad de descarga de información X 7.2.1 El sistema debe permitir la descarga de datos relevados por el sensor mediante su conexión a una PC X X 7.2. 5 Concluido el relevamiento de un puesto, el sistema debe notificar la situación mediante una señal lumínica o sonora. X X 7.2. 6 Concluido el recorrido, el sistema debe retornar al punto de partida o bien detenerse en un punto de culminación preestablecido y notificar mediante una señal lumínica o sonora dicha condición. 8.2.1 El sistema debe almacenar los datos obtenidos por el sensor de temperatura 8.2.2 El sistema debe analizar las entradas obtenidas por los sensores infrarrojos detectores de linea 8.2.3 El sistema debe analizar las entradas obtenidas por los sensores de ultrasonido 9.1 El sistema debe analizar las entradas obtenidas por los sensores infrarrojos y enviar una señal a los actuadores para provocar su movimiento en seguimiento de la linea existente en el camino 9.2 El sistema debe analizar las entradas obtenidas por los sensores de ultrasonido y enviar una señal a los actuadores para provocar un movimiento que busque evitar el obstáculo detectado. X X X X X X X X X X X X 12. 2.1 Al tratarse de un sistema móvil autónomo, es deseable que el consumo del mismo sea bajo ya que será alimentado por baterías X X 13.3.1 El sistema debe ser capaz de soportar condiciones ambientales con altos niveles de humedad y en algunos casos temperaturas por debajo o encima del promedio. El hardware debe estar protegido ante una eventual caída o choque leve del robot. X X 9.3 El sistema debe analizar la entrada provista por el usuario mediante la pulsación del botón de Comienzo o Parada forzada y conmutar el submodo de operación entre Espera u Operativo según corresponda. 13.4.1 X X X ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Robot para Automatización de Tareas de Invernadero Informe de Estado de la Configuración Versión 1.0 Autor: Jonatan Ponzo Lanzamiento: Septiembre 2013 TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 323 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 324 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Histórico de Modificaciones Fecha 23/02/13 Descripción del cambio Creación del Documento TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 325 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 326 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Tabla de Contenidos 1. Introducción 2. Identificación de la Configuración 3. Control de la Configuración 4. Informe de estado de la Configuración. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 327 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 328 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 1. Introducción A lo largo de este documento, se identifican los aspectos inherentes al proyecto, tanto técnicos como procedimentales, que estarán sujetos al proceso de control de la configuración (Sección 1), se describirá la metodología a utilizar para el requerimiento, ejecución y registro de un cambio y por ultimo se presentara un reporte del estado de la configuración de los ítems sujetos a control. 2. Identificación de la Configuración En esta sección se identifican los Configuration Items (CI) sujetos al proceso de control de la configuración según las siguientes categorías: Software, Hardware, Entorno, Procesos y Documentación. Los mismos serán referenciados en la Planilla de Solicitud de Cambios. 2.1 Software 2.1.1. Diseño 2.1.2. Código Fuente 2.2 Hardware 2.2.1. CI003: Estructura 2.2.2. CI004: Modulo Principal 2.2.3. CI005: Sensores 2.2.4. CI006: Actuadores 2.3 Entorno 2.3.1. CI007: Circuito 2.3.2. CI008: Sistema de Descarga de Información 2.4 Procesos 2.4.1. CI009: Planificación 2.4.2. CI010: Análisis y Diseño 2.4.3. CI011: Implementación y Prueba 2.4.4. CI012: Garantía de Calidad 2.5 2.5.1. Documentación CI013: Documentos de Usuario TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 329 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO 2.5.2. CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. CI014: Documentos internos del proyecto 2.5.2.1. CI015: Planificación 2.5.2.2. CI016: Análisis y Diseño 2.5.2.3. CI017: Implementación y Prueba 2.5.2.4. CI018: Garantía de Calidad 3. Control de la Configuración Habiendo definido los diversos Configuration Items del proyecto, es preciso establecer una metodología de control de cambios. La misma fue presentada en el Plan de Gestión de la Configuración y se describirá con mas detalle a continuación. La solicitud, planificación y evaluación de cada cambio se registra a través de la Planilla de Control de Cambios presentada en el Apéndice A del Plan del Proyecto. 3.1 Identificación y Solicitud Las solicitudes pueden ingresar provenientes de un incidente reportado por los usuarios del sistema, o bien por una sugerencia de mejora o cambio preventivo presentada en un reporte de mantenimiento del sistema. El solicitante debe registrar el cambio en la planilla desarrollada para este fin (Planilla de Solicitud de Cambios) describiendo diversos aspectos requeridos. A continuación se describen algunos de los principales campos a completar. • Identificador: Se asignan códigos identificadores correlativos. Los mismos se componen de 3 letras que reflejan el origen del cambio (INC=Incidente, MEJ=Mejora) y 4 dígitos numéricos que identifican unívocamente el cambio. • Información del solicitante: El solicitante provee información de contacto. • Justificación: Se debe argumentar la necesidad de implementación del cambio. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 330 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO • CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Impacto: Se identifican y describen los riesgos inherentes a la no implementación del cambio. • Soluciones Alternativas: Se describen al menos 2 soluciones alternativas al cambio propuesto. • Riesgos: Se identifican y describen los riesgos inherentes a la implementación del cambio. • Estimaciones: El solicitante estima los recursos humanos y materiales y el esfuerzo requerido para la implementación del cambio. • Origen / Impacto: Se selecciona el origen del cambio según corresponda a un cambio Correctivo, Preventivo o Evolutivo y se mencionan los aspectos del proyecto que se verán impactados. • Configuration Items: Se mencionan los Configuration Items afectados por el cambio. • Revisión: Un evaluador revisa y aprueba, rechaza o demora el cambio justificando su elección. Los campos de la planilla responden a la secuencia temporal de ejecución de las distintas fases del proceso de Solicitud de Cambio. 3.1 Evaluación y Respuesta El evaluador debe observar y analizar la información provista por el solicitante y tomar la decisión mas conveniente para el proyecto; Aprobar, Rechazar o Demorar formalmente el cambio solicitado, justificando su elección. 3.2 Planificación, Implementación, Prueba y Registro En caso de ser aprobado el cambio se procede de la siguiente manera: 1. Diseño detallado del Plan de acción TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 331 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 2. Asignación del cambio 3. Cronograma del cambio 4. Notificación del cambio 5. Ejecución 6. Evaluación 7. Notificación de finalización y reporte de Resultados 8. Registro del estado de la configuración en los Configuration Items afectados. 9. Creación y lanzamiento de un nuevo Baseline. 10. Seguimiento durante un periodo determinado 11. Cierre y archivo en el registro histórico del proyecto. En caso de ser demorado el cambio se procede a su almacenamiento temporal hasta la fecha establecida donde sera nuevamente evaluado. En caso de ser rechazado, se procede a su archivo permanente en el registro histórico del proyecto. 4. Informe de estado de la Configuración. Cualquier cambio solicitado tiene impacto sobre al menos un Configuration Item y es aplicado sobre un Baseline de modo que, en caso de fallar la implementación sea posible retornar a un estado productivo de la configuración. Como resultado de este proyecto, se obtiene un primer baseline, el cual se compone de todos los Configuration Items en su versión inicial. Un baseline se registra mediante un código identificador, su fecha de puesta en producción, una breve descripción del mismo y el listado de la totalidad de los configuration Items del sistema con sus respectivas versiones vigentes. Los datos correspondientes al primer baseline se muestran en la Tabla 1. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 332 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Baseline: BL0001 Fecha de Lanzamiento: 01/03/13 Descripción: Baseline inicial Configuration Items Versión 2.2 Software 2.2.1. CI001: Diseño 1.0 2.2.2. CI002: Código Fuente 1.0 2.2 Hardware 2.2.1. CI003: Estructura 1.0 2.2.2. CI004: Modulo Principal 1.0 2.2.3. CI005: Sensores 1.0 2.2.4. CI006: Actuadores 1.0 2.3 Entorno 2.3.1. CI007: Circuito 1,0 2.3.2. CI008: Sistema de Descarga de Información 1.0 2.4 Procesos 2.4.1. CI009: Planificación 1.0 2.4.2. CI010: Análisis y Diseño 1.0 2.4.3. CI011: Implementación y Prueba 1.0 2.4.4. CI012: Garantía de Calidad 1.0 2.5 Documentación 2.5.1. CI013: Documentos de Usuario 1.0 2.5.2. CI014: Documentos internos del proyecto 1.0 2.5.2.1. CI015: Planificación 1.0 2.5.2.2. CI016: Análisis y Diseño 1.0 2.5.2.3. CI017: Implementación y Prueba 1.0 2.5.2.4. CI018: Garantía de Calidad 1.0 Tabla 1. Estado de la Configuración Cada Configuration Item debe especificar su numero de versión y fecha de lanzamiento a fin de ser identificado. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 333 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 334 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Robot para Automatización de Tareas de Invernadero Informe de Garantía de Calidad Versión 1.0 Autor: Jonatan Ponzo Lanzamiento: Septiembre 2013 TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 335 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 336 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Histórico de Modificaciones Fecha 24/02/13 Descripción del cambio Creación del Documento TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 337 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 338 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Tabla de Contenidos 1. Introducción 2. Revisiones 1. Revisiones Técnicas 1. Fase Análisis y Diseño 2. Fase Implementación y Prueba 2. Revisiones Gerenciales 1. Estimaciones 2. Métricas 3. Sugerencia de Mejora del Software 4. Sugerencia de Mejoras del Hardware 5. Sugerencia de Mejoras del Entorno 6. Sugerencia de Mejoras del Ciclo de Vida 7. Acreditación de Seguridad 8. Auditoría 9. Cierre del Proyecto 10. Apéndices/Anexos Apéndice A – Planilla de Reporte de Problemas TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 339 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 340 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 1. Introducción A lo largo de este proceso se evalúan y auditar los productos generados y los procesos utilizados durante el proyecto, con el objetivo de garantizar su calidad y detectar posibles mejoras. Este documento no solo busca garantizar la calidad de este proyecto sino que contribuye a la constante mejora en los procesos utilizados y como consecuencia, de los productos elaborados. 2. Revisiones Diferentes tipos de revisiones son llevadas a cabo en diversas etapas del proyecto. Las mismas tienen como objetivo detectar errores en los productos generados y en los procesos utilizados a lo largo del proyecto. A continuación se describen las etapas de revisión propuestas para este proyecto según su categoría y se presentan sus resultados. 2.1 Revisiones Técnicas Las revisiones Técnicas están destinadas a detectar y corregir errores en las etapas preliminares de requisitos y diseño, codificación e implementación y prueba del sistema. A continuación se describen los inconvenientes enfrentados durante las etapas de Análisis y Diseño e Implementación y Prueba del Proyecto, registrados en la planilla de Reporte de Problemas. 2.1.1 Fase Análisis y Diseño I001: Durante la etapa de Análisis de requerimientos, se llevo a cabo la asignación de requisitos de hardware, software y entorno. En esa instancia, fue seleccionada la arquitectura de hardware a a utilizar (Arduino) y se estableció la necesidad de utilizar, entre otras interfaces, un sensor de humedad y temperatura aunque no se especifico su modelo. Se estimo que el mismo utilizaría una entrada analógica pero finalmente requirió de una entrada digital. El error no tuvo consecuencias técnicas porque el hardware base seleccionado contenía entradas digitales suficientes pero pudo haberlo ocasionado un problema considerable en la etapa de diseño e implementación. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 341 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. I002: En las mismas condiciones que las del problema reportado I002, se identifico la necesidad de utilizar un módulo para el manejo de memorias SDCard, destinado al almacenamiento de los datos relevados por el sensor de humedad y temperatura. En la etapa de implementación se enfrentaron inconvenientes técnicos durante la integración y manejo del módulo adquirido, mediante la utilización de librerías standard. Esta situación fue prevista en la planificación de riesgos por lo cual se procedió de acuerdo al plan de contingencia; Comunicarse con el fabricante en búsqueda de asistencia técnica. Como respuesta se obtuvo la información de que no existen librerías compatibles con Duinobot para el manejo de SDCards. El inconveniente fue solucionado mediante la utilización de la memoria interna del modulo base. Esta solución es apta solo para un proyecto de características similares a las actuales y no podría haber sido implementada en un proyecto productivo, dada la limitación de el tipo de memoria utilizada (EEPROM) respecto de la cantidad de escrituras y lecturas factibles. Una solución alternativa es la adaptación a Duinobot de las librerías existentes para Arduino UNO. 2.1.2 Fase Implementación y Prueba. No se identificaron problemas relevantes durante las etapas de Implementación y Prueba. A pesar de los inconvenientes descriptos en las puntos anteriores, el proyecto se desarrolló técnicamente según lo planificado. La especificación de requisitos de hardware, Software y Entorno fue adecuada y permitió la construcción de un sistema correcto y adecuado a las necesidades del cliente. 2.2 Revisiones Gerenciales Las revisiones Gerenciales tienen por objetivo asegurar el progreso del proyecto, un correcto uso de los recursos y recomendar acciones correctivas. Se han realizado revisiones gerenciales en la finalización de las etapas de Análisis y Diseño e Implementación y Prueba. 2.2.1 Estimaciones Durante la fase de Planificación se estimaron los recursos materiales y humanos, costo y esfuerzo necesario para la realización de este proyecto. A continuación se contrastarán los valores estimados con los con los obtenidos en la practica. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 342 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Tiempo 2.2.1.1 Tiempos Durante la fase de Planificación se estimo el esfuerzo requerido medido en horas/hombre para la concreción de las actividades requeridas por el proyecto. A continuación, en la Figura 1, se presenta la Planilla de Control de Actividades y en la Figura 2 se contrastan los valores estimados en el Plan del Proyecto con los obtenidos en la práctica, y expresados en la Planilla de Control de Actividades. PLANIFICACIÓN ANALISIS Y DISEÑO IMPLEMENTACION Y PRUEBA GARANTIA DE CALIDAD Horas Estimadas 36 71 61 26 Horas Reales 41 53 46 28 TOTAL 194 168 Fase Fig 2. Contraste de Estimación de Esfuerzo TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 343 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. A.1.1.6 A.1.1.1 A.1.1.2 A.1.1.3 A.1.1.4 A.1.3.1 A.1.1.5 A.4.3.3 A.1.2.7 A.1.2.4 A.1.2.8 A.1.2.1 A.1.2.9 A.1.2.2 A.1.2.10 A.1.2.5 A.5.1.1 A.2.1.1 A.2.1.2 A.2.1.3 A.2.1.4 A.2.2.1 A.2.2.2 A.2.2.3 A.3.1.1 A.3.1.2 A.3.2.3 A.3.1.3 A.3.1.4 A.3.1.5 A.3.2.1 A.3.2.4 A.3.2.5 A.5.1.1 A.3.3.2 A.3.3.5 A.3.3.1 A.3.3.4 A.4.1.1 A.4.1.2 A.3.3.3 A.4.2.1 A.4.2.2 A.4.2.3 A.5.1.4 A.5.1.2 A.5.1.5 A.5.1.6 A.1.3.4 A.5.1.7 A.4.1.3 A.5.1.1 A.5.2.1 A.5.2.2 A.5.2.3 A.5.1.1 A.4.3.1 A.4.3.2 A.5.1.8 A.1.2.10 Entendimiento del Negocio Seleccionar un modelo de Ciclo de Vida Realizar Estimaciones Asignar Recursos Definir Métricas Gestión de Riesgos Determinar objetivos de Seguridad Implementación de un método de reporte de problemas Planificación de la Gestión del Proyecto. Planificación de la Instalación Planificación de la Integración Planificación de la Evaluación Planificación de la Gestión del Lanzamiento Planificación de la Gestión de la Configuración Planificación del Mantenimiento Planificación de la Documentación Conducir Revisiones Identificar ideas o necesidades. Formular soluciones potenciales. Conducir estudios de viabilidad. Refinar y Finalizar la idea o necesidad. Analizar las funciones del sistema. Desarrollar la arquitectura del sistema. Asignar los requerimientos del Sistema Definir y desarrollar los requisitos del hardware Definir y desarrollar los requisitos del Interfaces Selección de la Arquitectura de Hardware mas conveniente. Definir los requisitos del entorno Definir los requisitos de software Integrar los requisitos Realizar el diseño arquitectónico Diseñar las interfaces Realizar el diseño detallado Conducir Revisiones Crear el código fuente Gestionar las versiones del Software Configurar e integrar el hardware y las interfaces físicas Realizar la integración Ajustar parámetros del entorno Configurar y adaptar interfaces con el entorno productivo y otros sistemas Crear la Documentación operativa Operar el sistema Proveer de asistencia técnica y consultas Mantener el histórico de peticiones de soporte Desarrollar Procedimientos de prueba Crear Matriz de Trazabilidad Crear datos de prueba Ejecutar pruebas Almacenamiento de Registros Reportar Resultados de la evaluación Aceptar el producto en el ambiente operativo Conducir Revisiones Desarrollar la identificación de la configuración Realizar el control de la configuración Realizar la información del estado de la configuración Conducir Revisiones Identificación de necesidades de mejora del Software Identificación de necesidades de mejora del Hardware y Entorno Confirmar Acreditación de Seguridad Planificación del Mantenimiento TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 344 2 16 2 2 1 1 1 1 2 2 1 2 1 2 2 2 1 2 2 2 2 4 4 3 2 2 2 3 2 1 4 2 14 2 14 1 2 1 1 1 5 4 0 0 4 3 0 5 1 2 1 1 2 2 1 1 1 1 1 2 EJECUTOR 12/01/13 13/01/13 13/01/13 13/01/13 13/01/13 13/01/13 13/01/13 13/01/13 14/01/13 14/01/13 14/01/13 15/01/13 15/01/13 15/01/13 16/01/13 16/01/13 16/01/13 23/01/13 23/01/13 23/01/13 23/01/13 24/01/13 25/01/13 25/01/13 25/01/13 26/01/13 26/01/13 26/01/13 27/01/13 27/01/13 07/02/13 07/02/13 10/01/13 10/01/13 13/01/13 11/02/13 11/02/13 11/02/13 13/02/13 14/02/13 11/02/13 14/02/13 14/02/13 14/02/13 21/02/13 22/02/13 22/02/13 23/02/13 22/02/13 22/02/13 22/02/13 22/02/13 23/02/13 23/02/13 23/02/13 24/02/13 24/02/13 24/02/13 24/02/13 25/02/13 HORAS 12/01/13 12/01/13 13/01/13 13/01/13 13/01/13 13/01/13 13/01/13 13/01/13 14/01/13 14/01/13 14/01/13 15/01/13 15/01/13 15/01/13 16/01/13 16/01/13 16/01/13 23/01/13 23/01/13 23/01/13 23/01/13 24/01/13 24/01/13 25/01/13 25/01/13 26/01/13 26/01/13 26/01/13 27/01/13 27/01/13 07/02/13 07/01/13 08/01/13 10/01/13 11/02/13 11/02/13 11/02/13 11/02/13 13/02/13 14/02/13 11/02/13 14/02/13 14/02/13 14/02/13 21/02/13 22/02/13 22/02/13 22/02/13 22/02/13 22/02/13 22/02/13 22/02/13 23/02/13 23/02/13 23/02/13 24/02/13 24/02/13 24/02/13 24/02/13 25/02/13 CANTIDAD FINALIZACION ACTIVIDAD COMIENZO CONTROL DE ACTIVIDADES PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ 41 PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ 53 PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ 46 PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ JONATAN PONZO A.1.3.5 A.1.3.3 A.5.1.3 A.5.3.1 A.5.3.2 A.4.3.4 A.1.3.6 Recopilación y Análisis de Métricas Identificación de Mejoras al Ciclo de Vida Conducir Auditorías Implementar la Documentación Producir y Distribuir la Documentación Iteración del Ciclo de Vida Cierre del Proyecto TOTAL EJECUTOR 24/02/13 25/02/13 HORAS 24/02/13 25/02/13 ACTIVIDAD CANTIDAD FINALIZACION CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. COMIENZO ANEXO IV – DOCUMENTOS DEL PROYECTO 2 1 PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ PONZOJ 14 154 Fig. 1 Planilla de Control de Actividades 2.2.1.2 Recursos Durante la etapa de Planificación se estimaron los recursos necesarios para la conclusión exitosa de las actividades propuestas en el ciclo de vida. A continuación se contrastan los recursos estimados con los realmente utilizados en la practica. Recurso Descripción Costo Estimado Costo Real Kit ROBOT N6 V1.1 Kit Arduino, Carcaza, 2 Motores 2 Sensores IR, 2 Sensores Ultrasonido $1.700,00 (Provisto por la Universidad) Provisto por la Universidad 2 Sensores IR Sensores IR para deteccion de marcas $100,00 $64,00 1 Modulo MicroSD Modulo Lecto-Grabador de tarjetas micro SD $80,00 $60,00 Cables y Conectores Cables y Conectores necesarios $30,00 $22,00 PC/Laptop Necesaria para la generación del código fuente y la integración del mismo con el hardware Entorno de Prueba Materiales necesarios para el montaje $0,00 (Provisto por el Desarrollador) $100,00 $120,00 Fig 3. Validación de Estimación de Recursos Como puede observarse en la Figura 3, la estimación de recursos fue satisfactoria. Los gastos efectuados se encontraron dentro del presupuesto. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 345 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 2.2.2 Métricas Durante la fase de Planificación también se establecieron las métricas del proyecto. A continuación se presenta la recolección de las mismas. Métrica M1: Esta métrica fue implementada con el objetivo de evaluar el desarrollo del proyecto respecto del tiempo consumido y ajustar la estimación realizada según corresponda. Como puede observarse en la sección 2.2.1, la estimación de tiempos si bien no fue exacta, se encontró dentro del rango tolerable por lo que no fue necesario ajustar la estimación en ninguna fase del proyecto. Podemos inferir a partir del estudio de la Métrica M1 que la fase de estimación de tiempo fue llevada a cabo correctamente y que el proyecto se desarrollo dentro de los plazos establecidos. Métrica M2: La métrica M2 fue implementada con el objetivo monitorear la cantidad de obstáculos y problemas encontrados a lo largo del proyecto ya sea bien en los procesos utilizados como en las cuestiones meramente técnicas. Como puede observarse en la Planilla de de Problemas presentada en el Apéndice A, se enfrentaron una escasa cantidad de inconvenientes en el proyecto y los mismos fueron de una severidad y complejidad muy baja. Conclusión: Esta información sugiere que la fase de planificación del proyecto fue llevada a cabo con un alto nivel de satisfacción. Métrica M3: Por ultimo la Métrica M3, fue implementada con el objetivo de monitorear las solicitudes de cambios mediante el control de los registros ingresados en la Planilla de Solicitud de Cambios. Tras su evaluación, se identifica solo una Solicitud de Cambio, la cual además fue aprobada y concluida. Esto permite concluir que las fases previas a la implementación fueron, en un alto porcentaje, exitosas. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 346 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 3. Sugerencia de Mejora del Software A continuación se sugieren mejoras en el Software de Sistema. 1. Optimización de los algoritmos de planificación del desplazamiento a fin de evitar comportamientos imprevistos. 2. Optimización del algoritmo de sorteo de obstáculos a fin de evitar que el robot se salga de la pista y no pueda retornar, como consecuencia de las acciones efectuadas para sortear un obstáculo. 3. Adición de un modulo de re-enrutamiento que permita al Robot volver al circuito en caso de quedar fuera del mismo como consecuencia de una situación imprevista. 4. Incluir un modulo de configuración del temporizador que permita al usuario seleccionar el intervalo de tiempo deseado para la espera entro cada ciclo de operación. 5. Adaptar las librerías para el manejo de módulos SDCard, existentes para Arduino, a la plataforma Duinobot 1.2 a fin de reemplazar el medio de almacenamiento utilizado actualmente (memoria EEPROM) por tarjetas SDCard. Se recuerda que la utilización de la memoria EEPROM como medio de almacenamiento de datos provenientes de las mediciones realizadas por el sensor DHT11 no es recomendada ya que este tipo de memoria posee un numero finito de ciclos de grabación el cual, tras ser alcanzado, provoca la necesidad de remplazar chip. 6. Incorporar un modulo de monitoreo del estado de la batería. El desarrollo de hardware cuenta con un sensor disponible para dicha tarea. 4. Sugerencia de Mejora del Hardware A continuación se sugieren mejoras en el Hardware del Sistema 1. Una vez adaptadas las librerías para su manejo en Duinobot, incorporar un modulo para el manejo de memorias SDCard a fin de utilizar esta tecnología para el almacenamiento permanente de los datos registrados por el sensor de humedad y temperatura DHT11. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 347 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 2. Incorporar un suplemento de 5cm de largo aproximadamente, para el montaje de los sensores infrarrojos laterales a fin de evitar cualquier riesgo potencial de posicionamiento de los mismos sobre la linea central del circuito. 3. Incorporar un suplemento para la fijación del sensor DHT11 y en caso de utilizarse, el modulo SDCard. 4. Incorporar un modulo display LCD y los pulsadores necesarios para la configuración por parte del usuario del temporizador del sistema y el relevamiento del estado de la batería del sistema y la eventual ocurrencia de una falla. 5. Incorporación de un modulo emisor y receptor RF para el monitoreo a distancia de los datos relevados. 6. Como línea futura de desarrollo, se propone la implementación de una segunda fase de hardware destinada exclusivamente al control del robot y que permita la programación remota del mismo a través de una señal WIFI o Bluetooth. Se propone la utilización del hardware Raspberry Pi con un sistema operativo Linux. Para mas información acerca de la arquitectura de hardware sugerida, dirigirse al Anexo I del trabajo final de licenciatura, titulado “Relevamiento de Hardware” 5. Sugerencia de Mejora del Entorno A continuación se sugieren mejoras en el Entorno de operación del Sistema. 1. Prolongación del largo de las marcas laterales. Actualmente tienen una longitud de 4cm y se sugieren al menos 7 cm. En caso de que se realice la sugerencia de mejora de hardware numero 2, se deberán adaptar las marcas laterales en consecuencia. 6. Sugerencia de Mejora del Ciclo de Vida Por tratarse de una prueba de concepto, el Ciclo de Vida ha sido corregido y refinado iterativamente con el correr del proyecto. Es por eso que llegada la etapa final del mismo no se sugieren mejoras. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 348 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 7. Acreditación de Seguridad Durante la etapa de planificación del proyecto y debido a las características del mismo, no se plantearon objetivos de seguridad. Habiendo finalizado exitosamente la etapa de evaluación del sistema, se procede a confirmar la aptitud del mismo para la operación en el ambiente productivo y a autorizar formalmente su entrega al cliente. Firma Aclaración Fecha 8. Auditoría Como fase final de este proceso de garantía de calidad, se realiza una auditoría interna del proyecto. Es importante que la misma sea realizada por un área o equipo externo al proyecto. 8.1. Licencias de software y hardware utilizado durante el proyecto 8.2. Licencias de Software y hardware requeridas en el producto desarrollado 8.3. Derechos de propiedad intelectual en el Producto desarrollado 8.4. Acuerdos establecidos con el cliente 8.5. Confidencialidad de la Información del cliente 8.6. Concreción de todas las actividades propuestas en el Ciclo de Vida del Proyecto 8.7. Consistencia de los objetivos a lo largo del proyecto 8.8. Documentación de todos los procesos utilizados en el Proyecto 8.9. Procedimientos existentes para el control de la configuración 8.10. Procedimientos existentes para el reporte y solución de problemas • Todos los inconvenientes reportados durante el proyecto fueron solucionados 8.11. Procedimientos existente para la ejecución de revisiones 8.12. Definición y Validación de Métricas TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 349 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 8.13. Realización y Validación de Estimaciones 8.14. Documentación de Pruebas realizadas al sistema • Todas las fallas detectadas en esta etapa fueron solucionadas 8.15. Aprobación formal por parte del usuario de la Especificación de Requisitos 8.16. Aceptación formal del Sistema por parte del usuario 8.17. Acreditación formal de Seguridad para la operación 8.1. Licencias de Software y Hardware utilizados durante el proyecto. Las actividades de codificación y documentación del proyecto fueron realizadas utilizando una Laptop HP ProBook 6455b S/N CNU03800TB con un Sistema Operativo Ubuntu 9.10 open-source 8.2. Licencias de Software y hardware requeridas en el producto desarrollado El sistema desarrollado esta basado en Arduino; un plataforma de prototipado electrónico opensource regida bajo licencias Creative Commons que establecen la posibilidad de utilizar y modificar el el diseño sin ningún tipo de permiso. Para mas información acerca de las licencias Creative Commons dirigirse a la siguiente URL: http://www.creativecommons.org.ar/licencias 8.3. Derechos de propiedad intelectual en el Producto desarrollado El sistema desarrollado es el producto de la prueba de concepto de un trabajo final de licenciatura y no esta prevista su implementación productiva ni distribución. 8.4. Acuerdos establecidos con el cliente No existen acuerdos preestablecidos con el cliente 8.5. Confidencialidad de la información del cliente A lo largo del proyecto no se manipula información sensible del cliente y por ello no se a efectuado ningún acuerdo con el mismo. 8.6. Concreción de todas las actividades propuestas en el Ciclo de Vida del Proyecto La totalidad de las actividades propuestas en el Ciclo de Vida del Proyecto fueron concluidas. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 350 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 8.7. Consistencia de los objetivos a lo largo del proyecto Los objetivos planteados en las etapas iniciales del proyecto no sufrieron modificaciones a lo largo del mismo 8.8. Documentación de todos los procesos utilizados en el Proyecto La totalidad de los procesos ejecutados a lo largo del proyecto fueron debidamente documentados y generaron los resultados esperados. 8.9. Procedimientos existentes para el control de cambios El proyecto cuenta con un metodología de control de cambios. La misma puede ser encontrada en el Plan de Gestión de la Configuración y el Informe del Estado de la Configuración. 8.10. Procedimientos existentes para el reporte y solución de problemas El proyecto cuenta con una metodología de reporte y solución de problemas. La misma puede ser encontrada en el Plan del Proyecto. Todos los inconvenientes reportados a través de dicha metodología fueron solucionados. Para mas información dirigirse a la Planilla de Reporte de problemas presentada en el Apéndice A. 8.11. Procedimientos existentes para la ejecución de revisiones El proyecto cuenta con procesos periódicos de revisiones técnicas y gerenciales. Para mas información dirigirse al Plan del Proyecto y a la sección 2 del presente documento. 8.12. Definición y Validación de Métricas Durante la etapa inicial del proyecto fueron establecidas métricas. Las mismas fueron validadas en carácter previo a la conclusión del proyecto. Para mas información dirigirse al Plan del Proyecto y a la sección 2.2 del presente documento. 8.13. Realización y Validación de Estimaciones Durante la etapa inicial del proyecto se realizaron estimaciones de recursos y esfuerzo requeridos. Las mismas fueron validadas en carácter previo a la conclusión del proyecto. Para mas información dirigirse al Plan del Proyecto y a la sección 2.1 del presente documento. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 351 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 8.14. Documentación de Pruebas realizadas al sistema Se ha documentado efectivamente el proceso de evaluación. La totalidad de los defectos encontrados fueron corregidos. Para mas información dirigirse al Plan del Proyecto y al Reporte de Evaluación del Sistema. 8.15. Aprobación formal por parte del usuario de la Especificación de Requisitos El usuario ha provisto formalmente su aprobación respecto de la especificación de requisitos. La misma fue registrada en el documento Especificación de Requisitos. 8.16. Aceptación formal del Sistema por parte del usuario El sistema ha sido aceptado formalmente por el usuario. El registro fue efectuado en el Reporte de Evaluaciones del Sistema. 8.17. Acreditación formal de Seguridad para la operación El Sistema fue acreditado formalmente para pasar a operación. El registro fue llevado a cabo en la sección 7 del presente documento. 8. Cierre del proyecto Concluida la totalidad de las actividades propuestas en el ciclo de vida, se procede a dar cierre formal al proyecto. Se adjunta la totalidad de los documentos elaborados, el sistema y su código fuente. TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 352 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. Apéndice A. Planilla de Reporte de Problemas TRABAJO FINAL DE LICENCIATURA EN SISTEMAS 353 JONATAN PONZO ANEXO IV – DOCUMENTOS DEL PROYECTO TRABAJO FINAL DE LICENCIATURA EN SISTEMAS CONTROL DE ROBOTS AUTÓNOMOS MÓVILES BASADOS EN ARQUITECTURAS DE SISTEMAS EMBEBIDOS. 354 JONATAN PONZO REPORTE ID FECHA PROPIETARIO DEL PROBLEMA FASE DESCRIPCION CORRECCION SOLUCIONES POTENCIALES SEGUIMIENTO I001 FECHA DESCRIPCION 11/02/13 11/02/13 PONZOJ ANALISIS Y DISEÑO EL SENSOR DE HUMEDAD Y TEMPERATURA DHT11 UTILIZA UNA ENTRADA DIGITAL EN LUGAR DE UNA ENTRADA ANALOGICA UTILIZAR UNA ENTRADA DIGITAL DISPONIBLE UTILIZAR UNA ENTRADA ANALOGICA Y EL CONVERSOR ANALOGICO DIGITAL 11/02/13 FINALIZADO SI SE UTILIZA LA ENTRADA ANALOGICA S0 COMO ENTRADA DIGITAL N/A 11/02/13 PROPUESTAS DE MEJORA EJECUTOR PONZOJ NINGUNA PONZOJ SOLICITUD DE CAMBIO: MEJ001 SI ADAPTAR LAS LIBRERIAS EXISTENTES I002 PONZOJ ANALISIS Y DISEÑO LAS LIBRERIAS PARA EL MANEJO DEL MODULO SDCARD EN ARDUINO NO SON COMPATIBLES CON DUINOBOT UTILIZAR LA MEMORIA EEPROM NO ALMACENAR LOS DATOS RELEVADOS SINO VISUALIZARLOS EN TIEMPO REAL MEDIANTE EL MONITOR SERIAL N/A 03/02/13 I003 PONZOJ EL SITIO WEB DEL ROBOTGROUP, PROVEEDOR DEL HARDWARE IMPLEMENTACION DUINOBOT SE ENCUENTRA Y PRUEBA FUERA DE SERVICIO SOLICITAR EL ENVIO DE DOCUMENTACION Y COTIZACION DE SENSORES ADICIONALES POR OTRO MEDIO TRANSCURRIDA UNA SEMANAEL SITIO CONTINUA INACCESIBLE SE UTILIZARA LA MEMORIA INTERNA O BIEN EL MONITOR SERIAL. 11/02/13 SE CONTACTA TELEFONICAMENTE AL PROVEEDOR Y SE COORDINA UNA VISITA PARA RETIRAR LOS PRODUCTOS ADQUIRIDOS. LA DOCUMENTACION ES ENVIADA POR CORREO ELECTRONICO ADAPTAR LAS LIBRERIAS DISPONIBLES PARA ARDUINO A DUINOBOT PONZOJ SI NINGUNA
Puede agregar este documento a su colección de estudio (s)
Iniciar sesión Disponible sólo para usuarios autorizadosPuede agregar este documento a su lista guardada
Iniciar sesión Disponible sólo para usuarios autorizados(Para quejas, use otra forma )