1 A Methodology for the Development of Robot Software Architecture (MDASR) Nelson de J. Londoño Ospina. Abstract— The Methodology for the Development of Robot Software Architecture (MDARS) follows the most significant concepts and standard languages in all the stages of the process of development (Specification, Analysis, Development, Implementation, Validation and Testing). In this paper, basic steps are presented in a graphic representation as well as the methodology, which is exemplified in a proposal of representative architecture giving support and enlightening every stage. The methodology is grounded on software engineering paradigms by applying methods and languages widely accepted by the scientific community. Key words— Robot Architecture, Software Engineering, Unified Modelling Process, Software Development, Software Methodologies. I. INTRODUCTION Robot software architectures [1]-[8], strategies and approaches to achieve proper operation, set of sensors, actuators and processing hardware [9]-[15], are currently extended fields of study that enhance and uphold the science of Robotics. The particular complexity and inconveniences of these systems along with the large variety of approaches and representations of Control Architectures, especially when it comes to “Mobile Robots”, have hindered communication and understanding of those not directly involved in the subject, and obstruct the interrelation between the engineer proposing the architecture (robotics engineer) and the engineer who applies the architecture (commonly a software systems specialist). Such pitfall in communication is clearly noticeable given the variance of experiences and languages handled by every expert. These problems prompted a research project proposal to assess different alternatives aimed at overcoming the encumbrances between conception, representation and development of these systems. Through the analysis of multiple approaches of representation, conception methods and development techniques, a need to underpin the process in the proper paradigms of software engineering [16]-[27] became evident; specifically, as regards methodologies and methods applied to develop a software system with high complexity levels [22], [28]-[34]. In fact, this provides systematic procedures and fully-grown representation languages for the design and development of Robot Software Architecture, which give support to a methodology of systems conception, design and validation. The “Unified Process of Software Development”[34] suggests guidelines and procedures enclosed within the Object-Oriented Concept, based on (UML) [35]-[40]. It was adopted as the cornerstone of the proposal, accompanied by typical elements of software engineering and applied on the specific case for Control Software of Mobile Robots. II. MDASR MDASR (Methodology for the development of Robot Software Architecture), follows the paradigms of Software Engineering, which are based on the assembly of interrelated steps that capture the main features of the system and its environment [17], [18], [19], [22], [37], though defined and applied to the issue of Robot Software Architecture. As any methodology, this is a systematic process that benefits the development of said architectures. MDASR involves, the vast majority of stages in developing a project, provides the operation and speed up its conception, analysis, design, implementation and validation; it fosters and illustrates the use of an easy-tounderstand language and engages other actors in the process: - The robotics engineer, whose objective is to have a well designed system able to comply with the expected specifications and functional structure. - The computer engineer, who shall know the requirements in a basic language, in order to turn such requirements into a software program that shall comply with the customer’s demands. In Fig. 1, the general methodology outline is presented. Every single step to be considered in the development of Robot Software Systems is given herein. III. PROPOSED ARCHITECTURE In order to illustrate all steps as planned, which require at the same time a set of tasks and activities, an architecture involving many of the most recurrent elements in today’s architectural proposals, is taken as basis. In Fig. 2, a generic outline of this architecture is shown. 2 VISION GENERAL DEL SISTEMA “El Robot-Entorno” Preliminares: Entorno, Consideraciones, Arquitectura General Usuario Propósito Objetivo S.Actual S.Propuesto Requisitos(CU) ESPECIFICACION de la Arquitectura Usuario - Visión General del Sistema Robot - Arquitectura - objeto de desarrollo - Requisitos (Casos de Uso) Interfaz Usuario MODELO (CASOS DE USO) Arquitectura. Paquetes Sub-Paquetes Clases Modelo Anal ANALISIS Usuario Arquitectura Software Desarrollador - Sistemas o Paquetes Arquitectura Software - SubPaquetes y Subsistemas de Análisis - Identificar. Clases Análisis - Diagrama de Interacción DISEÑO MODELO DE ANALISIS Arquitectura Software para Robots Desarrollador - Nodos - Sistemas y Subsistemas - Casos de Uso Diseño - Clase (diagrams) Arquitectura Clases/Objeto s Modelo Clases Diseño Clases MODELO DE DISEÑO Arquitectura Software IV. APLICATION OF METHODOLOGY Having as starting point the architecture proposed by the robotics engineer, all the steps shown in Fig. 1 are illustrated in this section, thereby it is expected to provide a general development overview as suggested by MDASR. A. System Overview The first stage deals with a general feature identification which shall rule the software architecture. These features are: hardware system, operation environment, tasks to be completed, special considerations, general architecture. B. Specification The specification of requirements stage is outlined in the diagram of Fig. 3. This proceeding is subject to the characteristics required on each case, and might be extended or modified. ESPECIFICACION de la Arquitectura -Hardware - Entorno - Tareas -Consideraciones especiales IMPLEMENTACION Desarrollador - Clases, - Componentes - Empaquetar - Dependencias Usuario Visión General Del Sitema Robot ARQUITECTURA SOFTWARE - Propósito - Alcances - Objetivo Especificación del Problema La Arquitectura como Objeto de Desarrollo - Plataforma utilizada Estado Actual Del Robot - Identificación - Descripción - Modelación Requisitos - Requisitos no funcionales Arquitectura Software Propuesta Fig. 1. MDASR General Diagram Panorama General de la Arquitectura Conocimiento Aprendizaje Captura de requisitos Identificar y Definir Actores INTERFAZUSUARIO Describir Requisitos Identificar y Definir Casos de Uso MODELO CASOS DE USO PLANIFICADORGLOBAL (Planificador Misiones) S I S T E M A MODELODE ENTORNO C O N T R O L Diagramas de Casos de Uso PLANIFICADORLOCAL (Control Alto Nivel) (Navegación) (PilotajeEurísticay Experiencia) 1) Purpose of the System The purpose of the system intended to be developed is to implement a software architecture to control a mobile robot with different modes of operation: Remote Controlled, semi-autonomous and autonomous, involved in unknown static environments and running in a PCcontrolled Kephera [41] robot. SUPERVISOR YGESTOR DECOMPORTAMIENTOS (Control medio) (Subsistema MotorAuRA) Diagnóstico Recuperación CONTROLREACTIVO S E N S O R I A L Detalles de Casos de Uso Fig. 3. Specification Flowchart Conocimiento Aprendizaje S I S T E M A Requisitos No Funcionales INTERFAZ/ACTUADORES EXPERTICIA SISTEMASENSORIAL (PercepciónEncontrar Onstáculo, Referencias, caminos) SISTEMA ACTUADOR ESTADOINTERNO (Sitemahomeostático) ENTORNO Fig. 2. Proposed architecture 2) Current System Within the framework of the above-mentioned methodology, that the architecture intended to be developed shall be implemented on a basic robot platform must be assumed, thus making relevant the identification, during this stage, of the system characteristics by giving details of both software and hardware. This information is commonly available in the user’s manual or in the technical information of the robot. It is suggested to represent its characteristics supported in a UML scheme. In Fig. 4, the characteristics of the Khepra system represented on UML are presented. There both the Robot system and the corresponding actors that interact with the system are specified. 3 Almacenar TrayectoriaTarea Cargar Parámetros PC <<Include>> Mostrar Sensores Interfaz de Usuario-PC <<Include>> Interfaz Puerto Usuario Usuario Mover Robot <<Extend>> Eject.Modo Manuel Leer Sensores <<Include>> <<Extend>> <<Extend>> Eject.Modo SemeiAutom <<Include>> Robot Eject.Modo Automnomo <<Include>> Interfaz de Usuario-Robot Interfaz sensor/ actuador Robot Mover Motores Entorno Fig. 6. Use Case Model of the Software Architecture for Mobile Robots Control Básico Base de Datos d ) Use Case Analysis The use cases specified in the previous section are herein closely described. For this purpose, a form to describe its operation and functional relationship with every actor involved or use case of the system is provided. Operaciones y Procesos Fig. 4. Current Model 3) Requirements Capture a) Description of "Software Architecture" The “Control Arquitecture” allows the robot to move in response to an order given by the operator. It shall allow functioning in any of the three basic operation modes, selected via interface: autonomous, semi-autonomous, remote controlled (manual). In fig. 5, the architecture wished-for to be implemented is presented. This is the first description that widely identifies the architecture and its relationship with the environment and user (Actors). e ) Use Case Refinement To identify use cases that require specifications with a higher degree of detail is common in the general use case model. In fact, this entails checking of every single use case. On that account, it is important to identify those use cases comprising a more general scope. To set an illustrative example, the use case “Ejecutar_Modo_ Manual” is presented: - Use Case: Execute Manual Mode (Remote Controlled) Manual mode requires a series of functions and services captured as use cases. Such proceeding shall be developed following the foregoing procedures. Robot Usuario Entorno Ecuaciones <<Extend>> Interfaz de Usuario Interfaz Actuadores Interfaz Sensores Estrategias de Control Modelos de entorno <<Extend>> <<Extend>> <<Extend>> Captura manual Leer Sensores <<Include>> <<Extend>> Robot Mover Robot Base de datos Otros Algormos <<Extend>> Otros métodos Almacenar trayectoria Modelos Perifericos Tablas <<Include>> Mover Motores Usuario <<Extend>> ARQUITECTURA SOFTWARE Fig. 5. Representation of Software Eject.Modo Manuel <<Extend>> <<Extend>> Paro Normal <<Extend>> Para Emergencia <<Extend>> Moverse Velocidad <<Extend>> b) Identification of Actors The actors are institutions, individuals or Software/ Hardware elements interacting with the system. A categorization of actors is given in detail and some others that were not previously considered are identified. c ) Use Case Models The use case model is the resulting product after a close evaluation of the functions and services that the architecture shall offer. It is summarized in a UML diagram which provides a first overview of the system specification. Fig 6 relates the general use case diagram of the proposed architecture Iniciarl Moverse Posicion Fig. 7. Use Case: “Execute Manual Mode” (Remote Controlled) Fig. 7 shows the final product and use case model obtained through the specification of “Use Case: Ejecutar_ Modo Manual”. 4 C. Analysis The second stage involving MDASR methodology, after having been specified, suggests the analysis of the system to be developed, and the identification of the general solution. Fig. 8 outlines the steps suggested in the MDASR for this stage of the analysis. 1) Analysis of the Software Architecture (First Level of Detail). Being the development methodology inspired in the PUD, both the analysis and the specification stages shall be iterative and incremental. A first analysis of the general solution is suggested on the first stage. Subsequently, through consecutive iterations, repeat the specification and analysis steps to architectural specific packages. are presented as a preliminary solution to the system to be developed. A more detailed examination of each of the packages previously proposed requires inspection of the subpackages comprising the above-mentioned ones, following, likewise, a process of analysis and evaluation based upon use cases. InterzaUsuario SistControl BaseDatos SistMotori SistSensor ESPECIFICACIÓN ANALISIS Arquitectura Software - A partir de los Casos de Uso Sistemas o Paquetes Arquitectura Software SubPaquetes y Subsistemas de Análisis: - Identificar - Relación y - Dependencia) Identificar. Clases Análisis A partir de Subsistemas A partir de Caos de Uso Diagrama de Interacción MODELO DE ANALISIS Arquitectura Software para Robots Análisis de Clases Fig. 10. - Control architecture, packages and their interrelation. - Responsabilidad - Atributos - Asociaciones Agregaciones - Generalización Fig. 8. Analysis Flowchart Diagram a ) Identification of the architecture systems Analysis packages - Based on the system specification, through use case models, the analysis packages that implement the use cases are identified and classified according to their features and functionality. -Control Systems As a response to the case “Mover_ Robot”, an analysis package that implement the basic control functions is detected. In Fig. 9, the package named as “SistControl” is shown. Control System - RefinementA second iteration allows greater details of packages that apply more specific use cases, such as the subpackage “Deliberative Control”, which puts into effect the use cases shown in Fig. 11 corresponding to the refinement of the "SistControl” package. A diagram of the Control System and its interrelation is presented in Fig. 12 as a consequence of the analysis of every single subpackage identified. Ejecutar Modo Deliberativo CDeliberativo Supervisar y gestionar tareas Procesar modelo de entorno Planificar trayectoria SistControl Mover Robot Ejecutar Modo manual Planificar trayectoria local Ejecutar Modo Semi-autónomo Fig. 11. Use Cases “CDeliberativo” Ejecutar Modo Autónomo Fig. 9. Package “Sistema Control” b) Definition of general packages (Subsystems) and their interrelation After a close identification, definition and analysis of the analysis packages that implement all the use cases, a pattern of analysis of the general system is obtained (Fig. 10), where the packages conceived and their interrelation 5 Sistema_Controli process, on which the different uses cases required to implement the above-mentioned use case have been detailed and justified. The scheme shows the diagram globally, however every single one of the cases has passed through a detailed and more specified process of specification, description, identification, analysis and particular refinement resulting in a comprehensive description of all the use cases required by the system. Gestor_Su pe rv_ Tarea s CDeliberativo CCompo rtam iento s CReactivo Activar/Desactivar_ Modo _Reactivo Comand os_Ba sicos Tomar Info_Sensor es <<Extend>> <<Extend>> Fig. 12. Relationship diagram, package elements of ControlSystem <<Include>> Evaluar_Info _Sensorica Seguridad Evaluar comportamiento _a_ Activar Preventivo <<Extend>> <<Include>> Leer Sensores <<Include>> Activar_ Comportamiento Rectiva Desbloqueo <<Extend>> <<Extend>> <<Include>> Evaluar 2 ) Analysis of Architecture Subpackages (Second Iteration) <<Extend>> Ejecutar tarea <<Include>> During a second iteration, execution of the same previous proceedings is suggested for those packages that might be handled as systems almost independent. A representative example of this occurrence is the reactive control system, which might be considered as an independent system (Architecture), and therefore, a complete inspection of all the steps proposed including a detailed specification of the system is accomplished. a ) Specification of Reactive Control Subpackage System Overview Fig. 13 shows, from the standpoint of the Robotics engineer, an overview of a system on which a “Reactive” control architecture has been created and implemented on a predefined robot (Khepera). Navegacion Calcular_ Acion_Motores <<Extend>> Eject.Modo Automo Gestion_ Fallas Usuario Robot <<Include>> Gestion_ Alarmas Mover Robot Mover Motores Fig.15. Detailed Use Case Diagram “Ejecutar_ Control_Reactivo”. b ) Subpackage Specification: Deliberative Control. To illustrate another example, the deliberative control is implemented by using inclusion relationships along with more specific use cases such as those detailed in Fig. 16. Almacenar Trayectoria Planificar <<Include>> Definir trayectoria Deliberativo Inicio Paro Comportam. Estado Motores <<Extend>> Control Reactivo Sensores <<Include>> RePlanificar Ejecutar Tarea Robot Dividir en Subtareas <<Extend>> Evalaur Estado Actual <<Include>> <<Extend>> Eject.Modo Automo Usuario Almacenar Traect-Local Usuario Fig. 13. Reactive Control System The generic use case diagram, a product of the process of specification of the proposed reactive control system is shown in Fig. 14. The actors and their corresponding use cases are clearly identified thereby conceiving the new system (Reactive Control Architecture) as a process of software development nearly independent. Robot Mover Robot <<Include>> Mover Motores Fig. 16. Detailed Use Case Diagram implementing “Deliberative” c ) Analysis of Reactive Subsystem In a second iteration, identification of packages and subpackages of all the systems created during the process shall be done. For instance, Fig. 17 illustrates an analysis diagram, the “Navigation System”, which corresponds to a subpackage identified in the Reactive Control, from the use cases that it implements. Ejecutar_Rectiva <<Include>> <<Include>> Leer Sensores Usuario Mover Motores Robot Fig. 14. Use Case "Ejecutar_Control_Reactivo" - Use Case "Ejecutar_Control_Reactivo" After a refinement process of the use cases identified on the previous stage, a more detailed diagram is obtained in Fig. 15. This type of diagrams results from a prior specification 6 Desbloqueo Ejecutar_comporta mietnos_navegación Sist_Navegacion Ejec_Comp_ Braitenberg Gesto_ Desbloqueo Estados_ Sensores_ Requeridos Ejec_Comp_V argar-Explorar Ejec_Comp_ Seguir Trayectoria … … … Fig. 17. Identification of the analysis package "Sist_Navegacion" from its use cases Algoritmo_ Bordea_Muro Algoritmo_ Salir_Zonas _ Muertas Fig. 20. Unblock Subpackage ClassModel Similarly, the other system packages of the reactive control are introduced, which, obviously lead to package architecture proposals as shown in Fig. 18. . e) Model -Analysis- “ Reactive Control Software Architecture” 1:Orden Seguir muro :Operador 2:Iniciar Seguir muro Seguir muro 13:Set Point Motores 13:Set Point Motores Inte rfaz Motores (n) Generador Set Poin Motores 3:C alcular dirección Sistema_Control_Reactivoi 12:Valores Limite) 11:Leer Valores límite 10:Nueva consigana (Dirección y ángulos) Sist_Navegacion Otros Sist_Desbloqueo Sist_Preventivo Velocidad consigna 5:Leer Sensores Proximidad 4:Hay cambio de estado? Sist_Seguridad Algoritmo Seguimiento muros 9:Hay cambio de estado E valuar sensores 7:Lectura Normalizada 6:Valores Leídos Interfaz_ Sensores Sensores 8:Loop Evaluar hasta Cambio de estado Fig. 18. Architecture through Reactive Control System Packages (a). Flowchart of occurrence-Track Wall (Normal Condition) 12:Iformar estado bloqueado 1:Orden Seguir muro :Operador Seguir muro 13:Set Point Motores 11:Parara motores Inte rfaz Motores (n) Generador Set Poin Motores d ) Identification of Classes Founded on the packages and subpackages defined in the latest iterations of the previous control system, a series of Classes executed by every single one of these is suggested. - Reactive Control The reactive control, defined as a set of packages supporting this control structure, might be suggested as a model of Classes executed by each one of these packages. In Fig. 19 and 20, this item is illustrated by subpackages “Navigation” and “Unblock”. Each one of these Classes must be defined and detailed by giving its features and functionality within the general design of the package. Either text, chart, sketch, or diagram may be useful to such purpose, e.g. a description of the Classe “Bordear_muro” is presented in Fig. 21. It shows the flowchart of occurrences and events that must be implemented by this Class. Navegacion Gesto_ Navegación Algoritmo_ Evadir Algoritmo_ Ir_a_Onjetivo Estados_ Sensores_ Requeridos Algoritmo_ Seguir trayectoria Algoritmo_ Vagar/Explorar Otros Fig 19. Navigation Subpackage ClassModel 3:C alcular dirección 10:Sistema Bloqueado) 5:Leer Sensores Proximidad 4:Hay cambio de estado? Velocidad consigna Algoritmo Seguimiento muros 9:Hay cambio de estado Evaluar sensores 7:Lectura Normalizada 6:Valores Leídos Interfaz_ Sensores Sensores 8:Loop Evaluar hasta Cambio de estado (b). Flowchart occurrences- Track Wall (Blocking Condition) Fig. 21. Interrelation and flowchart of occurrences. “Seguir_Muro” The analysis model of the robot system is illustrated in Fig. 22. There, each one of the Classes of the system is identified and the reactive control software architecture ensuing from the previous analysis is highlighted. Every single one of the Classes shall be reviewed in detail and presented in such a way that it must provide identification of its function and interrelation with the system. Due to the restrains of this paper, previous processes are not detailed, however they are clearly explained in the methodology. All the elements identified in the architecture (packages and subpackages) shall be closely specified and subject to strict analysis. During this stage, active involvement of both robotics engineers and computer engineers shall be interactive and well recorded. 7 Experticia Mapas Mapas Modelo Sensores Modelo Parámetros Parámetros Actuadores Robot Tareas Interfaz Usuario Modos de Control y Tareas Acople Gestor_Base_Datos IU I_Inp Gestor_ Supersor_ Tares Planificador Local Seguimiento_ Objeto Gestor_ Comportamiento I_Out Interprete_ Comandos Modelo Entorno Supervisor_Gestor Comportamientos Arrastre :Operador Planificador Global Objetvo Control Reactivo Estado Actual Busqueda_ Objetivo Planificador Otros Interfaz_Sensores Sistema Sensorial Interfaz Actuadores Evaluador_ Planificad_ Sistema_ Trayectoria Local Localizacion Sensores Algoritmos_ Especiales Control_ Reactivo Comandos Básicos Librerías SistemaControl del Robot Comandos Robot Interfaz_ Motores Capa Intermedia de Aplicación Motores Navegación Preventivos Desbloqueo Seguridad Evadir_ Obstaculos Evadir_ Abismo Sensores Capa Hardware del Sistema Vagar Seguir_ Evadir_ Muro Ostáculo Paro_ Emergencia Actuadores Fuga Seguir_ Trayectoria Fig. 25. Software Architecture –Levels of Abstraction- Ir_Zona_ Libre Salir_Zona_ Muerta Giro_ Emergencia Ir_a_ Objetivo Pasar_Zona_ Estrecha Fig. 22. Illustrating a Model of Classes of a Software Architecture for Robots Control Control Reactivo Navegación Seguridad D. Design DISEÑO Casos de Uso Diseño Identificación Sistemas y Subsistemas Identificación Nodos Subsistemas Desbloqueo Diagramas de Secuencia Identificar Clase Preventivos Estados Métodos Interfases Diagrama de Clases Diseño de Clases Atributos Dependencias Operaciones Modelo de Diseño Fig. 26. Subsystems of “Control_Reactivo” Fig. 23. Design Activities The steps suggested in MDASR for this stage of the Design is summarized in Fig.e 23. On the subsequent sections, brief descriptions of these steps are presented, highlighting the graphic charts as suggested by the methodology. c ) Refinement of the Solution Continuing with the example of reactive control, refinement of the solution implies to define a set of Classes as shown in Fig. 26, which in turn is to be split in accordance with the results obtained in previous stages (Fig. 27). Navegación 1) Architecture Design a ) Nodes Identification Two nodes conceived for the proposed architecture are presented graphically in Fig. 24. PC Usuario PC / µ p Robot Usuario Vagar Robot Zonas_Libres Seguir_Linea Atraccion_ a_Punto Arrastrar_ Objetos Fig. 24. Nodes configuration of the robot system b ) Subsystems Identification A diagram of proposed packages is presented in Fig 25 whose purpose is to identify clearly the packages and Classes to be defined in the Design stage. Fig. 27. Subsistemas de “Navegación” d) Identification of Subsystems Interfaces Visibility and interrelationship among Classes for particular cases of the designed system are presented in Fig. 28 and 29. 8 :Teclado :Pantalla :Parametros Arrastrar_Objetos :Seguir_ Muros :Calculo_ SetPoint :Procesad_ Sensores :Procesad_ Motores :Gestor_ Alarmas Orden Segumiento Leer sensores Proximidad Estado Sensores Leer_Distancia_Límite Arrastrar Evalua (no critico) Fig 28. Object Interface Representation Define dirección y ángulo Control Reactivo Valores consigan para cada motor Seguridad Navegación Paro_Emergencia Giro_Emrgencia Comandos Básicos . . Comandos Básicos . . . Fig 31. Sequences Diagram “SeguirMuro” Comandos Básicos f ) Classes of Design Model Preventivos Seguir_Muro Desbloqueo Zonas _Libres Evadir . . Fig 29. Interfaces “Relationship between Subsystems and Classes” The general design process concludes with a clear definition of Classes, their interfaces and essential relationship for the subsequent stage, where full understanding of the solution proposal (software architecture) is required. . Modelo_Entorno Supervisor_Gestor_ Comportamientos Interfaz_Usuario Planificador_ Global e ) Objects- Classes Design Classes and objects of the system might be identified from the use cases, and once more based on previous analysis. Identification - Classes of design by Use Cases is shown in Fig. 30 as an example of this step. An example of a sequence diagram leaned on a previous one as seen in the analysis stage is presented in Fig. 31. Pantalla Botones Comandos Teclado Estado_Actual Control Reactivo Sistema_Sensor Seguridad Preventivo Desbloque Navegacion Sistema Actuador Sensor_Infraroj o Sensor_Ultraso Sensor_.... Seguir Muro Seguir_Muro N-Aleatoria Atracción_Punt o Ir-Z_Libre Seguim_Muro Teclado Fig. 32. Diagram Example of Classes of Robot Software Architecture Pantalla Gestor Alarmas Botones Comandos Procesador_Mo tores Parametros Procesador_Sen sores Seguir_Muros Calculo Set Poin Fig. 30. Identification of Classes that intervene in the Use case “Seguir_Muro” Analysis model corresponding to the control architecture proposal is shown in Fig. 32. Some of the Classes are presented there aimed at providing a close insight of the general scheme of the architecture. As a subsequent step suggested in the chart of Fig. 23, the corresponding design of every Class shall be carried out detailing their own features, methods and characteristics. D) Implementation and Testing The general scheme proposed in the methodology MDASR for the stages of architecture implementation connected to the programming language selected and the steps to be followed in the test stage of the final software is presented in Fig. 33 and 34. 9 -Ficheros Fuente -Ejecutables Interfaces -Paquetes IMPLEMENTACION Implementar Clases Empaquetar componentes Componentes - Organizar - Definir dependencias Fig. 33. Diagram of activities proposed for “Implementation” of Control Software Architecture. -Modelos -Casos -Procedimiento -Componentes -Evaluación PRUEBA Planificar Describir casos Diseñar Describir e identificar procedimientos Implementar De integración Del Sistema Evaluar Fig. 34. Diagram of activities proposed for “Testing” V. CONCLUSION The Methodology for the Development of Robot Software Architecture (MDARS) has been conceived as a tool to shorten the communication gap existing between the actors involved in the process, such as the robotics engineer and the computer engineer. It has become an essential tool in the development of Robot Software Architectures. The methodology that allows specification, analysis, design and implementation of Robot Software Architecture leads the development stages of mobile robot systems in a natural way, which, due to their complexity, require identification of systematic processes that may be of any help when facing troubles emerged between the representation proposed by the robotics engineer, and the implementation itself, which is the task of the computer engineer. In order to exemplify one of the troubles, the following suggestion is given: given a basic robot, work in the development of a complex system that may satisfy the needs of the different actors by maximizing all the strengths of those experts involved in the process: the final user, who defines the problems intended to be solved; the robotics engineer, who defines the most accurate strategy, and the software engineers, who assist the design phase and implement the final system. Despite the fact that the design and development of robot architectures is a relatively mature process, identification of standard procedures to tackle such problem turned out to be a more complicated problem than expected, as great amount of tendencies and approaches emerged from knowledge engineering and methodologies of representation, conception and languages that offer parcial solutions to this issue. Since MDASR rely on the strategies of software engineering, and particularly, in the PU, it has proven to be a good choice to accomplish the goal proposed due to its intelligibility and standarization of all the aspects involved in the development process (Specification, Analysis, Design, Validation, Testing). In order to illustrate the methodology, a software architecture that may ensure its functioning in three operation modes (manual, semi-autonomous, autonomous) is presented. As a result, most of the typical applications of mobile robot systems are covered. After conceptual constraint prompted by hardware characteristics and purposes of the robot, the methodology process proposal is then illustrated with the purpose to present clearly every single one of the steps and methods through a standard language (UML). The stages considered of high relevance are explained in further detail in order to achieve a more solid and fluid communication between the robotics engineer (who proposes and defines the architecture) and the team in charge of developing in fact the software system itself (who implements the system). For that reason, the systematic process is detailed in the specification stage stressing on the needs and expectations proposed in the architecture. Likewise, the analysis stage implies a closer involvement between the robotics engineer and the engineers in charge of software development, since the conceptual solution of the architecture is grounded on this stage, thus allowing a more immediate participation to those engineers involved by using, both of them, the right and easy-to-follow charts, diagrams and languages. During the design stage, the stress lays on the presentation of charts and diagram oriented towards the interests of the software engineer, and thus, Classes and packages identification make use of a more software-like language. The elements introduced as examples of such stage are conceived to illustrate the concept. They require, however, an exhausting development, which implies a more specific and specialized team work. Although the implementation and testing stage are assumed in the methodology, they also require participation of specialists and the application of a programming language consistent with the needs and characteristics of the architecture. VI. REFERENCES [ I ] Brooks, Rodney. "A Robust Layered Control System for a Mobile Robot". IEEE Journal of Robotics and Automation, Vol. 2, No. 1, March 1986, pp. 14-23; also MIT AI Memo 864, September 1985. [2] Brooks, Rodney A. "Elephants don't Play Chess". Robotic andAutonomous Systems 6. 1990. [3] Arkin, Ronald C. "The impact of Cybernetics on the Design of a Mobile Robot System: A Case Study". IEEE Transactions on System, Man and Cybernetics. Vol. 20. N° 6. 1990. [4] Ridao, P.; Batlle, J.; Amat, J.; Roberts, G.N. "Recent trends in Control architectures for autonomous underwater vehicles". InternationalJournal of Systems Science, vol. 30. No 9, pags.1033-1056, Sep. 1999. http://eia.udg.es/~pere/publicacions.htm. [5] Ridao P., Carreras M., Batlle J., Amat J. "O2CA2: A New Hybrid Control Architecture For A Low Cost AUV". Control Application in Marine Systems CAMS'2001. Scotland (UK), 2001. http://eia.udg.es/~pere/publicacions.htm. [6] Vilchis, A.; Troccaz, J.; Cinquin, P.; Masuda, K.; Pellissier, F. "A New Robot Architecture for Tele- 10 echography". IEEE Transactions on Robotics and Automation, , Volume: 19, Issue: 5, Year: Oct. 2003. pp. 922- 926. [7] Lopera Luís. "Arquitectura de Navegación, Planificación y Supervisión para un Dirigible no Tripulado". Master Thesis, Universidad de los Andes, Bogota, Colombia, 2005. [8] Dongqing, shi. "Aerial Robot Navigation in Cluttered Urban Environments". PhD Thesis, The Florida State University, 87pp, Florida, EEUU. [9] Surla, Dusan; Konjovic, Zora; Rackovic, Milo. "UML Specification of the System for Gernerating Simbolic Models of Robotic Mechanism Dynamics". 13th ISPE/IEE International Conference on CAD/CAM, Robotics / Fabricatories on the Future - Pereira 1997. [10] Bryson, Joanna; McGonigle, Brendan "Agent Architecture as Object Oriented Design". Laboratory for Cognitive Neuroscience and Intelligent Systems, Edinburgh University, Edinburgh EH8 9JZ, UK, 1997. [11] Muñoz L., José L. "Control en Robótica Móvil. Arquitectura y Metodología". PHD Thesis. Universidad de Murcia. Industrial Automation, Electricity and Electronics Department. 1998. [12] Londoño O, Nelson; Tornero, Josep, "Análisis de la Metodología HOOD para la Implementación de Arquitecturas Aplicadas a Robots". VIII Latinamerican Congress on Automation Control, Viña del Mar, Chile, Nov. 1988. HOOD_Afrb.doc [13] Montano, Luis; Garcia, F. José; Villa, José. "Using the time Petri Net Formalism for specification, Validation and Code Generation in Robot Control Applications". Universidad Zalamanca - Universidad la Rioja, Jul, 1999. [14] Drake, José M.; Medina, Julio L. "Robot Teleoperado:Ejemplo UM-Mast". Grupo de computación y tiempo Real, Universidad de Cantabria. 2001. Available on the Web: <http://mast.unican.es /umlmast/ umlmast-example.pdf>. [Last access on Feb. 2009]. [15] Hornby, G.S.; Lipson, H.; Pollack, J.B. "Generative representations for the automated design of modular physical robots" IEEE Transactions on Robotics and Automation. Volume: 19, Issue: 4. Aug. 2003. pp 703719. [16] Farley , Rochard.st "Software Enguneering Concepts". McGraw-Hill, 1 ed. 1987. [17] Sommer, Ian. "Ingeniería de Software". 2a Ed. Addison WesleyIberoamericana. 1988. [18] Cerrada, J. A. y Collado, M. "Introducción a la Ingeniería del Software". UNED, 1995. [19] Sommerville. I. "Software Engineering". AddisonWesley: Reading, MA, 5th edition, 1995 [20] Pressman, Roger S. "Software engineering". IEEE Computer Society, 1997. pags. 57-74. [21] Zavala R. 2000. "Diseño de un Sistema de Información Geográfica sobre internet". Tesis de Maestría en Ciencias de la Computación. Universidad Autónoma Metropolitana-Azcapotzalco. México, D.F. [22] Brengge, Bernard; Dutoit, Allen H. "Ingeniería de Software Orientada a Objetos". Pearson Educación,, Mexico, 2002. [23] Silva, Darío Andrés; Mercerat, Bárbara. "Construyendo Aplicaciones web con una metodología de diseño orientada a objetos". http://www.unab.edu.co/editorialunab/revistas/rcc/pdfs/r2 2_art5_c.pdf. [24] Farley , Rochard. "Software Enguneering Concepts". McGraw-Hill, 1st ed. 1987. [25] Giret Boggino, Adriana. "Anemona: Una Metodologíia Multi-Agentepara Sistemas Holónicos de Fabricación".PHD Thesis, Universidad Politécnica de Valencia; Valencia, Spain. July 2005. [26] Software Engineering Institute. Available on the Web: <http://www.sei.cmu.edu/>, [Last access on July, 2009]. [27] The Rational Edge. Available on the Web:<http://www.therationaledge.com/>, [Last Access on July, 2009]. [28] Douglass, Bruce Poewl. "DOING HARD TIME. Developing Real-Time Systems with UML, Objects, Frameworks, and Patterns". Addison- Wesley, 1999. [29] Rumbaugh, J. Et al. "Object Oriented Modeling and Design". Prentice Hall. 1991. [30] Jacobson, I.; Christerson, M; Jonson, P; Overgaard, G. "Object Oriented Software Engineering - A Use Case Driven Approach". Addison-Wesley, Reading, 1992. [31] Booch, Grady. "Object Oriented Analysis and Design". 2nd ed. Benjamin Cummings 1994. [32] OMG "Unified Modeling Language Specification. Retrieved" March 18, 2003. Available on the Web: <http://www.omg.org/technology/documents/ formal/uml.htm>, [Last Access on March. 2009]. [33] Shalloway, Alan; Trott, James R. "Design Patterns Explained: A New Perspective on Object Oriented Design". 2a Ed.Addison Wesley Professional, 2005. [34] Jacobson, Ivar; Booch, Grady; Rumbaugh, James. "El Proceso Unificado de Desarrollo de Software". Adison Westley. 2000. [35] Booch, G; Jacobson,, I y J. Runbaugh. "El Lenguaje Unificado de Modelado". México : Addison Wesley, 1999. [36] Rumbaugh, James; Jacobson, Ivar; Booch, Grady. "El lenguaje Unificado de Modelado, Manual de Referencia". Racional Software Corporation. 2000. [37] Booch, Grady; Rumbaugh, James; Jacobson, Ivar "The Unified Modeling Language User Guide" 2nd Ed. Addison Wesley Professional. 2005. [38] OMG "Unified Modeling Language Specification. Retrieved" March 18, 2003, from <http://www.omg.org/technology/documents/formal/ uml.htm>. [39] European Space Agency, HOOD Working Group, "HOOD Reference Manual". Issue 4.0, 1995. HOOD, User Group. "HOOD User ". Issue 1.0, 1996. [40] K-Team. Available on the Web: <http://www.kteam.com/kteam/home.php>. [Last access on. 2009]. VII. BIOGRAPHY Nelson Londono Ospina was born on July 31, 1955, in Medellin, Colombia. He is an Electronics Engineer graduated from Universidad de Antioquia (University of Antioquia) of Medellin, Colombia, who has practiced his profession as a Maintenance and Design Engineer in different companies throughout the country (Colombia). At present, he is an Associate Professor of Universidad de Antioquia in the electronics, automation and control fields of the Electrical Engineering department. Engineer Londono Ospina is a member of the Electric Power Efficiency Research Team- GIMEL (Grupo de Investigación en Manejo Eficiente de la energía Eléctrica GIMEL), and is in charge of the automation and robotics area. He has also been a member of research projects carried out with some colleges in Colombia. He has completed doctorate studies at Universidad Politecnica de Valencia (Spain) and is currently studying at Universidad del Valle (Colombia).