Desarrollo de un control versátil de trayectorias y modos de marcha para un robot hexápodo

Borrella Ramos, Juan Carlos (2017). Desarrollo de un control versátil de trayectorias y modos de marcha para un robot hexápodo. Proyecto Fin de Carrera / Trabajo Fin de Grado, E.T.S.I. Industriales (UPM).

Descripción

Título: Desarrollo de un control versátil de trayectorias y modos de marcha para un robot hexápodo
Autor/es:
  • Borrella Ramos, Juan Carlos
Director/es:
  • Barrientos Cruz, Antonio
  • Garzón Oviedo, Mario Andrei
Tipo de Documento: Proyecto Fin de Carrera/Grado
Grado: Grado en Ingeniería en Tecnologías Industriales
Fecha: Septiembre 2017
Materias:
Palabras Clave Informales: Robot hexápodo, ROS, MoveIt!, Gazebo, control de velocidad, trayectorias, modos de marcha, Erle-Spider
Escuela: E.T.S.I. Industriales (UPM)
Departamento: Automática, Ingeniería Eléctrica y Electrónica e Informática Industrial
Licencias Creative Commons: Reconocimiento - Sin obra derivada - No comercial

Texto completo

[img]
Vista Previa
PDF (Document Portable Format) - Se necesita un visor de ficheros PDF, como GSview, Xpdf o Adobe Acrobat Reader
Descargar (5MB) | Vista Previa

Resumen

El objetivo del proyecto es desarrollar un sistema de control para el movimiento de un robot hexápodo que permita variar tanto su velocidad, modo de marcha y altura que cubren las patas en tiempo de ejecución. Por tanto, se busca que, a partir de unas órdenes de velocidad (lineal y angular), modo de marcha y altura de las patas, el robot encuentre la trayectoria que deben seguir dichas extremidades para cumplir con dichas especificaciones. Para conseguir que el robot sea capaz de realizar todos los movimientos mencionados, es necesario poder modificar de manera individual la trayectoria que sigue cada una de las patas. Por tanto, se ha procedido de la siguiente manera: En primer lugar, se creado una interfaz de control para el robot hexápodo Erle-Spider a través del software MoveIt!, el cual permite planificar, generar y efectuar trayectorias, bien para cada pata por separado, o bien para grupos de patas. En segundo lugar, se han estudiado los modos de marcha para robots caminantes, implementando los más importantes en el sistema de control realizado. En tercer lugar, se ha realizado un estudio teórico para calcular la velocidad de avance de un robot hexápodo en función de la velocidad de movimiento de cada pata. Por último, se ha creado un programa en ROS que interpreta las órdenes enviadas desde un joystick, calcula las velocidades a las que se debe mover cada pata y genera las trayectorias necesarias que deben ejecutar. Este proyecto se engloba dentro del marco del proyecto PRIC (Protección Robotizada de Infraestructuras Críticas; DPI2014-56985-R), desarrollado por el grupo de investigación de la UPM de Robótica y Cibernética RobCib, el cual tiene como principal objetivo la implantación de sistemas robóticos para vigilar y proteger dichas infraestructuras críticas, realizado labores de patrullaje, mantenimiento y prevención. De entre algunas de las diferentes líneas de desarrollo del proyecto PRIC, se encuentra la realización de un robot de pequeño tamaño que pueda acceder a lugares estrechos o desestructurados para realizar labores de búsqueda y rescate. De esta necesidad de diseñar un robot capaz de maniobrar en dichos espacios, surge la idea de utilizar un robot con patas. Un robot es un dispositivo multifuncional y reprogramable que se utiliza para realizar una gran variedad de tipos de operaciones. Según su uso, los robots pueden ser manipuladores industriales o robots de servicio. Entre los robots de servicio se engloban los robots móviles, que son los capaces de desplazarse utilizando ruedas, hélices o combinando el movimiento de sus extremidades, en el caso de los robots caminantes o con patas. Los robots caminantes presentan la gran ventaja de, al ser capaces de mover sus patas de maneras diferentes en función de la situación, desplazarse a través de terrenos irregulares y desestructurados sin reducir excesivamente su velocidad o sin que se produzca el fallo de alguna de sus articulaciones, siendo especialmente adecuados para labores de búsqueda y rescate. Por lo tanto, utilizando un robot hexápodo ya construido con un sistema de control básico, se pretende desarrollar un nuevo programa de control que permita al robot poder maniobrar de manera efectiva en este tipo de situaciones. Para la realización de este trabajo se han utilizado las siguientes herramientas de desarrollo: • Robot hexápodo Erle-Spider: Es un robot de configuración tipo araña con seis patas de tres grados de libertad (gdl) cada una. Es controlada a través del sistema embebido Erle-Brain, el cual contiene una versión de Ubuntu con ROS instalado. • ROS: Metasistema operativo empleado exclusivamente en el ámbito de la robótica para diseñar sistemas del control de las diferentes partes de un robot. Todo el código de control desarrollado corre sobre este software, el cual sirve de canal para la comunicación entre los programas generadores de trayectorias y el robot real. • MoveIt!: Software de código abierto empleado en la planificación y ejecución de trayectorias para diferentes tipos de robots. Se ha utilizado para generar y gestionar el movimiento de cada pata. En este trabajo se ha realizado todo el desarrollo para que el robot utilizado pueda comunicarse con este programa. • Gazebo: Para probar la validez del sistema de control, así como el funcionamiento del programa se ha simulado el comportamiento del robot en este software, el cual permite recrear escenarios similares a un entorno real. Las pruebas efectuadas se han realizado sobre entornos construidos con Gazebo. El trabajo realizado puede dividirse en los siguientes hitos: 1. Desarrollo de la interfaz MoveIt! para el robot Erle-Spider: Como se ha dicho antes, el software MoveIt! permite controlar de manera individual el movimiento de cada una de las extremidades del robot, por lo que resulta esencial para poder implementar el control deseado. La gran mayoría de los robots implementados actualmente en MoveIt! son manipuladores industriales, no existiendo proyectos sobre robots caminantes ni hexápodos. Por tanto, se ha tenido que realizar la implementación de esta interfaz desde cero. Dicha implementación se ha llevado a cabo en tres partes. En primer lugar, se han creado los paquetes básicos que permiten lanzar el programa con el modelo del robot cargado para poder interactuar con él. Una vez generados dichos paquetes, se puede utilizar ya el software, pero no es posible actuar sobre el robot real ni el simulado. En segundo lugar, para permitir la comunicación entre MoveIt! y el robot real o simulador Gazebo, ha sido necesario diseñar un programa que sirva como intermediario entre ambos, normalmente denominado Action-Server. Esta ha sido una de las partes más costosas del trabajo por la complejidad del programa al tener que gestionar el control de 18 actuadores a la vez. Una vez creado, el Action-Server permite que el robot real se mueva según las órdenes de posición y velocidad enviadas a través de MoveIt!. Por último, para acelerar el proceso del cálculo de trayectorias, se han desarrollado una serie de plugins utilizando el software IKFast, los cuales incluyen en MoveIt! la cinemática inversa de cada una de las patas del robot. 2. Implementación de los modos de marcha: Un modo de marcha se define como la sucesión de instantes en los que las patas de un robot caminante se encuentran suspendidas en el aire o apoyadas en el suelo, de tal modo que permitan que el robot se mueva de una determinada forma. Para este proyecto se han implementado los tres modos de marcha más utilizados en robots hexápodos: Wave, Tripod y Ripple Gait. Acorde con las pruebas realizadas, se ha determinado que el modo Wave Gait es el más apropiado para obtener un control preciso del movimiento, pero es el más lento. El modo Tripod Gait es el más rápido y adecuado para superar obstáculos y andar por terreno irregular, pero es el menos estable de los tres. El modo de marcha Ripple Gait se encuentra en un término medio entre los dos anteriores, ofreciendo algo más de estabilidad que el modo Tripod a la vez que también permite superar obstáculos de cierto tamaño. 3. Creación del programa de control principal: La tarea más costosa fue la creación del programa que englobase todas las funcionalidades deseadas a partir de la interpretación de las órdenes del joystick. Para ello se realizó un estudio para obtener la trayectoria que debía efectuar cada pata en función de la velocidad de avance deseada. La velocidad de avance del robot completo es la contribución de la velocidad del grupo de patas izquierdo con la velocidad del grupo derecho. Estas velocidades se pueden calcular como el cociente entre la distancia que avanza la pata con cada movimiento y el tiempo que tarda en ejecutar el arco. Como todas las trayectorias se ejecutan a una velocidad cartesiana constante, se varía la velocidad incidiendo directamente sobre la trayectoria que realiza cada pata. Se desarrolló un algoritmo iterativo que, a partir de las velocidades de cada grupo de patas, calcula las trayectorias a seguir, permitiendo que el robot se mueva según la altura y el modo de marcha deseados en cada momento. La validez de este control se probó realizando diferentes simulaciones en Gazebo. Se realizaron cuatro pruebas, realizándose en tres de ellas mediciones, siendo la última de ellas de carácter cualitativo. Las dos primeras consistieron en comparar el sistema de control básico del que disponía el robot al inicio del proyecto con el desarrollado. Para ello se crearon dos circuitos de diferentes morfologías en Gazebo y se compararon los tiempos medios de recorrido, realizándose con la misma velocidad de avance. Las dos últimas pruebas evaluaron la capacidad del robot para superar obstáculos y caminar sobre terreno irregular utilizando el nuevo sistema de control. Por último, se implementó el programa desarrollado en el robot real, comprobándose que se comportaba de manera similar a la simulada.

Más información

ID de Registro: 48098
Identificador DC: http://oa.upm.es/48098/
Identificador OAI: oai:oa.upm.es:48098
Depositado por: Biblioteca ETSI Industriales
Depositado el: 16 Oct 2017 07:42
Ultima Modificación: 16 Oct 2017 07:42
  • Open Access
  • Open Access
  • Sherpa-Romeo
    Compruebe si la revista anglosajona en la que ha publicado un artículo permite también su publicación en abierto.
  • Dulcinea
    Compruebe si la revista española en la que ha publicado un artículo permite también su publicación en abierto.
  • Recolecta
  • e-ciencia
  • Observatorio I+D+i UPM
  • OpenCourseWare UPM