Resumen Desde el siglo pasado el ser humano ha perseguido el sueño de construir un robot autónomo y con una gran disponibilidad en su funcionamiento capaz de realizar tareas inteligentes similares a las de los humanos para hacer la vida de estos más sencilla y placentera. Movidos por el afán de construir un robot autónomo, los primeros proyectos de robots móviles datan de los años 70’s si bien las técnicas disponibles en aquellos momentos no permitían alcanzar las perspectivas creadas inicialmente. Fue a comienzos de los 80’s cuando la investigación en este campo volvió a tomar especial auge. En la actualidad, sin haber alcanzado el objetivo de construir robots móviles personales totalmente autónomos, se han logrado grandes avances en este campo. En la mayor parte se trata de prototipos elaborados por universidades que pasan a ser parte de la industria en robótica para su posterior comercialización. Algunas compañías como Honda que ha destinado grandes sumas a la investigación en este campo actualmente ya ha desarrollado robots muy complejos que están siendo utilizados en la industria automotriz, en el área de la construcción, en la minería, en aeronáutica, en recate, en la agricultura, en el sector médico, exploración en el planeta Marte, etc. Los desarrollos en robótica indican que en la próxima década existirá toda una nueva industria referente a esta nueva tecnología, ya que los robots serán artículos de uso común tal como ha sucedido actualmente con las computadoras. Esta situación, conlleva a la necesidad de construir robots altamente disponibles y confiables, por lo que es imperativo incluir en su diseño un sistema tolerante a fallos. Este trabajo se centra en tolerar los fallos a nivel hardware y software en el sistema de control de un robot móvil, de tal manera que la supervisión, detección y recuperación de fallos se implementa independientemente al sistema de control y la plataforma en la que se desarrolla el robot. Esto se logra mediante el diseño de una arquitectura tolerante a fallos implementada con un Sistema Multiagente (MAS). Este sistema lo integran un grupo de agentes encargados de la detección y diagnóstico de fallos. La arquitectura tolerante a fallos está integrada por dos tipos de agentes principalmente los que se encargan de detectar y recuperar fallos a nivel de software (tareas) y los encargados de tolerar los fallos a nivel hardware (sensores, actuadores, memorias, controladores de red, microcontroladores, etc.). Estos agentes tolerantes a fallos ejecutan los mecanismos tolerantes a fallos de una manera muy simple haciendo acopio de una de sus características que es la intercomunicación y cooperación entre ellos, pudiendo así: detectar, aislar, reconfigurar y tratar de recuperar a un componente ante fallos (a nivel hardware y software) que se presenten durante el funcionamiento de robot. Para poder desarrollar eficientemente la arquitectura tolerante a fallos propuesta fue necesario modificar la arquitectura de control a nivel software denominada 3+ integrada en el robot, así cómo la arquitectura física (distribuida compuesta por nodos, donde a cada nodo se le conecta como máximo 2 dispositivos ya sea de entrada y/o salida, cada nodo cuenta con un microcontrolador, y sus tareas de control, navegación y planeación). El SMA que constituye la arquitectura tolerante fallos propuesta, fue diseñada utilizando la metodología MaSE (Multi-Agent Systems Software Engineering) [DeLoach 2001] ya que su contracción esta realizada bajo modelos matemáticos bien definidos. El uso esta metodología para modelar el SMA nos fue muy útil ya que sirvió de guía en el desarrollo de dicho sistema, además nos permitió realizar la transición fácilmente de la fase de análisis a la fase de diseño, basándonos en los requisitos iniciales del sistema de una manera comprobable, eficiente, comprensible, sin ambigüedades y contradicciones. Se requirió realizar el análisis de las estructuras software utilizado en los robots móviles de tal manera que se seleccionó la denominada 3+ y se implemento el sistema desarrollado en este trabajo Haciendo una modificación en la tercera capa dicha arquitectura software, con la finalidad acoplar nuestro SMA tolerante a fallos, obteniendo un eficiente funcionamiento después de realizar las pruebas pertinentes en el simulador. Se investiga la teoría de los conjuntos difusos como una herramienta para el diagnóstico del sistema por medio de un árbol de fallos difusos. El objetivo es diagnosticar fallos en componentes por medio de la observación de síntomas difusos usando la información contenida en un árbol de fallos. Para la solución del problema se sigue un procedimiento en dos etapas. En el primer paso, se utiliza el razonamiento causal para diagnosticar los modos de fallo, que consiste en realizar el corte mínimo a los eventos básicos del árbol de fallos, la observación de las puertas accionadas son tratadas como síntomas. En el segundo paso, se identifican los componentes particulares que han fallado basado en los modos de fallo diagnosticados. Para realizar este segundo paso, la solución es mediante una ecuación relacional difusa a = V-producto (alfa x del t de S/sup) conectando el modo de fallo a los eventos básicos derivados de x. Con este método, las ecuaciones del diagnóstico se pueden generar y solucionar simétricamente en términos de eventos básicos del árbol. Como último paso se diseño un simulador bajo la plataforma de JADE con la finalidad de probar y validar la arquitectura aquí propuesta. 1