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.”
Bibliotecas Bucaramanga Universidad Santo Tomás
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 BUCARAMANGA
2016
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 BUCARAMANGA
2016
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
4.4.2 Calibración eje 2 (coincide con la rotación nombrada 𝑸𝟐) ..................... 46
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
10. CONCLUSIONES Y TRABAJOS FUTUROS ................................................... 87
6
10.1 CONCLUSIONES ....................................................................................... 87
10.2 TRABAJOS FUTUROS .............................................................................. 88
BIBLIOGRAFÍA ...................................................................................................... 89
ANEXOS ................................................................................................................ 93
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
Figura 39. Prueba 5 ............................................................................................... 72
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
Figura 56. Prueba con diferentes condiciones de luminosidad .............................. 85
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
Tabla 4. Resultados Prueba con diferentes condiciones ambientales ................... 86
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].
Articulación Rotacional: Una articulación revoluta o rotacional, también conocida
como “par giratorio”, “bisagra” o “articulación de clavija”, permite que dos eslabones
pareados giren, uno respecto al otro, alrededor del eje de la articulación [9].
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].
Articulación prismática: “articulación prismática” o “par cinemático prismático”
permite que dos eslabones arreglados en pares se deslicen, uno respecto al otro, a
lo largo de su eje [9].
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.
Todos los valores articulares y la forma de cada objeto, se presentarán en una
interfaz de usuario, la cual se realizó bajo el software de programación Matlab
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.
Por tal motivo el desarrollo de este proyecto permite que la Facultad de Ingeniería Mecatrónica cuente con una herramienta netamente industrial para la realización de prácticas en la materia de robótica, y así mismo se puedan obtener muchos beneficios en el ámbito académico, dado a que los estudiantes tendrán una idea más completa acerca de los procesos industriales en los cuales se cuenta con la utilización de este tipo de automatización, promoviendo así el uso de todos los recursos con los cuales cuenta la universidad.
14
A continuación, se presenta un breve resumen de cada una de las secciones de la cual consta el libro, en total son diez secciones, de las cuales la primera de ellas describe la formulación del problema y los objetivos que se plasmaron para la realización del proyecto. En la sección dos, se enuncia el estado del arte y todos los conceptos que se deben tener en cuenta. La tercera parte habla de la metodología, del procedimiento, de cómo se planteó la resolución del proyecto. En la cuarta sección se mencionan los temas relacionados al brazo industrial ABB, como lo son: la cinemática directa, la cinemática inversa y la calibración que se debe realizar al brazo robótico para que este tenga la mayor precisión posible. En la quinta sección se habla acerca del método que se aplicó para realizar el tratamiento de las imágenes. En la sexta sección, se describen los elementos utilizados de todo el sistema, como lo son: el sistema de visión utilizado, la pinza electro neumática, el Flexpendant y el controlador IRC5. En la séptima sección, se describe la trayectoria y los movimientos que el brazo robótico realiza para hacer el traslado de las piezas. En la octava sección, se describe acerca de la interfaz gráfica, de los elementos que esta posee y demás. La novena sección se realizan las pruebas pertinentes de cómo se deben posicionar los objetos dentro del campo de visión de la cámara. Por último, la décima sección en la cual se describen las conclusiones y los posibles trabajos futuros que el proyecto puede tener.
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.
Se han desarrollado varias técnicas para mejorar la calidad de los productos como:
El estudio y simplificación del trabajo, Análisis de Pareto [11], el método justo a
tiempo, entre otros. Sin embargo, las organizaciones tienen presente el deseo de
estar a la vanguardia, mediante la vigilancia a los crecientes desarrollos
tecnológicos e innovadores. Por su parte, la Comisión Económica para América
Latina y el Caribe (CEPAL), en uno de sus artículos plantea e incentiva la
tecnificación de los procesos para mejorar el producto [12].
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.
Además de la implementación de esta herramienta, se quiso incursionar en el
campo del visón artificial, y de esta manera unir estos dos elementos como uno solo,
también para dar a conocer la importancia que tienen los Ingenieros, de cómo
aplicar todos los conceptos teóricos impartidos a lo largo de su carrera universitaria,
y de cómo estos pueden dar solución a problemas del campo investigativo y también
del campo industrial, ya que sobre este tema de la visión artificial, se tienen varias
teorías o metodologías para diferentes situaciones. Por su parte en la robótica, la
utilización de una herramienta verdadera que existe en cualquier empresa que
posea un proceso automatizado.
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.
Diseñar una interfaz gráfica mediante la implementación de un algoritmo de identificación de objetos y el algoritmo encargado de la cinemática inversa para mostrar y transferir las variables articulares del brazo robótico ABB IRB 120.
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
por Corrales et al [16], donde se busca que las personas con discapacidad visual
de la tercera edad, o personas que no saben leer, sean capaces de reconocer
diferentes objetos que se presentan en su entorno.
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.
Para la realización del proyecto de grado, el Ingeniero José Ángel Castilla [20]
desarrolló un “protocolo de comunicación trabajador-robot mediante imágenes”. El
cual controla el robot mediante dibujos realizados en una mesa de trabajo. También
hace referencia a la comunicación entre un robot y una cámara web, utilizando el
tratamiento de imágenes, este procedimiento trata de cómo el robot hace la
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].
En el artículo: “Research of visual servo control system for space intelligent robot”
de Liang Changchun et al, escrito en el año 2015 aunque es un proyecto diseñado
para la servo visualización en el espacio exterior y manipuladores robóticos
remotos, se expone otro método también utilizado para determinar las longitudes
que hay entre el objeto y el punto de origen del sistema, mediante el uso de dos o
más cámaras en 2-D, de esta manera determinar la profundidad del objeto y mejorar
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].
Un último artículo publicado por Jun Lu, Jinghao Song y Yong Liu en el 2013 titulado
“High-precision servo control of robot arm based on vision and PSD” expone también
el método de auto calibración de la cámara, basado en el método de cónica
absoluta, con esto se logra obtener la matriz de valores intrínsecos. La efectividad
de utilizar este método en este tipo de sistemas se puede observar en las pruebas
realizadas utilizando un brazo robótico ABB IRB1600 [28].
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
Figura 2. Imagen con balance de grises
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.
Figura 3. Método de segmentación
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
Figura 4. Método de detección de bordes
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
Figura 7. Método de erosión
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
Para la calibración de la cámara se tuvieron en cuenta tantos los parámetros
intrínsecos como extrínsecos del medio donde estará el dispositivo. En los
parámetros extrínsecos, los cuales definen la orientación y posición de la cámara
respecto a un sistema de coordenadas [31], se posiciona el dispositivo de manera
que el lente quede paralelo a la superficie de la mesa, la cámara estará situada a
una altura de 115.78 cm de la mesa y desplazado a 12.5cm del robot industrial. Los
parámetros intrínsecos los cuales definen la geometría de la cámara, se encuentra
que el dispositivo puede trabajar bajo el entorno de Windows o cualquier sistema
operativo, con cualquier procesador y se debe contar con un puerto USB2.0.
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.
La primera parte de la metodología se desarrolló de manera secuencial ya que cada
sección se trabajó de manera independiente, hasta que cada una de ellas se une
con la implementación de todos los algoritmos, esto debido a que se necesitan de
los valores de las posiciones de los objetos dentro del área de trabajo para
posteriormente calcular los valores de cada una de las articulaciones del robot.
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
Elaboración de la documentación
final
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
Figura 10. Robot industrial ABB IRB-120
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
de la rotación de cada una las articulaciones del robot, los valores de 𝐿𝑛 son las
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°
6 𝑄6 𝐿5 0 0
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
𝐿4 𝐿5
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
00
0 −𝐶𝑜𝑠𝑄1+90 0
1 0 𝐿1
0 0 1 ]
(1)
𝐴12 =
[ 𝐶𝑜𝑠𝑄2+90 −𝑆𝑖𝑛𝑄2+90 0 𝐿2 ∗ 𝐶𝑜𝑠𝑄2+90
𝑆𝑖𝑛𝑄2+90
00
𝐶𝑜𝑠𝑄2+90 0 𝐿2 ∗ 𝑆𝑖𝑛𝑄2+90
0 1 00 0 1 ]
(2)
𝐴23 = [
𝐶𝑜𝑠𝑄3 0 𝑆𝑖𝑛𝑄3 𝐿3 ∗ 𝐶𝑜𝑠𝑄3
𝑆𝑖𝑛𝑄3
00
0 −𝐶𝑜𝑠𝑄3 𝐿3 ∗ 𝑆𝑖𝑛𝑄3
1 0 00 0 1
]
(3)
𝐴34 =
[ 𝐶𝑜𝑠𝑄4 0 −𝑆𝑖𝑛𝑄4 0
𝑆𝑖𝑛𝑄4
00
0 𝐶𝑜𝑠𝑄4 0
−1 0 𝐿4
0 0 1 ]
(4)
𝐴45 = [
𝐶𝑜𝑠𝑄5 0 𝑆𝑖𝑛𝑄4 0
𝑆𝑖𝑛𝑄5
00
−0 −𝐶𝑜𝑠𝑄4 01 0 00 0 1
]
(5)
34
𝐴56 =
[ 𝐶𝑜𝑠𝑄6 −𝑆𝑖𝑛𝑄6 0 0
𝑆𝑖𝑛𝑄6
00
𝐶𝑜𝑠𝑄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
Las ecuaciones (1), (2), (3), (4), (5), y (6) son una representación de la ubicación
rotacional y traslacional del sistema actual con el sistema inmediatamente anterior.
Al realizar la multiplicación de estas matrices se obtiene la matriz de transformación
de todo el sistema, de esta última matriz se puede obtener los valores en posición
de las coordenadas x, y, z, para así poder realizar la cinemática inversa, con la cual
el proyecto se rige, ya que a partir de los valores en sus coordenadas cartesianas
se pueden obtener los valores de cada una de las articulaciones del brazo robótico.
Debido a que se debe despejar los valores articulares del resultado de la
multiplicación de las matrices de transformación, se reemplazan los valores que son
constantes, para facilitar los cálculos, dichos reemplazos se pueden observar en las
ecuaciones (8) y (9).
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
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 5O del sistema 5S y cuyo vector asociado al sistema
0S de la base
del robot es:
Tmzmymx PPP 50m OOP
Las coordenadas de
hP , vector conocido que indica la posición que se desea para
el extremo del robot:
Thzhyhx PPP 60h OOP
En la Figura 12 se observa que la magnitud del vector 65d OOP 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 Thzhyhx a a a h6 aZ ; por lo tanto:
Thzhyhx5 aaaL 65d OOP
A partir de los vectores hP y dP , se puede obtener
mP mediante una suma de lazo
vectorial:
hz5hz
hy5hy
hx5hx
hz
hy
hx
5
hz
hy
hx
mz
my
mx
aLP
aLP
aLP
a
a
a
L
P
P
P
P
P
P
m
dhm
hdm
P
PPP
0PPP
𝐴23𝐴𝑢𝑥. 𝜽𝒊 𝒃𝒊 𝜶𝒊 ∝𝒊
𝑄3 − 𝐴𝑡𝑎𝑛(𝐿4
𝐿3) 0 √𝐿42 + 𝐿32 0
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 − 𝐿3
2 − 𝐿42
2. 𝐿2. 𝑅
(13)
𝑄3 = atan (𝐿4
𝐿3⁄ ) − 𝐶𝑜𝑠ℎ (14)
𝑎 = 𝑆𝑖𝑛ℎ. 𝑅 (15)
𝑏 = 𝐶𝑜𝑠ℎ. 𝑅 + 𝐿2 (16)
38
Para obtener el valor de 𝑄1 se factoriza de (10) y (11) el 𝐶𝑜𝑠𝑄1 y 𝑆𝑖𝑛𝑄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, 𝑄2 y 𝑄3), se
procede a calcular el valor de las últimas tres articulaciones ( 𝑄4, 𝑄5 y 𝑄6). Para ello
se retoman los valores de la matriz 𝑇 ecuación (7).
Donde sólo se tomarán los valores de la submatriz de orientación de cada una de
las matrices de transformación.
39
𝑄ℎ𝑆𝑖𝑚𝑏 = 6
0Q = 6
5
5
4
4
3
3
2
2
1
1
0QQQQQQ
De igual manera se extraen los valores de matriz objetivo 𝑇
hzhzhz
hyhyhy
hxhxhx
aon
aon
aon
hObjQ
Dada la equivalencia entre las matrices 𝑄ℎ𝑆𝑖𝑚 y 𝑄ℎ𝑂𝑏𝑗 se realiza su igualación:
hObjhSim QQ
hObjQQQQQQQ 6
5
5
4
4
3
3
2
2
1
1
0
(23)
Puesto que 2
1
1
0 , QQ y 3
2Q son matrices conocidas (dependen de 𝑄1 , 𝑄2 y𝑄3), la
ecuación (23) se reestructura haciendo:
3
2
2
1
1
0
3
0QQQQ Y 6
5
5
4
4
3
6
3QQQQ
hObjQQQ1
3
0
6
3 (24)
Ahora nombrando como t el resultado de la parte derecha de la ecuación (24):
333231
232221
1312111
3
0
ttt
ttt
ttt
hObjQQt
(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
𝑡22 𝑡32
𝑡23 𝑡33
]
(26)
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 + 𝑡32
2 (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 + 𝑡32
2 , 𝑡33) (28)
𝑄5𝐼𝐼 = 𝑎𝑡𝑎𝑛 2(−√𝑡312 + 𝑡32
2 , 𝑡33) (29)
Para hallar el valor de 𝑄4 se toma las posiciones 𝑡23 y 𝑡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
muestran todas las posibles soluciones o posiciones que el robot puede optar por
alcanzar dicho punto, cabe aclarar que cada una de las ocho posibilidades es
diferente a las otras, además aclarar que no siempre el robot podrá alcanzar tal
punto, esto debido a que el mismo robot posee ciertas restricciones que le impide
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 QQ
COMBINACIÓN 1 I
I3 I1 QQ
2Q
5Q
II 6 4 QQ
COMBINACIÓN 2
6 4 QQ
COMBINACIÓN 3 I
II3 I1 QQ
2Q
5Q
II 6 4 QQ
COMBINACIÓN 4
6 4 QQ
COMBINACIÓN 5 I
I3 II1 QQ
2Q
5Q
II 6
4QQ
COMBINACIÓN 6
6 4 QQ
COMBINACIÓN 7 I
II3 II1 QQ
2Q
5Q
II 6 4 QQ
COMBINACIÓN 8
Fuente: Autores
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:
1000
75.115100
_010
_001
ypos
xpos
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.
1000
100100
5.12010
2.50001
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.
Para establecer los valores de las tres primeras filas y tres primeras columnas de
las matrices anteriormente presentadas, es necesario establecer y conocer los
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
Figura 14. Posicionamiento de coordenadas
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 (51.2
115.7)= 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.
Figura 15 Conversión de píxeles a sistema cegesimal
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
Después de la sincronización marque en el eje 1
Figura 16. Pines de configuración
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
Libere los brakers
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.
Para hallar dicha área se deben tener en cuenta las restricciones que el robot posee
en cada una de sus articulaciones, es decir el valor en grados del movimiento
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
Figura 17. Área de trabajo robot ABB IRB 120
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
En síntesis, el algoritmo de procesamiento de imágenes, toma una foto del área de
trabajo (sin objetos), una vez tomada dicha foto, esta queda almacenada y no es
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)
Figura 19. (a): figura Original, (b): figura después del procesamiento
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.
Figura 20. Selección de objetos por área
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.
Figura 21. Diagrama de flujo Identificación de formas
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.
Para evitar errores en la imagen, se estableció una condición de área, la cual
determina que todos los objetos con un área menor a un valor establecido no se
tendrán en cuenta, por su parte el usuario puede visualizar cuales objetos no
cumplen esta condición, ya que se encierran en un rectángulo rojo, mientras los que
sí lo cumplan, estarán de color verde.
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).
Cuando se termina este proceso, el algoritmo busca la posición del valor más alto
de correlación, ya que, dentro de la base de datos, se encuentra ordenada de la
siguiente manera: triángulos-circulo-cuadrados, y como ya se mencionó
anteriormente, estas figuras son conocidas, entonces la posición con el valor más
alto indica que es allí donde más se identifica la figura comparada, con la imagen
de la base de datos.
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
Figura 22. Brazo Industrial ABB
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
Para la calibración de la cámara se tuvieron en cuenta tantos los parámetros
intrínsecos como extrínsecos del medio donde estará el dispositivo. En los
parámetros extrínsecos, los cuales definen la orientación y posición de la cámara
respecto a un sistema de coordenadas [31], se posiciona el dispositivo de manera
que el lente quede paralelo a la superficie de la mesa, la cámara estará situada a
una altura de 115.78 cm de la mesa y desplazado a 12.5cm del robot industrial. Los
parámetros intrínsecos los cuales definen la geometría de la cámara, se encuentra
que el dispositivo puede trabajar bajo el entorno de Windows o cualquier sistema
operativo, con cualquier procesador y se debe contar con un puerto USB2.0.
Figura 23. Cámara WEB
57
También se opta por el modelo matemático, mostrando la posición de la cámara con
respecto a un objeto, como una matriz de transformación. Ecuación (36), donde se
evidencia la rotación y traslación del sistema mencionado, con el proceso de
calibración fotogramétrica [32]. Para la conversión de píxeles a sistema métrico, se
realizó un proceso de conversión manual, se sabía que una coordenada tenía 640
píxeles, de modo que se tomó la medida de dicha coordenada, y posteriormente se
convirtió a medida métrica. Ver figura 24.
Fuente: J. Hoyos. J. Cardona. Técnicas de calibración de cámaras para visión
estéreo y reconstrucción
6.3 PINZA ELECTRO-NEUMÁTICA
La pinza utilizada para el traslado y agarre de los objetos, es un Gripper de pinzas
paralelas, la cual puede manipular objetos de forma trasversal cuadrada o circular,
la pinza es de referencia HGP-16-A-B de la marca Festo. Ver Figura 25. Su
activación es realizada por una señal eléctrica, la cual activa una bobina, de esta
manera, se permite el paso del flujo de aire haciendo que la pinza se abra.
Figura 24. Superficie plana (método complanar)
58
Fuente: Autores
6.3.1 Circuito implementado
Debido a permisos de la empresa ABB, instaladores y accesos con que la
universidad no cuenta en su controlador IRC5, fue necesario implementar un circuito
electrónico, el cual envía una señal eléctrica, que va dirigida hacia el efector, el cual
se encuentra en la última articulación del robot industrial, dicho efector, es una pinza
electroneumática, la cual es activada por medio de una bobina, es allí donde la señal
del controlador debe ser dirigida, a la activación de la misma.
La salida del controlador procede del puerto de “entradas y salidas (I/O)”, el pin de
salida identificado como “D0_01” en el Flexpendant se conectó de forma directa con
la bobina para la activación de la electro válvula 5/2 de activación eléctrica y retorno
por muelle, se observó que dicha válvula no conmutaba, con ayuda de un multímetro
Fluke, se comprobó que efectivamente se realizaba un cambio de 22,3 voltios a la
salida de dicho pin, posteriormente se conectó la bobina para la activación de la
válvula en paralelo con una fuente Festo, en este caso la válvula realizaba la acción
de conmutar, por lo que se tomó medida del valor de la corriente, la cual es
necesaria para activar dicha bobina, en este medición, el valor de corriente fue 0.03
A, con lo mencionado anteriormente, es posible llegar a la conclusión de que la
corriente que entrega cada pin del puerto de entradas y salidas es menor a 3 mA.
Debido a dichas pruebas, se decidió utilizar un transistor Mosfet, ya que la principal
característica de este transistor es su activación por tensión, la cual se realiza
cuando existe un valor de voltaje entre los pines Gate y Source, permitiendo de esta
manera el paso de corriente entre los pines Drain y Source. Ver Figura 26
Figura 25. Gripper neumático
59
Fuente: VISHAY SILICONIX.
Otro elemento implementado en el circuito, fue un diodo, Figura 27, que se ubica en
paralelo a la señal de la electroválvula, la función de este elemento es que la
corriente fluya en un sólo sentido, esto con el fin de que no se presenten
inconvenientes en la activación del controlador.
Fuente: VISHAY SILICONIX
En la Figura 28, se muestra un esquema del circuito que se implementó para realizar
la acción de la pinza, con los elementos utilizados que se mencionaron
anteriormente. En la Figura 28, el elemento demarcado con el número (1), simboliza
el Mosfet anteriormente mencionado en su forma esquemática, el (2) es el símbolo
de la electro válvula y el (3) representa el diodo previamente mencionado. Al
implementarse este circuito se evidencia la acción de agarre de la pinza
electroneumática, esto gracias a que la activación la realiza el dispositivo Mosfet,
Figura 26. Mosfet IRF 540
Figura 27. Diodo Rectificador
60
permitiendo que la corriente del circuito fluya en dirección hacia la bobina de la
electroválvula.
Fuente: Autores
6.4 FLEXPENDANT
Es un dispositivo de la empresa ABB, ver Figura 29, el cual se encarga de la
comunicación y de toda la interfaz gráfica que se deba tener con el controlador del
robot industrial, en él se puede controlar el movimiento del robot, se puede realizar
la calibración de las articulaciones, entre otras funciones más.
El dispositivo anteriormente mencionado posee un lenguaje de programación el cual
se conoce como RAPID.
Figura 28. Circuito implementado
61
Fuente: ABB INDUSTRIAL ROBOTS
6.5 CONTROLADOR IRC5
Es el dispositivo con el cual se controla el brazo industrial, en el panel frontal, se
presentan múltiples entradas, entre las cuales se destacan, algunos puertos de
comunicación, paro de emergencia, un break de los motores, activación del sistema,
puerto de entradas y salidas entre otros más. Ver Figura 30.
Figura 29. Flexpendant
62
Fuente: ABB INDUSTRIAL ROBOTS
Figura 30. Controlador IRC5
63
7. LÓGICA DEL SISTEMA
La lógica del sistema se compone en la metodología o los pasos que se siguen para
que el robot industrial realice la tarea que se quiere, en este caso la tarea específica
que realiza es la de la manipulación de cada uno de los objetos dentro del área de
trabajo.
La metodología es la siguiente, el robot siempre se posicionará en un punto fijo
llamado “home” en la cual esta posición y no interfiere en nada la toma de las
imágenes, ver Figura 31, una vez realizado el algoritmo de tratamiento de imágenes
y el del desacoplo robótico, se mostrará en la interfaz gráfica, la posición angular
para cada articulación del robot para cada uno de los objetos posicionados dentro
del área de trabajo, luego estos valores deben ingresarse en el programa del
traslado de los objetos. En el programa, se habilitará una línea de código en el cual
el usuario ingresa cada valor de los ángulos de las articulaciones.
La siguiente acción del robot es dirigirse hacia la posición del objeto, este punto se
ubicará unos cuantos centímetros por arriba del mismo, esto con el fin que no se
presenten colisiones con el objeto ni con la pinza. Ver Figura 31.
Fuente: Autores
Figura 31. Punto inicial
64
Justo cuando se llegue a dicha posición, la pinza neumática será activada, de modo
que cuando se alcance el punto indicado, la pinza se encuentre abierta, luego de un
tiempo se desactivará la pinza, de esta manera, ella estará cerrada, y logrará tomar
el objeto.
Luego el robot se dirigirá hacia el otro lado de la mesa, pero primero pasará de
nuevo por el punto “home”, de tal manera que se asegure que el robot no hará un
movimiento en el cual pueda causar alguna colisión. Ver Figura 32.
Concluido este movimiento el robot industrial se dirigirá hacia el lado opuesto de la
mesa de donde se ubicaron los objetos en un principio, en este lugar el robot
posicionará los objetos, esta es una rutina que previamente se ha programado en
el Flexpendant, de manera que este proceso siempre será el mismo. Ver Figura 33.
Por último, posicionarse nuevamente en el punto “home”, donde es la posición inicial
del robot, y allí esperará el siguiente movimiento que deberá realizar.
Fuente: Autores
Figura 32. Posición por encima del objeto
65
El código será programado en el lenguaje propio de la empresa ABB, el cual es
llamado “RAPID”, sólo se tendrá la posibilidad de cambiar el código en el
Flexpendant, en la línea de código donde se indexa el valor de las articulaciones
para la toma del objeto, de resto las demás posiciones, puntos y acciones, estarán
previamente programadas.
Fuente: Autores
Figura 33. Punto home con objeto
66
Fuente: Autores
Figura 34. Posición de los objetos trasladados
67
8. INTERFAZ GRÁFICA
La interfaz gráfica fue desarrollada bajo la aplicación que Matlab tiene disponible
para realizar este tipo de comunicación entre el usuario y el algoritmo. Ver Figura
35.
La interfaz de usuario mostrada, se divide en cuatro secciones, una de ellas es el
panel de control (recuadro 1), en el cual un botón captura la imagen de muestra y la
almacena para posteriormente realizar el algoritmo, el otro botón captura de nuevo
otra imagen, pero esta vez con los objetos ubicados.
En el panel de botones cuenta con dos de ellos, en los cuales uno inicializa la
cámara web y realiza la captura de la imagen de muestra, el otro botón se encarga
de calcular todos los parámetros que se necesitan para que el brazo robótico
alcance el punto deseado y la identificación de figuras. También dentro del mismo
panel se visualizan la cantidad de objetos que se encuentran en el área de trabajo.
Fuente: Autores
Figura 35. Interfaz de simulación Robot ABB
68
En el panel de identificación de objetos (recuadro 2), se muestra el resultado de la
identificación de forma de los objetos, entre los cuales se encuentran, círculo,
triángulo y cuadrado.
Los valores de las articulaciones para cada uno de los objetos se encuentran
asociado en la “Uitable” en la cual se mostrarán los valores articulares que el robot
deberá adquirir para llegar a un objeto en específico (recuadro 3).
Por último, se mostrará el proceso de la imagen, allí también se mostrarán los
cambios que se le realizan a esta imagen a través del algoritmo (recuadro 4).
69
9. PRUEBAS Y RESULTADOS
A continuación, se realizaron unas algunas pruebas para comprobar las
restricciones que el algoritmo presenta, sobre todo en la acomodación de los
objetos, esto ya de por sí está implícito debido a que por el procesamiento estas
restricciones son casi inevitables. En las siguientes figuras se muestra la foto
original (color) y la imagen como se presenta al usuario después de realizar el
respectivo tratamiento de imágenes.
9.1 RESTRICCIÓN DE OBJETOS
En la Figura 35(a), es presentado el posicionamiento de los objetos de forma que
generen un eje central diagonal, adicionalmente se tiene 2 tipos de separación entre
los objetos, el primer tipo cuenta con una separación de (3-4cm) entre cada uno de
los objetos, para el segundo tipo los elementos se encuentran contiguos.
Es posible observar en la Figura 35(b) el resultado del algoritmo de identificación,
donde los marcos verdes representan los objetos identificados. El algoritmo no
identifica la presencia de 3 objetos, sólo identifica uno de ellos. Esto debido a que
por programación se establece una discriminación de área de los objetos.
En la prueba 2 presentada en la Figura 36, se observa que los elementos tienen la
misma forma que la prueba anterior, con la diferencia que todos poseen una
separación con respecto al otro. En este caso al algoritmo identifica los 6 objetos
por separado, esto se debe a la distancia que existe entre ellos.
70
Figura 34. Prueba 1
(a) (b)
Fuente: Autores
(a) (b)
Fuente: Autores
Figura 36. Prueba 2
71
En la Figura 37, se muestra los resultados de la prueba 3, en esta ocasión existe un grupo de objetos en los cuales se encuentran sobre otro, una vez realizado el tratamiento a la imagen, no se logra identificar la sobre posición de los objetos, el algoritmo sólo identifica 4 objetos de los 6 que se posicionaron en un principio (cuadros verdes), mientras que un objeto, el algoritmo lo muestra dentro de un cuadro rojo, el cual será eliminado posteriormente por programación, dejando ese espacio con color negro como el fondo de la imagen.
Esto debido a que la cámara sólo toma las imágenes sobre un plano (2D), otra razón es que el tratamiento se realiza con una imagen a blanco y negro, por ello no se identifica que existen dos objetos sobre otros.
Figura 37 Prueba 3
(a) (b) Fuente: Autores
En la prueba 4 que se muestra en la Figura 38Figura 38, se observa que la acomodación de los objetos es de forma vertical, se tienen dos grupos de elementos, donde uno de ellos se encuentran los objetos separados, mientras que en el otro se encuentran juntos.
Al igual que la prueba anterior el algoritmo hace caso omiso de algunos objetos, y
sólo identifica 4 de ellos, esto debido a que el algoritmo no determina la presencia
de los 3 objetos que se encuentran juntos.
72
Figura 38. Prueba 4
(a) (b)
Fuente: Autores
Figura 39. Prueba 5
(a) (b)
Fuente: Autores
73
En la Figura 38Figura 39 se presenta la prueba 5, allí el algoritmo identifica todos
los objetos, ya que no se cumple ninguna de las restricciones que se han presentado
a lo largo de las pruebas realizadas.
9.2 MANIPULACIÓN DE OBJETOS
En la Figura 40 se mostrará un diagrama de flujo en el cual se explica la metodología
que se sigue para realizar el programa del brazo robótico que manipulará los objetos
A continuación, se explicará el proceso que se realizó para la manipulación de los
objetos. El primer paso es la ejecución de la interfaz gráfica, con la cual se realiza
el procesamiento de imágenes, y posteriormente la cinemática inversa del brazo
robótico.
Una vez finalizado este algoritmo, en la interfaz gráfica, se mostrarán los valores
para cada una de las articulaciones del robot industrial que este debe adquirir para
alcanzar el objeto analizado. Cuando estos valores se muestran, se procede a
indexarlos en el algoritmo el cual se programó en el Flexpendant, en la línea de
código habilitada para dichos valores, luego se ejecuta dicho programa y el robot se
posicionará en el objeto, de esta manera, se realizará el traslado del objeto hacia la
otra parte de la mesa.
En la Figura 41 se aprecia la distribución de la zona de trabajo que posee el robot
industrial, se pueden identificar dos zonas, una de ellas es en la que se encuentran
los objetos distribuidos, allí los objetos serán puestos de manera aleatoria, es decir,
sin ningún orden ni acomodación especifica. Una vez ejecutado el algoritmo, e
indexados los valores articulares en el Flexpendant, el robot deberá ir en busca de
cada uno de los objetos puestos sobre esta zona, en algunas ocasiones y debido a
las restricciones mecánicas y del entorno, el robot no podrá alcanzar dicha posición,
en este caso, mostrará un mensaje en el cual dirá, que no es posible llegar a tal
punto.
74
Fuente: Autores
.
Figura 40. Diagrama Flujo Flexpendant
75
Fuente: Autores
Una vez alcanzado el objeto, el robot lo tomará, y lo llevará hacia la otra zona, aquí
los objetos serán posicionados de manera que se puede poner en un caso
netamente industrial, donde esta etapa sería la de distribución de los objetos, donde
se conectaría con otra parte del proceso.
9.3. SIMULACIÓN
Para la comprobación de que el robot industrial realice el movimiento como es
debido, es decir, que se dirija a la posición que se requiere sin que sufra ningún tipo
de colisión con el entorno o con el mismo, se realiza una simulación de dicho
movimiento bajo el software de programación Matlab, también ayudado por el
software de simulación CAD SolidWorks, con el debido Plug instalado llamado
Simmechanics, este complemento tiene como función importar el archivo CAD al
software de programación Matlab.
Se deben realizar los siguientes pasos para la ejecución de la simulación, para ello
se mostrarán y se explicarán a continuación:
Dibujar o descargar el archivo del robot industrial ABB de referencia IRB-120
en SolidWorks, además se deben tener en cuenta todas las restricciones de
tipo mecánicas como físicas. Ver Figura 42.
Figura 41. Distribución zona de trabajo
76
Una vez terminado el diseño del robot, se instala el complemento para Matlab
llamado Simmechanics, esto con el fin de importar todo el diseño que se
realizó en SolidWorks, de esta manera se obtendrá un modelo de sistema de
bloques en el software Simulink tal como se muestra en la Figura 43
Una vez importado se obtiene el modelo en Simulink más conocido diagrama
de bloques, el cual es una representación del robot, en él se muestran sus
grados de libertad, sus medidas entre otros.
Para la manipulación en el diseño del robot, es necesario agregar algunos
bloques dispuestos para la realización de dicha tarea, en este caso sólo se
implementarán bloques llamados “Joint”. Ver Figura 44.
El bloque anteriormente mencionado requiere de tres parámetros, uno de
ellos es la posición, otro es la velocidad y por último se necesita de la
aceleración propia de cada articulación. En este caso la posición se ingresó
mediante un bloque de valor constante, pero debido a que la simulación del
movimiento era casi imperceptible, se implementó un bloque integrador, y de
esta manera el movimiento se podía observar en la simulación. Los valores
de los bloques de aceleración y velocidad se asumen como valores
constantes. Ver Figura 45.
Para cada una de las articulaciones se realiza el mismo proceso descrito
anteriormente.
Una vez finalizado el modelo del robot industrial, se ingresan los valores de
cada una de las articulaciones, los cuales se muestran como los valores de
𝑄𝑖.
Paso siguiente es comprobar cada movimiento de las articulaciones del
robot.
Una vez comprobado el funcionamiento de la simulación, se procede a
enlazar los programas que se tienen en Matlab, los cuales son: el código de
la interfaz gráfica con el de la simulación de simulink, así se podrán realizar
las dos acciones, el posicionamiento del robot industrial en físico, y el del
robot simulado.
77
Fuente: Modificado de https://grabcad.com/library/robo-abb-irb-120
Fuente: Autores
Figura 43. Modelo del robot ABB en Simulink
Figura 42. Modelo CAD Robot ABB
78
Fuente: Autores
Fuente: Autores
9.4. IDENTIFICACIÓN DE FORMAS
En el siguiente apartado, se realizaron diferentes pruebas en las que se muestra el
algoritmo como realiza la identificación de las figuras.
En la Figura 46 se muestra la primera prueba, en la cual se toma una foto con todas
las figuras primitivas (círculo, cuadrado y triángulo). Se puede observar el resultado
en la Figura 46(c) que verdaderamente se muestran estas tres figuras en la tabla de
identificación de objetos.
Figura 44. Bloque manipulador
Figura 45. Bloque para cada articulación
79
Fuente: Autores
En la Figura 47, se muestra la segunda prueba, la cual consiste en la identificación de objetos con diferentes áreas o diferentes tamaños. Se puede observar que el algoritmo es indiferente a esta condición, ya que se muestran las figuras del tamaño que se requieren, como figuras aún más grandes a este tamaño.
En la Figura 48 se realizó una prueba parecida a la anterior, la diferencia es que esta se realizó solamente con cuadrados, de esta manera se puede observar que el algoritmo nuevamente identifica los objetos que en la imagen aparecen.
Fuente: Autores
Figura 46. Detección de formas
Figura 47. Figuras Grandes y pequeñas
80
Fuente: Autores
En la Figura 49 se realiza el tratamiento a figuras triangulares de diferentes
tamaños, entre los cuales se encuentran algunos más grandes que otros, sólo que
para esta prueba se califican tres de ellos, los demás no aplican ya que son
triángulos de área menor a la que se establece en el algoritmo.
Fuente: Autores
Figura 48. Cuadrado grande y pequeño
Figura 49. Triángulos con diferente tamaño
81
En la Figura 50 se muestra la prueba con una de las luces apagadas, esta vez fue
la luz que se encuentra más alejada del área del trabajo, se puede observar que
esta luz no es muy relevante para la realización del tratamiento de imágenes, y
además se realiza la identificación de objetos de manera correcta.
Fuente: Autores
En la Figura 51 se realizó la prueba anterior, sólo que esta vez se apagó la luz que
recae sobre el área de trabajo, se puede notar con esta prueba que algunos de los
objetos no se reconocen, ya que el umbral (límite entre blanco y negro) establece
estos objetos como parte de la mesa.
Fuente: Autores
Figura 47 Luz incidente sobre el área de trabajo
Figura 50. Luz remota apagada
Figura 51. Luz incidente sobre área trabajo
82
En la Figura 52 se realiza una prueba en la cual se posicionan dos triángulos con
diferente acomodación (orientación diferente), como se observa en la identificación
de objetos, muestra el resultado que verdaderamente son figuras en forma de
triángulo.
Fuente: Autores
En la Figura 53 se muestra la última prueba, en ella se observa que aparece un
objeto que no es de forma primitiva (forma de estrella), en la identificación este
objeto lo denota como un cuadrado, esto debido a que en la base de datos no se
tienen figuras de este tipo, y también porque la correlación muestra un valor más
próximo a un cuadrado que por cualquier otra figura.
Fuente: Autores
Figura 52. Triángulos con diferente acomodación
Figura 53. Figura no primitiva
83
En la siguiente Figura 54 se muestra la prueba de diez tomas de la misma imagen,
con el fin de conocer la efectividad del algoritmo ante un proceso repetitivo. Se
observa en la Tabla 2, que se obtiene una efectividad promedio de acierto del 90%,
ya que en algunas de las pruebas el algoritmo no reconoce algunas de sus figuras
de manera correcta. Esto se debe a que cuando el algoritmo realiza la búsqueda de
figuras en la base de datos, el valor de correlación es más próximo a otra figura que
de la verdaderamente deber ser.
Fuente: Autores
Tabla 2. Tabla de resultados
Fuente: Autores
Figura 54. Prueba de Repetitividad
84
Para la realización de la siguiente prueba, Ver Figura 55, se toman las fotos con la
luz ambiente, es decir se abren las cortinas que tiene el sitio donde se localiza el
robot y además se apaga la luz artificial, en este caso se puede observar en la Tabla
3, que la efectividad promedio acierto baja un poco con respecto a la anterior prueba
(83.33%), esto se debe a que la condición de la luz ambiental, genera una
luminosidad sobre la mesa de trabajo, de manera que los colores de algunos objetos
se pueden combinar con dicha luz, y la cámara lo tomará como si el objeto fuera
parte de la mesa.
Fuente: Autores
Figura 55. Prueba con luz ambiente
85
Tabla 3. Resultados Prueba Luz ambiente
Fuente: Autores
En esta prueba que se realizó. Ver Figura 56, se observa una efectividad muy baja
de reconocimiento de formas y de posicionamiento del robot sobre el objeto, ver
Tabla 4, ya que las condiciones de las dos fotos no fueron las mismas se obtienen
estos resultados, se puede notar que el algoritmo identifica formas de más que no
debería reconocer y esto se evidencia en el cuadro de identificación de los objetos,
donde en las figuras que debería reconocer, las cuales son tres, en este caso
reconoce seis. Además, también por razones obvias, se emite un mensaje de que
el robot no alcanza el objeto, en promedio son tres de los objetos a los cuales no
puede llegar.
Fuente: Autores
Figura 56. Prueba con diferentes condiciones de luminosidad
86
Tabla 4. Resultados Prueba con diferentes condiciones ambientales
Fuente: Autores
87
10. CONCLUSIONES Y TRABAJOS FUTUROS
10.1 CONCLUSIONES
Con la realización del proyecto se evidencia la diferencia que existe entre un sistema
del cuerpo humano, con los diferentes elementos que se utilizan para lograr su
misma función. Se nota que existen muchas diferencias, debido a que el sistema
del cuerpo humano contempla más variables del entorno por sí sólo, mientras en el
sistema emulado, sólo se tienen en cuenta la que se programen.
La cinemática inversa permitió asignar los valores de las articulares del brazo
robótico, para que este mismo logre manipular el objeto dentro de la mesa de
trabajo.
El algoritmo de tratamiento de imágenes otorga muchas ventajas porque el
procedimiento se puede realizar con cualquier tipo forma, ya sea que tenga un área
transversal como un triángulo, círculo, cuadrado entre otras figuras primarias.
La interfaz gráfica otorga un entorno más llamativo con el cual el usuario puede
conocer todas las variables que dentro de él se muestran, y lograr un fácil
entendimiento de las mismas.
El uso del software de programación Matlab permitió la implementación de todos los
algoritmos que se tenían cada uno de ellos por separado, además dentro del mismo
software se complementó con una interfaz usuario - brazo robótico.
Para cualquier posición, el algoritmo se ejecuta de la manera en que se programó, ya sea que, si el objeto se encuentra dentro del área de trabajo, aquí se muestran los valores de las articulaciones, y si el objeto se encuentra fuera del área del trabajo permitida, el algoritmo mostrará un mensaje que anuncia que el robot no puede llegar al objeto, o también si el objeto está dentro del área de trabajo, pero para llegar a él, el robot presentaría una colisión con el entorno o consigo mismo.
En algunas ocasiones el reconocimiento de los objetos no se realiza de la mejor manera, debido a que las condiciones del entorno cambian al tomar alguna de las fotografías, y es por esto que se muestran objetos extraños en la imagen final.
En la identificación de formas el algoritmo reconoce los objetos sin importar su ubicación o su orientación de los cuales se encuentren dentro del área de trabajo.
88
10.2 TRABAJOS FUTUROS
Con la implementación de la cámara, se pretende realizar el control del mismo brazo
robótico pero esta vez con un sistema de banda transportadora, donde en ella exista
una constante circulación de objetos, la cámara debe ser capaz de tener las nuevas
variables en cuenta (velocidad y distancia), para que así pueda obtener los valores
articulares del brazo robótico en un punto donde se establecerá que el brazo
trasladara los objetos que pasan por la banda transportadora.
Realizar la comunicación entre los programas de Matlab y RobotStudio para que de
esta manera el robot opere completamente autónomo.
89
BIBLIOGRAFÍA
[1] J. Esqueda, Fundamentos de procesamiento de imágenes, México, 2005
[2] Wainschender. Rubén, Massa. José, Tristán. Paula. Procesamiento digital
de imágenes
[3] R. Gonzales, R. Woods S. Eddins. Digital Image Processing using Matlab
[4] C. Urdiles, Introducción a la robótica, España.
[5] R. Norton, Diseño de maquinaria, Mexico: Mc Grawn Hill.
[6] S. J. Gloria Martinez, «Diseño propio y construccion de un grazo robótico de
5GDL,» Revista de Igenieria eléctrica, electrónica y computación, vol. 4, p.
7, 2008.
[7] Manual del operador RobotStudio, a2. ABB, Suecia, 2008.
[8] R. Zuñiga, Introducción al uso de matlab, Madrid, 2010.
[9] S. Kumar, Introducción a la robótica, Mexico: Mc Grawn Hill, 2010.
[10] S. Vaca, «Innovación Tecnológica de las empresas,» Madrid, 2010.
[11] Diagrama de Pareto. Disponible en: https://calidadgestion.wordpress.com/2012/09/11/mejora_continua-
diagrama_de_pareto/
[12] UN.CEPAL. Desarrollo productivo en economías abiertas. Disponible en: http://www.cepal.org/es/publicaciones/13057-desarrollo-productivo-economias-abiertas
[13] Universia. Humanos VS robots. Disponible en: http://noticias.universia.es/empleo/noticia/2014/12/15/1116945/humanos-vs-robots-
depara-futuro.html
[14] A. R. Bermejo, «Desarrollo y programación de un brazo robótico para su
uso en centro de tratamiento de residuos,» Barcelona. España, 2013
[15] J. M. Valera, « Interacción entre Webcam y brazo Robot para el
posicionamiento del efector final,» Cartagena. Colombia, 2015.
[16] R. r. M. s. Ana Corrales, «Sistema de Identificación de Objetos Mediante
RFID para un robot personal,» Madrid, 2009.
[17] H. L. E. C. Sandra Nope, «Recontrucción 3D-2D de gestos usando
información de video monocular aplicada a un brazo robótico,» Antioquia.
Colombia, 2010
90
[18] E.A.Sobrado. Sistema de visión artificial para el reconocimiento y manipulación de objetos utilizando un brazo robot.Peru.2003
[19] A. G. Corbacho, «Desarrollo de una interfaz para el control del robot IRB
120 desde Matlab,» Alcala, 2014.
[20] J. A. C. Berduque, «Protocolo de comunicación trabajador-robot mediante
imágenes,» Cataluña, 2015.
[21] Ren C.Luo,Shis-Che Chou,Xin-Yi Yang. Hybrid Eye-to-hand and Eye-in-
hand visual servo system for parallel robot conveyor object tracking and
fetching.Taiwan.
[22] G.Salazar, O.Ramos. Sistema de servocontrol visual empleando redes
neuronales y filtros en el dominio CIELAB.Colombia.2015
[23] H.Mekki,K.Kaaniche. Adaptative 2D visual servoýng using variable
structure.Tunes.2016
[24] L.Changchun, Z. Xiaodong, P.Dong, L.Xin. Resech of visual servo control
system for space intelligent robot. China. 2015.
[25] L.Baoquan, f.Yongchun, X. Zhang. Visual servo regulation of wheeled
mobile robots with an uncalibrated onboard camera.China.2015.
[26] J.Pomares, I.Perea, G.García, C.A.Jara, J.A.Corrales, F.Torres. A multi-
sensorial hybrid control for robotic manipulation in human-robot
workspace.España.2015.
[27] H.Chen, K.Liu, G. Xing, H.Sun, W.Lin. A robust visual servo control system
for narrow seam double head welding robot. China. 2014.
[28] J. Lu, J. Song, Y. Liu. High-precision servo control of robot arm based on
vision and PSD.China.2013
[29] A. Munsell, A color notation, New York, 1919
[30] N. L. serna, Técnicas De segmentación en procesamiento de imágenes,
México, 2011.
[31] Aguilar. Gustavo. Procesamiento de imágenes utilizando filtros
morfológicos.
[32] J. G. Hoyos.Técnicas de Calibración de Cámaras para visión estereo y reconstrucción, Tratamiento de señales, imágenes y visión artificial, p. 6, 2010.
[33] Yi Cao, Ke Lu, Xiujuan Li and Yi Zang (2011). Accurate Numerical Methods for Computing 2D and 3D Robot Workspace [Journal] // International Journal
91
of Advanced Robotic Systems : INTECH, August 2011. – 6 : Vol. VIII – pp. 1-13
[34] D.A.Pizarro, Comparación de técnicas de calibración de cámaras digitales.Colombia 2005
[35] P. C. Y. O. C. U. Jorge Ramón Lucena, «Cirugia Robótica.Una visión
Histórica,» Venezuela, 2008. [36] PEÑA, M., et al. Visión Para Robots En Tareas De Ensamble. En:
Proceedings, of the Second National Congress on Mecathronics.2003 [37] F. S. Mata, «El procesamiento de imágenes de TLC como una nueva rama
para la identificación de sustancias,» Cuba, 2008. [38] FOGEL, Harry S. Miller. Cirugía robótica en México. Los sistemas
inteligentes, perspectivas actuales ya futuro en el ámbito mundial. En: REVISTA MEXICANA DE CIRUGÍA ENDOSCÓPICA. Vol. 4, no. 1, p. 45-50.
[38] «Desarrollo y programación de un brazo antropomórfico». [39] ABB, «Smart,» Manufacturing engineer, p. 6, 2007. [40] ABB, «SMART». [41] T. Buzan, Make the Most of your Mind, New York: Fireside Book, 2005, p.
162. [42] J. F. M. C. R. M. Carlos Prieto, «Sistema de Visión Artificial para el Control
de Movimiento de un Asistente Robótico Médico,» Buenos Aires. Argentina, 2010.
[43] V. P. F. Eudaldo, Microcontroladores : fundamentos y aplicaciones con pic, México : AlfaOmega, 2007.
[44] F. C. A. S. HUTCHINSON, «Visual servo control part I: Basic Approaches,» IEEE Robotics & Automation Magazine, 2006
[45] F. C. A. S. HUTCHINSON, «Visual servo control Part II: Advanced Approaches,» IEEE Robotics & Automation Magazine, 2007.
[46] A. K. Jain, Fundamental of Digital Image Processing, New Jersey: Collen Bosnan, 1989.
[47] I. L.-J. J. C. K. O. M Peña, «Visión para Robots en tareas de ensamblaje,» 2015.
[48] E. A. S. Malpartida, «Sistema de Visión Artificial para el Reconocimiento y Manipulación de Objetos Utilizando un Brazo Robot,» Lima. Perú, 2003.
[49] T. A. I. News, «Meet YUMI, ABB's newcolaborative robot,» Technology And Industry News, p. 1, 2012.
[50] S.-C. C. X.-Y. Y. Ren C. Luo, «Hybrid Eye-to-Hand and Eye--in-hand Visual Servo System for Parallel Robot Conveyor Object Tracking and Fetching,» IEEE Xplore, p. 6, 2014.
[51] C. A. Reyes, Microcontroladores PIC, Quito, 2006. [52] D. F. Z. C. H. L. a. G. M. Sihao Deng, «Robot-Assisted Thermal Spraying,»
Tokio, Japon, 2012 [53] C. Tavernier, Microcontroladores pic, Madrid: Paraninfo, 1997. [54] J. Massa, Procesamiento Digital de imágenes, 2011.
92
[55] A. Company, « RAPID manual del operador,» Suecia, 2007. [56] C.Ricolfe. Caracterización y optimización del proceso de calibrado de
cámaras basado en plantilla bidimensional.España.2006 .
93
ANEXOS
Anexo A: Resolución ecuación articulación 2
𝑅1 = √𝐿32 + 𝐿4
2
𝑅2 = √𝐿42
𝐿32 + 1
𝑃𝑚𝑥
𝑆𝑖𝑛𝑄1. 𝑅1=
𝐿2. 𝑆𝑖𝑛𝑄2
𝑅1+
𝐶𝑜𝑠𝑄3. 𝑆𝑖𝑛𝑄2
𝑅2+
𝐿4. 𝑆𝑖𝑛𝑄2. 𝑆𝑖𝑛𝑄3
𝐿3. 𝑅2+
𝐶𝑜𝑠𝑄2. 𝑆𝑖𝑛𝑄3
𝑅2
−𝐿4. 𝐶𝑜𝑠𝑄2. 𝐶𝑜𝑠𝑄3
𝐿3. 𝑅2
𝑃𝑚𝑥 − 𝐿1
𝑅1= −
𝑆𝑖𝑛𝑄2. 𝑆𝑖𝑛𝑄3
𝑅1+
𝐿4. 𝐶𝑜𝑠𝑄3. 𝑆𝑖𝑛𝑄2
𝐿3. 𝑅2+
𝐿2. 𝐶𝑜𝑠𝑄2
𝑅1+
𝐶𝑜𝑠𝑄2. 𝐶𝑜𝑠𝑄3
𝑅1
+𝐿4. 𝐶𝑜𝑠𝑄2. 𝑆𝑖𝑛𝑄3
𝐿3. 𝑅2
Se factorizan el 𝐶𝑜𝑠𝑄2 y el 𝑆𝑖𝑛𝑄2 de las dos ecuaciones, de manera que se obtengan
términos constantes de ellas.
𝑃𝑚𝑥
𝑅1= 𝑆𝑖𝑛𝑄2 (
𝐿2
𝑅1+
𝐶𝑜𝑠𝑄3
𝑅2+
𝐿4. 𝑆𝑖𝑛𝑄3
𝐿3. 𝑅2) + 𝐶𝑜𝑠𝑄2 (
𝑆𝑖𝑛𝑄3
𝑅2−
𝐿4. 𝐶𝑜𝑠𝑄3
𝐿3. 𝑅2)
𝑃𝑚𝑧 − 𝐿1
𝑅1= −𝑆𝑖𝑛𝑄2 (
𝑆𝑖𝑛𝑄3
𝑅2−
𝐿4. 𝐶𝑜𝑠𝑄3
𝐿3. 𝑅2) + 𝐶𝑜𝑠𝑄2 (
𝐿2
𝑅1+
𝐶𝑜𝑠𝑄3
𝑅2+
𝐿4. 𝑆𝑖𝑛𝑄3
𝐿3. 𝑅2)
Se reemplazan los valores dentro de los paréntesis por constantes de la siguiente
manera:
𝑃𝑚𝑥
𝑅1= 𝑆𝑖𝑛𝑄2(𝑎) + 𝐶𝑜𝑠𝑄2(𝑏)
(1a)
94
𝑃𝑚𝑧 − 𝐿1
𝑅1= −𝑆𝑖𝑛𝑄2(𝑏) + 𝐶𝑜𝑠𝑄2(𝑎)
(2a)
Se despeja una variable de una ecuación para posteriormente reemplazarla en la
otra ecuación. En este caso se despejó 𝑆𝑖𝑛𝑄2 de la ecuación (1a), y quedó de la
siguiente manera:
𝑆𝑖𝑛𝑄2 =𝑃𝑚𝑥 − 𝐶𝑜𝑠𝑄2. 𝑏. 𝑆𝑖𝑛𝑄1. 𝑅1
𝑆𝑖𝑛𝑄1. 𝑅1. 𝑎
(3a)
Reemplazándolo (3ª) en la ecuación (2a) y despejando 𝐶𝑜𝑠𝑄2:
𝑃𝑚𝑧 − 𝐿1
𝑅1=
−𝑏. (𝑃𝑚𝑥
𝑆𝑖𝑛𝑄1. 𝑅1. 𝑎− 𝐶𝑜𝑠𝑄2. 𝑏)
𝑎+ 𝐶𝑜𝑠𝑄2. 𝑎
𝑃𝑚𝑧 − 𝐿1
𝑅1=
−𝑏. 𝑃𝑚𝑥
𝑆𝑖𝑛𝑄1. 𝑅1. 𝑎+
𝐶𝑜𝑠𝑄2. 𝑏2
𝑎+ 𝐶𝑜𝑠𝑄2. 𝑎
𝐶𝑜𝑠𝑄2 (𝑏2
𝑎+ 𝑎) =
𝑃𝑚𝑧 − 𝐿1
𝑅1+
𝑏. 𝑃𝑚𝑥
𝑆𝑖𝑛𝑄1.𝑅1. 𝑎
𝐶𝑜𝑠𝑄2 =
𝑃𝑚𝑧 − 𝐿1
𝑅1+
𝑏. 𝑃𝑚𝑥𝑆𝑖𝑛𝑄1. 𝑅1. 𝑎
𝑎2 + 𝑏2
𝑎
𝐶𝑜𝑠𝑄2 =(𝑃𝑚𝑧 − 𝐿1). 𝑆𝑖𝑛𝑄1. 𝑎 + 𝑏. 𝑃𝑚𝑥
𝑆𝑖𝑛𝑄1. 𝑅1(𝑏2 + 𝑎2)
95
Anexo B: Manual de operación e inclusión de variables al Flexpendant
En este anexo se mostrará y explicará la metodología que se debe seguir para
incluir los valores de cada una de las articulaciones al programa que se realizó en
el programa del Flexpendant.
En la pantalla principal del Flexpendant, se encontrarán diferentes funciones que el
dispositivo posee, dentro de ellas se encuentra Datos de programa, es allí donde se
introducen los diferentes valores que se necesitan para la realización del programa.
Fuente: Autores
Una vez seleccionado esta función aparecerán diferentes parámetros con los que
el robot opera, en este caso se seleccionará la opción jointtarget, la cual permite dar
valores de tipo articular.
96
Fuente: Autores
Cuando se selecciona esta opción, aparecen los datos del programa, los cuales son
los puntos programados dentro de la trayectoria que el robot hará. En este caso se
selecciona la opción “p1”, este punto es el valor que se muestra en la interfaz gráfica
de cada uno de los objetos.
97
Fuente: Autores
Cuando se selecciona el punto anteriormente mencionado, aparecerá en la pantalla
la opción de introducir un valor a cada una de las articulaciones del robot industrial,
para este caso el nombre que recibe la articulación 1 se llama “rax_1” y así para sus
seis articulaciones.
98
Anexo C: Fórmula utilizada para hallar el coeficiente de correlación
𝑟 =∑ ∑𝑛 𝑚 (𝐴𝑚𝑛 − �̅�)(𝐵𝑚𝑛 − �̅�)
√(∑ ∑𝑛 𝑚 (𝐴𝑚𝑛 − �̅�)2)(∑ ∑𝑛 𝑚 (𝐵𝑚𝑛 − �̅�)2)
Donde:
𝐴
= 𝐼𝑛𝑡𝑒𝑛𝑠𝑖𝑑𝑎𝑑 𝑑𝑒𝑙 𝑝𝑖𝑥𝑒𝑙 𝑐𝑜𝑟𝑟𝑒𝑠𝑝𝑜𝑛𝑑𝑖𝑒𝑛𝑡𝑒 𝑎 𝑙𝑎 𝑝𝑜𝑠𝑖𝑐𝑖𝑜𝑛 𝑚, 𝑛 𝑑𝑒 𝑙𝑎 𝑖𝑚á𝑔𝑒𝑛 𝑑𝑒𝑙 𝑜𝑏𝑗𝑒𝑡𝑜 𝑝𝑟𝑜𝑐𝑒𝑠𝑎𝑑𝑜 𝑑𝑒𝑛𝑡𝑟𝑜 𝑑𝑒𝑙 𝑒𝑠𝑝𝑎𝑐𝑖𝑜 𝑑𝑒 𝑡𝑟𝑎𝑏𝑎𝑗𝑜
𝐵
= 𝐼𝑛𝑡𝑒𝑛𝑠𝑖𝑑𝑎𝑑 𝑑𝑒𝑙 𝑝𝑖𝑥𝑒𝑙 𝑐𝑜𝑟𝑟𝑒𝑠𝑝𝑜𝑛𝑑𝑖𝑒𝑛𝑡𝑒 𝑎 𝑙𝑎 𝑝𝑜𝑠𝑖𝑐𝑖ó𝑛 𝑚, 𝑛 𝑑𝑒 𝑙𝑎𝑠 𝑖𝑚á𝑔𝑒𝑛𝑒𝑠 𝑑𝑒𝑛𝑡𝑟𝑜 𝑑𝑒 𝑙𝑎 𝑏𝑎𝑠𝑒 𝑑𝑒 𝑑𝑎𝑡𝑜𝑠
�̅� = Valor medio de la matriz A
�̅� = Valor medio de la matriz 𝐵
𝑚 = 𝑃𝑜𝑠𝑖𝑐𝑖ó𝑛 𝑠𝑜𝑏𝑟𝑒 𝑒𝑙 𝑒𝑗𝑒 ℎ𝑜𝑟𝑖𝑧𝑜𝑛𝑡𝑎𝑙 𝑑𝑒𝑛𝑡𝑟𝑜 𝑑𝑒 𝑙𝑎 𝑖𝑚𝑎𝑔𝑒𝑛
𝑛 = 𝑃𝑜𝑠𝑖𝑐𝑖ó𝑛 𝑠𝑜𝑏𝑟𝑒 𝑒𝑙 𝑒𝑗𝑒 𝑣𝑒𝑟𝑡𝑖𝑐𝑎𝑙 𝑑𝑒𝑛𝑡𝑟𝑜 𝑑𝑒 𝑙𝑎 𝑖𝑚𝑎𝑔𝑒𝑛
Fuente: MathWorks
99
Anexo D: Diagrama de fujo programa Matlab
Fuente: Autores
100
Anexo E: Algoritmo procesamiento de imágenes
Fuente: Autores