• No se han encontrado resultados

Control de un brazo robótico industrial basado en procesamiento de imágenes para la manipulación de piezas

N/A
N/A
Protected

Academic year: 2018

Share "Control de un brazo robótico industrial basado en procesamiento de imágenes para la manipulación de piezas"

Copied!
100
0
0

Texto completo

(1)

1

Información Importante

La Universidad Santo Tomás, informa que el(los) autor(es) ha(n) autorizado a usuarios internos y externos de la institución a consultar el contenido de este documento a través del Catálogo en línea de la Biblioteca y el Repositorio Institucional en la página Web de la Biblioteca, así como en las redes de información del país y del exterior con las cuales tenga convenio la Universidad.

Se permite la consulta a los usuarios interesados en el contenido de este documento, para todos los usos que tengan finalidad académica, nunca para usos comerciales, siempre y cuando mediante la correspondiente cita bibliográfica se le dé crédito al trabajo de grado y a su autor.

De conformidad con lo establecido en el Artículo 30 de la Ley 23 de 1982 y el artículo 11 de la Decisión Andina 351 de 1993, la Universidad Santo Tomás informa que “los derechos morales sobre documento son propiedad de los autores, los cuales son irrenunciables, imprescriptibles, inembargables e inalienables.”

(2)

2

CONTROL DE UN BRAZO ROBÓTICO INDUSTRIAL BASADO EN PROCESAMIENTO DE IMÁGENES PARA LA MANIPULACIÓN DE PIEZAS

MARIO ANDRÉS DURÁN GÓMEZ NÉSTOR DANILO ARENAS ARDILA

UNIVERSIDAD SANTO TOMÁS

DIVISIÓN DE INGENIERÍAS Y ARQUITECTURA FACULTAD DE INGENIERÍA MECATRÓNICA

(3)

3

CONTROL DE UN BRAZO ROBÓTICO INDUSTRIAL BASADO EN PROCESAMIENTO DE IMÁGENES PARA LA MANIPULACIÓN DE PIEZAS

MARIO ANDRÉS DURAN GÓMEZ NÉSTOR DANILO ARENAS ARDILA

Proyecto presentado como requisito con el fin de optar el título de Ingeniero Mecatrónico.

Director

Edwin Alonso González Querubín, M.Sc. Ingeníero Mecatrónico

UNIVERSIDAD SANTO TOMÁS

DIVISIÓN DE INGENIERÍAS Y ARQUITECTURA FACULTAD DE INGENIERÍA MECATRÓNICA

(4)

4

CONTENIDO Pág.

LISTA DE FIGURAS ... 7

LISTA DE TABLAS ... 9

GLOSARIO ... 10

RESUMEN ... 12

1. CONTROL DE UN BRAZO ROBÓTICO INDUSTRIAL BASADO EN PROCESAMIENTO DE IMÁGENES PARA LA MANIPULACIÓN DE PIEZAS ... 15

1.1 FORMULACIÓN DEL PROBLEMA ... 15

1.2 JUSTIFICACIÓN ... 16

1.3 OBJETIVOS ... 17

1.3.1 Objetivo general ... 17

1.3.2 Objetivos específicos ... 17

2 MARCO DE REFERENCIA... 18

2.1 ESTADO DEL ARTE ... 18

2.2 MARCO TEÓRICO ... 22

2.2.2 Técnicas para tratamiento de imágenes ... 22

2.2.3 Calibración de la cámara ... 26

3. METODOLOGÍA ... 27

4. ROBOT INDUSTRIAL ABB IRB-120 ... 29

4.1 CINEMÁTICA DIRECTA ... 29

4.1.1 Parámetros Denavit-Hartenberg ... 30

4.2 CINEMÁTICA INVERSA ... 34

4.3 POSICIONAMIENTO DE LOS OBJETOS ... 42

4.4 CALIBRACIÓN ... 44

4.4.1 Calibración eje 1 (coincide con la rotación nombrada 𝑸𝟏) ... 45

(5)

5

4.4.3 Calibración eje 3 (coincide con la rotación nombrada 𝑸𝟑) ... 46

4.4.4 Calibración eje 4 (coincide con la rotación nombrada 𝑸𝟒) ... 46

4.4.5 Calibración eje 5 y 6 utilizando la herramienta de calibración (coincide con la rotación nombrada 𝑸𝟓 y 𝑸𝟔 respectivamente) ... 47

4.5 ÁREA DE TRABAJO ... 47

5. TRATAMIENTO DE IMÁGENES ... 49

5.1 IDENTIFICACIÓN DE FIGURAS ... 51

5.2 DESCRIPCIÓN DE TRATAMIENTO DE IMÁGENES ... 52

6. SISTEMA COMPLETO ... 55

6.1 BRAZO ROBÓTICO ... 55

6.2 SISTEMA DE VISIÓN ... 56

6.2.1 Calibración de la cámara ... 56

6.3 PINZA ELECTRO-NEUMÁTICA ... 57

6.3.1 Circuito implementado ... 58

6.4 FLEXPENDANT... 60

6.5 CONTROLADOR IRC5 ... 61

7. LÓGICA DEL SISTEMA ... 63

8. INTERFAZ GRÁFICA ... 67

9. PRUEBAS Y RESULTADOS ... 69

9.1 RESTRICCIÓN DE OBJETOS ... 69

9.2 MANIPULACIÓN DE OBJETOS ... 73

9.3. SIMULACIÓN ... 75

9.4. IDENTIFICACIÓN DE FORMAS ... 78

(6)

6

10.1 CONCLUSIONES ... 87

10.2 TRABAJOS FUTUROS ... 88

BIBLIOGRAFÍA ... 89

(7)

7

LISTA DE FIGURAS

Pág.

Figura 1. Ilustración con métodos de procesamiento de imágenes ... 22

Figura 2. Imagen con balance de grises ... 22

Figura 3. Método de segmentación ... 23

Figura 4. Método de detección de bordes ... 24

Figura 5. Método de crecimiento de regiones ... 24

Figura 6 Formato RGB ... 25

Figura 7. Método de erosión ... 25

Figura 8. Método de dilatación ... 26

Figura 9. Diseño metodológico ... 28

Figura 10. Robot industrial ABB IRB-120 ... 29

Figura 11. Sistema de referencia robot ABB ... 32

Figura 12. Punto de muñeca ... 35

Figura 13. Árbol de posibilidades brazo robótico ... 41

Figura 14. Posicionamiento de coordenadas ... 43

Figura 15 Conversión de píxeles a sistema cegesimal ... 44

Figura 16. Pines de configuración ... 45

Figura 17. Área de trabajo robot ABB IRB 120 ... 48

Figura 18. Objetos con forma primitiva ... 49

Figura 19. (a): figura Original, (b): figura después del procesamiento ... 50

Figura 20. Selección de objetos por área ... 51

Figura 21. Diagrama de flujo Identificación de formas ... 52

Figura 22. Brazo Industrial ABB ... 55

Figura 23. Cámara WEB ... 56

Figura 24. Superficie plana (método complanar) ... 57

Figura 25. Gripper neumático ... 58

Figura 26. Mosfet IRF 540 ... 59

Figura 27. Diodo Rectificador... 59

Figura 28. Circuito implementado ... 60

Figura 29. Flexpendant ... 61

Figura 30. Controlador IRC5 ... 62

Figura 31. Punto inicial ... 63

Figura 32. Posición por encima del objeto ... 64

Figura 33. Punto home con objeto ... 65

Figura 34. Posición de los objetos trasladados ... 66

Figura 35. Interfaz de simulación Robot ABB ... 67

Figura 36. Prueba 2 ... 70

Figura 37 Prueba 3 ... 71

Figura 38. Prueba 4 ... 72

(8)

8

Figura 40. Diagrama Flujo Flexpendant ... 74

Figura 41. Distribución zona de trabajo ... 75

Figura 42. Modelo CAD Robot ABB ... 77

Figura 43. Modelo del robot ABB en Simulink ... 77

Figura 44. Bloque manipulador ... 78

Figura 45. Bloque para cada articulación ... 78

Figura 46. Detección de formas ... 79

Figura 47. Figuras Grandes y pequeñas ... 79

Figura 48. Cuadrado grande y pequeño ... 80

Figura 49. Triángulos con diferente tamaño ... 80

Figura 50. Luz remota apagada ... 81

Figura 51. Luz incidente sobre área trabajo ... 81

Figura 52. Triángulos con diferente acomodación ... 82

Figura 53. Figura no primitiva ... 82

Figura 54. Prueba de Repetitividad ... 83

Figura 55. Prueba con luz ambiente ... 84

(9)

9

LISTA DE TABLAS

Pág.

Tabla 1. Parámetros Denavit-Hartenberg ... 31

Tabla 2. Tabla de resultados ... 83

Tabla 3. Resultados Prueba Luz ambiente ... 85

(10)

10 GLOSARIO

Imagen: Según la definición de Esqueda [1], la imagen es un arreglo bidimensional de píxeles, cada uno de ellos con diferente tonalidad e intensidad luminosa (escala de gris).

Resolución: Es la cantidad de pixeles que definen la imagen [2].

Píxel: Elemento básico de una imagen digital [1].

Tratamiento de imágenes: Es el procedimiento que se le realiza a cualquier imagen digital por medio de una computadora digital [3].

Robot: Según la definición que se le ha otorgado mundialmente se conoce como: “Manipulador multifuncional reprogramable, capaz de mover materiales, piezas, herramientas o dispositivos especiales, a través de movimientos variables programados, para el desempeño de tareas diversas” [4].

Grado de libertad (GDL): Se define como el número de parámetros independientes que se requieren para definir de manera única su posición en el espacio en cualquier instante de tiempo [5].

Brazo robótico: Se define como el conjunto de elementos electromecánicos que propician el movimiento de un elemento terminal (Gripper o herramienta) [6]. Controlador IRC5: Es un dispositivo electrónico industrial, capaz de controlar las señales que en él están disponibles, tales como, señales de dispositivos de entrada, dispositivos de salida, cualquier tipo de comunicación que el dispositivo soporte, entre otros. Es el dispositivo que tiene el mando sobre el proceso en el cual se esté actuando, y encargado de examinar las señales y acciones de dicho proceso [7]. Matlab: Es un sistema de programación y cálculo basado en la manipulación de matrices. El nombre mismo del sistema o paquete de cómputo proviene de la abreviación Matriz Laboratory o laboratorio de matrices [8].

Lenguaje de programación RAPID: Es un software de programación propio de la industria de ABB, los cuales se especializan en la construcción y programación de robots industriales, este lenguaje se puede manejar bajo el entorno de Robot-Studio y el Flexpendant, los cuales son software y dispositivo propio de la empresa [7].

(11)

11

Articulación planar: Esta articulación posee tres grados de libertad, la cual permite dos traslados a lo largo de dos ejes independientes del plano de contacto y una rotación alrededor del eje perpendicular del plano [9].

Articulación cilíndrica: Esta articulación permite la rotación alrededor del eje de la articulación y el traslado independiente a lo largo de ella [9].

Articulación esférica: Este tipo de articulación permite que uno de los eslabones pareados gire libremente en todas las orientaciones posibles respecto al otro alrededor del centro de una esfera. No permite el traslado relativo [9].

Articulación de tornillo: Permite que dos eslabones unidos giren alrededor del eje de la articulación y se trasladen, al mismo tiempo, a lo largo de él. Sin embargo, el traslado no es independiente, sino que se relaciona con la rotación por el paso del tornillo [9].

(12)

12 RESUMEN

El presente libro presenta un método con un algoritmo de tratamiento de imágenes, el cual resuelve el problema del posicionamiento y traslado de objetos de forma primitiva en su área transversal, apoyado en la realización de un algoritmo de tratamiento de imágenes, esto con el fin de obtener características de los objetos que se encuentran dentro de la imagen.

El algoritmo se basa en la comparación de dos imágenes, las cuales son capturadas por una cámara web, una vez se realiza dicha comparación, se procede a obtener las características propias de cada objeto, de las cuales se resaltan: el centroide de cada objeto, el área, entre otras. Una vez se realiza este proceso se aplica el algoritmo de Denavit Hartenberg para así obtener un modelo de la cinemática directa del robot, posteriormente se realiza el procedimiento del desacoplo cinemático del mismo, con el de que, a partir de la posición de cada uno de los objetos, se obtienen el valor de cada articulación del robot industrial ABB, IRB-120. Esto con el fin de posicionar cada objeto y trasladarlo hacia otra área.

También se realiza el reconocimiento de la forma de cada una de los objetos, las figuras admitidas son: círculos, cuadrados y triángulos.

(13)

13

INTRODUCCIÓN

El desarrollo tecnológico presentado en los últimos años ha permitido que tanto el sector industrial como el académico impulsen el desarrollo de proyectos de investigación, los cuales han permitido solucionar los problemas presentados en estas áreas de una forma innovadora, tal como lo es la Visión Artificial. Incursionar en esta línea de investigación permite otorgar una solución a un problema que se refleja sobre todo en el sector automotriz, mediante la emulación de un sistema complejo del cuerpo humano, el sistema de visión, y que con la ayuda de este se tenga un posicionamiento de una extremidad humana, en este caso de un brazo; apoyados en el uso de la robótica y de la inteligencia artificial.

Para solucionar lo anteriormente mencionado, se desea obtener las características de una imagen, en la cual habrá objetos ubicados aleatoriamente, de esta manera realizar el posicionamiento de una pinza electro neumática sobre ellos, la cual está anclada a un brazo industrial ABB de referencia IRB-120, para de esta manera trasladar a cada uno de ellos a un área, la cual se pude observar como parte de otro proceso, en el cual no interviene ni el sistema de visión, ni mucho menos el

brazo robótico.

La realización de este sistema es complejo, ya que, para simular una acción, en la cual se ve involucrado el ojo humano, se deben poseer muchas más variables en cuenta de las que se tienen en la realización del proyecto; por tal motivo se plantea una alternativa que permite llevar a cabo la emulación de este sistema.

Cabe resaltar que en la Universidad Santo Tomás no se había realizado un proyecto de este tipo, debido a que no se usaba el brazo robótico y se contaba con poca información al respecto del dispositivo.

(14)

14

(15)

15

1. CONTROL DE UN BRAZO ROBÓTICO INDUSTRIAL BASADO EN PROCESAMIENTO DE IMÁGENES PARA LA MANIPULACIÓN DE PIEZAS

1.1 FORMULACIÓN DEL PROBLEMA

Para dar solución al problema planteado, el cual es el posicionamiento de objetos por medio de un brazo robótico implementando técnicas de tratamiento de imágenes, se estudiaron varias alternativas para realizar dicho tratamiento, ya que como es de conocimiento, existen varios métodos o técnicas que realizan dicho tratamiento, pero ¿cuál de los métodos utilizados en el tratamiento de imágenes es el más óptimo para el posicionamiento de objetos mediante el uso de un brazo robótico?

Es allí donde se investigan cada uno de ellos, para conocer qué posibilidades brinda cada técnica, cuál o cuáles son sus ventajas en su implementación y cuál de ellos es el que consumiría menos recursos a nivel de computo. A partir de este análisis, se obtiene el método, que se implementa para el proyecto, para así, dar solución a este tema. Además, también se investigó la manera de que el brazo robótico alcanzara cada objeto puesto sobre el área de trabajo, y también se realizó la investigación de la transferencia de los datos al controlador con el cual cuenta el brazo robótico.

A continuación, se enuncian algunos de los trabajos realizados por la comunidad científica, los cuales nos brindaron conocimiento acerca las técnicas y también acerca de la implementación de los algoritmos realizados.

Se conoce que, en la actualidad, las empresas competitivas con expectativas de estabilidad y crecimiento no pueden permanecer estáticas. De acuerdo con Sáez Vacas [10], ni siquiera las organizaciones más flexibles pueden descuidarse, pues los clientes son cada vez más exigentes, demandan mayor calidad y eficacia en los productos. Además, enfatizan en la importancia que deben darle las empresas al entorno y la continuidad en el desarrollo de su capacidad de adaptación, para lograr una ventaja superior a la de sus competidores.

(16)

16 1.2 JUSTIFICACIÓN

El desarrollo de este proyecto, surge como una necesidad de dar uso a una herramienta muy potente en el ámbito industrial, con la cual cuenta la facultad de Ingeniería Mecatrónica de la Universidad Santo Tomás, como lo es el brazo robótico industrial de marca ABB de referencia IRB-120. Este es un elemento de vital importancia en los procesos de tecnificación, o en los procesos automatizados, ya que además de brindar seguridad a la persona que lo opera, este elemento puede realizar tareas repetitivas que requieren de mucha precisión y que opera altas y bajas velocidades, cualidades con las que el humano cuenta, pero no con la misma eficacia que lo haría un robot.

(17)

17 1.3 OBJETIVOS

1.3.1 Objetivo general

Diseñar una interfaz para el manejo de un brazo robótico industrial mediante técnicas de tratamiento de imágenes para la manipulación de piezas en su espacio de trabajo.

1.3.2 Objetivos específicos

 Diseñar un algoritmo capaz de identificar objetos primitivos tales como prismas y cilindros, mediante técnicas basadas en el tratamiento de imágenes, para conocer las coordenadas del objeto dentro del área de trabajo

 Diseñar un algoritmo capaz de calcular las coordenadas articulares del brazo ABB, aplicando el método de cinemática inversa, para que logre manipular el objeto.

(18)

18

2 MARCO DE REFERENCIA

2.1 ESTADO DEL ARTE

Los sensores son la forma de comunicación de las máquinas con el entorno, gracias a ellos permiten adquirir variables como temperatura, proximidades, colores, entre otros, variables que brindan a la máquina una idea de lo que sucede a su alrededor. Sin embargo, con los grandes avances tecnológicos que se han evidenciado en los últimos años, los sensores ya no son suficientes, pues cada vez es mayor la exigencia de tener un conocimiento más amplio del entorno; razón por la cual se ha hecho necesario contar con una vista artificial para obtener la mayor información posible del entorno, de esta forma se pretende tomar decisiones más acertadas. A partir de una revisión en bases de datos como Academic Search Complete, ScienceDirect, Scopus, Google Académico, IEEE, la red de Revistas Científicas de América Latina y el Caribe (Redalyc), entre otros, se presenta a continuación la información actual más relevante de los estudios e investigaciones referentes a la relación entre lectura y tratamiento de imágenes y brazos robóticos.

En el 2014, Alberto Rodríguez Bermejo [14] en su artículo “Desarrollo y programación de un brazo antropomórfico”, el autor evidencia que se ha llevado la habilidad cognitiva a un siguiente nivel, esto mediante el uso e implementación de un Kinect con cámara de formato RGB, dicha cámara puede determinar el vector posición de un objeto con respecto a un punto de referencia el cual es denominado punto de origen. Esta aplicación es un gran avance en cuanto al reconocimiento del entorno se refiere, ya que determina la profundidad a la que se encuentran los objetos, es decir, es posible ver el mundo en 3-D.

El artículo “Interacción entre webcam y brazo robot para el posicionamiento del efector final” de Joaquín Macanás Valera [15], en el cual el autor trabajó un proyecto con un Kinect y una cámara RGBW. Se evidencia que se mejoró notoriamente las condiciones de iluminación del entorno, este proceso se realizó debido a una propiedad que posee este tipo de cámaras, las cuales pueden manipular el brillo existente en la imagen (gracias al componente W del RGBW que hace referencia a White), además utilizando diferentes métodos a los usados en el proyecto anteriormente descrito.

Una aplicación enfocada a las personas invidentes, se describe en el artículo “Sistema de identificación de objetos mediante RFID para un robot personal” escrito

(19)

19

Además, una terminal robótica personal, la cual esté en capacidad de prestar asistencia personal mediante un sistema de radiofrecuencia. Este sistema lee la información del producto, accede a la nube y es capaz de transferir toda la información disponible al usuario. Un ejemplo presentado, es el caso de los medicamentos, el sistema dispone del nombre del medicamento, posología, modo de empleo, indicaciones, utilidad y la fecha de caducidad, datos con los cuales se orienta al usuario en la toma adecuada de la medicina, sin embargo, se debe mencionar que en este proyecto no se utiliza un sistema de visión, sino que tiene otro sistema capaz de identificar las características mencionadas anteriormente. Por otra parte, en el campo de la robótica, también se han desarrollado estudios donde se implementen técnicas de imitación, las cuales son útiles al juntarlas con la inteligencia artificial, esta combinación da la posibilidad de aprender de las acciones humanas tan sólo con la observación del movimiento. En el artículo “Reconstrucción 3D-2D de gestos usando información de vídeo monocular aplicada a un brazo robótico” desarrollado por Sandra Nope et al [17], se enfatiza en la importancia que tiene implementar esta clase de técnicas por imitación en los diferentes procesos productivos y actividades cotidianas de las personas, todo en búsqueda de la mejora de la calidad de vida humana.

En el proyecto “Sistema de visión artificial para el reconocimiento y manipulación de objetos utilizando un brazo robot” realizado por Eddie Sobrado Malartida y et al. Tafur Sotelo [18] en el año 2011, los autores desarrollan un sistema el cual se puede reconocer información de productos para su ubicación en un lugar indicado. La aplicación fue realizada con medicamentos que debían ser ubicados correctamente en su lugar designado dentro de un estante. Por medio del reconocimiento del producto y a través del código de barras, la cámara estaba en capacidad de acceder a la base de datos, ubicar la posición del medicamento en el estante y llevarlo al lugar por medio del brazo robótico.

Otros estudios que complementan la utilización de la lectura y tratamiento de imágenes con los brazos robóticos se describen a continuación. En el artículo escrito por Gutiérrez Corbacho [19] en asociación de los departamentos de Ingeniería Electrónica e Ingeniería Automática Industrial, el autor desarrolló una interfaz por medio del software matemático MATLAB, para la comunicación con un brazo robótico ABB IRB 120, utilizando un socket de comunicación, el cual se encargará de enviar y procesar los datos que se envían al robot.

(20)

20

selección entre tres tipos de herramientas. Según unos parámetros previamente definidos. Una vez escogida la herramienta, se verifica si se necesita realizar una trayectoria de tipo continua o discontinua. Cabe rescatar en este artículo la elección del software utilizado en la realización del proyecto, ya que estos se adaptan bien a las necesidades del usuario, resaltando aspectos como la comunicación entre el software “RobotStudio” y “Matlab” y los diferentes tipos de tratamiento de imágenes para la identificación de los parámetros.

En el 2014, los autores del artículo: “Hybrid Eye-to-hand and Eye-in-hand visual servo system for parallel robot conveyor object tracking and fetching” [21]. El autor emplea una cámara de baja resolución para detectar objetos que entran en el campo de visión de un robot paralelo, y de esta manera calcular la velocidad, una vez se logra lo anteriormente mencionado, entra en funcionamiento una cámara de alta resolución, ya que con ella es posible obtener la posición del objeto con gran precisión. Según el artículo, se observa que, en los resultados obtenidos, la eficiencia de este sistema es bastante alta, reduciendo tiempos en el procesamiento y calculando de forma precisa y exacta la posición de los objetos que el brazo paralelo debe manipular, además, establecieron un algoritmo mediante el cual el brazo podía seleccionar la prioridad de los objetos. Las cámaras miden las distancias en píxeles, por lo cual es necesario calibrar la cámara, en el 2011, Buitrago Salazar Germán y Ramos Sandoval Olga en su artículo: “Sistema de servo control visual empleando redes neuronales y filtros en el dominio de CIELAB.” Exponen un método diferente en el cual se explica el uso de redes neuronales de tipo feed-forward, y además del uso de filtros en los datos adquiridos por el Kinect, para determinar la posición de los objetos; al final se observa que este método arroja mejores resultados que algoritmos expuestos en dicho artículo [22].

Un método similar fue plasmado en el artículo: “Adaptive 2D visual servoýng using variable structure neural networks”, del presente año, donde los autores: Hassen Mekki y Khaled Kaaniche, calibran la cámara en 2-D y utilizan una red neuronal para estimar la profundidad ya que este valor no es constante puesto que el robot en el que se implementa el sistema servo visual es un robot móvil, también implementaron una red neuronal variable (puede aumentar el número de neuronas o disminuirlas durante el control del sistema), para así mejorar el procesamiento del sistema de acuerdo a las necesidades del proceso [23].

(21)

21

la precisión de las longitudes calculadas, los resultados obtenidos del proyecto exponen la gran fiabilidad de este método incluso en tiempo real [24].

Existen diferentes formas para calibrar la cámara y de esta forma asegurar una correcta medición en unidades longitudinales, pero también existen diferentes maneras para no hacer uso de dicha calibración, como la expuesta en el artículo: “Visual Servo Regulation of Wheeled Mobile Robots With an Uncalibrated Onboard Camera” del año 2015 cuyos autores: Baoquan Li et al, exponen métodos de control para un robot móvil, mediante el cual determinan la posición del objeto respecto al robot, sin necesidad de hacer uso de longitudes, por lo tanto sin necesidad de calibrar la cámara y las pruebas se realizaron sin calibrar la cámara bajo ningún método [25].

Finalmente se muestran dos artículos más, los cuales demuestran la gran precisión y fiabilidad a la cual se pueden llevar estos sistemas, el primero es: “A Multi-Sensorial Hybrid Control for Robotic Manipulation in Human-Robot Workspaces.” Este artículo fue publicado en el 2011 por: Pomares Jorge et al, en el cual se expone como mediante el procesamiento de imágenes en tiempo real un robot es capaz de reconocer el entorno y moverse libremente en él, incluso existiendo Humanos presentes en su zona de trabajo sin llegar a causar ningún daño a dichos seres [26]. El segundo artículo publicado el 2014 por Liu Kun, et al, llamado: “A robust visual servo control system for narrow seam double head welding robot.” Demuestran que mediante el tratamiento de imágenes es posible calcular la trayectoria de un cordón de soldadura cuyo ancho es de 0,2 milímetros de forma precisa, generando resultados satisfactorios, tal cual como se muestra en los resultados presentados en dicho artículo [27].

(22)

22 2.2 MARCO TEÓRICO

2.2.1 Procesamiento de imágenes. Según la definición de Esqueda [1], el procesamiento busca mejorar la calidad de las imágenes digitales, eliminando alteraciones que puedan dañarla o distorsionarla, esto se realiza con el fin de extraer características específicas de la imagen. Ver Figura 1.

Fuente: Oka. Trussell. The angle ortodontis.

2.2.2 Técnicas para tratamiento de imágenes

2.2.2.1 Balance de grises. Es el método utilizado para convertir una imagen en formato RGB, a una imagen dentro del rango de colores denominados cromáticos definidos así por Albert Munsell [29]. Ver Figura 2.

Fuente: HAYA. Equilibrio de grises

Figura 1. Ilustración con métodos de procesamiento de imágenes

(23)

23

2.2.2.2 Segmentación. Según la definición de La Serna [29], la segmentación es un método que divide una imagen en subconjuntos, uno de los criterios de selección es que los píxeles tengan un mismo valor. Ver Figura 3.

Fuente: HIDALGO. FLORES. LÓPEZ MARTÍNEZ. Diseño de un sistema de reconocimiento de placas utilizando MATLAB. Pág. 10

2.2.2.3 Detección de bordes. La detección de bordes, es un método en el cual resalta de una imagen a blanco y negro los objetos que dentro de ella aparecen, mostrando los límites de los objetos con una tonalidad blanca, la cual se define como borde, el resto de la imagen se muestra de tonalidad color negro. Ver Figura 4.

(24)

24

Fuente: PROCESADO DE IMÁGENES A COLOR. Transformamos la imagen RGB a HSI

2.2.2.3 Método de crecimiento de regiones. El método de crecimiento es un proceso en el cual se agrupan píxeles denominados “píxeles vecinos” ya que presentan características similares entre ellos, estos conjuntos son denominados puntos semilla, la cual posteriormente se hará crecer, de manera que al crecer la semilla [29], lo hará también el grupo asociado a ella. Ver Figura 5.

Figura 5. Método de crecimiento de regiones

Fuente: LAMUS. NIETO. HERNANDEZ. Detección semiautomática de contornos en imágenes de ecocardiografía modo M

(25)

25

2.2.2.5 Formato RGB. El formato RGB [1], se basa en la combinación de tres matrices, a las cuales se les denomina: tonalidad color rojo, tonalidad color verde y tonalidad color azul. Ver figura 6.

Fuente: Blanco y negro. Un inciso sobre el RGB. Métodos basados en luminosidad

2.2.2.6 Método de erosión. El método de erosión morfológica se basa en el agrupamiento de píxeles vecinos, para posteriormente realizar un método de reducción a dichos grupos [30]. Ver Figura 7.

Fuente: RIBERO. SAINZ-COSTA. HERRERA. CONESA. Optimización evolutiva de un método de discriminación visual entre mono y dicotiledóneas

Figura 6 Formato RGB

(26)

26

2.2.2.7 Método de dilatación. El método de dilatación morfológica, consiste en el agrupamiento de píxeles vecinos, para posteriormente realizar un método de aumento de dichos grupos [30]. Ver Figura 8.

Figura 8. Método de dilatación

Fuente: RIBERO. SAINZ-COSTA.HERRERA. CONESA. Optimización evolutiva de un método de discriminación visual entre mono y dicotiledóneas

2.2.3 Calibración de la cámara

(27)

27

3. METODOLOGÍA

Para la realización del proyecto, se presenta un esquema que se muestra en la Figura 9.

La metodología que se presenta, se desarrolla a lo largo del documento, separándolo en tres grandes grupos los cuales son: la robótica, en la cual se realiza el desacoplo cinemático del brazo industrial ABB IRB-120, otra sección importante, la cual trata acerca del proceso en el tratamiento de imágenes, donde primeramente se estudian los diferentes métodos para realizar el tratamiento de imágenes, y posteriormente se escoge el método que mejor se adapte a las necesidades que se quieren. Por último, el diseño de la interfaz gráfica, en donde se presentarán los valores articulares, el reconocimiento de formas y las imágenes del tratamiento de las mismas, aquí el usuario puede interactuar de manera directa con el brazo robótico por medio de dicha interfaz. Por último, se hará la transferencia de los valores articulares al controlador del brazo industrial ABB.

(28)

28 Fuente: Autores

Figura 9. Diseño metodológico

Implementación del algoritmo de tratamiento de imágenes, Denavit-

Hartenberg y Cinemática inversa

Obtención de parámetros de Denavit- Hartenberg

Obtención de la cinemática inversa del robot

Diseño del algoritmo Denavit- Hartenberg

Diseño del algoritmo de la cinemática inversa

Posicionamiento de la cámara con respecto a la base del robot

Posicionamiento del objeto con respecto al robot

Diseño del algoritmo para el tratamiento de imágenes

Escogencia de la cámara para el tratamiento de imágenes

Captura de las imágenes a comparar

Convertir la imagen a blanco y negro

Calcular las propiedades de los objetos dentro de la imagen

Buscar objetos con un rango de área

Eliminar objetos que no estén dentro del rango de área

Obtención de la posición de cada uno de los objetos (valor en píxel)

Conversión de valor en píxel a longitud

Diseño de la interfaz grafica

Pruebas finales

(29)

29

4. ROBOT INDUSTRIAL ABB IRB-120

El robot ABB, perteneciente a los robots industriales de tipo antropomórfico, que se muestra en la Figura 10, posee 6 articulaciones de tipo rotacional, es uno de los más pequeños en el mercado para muchas aplicaciones, pesa solamente 25 Kg y puede manipular hasta 3 Kg (4 kg para la muñeca en posición vertical), con un área de trabajo de 580 mm2 por la cual el robot puede moverse de manera libre. Su relación coste-efectividad, le permite ser una opción segura para conseguir altas producciones con una baja inversión [20].

Fuente: ABB INDUSTRIAL ROBOTS

4.1 CINEMÁTICA DIRECTA

La cinemática directa permite determinar la posición y la orientación del efector final con respecto a la base del robot, partiendo de las dimensiones de cada uno de los eslabones del brazo robótico y el valor de las articulaciones del mismo. Conociendo estos parámetros de coordenadas y aplicando el algoritmo de Denavit-Hartenberg, el cual consiste en conocer la ubicación de cada uno de los sistemas articulares ubicados en cada una de las articulaciones, con respecto a la articulación anterior, y así conocer todo como se referencia el sistema completo. De esta manera, es

(30)

30

posible conocer el punto donde estará ubicado el efector final y la orientación del mismo con respecto a la base del robot.

4.1.1 Parámetros Denavit-Hartenberg

A continuación, se presentarán los pasos requeridos para obtener la cinemática directa por medio de este algoritmo [9], los cuales son:

 Suponga que el eje i denota el eje de la articulación que conecta el eslabón 𝑖 − 1 al vínculo 𝑖

 Un sistema de coordenas 𝑋, 𝑌, 𝑍 se adjunta al extremo del eslabón 𝑖 − 1, no al eslabón 𝑖, para 𝑖 =, … 𝑛 + 1

 Elija el eje 𝑍 a lo largo del eje de la articulación 𝑖, cuyo sentido positivo puede tomarse hacia cualquier dirección del eje.

 Ubique el origen 𝑂 en la intersección del eje 𝑍 con la perpendicular común a 𝑍𝑖−1 y 𝑍𝑖. también localice 𝑂𝑖 sobre Z con la perpendicular común a 𝑍𝑖 y 𝑍𝑖 + 1

 Elija el eje 𝑋𝑖 a lo largo de la perpendicular común a los ejes 𝑍𝑖 − 1 y 𝑍𝑖 con la dirección del primero al último.

 Elija el eje 𝑌𝑖 para que se complete con un sistema de referencia derecho

o Para el sistema 1 que se une a la base fija, es decir, el eslabón 0, solo se especifica el sentido de los ejes 𝑍𝑖. Entonces 𝑂1 y 𝑋1 pueden elegirse en forma arbitraria.

o Para el ultimo sistema 𝑛 + 1. Por ende, el sistema 𝑛 + 1 puede elegirse en forma arbitraria.

o Cuando dos ejes consecutivos son paralelos, la perpendicular común entre ellos no se define de manera única.

o Cuando se cruzan dos ejes consecutivos, el sentido 𝑋𝑖 es arbitrario

o Cuando la articulación i es prismática, solo se determina el sentido del eje 𝑍𝑖 mientras que la ubicación de 𝑂𝑖 es arbitraria.

En la Tabla 1 se presentan los valores de los parámetros de Denavit-Hartenberg, donde 𝜃𝑖 representa la rotación en la coordenada 𝑧, 𝑏𝑖 es la traslación que se debe

realizar en la coordenada 𝑧, 𝛼𝑖 representa la traslación en la coordenada x, y ∝𝑖

representa la rotación que se realiza en la coordenada x, todo con el fin de que el sistema anterior coincida con el siguiente sistema. Los valores de 𝑄𝑛son los valores

(31)

31

medidas de cada uno de los eslabones del robot, en la Figura 11 se presentan cada uno de los valores anteriormente mencionados.

Tabla 1. Parámetros Denavit-Hartenberg

Fuente: Autores

ARTICULACIONES 𝜽𝒊 𝒃𝒊 𝜶𝒊 ∝𝒊

1 𝑄1+ 90° 𝐿1 0 90°

2 𝑄2+ 90° 0 𝐿2 0

3 𝑄3 0 𝐿3 90°

4 𝑄4 𝐿4 0 -90°

5 𝑄5 0 0 90°

(32)

32

Fuente: Adaptado de http://new.abb.com/products/robotics/industrial-robots/irb-120/irb-120-cad

Figura 11. Sistema de referencia robot ABB

𝑌2

𝑍2

𝑋0 𝑌0

𝑍0 𝑄1

𝑄2

𝑋1 𝑌1

𝑍1 𝑋2

𝑄3 𝑌3

𝑋3

𝑍3 𝑄4

𝑍5

𝑄6

𝑌6 𝑄5

𝑋6

𝑍6 𝑋5

𝑌5 𝑋4

𝑌4

𝑍4

𝐿1 𝐿2 𝐿3

(33)

33

Con los valores de la Tabla 1 se pueden realizar las matrices de transformación de cada una de las articulaciones, con las cuales se realiza la cinemática directa del robot, las cuales se representan con las ecuaciones (1), (2), (3), (4), (5) y (6). Cada una de estas matrices representa el posicionamiento del sistema analizado con respecto al anterior, en ellas se muestran los valores en que se debe trasladar y rotar cada uno de ellos para que ambos sistemas coincidan. En cada una de ellas se representa de manera general, el valor que se debe adquirir, los valores de los ángulos y de las distancias de las articulaciones.

𝐴01= [

𝐶𝑜𝑠𝑄1+90 0 𝑆𝑖𝑛𝑄1+90 0 𝑆𝑖𝑛𝑄1+90

0 0

0 −𝐶𝑜𝑠𝑄1+90 0 1 0 𝐿1

0 0 1 ] (1)

𝐴12 =

[

𝐶𝑜𝑠𝑄2+90 −𝑆𝑖𝑛𝑄2+90 0 𝐿2 ∗ 𝐶𝑜𝑠𝑄2+90

𝑆𝑖𝑛𝑄2+90 0 0

𝐶𝑜𝑠𝑄2+90 0 𝐿2∗ 𝑆𝑖𝑛𝑄2+90 0 1 0

0 0 1 ] (2)

𝐴23= [

𝐶𝑜𝑠𝑄3 0 𝑆𝑖𝑛𝑄3 𝐿3∗ 𝐶𝑜𝑠𝑄3 𝑆𝑖𝑛𝑄3

0 0

0 −𝐶𝑜𝑠𝑄3 𝐿3 ∗ 𝑆𝑖𝑛𝑄3 1 0 0 0 0 1

]

(3)

𝐴34= [

𝐶𝑜𝑠𝑄4 0 −𝑆𝑖𝑛𝑄4 0 𝑆𝑖𝑛𝑄4

0 0

0 𝐶𝑜𝑠𝑄4 0 −1 0 𝐿4

0 0 1 ] (4)

𝐴45= [

𝐶𝑜𝑠𝑄5 0 𝑆𝑖𝑛𝑄4 0 𝑆𝑖𝑛𝑄5

0 0

−1 0 00 −𝐶𝑜𝑠𝑄4 0 0 0 1

]

(34)

34

𝐴56= [

𝐶𝑜𝑠𝑄6 −𝑆𝑖𝑛𝑄6 0 0 𝑆𝑖𝑛𝑄6

0 0

𝐶𝑜𝑠𝑄6 0 0

0 1 𝐿5

0 0 1 ] (6)

Una vez establecidas cada una de las matrices, se procede a realizar la multiplicación de cada una de ellas como se muestra en la ecuación (7), y esto da como resultado la posición del sistema 𝐴56 con respecto al 𝐴01

𝑻 = 𝐴01. 𝐴12. 𝐴23. 𝐴34. 𝐴45. 𝐴56 (7)

4.2 CINEMÁTICA INVERSA

(35)

35

Fuente: Adaptado de http://new.abb.com/products/robotics/industrial-robots/irb-120/irb-120-cad

Para culminar el cálculo de la cinemática inversa, se debe realizar el proceso de conocer cuál es el punto de muñeca que el brazo robótico posee, este es un punto en el cual se conocerá el valor de las últimas tres articulaciones para alcanzar el punto establecido. Ver Figura 12. Este proceso consiste en obtener 3 vectores, en

Figura 12. Punto de muñeca

𝑌2

𝑍2

𝑋0 𝑌0

𝑍0 𝑄1

𝑄2 𝑋

1 𝑌1 𝑍1 𝑋2 𝑄3 𝑌3 𝑋3 𝑍3 𝑄4 𝑍5 𝑄6 𝑌6 𝑄5 𝑋6 𝑍6 𝑋5 𝑌5 𝑋4 𝑌4 𝑍4 𝐿1 𝐿2 𝐿3

𝐿4 𝐿5

𝑃ℎ 𝑃𝑚

(36)

36

el punto 𝑃𝑚 se realiza de nuevo el algoritmo de Denavit-Hartenberg para conocer la

nueva matriz de transformación de sistema tres 𝐴23𝐴𝑢𝑥.

En este caso el punto 𝑃_𝑚 donde se cortan las tres últimas articulaciones, está justo sobre el origen O5 del sistema S5 y cuyo vector asociado al sistema S0 de la base

del robot es:

T mz my

mx P P

P

  0 5

m O O

P

Las coordenadas de Ph, vector conocido que indica la posición que se desea para el extremo del robot:

T hz hy

hx P P

P

  0 6

h OO

P

En la Figura 12 se observa que la magnitud del vector PdO5O6 que va desde la muñeca hasta el extremo del robot es 𝐿5 su dirección es la misma que la del conocido vector unitario Z6ah

ahx ahy ahz

T; por lo tanto:

T hz hy hx

5a a a

L

  5 6

d OO

P

A partir de los vectores Ph y Pd, se puede obtener Pm mediante una suma de lazo

vectorial:                                                     hz 5 hz hy 5 hy hx 5 hx hz hy hx 5 hz hy hx mz my mx a L P a L P a L P a a a L P P P P P P m d h m h d m P P P P 0 P P P

𝐴23𝐴𝑢𝑥. 𝜽𝒊 𝒃𝒊 𝜶𝒊𝒊

𝑄3− 𝐴𝑡𝑎𝑛(𝐿4

𝐿3) 0 √𝐿4

(37)

37

Las ecuaciones (10), (11) y (12) representan los valores (x, y, z) respectivamente de forma general para cualquier valor que adquieran cada una de las variables. A su vez 𝑄𝑖 representa el valor que la articulación. Dichas ecuaciones se pueden tomar de las posiciones de la matriz de transformación T ecuación (7), las cuales se distribuyen: para la posición X se toma la posición (1,4) “(fila, columna)”, la coordenada en Y será la posición (2,4), y la coordenada Z se obtiene de la posición (3,4).

𝑅 = √(𝐿3)2+ (𝐿

4)2 (8)

ℎ = atan (𝐿4 𝐿3

⁄ ) − 𝑄3 (9)

𝑃𝑚𝑥 = 𝐿2. 𝑆𝑖𝑛𝑄1. 𝑆𝑖𝑛𝑄2. +𝐶𝑜𝑠ℎ. 𝑆𝑖𝑛𝑄1. 𝑆𝑖𝑛𝑄2. 𝑅 − 𝑆𝑖𝑛ℎ. 𝐶𝑜𝑠𝑄2. 𝑆𝑖𝑛𝑄1. 𝑅 (10)

𝑃𝑚𝑦 = 𝑆𝑖𝑛. 𝐶𝑜𝑠𝑄1. 𝐶𝑜𝑠𝑄2. 𝑅 − 𝐶𝑜𝑠. 𝐶𝑜𝑠𝑄1. 𝑆𝑖𝑛𝑄2. 𝑅 − 𝐿2. 𝐶𝑜𝑠𝑄1. 𝑆𝑖𝑛𝑄2 (11) 𝑃𝑚𝑧 = 𝐿1+ 𝐿2. 𝐶𝑜𝑠𝑄2+ 𝐶𝑜𝑠ℎ. 𝐶𝑜𝑠𝑄2. 𝑅 + 𝑆𝑖𝑛ℎ. 𝑆𝑖𝑛𝑄2. 𝑅 (12)

Para obtener el valor de las tres primeras articulaciones se deben elevar al cuadrado las ecuaciones (10), (11) y (12), luego de esto sumarlas, posteriormente se despeja y se obtiene la ecuación (13).

Como se observa en la ecuación (9) se encuentra el término de 𝑄3, este es el valor

que se debe hallar, por eso se despeja el valor en la ecuación (15) a partir del resultado en (14).

𝐶𝑜𝑠 = 𝑃𝑚𝑥2+ 𝑃𝑚𝑦2+ (𝑃𝑚𝑧 − 𝐿1)2 − 𝐿22− 𝐿23− 𝐿24 2. 𝐿2. 𝑅

(13)

𝑄3 = atan (𝐿4⁄ ) − 𝐶𝑜𝑠𝐿3 ℎ (14)

𝑎 = 𝑆𝑖𝑛ℎ. 𝑅 (15)

(38)

38

Para obtener el valor de 𝑄1 se factoriza de (10) y (11) el 𝐶𝑜𝑠𝑄1y 𝑆𝑖𝑛𝑄1, se observa

que tienen el mismo factor común, por este hecho se puede obtener el valor de la articulación 𝑄1, hecho previamente la operación 𝑎𝑡𝑎𝑛2. Donde el principio de esta

operación es ubicar la coordenada 𝑥 y después la 𝑦 de la siguiente manera: 𝑎𝑡𝑎𝑛2(𝑥, 𝑦).

𝐶𝑜𝑠𝑄1 = −

𝑃𝑚𝑦 𝐿2. 𝑆𝑖𝑛𝑄2 − 𝑅. 𝑆𝑖𝑛 ( atan(𝐿4

𝐿3)−𝑄3−𝑄2)

(17)

𝑆𝑖𝑛𝑄1 = 𝑃𝑚𝑥

𝐿2. 𝑆𝑖𝑛𝑄2− 𝑅. 𝑆𝑖𝑛atan(𝐿4

𝐿3)−𝑄3−𝑄2

(18)

Por último, para obtener el valor de 𝑄2 las ecuaciones (19) y (20) son el resultado

de la factorización de las ecuaciones (10) y (11) respectivamente, y a partir de ellas se obtiene el valor de la articulación, el resultado se muestra en las ecuaciones (21) y (22). Para ver resolución ver Anexo A.

𝑎 =𝐿2 𝑅1+

𝐶𝑜𝑠𝑄3

𝑅2 +

𝐿4. 𝑆𝑖𝑛𝑄3 𝐿3. 𝑆𝑖𝑛𝑄2

(19)

𝑏 =𝑆𝑖𝑛𝑄3

𝑅2 −

𝐿4. 𝐶𝑜𝑠𝑄3 𝑅2. 𝐿3

(20)

𝐶𝑜𝑠𝑄2 =

(𝑃𝑚𝑧 − 𝐿1). 𝑆𝑖𝑛𝑄1. 𝑎 + 𝑏. 𝑃𝑚𝑥

𝑆𝑖𝑛𝑄1. 𝑅1(𝑏2+ 𝑎2) (21)

𝑆𝑖𝑛𝑄2 =𝑃𝑚𝑥 − 𝐶𝑜𝑠𝑄2. 𝑏. 𝑆𝑖𝑛𝑄1. 𝑅1 𝑆𝑖𝑛𝑄1. 𝑅1. 𝑎

(22)

Una vez conocidos los valores de las tres primeras articulaciones ( 𝑄1, 𝑄2y 𝑄3), se

procede a calcular el valor de las últimas tres articulaciones ( 𝑄4, 𝑄5y 𝑄6). Para ello se retoman los valores de la matriz 𝑇ecuación (7).

(39)

39

𝑄ℎ𝑆𝑖𝑚𝑏 = 0 6

Q = 0Q11Q22Q33Q44Q55Q6

De igual manera se extraen los valores de matriz objetivo 𝑇

           hz hz hz hy hy hy hx hx hx a o n a o n a o n hObj Q

Dada la equivalencia entre las matrices 𝑄ℎ𝑆𝑖𝑚 y 𝑄ℎ𝑂𝑏𝑗 se realiza su igualación:

hObj hSim

Q

Q

hObj

Q

Q

Q

Q

Q

Q

Q

11 22 33 44 55 6

0 (23)

Puesto que 0

Q

1

,

1

Q

2 y 3 2

Q

son matrices conocidas (dependen de 𝑄1 , 𝑄2 y𝑄3), la ecuación (23) se reestructura haciendo:

3 2 2 1 1 0 3 0

Q

Q

Q

Q

Y 3

Q

6

3

Q

44

Q

55

Q

6

 

Q QhObj

Q 3 1 0 6

3   (24)

Ahora nombrando como

t

el resultado de la parte derecha de la ecuación (24):

 

             33 32 31 23 22 21 13 12 11 1 3 0

t

t

t

t

t

t

t

t

t

hObj Q Q

t

(25)

Resolviendo la parte izquierda de la ecuación (24) y e igualando a la parte izquierda se obtiene lo siguiente

[

𝐶𝑜𝑠𝑞4. 𝐶𝑜𝑠𝑞5. 𝐶𝑜𝑠𝑞6− 𝑆𝑖𝑛𝑞4. 𝑆𝑖𝑛𝑞6 −𝐶𝑜𝑠𝑞6. 𝑆𝑖𝑛𝑄4− 𝐶𝑜𝑠𝑄4. 𝐶𝑜𝑠𝑄5. 𝑆𝑖𝑛𝑄6 𝐶𝑜𝑠𝑄4. 𝑆𝑖𝑛𝑄5 𝐶𝑜𝑠𝑄4. 𝐶𝑜𝑠𝑄6+ 𝐶𝑜𝑠𝑄5. 𝐶𝑜𝑠𝑄6. 𝑆𝑖𝑛𝑄4

−𝐶𝑜𝑠𝑄6. 𝑆𝑖𝑛𝑄5

𝐶𝑜𝑠𝑄4. 𝐶𝑜𝑠𝑄6− 𝐶𝑜𝑠𝑄5. 𝑆𝑖𝑛𝑄4. 𝑆𝑖𝑛𝑄6 𝑆𝑖𝑛𝑄4. 𝑆𝑖𝑛𝑄5 𝑆𝑖𝑛𝑄5. 𝑆𝑖𝑛𝑄6 𝐶𝑜𝑠𝑄5

]

= [𝑡11

𝑡12 𝑡31 𝑡21

𝑡31 𝑡𝑡2223 𝑡𝑡3233]

(40)

40

Para hallar el valor de 𝑄5 se toman las posiciones de 𝑡31 y 𝑡32 de la ecuación (26),

elevándolas al cuadrado y sumando los dos resultados se obtiene: 𝑆𝑖𝑛𝑄𝑠 = ±√𝑡312 + 𝑡

322

(27)

Se puede observar que la otra componente de 𝑞5 se encuentra en la posición 𝑡33 de la ecuación (26), se llega a la solución para esta articulación de esta manera:

𝑄5𝐼 = 𝑎𝑡𝑎𝑛 2(+√𝑡312 + 𝑡322 , 𝑡33) (28)

𝑄5𝐼𝐼 = 𝑎𝑡𝑎𝑛 2(−√𝑡312 + 𝑡322 , 𝑡33)

(29)

Para hallar el valor de 𝑄4 se toma las posiciones 𝑡23y 𝑡13 de la ecuación (26) y se despeja la variable, después se realiza el procedimiento de expresar las ecuaciones (30) y (31) dentro de la función 𝑎𝑡𝑎𝑛2 (32)

𝑆𝑖𝑛𝑄4 = 𝑡23 𝑆𝑖𝑛𝑄5

(30)

𝐶𝑜𝑠𝑄4 = 𝑡13 𝑆𝑖𝑛𝑄5

(31)

𝑄4 = 𝑎𝑡𝑎𝑛2( 𝑡23 𝑆𝑖𝑛𝑄5,

𝑡13 𝑆𝑖𝑛𝑄5)

(32)

Para hallar el valor de 𝑄6 se toman las posiciones 𝑡32 y 𝑡31 de la ecuación (26), se

llega a la solución de esta articulación de la siguiente manera: (35)

𝑆𝑖𝑛𝑄6 = 𝑡32 𝑆𝑖𝑛𝑄5

(33)

𝐶𝑜𝑠6 = −𝑡31 𝑆𝑖𝑛𝑄5

(34)

𝑄6 = 𝑎𝑡𝑎𝑛2( 𝑡32 𝑆𝑖𝑛𝑄5,

−𝑡31 𝑆𝑖𝑛𝑄5)

(35)

A partir de los valores de cada una de las articulaciones los cuales son presentadas como 𝑄𝑖, se realiza un de árbol de posibilidades, Ver Figura 13 , en el cual se

(41)

41

optar, una de ellas es la colisión consigo mismo que el robot tiene implícita, y la otra es la restricción con el entorno que lo rodea.

En el siguiente esquema se representan los valores de cada una de las articulaciones, formando todas las posibilidades mostradas.

Figura 13. Árbol de posibilidades brazo robótico

6

4

Q

Q

COMBINACIÓN 1

I

I 3 I 1

Q

Q

Q

2

Q

5

II

6 4

Q

Q

COMBINACIÓN 2

6

4

Q

Q

COMBINACIÓN 3

I

II 3 I 1

Q

Q

Q

2

Q

5

II

6 4

Q

Q

COMBINACIÓN 4

6

4

Q

Q

COMBINACIÓN 5

I

I 3 II 1

Q

Q

Q

2

Q

5

II

6

4

Q

Q

COMBINACIÓN 6 6

4

Q

Q

COMBINACIÓN 7

I

II 3 II 1

Q

Q

Q

2

Q

5

II

Q

4

Q

6 COMBINACIÓN

8

(42)

42 4.3 POSICIONAMIENTO DE LOS OBJETOS

Para posicionar los objetos como lo muestra la cámara (posición en centímetros) con respecto a la base del brazo robótico, se deben relacionar dichas posiciones, un ejemplo claro es que no es lo mismo ver los objetos desde un punto del brazo robótico que desde la cámara, por esto se realiza el posicionamiento de la siguiente manera:                1 0 0 0 75 . 115 1 0 0 _ 0 1 0 _ 0 0 1 y pos x pos OTC (36)

En la ecuación (36) se presenta la matriz de transformación de la posición del objeto con respecto a la cámara, los valores de 𝑝𝑜𝑠_𝑥 y 𝑝𝑜𝑠_𝑦 son los valores que arroja el tratamiento de imágenes, los cuales se traducen en la posición de cada uno de los objetos, el valor de −115.75 es la altura que existe entre el objeto y la cámara. De la misma manera se presenta en la ecuación (37) el posicionamiento de la cámara con respecto al brazo robótico. Todos los valores anteriormente mostrados se trabajaron en centímetros (cm).

La matriz que se encuentra tanto en la ecuación (36) como en la ecuación (37), se debe a que se quiere que todos los sistemas coincidan, es decir, que el eje x del objeto se alinie con el eje 𝒙 de la cámara, para el caso del eje 𝒚 y el eje 𝒛, se quiere que se alinie para que los vectores unitarios queden en dirección contraria.

                 1 0 0 0 100 1 0 0 5 . 12 0 1 0 2 . 50 0 0 1 CTB (37)

Una vez establecidas las matrices de transformación de la cámara y la de los objetos, se multiplica 𝐶𝑇𝐵 𝑥 𝑂𝑇𝐶. Con esta operación se establece la posición de los objetos posicionados con respecto al brazo robótico.

(43)

43

sistemas cartesianos de coordenadas que cada elemento tendrá, esto además de establecer los valores dentro de la matriz, también para conocer la ubicación espacial con la que cada uno de ellos cuenta, dichos sistemas son mostrados en la Figura 14, en la cual se presentan los ejes asignados a los elementos con que se desarrolla el proyecto, dichos elementos son: el sistema de visión, el o los objetos que se ubicarán dentro del área de trabajo, la cual es la mesa y que se observa con fondo negro en la Figura 14, y por último el robot industrial, los sistemas se denotan: de color naranja se presenta el eje 𝒙, de color verde el eje 𝒚 y el eje 𝒛 de color azul.

Fuente: Autores

(44)

44

Para conocer el ángulo de visión de la cámara, Ver Figura 15 se procede a realizar este cálculo: el primer paso es conocer las medidas de la altura y la base, estos valores son 115.75 y 102.4 respectivamente (valor en centímetros), luego efectúa el cálculo por medio de la siguiente operación:

∅ = atan (115.751.2)= 23.6°

Este valor es solo el de la mitad de la cámara, por esto es debido multiplicar este valor por dos y el resultado es 47.2°.

Fuente: Autores

4.4 CALIBRACIÓN

Para que la combinación de valores articulares arrojen como resultado la coincidencia de la herramienta con el centroide del objeto es necesario realizar la calibración de cada uno de los motores del robot industrial ABB, para ello se realizan los siguientes pasos, para realizar dicha acción tomado del manual del robot industrial [7].

En la Figura 16 se observan la localización de cada uno de los pines que posee el robot industrial ABB de todos sus ejes 1-6.

(45)

45 Fuente: Autores

4.4.1 Calibración eje 1 (coincide con la rotación nombrada 𝑸𝟏)

Use los siguientes pasos para calibrar el eje 1 independientemente:

 Encienda el controlador, presiones hidráulicas y neumáticas del robot  Remueva los amortiguadores de los pines de calibración

 Libere los brakers

 Rote el eje 1 manualmente hasta que el segundo pin de calibración haga contacto con el otro

 Escoja calibración fina del menú de calibración  Escoja calibración en el Flexpendant

 Escoja eje 1 del Flexpendant y calibrar

 Después de que la calibración ha sido hecha use el Flexpendant para llevar al valor cero grados

(46)

46

4.4.2 Calibración eje 2 (coincide con la rotación nombrada 𝑸𝟐)

Use los siguientes pasos para calibrar el eje 2 independientemente:

 Encienda el controlador, presiones hidráulicas y neumáticas del robot  Remueva los amortiguadores de los pines de calibración

 Libere los brakers

 Rote el eje 2 manualmente hasta que el segundo pin de calibración haga contacto con el otro

 Escoja calibración fina del menú de calibración  Escoja calibración en el Flexpendant

 Después de que la calibración ha sido hecha use el Flexpendant para llevar al valor cero grados

 Después de la sincronización marque en el eje 2

4.4.3 Calibración eje 3 (coincide con la rotación nombrada 𝑸𝟑)

Use los siguientes pasos para calibrar el eje 3 independientemente:

 Encienda el controlador, presiones hidráulicas y neumáticas del robot  Remueva los amortiguadores de los pines de calibración

 Libere los brakers

 Rote el eje 3 manualmente hasta que el segundo pin de calibración haga contacto con el otro

 Escoja calibración fina del menú de calibración  Escoja calibración en el Flexpendant

 Después de que la calibración ha sido hecha use el Flexpendant para llevar al valor cero grados

 Después de la sincronización marque en el eje 3

4.4.4 Calibración eje 4 (coincide con la rotación nombrada 𝑸𝟒)

Use los siguientes pasos para calibrar el eje 4 independientemente:

 Encienda el controlador, presiones hidráulicas y neumáticas del robot  Remueva los amortiguadores de los pines de calibración

(47)

47

 Rote el eje 4 manualmente hasta que el segundo pin de calibración haga contacto con el otro

 Escoja calibración fina del menú de calibración  Escoja calibración en el Flexpendant

 Después de que la calibración ha sido hecha use el Flexpendant para llevar al valor cero grados

 Después de la sincronización marque en el eje 4

4.4.5 Calibración eje 5 y 6 utilizando la herramienta de calibración (coincide con la rotación nombrada 𝑸𝟓 y 𝑸𝟔respectivamente)

Use los siguientes pasos para calibrar los ejes 5 y 6 independientemente:  Encienda el controlador, presiones hidráulicas y neumáticas del robot  Ajuste la herramienta de calibración en la muñeca al lado del tornillo  Libere los brakers

 Rote el eje 5 y 6 manualmente hasta que el pin de calibración de la muñeca haga contacto con el otro

 Escoja calibración fina del menú de calibración  Escoja calibración en el Flexpendant

 Después de que la calibración ha sido hecha use el Flexpendant para llevar al valor cero grados

 Después de la sincronización marque en el eje 5 y 6

4.5 ÁREA DE TRABAJO

El área de trabajo es definida como: El espacio de trabajo de un robot está definido como el grupo de puntos que pueden ser alcanzados por su efector-final [33]. Esta área es de vital importancia tanto, ya que nos da el espacio en el cual el robot puede realizar sus respectivos movimientos sin que se ocasione una colisión con el mismo.

(48)

48

permitido por cada una de sus articulaciones, y así uniendo todos estos valores se obtiene el espacio o área de trabajo.

El área de trabajo también dará un entendimiento del alcance que posee el efector final del brazo robótico.

Fuente: Adaptado de

https://library.e.abb.com/public/3bd625bab3c7cae1c1257a0800495fac/ROB0149E N_D_LR

(49)

49

5. TRATAMIENTO DE IMÁGENES

El brazo robótico se encuentra en una mesa de trabajo diseñada para él, dicha mesa tiene como propiedad un color gris brillante, también el sitio donde se encuentra el brazo tiene mucha luminosidad, situación que no servía para tomar una buena foto de los objetos, ya que al posicionarlos sobre la mesa y tomar su foto, la imagen con la cual queda después del procesamiento, era la sombra producida por el objeto, mas no con la posición propia de él, por este motivo fue necesario forrar la mesa con un material que no generará brillo, este debe ser un material oscuro, una vez solucionado lo anteriormente mencionado, se procedió a posicionar los objetos de cualquier color sobre la mesa de trabajo.

Los objetos que se manipularán son figuras que poseen un área transversal de formas primitivas como lo son cuadrados, círculos y triángulos, ver Figura 18, como se puede notar ellos pueden tener cualquier color. Esta condición se establece en el algoritmo de procesamiento de imágenes, ya que al realizar dicho procesamiento se discrimina el color de los objetos.

Figura 18. Objetos con forma primitiva

Fuente: Autores

(50)

50

necesario tomar otra foto sin objetos, luego se toma de nuevo otra foto de la misma área (con Objetos), esto con el fin de comparar las dos fotos previamente adquiridas, con el propósito de obtener la diferencia entre ellas, la cual es cada uno de los objetos. Luego de esto la imagen pasa por un proceso de cambio de color a una imagen a blanco y negro por medio del comando asignado en Matlab, donde se le calcula el umbral, se binariza, se erosiona y posteriormente se dilata, estos dos últimos pasos ser realizan para corregir imperfecciones que pudiesen aparecer dentro del objeto. Ver Figura 19(b)

Dentro del procesamiento también se realiza un proceso de selección de áreas (Figura 19Figura 20), ya que en ocasiones se presentan pequeños espacios en blanco que no se deben tener en cuenta, estas imperfecciones aparecen propiamente por el proceso del cambio de imagen de color a blanco y negro, por este motivo se escogen los objetos cuya área supere un valor establecido dentro del algoritmo y ellos se enmarcan para conocer su posición, luego se realiza un proceso de rellenado de las zonas donde aparecían las imperfecciones. La imagen final se puede observar en la Figura 20.

Fuente: Autores

(a) (b)

(51)

51 Fuente: Autores

5.1 IDENTIFICACIÓN DE FIGURAS

Para realizar la identificación de todas las figuras que aparecen en el área de trabajo, el algoritmo implementa un proceso de correlación entre ellas, es decir, se crea una base de datos donde se almacenan las figuras que se quieren identificar, en este caso las figuras son: círculos, cuadrados y triángulos.

Cuando se toma la foto se seleccionan todos los objetos que en ella aparecen, y se hace la correlación del objeto con cada uno de los que se encuentran almacenados dentro de la base de datos, al realizar este proceso me retorna un dato llamado valor de correlación (ver Anexo C), el valor que se encuentre más cercano a uno “1” será el dato, o en este caso la figura que más se parezca.

En la Figura 21 se muestra la metodología que se implementa para la realización del algoritmo de identificación de formas.

(52)

52 Fuente: Autores

5.2 DESCRIPCIÓN DE TRATAMIENTO DE IMÁGENES

A continuación, se hará una descripción de cada uno de los pasos que se utilizaron para el tratamiento de imágenes y la identificación de formas.

(53)

53

La mesa de trabajo fue forrada en fondo negro, esto se realizó debido a que la mesa tenía una cubierta brillante y afectaba el reconocimiento de la posición de las figuras, también para evitar sombras inoportunas causadas por los objetos.

En primera estancia, se procede a tomar una imagen del área de trabajo totalmente limpia, es decir, sin la presencia de ningún objeto. Luego de este proceso, la imagen es recortada, para que en la interfaz de usuario solo se muestre únicamente el área de trabajo, la cual está comprendida únicamente por el espacio de la mesa. Luego de tomar la primera foto se almacena para después ser comparada con imágenes futuras, y de esa manera detectar las diferencias entre la imagen muestra y la imagen futura, dichas diferencias serán tomadas como los objetos dentro del área de trabajo.

Una vez almacenada la imagen muestra, se procede a adquirir la imagen futura bajo las mismas condiciones de iluminación, y luego también será recortada bajo las mismas condiciones de la imagen muestra. A dicha imagen, se le resta la imagen muestra, esto con el fin de obtener una nueva imagen donde únicamente serán mostrados los objetos, el orden de la resta es importante, ya que es válido resaltar que hasta este momento las imágenes se encuentran en formato RGB (El color negro del cual esta forrada la mesa es representado con (0,0,0) en el formato RGB) por lo tanto, si la imagen se resta en el orden inverso, se obtendrán valores negativos en la nueva imagen generada, y la imagen perderá la información, que en este caso son los objetos.

Una vez se tiene la imagen con los objetos dentro de ella, se realiza un proceso de cambio a escala de grises, con el fin de reducir la cantidad de las matrices que representan una imagen con estas características, y también para que no se elimine ningún componente del formato RGB. Luego de este procedimiento, se procede a calcular el umbral de dicha imagen de acuerdo a el método Otsu, el cual se encarga de calcular la varianza de luminosidad de todos los pixeles de la imagen y obtener el valor promedio de dicha varianza, este valor se conoce como el umbral de una imagen.

Con dicho umbral, se procede a determinar la imagen en blanco y negro, cada píxel por debajo del valor del umbral toma un valor de cero y cada pixel mayor que el umbral adquiere un valor de uno, dando, así como resultado una imagen a blanco y negro donde los píxeles con valor cero forman el color negro y los pixeles con valor uno, forman el color blanco.

(54)

54

Se observó que algunos de los objetos tenían pixeles negros dentro de su forma, y estas alteraciones cambiaban las propiedades de cada figura, por ello, se procede a dilatar y erosionar la imagen. Una vez aplicado estos métodos los pixeles negros dentro de los objetos desaparecen y los bordes mejoraron dando figuras más definidas.

Por último, los objetos detectados son enumerados siguiendo un patrón: de izquierda a derecha y de arriba hacia abajo, es decir, el primer objeto encontrado en este orden, será identificado como el número uno, el segundo con el número dos y así sucesivamente.

Finalmente, para cada objeto, se identifica su centroide, dicho valor es convertido posteriormente a una medida de longitud en el sistema cegesimal o científico, para así, determinar la cinemática inversa del robot.

Cuando la termina por todo este proceso, se sigue a identificar qué forma es, por ello se generó una base de datos (imágenes), la cual cuenta con figuras primitivas en diferentes orientaciones y previamente identificadas. Para determinar su forma, se delimita cada uno de los objetos, esto se realiza tomando el límite superior, que es donde aparece el primer pixel blanco de cada objeto, hasta el límite inferior del mismo, posteriormente se procede a realizar el mismo proceso, pero esta vez de manera lateral, de izquierda a derecha.

Con la figura correctamente delimitada, se ajusta a un tamaño de treinta por treinta (30x30) pixeles, con el fin de que las imágenes recortadas coincidan con las imágenes dentro de la base de datos, también para que sin importar el tamaño que el objeto posea originalmente, sea comparado con las figuras dentro de la base de datos, esta comparación, se realiza aplicando un método de correlación entre imágenes (valor comprendido entre cero y uno, donde uno determina que son iguales y cero que son completamente diferentes).

(55)

55

6. SISTEMA COMPLETO

El sistema completo consta de elementos por separado, donde cada uno de ellos cumple una función específica y diferente a lo largo de la realización del proyecto, a continuación, se realiza una breve descripción de los elementos, y la función que ellos realizan.

6.1 BRAZO ROBÓTICO

El Robot utilizado para la manipulación de los objetos, es un robot altamente compacto en sus dimensiones y en su peso, es el Robot IRB 120. Ver Figura 22, de la empresa ABB. Es un robot antropomórfico con 6 grados de libertad, con un ángulo de movimiento en cada una de ellas de un valor aproximado a los 135° de libertad.

Fuente: Autores

(56)

56 6.2 SISTEMA DE VISIÓN

El sistema de visión que se utilizó para el procesamiento de imágenes, es una cámara web, de marca HP, Figura 23 según la cual cuenta con una resolución máxima de 640x480 Píxeles, con un grado de captura de más de 90° desde su lente, además cuenta con un soporte, el cual se puede adaptar a cualquier superficie de agarre.

Se selecciona este dispositivo de visión ya que es compatible con el programa en el cual se realiza el algoritmo de reconocimiento, además porque tiene una resolución aceptable dentro de los parámetros y por último se adapta de buena manera al acople del sistema, ya que cuenta con un agarre para la mayoría de superficies.

Fuente: Autores

6.2.1 Calibración de la cámara

Figure

Figura 3. Método de segmentación
Figura 4. Método de detección de bordes
Figura 6 Formato RGB
Figura 8. Método de dilatación
+7

Referencias

Documento similar

 Para recibir todos los números de referencia en un solo correo electrónico, es necesario que las solicitudes estén cumplimentadas y sean todos los datos válidos, incluido el

La determinación molecular es esencial para continuar optimizando el abordaje del cáncer de pulmón, por lo que es necesaria su inclusión en la cartera de servicios del Sistema

The part I assessment is coordinated involving all MSCs and led by the RMS who prepares a draft assessment report, sends the request for information (RFI) with considerations,

o Si dispone en su establecimiento de alguna silla de ruedas Jazz S50 o 708D cuyo nº de serie figura en el anexo 1 de esta nota informativa, consulte la nota de aviso de la

d) que haya «identidad de órgano» (con identidad de Sala y Sección); e) que haya alteridad, es decir, que las sentencias aportadas sean de persona distinta a la recurrente, e) que

La siguiente y última ampliación en la Sala de Millones fue a finales de los años sesenta cuando Carlos III habilitó la sexta plaza para las ciudades con voto en Cortes de

Ciaurriz quien, durante su primer arlo de estancia en Loyola 40 , catalogó sus fondos siguiendo la división previa a la que nos hemos referido; y si esta labor fue de

En este sentido, puede defenderse que, si la Administración está habilitada normativamente para actuar en una determinada materia mediante actuaciones formales, ejerciendo