65 research outputs found

    Anaconda: Diseño e implementación de un sistema mecatrónico de tipo serpiente con Matlab

    No full text
    La fisiología y los distintos modos de locomoción de las serpientes les permite desenvolverse con gran facilidad por distintos entornos. Su forma alargada y movimiento único les ofrece una gran capacidad para trepar y moverse por los terrenos más complejos, tales como marismas o tubos estrechos. El uso de las características de las serpientes en robots parece cada vez más relevante en la búsqueda de nuevos mecanismos de locomoción para ampliar las funciones que pueden desarrollar los robots. En este proyecto se desarrolla Anaconda, un robot de tipo serpiente de 8 módulos ligados por uniones de revoluta como se ve en la figura 0.1. La serpiente es capaz de desplazarse en una dimensión como consecuencia de la diferencia entre la fricción normal y la tangencial. La fuerza de propulsión del robot se genera al balancear sus articulaciones de lado a lado. Adicionalmente, Anaconda cuenta con una cámara delantera que detecta a través de algoritmos de Deep Learning el logotipo de MathWorks e intenta alcanzar la posición de este. El objetivo del proyecto consiste en mostrar las posibilidades que ofrecen las herramientas de MathWorks en las distintas fases de desarrollo de un proyecto, desde la implementación inicial de la idea hasta la simulación y visualización final del producto. El proyecto se centra en mostrar las posibilidades de la herramienta Simscape ya que ofrece la posibilidad de simular sistemas eléctricos, mecánicos, hidráulicos, etc., Se pretende incentivar tanto a profesores como a alumnos a usar las herramientas de las que disponen, mostrando como mediante modelos sencillos se puede desarrollar un robot como Anaconda. Otro de los propósitos del proyecto es introducir al alumno a conceptos novedosos como Deep Learning, la computación en paralelo y el procesamiento de imagen, campos que están en pleno auge y desarrollo. Estas tecnologías punteras permiten desarrollar aplicaciones como la aceleración de cálculos pesados, la detección de personas que entran en un establecimiento o el reconocimiento de matrículas de coche

    Chatbot emocional para un robot de asistencia personal

    No full text
    En este proyecto se propone mejorar y ampliar un Modelo Emocional ya existente para un robot de asistencia personal, así como implementar nuevos módulos que permitan una mejora del sistema de diálogo con el que cuenta el robot y, finalmente, integrar ambos módulos para que sean capaces de comunicarse entre ellos y ejecutarse simultáneamente. Por lo tanto, mediante la ampliación del Modelo Emocional se pretende conseguir una interacción natural con el usuario, que incluya tanto la simulación de emociones humanas como cierta proactividad por parte del robot. El modelo fue desarrollado por Lucía García Gómez-Escalonilla empleando lógica borrosa, que es una forma de representar la incertidumbre ontológica, es decir, de tratar información poco precisa. A diferencia de la lógica clásica, busca generar modelos que permitan al ser humano tomar decisiones aproximadas a partir de conocimiento incompleto o inexacto. Las proposiciones no solo son o totalmente ciertas o completamente falsas, sino que cuentan con cierto grado de verdad. El fundamento teórico empleado por Lucía es una la teoría desarrollada por la Dra. Gema Fernández-Blanco, que se basa en seis dimensiones emocionales, de las cuales se implementaron dos. Como se ha explicado, no se parte de cero, sino de un modelo basado en lógica borrosa que incluía dos dimensiones, “Anímica” y “Alerta”, a las que se busca añadir una tercera “Interés”. Para ello, en primer lugar, se deberá llevar a cabo una migración del Modelo Emocional existente, previamente desarrollado haciendo uso de una librería borrosa en C++, para unificar los lenguajes de programación del proyecto y facilitar la comunicación entre módulos. Así pues, se elaborará un sistema basado en clases usando como lenguaje Python, y que incorporará únicamente las funcionalidades previamente desarrolladas. De esta forma, la escalabilidad del sistema aumentará y las futuras ampliaciones se realizarían con mayor facilidad. El interés del robot, como se ha mencionado, es la nueva dimensión emocional que será incorporada. Debe reflejar el interés que despierta en el robot el mensaje del usuario, y que pueda utilizarse para aumentar o disminuir lo proactivo que sea en ese momento. Como entrada, el sistema borroso de primer orden a implementar debe tomar la variable “Habla”, que proviene del sistema de diálogo y refleja el nivel de relevancia del contenido del mensaje del usuario. Dicho nivel de relevancia dependerá de la personalidad del robot y de sus gustos e intereses, definidos también por la la Dra. Gema. Asimismo, se pretende incluir como variable de entrada del sistema borroso “Alerta” el nivel de glucosa del paciente, para que influya en el nivel de miedo que siente el robot y, si fuera necesario, se active el protocolo de emergencia en situación de bajada de glucosa en sangre. En lo que respecta al agente conversacional se busca lograr una comunicación lo más fluida posible donde se elabore una respuesta coherente por parte del robot, que dependa del mensaje del usuario. Se parte de un chatbot que convierte a texto el mensaje del usuario y mediante expresiones regulares elige y verbaliza una respuesta, se busca ampliar el sistema y adaptarlo para que siga una arquitectura definida. Todo el sistema de diálogo está implementado usando Python. El primer paso consistió en el desarrollo del módulo PLN, que incluía un modelo de puntuación en español, capaz de procesar el texto de entrada sin puntuar, y añadirle los signos de puntuación necesarios con una precisión suficiente, así como un módulo encargado de clasificar las frases del usuario (afirmativa, saludo, interrogativa, etc..) también en español. Para el módulo de puntuación se empleó un modelo preentrenado, mientras que para el clasificador se entrenó un modelo de cero, con la dificultad añadida de la falta de conjuntos de datos etiquetados en español. A continuación, se analizó el nivel de relevancia de las frases del usuario, para usarlo como entrada del Modelo Emocional, concretamente de la dimensión de interés. Para ello se generó una bolsa de palabras que contenía aquellas alineadas con los gustos e intereses del robot, así como las relacionadas con la aplicación de asistencia para pacientes de diabetes. Si las palabras de la frase de entrada coincidían con alguna que perteneciera a la bolsa de palabras, la relevancia de la frase se puntuaba acorde. Además, uno de los focos principales del proyecto consistía en dotar de proactividad al robot, de esta forma, se programó el sistema de diálogo para que iniciara la conversación si el usuario llevaba cierto tiempo sin emitir ningún mensaje. El siguiente paso fue modificar el sistema de generación de respuesta para que contemple diferentes estrategias. De esta forma, ampliación de este módulo consistía en añadir nuevas expresiones al programa de expresiones regulares existente (que se aplicará si la frase del usuario coincide con alguna de las posibilidades definidas), incorporar un modelo generativo ya desarrollado (que solo se empleará si no se encuentra coincidencia con el programa de expresiones regulares), y finalmente desarrollar e incluir el protocolo para emergencia por bajada glucosa, que será priorizado sobre los dos anteriores si se diera la situación. Así pues, para concluir las ampliaciones del sistema de diálogo, se integraron los nuevos módulos con los ya existentes, reestructurando el sistema para que, mediante una estructura de clases, se ajuste a la arquitectura definida. De esta forma, también se buscaba que el programa fuera escalable. Debido a que las comunicaciones del robot, que antes se realizaban mediante un protocolo de comunicación denominado LCM (Lightweight Communications and Marshalling), están siendo modificadas, no se empleó el robot físico para realizar las pruebas y validaciones pertinentes, sino que se comunicó directamente el Modelo Emocional con el sistema de diálogo. Para ello se usaró una comunicación clienteservidor mediante sockets, y se ejecutaron en paralelo ambos módulos, intercambiando así entre ellos los datos necesarios. Una vez concluido el proyecto se cuenta con dos módulos ampliados, escalables e integrados, que se incorporarán de forma sencilla al robot cuando la modificación en las comunicaciones esté finalizada

    Control architecture of a social robot for the navigation and interaction with the environment

    No full text
    Muchas propuestas han surgido con respecto a la creación de robots que puedan interactuar con personas. Además, se ha hecho mucho énfasis en el aspecto físico del robot para que sea bien recibido por las personas que lo rodean. Por eso, muchos robots se han diseñado para que trabajen como camareros, ayudantes domésticos, asistentes personales y hasta guías en museos, los cuales explican los retratos y esculturas. Doris, que entra en esta categoría, es un robot de interiores diseñado para trabajar en entornos complejos y para interactuar con personas. Doris es la versión moderna de otros robots, Blacky y Urbano, diseñados en el Centro de Automática y Robótica de la Universidad Politécnica de Madrid. Para crear un robot se requieren conocimientos de mecánica, control, electrónica y programación, y programar un robot para que sea un guía turístico, no es una tarea fácil debido a que hay muchos aspectos que resolver como sus movimientos, su localización, la información que percibe del entorno, el procesamiento de ciertas condiciones que pueden cambiar en el tiempo, preguntas que pueden provenir de diferentes personas, etc. Aunque estas tareas se puedan resolver individualmente, trabajarlas en paralelo complica aún más las cosas. Esta tesis presenta una propuesta de arquitectura de control que cubre tanto desarrollo hardware y software para lograr que Doris trabaje de manera eficiente en un museo como guía turístico. Por lo tanto, para esta arquitectura se han desarrollado cinco capas las cuales son: hardware, lógica, enlace, planificación y usuario. La capa de hardware se comunica con la capa lógica a través de USB, RS232 o Ethernet. Las demás capas se comunican a través de otros métodos propios de los sistemas operativos como lo son pipes (tuberías), memoria compartida o sockets. Se parte de una estructura hardware ya diseñada previamente en otro trabajo como lo es el torso de Doris, ya instalado sobre la plataforma. Sobre este torso se ha instalado una cabeza, una cámara omnidireccional, antenas RFID, altavoces y demás accesorios para conseguir tanto interacción como localización, navegación y planificación. También como propuesta software se plantea un modelo cliente-servidor, en el cual se generan muchos hilos para poder trabajar los diferentes módulos paralelamente de forma síncrona y asíncrona. Otra de las propuestas de esta tesis es un planificador de tareas, el cual permite el desarrollo de una serie de acciones dentro del museo. Estas acciones se definen como un conjunto de operaciones, tales como el movimiento del robot, su localización, la planificación de rutas, las caras que debe poner y los eventos de los que Doris debe estar pendiente, así como personas que detecta, cuando pasa por una puerta o va a entrar en un pasillo o cuando alguien le hace una pregunta. Como la localización representa uno de los inconvenientes de un robot móvil, esta se resuelve mediante fusión sensorial implementada a través de un filtro extendido de Kalman. La fusión sensorial se hace usando un láser LMS-200 para detectar balizas reflectivas, una cámara omnidireccional para detectar marcas visuales y un mapa semántico. Con esta fusión sensorial se consigue una buena localización, con pocos milímetros de error. De la localización depende el control reactivo del robot. Para este control reactivo se han desarrollado dos importantes controladores usando lógica difusa. Uno de ellos es un control de velocidad para que el robot vaya de manera suave a los puntos de interés del museo y el segundo controlador es para pasillos, el cual mantiene al robot en el centro de este. Esta es una conducta propia del ser humano, que camina por el centro de un pasillo y esquiva objetos o personas cuando se interponen en su camino. La localización depende de un mapa semántico, siendo esta otra propuesta de esta tesis. El mapa semántico es construido por sectores que a su vez se subdividen en puntos de interés por los cuales se hará la navegación del robot. Esta navegación está basada en la búsqueda del mejor camino en un grafo, y para ello, los algoritmos más usados son el algoritmo de Dijsktra o el A*. La interacción de Doris con el entorno está basada en muchos subsistemas como la cara, el brazo, el habla, la sincronización labial y el sistema de emociones. En esta tesis se propuso el diseño de una cara de apariencia humana, hecha de metacrilato con 20 grados de libertad, los cuales están distribuidos a lo largo de ojos, cejas, párpados, mofletes, y boca. Esta cara ha sido cuidadosamente estudiada para evitar rechazos por parte de los visitantes del museo. El habla, el cual es otra propuesta de esta tesis, es la que permite explicar los objetos, retratos y esculturas a las personas que están de visita. Todo esto trabajado en sinergia con la sincronización del los labios para darle una apariencia más humana al robot, pero sin llegar al rechazo. También se han diseñado dos aplicaciones para el control remoto y local de Doris. Para el control remoto se usa una página web y para el control local, se usa una aplicación desarrollada en android. La idea es que con estas aplicaciones se pueda monitorizar al robot bien sea desde el mismo museo o desde otra parte del mundo. Este punto fue muy importante a la hora de establecer la arquitectura cliente-servidor. El planificador de tareas mencionado anteriormente, es planteado en esta tesis a través de un nuevo lenguaje de programación dedicado netamente a Doris. Para esto se tuvo que proveer al lenguaje de ciertas características desde las básicas de todos los lenguajes de programación como sentencias if, while, for, declaración de variables, arrays etc, a otras más dedicadas al movimiento y las expresiones como say, move, goto, etc. y otras un poco más avanzadas como el escuchar eventos. La versatilidad de este lenguaje de programación es la posesión de una estructura gramatical sencilla que permite crear un programa modular para cada tipo de visita turística distinta. Ya para finalizar, se desarrollan pruebas para unir todas estas características en una misma ejecución, en el Centro de Automática y Robótica de la Universidad Politécnica de Madrid, mostrando resultados en los que cada componente puede trabajar en conjunto con todos los demás, también se puede cambiar de programa de ejecución sin necesidad de cambiar nada de la arquitectura propuesta. ----------ABSTRACT---------- Several approaches have been made in order to create robots that can interact with people. Besides, special attention has been devoted to achieve widespread acceptance among the population. Thus, the variety of programmed robots goes from waiters, domestic helpers and personal assistants to guides that work in museums guiding people through the different areas and that explain sculptures and portraits. Doris, which belongs to this last mentioned category, is a mobile robot conceived to work in dynamic indoor environments and to interact with people. It was built as a way to upgrade Blacky and Urbano, two robots that have been developed at the Centre of Automation and Robotics at the Universidad Politécnica de Madrid in recent years. Programming a robot is not an easy task since there are many issues that need to be solved, such as the localization of the robot, its movements, the reading of information from complex environments, the processing of some eventual conditions, the interpretation of an input and the appropriate answer to this input and so on and so forth. Once they are solved, these tasks need to work synchronized. This dissertation presents a control architecture that involves both, hardware and software proposals, in order for Doris to be able to work as a successful tour-guide robot in museums. Therefore, five layers have been developed: a hardware, a logic, a link, a task planner and a user layer. The hardware layer communicates to the logic layer through a USB and a RS232 or Ethernet; and the remaining layers communicate with each other through pipes, shared memory, messages and sockets. When it comes to Doris’ hardware, the robot is equipped with a mobile platform. Prior to this dissertation, a skeleton placed on this platform was added to the robot in order to provide it with human appearance. Later, the head was attached to the skeleton so that interaction with the environment could be possible, as well as additional sensors such as the RFID and an omnidirectional camera, which are used for localization, navigation and interaction. Regarding software, there is a proposal of a client-server application which includes multiple threads which communicate with each other in order to achieve an excellent performance between internal processes and between the robot and the people. The task planner, previously mentioned, is another proposal of this doctoral thesis, which is responsible for indicating the set of actions that Doris must perform in a museum. This actions or tasks are the set of movements that Doris needs to do in order to reach a point of interest inside the museum. A route must be traced with a designed path planner in order to reach this point of interest, and in order to make the robot follow this path, two main components must be developed: the controller and the state observer, being this last one Doris’ oriented position in the plane. Doris’ localization is based on a sensor fusion, a subject that is approached with the detection of reflective beacons by means of a laser range finder, and with the detection of visual markers by means of an omnidirectional camera. The information provided along with the information contained in the semantic map is fused into an Extended Kalman Filter. Reflective landmarks are detected by using a LMS-200 laser range finder. The detection was used following certain conditions for classifying and detecting the center of the landmark by applying the Law of Sines and using it as a model in an iterative minimum squared error estimator. Visual markers are detected by using an omnidirectional camera Mobotix C25. The fiducial markers proposed for this dissertation are a matrix of 6 rows and 5 columns to avoid orientation issues, which are placed at 275cm from the ground to try to avoid occlusions and get the maximum numbers of visual markers. While the camera can get up to five markers at the same time, the laser can perceive a minimum of two. Concerning the reactive control proposed in this dissertation, two fuzzy controllers were developed. One of the controllers is a speed controller developed to move the robot from one point to another smoothly. Another controller is used in hallways, where the robot must keep in narrow areas to avoid collisions with other objects, which is similar to people’s typical behaviour. Another proposal of this dissertation is to design a semantic map of the environment that will be used for navigation. This map is subdivided into sectors and each sector reflects the points of interest where the robot must navigate. Different approaches, which are based on Dijsktra or other planners based on graphs representation, have been made to solve the navigation and planning problems. Regarding interaction, Doris’ system is based on several elements, which are the face, the arm, the emotion system, the speaking system and the lip sync system. The simpler the communication is, the better the robot will respond to the user, always having into account to avoid the uncanny valley, which is the degree of acceptance of people towards robots which are human like. Doris’ face has the most common characteristics of a person’s face, that is to say, eyes, eyelids, eyebrows, nose, lips, It is made of methacrylate and it has 20 degrees of freedom. Doris’ speaking system is another proposal of this project, a system that allows Doris communication with people in the museum, thus, achieving a greater acceptance among them. This speaking system works together with the emotional system, which consists in obtaining different face expressions by means of fuzzy logic. The remote control of Doris, which is one more proposal of this dissertation, is performed via ethernet connection. It allows to operate the robot in a local area network or in a wide area network, so that a robot located in a museum in Italy can be operated by a person located in Spain. This was a key reason for the client-server architecture to be chosen. The client is an application which performs a request to the server (Doris). This information travels through a communication tunnel, normally ethernet, and then, the server returns the information requested to the user. The architecture should handle different clients, like clients connected with a smartphone or tablet and clients connected via web. As the applications will connect to Doris via ethernet, sockets are used except for web applications, where web-sockets are used instead. In order to integrate al the submodules described above, a task planner is proposed, which integrates navigation, face and emotions by means of a tasks list, which is a source code of a program language developed for Doris with which the robot’s user can create or modify the order in which actions are going to be performed by the robot. Joining all the submodules into a single execution, a program for touring in the Centre of Automation and Robotics at Universidad Politécnica de Madrid has been developed. Doris initial results show that each component of the architecture produces acceptable outputs. The new language proves that modules can be merged and that Doris follows the actions (trajectories, speeches and actions based on events) specified in the program provided by the developer without making any changes in the lower layers of the architecture

    Automatic Positioning of Template Referencing System for Application in an Aircraft Fuselage Assembly Testing Environment

    No full text
    En la actualidad, las necesidades de producción la industria aeronáutica están incrementándose constantemente debido a diversos factores como la globalización o el incremento del turismo. Se estima que el tráfico aéreo aumentará un 4.4% anual en los próximos 20 años, lo que llevará al montaje de alrededor de 37.400 aeronaves [2]. Teniendo en cuenta que la mayoría de las uniones en un avión se realizas utilizando remaches, y un avión comercial, como el Boeing 737, puede llegar a tener unos 40.000 remaches por cada ala [29], se justifica la importancia de este tipo de unión en esta industria. Uniendo ambos argumentos, la creciente demanda obliga a buscar nuevas mejoras para los ya conocidos métodos de producción. El remachado necesita previamente de un taladrado que posteriormente alojará la parte mecánica de la unión. Este agujero se realiza de forma manual porque los enormes tamaños del fuselaje del avión no permiten realizar procesos en una máquina de control numérico. Y es por tanto, por lo que se recurre a otros métodos como el uso de plantillas. La plantilla se sitúa en el fuselaje y una vez colocada se procede al taladrado del mismo para la posterior unión de los elementos. Dichos taladros se realizan en las posiciones que marca la plantilla. Por otro lado se ha de tener en mente que a 35.000 pies de altitud no hay margen de error y, consecuentemente, las tolerancias de la industria aeroespacial son muy estrechas. Todo ello lleva a la conclusión de que el posicionamiento de la plantilla debe ser tan preciso como sea posible para no introducir posteriores errores en los subsiguientes taladros. La solución adoptada por la industria es utilizar agujeros piloto de alta precisión que sitúen la plantilla. Para ello se emplean sistemas de posicionamiento preciso (drill position targeting systems, en inglés) que pueden llegar a posicionar el agujero piloto con precisiones del orden de decenas de milímetro. En la producción actual, dichos sistemas son completamente manuales y la búsqueda de posiciones con 0,1 mm de precisión es un trabajo que conlleva una pérdida de tiempo que es posible subsanar. Como principal motivo de reducir esta pérdida de tiempo y liberar al operario de este trabajo costoso y, en ocasiones, en posiciones forzadas debido a las curvas del fuselaje, este Trabajo Fin de Máster busca la automatización de uno de los existentes sistemas de posicionamiento preciso. El proyecto fue desarrollado en el Institute of Production, Management and Technology (IPMT) de la Technische Universität Hamburg. Y en colaboración con otra tesis, se creó un prototipo modificando lo mínimo posible el sistema de posicionamiento utilizado, a saber, Drilling Alignment System. Este trabajo consiste en la búsqueda, definición y validación de componentes como sensores, actuadores y el resto de elementos necesarios para la automatización del proceso. Así como, el desarrollo y las pruebas finales que demuestren que el sistema una vez automatizado sea válido y funcione correctamente. El objetivo principal de este trabajo es alinear el sistema de posicionamiento de manera autónoma con precisión de 0,1 mm y en un tiempo menor al que lo realizaría un operario para realizar el posterior agujero piloto. Dado que el sistema de posicionamiento no va a ser modificado, se deberá detectar las luces indicativas presentes en el mismo para mover motores de manera apropiada. El concepto deberá ser desarrollado, validado y probado. Además se integrará con otras funcionalidades como una aplicación móvil para aportar una interfaz útil y sencilla con la que controlar todo el sistema

    Sistema de asistencia a la conducción basado en la detección del comportamiento del conductor

    No full text
    Actualmente, a la espera de que el vehículo completamente autónomo aparezca como un producto más entre los ofertados en el mercado automovilístico, las acciones asistenciales integradas por las compañías en los modelos de coches producidos son cada vez más numerosas. Estas ayudas, en contextos que van desde el cambio de carril hasta la supervisión de los ángulos muertos, pasando incluso por el aparcamiento, resultan de gran utilidad para la persona que se pone al volante cada día. Sin embargo, tienen como inconveniente el aplicarse únicamente en situaciones muy concretas. No obstante, no son las únicas líneas de investigación destinadas, en último término, a hacer la conducción algo más sencilla. También abundan los trabajos enfocados al conocimiento del conductor, caracterizando sus acciones tanto desde el punto de vista de los parámetros de conducción que puedan definirlas como desde una perspectiva fisiológica. A pesar de ello, los proyectos ejecutados no suelen seguir hacia la consecución de uno de los mayores beneficios que se podrían extraer de sus descubrimientos: el planteamiento de ayudas al individuo según se registrasen anomalías en su comportamiento al volante y, por consiguiente, variaciones en su estado emocional. Éste es el vacío que se pretende empezar a llenar con el desarrollo del proyecto. El objetivo principal que se persigue es el diseño e implementación de un sistema de asistencia a la conducción que genere estímulos que puedan resultar de utilidad al conductor durante la realización de su tarea, a partir de datos en tiempo real que la caractericen. Una vez planteada la meta final, y tras el estudio del Estado del Arte en la materia, la primera cuestión a abordar es la definición de las entradas y salidas del sistema y de los parámetros que puedan considerarse característicos del conductor. la continuación futura de este proyecto plantea otros incentivos importantes, como su integración real en el coche o la personalización de los estímulos al conductor. La atención a la diversidad con la generación de respuestas asistenciales específicas, destinadas a reducir algunas de las dificultades de estos colectivos con necesidades especiales, podría suponer un gran paso en la mejora de la calidad de vida de muchas personas

    Interacción gestual y hablada con humanos de un robot de asistencia personal mediante una tablet

    No full text
    En las últimas décadas, la robótica social ha ido ganando terreno en el ámbito tecnológico. En el CAR, uno de los proyectos emprendidos en este campo ha sido el robot Potato, un robot de compañía capaz de simular inteligencia emocional, enfocado a personas con necesidades especiales o en condiciones de aislamiento. Uno de los aspectos más importantes de los robots sociales es su capacidad de interacción con el usuario. Por ello, el presente trabajo se ha centrado en proporcionar a Potato una interfaz con la que pueda interaccionar de forma gestual y hablada. Para la implementación de la interfaz, se ha creado una aplicación para la tablet Android que Potato lleva incorporada en su parte delantera. Esta tablet está en la posición perfecta para poder mostrar la cara del robot, así como proporcionarnos micrófono y altavoces para poder entablar conversaciones con él. Este trabajo no ha partido de cero, pues ya existía una aplicación preliminar que ejercía como interfaz de Potato. Esta interfaz mostraba una cara y contaba con diversas funciones, pero no contaba con un aspecto esencial, no se interconectaba con el resto del robot. Partiendo de esta base, se ha propuesto crear una nueva aplicación, que cuente con una nueva estética y las siguientes funcionalidades: - Conexión con el resto del robot por medio de la red WIFI. - Cara que varía dinámicamente con el estado del robot. - Reconocedor del habla del usuario. - Sintetizador del habla del robot. La conexión con el resto del robot es esencial puesto que en el procesador central del robot encontramos dos programas que deben intercambiar datos con la interfaz. Uno de ellos es el programa del modelo emocional, el cual envía el estado afectivo del robot, y el otro es el agente conversacional, que genera el habla de Potato. Para este intercambio de datos, se ha decidido implementar el método de conexión que ya se usaba en el resto del robot: conexión multidifusión por medio de LCM. Este modo de envío y recibo de datos utiliza la red WIFI a la que se conectan los distintos dispositivos y permite una conexión en tiempo real. Aunque no existen muchos precedentes de implementación de LCM en Android, para añadir este tipo de conexión a nuestra aplicación nos hemos basado en la información relativa a Java. Paralelamente a la implementación de LCM, se ha diseñado el nuevo aspecto de la interfaz, tratándonos de alejar de la aplicación preliminar. Se ha buscado una cara que no sufra del fenómeno del valle inquietante, que consiste en un rechazo al robot si se parece mucho al humano, pero no es idéntico. Además, se ha simplificado la aplicación a una sola pantalla donde solo se muestre la cara, sin elementos adicionales, y con la que se puede entablar una conversación al tocar la pantalla. Para crear la aplicación se ha utilizado el entorno de desarrollo Android Studio, de licencia gratuita. Sin embargo, hemos tenido que añadir librerías adicionales al proyecto creado en dicho programa. Una de ellas ha sido la librería de LCM, con la cual podemos implementar la conexión multidifusión en la aplicación. La otra ha sido la librería del lenguaje de programación Processing, la cual nos permite implementar el diseño y desarrollo gráfico de la cara de Potato. Como resultado final tenemos una aplicación funcional y sencilla de utilizar, pero que no ha terminado aun su desarrollo completo, si no que debe seguir evolucionando en paralelo a los demás programas con los que cuenta el robot

    New methods for the estimation of Takagi-Sugeno model based extended Kalman filter and its applications to optimal control for nonlinear systems

    No full text
    This paper describes new approaches to improve the local and global approximation (matching) and modeling capability of Takagi–Sugeno (T-S) fuzzy model. The main aim is obtaining high function approximation accuracy and fast convergence. The main problem encountered is that T-S identification method cannot be applied when the membership functions are overlapped by pairs. This restricts the application of the T-S method because this type of membership function has been widely used during the last 2 decades in the stability, controller design of fuzzy systems and is popular in industrial control applications. The approach developed here can be considered as a generalized version of T-S identification method with optimized performance in approximating nonlinear functions. We propose a noniterative method through weighting of parameters approach and an iterative algorithm by applying the extended Kalman filter, based on the same idea of parameters’ weighting. We show that the Kalman filter is an effective tool in the identification of T-S fuzzy model. A fuzzy controller based linear quadratic regulator is proposed in order to show the effectiveness of the estimation method developed here in control applications. An illustrative example of an inverted pendulum is chosen to evaluate the robustness and remarkable performance of the proposed method locally and globally in comparison with the original T-S model. Simulation results indicate the potential, simplicity, and generality of the algorithm. An illustrative example is chosen to evaluate the robustness. In this paper, we prove that these algorithms converge very fast, thereby making them very practical to use

    Implementación de un modelo emocional para un robot de asistencia personal basado en lógica borrosa

    No full text
    La Inteligencia Artificial es, hoy en día, una de las ramas más destacadas de la automática y la robótica. Lleva investigándose y desarrollándose desde el siglo XX y, actualmente, contamos con cantidad de ella en nuestro día a día. Nuestros teléfonos, ordenadores, e incluso relojes presentan esta tecnología. Sin embargo, no está todo conseguido en este campo y aún queda mucho por desarrollar. Uno de los usos quizás menos conocidos, pero no por ello menos útiles de la Inteligencia Artificial es la Computación Afectiva. Desarrollada por Rosalind Picard en la década de los 90, la Computación Afectiva se define como aquella que tiene que ver o está relacionada con las emociones. Es en este momento cuando se empieza a tener en cuenta que el estudio de las emociones podría ser de utilidad para diversos proyectos en el ámbito de la robótica. Esta nueva variante de la Inteligencia Artificial comprende todo aquello que tenga que ver tanto con las emociones humanas como con las que “pueda sentir” o simular una máquina. Así, se encarga tanto del reconocimiento de emociones mediante el estudio de expresiones faciales o el tono de voz como de la generación de emociones sintéticas en cualquier tipo de Inteligencia Artificial. Una de las aplicaciones que destaca en esta vertiente es la que ocupa a este proyecto: los robots sociales. Los robots sociales son aquellos diseñados para interactuar con las personas. La mayoría de ellos se han desarrollado especialmente para ayudar a aquellas personas con algún tipo de dependencia, como personas mayores o niños hospitalizados. Se ha demostrado que la presencia de un robot social ha mejorado la interacción social entre personas que tenían dificultades para ello. Diversos estudios afirman que este tipo de robots es capaz de despertar empatía en los usuarios y así conseguir que desarrollen sentimientos de carácter afectivo hacia el robot y hacia los demás usuarios. En este proyecto lo que se propone es desarrollar e implementar un modelo emocional para un robot social de asistencia personal. Lo que se busca con esto es conseguir que el modelo emocional controle gran parte del comportamiento del robot, aumentando así la naturalidad de la interacción humano-robot y facilitando el desarrollo en los usuarios de sentimientos empáticos y de carácter afectivo. Este modelo emocional se implementará con lógica borrosa. La lógica borrosa es un tipo de lógica multivalorada donde cualquier punto puede tomar cualquier valor de verdad situado entre sus dos extremos (verdadero-falso, 1-0, etc.). A diferencia de otro tipo de lógicas convencionales, en la lógica borrosa tenemos un espectro continuo de valores de verdad. En ella se trabaja con términos lingüísticos, en lenguaje natural, que marcan los diferentes valores de verdad que puede tomar una variable. Además, a cada uno de estos valores lingüísticos le asociamos una función de pertenencia. Cuanto mayor sea el valor de la función de pertenencia de un valor lingüístico en un punto, “más cierto” es que ese punto pertenezca a ese valor. Haciendo uso de la lógica borrosa, lo que se pretende en el presente proyecto es idear y desarrollar varios controladores que regulen el comportamiento del robot bajo ciertas circunstancias. Estas circunstancias se dan, en lógica borrosa, con una serie de reglas que marcan el funcionamiento del controlador. Estas reglas también se disponen en lenguaje natural. De esta forma, desarrollamos un programa prácticamente escrito en su completo con un lenguaje al que estamos habituados, pues lo usamos diariamente. Esto, como es evidente, facilita tanto la creación como la comprensión del programa que busca este proyecto

    Migración del software de control de un vehículo a un computador dedicado

    No full text
    Este trabajo fin de grado se engloba dentro del Programa AUTOPIA, programa llevado a cabo en el Centro de Automática y Robótica (CAR) CSIC-UPM, localizado en Arganda del Rey, Madrid. Dicho programa investiga el desarrollo de vehículos autónomos, es decir, sin conductor; tema de frecuente discusión hoy en día. Este trabajo surge de la necesidad de que los vehículos autónomos que circulan en España deben incorporar un sistema override o take-over que devuelva el control del vehículo al conductor cuando éste intente modificar la dirección o la velocidad. Este requisito está regulado por la normativa de la Dirección General de Tráfico. El documento donde quedan definidos los requisitos para la circulación de coches automatizados se recoge en los anexos del presente trabajo. El objetivo final de este trabajo es aumentar la robustez del sistema de control desarrollado por el Programa AUTOPIA para la conducción autónoma de vehículos y gestionar, de una manera más eficiente, la inicialización de los sistemas de control del freno y del volante, además de incluir el sistema take-over anteriormente explicado. Actualmente, el sistema se encuentra implementado en un PC con sistema operativo Ubuntu y se plantea migrar parte del software a un sistema dedicado. Para ello se dispondrá de una placa controladora comercial, la cual será fruto de un previo análisis de mercado. Los requisitos mínimos de dicha placa serán: - Bajo coste - Rendimiento mínimo necesario para gestionar las comunicaciones en el coche - Capacidad de lectura de mensajes CAN (Controller Area Network), típico protocolo de comunicación en los coches actuales - Comunicación USB con el ordenador principal - 2 puertos serie adicionales para la comunicación con los controladores de posición digitales del freno y del volante. El sistema final que se desarrollará para este trabajo fin de grado deberá conseguir leer los mensajes que el PC envié a través del USB con una codificación a determinar, interpretarlos y mandar las órdenes del ordenador traducidas a la comunicación propia de los controladores digitales de los motores de freno y volante. ETAPA 1: Selección de la Placa Tras el análisis de mercado, cuyos requisitos fueron detallados en el párrafo anterior, y que se encuentra redactado en el Capítulo 4 de esta memoria, se llega a la conclusión que la placa microcontroladora que mejor se adapta es la Teensy 3.2. Una vez decidido con que Hardware se va a trabajar, se puede pasar a las pruebas de validación y posteriormente al desarrollo software. ETAPA 2: Gestión de la comunicación Para la gestión de la comunicación, se ha implementado una máquina de estados, de tal manera que se le da prioridad a los tipos de comunicación que se consideran más importantes, o que tienen una frecuencia de mensajes mayor. Como ya se ha mencionado previamente, el bus CAN en el vehículo manda mensajes con una frecuencia bastante considerable, por lo que éste es considerado prioritario. Además, es de vital importancia que una comunicación no bloquee el hilo de ejecución del programa principal en la placa, la cual no cuenta con capacidad para multithreading como si tiene por ejemplo un ordenador. Para la comunicación con el ordenador, que será el encargado de decidir la referencia de posición del freno y del volante, se utilizará comunicación serie mediante USB. Además se desarrollará un protocolo de comunicación para que las comunicaciones entre el ordenador y la placa fuesen rápidas y robustas, objetivo principal de este trabajo. Al ser una tarea tan crítica, la comunicación USB también será considerada prioritaria. Por otro lado, la comunicación con los controladores digitales de freno y volante se realiza mediante el protocolo RS232, basado en comunicación mediante puerto serie. Para la comunicación tanto por bus CAN como por RS232 se necesitará de un circuito electrónico que se describirá más adelante en este trabajo. ETAPA 3: Gestión del freno y del volante Para la calibración y el posterior control de las posiciones del freno y del volante se utilizan dos máquinas de estados. El sistema se encontrará en un estado de PAUSA hasta que llegue por USB la orden de empezar la calibración. Dicha calibración busca establecer la posición cero, la cual los sistemas de freno y volante utilizarán como origen. Para la calibración del volante se utilizará la comunicación CAN para saber en qué posición se encuentra el volante en dicho momento e indicar a la controladora del motor del volante dicha posición actual. En cambio, con el propio CAN se podrá detectar cuando el freno está activo moviendo el mismo. Estableciendo el punto de conmutación como origen de posiciones del freno. Esta calibración es necesaria debido a que la controladora de cada motor funciona mediante un Encoder incremental acoplado al eje de dicho motor. Este tipo de Encoder funciona contando los pulsos recibidos en el movimiento de dicho Encoder, pudiendo registrar solo movimientos relativos, si saber la posición actual del motor. Por esto, se debe indicar a la controladora en algún momento de la calibración, cual es la posición actual del Encoder. Posteriormente, los sistemas de freno y volante, contarán con tres estados básicos que configurarán el sistema según las acciones del usuario o del sistema de control. Por defecto, los sistemas de freno y volante se encontrarán en un estado de RUNNING, en los cuales se ejecutarán las órdenes de posición que lleguen para el freno o el volante. Si pasa un determinado tiempo sin que llegue ninguna orden, se pasará a un estado IDLE, en el cual de desbloqueará el volante y se llevará el freno a la posición cero. De igual manera se procederá si se detecta la acción del usuario sobre estos actuadores provocando un override. Si el conductor pisa el freno o hace fuerza en el volante, se pasará a dicho estado OVERRIDE, desbloqueando el volante y el freno. Estas acciones del usuario se detectarán mediante un sensor de presión alojado en el pedal del freno y el par ejercido en la columna, dato que se puede obtener de la comunicación bus CAN. ETAPA 4: Pruebas del sistema. Por último se realizaron las pruebas finales para testear todo el sistema desarrollado en este trabajo fin de grado. Mediante las pruebas en pista se probó que el ordenador embarcado era capaz de trabajar con la Teensy sin grandes errores en la conducción autónoma comparado con la conducción utilizando únicamente el ordenador, así como que el sistema era capaz de detectar los overrides del conductor, tanto en el freno como el volante, y la correcta vuelta al sistema autónomo. Tras estas pruebas se concluyó que el sistema con la Teensy era perfectamente compatible y válido para la conducción autónoma junto con el ordenador embarcado, aportando como ventaja la detección del override y la reducción de carga computacional en la gestión de la calibración de los actuadores

    Entorno de realidad virtual para la visualización de datos de un robot social

    No full text
    Durante los últimos años, se ha podido ver como la realidad virtual ha experimentado un gran crecimiento, algo que se demuestra con la cantidad de dispositivos que han ido saliendo al mercado. Desde los primeros antecedentes de la realidad virtual, como los primeros estereoscopios, que tanto éxito alcanzaron en el siglo XIX, hasta los dispositivos diseñados por la NASA en los años ochenta, se pueden encontrar una buena cantidad de precedentes de los dispositivos actuales. Todo ello muestra como la realidad virtual es un concepto que siempre ha suscitado interés en el ser humano. Los Head Mounted Displays, o de forma abreviada, HMD, que son los visores de realidad virtual habituales, tienen cada vez mayor resolución, mayor campo de visión, mayor tasa de refresco y, en general, mejores prestaciones. Además, los dispositivos de entrada y de salida (aparte de los mencionados HMD) se encuentran en constante desarrollo. En cuanto a los dispositivos de salida, destacan por su carácter innovador los que emplean tecnología háptica, mediante la cual aplican fuerzas al cuerpo del usuario en consonancia con eventos transcurridos en el entorno virtual. Los dispositivos de entrada habituales en la actualidad, son controladores inalámbricos propios de cada compañía, de diferentes formas y con diferente número y disposición de botones. Cabe destacar que, al igual que lo que sucede con los dispositivos de salida, hay clases de dispositivos de entrada que se encuentran en fases de desarrollo más o menos avanzada como los dispositivos de seguimiento corporal, que reproducen los movimientos del cuerpo dentro del entorno virtual; o los dispositivos de navegación, que producen en el usuario la sensación de estar desplazándose realmente en el interior del entorno virtual. Con todo ello, la realidad virtual se está convirtiendo progresivamente en una herramienta indispensable para la visualización de datos. La inmersión y las diversas posibilidades de interacción que ofrece, produce que haya empresas que hoy en día descubran aspectos clave de sus datos a través de sistemas de visualización como Virtualitics. El presente proyecto tiene como objetivo principal el desarrollo de un entorno virtual en el que se puedan visualizar los datos del robot social Potato. En el entorno virtual habrá una serie de salas con diferentes funcionalidades en cada una de ellas. En el programa diseñado, se podrán introducir datos externos al mismo, los cuales serán datos del robot Potato. Para lograr el objetivo principal, se diseña un sistema mediante el cual se pueden visualizar los datos en un entorno de realidad virtual inmersivo, a través de gráficos, explorando los mismos únicamente a través del desplazamiento de la mirada
    corecore