Selección y clasificación de piezas mediante visión de ...
Transcript of Selección y clasificación de piezas mediante visión de ...
Universidad de La Salle Universidad de La Salle
Ciencia Unisalle Ciencia Unisalle
Ingeniería en Automatización Facultad de Ingeniería
4-11-2016
Selección y clasificación de piezas mediante visión de máquina Selección y clasificación de piezas mediante visión de máquina
utilizando un robot industrial utilizando un robot industrial
Laura Julieth Patiño Arévalo Universidad de La Salle, Bogotá
Wilson Alonso Hernández Martínez Universidad de La Salle, Bogotá
Follow this and additional works at: https://ciencia.lasalle.edu.co/ing_automatizacion
Part of the Robotics Commons
Citación recomendada Citación recomendada Patiño Arévalo, L. J., & Hernández Martínez, W. A. (2016). Selección y clasificación de piezas mediante visión de máquina utilizando un robot industrial. Retrieved from https://ciencia.lasalle.edu.co/ing_automatizacion/112
This Trabajo de grado - Pregrado is brought to you for free and open access by the Facultad de Ingeniería at Ciencia Unisalle. It has been accepted for inclusion in Ingeniería en Automatización by an authorized administrator of Ciencia Unisalle. For more information, please contact [email protected].
SELECCION Y CLASIFICACION DE PIEZAS MEDIANTE VISION DEMAQUINA UTILIZANDO UN ROBOT INDUSTRIAL
Presentado por:
Laura Julieth Patino Arevalo
Wilson Alonso Hernandez Martınez
Ingenierıa en Automatizacion
UNIVERSIDAD DE LA SALLE
11 de abril de 2016
Bogota DC.
SELECCION Y CLASIFICACION DE PIEZAS MEDIANTE VISION DEMAQUINA UTILIZANDO UN ROBOT INDUSTRIAL
Presentado por:
Laura Julieth Patino Arevalo
Wilson Alonso Hernandez Martınez
Trabajo de grado para optar el tıtulo de
Ingeniero en Automatizacion
Dirigido por:
Ph.D.Jorge Eliecer Rangel Dıaz
Ingenierıa en Automatizacion
UNIVERSIDAD DE LA SALLE
11 de abril de 2016
Bogota DC.
Nota de aceptacion:
Firma del Director.
Firma del Jurado.
Firma del Jurado.
Bogota D.C 11 de abril de 2016
Dedicatoria
Queremos dedicar el presente trabajo de grado a nuestras madres, quienes nos apoya-
ron incondicionalmente e inculcaron en nosotros el estudio como un pilar fundamental del
desarrollo personal.
Todo este trabajo ha sido posible gracias a ellas.
Agradecimientos
Queremos agradecer a la Pontificia Universidad Javeriana, en especial al Centro Tecnologi-
co de Automatizacion Industrial (CTAI) en Bogota, Colombia por permitirnos realizar el desa-
rrollo de la tesis en sus instalaciones y disponer los equipos, personal e intelecto para el
exito del presente trabajo de grado.
Quiero agradecer a mi tıa Catalina Guyaguler por ayudarme en todos estos anos, respetar
mis elecciones y mostrarme las prioridades de la vida, gracias a ella he podido tener
innumerables experiencias, expandir mis horizontes y continuar con mis estudios.
A mis abuelos Pedro y Gloria quienes contribuyeron a mi desarrollo profesional y personal,
ayudaron y apoyaron en mis estudios.
Laura Julieth Patino Arevalo
CONTENIDO
1. INTRODUCCION 11
2. MARCO DE REFERENCIA 142.1. TECNICAS INDUSTRIALES PICK AND PLACE Y BIN PICKING . . . . . . . 152.2. SISTEMAS AUTOMATICOS CON VISION DE MAQUINA . . . . . . . . . . . 162.3. ACTUALIDAD Y TENDENCIA DE LA AUTOMATIZACION . . . . . . . . . . . 252.4. MATERIALES UTILIZADOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3. DESCRIPCION DE SISTEMA IMPLEMENTADO 283.1. ESTRUCTURA DE VISION DE MAQUINA . . . . . . . . . . . . . . . . . . . . 28
3.1.1. SENSOR HOKUYO . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.1.2. SENSOR KINECT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.1.2.1. SENSOR DE PROFUNDIDAD DEL KINECT . . . . . . . . . 303.1.2.2. SENSOR DE PROFUNDIDAD DEL KINECT . . . . . . . . . 31
3.1.3. PRUEBAS REALIZADAS A LOS SENSORES . . . . . . . . . . . . . 313.2. ESTRUCTURA DEL ROBOT . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.2.1. EFECTOR FINAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343.3. CONTROLADOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353.4. ALGORITMOS DE PROGRAMACION . . . . . . . . . . . . . . . . . . . . . . 36
3.4.1. ALGORITMO VISION DE MAQUINA . . . . . . . . . . . . . . . . . . . 383.4.2. ALGORITMO COMUNICACION . . . . . . . . . . . . . . . . . . . . . 403.4.3. ALGORITMO JOB MAIN . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.5. DISTRIBUCION DE PLANTA . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4. IMPLEMENTACION Y PROGRAMACION 474.1. IMPLEMENTACION DEL SISTEMA DE VISION DE MAQUINA . . . . . . . . 47
4.1.1. ADQUISICION Y PROCESAMIENTO IMAGEN RGB . . . . . . . . . . 474.2. PROCESAMIENTO DE LA IMAGEN DE PROFUNDIDAD DEL SENSOR KI-
NECT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514.3. PRUEBAS Y ANALISIS PROCESAMIENTO DE IMAGENES . . . . . . . . . 534.4. PRUEBAS PROCESAMIENTO DE LA IMAGEN DE PROFUNDIDAD . . . . . 56
4.4.1. AJUSTES DEL PROCESAMIENTO DE LA IMAGEN DE PROFUNDI-DAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.5. INTERFAZ DE LA APLICACION DE VISION DE MAQUINA . . . . . . . . . . 594.6. COMUNICACION ENTRE MATLAB R© Y EL CONTROLADOR . . . . . . . . . 614.7. PROGRAMACION DEL ROBOT SDA10F . . . . . . . . . . . . . . . . . . . . 64
5. PRUEBAS Y ANALISIS DE LA INTEGRACION DE LAS APLICACIONES 67
Conclusiones 74
BIBLIOGRAFIA 76
4
LISTA DE FIGURAS
Figura 1.Taxonomıa de los metodos de adquisicion activos . . . . . . . . . . 14Figura 2. Relacion del ojo humano con una camara . . . . . . . . . . . . . . 17Figura 3. Funcionamiento del sensor CCD . . . . . . . . . . . . . . . . . . . . 19Figura 4. Funcionamiento del sensor CMOS . . . . . . . . . . . . . . . . . . . 20Figura 5. Tiempo de vuelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24Figura 6. Suministro mundial de Robots industriales . . . . . . . . . . . . . . 25Figura 7. Suministro de Robots Industriales en los mercados mas grande2009–2013 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Figura 8.Sistema implementado . . . . . . . . . . . . . . . . . . . . . . . . . 28Figura 9. Sensor Hokuyo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29Figura 10. Sensor Kinect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30Figura 11. Imagen de profundidad sensor Kinect . . . . . . . . . . . . . . . . 30Figura 12. Imagen de profundidad y datos del sensor Hokuyo . . . . . . . . . 31Figura 13. Pruebas sensor kinect . . . . . . . . . . . . . . . . . . . . . . . . . 32Figura 14. Robot SDA10F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33Figura 15. Area de trabajo Robot SDA10F . . . . . . . . . . . . . . . . . . . . 34Figura 16. Gripper de dos dedos del Robot SDA10F . . . . . . . . . . . . . . 35Figura 17. Gripper de tres dedos del Robot SDA10 . . . . . . . . . . . . . . . 35Figura 18.Trasferencia de informacion entre la aplicacion de Matlab R©, Moto-com SDK R© y el controlador FS100 . . . . . . . . . . . . . . . . . . . . . . . 37Figura 19.Diagrama de flujo de la aplicacion de procesamiento de imagenes 39Figura 20.Diagrama de flujo de la comunicacion de la aplicacion . . . . . . . 41Figura 21.Diagrama de flujo de realizacion de los Jobs . . . . . . . . . . . . . 42Figura 22. Distribucion de planta . . . . . . . . . . . . . . . . . . . . . . . . . 43Figura 23. Bandeja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44Figura 24. Limitaciones en el area de trabajo . . . . . . . . . . . . . . . . . . 44Figura 25. Cubos de interferencia . . . . . . . . . . . . . . . . . . . . . . . . . 45Figura 26. Ubicacion cubos de colision . . . . . . . . . . . . . . . . . . . . . . 46
Figura 27. Imagen en escala de grises . . . . . . . . . . . . . . . . . . . . . . 48Figura 28. Calculo de perımetro de objetos . . . . . . . . . . . . . . . . . . . 49Figura 29. Calculo de orientacion de objetos . . . . . . . . . . . . . . . . . . 49Figura 29. Etiquetado de elementos . . . . . . . . . . . . . . . . . . . . . . . 50Figura 30. Histogramas de la imagen para la deteccion de piezas de color azul 50Figura 31. Imagen de profundidad. . . . . . . . . . . . . . . . . . . . . . . . . 51Figura 32. Conversion de la imagen de profundidad a RGB. . . . . . . . . . . 52Figura 33. Ajuste de valor cero. . . . . . . . . . . . . . . . . . . . . . . . . . . 52Figura 34. Correccion de imagen de profundidad. . . . . . . . . . . . . . . . . 53Figura 35. Pruebas del algoritmo. . . . . . . . . . . . . . . . . . . . . . . . . . 53Figura 36. Diagrama de Pareto (Cantidad de piezas detectadas). . . . . . . . 54
5
Figura 37. Cantidad de objetos detectados por el algoritmo. . . . . . . . . . . 54Figura 38. Distancia de Pareto distancia de la pieza al sensor. . . . . . . . . 56Figura 39. Vecindad del pıxel para hallar la altura. . . . . . . . . . . . . . . . 57Figura 40. Diagrama de Pareto correccion de altura. . . . . . . . . . . . . . . 58Figura 41. Interfaz de usuario en Matlab R©. . . . . . . . . . . . . . . . . . . . 59Figura 42. Captura del sistema y recorte con la funcion de configuracion. . . 60Figura 43.Estructura de las funciones de Motocom SDK. . . . . . . . . . . . . 61Figura 44.Aplicacion de comunicacion desarrollada en Visual Studio. . . . . . 63Figura 45.Traslacion y rotacion de los brazos. . . . . . . . . . . . . . . . . . . 64Figura 46.Funcion Job Stack. . . . . . . . . . . . . . . . . . . . . . . . . . . . 65Figura 47.Variables de posicion del Robot. . . . . . . . . . . . . . . . . . . . . 66
Figura48.Tipos de piezas para pruebas . . . . . . . . . . . . . . . . . . . . . 67Figura 49.Pruebas finales ubicacion de las piezas . . . . . . . . . . . . . . . 67Figura 50.Pruebas Parafina Industrial. . . . . . . . . . . . . . . . . . . . . . . 68Figura 51.Pruebas piezas rectangulares de empack. . . . . . . . . . . . . . . 68Figura 52.Pruebas barras de empack tipo 1. . . . . . . . . . . . . . . . . . . . 69Figura 53.Pruebas barras de empack tipo 2. . . . . . . . . . . . . . . . . . . . 70Figura 54.Piezas de manera aleatoriamente sobre la bandeja. . . . . . . . . 71Figura 55.Errores de las pruebas. . . . . . . . . . . . . . . . . . . . . . . . . 71
6
LISTA DE TABLAS
Tabla 1. Especificaciones del Controlador . . . . . . . . . . . . . . . . . . . . 36
Tabla 1. Datos de la cantidad de piezas detectadas por el algoritmo . . . . . 55Tabla 2. Datos de altura de las piezas . . . . . . . . . . . . . . . . . . . . . . 57Tabla 3. Correccion altura objetos . . . . . . . . . . . . . . . . . . . . . . . . . 58
7
GLOSARIOBIN PICKING”. Extraccion de una pieza de un contenedor, el cual contiene piezas en orden
aleatorio.
CAMARA EN MANO. El sensor (camara) esta fijo en algun lugar de la escena. Donde la
posicion del sensor es independiente de la posicion del manipulador.
CAMARA EN MANO. El sensor (camara) esta montado en el efector final del robot. De tal
manera que cuando el robot se desplaza simultaneamente lo hace el sensor.
CLASIFICACION. Accion de ordenar por clases.
FALSO COLOR. Tecnica que permiten asociar a un rango de gris dado un color especıfico
que tiene el unico proposito de hacer mas visibles las areas correspondientes.
HSV. El modelo HSB (o HSV, como se prefiera) deriva del espacio RGB y representa los
colores combinando tres valores: el tono en sı (H), la saturacion o cantidad de color (S) y el
brillo del mismo (B). Estos valores suelen representarse en un diagrama circular .
INTERFAZ GRAFICA. Son los elementos graficos que ayudan a comunicar al usuario con
un sistema.
JOB. Hace referencia a las aplicaciones realizadas en el controlador FS100.
JOB STACK. Denominacion de la funcion para hacer llamados de subrutinas, en los contro-
ladores Yaskawa.
SELECCION. Accion de elegir o escoger.
STACK LEVEL. Hace referencia a los subprogramas utilizados en la programacion de los
controladores Yaskawa.
LOOK AND MOVE. Metodo para la seleccion y clasificacion de un objeto que consiste en
determinar un objetivo e ir por el.
VISION DE MAQUINA. Sistemas que permiten la identificacion de caracterısticas visuales
de piezas, partes y productos para control de calidad y seleccion. Identifican texturas y
colores, verifican morfologıa, realizan mediciones de distancia y leen codigos y caracteres.
TOF. Metodo activo que se usa para aplicaciones de largo alcance (10-100m), precision
baja, resolucion limitada, y una gran cantidad de complejidad de calculos.
MANIPULACION ALEATORIA . Accion de sujetar un elemento de un conjunto de objetos
que se encuentran de forma casual.
9
RESUMEN
Los robots industriales, disenados para realizar operaciones de forma rapida, precisa y re-
petidamente tienen una larga tradicion en la industria manufacturera, debido a que operan
en ambientes relativamente estaticos y en grandes cantidades, sin embargo el uso de es-
tos en procesos de seleccion y clasificacion conlleva la vision de maquina, la cual aporta
a la tarea la informacion necesaria al procesar una imagen y dar los datos correctos para
posterior realizacion de la tarea.
El presente trabajo de grado contiene la implementacion de un sistema de vision de maqui-
na para la seleccion y clasificacion de piezas por forma y tamano mediante el uso de un
robot industrial. En primer lugar se pauta definir el sensor del sistema de seleccion y clasifi-
cacion para las coordenadas de la posicion de las piezas e identificar la forma y el tamano
de estas mediante un algoritmo por medio de vision de maquina. Este algoritmo permitira
determinar la orientacion y la posicion de las piezas mediante el reconocimiento de su cen-
tro de masa para finalmente establecer las instrucciones de la orientacion y de la posicion
de las piezas para su sujecion con un robot, en este caso se usa un robot de dos brazos
de la companıa Yaskawa referencia SDA10F, el cual cuenta con 15 grados de libertad y el
sensor Kinect para la adquisicion y procesamiento de imagenes. Para el exito de la tarea
se hizo necesaria una serie de logros, empezando por la adecuacion del robot dentro del
centro integrado de manufactura (CIM) ubicado en el centro tecnologico de automatizacion
industrial de la Pontificia Universidad Javeriana y ubicacion del sensor para dar una vista
superior del contenedor de las piezas, el software seleccionado para la realizacion de la
vision de maquina fue Matlab R© con el cual se adquirieron las coordenadas y orientacion
de las piezas a clasificar, parametrizandolas a traves de instrucciones propias del software
y estableciendo comunicacion con Visual Studio que a su vez realiza comunicacion con el
controlador del robot (FS100)mediante el protocolo TCP IP, donde Visual Studio escribe so-
bre el controlador y se ejecuta un trabajo.
Palabras clave: Clasificacion, Robot industrial, Seleccion, Vision de maquina
1 INTRODUCCION
En la industria Colombiana, el sector industrial manufacturo es el tercero mas importante del
paıs al representar el 13,3 % del valor agregado nacional y 12,0 % del PIB en el 2012 (DANE,
2013). Sin embargo, Colombia presenta problemas estructurales como los sobre costos de
transporte, la carencia de la infraestructura adecuada, los sobre costos laborales que aun
persisten en 46 %-5 % del salario, luego de la implementacion de la Ley 1607 de 2012; y
sobre costos de energıa y gas, parcialmente reducidos en la Ley 1430 de 2010.(Clavijo,
Vera y Fandino , 2014)
Para desarrollar la industria se debe tener en cuenta algunos de los pasos que se deben
dar en polıtica educativa para crear las bases necesarias para adquirir las competencias
que la Organizacion para la Cooperacion (OCDE) y el Desarrollo Economico, define co-
mo indispensables para la modernizacion de la industria, o el enorme atraso en ciencia y
tecnologıa.
Dentro de la industria manufacturera, en las lıneas de produccion se mezclan las piezas
y se hace necesaria una separacion y clasificacion en etapas intermedias o finales de la
lınea de produccion, en esta area la tarea se realiza manualmente donde se identifica y
selecciona la pieza pasandola a un contenedor, este puesto de trabajo repetitivo desarrolla
enfermedades como la fatiga visual generada por la concentracion en la tarea que provoca
un pestaneo del empleado menos frecuente, lo que produce dolor de cabeza y malestar; el
dolor de espalda tambien puede generarse en este sector ya que si se presenta una mala
posicion se afectara el estado de la espalda y el sındrome del tunel Carpiano causado por la
flexion reiterada de la muneca, que produce perdida de fuerza en las manos.(Garcıa , 2011)
El ministerio de trabajo expide el decreto 1417 donde se presenta una tabla de enfermeda-
des laborales, segun la seccion uno (1) en el ıtem cinco (5) el factor de riesgo ocupacional de
posiciones forzadas y movimientos repetitivos de miembros superiores o combinacion de las
anteriores con alta demanda de tareas manuales o con herramientas de vibracion en indus-
trias, se pueden desarrollar enfermedades como en sındrome del tunel Carpiano, sındrome
de pronador redondo, sındrome del canal de Guyon, entre otras mononeuropatıas de miem-
bros superiores, artrosis, sındrome cervicobraquial, Dorsalgia, Cervicalgia, Enfermedad de
Quervain, Lesiones de hombro, Tendinitis y lesiones de hombro no especificadas.(trabajo ,
2014)
11
El uso de informacion visual a traves de los anos ha tomado gran importancia al aportar
a procesos de clasificacion, calidad, eficacia y flexibilidad debido a que suministra informa-
cion geometrica y dinamica del entorno donde se encuentra el robot, dicha informacion es
posible sin contacto fısico y puede contener varias caracterısticas a procesar, comunmente
dando a conocer la posicion y orientacion de los objetos presentes en la escena donde se
efectua la tarea. La utilizacion del sistema de vision se conoce como control servo visual en
donde se capturan y procesan imagenes por medio de un sistema compuesto de camara e
iluminacion, se analizan e interpretan por medio de una computadora con software para dar
una retroalimentacion en un tiempo adecuado y permitiendo en cada ciclo la actualizacion
de la informacion de la tarea dando nuevas posiciones destino hasta completar la tarea.
Para mantener la competencia global, la industria manufacturera debe enfocarse sobre la
flexibilidad. Para producir piezas de una forma rapida y eficiente. La mayor parte de la opera-
ciones son usualmente realizas por robots en produccion en lınea. Cuestiones sin solventar
aun es la habilidad de los robots manipuladores para desempenarse en ambientes no es-
tructurados donde tampoco la forma de la posicion del objeto es predecible. Sistemas de
vision 2D y 3D son considerados esenciales en la ayuda de estos contextos, “Bin Picking” es
una forma rapida y eficiente de organizar contenedores donde los objetos estan en desor-
den. Requiere la identificacion del objeto para estimar la orientacion y localizacion espacial
en el contenedor. Las principales caracterısticas de un sistema “Bin Picking” son: (i) adquisi-
cion de la escena a traves de vision, (ii) segmentacion de la escena separacion de diferentes
objetos) y (iii) reconocimiento y posicion de los objetos segmentados. Actualmente la seg-
mentacion y el reconocimiento son basados en tecnicas 2D. Ideal para elementos donde su
tercera dimension es insignificante.(Giovanna y col. , 2014)
El primer paso en el proceso de la aplicacion de seleccion y clasificacion es el reconoci-
miento del objeto o pieza a recolectar, para esto es necesaria la informacion precisa en tres
dimensiones de este objeto a traves de un sensor con el cual se obtienen los parametros
morfologicamente cada pieza, la seleccion del sensor debe ser enfatizada en el entorno de
trabajo, altura y calidad de captura de imagenes pues esta sera el campo de vision donde
se realizara la tarea. Una vez determinada la pieza, el robot debera alcanzarla con unas
coordenadas especificas adquiridas en el procesamiento de la imagen, esta tarea debe rea-
lizarse sin colisiones con el entorno de trabajo o con el resto de piezas, para lo cual se debe
calcular la trayectoria y orientacion adecuada.
Por ultimo el robot a traves de su controlador se posicionara para la recoleccion de la pieza
y la clasificara en un lugar determinado segun parametros previamente analizados dando
12
por terminada la tarea de seleccion y clasificacion donde el sistema debe ser capaz de
determinar la posicion y orientacion de las piezas colocadas aleatoriamente para realizar el
agarre de forma segura e identificar el tipo de pieza que clasificara.
13
2 MARCO DE REFERENCIA
“En general, la automatizacion de cualquier proceso industrial incluye la actuacion mecani-
ca sobre el producto y/o elementos de la planta de produccion y la medida y la regulacion
de ciertas variables del proceso, todo ello a traves de un conjunto de equipos y dispositi-
vos mecanicos, electricos y/o electronicos.(Sin y Gamiz Caro , 2014) En este capitulo se
describen las tecnicas industriales de manipulacion de objetos con robots, al igual que los
sistemas de vision de maquina, la actualidad y tendencia de la automatizacion y por ultimo
los materiales que se utilizaron para la verificacion de este trabajo de grado.
Existen dos metodos para la deteccion de objetos de manera activa. Los cuales se clasifican
de contacto y sin contacto en la Fig.1 se muestra la taxonomıa de adquisicion de forma. En
el metodo de contacto el sensor de deteccion es intrusivo y hace contacto con el objeto
a identificar, mientras que los de sin contacto funcionan de manera general mediante la
proyeccion de las ondas de energıa sobre un objeto. (Curless , 1997)
FIGURA 1: Taxonomıa de los metodos de adquisicion activos
Fuente. http://www.compsci.hunter.cuny.edu
14
En la seccion 2.2 se hace una descripcion de algunos metodos opticos para la deteccion de
objetos, debido a que este metodo fue implementado en este proyecto.
2.1. TECNICAS INDUSTRIALES PICK AND PLACE Y BIN
PICKING
Los robots manipuladores industriales llevan anos siendo utilizados en un conjunto de apli-
caciones que se consideran como solidas. algunas de las mas conocidas son; la manipu-
lacion, la atencion de maquinas, la soldadura, la aplicacion de materiales, el mecanizado y
ensamblaje de productos.En el ambito de automatizacion de planta, la robotica y manipula-
cion industrial han adquirido un papel determinante, ya que estos son elementos esenciales
en los sistemas flexibles para la fabricacion automatizada.(Sin y Gamiz Caro , 2014)
Dentro de las aplicaciones de manipulacion la mas conocida se denomina Pick & Place, la
cual como su nombre lo indica determina la posicion de un objeto en un plano y hace su
posterior recoleccion, usualmente este tipo de aplicacion se implementa en una banda de
transporte, colocando una camara sobre esta que captura y procesa la imagen para dar con
la identificacion y posicion en X y Y. Como la banda se mueve a velocidad constante, el
robot sera programado para recoger las piezas en un tiempo determinado y dar por termi-
nada la tarea. Este tipo de sistema se caracteriza por ser efectivo y rapido pero depende
de la capacidad de procesamiento del software, la calidad de la imagen y la velocidad a
la cual sea capaz el robot de funcionar, sin embargo para su correcto funcionamiento, es
necesario asegurar que las piezas que se van a recolectar no se encuentren solapadas, es
decir una encima de otras puesto que el sistema empieza a perder efectividad, por lo tanto
es preferible que estas se encuentren a una distancia adecuada una de otra para que el
sistema sera efectivo.
La evolucion del Pick & Place es conocida como bin picking o “recoleccion” ofrece un grado
de complejidad mayor a la anterior, esta es un sistema de identificacion de objetos mediante
un sistema VGR, determinacion de posicion en 3D seguido de la seleccion y recoleccion de
piezas apiladas aleatoriamente en un contenedor para finalmente trasladarlas hasta el lugar
destino mediante un sistema robotizado. En primer lugar el sistema de reconocimiento debe
tener informacion precisa en las tres dimensiones puesto que el contexto apilado requiere
reconocer las piezas en diferentes posiciones y orientaciones, para esto hay que realizar
15
una caracterizacion morfologica de las piezas a seleccionar. Luego de ser definidas, el sis-
tema tiene que determinar el campo de vision donde se encuentra esta pieza, en este caso
el contenedor donde se encuentran los objetos amontonados. Conocida la morfologıa del
objeto y el entorno donde se encuentra, el siguiente paso hace referencia al el reconoci-
miento y seleccion de objetos situados en el contenedor. Mediante un complejo algoritmo
se determina el mejor candidato reconocido. Se denomina mejor candidato a la pieza que
se encuentra en la posicion optima, para que el robot la pueda agarrar. Esto presupone que
debe ser la pieza que se encuentra en una posicion alcanzable, sin problemas de colision,
que no este aprisionada por otras piezas y que sea ademas la mejor entre las candidatas
preseleccionadas.
2.2. SISTEMAS AUTOMATICOS CON VISION DE MAQUINA
En la actualidad el auge y desarrollo se encuentra en los sistema de vision de maquina, la
cual trata de simular el proceso del sentido de la vision de los seres vivos, segun el cual
un objeto es captado mediante los receptores de la retina y es transformado en impulsos
nerviosos que son procesados por el cerebro (Porras y cruz , 2012). El ojo se asemeja a una
camara fotografica dotada de un excelente sistema compuesto de lentes, la pupila del ojo es
el orificio a traves del cual penetra la luz y el iris, un diafragma ajustable; pero el ajuste del
ojo, entre la luz solar y la oscuridad casi completa, se realiza fundamentalmente por cambios
de sensibilidad de la retina (de 1.000.000 a 1). Por su parte las camaras tienen su interior
pintado de negro; con el ojo sucede lo mismo, para reducir el problema ocasionado por la
dispersion de la luz reflejada; la mayorıa de las camaras disponen en su parte trasera de una
pelıcula plana aunque otras de menor costo sostienen la pelıcula sobre una superficie curva
para compensar la curvatura de campo de la imagen de su sencilla lente, por su parte el
ojo tambien presenta un fondo curvo. En una camara fotografica se desplaza un lente hacia
dentro y hacia fuera para enfocar la imagen de los objetos situados a diferentes distancias.
El ojo altera la potencia de su sistema de lentes por medio de musculos que cambian la
lente del cristalino. (Foundation , 1984) En la Fig. 2 se puede observar la semejanza que
existe entre el ojo humano y una camara.
16
FIGURA 2: Relacion del ojo humano con una camara
Fuente. http://mind42.com/public/
Por lo tanto, estos sistemas consisten en incorporar un sensor a un entorno dinamico para
obtener informacion visual para controlar un proceso, este aporta flexibilidad y adquiere da-
tos en tiempos cortos que facilitan tareas como la calidad de un producto. Es allı donde en
la industria la vision por computadora utiliza las imagenes capturadas por las camaras y las
procesa mediante un conjunto de algoritmos disenados para extraer la informacion relevante
(Emanuele y Alesandro , 1998), esta informacion es usada en la inspeccion de elementos
presentes en la escena para mejorar un producto o cumplir con estandares propuestos
dependiendo la industria. La informacion que se adquiere en el procesamiento puede ser
espectral, espacial y temporal; la informacion espectral incluye frecuencia (color) e inten-
sidad (tonos de gris), la informacion espacial se refiere a aspectos como forma y posicion
(una, dos y tres dimensiones) y la informacion temporal comprende aspectos estaciona-
rios (presencia y/o ausencia) y dependientes del tiempo (eventos, movimientos, procesos).
(Malpartida , 2003) Para lograr que la imagen tenga la informacion adecuada para realizar el
proceso es necesario un tratamiento de imagenes a traves de tecnicas propias del software
a utilizar.
17
Esta tecnica no solo es usada en sistemas de calidad si no que gracias a su flexibilidad
puede ser usada en diversos campos dependiendo su tarea, segun (Herrera y Palomino ,
2008) existen siete aplicaciones basicas para la vision de maquina las cuales se nombran a
continuacion.
La medicion o calibracion. Se refiere a la correlacion cuantitativa con los datos del
diseno, asegurando que las mediciones cumplan con las especificaciones del diseno.
Por ejemplo, el comprobar que un cable tenga el espesor recomendado.
La deteccion de falla. Es un analisis cualitativo que involucra la deteccion de defectos
o artefactos no deseados, con forma desconocida en una posicion desconocida. Por
ejemplo, encontrar defectos en la pintura de un auto nuevo, o agujeros en hojas de
papel.
La verificacion. Es el chequeo cualitativo de que una operacion de ensamblaje ha sido
llevada a cabo correctamente. Por ejemplo, que no falte ninguna tecla en un teclado, o
que no falten componentes en un circuito impreso.
El reconocimiento. Involucra la identificacion de un objeto con base en descriptores
asociados con el objeto. Por ejemplo, la clasificacion de cıtricos (limones, naranjas,
mandarinas, etc.) por color y tamano.
La identificacion. Es el proceso de identificar un objeto por el uso de sımbolos en el
mismo. Por ejemplo, el codigo de barras, o codigos de perforaciones empleados para
distinguir hule de espuma de asientos automotrices.
El analisis de localizacion. Es la evaluacion de la posicion de un objeto. Por ejemplo,
determinar la posicion donde debe insertarse un circuito integrado.
Guıa. Es proporcionar adaptativamente informacion posicional de retroalimentacion
para dirigir una actividad. El ejemplo tıpico es el uso de un Sistema de Vision para
guiar un brazo Robotico mientras suelda o manipula partes. Otro ejemplo serıa la
navegacion en vehıculos autonomos.
Al implementar la vision se debe dar primordial importancia a la adecuada seleccion del
sensor, existen diferentes arquitecturas de sensores empleados en los dispositivos de cap-
tura. Basicamente, hay dos modelos: lineales o de barrido y sensores de area. (Santillan
, 2008). Los sensores lineales son una lınea de foto diodos que se van desplazando para
18
leer la imagen, este tipo de tecnologıa se emplea unicamente en escaneres y en algunos
respaldos digitales. Esta arquitectura permite la utilizacion de sensores de 1x1024, 1x2048,
1x4096, e incluso 1x6000 pıxeles, lo que la hace muy adecuada para trabajar con altas
resoluciones. En segundo lugar estan los sensores de area. Estos alcanzan resoluciones
habituales de 1024x1024. Son este tipo de sensores los que emplean todas las camaras
digitales, tanto las reflex como las compactas.(Santillan , 2008)
En la actualidad a nivel de protocolo de comunicacion las camaras mas utilizadas en los
sistemas de vision artificial son Gigabit Ethernet (que cumplen con el estandar Gige Vision),
USB2, USB3, Cameralink, Cameralink HS, Coaxpress y Firewire. Algunas de estas inter-
faces de conexion de camaras de vision son muy recientes, como las USB3 y Coaxpress,
pero la tendencia actual de los fabricantes de camaras de vision artificial, es la utilizacion del
interfaz USB3, en lugar de otras interfaces como el Cameralink, que requiere la utilizacion
de un frame grabber cameralink.(Infaimon , 2015)
Las camaras de video han tenido una rapida evolucion en los ultimos anos, desde las pri-
meras camaras de vıdeo que iban equipadas con tubos Vidicon hasta las mas modernas
camaras provistas de sensores Charge Coupled Devide (CCD) y CMOS que se incorpo-
ran en los sistemas de vision artificial en la actualidad (Infaimon , 2015). Por una parte los
sensores CCD son capaces de leer una serie de valores de carga de un array uno a uno y
convertirlos en senales digitales como se muestra en la Fig. 3.
FIGURA 3: Funcionamiento del sensor CCD
Fuente. http://dgpfotografia.com
(Perez , 2015) explica que este esta compuesto por fotodiodos, los cuales reciben la luz,
la convierten a una carga de electrones que es almacenada en el propio pixel, esta carga
es transferida una a una, fila a fila a los registros de desplazamiento vertical y cada fila es
despues transmitida al registro de desplazamiento horizontal. Pixel a pixel el amplificador
19
de salida convierte esa carga de electrones en una senal de voltaje analogico que despues
sera convertida a una senal digital por el conversor analogico-digital (A/D).
Por otra parte el semiconductor complementario de oxido metalico o complementary metal-
oxide-semiconductor (CMOS), dentro de cada pixel o fotodiodo contiene la electronica que
convierte esa carga de electrones que se crea cuando incide luz sobre el sensor en una
senal de voltaje analogico, el cual sera despues convertido por uno o varios conversores
A/D en una senal digital. (Fig.4)
FIGURA 4: Funcionamiento del sensor CMOS
Fuente. http://dgpfotografia.com
Para una aplicacion de vision artificial, las camaras requieren una serie de caracterısticas
20
especiales, como poseer control del tiempo y las senales, de la velocidad de obturacion, de
la sensibilidad y de otros factores fundamentales a la hora de integrarlas en un sistema de
vision artificial tanto en aplicaciones cientıficas como industriales. En la actualidad podemos
encontrar diversas configuraciones de ellas como se lista a continuacion.
Camaras Matriciales
Camaras Lineales
Camaras Alta Velocidad
Camaras 3D
Camaras Inteligentes
Camaras Infrarrojas / Camaras Termicas
Sistemas espectrales y sistemas Multiespectrales
Todas ellas funcionan con distintos principios y segun la aplicacion que se desee realizar
debe ser estudiada y escogida de la mejor manera, se busca que en el sistema no se
sobredimensione la funcionalidad o que por otra parte la camara no sea lo suficientemente
funcional por una mala eleccion.
Por otra parte el sistema de iluminacion en la escena ayudara o afectara el aplicacion de
vision, el ambiente en el que este implementado puede generar efectos que afecten la toma
de la imagen como por ejemplo la reflexion de la luz en las piezas que imposibilitarıa el
reconocimiento y finalmente aparecerıa como una mancha en la imagen, en consecuencia
se debe analizar el tipo de objeto que se va a iluminar, tanto el material como la forma
para escoger el mejor sistema de iluminacion y ası se resolvera la aplicacion de manera
mas facil. Si para solventar una aplicacion es necesario utilizar muchos filtros de software,
significa que la iluminacion que se esta aplicando no es lo suficientemente buena, pues una
iluminacion adecuada permitira emplear menos filtros en la imagen y por tanto aumentar la
velocidad de proceso en esa aplicacion. (Infaimon , 2015).Para realizar tareas de inspeccion,
medicion, clasificacion, monitorizacion y control de aplicaciones industriales la mejor forma
de realizar la correcta iluminacion es poner el objeto de estudio en el ambiente de trabajo
y someterlo a tipos de iluminacion, ya sea por fibra optica, fluorescente, laser o por led,
(((Sistema de vision artificial para el control de calidad en piezas cromadas))) esto dara la
optimizacion del sistema para que la camara pueda capturar una imagen.
21
En la actualidad, los sistemas de vision artificial y la robotica establecen un nexo de union
en aplicaciones industriales de todo tipo, este hecho ha dado lugar a que se popularicen
los sistemas denominados Vision Guided Robotics (VGR) de Robotica Guiada por Vision.
Estos sistemas proporcionan un mayor grado de libertad a la robotica, pasando de tener
que trabajar en entornos predefinidos, a poder hacerlo en entornos de mayor versatilidad.
Cuando un robot trabaja sin un sistema de vision asociado, el entorno de trabajo debe
ser fijo, el robot debe acceder siempre a una posicion predeterminada, lo obliga a utilizar
sistemas de posicionamiento muy precisos de los objetos a manipular, para que el robot se
dirija exactamente hacia donde debe ir.
Los sistemas roboticos asistidos por vision (VGR), son flexibles, debido a que los sistemas
de vision permiten determinar con precision la posicion de cualquier objeto en el area de
trabajo, pudiendo definir cada uno de los puntos en un espacio 3D y dirigiendo al robot
hasta el punto preciso donde debe efectuar la operacion. Este tipo de sistemas de guiado,
no solo sirven para entornos de manipulacion (handling) de la industria robotica, sino que
se pueden emplear en aplicaciones de soldadura, pintado, remachado, montaje, paletizado
y despaletizado y tambien en sistemas de manipulacion de objetos o piezas y aumenta las
posibilidades de instalacion de nuevos robots en cualquier tipo de proceso productivo.
Los sistemas de vision empleados para la identificacion y determinacion de la posicion son
multiples, pasando por sistemas mono camara que permiten el reconocimiento y posicion
en un plano 2D, hasta sistemas estereo, triangulacion laser, y tiempo de vuelo, que facilitan
un reconocimiento en tres dimensiones y determinan la posicion precisa en el espacio.
(Infaimon , 2015)
Para los sistemas que implementan la vision de maquina existen tres tipologıas de distribu-
cion espacial entre la camara y el robot, la primera tipologıa es camara en mano, contempla
un sistema visual montado en el efector final del robot, como caracterıstica adicional en esta
configuracion la camara se mueve solidaria al movimiento del efector final. En consecuencia
existe una relacion constate entre el sistema de coordenadas de la camara y coordenadas
del robot. La segunda tipologıa es camara fija, en esta se tiene la camara fija en algun
punto del espacio de trabajo de forma que observa la escena. De manera que la posicion
de la camara es independiente del brazo robot. La tercera tipologıa es hıbrida la cual es la
combinacion de la tipologıa camara en mano y camara fija.
Aplicaciones de robotica como Bin-Picking, localizacion, y la reconstruccion 3D. Hasta hace
poco, se hacıa principalmente usando imagenes en 2D porque las camaras son rentables
y permiten la adquisicion rapida de imagenes. El problema principal es que coincida las
22
caracterısticas 2D con sus caracterısticas 3D correspondientes al modelo. Esto se convierte
en un reto debido a los cambios en la iluminacion, la rotacion, la escala y los cambios
de punto de vista parciales en el espacio de la imagen. Por otra parte, algunas vistas del
objeto pueden conducir teoricamente a poses ambiguas. En contraste a imagenes 2D, los
datos 3D son en gran medida invariantes a lo geometrico y a cambios fotometricos descritos
anteriormente. El principal desafıo es resolver el problema de correspondencia en presencia
del ruido del sensor, las oclusiones y desorden. El tamano, la distribucion de las normales
de superficie y lımites de un objeto son fundamentales en registrar los datos del sensor con
el modelo.
Hay tres categorıas principales para proporcionar exploraciones 3D, los cuales son: la vision
estereo, “time of flight” (TOF) y la luz estructurada.
Vision estereo: este metodo pasivo es de bajo costo, pero la precision depende de
las caracterısticas y texturas del objeto escaneado. En procesos de inspeccion en los
cuales se aplica la vision estereo, generalmente se usan dos camaras mas, tambien
es posible usar una camara tomando vistas en posiciones relativas diferentes de la
camara respecto de la superficie a medir. El problema principal de la vision estereo
consiste en determinar los puntos en las imagenes adquiridas desde los diferentes
puntos de vista que corresponden a un punto en la escena 3D. Luego de la obtencion
de puntos correspondientes entre las diferentes vistas se puede realizar el calculo de
la profundidad a partir de la geometrıa de la escena. (Jaramillo, Prieto y Boulanger ,
2007)
TOF: Este metodo activo se usa para aplicaciones de largo alcance (10-100m), preci-
sion baja, resolucion limitada, y una gran cantidad de complejidad de calculos. Puede
escanear toda la escena en una fraccion de segundo y adquirir hasta 50 imagenes
por segundo. Este metodo puede medir directamente la distancia de cada pıxel y el
mapa de profundidad es siempre complejo con un tiempo de latencia muy bajo. Es-
tos sistemas cuentan con un emisor de senal, un receptor y un medidor del tiempo
entre la emision y la recepcion de la senal (Fig. 5). Como emisor de senal se usan
ondas sonoras, principalmente ultrasonido, y senales luminosas, entre las cuales se
encuentra la luz laser. En este ultimo caso se habla de radares laser o detectores
laser de tiempo de vuelo. Existen tres tipos de sensores de rango basados en tiempo
de vuelo.(Jaramillo, Prieto y Boulanger , 2007)
23
FIGURA 5: Tiempo de vuelo
Fuente.http://www.scielo.org.co/
Luz estructurada: este metodo activo se basa en la proyeccion de un patron de luz so-
bre el objeto a ser escaneado, de tal manera que la forma en que el patron se deforma
cuando las superficies en huelga permite a los sistemas de vision (una o mas cama-
ras) calcular la informacion de profundidad y la superficie de los objetos.(Squizzato ,
2012)
Existen multiples mecanismos de vision que pueden utilizarse en sistema de Bin Picking, y
todos ellos pueden ser igual de validos para identificar objetos apilados en un contenedor.
(Infaimon , 2015) ha desarrollado un sistema basado en vision estereo, que incorpora dos
camaras en la cabeza del robot. Esto permite hacer un mapa muy preciso de todos los
objetos apilados y determinar con gran exactitud donde se encuentra el mejor candidato
a ser recolectado. Una ventaja de este tipo de configuracion es la identificacion de piezas
estructuradas de alta complejidad puesto que pueden ser reconocidas dentro de la pila
donde se encuentran el cual tiene un cabezal estereo que permite hacer esta identificacion
de forma mas rapida y segura.
Otro tipo de elementos especialmente indicados para esta tecnologıa estereo son las cajas
o paquetes que incluyan textura, como impresion de marca, o de cualquier otro elemento.
En este caso, un sistema basado en estereo vision es muy util en procesos de paletizado
y despaletizado. Aunque pueda parecer que un sistema de bin picking no es necesario en
procesos de despaletizado, en principio el contenedor esta situado en una posicion cono-
cida y los componentes del contenedor estan ordenados, con extremada frecuencia estos
componentes se desordenan y caen unos encima de otros, por lo que pasan a ser una pila
desordenada y aquı es donde el sistema de bin picking muestra su eficacia.
24
Los sistemas de Robotica Guiada por Vision (VGR) estan siendo utilizados cada vez con
mas frecuencia en los entornos de fabricacion robotizada. De hecho el aumento de ventas
a nivel mundial de los robots para tareas de handling, es uno de los mas importantes dentro
de la robotica, especıficamente debido a los sistemas VGR.
2.3. ACTUALIDAD Y TENDENCIA DE LA AUTOMATIZACION
Segun (Oyarzun , 2014) la federacion Internacional de Robotica IFR (de sus siglas en ingles
International Federation of Robotics) dio a conocer las estadısticas mundiales de venta de
los robots industriales, anunciando un nuevo record: 179.000 robots industriales fueron ven-
didos el ano 2013 superando en un 12 % las ventas del 2012 como se muestra en la Fig. 6.
FIGURA 6: Suministro mundial de Robots industriales
Fuente. FR Statistical Department
A demas del incremento de la venta, los paıses apuntan a la integracion de estos robots
dentro de sus procesos industriales, en USA todo el movimiento sobre impulsar y consolidar
la manufactura nacional ha sido reflejado en las ventas internacionales, 6 % respecto del
ano anterior. Entre el 2008 y el 2013 situa su tasa de crecimiento anual en un 12 %. Corea
del Sur y Alemania continuan en el ranking con 21.000 y 18.000 unidades respectivamente,
aumentando un 10 % y un 4 % sus mercados. Esto impulsado principalmente por la industria
25
automotriz.(Oyarzun , 2014) En la Fig. 7 se da a conocer la integracion de robots en los
procesos industriales a lo largo de cuatro anos hasta el 2013.
FIGURA 7: Suministro de Robots Industriales en los mercados mas grande 2009–2013
Fuente.IFR Statistical Department
Actualmente los sistemas de vision integrados son sistemas de vision artificial que difieren
relativamente de las camaras inteligentes, en que el sensor y la memoria de la camara se
situa en un cabezal remoto de muy reducido tamano y el procesador, las entradas/salidas
y la conexion con el resto del entorno industrial se situan en un elemento de dimensio-
nes reducidas, que puede colocarse junto a otros elementos de automatizacion. Una de las
ventajas de un sistema de vision artificial de este tipo, que presenta esta tecnologıa con res-
pecto a las camaras inteligentes tradicionales es que, con un solo elemento de proceso, se
pueden conectar varios cabezales de vision remotos, reduciendo el costo en aplicaciones
de vision donde se requieran varias tomas de la misma pieza. Tanto las camaras inteligen-
tes, como los sistemas de vision artificial integrados, pueden incluir sensores CCD/CMOS
de muy alta definicion, tanto en monocromo como en color. Ambos sistemas incluyen po-
tentes programas, que permiten resolver la mayorıa de aplicaciones de vision artificial sin
necesidad de saber programar, y solo utilizando interfaces graficas de usuario de facil con-
figuracion. (Infaimon , 2015)
26
2.4. MATERIALES UTILIZADOS
Para la verificacion de la aplicacion se utilizaron piezas de empack y parafina industrial a
continuacion se describira cada uno de estos materiales.
Empack: Este material es un Polietileno, resiste al impacto abrasion y corte por friccion.
Soporta temperaturas hasta de 80◦C. Es un material de facil mecanizado, dielectrico
tiene un bajo coeficiente de friccion, es resistente al desgaste. Es un material auto
lubricado de facil limpieza y resistente al desgaste, choques y excelente resistencia
quımica. (MetalplasticSA , 2015)
Parafina Industrial: Es un material que se obtienen a partir del petroleo. Estan constitui-
das por una mezcla de hidrocarburos de alto peso molecular, principalmente alcanos
saturados. Son insolubles en agua o alcohol, solubles en la mayorıa de los disolventes
organicos y miscibles con ceras y grasas cuando se calienta.(Cepsa , 2015)
27
3 DESCRIPCION DE SISTEMAIMPLEMENTADO
Esta seccion describe los diferentes elementos que forman parte de la aplicacion implemen-
tada. en la Fig.8 se muestran las tres partes principales de la aplicacion. Las cuales son: la
estructura de vision de maquina, la estructura del robot y el controlador. A continuacion se
detallara cada una de estas, a demas de la secuencia de programacion.
FIGURA 8: Sistema implementado
Fuente. Autores.
3.1. ESTRUCTURA DE VISION DE MAQUINA
Para la estructura de Vision de maquina se selecciono el sensor Kinect. El Centro Tec-
nologico de Automatizacion Industrial (CTAI) de la Pontificia Universidad Javeriana cuenta
con una gran variedad de camaras (camaras de alta velocidad, camaras multi-espectrales
entre otras) y dos sensores para identificar la profundidad a la cual se encuentran los ob-
jetos. Estos sensores son: sensor Hokuyo, y sensor kinect, a los cuales se les realizaron
28
pruebas para seleccionar cual se adecuaba a la aplicacion. A continuacion se explica las
caracterısticas tecnicas de cada uno.
3.1.1. SENSOR HOKUYO
El sensor Hokuyo URG-04LX-UG01 es perfecto para aplicaciones de robotica, se utiliza para
escaneo de terrenos, planeacion de trayectorias y deteccion de obstaculos, entre otras. Sus
principales caracterısticas se encuentra que tiene un peso aproximado de 160 g, cobertura
de 240 grados, un alcance de 5600 mm y una precision de mas o menos 30mm. Ver Fig.9.
FIGURA 9: Sensor Hokuyo
Fuente.https : //www.hokuyo− aut.jp/02sensor/07scanner/urg04lxug01.html
3.1.2. SENSOR KINECT
El sensor Kinect del Xbox 360 cuenta con un sensor de profundidad, una camara RGB y un
array de microfonos. A continuacion se describen las principales caracterısticas del sensor
de profundidad y la camara RGB. Ver Fig.10.
29
FIGURA 10: Sensor Kinect
Fuente.
https://channel9.msdn.com/Series/KinectSDKQuickstarts/Understanding-Kinect-Hardware
3.1.2.1. SENSOR DE PROFUNDIDAD DEL KINECT
El sensor de profundidad del kinect funciona a partir de un proyector de luz infrarroja el cual
proyecta una matriz de rayos de luz sobre los objetos, los rayos rebotan y son capturados
por un sensor de luz infrarroja. En la Fig.11 se muestra una imagen obtenida con la camara
infrarroja del sensor kinect.
FIGURA 11: Imagen de profundidad sensor Kinect
Fuente. Autores
El sensor de profundidad captura 30 cuadros por segundo con una resolucion de 640x480
pıxeles, es capaz de detectar profundidades en un rango de distancia al sensor desde los
0,7 m hasta los 6.0 m. Este sensor tiene un campo angular de 60 grados en el sentido
horizontal y 43 grados en el sentido vertical.
30
3.1.2.2. SENSOR DE PROFUNDIDAD DEL KINECT
El sensor RGB es una camara de vıdeo de 3 colores que se puede utilizar en dos confi-
guraciones o modos diferentes. El primer modo captura imagenes con una resolucion de
640 pıxeles de ancho por 480 pıxeles de alto y puede llegar a capturar hasta 30 frames
por segundo. La segunda configuracion obtiene imagenes de alta resolucion, 1280 x 1024
pıxeles, con una velocidad de captura maxima de 15 imagenes por segundo.
3.1.3. PRUEBAS REALIZADAS A LOS SENSORES
Se realizo el siguiente procedimiento para observar las caracterısticas de cada sensor, se
ubicaron los sensores de tal manera que detectaran objetos y obtener la informacion de
salida de cada uno. En la Fig.12 se observa la informacion detectada por el sensor Hokuyo.
FIGURA 12: Imagen de profundidad y datos del sensor Hokuyo
Fuente. Autores
31
En la Fig.13 se puede observar la imagen que se obtuvo con el sensor kinect.
FIGURA 13: Pruebas sensor kinect
Fuente: Autores
De la Fig.12 se observa que el rango de cobertura es 0-240 grados en sentido vertical, pero
de manera horizontal su cobertura es de 0 grados. Tambien se muestra el vector de datos
obtenidos con el sensor, donde el step corresponde a la lectura realizada de grado en grado
y el range es la distancia a la cual se encuentra el objeto, esta medida se encuentra en
mm. Por otra parte de la Fig.13, se analiza que el sensor kinect tiene una cobertura en el
eje horizontal y vertical de manera simultanea, la informacion recibida por este sensor se
convierte en una imagen de formato RGB, como se puede observar, los objetos tienen una
variedad de colores entre mas lejos esten del sensor adquieren un color rojo y a medida
que se acercan al sensor adquieren un color azul.
Los dos sensores presentan la ventaja de ser leıdos por software como Labview R©, Matlab R©,
entre otros. Pero una de las desventajas que presenta el sensor Hokuyo es el precio en
comparacion con el sensor kinect, el Hokuyo tiene un precio aproximado de 2000 dolares
mientras que el kinect puede costar unos 100 dolares.
Se selecciono el sensor kinect porque es capaz de captar informacion en sentido horizontal
y vertical de manera simultanea. A demas presenta la ventaja de tener una camara RGB
incluida, la cual se uso para detectar la posicion en X, Y y la orientacion.
32
3.2. ESTRUCTURA DEL ROBOT
El robot SDA10F es usado para una amplia variedad de operaciones, tales como montaje,
la transferencia de piezas, carga y descarga, embalaje y otras tareas de manipulacion. Los
dos brazos del robot pueden sincronizarse para trabajar juntos o bien trabajar de manera
simultanea en tareas independientes. Fig.14
FIGURA 14: Robot SDA10F
Fuente. MOTOMAN-SDA10D/SDA10F INSTRUCTIONS
Cada brazo tiene 7 ejes y un eje para la rotacion en la base. La capacidad de carga es de 10
kg por brazo. Para la programacion cada brazo recibe una denominacion dada por Yaskawa,
brazo 1 (R1) y brazo 2 (R2).Tiene una repetibilidad de 0,1 mm. En la Fig.15 se muestra el
area de trabajo del robot.
33
FIGURA 15: Area de trabajo Robot SDA10F
Fuente. MOTOMAN-SDA10D/SDA10F INSTRUCTIONS
El alcance maximo en el eje horizontal es de 1970 mm y el eje vertical 1440 mm.
3.2.1. EFECTOR FINAL
El robot cuenta con un efector final diferente en cada brazo. Estos son un gripper de dos de-
dos y un gripper de tres dedos marca Robotiq. A continuacion se describen sus principales
caracterısticas.
34
El gripper de dos dedos tiene rango de apertura de 0-85 mm, una fuerza desde 5 N hasta
220 N, puede cargar un peso aproximado de 5 Kg, velocidad de apertura y cierre a una
velocidad mınima 20mm/s hasta una maxima velocidad 150mm/s, tiene una repetivilidad en
posicion de 0,05 mm y su peso es de 0,85 Kg. ver Fig.16
FIGURA 16: Gripper de dos del Robot SDA10F
Fuente. http://robotiq.com/products/industrial-robot-gripper/
El gripper de tres dedos tiene un rango de apertura de 0-155 mm, una fuerza desde los
15 N hasta 60 N, puede cargar un peso aproximado de 10 Kg, velocidad de apertura y
cierre a una velocidad mınima 22mm/s hasta una maxima velocidad 110mm/s, tiene una
repetivilidad en posicion de 0,05 mm y su peso es de 2,3 Kg. ver Fig.17
FIGURA 17: Gripper de tres dedos del Robot SDA10
Fuente. http://robotiq.com/products/industrial-robot-hand
3.3. CONTROLADOR
El robot cuenta con el controlador FS100 el cual ha sido desarrollado especialmente para
las aplicaciones de picking, embalaje y para las demas aplicaciones de manipulacion. El
35
concepto de controlador abierto es que “permite a los usuarios acceder a la interfaz y a los
movimientos del robot de manera externa a traves de un PC o un PLC y tambien desarrollar
aplicaciones propias” esto se puede realizar con MotoSync R©, MotoPlus R© o MotoCom R©.
Las principales caracterısticas se observan en la Tabla 1.
TABLA 1: Especificaciones del Controlador.
Controlador FS100
Dimensiones 470 mm * 200 * mm 420 mm
Peso 20 kg
Sistema de enfriamiento Directo
Alimentacion 220 VAC
Trasformador Externo 480 VAC
Entradas y salidas digitales 16 entradas, 16 salidas
Sistema de posicionamiento Encoder
Capacidad de memoria 10,000 pasos
Lenguaje de programacion Inform III O MotoPlus SDK (Lenguaje C)
Comunicacion Ethernet
Multitarea Si
Fuente: http://www.motoman.com/datasheets/SDA10F
Este trabajo se desarrollo con la programacion de fabrica del controlador para el robot, en el
cual se envıa la posicion a la cual se desee llegar y el controlador se encarga de posicionar
al robot en dicha posicion.
3.4. ALGORITMOS DE PROGRAMACION
La aplicacion de vision de maquina se desarrollo en Matlab R©, y la comunicacion entre esta
aplicacion y el controlador se realizo con MotoCom SDK R©.
Motocom SDK R© es un kit de desarrollo de software de comunicacion con el robot. Moto-
com SDK R© proporciona un ambiente de desarrollo en C++ o C#, ofrece la posibilidad de
36
crear aplicaciones personalizadas que se comunican con los robots Motoman R©. Esta he-
rramienta se puede utilizar para controlar un robot y sus datos a traves de una conexion de
comunicacion serial o Ethernet.
La trasferencia de informacion se muestra en la Fig.18.
FIGURA 18: Trasferencia de informacion entre la aplicacion de Matlab R©, Motocom SDK R© yel controlador FS100
Fuente. Autores
En la Fig.18 se aprecian tres etapas de programacion las cuales son:
Programacion algoritmo vision de maquina.(Matlab R©)
Programacion algoritmo comunicacion.(Motocom SDK R©)
Programacion Job main. (Controlador FS100)
37
3.4.1. ALGORITMO VISION DE MAQUINA
El algoritmo de vision de maquina tiene una etapa de configuracion anterior a la toma de
imagenes, en la cual se adquieren datos de usuario a traves de la interfaz (Esta etapa solo
se realiza una vez, al empezarla aplicacion). Estos datos son necesarios para el corte de
la imagen que se va a capturar y procesar, al adquirirlos se parametriza el sistema con el
tamano de imagen y posiciones en X y Y. Se toma la imagen con los parametros dados
y se realiza el procesamiento en donde cuenta el numero de piezas, el tipo de pieza,las
coordenadas y orientacion de la pieza a sujetar. Esta informacion es visualizada en la in-
terfaz, enviada en archivo .txt y leıda por visual Studio para posterior comunicacion con el
controlador del robot, a su vez este envıa un archivo que indica si se puede volver a iniciar
el procesamiento puesto que ha terminado el robot y se encuentra en la posicion Home de
usuario. Ver Fig.19.
38
FIGURA 19: Diagrama de flujo de la aplicacion de procesamiento de imagenes
Fuente. Autores
39
3.4.2. ALGORITMO COMUNICACION
El sistema de comunicacion se basa en envıo y lectura de datos desde Matlab a Visual
Studio a traves de archivo de lectura y escritura en .txt, este proceso es cıclico y finaliza
hasta que el usuario ası lo desee. Estos archivos llevan informacion del tipo de pieza ,las
coordenadas y la orientacion de esta o bits de finalizacion o ejecucion de la tarea para dar
nuevo comienzo a la siguiente pieza, este ultimo es enviado por Visual Studio a partir de la
senal del controlador del robot. ver Fig.20.
40
FIGURA 20: Diagrama de flujo de la comunicacion de la aplicacion
Fuente. Autores
3.4.3. ALGORITMO JOB MAIN
Este algoritmo se basa en Jobs programados para cada tipo de pieza, pasa por una serie
de condicionales donde se evalua si el tipo de pieza es Lamina empaq tipo1, tapa empaq
41
tipo 1, tapa empaq tipo 2 o bloque empaq tipo 2. En caso de ser exclusivamente el bloque
de empaq tipo 2 el robot 2 a realizara la tarea por las dimenciones de su gripper. Ver Fig.21
FIGURA 21: Diagrama de flujo de realizacion de los Jobs
Fuente. Autores
42
3.5. DISTRIBUCION DE PLANTA
En esta seccion se describe el entorno en el cual se encuentra el Robot SDA10F al igual
que las limitaciones en el espacio de trabajo.
Este robot esta ubicado en el Centro Tecnologico de Automatizacion Industrial (CTAI) de la
Pontificia Universidad Javeriana. Se encuentra dentro del Centro integrado de Manufactura
(CIM), especıficamente en el centro de la banda transportadora. El sensor kinect se coloco
en la parte superior apuntando hacia la banda de tal manera que se pueda captar los objetos
que esten ubicados sobre esta. Ver Fig.22.
FIGURA 22: Distribucion de planta
Fuente. Autores
La banda transportadora tiene 4 estaciones de trabajo, una de las estaciones se ubico
frente al robot, de tal manera que en trabajos futuros la bandeja este sobre la banda y
cuando esta llegue a la estacion se desarrolle algun tipo de aplicacion o tarea con el robot.
43
La configuracion del sistema de vision de maquina utilizada fue camara a mano, esto con
la intencion que los brazos no tuvieran ningun tipo de dispositivo que obstruya aplicaciones
diferentes a la desarrollada en este trabajo de grado. Fig.19.
Las piezas que se tienen que clasificar estaran sobre una bandeja. ver Fig.23.
FIGURA 23: Bandeja
Fuente. Autores
Los brazos del robot presentan una limitacion en el area de trabajo de la bandeja debido a
que algunos puntos son inaccesibles, como se muestra en la Fig.24.
FIGURA 24: Limitaciones en el area de trabajo
Fuente. Autores
44
Para esta aplicacion y por optimizacion de recorridos de los brazos del robot cada uno se
encarga de una seccion de la bandeja. El brazo 2 tendra el area de trabajo desde el origen
de coordenadas (Ver Fig.22) hasta el centro de la bandeja. Y el brazo 1 desde el centro
hasta el final de esta.
Por otra parte, una limitacion de la la aplicacion es el libre movimiento del robot debido de
que su area de trabajo se encuentra obstruida por maquinas y equipos. Para evitar cualquier
colision se hizo uso de los cubos de interferencia los cuales son funciones especiales de
Yaskawa para evitar que el TCP del robot ingrese en una area en especifico. Ver Fig.25.
FIGURA 25: Cubos de interferencia
Fuente. MOTOMAN-SDA10D/SDA10F INSTRUCTIONS
Las areas de interes donde se adecuaron estos cubos de colision son cuatro; areas la-
terales inferiores, area posterior inferior, superior y por ultimo bajo los carros de la banda
transportadora. Los cubos de colision se pueden observar en la Fig.26.
45
FIGURA 26: Ubicacion cubos de coalicion
Fuente. Autores
La segunda forma de evitar posibles colisiones se encuentra dentro del algoritmo que se
encarga de mover el robot para tomar el objeto ya identificado. En este algoritmo se reduce
el margen de desplazamientos que tendra el robot Yaskawa.
46
4 IMPLEMENTACION Y PROGRAMACION
En este capıtulo se describe la implementacion del sistema de vision de maquina y la comu-
nicacion con el controlador. Tambien se puntualiza sobre las pruebas realizadas de manera
independiente a cada estructura de la aplicacion y sus correspondientes correcciones.
4.1. IMPLEMENTACION DEL SISTEMA DE VISION DE MAQUI-
NA
Para identificar la forma, tamano, orientacion y la posicion en X y Y de los objetos, se utilizo
la imagen RGB adquirida con el sensor Kinect, la posicion en Z o profundidad a la cual se
encontraban los objetos, se utilizo el sensor de profundidad del Kinect. El procesamiento
de imagenes se desarrollo con el software Matlab R©, para esto se dividio el trabajo en dos
etapas. La primera etapa consistio en la adquisicion y procesamiento de la imagen RGB y
la segunda etapa fue la adquisicion y procesamiento de la imagen de profundidad.
4.1.1. ADQUISICION Y PROCESAMIENTO IMAGEN RGB
En esta etapa fue necesario convertir la imagen adquirida a escala de grises, para luego
hacer la umbralizacion, la cual consiste en que cada pıxel toma un valor de cero (negro) o
uno (blanco) y se representan en Matlab R©, por una matriz bidimensional con datos logicos.
Este proceso se realizo con la funcion graythresh de Matlab R©, el cual devuelve el valor del
umbral de manera automatica con el metodo de Otsul entre valores comprendidos de cero
y uno. En la Fig.27 se muestra la imagen en escala de grises.
47
FIGURA 27: Imagen en escala de grises
Fuente. Autores
Luego se etiqueto la cantidad de elementos presentes en la imagen, esto se realizo para ob-
tener las caracterısticas individuales de cada uno de los elementos como el area, perımetro,
la posicion y orientacion. Para esto se utilizo la funcion regionprops de Matlab R©.
La herramienta regionprops realiza la extraccion de propiedades de la imagen de acuer-
do con los criterios que se desee adquirir, esto se realiza con una funcion mediante unos
parametros. Para que la funcion se pueda ejecutar necesita saber en que region de la ima-
gen se realizara el procesamiento de la informacion, esto se logra encerrando el sector de
interes en la imagen y luego se le coloca una etiqueta (posicion donde esta la region de in-
teres). Para este proceso es necesario tener una imagen previamente binarizada y delimitar
el area de los elementos que se van a procesar, es decir, tener la medida de los objetos
promedio para poder descartar posibles objetos no deseados dentro del procesamiento, de-
bido a que el etiquetado de elementos se realiza para los dos tipos de objetos, los deseados
e indeseados. Esto con el fin de realizar un barrido de la imagen eliminando las areas no
deseadas y poder iniciar el procesamiento correcto de la imagen. Dentro de la herramienta
existen diversos comandos para adquirir datos de la imagen, en este proyecto se utilizaron
tres parametros, los cuales se explican a continuacion.
El primer parametro es el “area”, donde se devuelve un escalar que especifica el numero
real de pıxeles de la region de interes, es decir dentro de cada caja etiquetada, estos datos
fueron utilizados para eliminar los objetos no deseados y realizar la clasificacion de cada
elemento dentro de un rango especıfico dependiendo la posicion del mismo, al tener este
valor se adiciono el segundo parametro el cual es el “perımetro” para dar mas exactitud, este
devuelve un escalar que especifica la distancia alrededor de la frontera de la region, region-
props calcula el perımetro mediante el calculo de la distancia entre cada par adyacente de
pıxeles alrededor de la frontera de la region como se muestra en la Fig.28.
48
FIGURA 28: Calculo de perımetro de objetos
Fuente. http://www.mathworks.com
El tercer parametro es la “orientacion” de cada objeto para realizar la correcta sujecion de
este, la instruccion “orientacion” devuelve un escalar que especifica el angulo entre el eje
XY del eje mayor de la elipse. El valor esta en grados, que van desde -90 a 90 grados. En la
Fig.29 se ilustra los ejes y la orientacion de la elipse; el lado izquierdo de la fig. muestra una
region de la imagen y su correspondiente elipse y el lado derecho muestra la misma elipse
con las lıneas azules representan los ejes, los puntos rojos son los focos y la orientacion es
el angulo formado por la lınea de puntos horizontal y el eje mayor.
FIGURA 29: Calculo de orientacion de objetos
Fuente. http://www.mathworks.com
En la Fig.29 se muestra la implementacion de esta funcion con la obtencion del centro de
cada elemento. El resto de informacion que genera esta funcion se utilizo para clasificar
el tipo de elemento encontrado y para enviar al robot la orientacion y posicion de cada
elemento.
49
FIGURA 29: Etiquetado de elementos
Fuente. Autores
Luego de los resultados obtenidos, se detecto que el algoritmo tenıa inconsistencias para
detectar las piezas de parafina industrial de color azul. Esto se debio a que la tonalidad
del color de la parafina industrial la cual no generaba contraste con el color del fondo de la
bandeja. Esto se evidencia en el histograma de la imagen Fig.30.
FIGURA 30: Histograma de la imagen para la deteccion de piezas de color azul
Fuente. Autores
Para solucionar este inconveniente se procedio a incluir dentro del algoritmo una conversion
de la imagen RGB a HSV. Con la imagen ya en formato HSV se procedio a trabajar con el
50
canal V detectando el margen del umbral del color de la parafina industrial. Luego se genero
una funcion la cual devolvio una matriz donde solo se extraıa la informacion de las piezas
de parafina industrial.
4.2. PROCESAMIENTO DE LA IMAGEN DE PROFUNDIDAD
DEL SENSOR KINECT
En esta etapa se procedio a adquirir la imagen de profundidad a la cual se encontraban los
objetos, esta imagen se encuentra en formato que por defecto es de tamano 640x480. No
existio la necesidad de incluir un procesamiento o un tratamiento de la imagen debido a que
cada pıxel contiene un valor, el cual indica la distancia a la cual se encuentra el objeto del
sensor kinect, este valor esta en mm. Ver Fig.31.
FIGURA 31: Imagen de profundidad
Fuente. Autores
Como se observa en la Fig.31 es difıcil detectar los objetos porque la imagen esta en escala
de grises en las zonas demarcadas con color azul se encuentra algun objeto, por tal mo-
tivo se aplico la tecnicas falso color para una mayor comprension visual de la informacion
obtenida, se procedio a convertir la imagen a formato RGB. Como se muestra en la Fig.32
51
FIGURA 32: Conversion de la imagen de profundidad a RGB
Fuente. Autores.
Mostrando en esta imagen en color rojo los objetos mas lejanos y en un azul claro los objetos
mas cercanos que el sensor kinect puede detectar. Como se evidencia en esta imagen hay
sectores de color blanco, esto se debe a que el sensor no es capaz de interpretar la distancia
a la cual se encuentra el objeto en ciertos pıxeles, lo cual significa que en esa posicion el
objeto puede generar un brillo o tener algun filo, lo cual genera que los rayos infrarrojos sean
absorbidos o dispersados.
Para solucionar este inconveniente se utilizo el algoritmo de Karl Stanford, el cual se utiliza
para normalizar aquellos pıxeles donde su valor es cero. El metodo consiste en obtener los
valores alrededor del pıxel que contiene el valor cero y obtener la media estadıstica y con
esta ajustar el valor del pıxel. El metodo implementado se observa en la Fig.33
FIGURA 33: Ajuste de valor cero
Fuente. http://www.codeproject.com/Articles/317974/KinectDepthSmoothing
52
Luego de aplicar el algoritmo en la imagen de profundidad se obtuvo una imagen que no
contiene pıxeles con informacion cero que equivale a informacion imposible de calcular. Esta
implementacion se muestra en la Fig.34
FIGURA 34: Correccion de imagen de profundidad
Fuente. Autores
4.3. PRUEBAS Y ANALISIS PROCESAMIENTO DE IMAGE-
NES
Para validar el algoritmo de procesamiento de imagenes se realizaron 40 muestras, colo-
cando dentro de la bandeja 10 patrones cilındricos los cuales se utilizan para calibracion de
las estaciones de vision artificial. los patrones se colocaron de manera aleatoria como se
muestra en la Fig.35. Estas pruebas se realizaron con el objetivo de medir la cantidad de
piezas que detectaba el sistema, y de esta forma observar los posibles errores que podıan
ocurrir en el proceso de identificacion de la pieza.
FIGURA 35: Pruebas del algoritmo
Fuente. Autores.
53
El la Fig.36 se muestra el diagrama de Pareto, el cual muestra la cantidad de piezas que
fueron detectadas por el algoritmo.
FIGURA 36: Diagrama de Pareto (Cantidad de piezas detectadas)
Fuente. Autores.
Este diagrama permite identificar los resultados obtenidos de una forma ordenada y sacar
conclusiones al respecto. En el se evidencia que hay un error en la deteccion de objetos
teniendo en cuenta que cada imagen contenıa 10 piezas. Como se observa, el error obteni-
do por esta medicion se encuentra por encima del valor real y corresponde a sombras que
se generan por saturacion de luz o falta de la misma en sectores de la bandeja como se
aprecia en la Fig. 35. Sin embargo, estos objetos extra corresponden a un objeto real, lo
que permite asegurar que en ese punto se encuentra una de las piezas. Ver Fig.37
FIGURA 37: Cantidad de objetos detectados por el algoritmo
Fuente. Autores
54
En la tabla 1 se muestran los estadısticos obtenidos a partir de la toma de datos. De estos
datos, se puede concluir que el 55 % de las mediciones tuvo un valor igual a la cantidad
teorica, un 32 % de las mediciones obtuvo un valor de una pieza mas a la cantidad teorica
y el 13 % se detecto dos piezas mas a la cantidad teorica. Tambien se puede determinar
que el algoritmo detecto una cantidad mayor de piezas a la teorica debido a una falla en
la iluminacion o en las caracterısticas fısicas de las piezas, esto se puede evidenciar al
observar las medidas de distribucion de la variable en el valor obtenido en el coeficiente de
asimetrıa, el cual dio 0.84, este al ser positivo demuestra una inclinacion de los datos hacia
el costado izquierdo de la media. Otro indicador para observar la distribucion de los datos
obtenidos es la curtosis, la cual con un valor de -0,52 demuestra que la distribucion posee
una forma platicurtica lo que implica que los datos no se concentran en un unico punto y
tienden a tener mayor dispersion, este valor se puede deber a la asimetrıa de la distribucion
ya que al no ser una distribucion normal, los datos no se concentraban en la media.
TABLA 1: Datos de la cantidad de piezas detectadas por el algoritmo.
Cantidad de objetosMedia 10.575
Error tıpico 0.1125Mediana 10
Moda 10Desviacion estandar 0.7120
Varianza de la muestra 0.5070Curtosis -0.5178
Coeficiente de asimetrıa 0.8435Rango 2Mınimo 10Maximo 12Suma 423
Cuenta 40
Fuente: Autores.
Dentro de los puntos mas importantes en el procesamiento de imagenes se encuentra la
robustez del algoritmo, este se puede medir al tener en cuenta la mediana y la moda, la que
al ser de igual valor teorico se puede decir que el algoritmo presenta una gran robustez.
Tambien se obtiene que la desviacion estandar es del 0.712, esto quiere decir que cuando
se ejecuto el algoritmo el valor de la medida obtenida puede ser igual al valor real mas o
menos 0.712. Como el algoritmo deteccion de objetos arroja como dato de salida valores
enteros y no flotantes, el valor final fue igual al valor real mas o menos uno.
55
4.4. PRUEBAS PROCESAMIENTO DE LA IMAGEN DE PRO-
FUNDIDAD
La prueba que se realizo para evaluar la obtencion de la altura de las piezas que detectaba
el algoritmo, para observar la viabilidad y las correcciones que eran necesarias realizar. Se
colocaron dentro de la bandeja 2 piezas, los cuales tenıan la misma altura. Se tomaron 40
muestras, las cuales se organizaron sobre la bandeja de manera aleatoria. En la Fig.38 el
diagrama de barras muestra la altura de los objetos que detecto el algoritmo.
FIGURA 38: Distancia de Pareto distancia de la pieza al sensor
Fuente. Autores
De este diagrama se puede observar que hay una gran dispersion en los datos obtenidos,
esto implica que es necesario realizar una correccion en el algoritmo. En la Tabla. 2 se
observa de manera detallada los datos encontrados.
De la Tabla.2 se observan los estadısticos que describen esta distribucion. A partir de esta,
se observa que la desviacion estandar es 27.25 mm lo cual es un valor muy alto y podrıa
provocar que el robot se estrellara. Tambien existe una diferencia de 88mm entre el valor
mınimo y maximo. Esta diferencia tan significativa se debio a que solo se tomo el pıxel del
centro para hallar la altura. Tambien el valor de la media tiene una diferencia respecto al
valor teorico 29.5 mm y la moda de 70 mm.
56
TABLA 2: Altura de las piezas.
Altura de los objetosMedia 990.55
Error tıpico 4.3093Mediana 993.5
Moda 959Desviacion estandar 27.2546
Varianza de la muestra 742.8179Curtosis -1.132716
Coeficiente de asimetrıa 0.1722Rango 88.5Mınimo 951Maximo 1039Suma 39622
Cuenta 40
Fuente: Autores.
4.4.1. AJUSTES DEL PROCESAMIENTO DE LA IMAGEN DE PROFUN-
DIDAD
Para solucionar las fallas del sensor de profundidad se realizo un algoritmo que toma la
vecindad del pıxel que es el centro del objeto. El tamano fue de 25 pıxeles a los cuales se
les obtuvo el promedio. Esta solucion se muestra en la Fig.39.
FIGURA 39: Vecindad del pıxel para hallar la altura
Fuente. Autores
A continuacion se muestran los resultados que se obtuvieron luego de realizar los cambios
ya mencionados. La prueba fue la misma, colocar dos objetos a la misma altura sobre la
bandeja y obtener esta medida. En la Fig.40 se observa el diagrama de barras que muestra
la altura de los objetos que detecto el algoritmo junto con el diagrama de Pareto que muestra
su acumulado.
57
FIGURA 40: Diagrama de Pareto correccion de altura
Fuente. Autores
En este diagrama de barras se puede observar que no hay una gran dispersion en los datos
obtenidos. Otra de las mejoras del algoritmo se evidencia en la desviacion estandar la cual
paso de 27.25 mm a 5.74 mm. Lo cual se muestra en la Tabla.3
TABLA 3: Correccion altura objetos.
Altura de los objetos
Media 1011.4675
Error tıpico 0.907641
Mediana 1012.6
Moda 1004
Desviacion estandar 5.7404
Varianza de la muestra 32.9525
Curtosis -1.058006
Coeficiente de asimetrıa 0.1085
Rango 20.5
Mınimo 1002.7
Maximo 1023.2
Suma 40458.7
Cuenta 40
Fuente: Autores.
58
Tambien se puede observar que el valor mınimo es 1002.7mm y el valor maximo es 1023.2mm
existiendo una diferencia de 20.5mm, esto quiere decir que se disminuyo en 60mm la dife-
rencia que existıa, ademas la media respecto al valor teorico tiene una diferencia de 9 mm,
y la moda una diferencia de 16 mm. Esto no es un dato concluyente para la aplicacion la
cual necesita de una gran precision, pero debido a las caracterısticas tecnicas del sensor
es una medicion aceptable.
4.5. INTERFAZ DE LA APLICACION DE VISION DE MAQUI-
NA
La interfaz grafica es el sistema de visualizacion que permite la comunicacion entre el usua-
rio y el robot, por medio de las funciones del programa se ponen a disposicion del usuario
dandole facilidad en el control del proceso. Matlab R© proporciona la programacion a traves
de Graphical User Interface con la cual se realizo el presente proyecto. Para la configuracion,
adquisicion y visualizacion del proceso se utilizo Matlab R©. Ver Fig.41.
FIGURA 41: Interfaz de usuario en Matlab R©
Fuente. Autores
59
Esta interfaz esta formada por las siguientes opciones.
Configuracion: Esta opcion se fundamenta en un sistema flexible y de facil entendi-
miento para el usuario que realice la supervision del proceso, para el procesamiento
de las imagenes es necesario realizar una configuracion previa, del tamano de la ima-
gen en donde se toma una imagen de prueba y se realiza una configuracion a traves
de la funcion Banner, la cual al tener la imagen, corta progresivamente hasta obtener
una imagen del tamano de la bandeja como se muestra en la Fig.42. Cada Banner
tiene una funcion diferente en donde los cuatro forman el corte en las coordenadas X
y Y al igual que el posicionamiento en las mismas, para finalmente obtener el espacio
de trabajo deseado como se muestra en la Fig.42 (b).
FIGURA 42: Captura del sistema y recorte con la funcion de configuracion
Fuente. Autores
Procesamiento: Esta opcion tiene dos alternativas, la primera es manual en donde
al obtener la imagen con el corte deseado se debe accionar el boton captura que
realizara la toma de la imagen con las coordenadas anteriormente configuradas y
posteriormente el accionamiento del boton procesamiento, el cual realiza el inicio del
procesamiento de la imagen. La segunda opcion es automatico, en donde el programa
realiza secuencialmente la toma y procesamiento de la imagen.
Visualizacion y estado: Esta opcion permite que el usuario pueda observar el proceso,
se tiene la posibilidad de observar la imagen original y la imagen cuando se a efec-
tuado el procesamiento, tambien de visualizar la profundidad de los objetos en una
imagen. La opcion de “status” indica cual brazo del robot realizara la tarea de selec-
cion y clasificacion, a demas indica el final del procesamiento para dar por terminada
la tarea de vision de maquina enviando las coordenadas y la orden de realizacion de
60
la tarea final. Por otra parte, el vıdeo se realiza con el fin de supervision de la tarea,
el robot tiene un area de trabajo delimitada con una franja amarilla, que indica que
mientras el robot se encuentre operando, el personal debe permanecer fuera de esta
lınea, esto con el fin de evitar accidentes, por esto, el vıdeo es importante a la hora de
supervision de la tarea continuamente mientras se encuentre funcionando.
Data. Esta opcion esta configurada para indicar la cantidad de piezas presentes en
la imagen y reconocer el tipo de pieza. De manera informativa en la aplicacion del
proceso, se visualiza el tipo de objeto detectado por el algoritmo, a sı mismo son
necesarios datos de posicion y orientacion de cada pieza, por lo cual se hace una
opcion “Data”, para enviar posteriormente esta informacion a la aplicacion desarrollada
en Visual Studio. Al enviar los datos adquiridos se finaliza el proceso de vision de
maquina.
4.6. COMUNICACION ENTRE MATLAB R© Y EL CONTRO-
LADOR
En esta seccion describe la aplicacion puente entre Matlab R© y el controlador del robot junto
con la programacion y descripcion de los parametros que se usaron del controlador.
para realizar esta comunicacion se uso Motocom R© SDK el cual es un paquete de librerıas
las cuales estan desarrolladas en C++ y en C# que permiten establecer comunicacion entre
un software de desarrollo y el controlador FS100. La aplicacion permite abrir el puerto de
comunicacion Ethernet del controlador y el PC, obtener el status del robot, leer y escribir las
variables que soporta el controlador FS100. La estructura de las funciones se muestra en la
Fig.43.
FIGURA 43: Estructura de las funciones de Motocom SDK
Fuente. Autores
61
La estructura de la funcion esta definida por los siguientes datos que son obligatorios:
MotoCom32. Hace referencia al paquete que contiene las funciones que admite los
controladores Yaskawa.
Nombre de la funcion. Hace referencia a la funcion que se desea llamar.
ComHandle. Hacer referencia al grupo de conexion del robot, los controladores Yas-
kawa admiten mas de un robot para controlar. Esta informacion esta contenida en la
primera posicion del vector.
Vector. El vector cambia de tamano dependiendo de la funcion a la cual se haga refe-
rencia. A continuacion se muestran algunos ejemplos de las funciones utilizadas en la
aplicacion.
• MotoCom32.BscGetStatus (comHandle, out d1, out d2).
• MotoCom32.BscSelectMode (comHandle, 1).
• MotoCom32.BscPutVarDataEx (comHandle, varType, index, out value[0], ref by-
teArray[0], axisNum).
La aplicacion de la interfaz de comunicacion se muestra en la Fig.44.
62
FIGURA 44: Aplicacion de comunicacion desarrollada en Visual Studio
Fuente. Autores
Esta aplicacion cuenta con una serie de opciones que se clasificaron segun la funcion que
realizan.
Las funciones de comunicacion como su nombre lo indica se encargan de establecer
comunicacion entre el PC y el controlador. En esta parte se encuentra el Boton Set
Comunications en el cual se ingresa la direccion IP del controlador y se establece el
tipo de comunicacion ya sea directa o a traves de un servidor.
La opcion de Robot Status se encarga de leer en que estado se encuentra el robot por
ejemplo; si los servos estan encendidos, o si esta en modo Start.
La opcion Variable de control se encarga de leer o escribir las variables que soporta
el controlador FS100.
La opcion de position variable se encarga de leer o escribir las variables de posicion
del robot, estas variables contienen la orientacion y posicion de cada brazo en el punto
de control de la herramienta (TCP) respecto al origen.
El boton Automatic se encarga de leer la variable de posicion del robot, escribirla en
el controlador y espera la confirmacion de realizacion del Job.
63
Con estas opciones habilitas se realizaron pruebas para comprobar que la comunicacion se
halla establecido. Por esta razon, se dejo un cuadro de opciones donde se pueden escribir
las diferentes variables del controlador. Esto para garantizar que el robot no va a colisionar,
la prueba definitiva para observar si se establecio comunicacion fue la activacion de los
servos de manera remota.
La trasferencia de datos de Matlab R© y MotoCom SDK R© se realiza mediante un archivo de
texto, este archivo es de lectura y escritura para las dos aplicaciones. En este archivo de
texto se escriben las variables que funcionan como banderas o status para la activacion de
las dos aplicaciones.
4.7. PROGRAMACION DEL ROBOT SDA10F
Para la programacion del robot fue necesario realizar una traslacion del origen de coorde-
nadas, para esto se uso la opcion que ofrece Yaskawa la cual permite crear el origen de
coordenadas donde el usuario lo desee siempre y cuando sea un punto de accesible del
robot. Esta funcion lo que realiza es una matriz de trasformacion homogenea para ubicar el
nuevo punto de origen respecto a la coordenada base del origen del robot. En la Fig.45 se
muestra la traslacion y la rotacion del origen del sistema de coordenadas que se utilizo para
esta aplicacion.
FIGURA 45: Traslacion y rotacion de los brazos
Fuente. Autores
64
La programacion se realizo con la funcion Job Stack, el cual permite realizar el llamado de
subprogramas, utilizando la combinacion de instrucciones “CALL” y “JUMP”. En la Fig.45 se
muestra la estructura de la funcion Job Stack. Esta funcion tiene como lımite el llamado de
doce Stack Level. En la Fig.46 se muestra el flujo de informacion de la funcion Job Stack.
FIGURA 46: Funcion Job Stack
Fuente. Yaskawa Electric Corporation manual HW0448584
La programacion de los Job Stack se realizo de tal manera que un Job Main adquiriera las
variables de posicion enviadas desde el Motocom SDK R©. La estructura de la variable de
posicion se muestra en la Fig.47
65
FIGURA 47: Variables de posicion del Robot
Fuente. Autores
La variable de posicion contienen la informacion de la pocion en X, Y, Z. Ademas de la
orientacion Rx, Ry, Rz y Re. Tambien tiene en cuenta el tipo de efector final, debido a
que cada brezo del robot puede tener un efector final con caracterısticas dimensionales
diferentes.
66
5 PRUEBAS Y ANALISIS DE LA INTEGRACIONDE LAS APLICACIONES
Como ejercicio de verificacion de la aplicacion de Matlab y de comunicacion con el contro-
lador se realizo una serie de pruebas, las cuales consistieron en ubicar sobre una bandeja
4 piezas de diferente material y dimensiones, las cuales se muestran en la Fig.48.
FIGURA 48: Tipos de piezas para pruebas
Fuente. Autores
De izquierda a derecha se encuentra una pieza rectangular de parafina industrial, una rec-
tangular de empack y dos barras cilındricas del mismo material.
Para la primera prueba se ubico sobre la bandeja uno de cada material y se iba incremen-
tado de manera gradual hasta colocar la cantidad total de piezas. Las cuales corresponden
a 3 bloques de parafina industrial, 10 piezas barra cilındrica tipo 1, 7 piezas barra cilındrica
tipo 2, 3 piezas rectangulares de empaq. Ver Fig.49.
FIGURA 49: Pruebas finales ubicacion de las piezas
Fuente. Autores
67
En la Fig.50 se muestra los resultados obtenidos para la piezas de parafina industrial.
FIGURA 50: Pruebas Parafina Industrial
Fuente. Autores
De la Fig.50, se puede examinar que en la prueba 1 el sistema selecciono y clasifico de
manera satisfactoria un 88 % de las piezas que se colocaron sobre la bandeja, en la prueba
1 el sistema no identifico ninguna pieza por eso aparecen solo tres barras en la Fig.50. en
la prueba 2 el sistema tuvo un 100 % de efectividad y en la prueba 3 el sistema tuvo una
efectividad del 38 % , esta ultima prueba esta en el porcentaje mas bajo debido a que se
presento un brillo por la luz que se refleja en las piezas.
En la Fig.51 se muestra los resultados obtenidos para la piezas rectangulares de empack.
FIGURA 51: Pruebas piezas rectangulares de empack
Fuente. Autores
68
De la Fig.51 se considera que en las 3 pruebas el sistema selecciono y clasifico de manera
satisfactoria un 100 % de las piezas que se colocaron sobre la bandeja.
En la Fig.52 se muestran los resultados obtenidos para barras de empack tipo 1.
FIGURA 52: Pruebas barras de empack tipo 1
Fuente. Autores
De la Fig.50, se observa que en la prueba 1 el sistema selecciono y clasifico de manera
satisfactoria un 89 % de las piezas que se colocaron sobre la bandeja en esta prueba el
sistema no identifico ninguna pieza en una de las muestras, en la prueba 2 el sistema tuvo
un 75 % de efectividad y en la prueba 3 el sistema tuvo una efectividad del 92 %.
En la Fig.53 se muestran los resultados obtenidos para barras de empack tipo 2.
69
FIGURA 53: Pruebas barras de empack tipo 2.
Fuente. Autores
De la Fig.53, se observa que en la prueba 1 el sistema selecciono y clasifico de manera
satisfactoria un 92 % de las piezas que se colocaron sobre la bandeja, en la prueba 2 el
sistema tuvo un 100 % de efectividad y en la prueba 3 el sistema tuvo una efectividad del
92 %.
Del total de las pruebas aplicadas al sistema para la deteccion de la parafina, el sistema
selecciono y clasifico el 75 % de la piezas colocadas sobre la bandeja. De las piezas rec-
tangulares de empack el sistema es 100 % segun las pruebas realizadas. Para las piezas
cilındricas tipo 1 el sistema tiene una efectividad de 85 % y para las piezas cilındricas tipo 2
la efectividad es del 94 %.
El sistema no es el 100 % efectivo debido a que las piezas dependiendo la ubicacion ge-
neran brillo, otro inconveniente se presenta cuando la profundidad detectada por el sensor
kinect no es la esperada debido a que el robot se ubica sobre la pieza pero no alcanza a
llegar, porque la coordenada enviada en Z no es la correcta.
La segunda prueba correspondio a colocar sobre la bandeja de manera aleatoria y de forma
mezclada las piezas de manera progresiva, como se muestra en la Fig.54.
70
FIGURA 54: Piezas de manera aleatoriamente sobre la bandeja
Fuente. Autores
En la prueba numero 1 el sistema cumplio con un 88 % de satisfaccion de seleccion y
clasificacion, en la prueba numero dos con un 81 %, en la numero tres 80 %, en la cuatro con
un 83 % y la ultima prueba fue con 85 % de satisfaccion. Los resultados de estas pruebas
se muestran en la Fig.55.
FIGURA 55: Errores de las pruebas
Fuente. Autores
71
La Fig.55 corresponde a la dispersion del error de las pruebas realizadas. Se empezo con
3 piezas hasta llegar a un maximo 20 de piezas. El comportamiento ideal del sistema com-
prenderıa que en la Fig.55 todos los valores estuvieran en uno. Se muestra que el dato que
esta mas disperso del valor uno es en la prueba cinco con un error del 50 %, el error es alto
pero la cantidad de piezas que tenıa que clasificar eran 4. En este orden le siguen la prueba
tres y cuatro donde el sistema presento un error del 40 % donde se tenıan que clasificar
8, 13 y 19 piezas pero solo cumplio el 60 % da la tarea. Los demas datos muestran una
dispersion que va desde el 0 % hasta el 35 %.
72
CONCLUSIONES
Para esta aplicacion se selecciono el sensor kinect, el cual presenta la ventaja de que su
sensor de profundidad puede detectar objetos de manera simultanea en el eje horizontal
y vertical mientras que el sensor Hokuyo, solo detecta objetos de manera horizontal. Las
pruebas al sensor de profundidad kinect dan como resultado una variacion en la medida de
4.3 mm, luego de aplicar un algoritmo de correccion este valor disminuyo en un 79 %.
A la hora de la sujecion de las piezas, la parametrizacion cumple un papel fundamental
puesto que dependiendo la geometrıa y tamano de la pieza se condiciona el uso de los
gripper, en este caso el bloque de parafina tipo 2 se condiciona al robot 2 con el gripper
de tres dedos. Igualmente se divide el area de trabajo con el menor gasto de energıa, esto
quiere decir que por proximidad del robot a la pieza, este desarrollara la tarea segun la
posicion de estas dentro del contenedor.
Por otra parte, el color base para el procesamiento de imagenes es primordial para el re-
conocimiento de piezas, estas pueden contrastar con la bandeja y convertirse en piezas no
existentes en la imagen, para ello se implemento la bandeja de un color oscuro para con-
trastar con las piezas, esto ayudo al reconocimiento aunque se presento dificultad con las
piezas de parafina ya que es azul oscura, para ello se uso el formato de imagen “hsv” cual
el cual se identifica el umbral de contrate de la pieza de parafina industrial y el fondo de la
bandeja.
Ahora bien, la aplicacion de vision de maquina realizada para la deteccion de objetos pre-
senta un 57 % de precision, en un 35 % la aplicacion reconocera un objeto mas de la canti-
dad teorica y el 8 % dos objetos o mas, esto se debe en gran medida a la iluminacion ya que
esta no se puede controlar y en ocasiones se generan sombras las cuales el algoritmo las
reconoce como un objeto. Para la correcion de este porcentaje de error es necesaria una
adecuacion en el area de trabajo en la iluminacion, esta no fue posible realizarla puesto que
el espacio de trabajo es limitado.
La aplicacion es capaz de reconocer en 100 % la orientacion y posicion de los objetos
identificados esto incluye el porcentaje donde por la iluminacion la aplicacion reconoce una
cantidad mayor de objetos a la teorica pero con el algoritmo implementado, el sistema no
presenta error con estos objetos indeseados y los excluye del procesamiento de imagenes.
73
En el 90 % de las pruebas realizadas, la aplicacion fue capaz de seleccionar y clasificar los
objetos ubicados sobre la bandeja y el 10 % restante representa inconvenientes debido a
que los objetos no se encuentran separados entre sı, con una distancia donde por el tamano
de los Gripper no colisionara con los otros objetos.
Para trabajo futuro es necesario implementar un sensor capaz de reconocer las piezas
apiladas, este sensor tiene un costo por encima de los 2000 dolares, por lo cual para este
trabajo no fue posible el uso de este. En ambientes industriales es necesario un espacio
disenado exclusivamente para la vision de maquina, con la iluminacion y espacio adecuado
dentro de un proceso, esto optimizara el sistema y dara un tratamiento de imagenes limpio
y preciso para la tarea.
74
Bibliografıa
Baeza, Victor Vargas. ((Sistema de vision artificial para el control de calidad en piezas cro-
madas)). Instituto Politecnico Nacional.
Cepsa (, 2015). URL: http://www.cepsa.com/cepsa/Que_ofrecemos/Bases_y_
Parafinas/Usos_de_la_parafina/.
Clavijo, Sergio, Alejandro Vera y Alejandro Fandino (, 2014). ((Dinamica industrial reciente
y perspectivas)). En: URL: http://anif.co/sites/default/files/uploads/
Ene27-14.pdf.
Curless, Brian Lee (, 1997). ((New methods for surface reconstruction from range images)).
Stanford.
Emanuele, Trucco y Verri Alesandro (, 1998). Introductory Techniques for 3-D Computer
Vision. Prentice Hall, pag. 68.
Foundation, Nuffield (, 1984). Fısica basica Nuffield. editorial reverte, S.A.
Garcıa, Juan Felipe Pinzon (, 2011). ((Enfermedades mas frecuentes en el trabajo)). En: URL:
http://www.elempleo.com/colombia/investigacion_laboral/enfermedades-
mnes-frecuentes-en-eltrabajo-/7502189.
Giovanna, S y col. (, 2014). ((A 3D pattern matching method for “Bin picking” applications)).
En: Optics and Lasers in Engineering 54, pags. 222-231. URL: http://dx.doi.org/
10.1016/j.optlaseng.2013.07.014.
Herrera, Jose Villanueva y Sergio Cordova Palomino (, 2008). ((Sistema de vision artificial)).
En: 33F.
Infaimon, vision artificial (, 2015). URL: http://blog.infaimon.com.
Jaramillo, AndrAEleA¡zar, Flavio Prieto y Pierre Boulanger (, 2007). ((InspecciAde piezas 3D:
revisiAde la literatura)). es. En: IngenierAa e InvestigaciA 27, pags. 118 -126. ISSN: 0120-
5609. URL: http://www.scielo.org.co/scielo.php?script=sci_arttext&
pid=S0120-56092007000300013&nrm=iso.
Malpartida, Eddie Angel Sobrado (, 2003). ((Sistema de vision artificial para el reconocimien-
to y manipulacion de objetos utilizando un brazo robot)).
MetalplasticSA (, 2015). URL: http://www.metalplasticsas.com/PlasticosIngenieriaEmpack.
html.
Oyarzun, Juan Pablo (, 2014). ((Robots industriales: el record continua)). En:
Perez, David Garcia (, 2015). En: URL: http://dgpfotografia.com/2015/06/24/
evolucion-de-los-sensores-digitales-en-fotografia-de-ccd-a-cmos/.
75
Porras, Jose y Miguel de la cruz (, 2012). ((Clasification system based on computer vision)).
En: CE 1002 Taller de Electronica IV.
Santillan, Elias Garcıa (, 2008). ((Deteccion y clasificacion de objetos dentro de un salon de
clases empleando tecnicas de procesamiento digital de imagenes)).
Sin, Sebastian Tornil y Juan Angel Gamiz Caro (, 2014). ((La robotica industrial en el ambi-
to de la automatizacion global: estado actual y tendencias)). En: URL: http://www.
tecnicaindustrial.es/TIFrontal/a- 5832- La- robotica- industrial-
ambito-automatizacion-global--actual-tendencias.aspx.
Squizzato, Stefano (, 2012). ((Robot “Bin picking”: 3D poses retrieval based on Point Cloud
Library [Magistrali biennali])). URL: http://tesi.cab.unipd.it/42217/.
trabajo, Ministerio de (, 2014). ((Tabla de enfermedades laborales)). En: URL: http://www.
mintrabajo.gov.co/normatividad-agosto-decretos-2014/3708-decreto-
1477-del-5-de-agosto-de-2014.html.
76