Actuación robótica autónoma para ajuste de variables en procesos industriales

Villagra Guilarte, David (2017). Actuación robótica autónoma para ajuste de variables en procesos industriales. Proyecto Fin de Carrera / Trabajo Fin de Grado, E.T.S.I. Industriales (UPM).

Description

Title: Actuación robótica autónoma para ajuste de variables en procesos industriales
Author/s:
  • Villagra Guilarte, David
Contributor/s:
Item Type: Final Project
Degree: Grado en Ingeniería en Tecnologías Industriales
Date: July 2017
Subjects:
Freetext Keywords: Reconocimiento de imágenes, ROS, OpenCV, MoveIt, control automático de variables, brazo Jaco Kinova
Faculty: E.T.S.I. Industriales (UPM)
Department: Automática, Ingeniería Eléctrica y Electrónica e Informática Industrial
Creative Commons Licenses: Recognition - No derivative works - Non commercial

Full text

[thumbnail of TFG_DAVID_VILLAGRA_GUILARTE.pdf]
Preview
PDF - Requires a PDF viewer, such as GSview, Xpdf or Adobe Acrobat Reader
Download (5MB) | Preview

Abstract

En este proyecto se ha buscado dotar a un manipulador móvil (un vehículo móvil incorporado con un brazo manipulador)) de la capacidad de modificar variables en una planta industrial de forma controlada, como lo haría un operador humano. Para ello el manipulador deberá encontrar en el entorno el sensor que ofrezca el valor que se quiera modificar (un voltímetro, un barómetro), el actuador que modifique esta variable, y deberá ser capaz de ajustar de forma autónoma la variable interactuando con el actuador. Con el fin de resolver este problema, se ha usado el brazo robótico Jaco, de Kinova, como manipulador; junto con dos cámaras con conexión USB para que mediante un procesamiento de las imágenes se pueda detectar y ajustar la variable buscada. El objetivo final del proyecto es la creación de un sistema de control en una arquitectura ROS, que pueda operar de manera autónoma.
Con el fin de realizar pruebas se ha diseñado un panel experimental, formado por un voltímetro y una llave-potenciómetro unidos mediante un divisor de tensión a una fuente de alimentación; y un entorno prototipo consistente en el brazo robótico Jaco unido fijo a una mesa. Una cámara se supondrá fija mirando frontalmente al voltímetro, y se usará para detectar el voltaje. Otra cámara se unirá a la palma del brazo Jaco y se encargará de identificar la llave. El sistema de control deberá posicionar el brazo frente a la llave, y con el uso de las pinzas del brazo se deberá girar la llave para regular el valor del voltaje.
En el mundo de la robótica, cada vez son más frecuentes las operaciones llevadas a cabo por robots y manipuladores móviles. Desde robots diseñados para el ocio o la interacción con humanos, a robots para suplir a operadores humanos en acciones peligrosas o complicadas.
De cualquier manera, un robot autónomo necesita de sensores para identificar su entorno y obtener información para realizar las acciones que se le han pedido. Existen multitud de posibles sensores, como sensores fotoeléctricos, ópticos, de ultrasonido, etc. De todos ellos, las cámaras destacan frente a los demás sensores debido a la enorme cantidad de información que ofrecen. Por ello surgió en los años 60 la disciplina de la visión por computador, que busca analizar y procesar las imágenes obtenidas de cámaras. Sin embargo, se descubrió que el procesamiento de imágenes no era tarea sencilla, ya que requería de conocimientos extensos de álgebra y algorítmica, ya que la codificación de las imágenes se realiza en forma de una matriz. De cualquier manera, el uso de la visión artificial permitía a los robots obtener mucha más información de su entorno, que mediante otro tipo de sensor no sería posible.
Por ello, para la realización del proyecto se usarán dos cámaras que obtendrán la información necesaria para el correcto funcionamiento del sistema de control, junto con el brazo manipulador Jaco. Este sistema deberá ser diseñado mediante el uso del framework de robótica ROS, por lo que el sistema deberá estar conformado por nodos que se ejecuten y sean parte de una arquitectura ROS. Para el uso de visión por computador, se ha usado la librería OpenCV, que ofrece algoritmos potentes de procesamiento de imágenes. Para el movimiento del brazo robótico se ha optado por usar el framework de generación de trayectorias MoveIt.
El desarrollo del proyecto consistirá a grandes rasgos en estos objetivos:
1. Desarrollo de un nodo de obtención del voltaje, tanto en voltímetros circulares como rectangulares.
2. Desarrollo de un nodo de detección del actuador, es decir, la llave.
3. Desarrollo de un nodo de movimiento del brazo con el fin de que ajuste el voltaje al valor que se pida. Este nodo deberá indicar movimientos al brazo robótico según la información obtenida en los nodos de detección.
Para la detección del voltaje en un voltímetro circular, se debe analizar previamente la imagen y observar de qué manera se puede acotar, con el fin de obtener el valor del voltaje. Dado que el voltímetro es circular y de color negro, primero se obtiene una imagen binaria con los píxeles más oscuros de la imagen inicial. Segundo, se aplica un algoritmo de detección de círculos, llamado algoritmo de Hough, para obtener el círculo exterior del voltímetro. Una vez conseguido esto, se acota la imagen y se trabaja con la parte interior del voltímetro, que contiene la aguja. Ésta se obtiene aplicando a la imagen cortada el algoritmo de Hough de obtención de líneas. Finalmente, se filtran las líneas obtenidas según su módulo y ángulo, obteniendo únicamente la línea de la aguja. Con el ángulo de la aguja, se puede realizar una conversión a voltios.
En el caso de que la detección sea en un voltímetro rectangular, el principal objetivo es la correcta identificación del rectángulo del voltímetro.
Inicialmente se debe aplicar un algoritmo de detección de bordes, llamado Canny. A continuación se filtran esos bordes, obteniendo los polígonos de 4 lados que existan. De esos posibles polígonos, se debe filtrar el rectángulo buscado usando tanto el tamaño como los ángulos de los vértices. De esta manera se consigue la obtención del rectángulo buscado.
Una vez realizados los nodos de detección, se ha diseñado el nodo de control del brazo. Este nodo hace uso de la API de MoveIt junto con la API de Kinova. Primero se definen restricciones en el entorno de MoveIt, para impedir la posible generación de trayectorias que hagan colisionar el brazo real con algún objeto cercano. En este caso, se incluirá el panel, para evitar que el brazo lo golpee. A continuación se procede al control. Primero se posiciona el brazo centrado a la llave. A continuación, el extremo del brazo se acerca a la llave hasta la posición final, en la que se cierran los dedos de la pinza, para así sujetar la llave. Por último, según el valor del voltaje leído por el nodo de detección de voltaje, y el voltaje que se quiere, se realizará el giro de la llave. Los desplazamientos del brazo han sido diseñados mediante el uso de reguladores proporcionales.
Para el análisis del sistema de control creado, se construyó una escena prototipo, con el fin de verificar el correcto funcionamiento de todos los nodos. Se comprobó el funcionamiento y robustez de los nodos de detección aplicando cambios a las variables del entorno, como menor iluminación, una perspectiva que no sea frontal…
El nodo de detección de la llave se probó colocando la llave en extremos de la imagen, y alterando la iluminación del entorno. Se concluye que el nodo detecta la llave esté en cualquier lugar de la imagen. Ante bajas iluminaciones el nodo es muy robusto, sin embargo ante posibles reflejos de entornos con muchos lúmenes el nodo reduce su funcionalidad, ya que se generan medidas erróneas del tamaño (en píxeles) de la llave.
Por último se comprobó el funcionamiento del sistema de control completo. Se vio que efectivamente se realizaban los movimientos de manera correcta, desde el posicionamiento del extremo en la llave hasta el giro de la llave los ángulos adecuados para regular el valor del voltaje. Sin embargo, la llave-potenciómetro no es capaz de mantener la posición que se le asigna, ya que cae por su propio peso. Por ello los valores finales del voltaje que se obtuvieron en las pruebas no fueron similares al voltaje pedido. Se muestran las dos pruebas más significativas que se realizaron:
1. Ajuste a 5 voltios: con un voltaje inicial de 8’8 voltios, se obtuvieron 2’03 voltios de voltaje final
2. Ajuste a 20 voltios: voltaje inicial de 14’5 voltios; voltaje final de 16’43 voltios.
Vistas las soluciones aportadas mediante las simulaciones y las pruebas en el entorno de operación creado, se concluye que las condiciones inicialmente propuestas, como eran el uso de visión por computador y el uso del brazo Jaco para el control, son factibles. De hecho, el uso tanto del brazo como de cámaras para la detección es una combinación muy interesante con muchas posibilidades.
Como limitaciones del trabajo, los nodos de detección pierden su funcionalidad si se deja de usar una perspectiva frontal, ya que obtendrían medidas incorrectas. Por otro lado, el uso de MoveIt para la generación de trayectorias puede ser problemático, ya que las trayectorias generadas son frecuentemente más complejas y lentas de las que el brazo podría realizar. Por último, el propio brazo Jaco presenta limitaciones. Si se opera a una distancia muy cercana de su origen se pierde maniobrabilidad, pudiendo generar trayectorias que pasen por puntos singulares del robot, interrumpiéndose así el control.
En base a todo lo expuesto, este trabajo realiza aportaciones significativas al uso de manipuladores móviles junto con visión por computador como método de obtención de información del entorno. Si bien las pruebas se han realizado en un panel prototipo y sin restricciones de movimiento en el entorno, el sistema desarrollado es de sencilla implantación en entornos reales. En cualquier caso, esto supone un buen punto de partida para futuras líneas de investigación.

More information

Item ID: 48078
DC Identifier: https://oa.upm.es/48078/
OAI Identifier: oai:oa.upm.es:48078
Deposited by: Biblioteca ETSI Industriales
Deposited on: 11 Oct 2017 06:26
Last Modified: 11 Oct 2017 06:26
  • Logo InvestigaM (UPM)
  • Logo GEOUP4
  • Logo Open Access
  • Open Access
  • Logo Sherpa/Romeo
    Check whether the anglo-saxon journal in which you have published an article allows you to also publish it under open access.
  • Logo Dulcinea
    Check whether the spanish journal in which you have published an article allows you to also publish it under open access.
  • Logo de Recolecta
  • Logo del Observatorio I+D+i UPM
  • Logo de OpenCourseWare UPM