59
SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO DE BIN PICKING SOPORTADO POR UN ROBOT MANIPULADOR “Trabajo de Investigación” ANDRÉS FELIPE MURILLO PANES SO Trabajo de Grado PONTIFICIA UNIVERSIDAD JAVERIANA FACULTAD DE INGENIERÍA DEPARTAMENTO DE INGENIERÍA INDUSTRIAL BOGOTÁ D.C. 2015

SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO DE BIN

PICKING SOPORTADO POR UN ROBOT MANIPULADOR

“Trabajo de Investigación”

ANDRÉS FELIPE MURILLO PANES SO

Trabajo de Grado

PONTIFICIA UNIVERSIDAD JAVERIANA

FACULTAD DE INGENIERÍA

DEPARTAMENTO DE INGENIERÍA INDUSTRIAL

BOGOTÁ D.C.

2015

Page 2: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

GLOSARIO DE TÉRMINOS Y ABREVIACIONES

TCP/IP: Transmission Control Protocol/Internet Protocol. Protocolo de red que provee

comunicación entre dos dispositivos.

Bin picking: En robótica, la selección de un objeto en particular depositado en un

contenedor.

Visual servoing: Control robótico basado en información extraída visualmente.

CTAI: Centro tecnológico de automatización industrial de la Pontificia Universidad

Javeriana.

SMF: Sistema de Manufactura Flexible.

Melfa BASIC: Lenguaje de programación utilizado por el robot manipulador Mitsubishi

MELFA RV-2A.

FireWire: Interfaz de bus serial de alta velocidad desarrollado por Apple, Inc.

Grados de libertad: El número de movimientos independientes (articulaciones) que

puede ejecutar una máquina.

Teach Pendant: Unidad de control y programación operada manualmente.

VBAI: Vision Builder for Automated Inspection (NI Vision Builder®).

Page 3: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

Resumen ejecutivo

Una de las aplicaciones más interesantes y desafiantes del campo de la robótica es la

integración de un sistema de visión inteligente a la parte mecánica movible. La posibilidad de

utilizar computadores para detectar la ubicación de objetos organizados de manera aleatoria para

luego organizarlos y catalogarlos es un paso importante en el área de la inteligencia artificial

aplicada.

El uso de un sistema de visión artificial en el reconocimiento integrado a la interacción de

objetos sería muy útil en un contexto industrial, como por ejemplo en una banda transportadora

cuando los productos salen de manera desorganizada, o para asistir a un operario en la búsqueda

de herramientas. Este proceso se denomina Bin Picking.

Para desarrollar el proyecto se buscará primero establecer una comunicación de tipo

industrial entre el computador y el robot. El robot a utilizar será el Mitsubishi MELFA RV-2A

que se encuentra en el CTAI, y cuenta con la funcionalidad del protocolo TCP/IP, que será el

utilizado para comunicarse con el computador. Seguido a esto se deberá crear el algoritmo de

visión inteligente en NI Vision Builder®, utilizando una cámara digital para las imágenes y

creando un sistema de calibración y de coordenadas cartesianas bajo las cuales guiar al robot.

Finalmente, se deberá programar al robot para interpretar las coordenadas cartesianas de la visión

como puntos en el espacio a los cuales moverse, de tal forma que pueda recoger y reconocer los

objetos.

El control servo-visual en 2D es útil en aplicaciones que no requieren de un nivel de

profundidad, como por ejemplo al trabajar con objetos homogéneos en una banda transportadora

con profundidad constante. Esta propuesta debe entonces buscar la posibilidad de implementar el

sistema de Bin Picking en el Centro de Tecnología y Automatización Industrial de la Javeriana.

Page 4: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

Introducción

En un SMF se busca siempre la posibilidad tanto de automatización como de adaptación

a cualquier tipo de proceso industrial (Kim, Kim, Kang, Kim, & Lee, 2012). La aplicación de

dichos sistemas se ha vuelto muy común en la industria actual, más sin embargo, hoy en día aún

es común ver fábricas en las cuales se pone a las personas en tareas sumamente repetitivas, como

seleccionar o clasificar partes en una banda transportadora. A este tipo de tareas se le llama D3:

Dirty, Dull and Dangerous (Tareas sucias, aburridas o peligrosas), las cuales se definen como las

tareas que pueden ser desagradables, sumamente repetitivas, o bajo condiciones difíciles que

podrían ser peligrosas para un operario humano (Takayama, Ju, & Nass, 2008).

La posibilidad de adaptar un sistema de Bin Picking a un SMF aumentaría sus opciones

de flexibilidad y adaptabilidad a una gran variedad de procesos industriales.

La visión por computador en sí es un campo de mucha amplitud y utilidad, que incluye

áreas como la inspección automática y el control de calidad. La integración de reconocimiento

visual a una máquina capaz de manipular objetos reales le da la posibilidad al robot de funcionar

sin necesidad de posiciones pre-definidas programadas de antemano (Daewon, Ryan, & H. Jin,

2012). Esta integración entre los dos componentes se denomina control servo-visual, y su

funcionalidad incrementa la adaptabilidad del proceso completo, haciendo posible que el SMF

sea mucho más adaptable.

Al combinar un sistema de visión inteligente con un robot programable en el contexto de

un SMF, sería posible diseñar un medio por el cual automatizar el proceso de selección y

reconocimiento de partes en 2D bajo contextos industriales. Este sistema puede aplicarse en

diversas áreas de la industria, otorgándole al robot manipulador una facultad rudimentaria de

visión mediante algoritmos de procesamiento de imágenes y calibraciones específicas.

Page 5: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

El presente trabajo de investigación buscará entonces desarrollar un prototipo que

conecte un sistema de visión inteligente a un robot manipulador de seis grados de libertad. El

objetivo es darle al robot un sistema de reconocimiento visual que pueda detectar objetos

estáticos homogéneos que se encuentran sobre una superficie plana, arreglados al azar, y que

requieren ser paletizados. El trabajo se implementará dentro de las instalaciones del CTAI

utilizando el módulo Vision Builder® de National Instruments.

La elaboración del trabajo constará de tres partes: El diseño de un algoritmo de

procesamiento y calibración de imagen (cámara-computador), el establecimiento de un protocolo

TCP/IP para la comunicación entre el computador y el robot, y la unificación de los datos

obtenidos por la cámara en la programación del robot de manera que pueda moverse e interactuar

con los objetos a trabajar. Es importante establecer que la propuesta de trabajo abarcará

únicamente el reconocimiento de objetos estáticos en dos dimensiones, debido a que el proyecto

es un primer acercamiento a la funcionalidad del bin-picking, y podría ser trabajado en el futuro

para adaptarlo a ambientes más complejos, como los objetos en movimiento.

Antecedentes

El problema del bin picking es de interés para la industria en aplicaciones que requieren

altos niveles de automatización, pero en muchos casos estas tareas se siguen realizando de

manera manual debido a que la aplicación todavía se considera un tema desafiante para la

robótica (Pochyly, Kubela, Kozak, & Cihak, 2010). Compañías como Amazon

(Amazonpickingchallenge.org), que requieren el empaque y paletizado de millones de productos

al día en bodegas de gran tamaño, se encuentran muy interesadas en una respuesta que cuente un

alto grado de flexibilidad.

Page 6: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

Existen dos tipos de bin-picking: 2D y 3D. El 3D es útil cuando se necesita añadir una

dimensión de profundidad al proceso, por ejemplo al buscar objetos apilados en un recipiente.

Para el uso de 3D se utilizan sistemas visuales de reconocimiento en 3D mediante varias cámaras

o ultrasonido (Kim, Kim, Kang, Kim, & Lee, 2012). Por otro lado, el proceso en 2D se utiliza

cuando los objetos se encuentran en una superficie plana, tienen la misma altura, y pueden ser

definidos utilizando el plano vertical. Desde mediados de los años 90s se han escrito artículos

sobre el cambio de coordenadas requerido entre un plano cartesiano 2D a la arquitectura de la

interfaz del manipulador (Rahardja & Kosaka, 1996).

En general, los sistemas de bin picking en 2D se utilizan en aplicaciones donde una

tercera dimensión no se necesita, o cuya implementación es demasiado compleja. Objetos

homogéneos esparcidos aleatoriamente, por ejemplo, en una banda transportadora se pueden ver

en muchas industrias. En esos casos, utilizar un sistema en 3D es sencillamente demasiado

complejo para la tarea a realizar, especialmente porque se necesitan sensores extra para la

medición de la profundidad (Kim, Kim, Kang, Kim, & Lee, 2012), mientras que el bin picking en

2D sólo necesita de una cámara para definir las coordenadas x e y. De esta forma, el proceso es

el mismo en ambos casos, excepto por el hecho de que en el sistema 2D, la profundidad de

agarre será siempre una constante definida con anterioridad en el caso a trabajar.

Aplicaciones de este sistema en la industria incluyen la organización y arreglo de

productos en una línea de ensamble, por ejemplo, para organizar las botellas que salen acostadas

de su ciclo de producción, y que deben ser recogidas y enderezadas antes de poder ser llenadas y

tapadas. Este tipo de proceso no requiere de 3D puesto que todas las botellas tienen el mismo

grosor, por lo que es posible tomar la profundidad de agarre como constante. Esto le permite a la

Page 7: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

empresa tener un sistema de control servo-visual utilizando sólo una cámara, en lugar de

múltiples cámaras o sensores para detectar el tercer eje.

Otros avances incluyen el desarrollo del visual servoing, o “servo-visión”, el cual

involucra el relacionamiento de información entre lo que el algoritmo visual reconoce y los datos

como coordenadas que recibe el robot. Este sistema permite alta adaptabilidad debido a que no

necesita algoritmos de estimación, sino que un controlador se utiliza para transmitir la

configuración de posición del robot a través de retroalimentación desde la imagen (Fang, Liu, &

Zhang, 2011). En la industria aeroespacial, el trabajo de servo-visión se puede complementar con

múltiples cámaras para posicionamientos a gran escala. De esta manera, el control servo-visual

permite realizar cambios de coordenadas y correcciones de posición sin afectar el campo de

visión de la cámara (Zhao, Xie, & Tu, 2011).

No obstante, aunque en la Pontificia Universidad Javeriana se han realizado diversos

trabajos de grado en los campos tanto de comunicación robot-computador (como en el caso de

“Control supervisorio de un robot manipulador industria l Mitsubishi Melfa utilizando la

plataforma LabVIEW”, el cual únicamente desarrolla la conexión entre LabVIEW y el RV-2A

para su control supervisorio, sin integrarlo con un sistema de visión) así como en la aplicación de

sistemas de visión inteligente para inspección y categorización (“Aplicación de sistemas de

visión por computador (VIR/NIR) para la inspección visual de uchuvas”), hasta ahora no se ha

realizado ningún trabajo involucrando la integración de ambos sistemas mediante herramientas

de control servo-visual.

Por otro lado, la mayoría de aplicaciones de la visión artificial se han basado en el

control de calidad (“Propuesta de un método de control de calidad mediante visión artificial para

las cabezas de tornillos hexagonales en una empresa específica de Bogotá”, “Desarrollo de un

Page 8: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

prototipo de laboratorio para el control de calidad de la variable grado de tostión del café tostado

molido, empleando visión artificial”) o aplicándose a trayectorias pre-definidas.

En la universidad también se han realizado trabajos de grado involucrando otro tipo de

robots no industriales, integrándoles sistemas de reconocimiento que no necesariamente son por

medio de visión. Este enfoque se puede ver en “Simulador de trayectorias 2d para un robot tipo

serpiente” en el cual se diseñó software para el control cinemático del robot. Sin embargo, esta

herramienta es únicamente de control, aunque es un buen ejemplo de la integración entre

diferentes protocolos y software de control.

Formulación del problema

Mediante la realización de este trabajo se pretende responder a la siguiente pregunta de

investigación y desarrollo:

¿Cómo desarrollar un sistema de control servo-visual en 2D para el proceso de bin-picking

soportado por un robot manipulador?

Objetivos

Objetivo general

Desarrollar un sistema de control servo-visual en 2D para el proceso de bin-picking

soportado por un robot manipulador.

Objetivos específicos

I. Establecer un medio de comunicación entre el computador y el robot mediante

una conexión de protocolo TCP/IP.

II. Diseñar un algoritmo de calibración, reconocimiento y procesamiento de la

imagen del espacio visual a trabajar.

Page 9: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

III. Ajustar las coordenadas dadas por el algoritmo de visión por computador al

sistema de coordenadas usado por el robot.

IV. Programar al robot para realizar la operación utilizando los datos recopilados por

el algoritmo de visión.

V. Definir las trayectorias que el robot debe realizar para permitir el paletizado del

producto.

Metodología implementada

El trabajo constó de dos etapas principales: El proceso de visión por computador, y el

proceso de control del robot. Este último se divide en dos subprocesos: El set-up que le da sus

parámetros iniciales e inicia la comunicación con el computador, y el código de movimiento. La

integración de todo el sistema se realizó utilizando el software NI Vision Builder. Aunque

existen muchas otras herramientas de visión por computador que permiten la transmisión de

comandos vía TCP/IP y poseen un funcionamiento similar, Vision Builder se escogió por su

integración con LabVIEW para realizar cálculos matemáticos con las variables definidas, y por

una medida de conveniencia, puesto que el CTAI de la Pontificia Universidad Javeriana cuenta

con licencias para el uso del software.

Tanto el set-up como el código de movimiento están programados en Melfa BASIC IV,

el lenguaje de programación del Mitsubishi RV-2A, pero los comandos se transmiten de Vision

Builder al robot mediante el uso de su módulo de envío de comandos TCP/IP. Para el proceso de

visión por computador, se creó un algoritmo que ejecuta los siguientes pasos en un único

procedimiento de inspección:

• Adquisición de la imagen

Definición de los parámetros de calibración intrínsecos y extrínsecos de la imagen

Page 10: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

Parametrización del espacio de trabajo

• Detección de objetos mediante RGB

• Detección de bordes

• Ajuste de ángulo de rotación de los objetos

• Definición de variables globales

• Creación de la interface gráfica (por motivos puramente estéticos)

• Cambio de coordenadas de milímetros a sistema del MELFA RV-2A

La adquisición de la imagen se realizó con una cámara marca Guppy con conexión

FireWire. La cámara no es de escala de grises, por lo que toma imágenes a color del espacio de

trabajo. La parametrización se hace mediante Vision Builder, midiendo las distancias dentro del

espacio de trabajo y computándolas en el software de tal forma en que se cree una relación

calibrada entre las unidades en pixeles de la imagen y las distancias reales en el espacio de

trabajo.

El algoritmo de detección de objetos funciona encontrando zonas de contraste en un área

definida. Se colocó una plataforma blanca de acetato como contraste para que los cubos

resaltaran más. Se utilizó un módulo de detección de bordes para ajustar la rotación de la

herramienta del robot a la rotación de los cubos. Por tal motivo, el procedimiento consistió en

definir un rango de área en milímetros cuadrados dentro del cual se encuentra el área más oscura

de los cubos, contrastando con el fondo más claro. Esto quiere decir que el algoritmo busca las

áreas más oscuras de la imagen y si se encuentran dentro del rango de área de los cubos, el

sistema detectará el punto medio del área encontrada. Este punto se define con coordenadas X é

Y que se guardan como variables para utilizar en el cambio de coordenadas visión-robot. Una

Page 11: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

vez se tengan estas coordenadas, se numera cada cubo encontrado al igual que el número total de

objetos encontrados.

Para el desarrollo del sistema de control servo-visual fue necesario considerar los

diversos de sistemas de coordenadas existentes. En primer lugar están las coordenadas del

espacio del trabajo - es decir, la definición de los ejes de referencia en el plano 2D de la imagen.

En segundo lugar están las coordenadas de cada uno de los objetos a recoger; estas son las

coordenadas del objeto en unidades del mundo real. En tercer lugar están las coordenadas de la

base del robot utilizadas por el lenguaje Melfa BASIC IV, y finalmente las coordenadas de la

herramienta de sujeción del robot con respecto a los cubos detectados en la imagen. Al establecer

una relación entre las coordenadas en unidades reales del espacio de trabajo y del sistema interno

del RV-2A se pudo crear una ecuación de regresión para lograr el cambio de coordenadas de tal

forma que el robot pudiera moverse hacia el punto donde estaba cada cubo. Esta relación se

calculó llevando manualmente al RV-2A hacia cada cubo utilizando su teach pendant y anotando

las coordenadas a las que correspondía cada punto en ambos sistemas.

El proceso de set-up consta del código en Melfa BASIC IV junto con la definición de

parámetros de comunicación entre el computador y el robot. Una vez iniciada la comunicación se

procede a definir variables iniciales necesarias para el robot tales como velocidad de

movimiento, sistema de coordenadas a utilizar, y posiciones no-variables, o constantes, para el

sistema (posiciones de seguridad, la ubicación de la matriz de paletización, etc). Estas son

posiciones que no cambian con cada iteración del código y no dependen de ningún otro

algoritmo o proceso.

Page 12: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

IN IC IO

Figura 1. Diagrama de proceso del algoritmo de visión por computador. El proceso de calibración de la imagen se efectuó una única vez; la función llama al proceso cada vez para establecer los parámetros intrínsecos del espacio de

trabajo.

Page 13: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

Figura 2. Diagrama de proceso del set-up o configuración inicial del sistema

Finalmente, el algoritmo de movimiento del robot toma las coordenadas trasladadas de

unidades reales a unidades del Melfa RV-2A y las define en una posición variable. Esta es la

posición del cubo #1 que se definió durante el proceso de visión, y a la cual el robot siempre irá

al correr cada iteración. Este programa también está escrito en Melfa BASIC IV, e incluye el

código tanto para interactuar con los objetos como para paletizarlos. Las variables utilizadas son

las coordenadas X é Y ajustadas al lenguaje del robot, y el ángulo de rotación de los cubos que la

herramienta de sujeción debe tomar para poder agarrarlos correctamente.

Al tener los tres algoritmos principales, se debieron integrar en un único sistema que

además permitiera iteraciones basadas en la cantidad de cubos encontrados. Para ello se usó

Vision Builder debido a que permite enlazar todos los algoritmos mediante dos características:

Estados de inspección, y transiciones condicionales.

Page 14: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

Figura 3. Diagrama de proceso del movimiento del Melfa RV-2A y proceso de paletizado

Page 15: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

Vision Builder funciona con una interface en la que se definen pasos secuenciales, en vez

de código escrito, para definir cada etapa del reconocimiento visual. Estos pasos se denotan con

pequeños cuadros en la interface gráfica del programa, y existen muchas opciones que ejecutan

procesos distintos para necesidades específicas. La unión de varios de estos pasos como proceso

para evaluar un resultado se denomina procedimiento de inspección.

El diseño del código para todo el sistema se realizó en el mismo programa, utilizando

diversas instancias de los denominados estados de inspección para construir el diagrama de flujo

del código. El diagrama de flujo funciona como un nivel de programación adicional, permitiendo

crear transiciones y condicionales de manera visual. Los óvalos representan tareas, llamadas

procedimientos de inspección en Vision Builder. Cada procedimiento puede asignarse a

transiciones que se ejecutan mediante condicionales, y cada uno tiene una transición por defecto

(default) la cual se ejecutará en caso de que el resultado del condicional no se cumpla. De esta

forma, se utilizó el diagrama de flujo principal como una estructura if_then_else que le permite

al sistema realizar todas las funciones requeridas por cada una de sus partes (configuraciones

previas, reconocimiento visual, movimiento del robot, selección de condiciones). El uso de los

procedimientos de inspección permite al sistema integrarse directamente con NI Vision Builder

sin necesidad de utilizar software adicional. La figura 4 muestra el funcionamiento del sistema

completo, mientras que la figura 5 muestra cómo se ven los procedimientos de inspección en

Vision Builder y su funcionalidad en el sistema.

Page 16: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

Figura 4. Diagrama de proceso del sistema completo.

Figura 5. Diagrama de estado del sistema. Cada globo es un estado de inspección independiente. Las transiciones de estado a estado están basadas en condicionales ajustables a las variables u outputs de cada algoritmo.

Page 17: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

Todos los pasos del algoritmo se pueden resumir de la siguiente manera, incluyendo las

etapas de pre-configuración.

• Se abre el archivo de NI Vision Builder, automáticamente activando el algoritmo

de set-up.

• El set-up inicia el módulo de la comunicación robot-computador, y además

enciende sus servo-motores aparte de definir otros parámetros iniciales.

• Se pasa a ejecutar el main, el cual inicia definiendo todas las posiciones no-

variables a las que el robot deberá ir (posiciones en el paletizado, posiciones

intermedias, posición home, etc.)

• Se ejecuta el algoritmo de visión.

o Se comienza tomando una imagen del espacio de trabajo.

o Se ejecuta la función de parametrización donde se han definido las

características intrínsecas y extrínsecas del espacio de trabajo.

o Se ejecuta el algoritmo de visión donde se define una región de

reconocimiento, se definen umbrales y rangos para las zonas oscuras, se

adquiere el punto medio del área de los objetos encontrados, y se definen

las variables de posición.

o Se define una región de interés alrededor del primer cubo detectado en la

imagen para realizar el ajuste de su ángulo de rotación.

o Se encuentra el ángulo que se forma entre el borde del cubo y las esquinas

de la región de interés. Este es el ángulo que se utilizará para ajustar la

rotación de la herramienta del robot.

Se genera el cambio de coordenadas de milímetros a unidades del RV-2A.

Page 18: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

• Dependiendo del número de cubos encontrados, se ejecuta alguna de las

transiciones definidas.

• Si uno o más cubos son detectados, se ejecuta el proceso de paletizado. El robot

se activa y se dirige hacia el cubo No. 1, agarrándolo y llevándolo a una de las

posiciones de paletizado. El robot prosigue a devolverse a su posición inicial.

• Una vez el algoritmo de visión no detecta más cubos, el robot se “reinicia”,

volviendo automáticamente a su posición inicial.

A continuación se muestra el esquema del trabajo realizado. Nótese el cambio de coordenadas

entre el espacio de trabajo y el robot.

TCP/IP

• u O/ \ Firewire

Figura 4. Diagrama del espacio de trabajo

Page 19: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

Resultados

Propuesta definitiva

1) Conexión computador-robot:

El trabajo se realizó con ayuda de NI Vision Builder 2013, utilizando el gestor de

dispositivos de comunicación para conectar el robot al computador. En primera instancia, se

identificaron los parámetros requeridos para la conexión TCP/IP entre el MELFA y el

computador. Estos parámetros están definidos por el CTAI, por lo que no es necesario crear

conexiones nuevas. Se conectó un extremo de un cable Ethernet al switch del CTAI y el otro

extremo al computador de trabajo. El computador se configuró con la dirección IP 10.21.7.6,

aunque la dirección IP elegida para éste no tiene ningún efecto sobre la conexión. El sistema

funciona con cualquier dirección IP conectada mientras ésta no esté en uso por otro dispositivo.

Se prosiguió a utilizar el módulo de conexión TCP/IP de NI Vision Builder para definir los

parámetros requeridos por el robot.

El gestor de dispositivos de comunicación permite la creación de una conexión TCP/IP

con cualquier equipo al definir su dirección IP y el puerto requerido. En el caso del MELFA, su

dirección IP en el CTAI es la 10.21.7.8 y su puerto es el 9002. Estos parámetros se pueden

configurar fácilmente en el gestor de dispositivos de NI Vision Builder y se utilizó el procesador

de comandos de Windows para comprobar la conexión exitosa entre ambos dispositivos.

Page 20: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

Figura 5. Configuración de los parámetros de conexión TCP/IP en NI Vision Builder

Figura 6. Conexión exitosa entre robot y computador. Es necesario configurar el servidor TCP con el puerto 9002.

Una vez realizada la conexión entre ambos sistemas, es necesario escribir un código que

inicie la comunicación entre NI Vision Builder y el MELFA RV-2A. Esto se hace en el módulo

del paso de inspección TCP I/O, el cual permite transmitir comandos textuales mediante la

Page 21: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

conexión TCP/IP. Dando click en Send, es posible elegir el dispositivo establecido (en este caso

el Melfa) al cual transmitir el código, y de igual forma el software permite la transmisión de

variables y outputs definidos en pasos anteriores como cadenas de texto.

Figura 7. Módulo de envío de comandos TCP al Melfa RV-2A. Cada línea debe iniciar con los caracteres "1;1;" por definición. Nótese el uso de variables de inspección (éstas se envían como sus resultados numéricos).

La configuración de inicio también fija todos los parámetros iniciales del robot, tales y

como velocidad, tipo de coordenadas a usar, etc. Gracias a Vision Builder, es posible fijar este

módulo de inicio como una “opción de prendido” o de set-up. Esto quiere decir que el código

configuración inicial se ejecuta una vez se abre el archivo Vision Builder, por lo que correrá una

única vez en lugar de hacerlo cada vez que se ejecute el programa completo.

Device D irection CommandMelfa Send 1; l;CNTLONMelfa Send 1; 1;RSTALRM

Melfa Send 1; l;EXECJO VRD 10.0Melfa Send 1; l;SRVO N

W ait W a it 1000 msMelfa Send 1; 1;EXECJOVRD 50

W ait W a it 1500 msMelfa Send 1; l;EXECH CLO SE 1

W ait W a it 2000 msMelfa Send 1; ljEXECH O PEN 1

W ait W a it 2000 ms

Figura 8. Comandos de configuración inicial del Melfa RV-2A. El comando CNTLON inicia la conexión entre el computador y el robot. Es extremadamente importante que este comando sea la primera línea de código de todo el

sistema, o nunca existirá conexión.

Page 22: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

Como se puede notar en la figura 10, cada línea de código que demande una tarea física

de parte del robot (en este caso el comando SRVON que le ordena encender sus servo-motores)

debe puntearse con el comando WAIT. Este comando le indica al código que debe esperar una

cantidad determinada de milisegundos antes de enviar la próxima línea. La razón para esto es que

NI Vision Builder no es el controlador predeterminado para el uso del Melfa RV-2A, y

simplemente envía los comandos de manera textual sin ninguna confirmación de “ejecutado” por

parte del controlador del robot. El robot posee la funcionalidad de enviar un comando cuando la

pinza está cerrada, abierta, o entre-cerrada, pero esto únicamente proporciona información sobre

el estado de la herramienta, y no sobre el cumplimiento de una tarea por parte del robot.

Aunque los códigos como CNTLON y RSTALARM se ejecutan automáticamente, los

comandos físicos tienen cierta demora para ser interpretados y llevados a cabo por la máquina.

Por tal motivo, fue necesario tomar el tiempo de cuánto le tomaba al robot llevar a cabo cierta

acción física, y ajustar los tiempos de espera entre línea y línea manualmente. En este caso, al

robot le tarda aproximadamente un segundo encender sus servo-motores, por lo que SRVON es

seguido de una espera de 1000 ms antes de enviar la próxima línea de código; esto le da tiempo

suficiente al RV-2A para realizar la tarea. Si no se hace esto, los próximos comandos se

transmiten antes de que el robot haya terminado de procesar el último, y no se ejecutan. Al tener

todos estos parámetros configurados, ya es posible el envío de comandos desde NI Vision

Builder hacia el RV-2A mediante el protocolo TCP/IP.

Page 23: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

H an d c h e c k

c o n n e c to r

n u m b e rs

S íg n a l

S e t t in g p in s fo r th e o p e n /c lo s e s e t t in g o f t h e h a n d

C o m m e n ts

O p e n H a lf o p e n C lo s e d

1 General purposeinput 900 0 1 1C orresponds to hand 1

2 General purposeinput 901 1 1 0

Figura 9. Uso del sensor OPEN-CLOSED de la herramienta del RV-2A.

(Mitsubishi Melfa RV-2A Instruction Manual)

2) Algoritmo de visión por computador:

El proceso de adquisición de la imagen consta de la transmisión de datos desde la cámara

web hasta el computador. Sin embargo, para poder lograr esto, es necesario organizar los

parámetros del video de tal forma que se optimice la grabación de la imagen. Se utilizó una

plataforma blanca hecha de vinilo como superficie para colocar los cubos, debido a que permite

que los otros colores resalten bajo la luz blanca. La cámara toma una foto del espacio del trabajo

con cada iteración del estado de inspección, en lugar de una grabación continua. Esto se hizo

para evitar cambios en los parámetros que el robot utiliza cada vez que se corre una iteración del

proceso completo.

La captura de la imagen es seguida de la calibración, de tal forma que se creó un plano

cartesiano con coordenadas de referencia del mundo real, en milímetros. Para calibrar la imagen

NI Visión Builder posee una función de calibración en la cual se “entrena” al algoritmo para

equiparar puntos de referencia pre-establecidos. El algoritmo calcula la distancia en pixeles entre

ambos puntos, y luego físicamente se mide la distancia real en milímetros entre ambos puntos. El

resultado es una calibración que permite definir a cuántos pixeles en la captura de la cámara

Page 24: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

equivalen los mismos milímetros en el mundo real. Esta calibración se mantiene constante

mientras que la cámara se mantenga a la misma altura en todo momento, por lo que es

importante que esté bien asegurada y sujetada en todo momento. Es posible tomar varias

imágenes de referencia para mejorar la calibración, pero en este caso se utilizó sólo una puesto

que todos los elementos a trabajar son los mismos.

Figura 10. Captura de la imagen del espacio de trabajo.

Page 25: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

Figura 11. Interface de calibración de la imagen. Es posible cambiar las unidades del mundo real con las que secalibra. Para este trabajo se utilizaron milímetros.

Posterior a la calibración, se define un eje y un sistema de coordenadas sobre la imagen

de referencia. Se estableció el eje de coordenadas de tal forma que el sistema de puntos utilizado

por el Melfa RV-2A apuntara siempre hacia coordenadas positivas. Es decir, las coordenadas X e

Y siempre aumentan al moverse alrededor del espacio de trabajo. Esto hace más fácil calibrar las

variables que definen la posición de cada cubo al sistema de referencia del robot sin necesidad de

realizar mayores ajustes. Como se puede ver en la figura 12, es posible definir el eje de

coordenadas y el ángulo de corte entre ambos ejes manualmente.

Esta calibración del espacio de trabajo se realiza una sola vez, y en lugar de ejecutarse

con cada iteración del algoritmo, NI Vision Builder simplemente llama a la función definida para

definir los parámetros intrínsecos del espacio de trabajo. Debido a que la cámara siempre se

encuentra a una altura constante, la calibración nunca cambia puesto que la cantidad de pixeles

equivalentes a cada unidad real siempre permanecerá igual.

Figura 12. Definición del eje de calibración.

Page 26: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

Con la imagen calibrada, se pasa a la etapa de detección de los cubos. Para ello se utilizó

el módulo de detección de objetos. Este módulo permite fijar un área de trabajo adentro del

espacio de trabajo, dentro de la cual se aplicó el algoritmo de reconocimiento de objetos. El

algoritmo funciona aplicando filtros de color a la sección fijada. Se utilizó el modelo RGB (red,

green, blue), y se ajustaron los niveles de tal forma que resaltaran los objetos más oscuros sobre

la superficie blanca. Los niveles del color rojo funcionan en un umbral entre 120 y 140

dependiendo de la iluminación de la que se disponga, por lo que se deben ajustar de acuerdo a la

situación. El filtro debe ser lo suficientemente laxo para asegurar que todos los cubos sean

reconocidos, pero lo suficientemente estricto para que el algoritmo no reconozca las sombras y

las formas ajenas a los cubos que se alcancen a encontrar en el área definida.

El módulo de reconocimiento “reconoce” los objetos que se encuentran en el filtro

asignado. Para ello, se fijó un rango de área máximo y mínimo para el umbral establecido, y el

algoritmo reconoce los objetos que se encuentren en éste. Aunque todos los cubos tienen las

mismas dimensiones, diferencias en la iluminación, y otras variables como las sombras de

objetos cercanos pueden hacer que el área que se ha reconocido como llena para un cubo sea más

o menos grande que el área de un cubo distinto. Al igual como con el umbral, se estableció el

rango basado en prueba y error, pero se encontró que el área está entre 200 y 400 milímetros

cuadrados.

Page 27: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

Figura 13. Módulo de reconocimiento RGB, definición de umbrales de color.

El algoritmo permite fijar cualquier variable del objeto detectado (rea, punto del centro

del área, perímetro, puntos superiores, centro de inercia, etc) tanto en unidades de pixeles como

en milímetros. Las variables tomadas en milímetros de denominan variables calibradas ya que

obedecen a los parámetros que se definieron en la función de calibración anteriormente. Para el

sistema se eligió detectar únicamente el centro de área para obtener las coordenadas del punto en

donde se encuentra el cubo, al igual que para asignar un número de referencia a cada uno de los

objetos detectados.

Page 28: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

Variables

Variables Current Valué Operation New Valuéj 0 ...: Inspecton

X coordínate 59 r 581437 Set to Detectar cubos - Object [lj.Center ofMass.X (Calib 59,58144i.... Y coordínate1.... objects

56,5940723

Set to Detectar cubos - Object [lj.Center of Mass.Y (Calib 56,59407 Set to Detectar cubos - # Objects 3

OperationDo notSet Set to Constant

9 Set to Measurement Set to Inital Valué Increment Deaement

Comment123

Detectar cubos -Object [l].Certer ofMass.X t

Edit Variables ÜK Cancel

Figura 14. Se procede a guardar las coordenadas como variables de inspección, al igual que el número de objetosencontrados.

Figura 15. Módulo de reconocimiento de objetos, definición de filtros y parámetros. Se eligieron como parámetros las coordenadas del punto central del área del cubo en milímetros.

Page 29: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

Figura 16. Algoritmo de reconocimiento en funcionamiento. Se debe aplicar un análisis de sensibilidad para que los objetos de estudio sean detectados por el algoritmo, pero que aquellos que no lo sean, como el área oscura de la

esquina inferior derecha, no se incluyan.

En este punto, el módulo sólo detecta los puntos centrales de los cubos, por lo que su

rotación no es tomada en cuenta. Por tal razón, se debió crear otro módulo que ajustara la pinza

de sujeción del RV-2A con el objetivo de que siempre tomara los cubos por sus lados planos, en

lugar de tomarlos por las aristas. Esto asegura una sujeción de mayor calidad, ya que al momento

de depositar los objetos en la matriz de paletización estos pueden no encajar correctamente si se

han agarrado de manera inadecuada.

Para poder realizar este ajuste fue necesario definir una segunda región de interés dentro

de la región de interés ya creada. Gracias a que el algoritmo de detección de objetos asigna le

asigna un número automáticamente a cada cubo detectado, este espacio se definió alrededor del

cubo #1 debido a que siempre habrá al menos un objeto a detectar en la región de interés. La

nueva región se definió como un rectángulo que siempre se proyecte sobre la el cubo #1 de la

Page 30: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

imagen. De esta forma se asegura que siempre exista un ángulo de referencia entre el borde del

cubo detectado y las dos esquinas izquierdas del rectángulo del área de interés sin importar la

rotación que tenga el cubo. El objetivo es medir el ángulo que crea el borde rotado del cubo con

las esquinas del rectángulo.

Figura 17. Definición de la segunda región de interés sobre el cubo #1.

Para poder medir el ángulo de rotación se utilizó el módulo de detección de bordes rectos

de Vision Builder. Este módulo busca áreas en donde la imagen tenga cambios bruscos de

tonalidad (claro a oscuro, oscuro a claro) que se encuentren en una línea recta. El módulo

permite la selección de la dirección en que se está buscando el borde adentro de la región de

interés; es decir, se detecta el primer borde avanzando por arriba, por abajo, izquierda, o derecha.

Para el trabajo se seleccionó la dirección del barrido de izquierda a derecha, de modo que se

detecte el primer borde izquierdo del cubo. Se hizo de esta manera para que al encontrar el

ángulo entre el borde y las esquinas de la región de interés se tuviera un ángulo entre 0° y 90°, y

además debido a que los grados de rotación de la herramienta del RV-2A incrementan al rotar

hacia la derecha. Esto permite que el ángulo encontrado en este paso sea sumado al ángulo de

Page 31: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

rotación que el robot tiene en su posición inicial. En la configuración del módulo se minimizó el

grado de contraste necesario para detectar el borde, ya que el área de detección es pequeña y sólo

contiene al objeto a analizar. El borde generado es una línea recta definida por los dos puntos que

tocan la región de interés.

Figura 18. Configuración del módulo de detección de bordes. El barrido se realiza de izquierda a derecha y elalgoritmo arroja el primer borde encontrado.

Figura 19. Detección del borde izquierdo del cubo a analizar.

Page 32: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

Seguido a esto se utilizó el módulo Geometría para hallar el ángulo creado por el borde

del cubo con las esquinas de la región de interés. El módulo permite la medición de elementos

geométricos en la imagen utilizando variables creadas en otros pasos. La característica

geométrica que se utilizó fue la creación de un ángulo definido por 3 puntos. Estos puntos son las

dos esquinas izquierdas de la región de interés del cubo, y el punto inferior del borde detectado

anteriormente. Estas selecciones permiten que se cree el ángulo formado entre el plano justo en

frente del robot y las caras planas del cubo a recoger.

Figura 20. Selección de los parámetros para la construcción del ángulo de rotación.

El ángulo de rotación se ajusta al movimiento de la pinza del RV-2A pues este se

encuentra ubicado justo en frente del espacio de trabajo. El grado de rotación de la herramienta

es de 90° al estar en posición horizontal justo en frente de los cubos, por lo que para realizar el

ajuste basta con sumarle 90° al ángulo detectado por el módulo de Geometría del sistema. Esto

quiere decir que si el cubo se encuentra rotado 45° con respecto al plano de referencia, la pinza

se colocará en un ángulo de 135°, lo cual le permite agarrar el cubo por los lados planos de las

caras. Como el ángulo máximo que se puede hacer entre el cubo y el rectángulo es de 45° antes

Page 33: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

de que se comience a detectar la cara siguiente, el grado máximo de rotación de la pinza del

robot estará siempre entre 90° y 135°.

Figura 21. Uso del módulo de geometría para hallar la rotación del cubo con respecto a la pinza del robot.

Los outputs que recoge el sistema durante cada una de las etapas de reconocimiento y

ajuste son ingresados como variables a utilizar en los procesos siguientes. El algoritmo de

detección de objetos define tres variables cruciales para el proceso: El número de objetos

detectados, y las coordenadas cartesianas del centro de área de cada uno de los objetos. Estas

variables se guardan en NI Vision Builder como valores numéricos, y son de carácter global; es

decir, pueden ser utilizadas por cualquier otro módulo como parámetros, e incluso por otros

procedimientos de inspección. La variable número de objetos se utilizó para crear las

transiciones condicionales del ciclo principal, mientras que las variables de las coordenadas X y

las coordenadas Y se definen como la posición en milímetros del cubo #1 en el espacio de

trabajo. En este punto se cuenta con todas variables necesarias para proseguir. Sin embargo, los

valores de las coordenadas que se midieron en la etapa de reconocimiento deben guardarse como

variables para poder trabajar con ellas y editarlas más adelante.

Page 34: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

Adicionalmente, y como elemento opcional, se diseñó una interface gráfica para el

sistema. La interface no sirve un propósito práctico como tal, pero permite comprobar que los

cubos han sido reconocidos y que sus coordenadas se muestran correctamente. El diseño es

puramente estético, pero permite demostrar la funcionalidad de las variables de NI Vision

Builder entre cada estado. Para realizar la interface, se utiliza el gestor de texto del software, el

cual permite el uso de variables globales o del mismo estado de inspección como cadenas de

texto. Este mismo principio se utilizó para la programación de los comandos TCP/IP del Melfa

RV-2A. El algoritmo de visión le asigna un número a cada objeto encontrado utilizando una

selección vertical, por lo que el cubo número 1 siempre es el que está más “arriba” en la pantalla.

Esta asignación fue muy útil a la hora de programar los movimientos del Melfa RV-2A, puesto

que el algoritmo reemplaza internamente el cubo No. 1 por el próximo más cercano a éste una

vez el primero ya no está. En el diseño de la interface gráfica, se utilizaron los puntos X e Y en

milímetros del centro de área de cada cubo para escribir el número de cada uno en esta posición,

así como el output mismo de la variable como cadena en la esquina de la pantalla.

Figura 22. Utilización de variables en la asignación textual de cada cubo.

Page 35: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

Figura 23. Interface gráfica del sistema visual terminado.

3) Cambio de coordenadas

El último paso para finalizar el sistema de visión es la traducción de las coordenadas; de

milímetros del mundo real sistema utilizado por Melfa BASIC. De esta forma, cada coordenada

X e Y se ajustan mediante una forma matemática para asemejarse lo más posible a lo utilizado

por el robot. El procedimiento consistió en arreglar varios cubos en diversos puntos del espacio

del trabajo, anotar sus coordenadas en milímetros, y luego manualmente colocar la pinza del

robot sobre cada uno de ellos, anotando sus coordenadas respectivas en el sistema Melfa BASIC.

De esta forma se obtuvieron dos conjuntos de puntos: Milímetros reales y unidades del robot.

Mediante la ayuda de Microsoft Excel, se calculó una línea de tendencia entre ambos conjuntos,

tomando las coordenadas reales como variable independiente (de manera que se pudieran utilizar

las variables del algoritmo de visión como parámetros de entrada) y las del robot como

independientes.

Page 36: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

Tabla 1. Interpolación de coordenadas visión-robot

Coordenadas X (mm) Coordenadas X (Melfa)

86,94 456,63

85,47 460,4

154,44 540

129,8 523,73

203,3 606,23

211,74 611

78,53 482,92

146,36 574,38

Coordenadas Y (mm) Coordenadas Y (Melfa)

34,87 -80,63

90,77 -5,81

86,25 -13

203,01 127,28

114,54 18,23

25,4 -81

El resultado de la regresión arrojó el mejor dato R2 al utilizar una regresión polinómica

de segundo grado para las coordenadas X, y una regresión lineal para las coordenadas Y. Sin

embargo, debido a la alta sensibilidad del algoritmo de visión y la precisión del robot, al igual

que para tener en cuenta cualquier pequeño movimiento que pueda tener la cámara alrededor de

Page 37: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

su eje de posición, las constantes de regresión se deben ajustar y calibrar antes de cada uso para

obtener la mayor precisión posible. De acuerdo a la medición de puntos que se realizó, las

ecuaciones que mejor describen al sistema están definidas de la siguiente manera:

X = - 0 . 0 0 2 2 X 2 + 1 .7 8 4 3 * + 334.49

Y = 1 . 1 3 8 2 y - 116.62

En estas ecuaciones, X son las coordenadas del eje X que utiliza el robot, las

coordenadas del eje X en milímetros, mientras que Y / y lo son para los ejes Y. Ahora bien, estos

son modelos puramente teóricos que aunque sirven para definir la idea general del sistema, no se

ajustan al 100% a la realidad. Los coeficientes R2 de las ecuaciones son de 0.92 y 0.99 para las

coordenadas X é Y respectivamente. Esto significa un margen de error de casi el 9% (tomando

ambos valores, el margen puede llegar hasta 0.92 * 0.99 = 0.9108 de confiabilidad) para la

regresión, lo cual sería muy significativo si se buscara encontrar el centro de área de cada cubo al

milímetro. Sin embargo, este no es el caso; la pinza sujetadora del RV-2A tiene un área de

sujeción mucho más grande que los objetos que necesita recoger, por lo que no necesita llegar

siempre al punto exacto para lograr agarrarlos. Por tal motivo, algunos parámetros de las

ecuaciones se ajustaron manualmente de manera que se pudiera obtener la mayor precisión

posible a la hora de hacer el cambio de coordenadas en NI Vision Builder.

Para realizar el proceso de ajuste se utiliza el módulo de Calculadora que ofrece el

programa, el cual abre un módulo de LabVIEW donde se puede usar el lenguaje de

programación G para manipular los datos mediante las ecuaciones calculadas. La ventaja de esto

es que hace sencillo el poder cambiar cualquier constante de la ecuación en caso de que se

requiera mejorar la precisión del robot debido a condiciones externas ajenas al sistema.

Page 38: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

El módulo de la calculadora requiere de la definición de inputs y outputs. Los primeros

son los parámetros que se cambian mediante los cálculos en LabVIEW, y los últimos se definen

como valores que actualizan la definición de otra variable. De esta forma, se pueden aplicar

ambas ecuaciones de la regresión para X y para Y utilizando las coordenadas milimétricas como

las variables de entrada.

Se inició creando los operadores que directamente cambian los valores de las variables de

entrada. Estos toman el lugar de X e Y en las ecuaciones, y se crean constantes para definir la

ecuación de regresión como algoritmo en G. El resultado final es una variable de posición X e Y

calibrada siguiendo las mismas reglas de la ecuación de regresión. El resultado final es un par de

coordenadas que cuentan con una precisión entre 92% y 99%, pero que están sujetas a cualquier

cambio en la posición de la cámara, o movimientos que puedan llegar a cambiar la configuración

inicial del espacio de trabajo establecido.

Figura 24. Parámetros de entrada de las variables en LabVIEW. Es posible elegir variables de inspección como en este caso, o cualquier otro tipo (incluyendo variables del sistema).

Page 39: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

Figura 25. Variables de salida. Estas son las variables que cambiarán los valores de los inputs al pasar por elprocesamiento en LabVIEW.

Figura 26. Uso de LabVIEW para ajustar las coordenadas reales a las del Melfa. Nótese como la variable X sigue una regresión polinómica de segundo grado mientras que Y es simplemente la ecuación de una recta.

Con este paso se finaliza el algoritmo de visión por computador. En este punto se tiene un

programa que reconoce los objetos a trabajar en 2D, puede ubicar sus coordenadas en unidades

Page 40: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

reales, y traducir dichas coordenadas a un sistema que el Melfa RV-2A pueda utilizar para

interactuar con los cubos.

4) Movimiento del robot

Ahora bien, aunque se intentó diseñar el sistema para que el robot pudiera paletizar una

cantidad variable de cubos, no se logró encontrar una opción en NI Vision Builder que permitiera

utilizar condicionales en el lenguaje Melfa BASIC IV. Por tal razón, aunque el algoritmo puede

reconocer una cantidad ilimitada de cubos, y el robot puede repetir el ciclo para recoger tantos

cubos como sea necesario, el algoritmo le permite devolverse y paletizarlos para una cantidad

pre-determinada de posiciones. La solución consistió en utilizar el diagrama de estado como un

condicional principal bajo el cual se hacían transiciones entre cada estado de inspección. Cada

estado de inspección (óvalo en el diagrama) puede definir una serie de transiciones que sí

permiten el uso de condicionales. La manera de aplicar esto al algoritmo fue un poco ortodoxa,

pero otorgó una solución satisfactoria al problema. Existen dos tipos de transiciones:

Condicionales, y por defecto. Los condicionales funcionan como el IF de cualquier lenguaje de

programación, mientras que las transiciones por defecto (default) funcionan como un ELSE. La

variable principal que se utilizó para manejar estos condicionales fue la variable de número de

objetos detectados por el proceso de visión.

Como se puede evidenciar en la Figura 23, el proceso es sencillo: Si ninguna de las

condiciones de las transiciones se cumple, se ejecuta la transición por defecto. Si se cumple una

de ellas, se pasa al estado indicado por la transición. Se puede ir de un estado a otro hasta la

compleción del condicional, efectivamente creando un ciclo sin necesidad de utilizar un FOR.

Como muestra la figura, al iniciar el código el sistema primero arregla sus condiciones iniciales,

inicia el algoritmo de visión donde se detectan los cubos y se configuran las variables, y

Page 41: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

dependiendo del resultado ejecuta uno de tres posibles pasos. Estos pasos se iteran hasta que el

número total de objetos es 0, punto en el cual el robot se reinicia a su posición inicial (Reset)

para finalmente terminar la ejecución del código.

Seguido a la creación de los condicionales se prosiguió diseñando el código del Melfa

que toma las nuevas variables X, Y utilizándolas para indicar la posición a la que debe ir el robot

para agarrar un cubo. Se vuelve a utilizar el módulo de comandos TCP/IP, de los cuales se creó

uno para cada iteración del algoritmo de paletizado. Al igual que con los comandos de la

configuración inicial, se envía cada comando físico con un retraso cierta cantidad de

milisegundos de tal forma que el robot tenga tiempo de ejecutar el movimiento antes de que se le

envíe la próxima instrucción. Se debió utilizar prueba y error para ajustar este mecanismo para

asegurar que los comandos no se interpolaban al llegarle al robot antes de que éste terminara la

tarea anterior, y al mismo que fueran lo suficientemente cortos como para que todo el proceso no

tardara demasiado tiempo.

Figura 27. Diagrama de estado en Vision Builder utilizando transiciones condicionales.

Page 42: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

Figura 28. Condicional para la detección de 1 cubo.

Para utilizar las variables calibradas en las coordenadas del robot, se utilizó la opción de

insertar resultado del módulo de envío de comandos. Esta opción despliega el módulo de las

variables, y al insertarlas se definen como un valor numérico escrito entre dos signos de

desigualdad (< , >). Se insertó el resultado para las coordinadas X é Y calibradas con las

ecuaciones halladas anteriormente, y el resultado del ángulo encontrado para la rotación de los

cubos en la coordenada “C” del robot.

El resto del código funciona igual que el lenguaje Melfa BASIC lo hace en su controlador

normal. Se deben definir las posiciones a las que el robot irá mediante 7 coordenadas diferentes

(equivalentes a seis grados de libertad sumadas a el movimiento de la banda transportadora). Los

comandos sencillamente definen las posiciones a las que el robot irá, tanto sus movimientos

intermedios como la posición exacta del cubo #1. El Melfa siempre recogerá el cubo designado

como el #1, por lo que no es necesario preocuparse por la cantidad de cubos que utilice el

sistema.

Page 43: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

Figura 29. Envío de comandos TCP/IP al robot Melfa. Es importante dejar un tiempo de espera de aproximadamente dos segundos después del comando los comandos físicos para que los servomotores puedan

funcionar sin interrupciones.

El ciclo finaliza con la paletización de los cubos. Utilizando el teach-pendant, se llevó

manualmente al robot a cada posición deseada de la matriz de paletización, y se anotaron sus

coordenadas respectivas. Las coordenadas deben estar escritas con los parámetros X, Y, Z del

teach-pendant (esta parte es importante ya que también se pueden definir con Joint,

proporcionando un valor en el que cada una de las articulaciones del robot debe estar en lugar de

coordinadas en un espacio tri-dimensional). Para ello se utiliza el botón XYZ en el teach-pendant

y se cambia cada coordenada de forma independiente. Se define cada una de estas posiciones

para cada condicional del sistema: Si se detectan tres cubos, se irá a la posición tres al finalizar;

si se detectan dos se irá a la posición dos, y lo mismo con sólo un cubo. El prototipo únicamente

funciona para el paletizado de 3 cubos, pero es posible añadir más posiciones en caso de

necesitar una mayor cantidad de cubos.

Page 44: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

Figura 30. Teach-pendant del Mitsubishi MELFA RV-2A en función deshabilitada. La llave de la esquina superior derecha debe moverse hacia "Enable" para poder mover el robot manualmente.

Restricciones de la solución

El mayor problema a la hora de correr el sistema se encuentra en la etapa de visión por

computador. Es necesario que el espacio de trabajo cuente con iluminación adecuada por medio

de una fuente de luz controlada, o de lo contrario el módulo de reconocimiento de objetos

identificará las partes más sombreadas de los cubos como parte de los objetos, saliéndose del

rango operativo del reconocimiento. En casos donde la iluminación del espacio no sea suficiente

para que el algoritmo reconozca los cubos, se puede contrarrestar el efecto aumentando la

apertura del lente al máximo posible, maximizando la cantidad de luz que le llega a la cámara.

Page 45: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

En general, la falta de iluminación puede ocasionar que se dejen de detectar objetos que

se encuentran en el espacio de trabajo o que se reconozcan zonas oscuras de la imagen como

objetos. Esto último es particularmente problemático pues puede causar que el robot se mueva

hacia lugares peligrosos cercanos al espacio de trabajo tratando de llegar a zonas donde no hay

nada.

Figura 31. Espacio de trabajo con iluminación insuficiente.

Figura 32. Espacio de trabajo con iluminación adecuada.

Page 46: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

Aparte de la iluminación, el prototipo posee una inhabilidad para interactuar con una

cantidad variable de objetos. Esto se debe en gran parte a la interfaz del software utilizado, al

igual que las diferencias entre el controlador de NI Vision Builder y el controlador real del Melfa

RV-2A. Por tal razón, es necesario programar X iteraciones de los algoritmos de recogida y los

comandos de transición para poder recoger X cubos. Es decir, si se quiere recoger X cubos, se

deben codificar X transiciones junto con X posiciones en la matriz de cubos. Una de las ideas

que se intentó implementar para tratar con este problema fue la de definir una variable N que

tomara el valor de la cantidad de cubos detectados por el algoritmo de visión. Esta variable

controlaría la cantidad de posiciones a las que el robot debería ir, definiendo N posiciones con

anterioridad en la matriz.

De esta manera, la idea era que si el algoritmo detectaba 8 cubos, el robot tomaría el

primer cubo y lo pondría en la posición “8” previamente definida. La próxima iteración del

algoritmo detectaría 7 cubos, por lo que el robot ahora pondría el siguiente cubo en la posición

“7”, y así sucesivamente. Sin embargo, esta opción demostró no ser factible de implementar

debido a la forma en que Vision Builder le envía información al robot. Al enviar el comando

EXECPN con N tomando valores de números enteros, el controlador no responde y no reconoce

el comando como “EXECP8” que sería la forma de definir la posición “8” para el robot.

Sin embargo, la solución definitiva planteada en este trabajo cumple con el requerimiento

de reconocer una serie de objetos y permitir que el Melfa RV-2A interactúe con ellos. La

restricción queda entonces en la necesidad de definir el máximo de objetos que el robot puede

recoger, y programar la misma cantidad de posiciones en la matriz a las que el robot debe ir.

Otra restricción de la solución está en la calibración de la cámara con el espacio de

trabajo. Aunque la cámara está firmemente sujeta a un riel metálico, el más mínimo movimiento

Page 47: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

de la mesa en donde está atornillada puede cambiar la dirección a la que apunta, cambiando

completamente su calibración con las coordinadas cartesianas de referencia. Para sobrepasar este

problema se utilizó la ecuación de regresión para las coordenadas X é Y del espacio de trabajo.

Si la cámara se llega a mover, todas las coordenadas se mueven con ella, por lo que la

calibración deja de funcionar y el robot deja de ir al lugar indicado, moviéndose a un punto

cercano más no exacto del cubo a donde se programó. Con el sistema de regresión se pueden

cambiar los parámetros a donde se mueve el robot; es decir, si la cámara cambia su posición, es

posible arreglar la constante (o la ecuación entera) para la coordenada X ó Y sin necesidad de

tener que re-calibrar el sistema entero.

Este método demostró ser más fácil y eficiente a la hora de asegurar que el robot funcione

en todo momento, con la desventaja implícita de tener que probar que la ecuación de regresión

en uso funciona para la calibración actual cada vez que el prototipo se vaya a utilizar. De lo

contrario, puede haber situaciones en las que el cambio de coordenadas haga que el robot pierda

precisión a la hora de recoger los objetos, y se mueva varios centímetros en direcciones

incorrectas causando inconsistencias en el proceso, o incluso daños mecánicos en el RV-2A.

Validación de la solución

El prototipo logra reconocer objetos homogéneos en 2D con características previamente

definidas, aparte de las restricciones planteadas anteriormente de iluminación, y variables

externas al sistema. Sin embargo, como se planteó en la sección de restricciones, es necesario re­

validar las ecuaciones de regresión utilizadas por el robot cada vez que se vaya a ejecutar el

código, al igual que la funcionalidad del ajuste de rotación para los objetos. Una vez que las

constantes están en orden, el robot puede ir a cualquier punto del espacio de trabajo con

suficiente precisión para agarrar cada uno de los cubos sin importar dónde se encuentren; pero la

Page 48: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

calidad de este agarre afecta el proceso de paletizado, por lo que hay dos etapas que deben

validarse: Agarre y paletizado.

Las ecuaciones de regresión pueden dar un pequeño margen de a la hora de recoger los

objetos, particularmente para las coordenadas X error (aproximadamente del 8% puesto que el

coeficiente R2 de la regresión es del 92%). Esto se debe a la pinza del robot se ubica de manera

horizontal sobre los cubos, haciendo que las coordenadas que la mueven horizontalmente tengan

mayor margen de error que las que la mueven verticalmente a lo largo del plano de referencia.

Sin embargo, con una buena definición de las constantes de la ecuación este margen no es lo

suficientemente grande como para que el robot no recoja los cubos de manera adecuada.

Para probar la funcionalidad de la solución, se realizaron 5 corridas del algoritmo

completo, tomando 3 cubos en cada interacción; lo cual equivale a que el RV-2A recogiera 15

cubos en total. Para cada prueba, la cámara se movió unos grados con respecto a su eje de

rotación, y se devolvió a su posición inicial. Esto se hizo para comprobar qué tanto se

desajustarían los parámetros de la calibración y de las ecuaciones de regresión para el cambio de

coordenadas y para el ángulo de rotación, dado que estos desajustes le quitan precisión al robot a

la hora de alcanzar los cubos, haciendo necesario re-configurar las constantes de las ecuaciones

de regresión. Gracias a la inclusión del sistema de rotación para la herramienta del robot, los

cubos siempre son tomados por sus lados planos; esto permite que a la hora de ser depositados en

la matriz de paletizado se minimice el margen de error al dejarlos caer.

La prueba buscó entonces evaluar tanto el agarre como el paletizado de cada objeto. Se

ubicó un cubo en la misma posición del espacio del trabajo, rotado aproximadamente en la

misma dirección, y corriendo el algoritmo completo. El robot agarra el objeto y lo deposita en el

mismo espacio de la matriz de paletizado, pero dependiendo de la calidad del agarre, el cubo

Page 49: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

puede resbalar, deslizarse, o salirse de su posición una vez soltado de la pinza de sujeción.

Debido a que las coordenadas programadas para cada posición de la matriz son constantes, las

únicas variables en el proceso son los pequeños cambios de posición y rotación que pueda tener

el cubo al ser colocado en el espacio de trabajo. Si el cubo es sujetado por sus lados planos (en

lugar de las aristas, por ejemplo), la precisión del proceso de paletizado es de mayor calidad que

si los tomara sin rotar la herramienta.

Al correr las pruebas, en uno de los 5 casos se debieron cambiar las constantes de ambas

ecuaciones; siendo necesario alterar el valor de la constante de la regresión en la calculadora de

LabVIEW que se encuentra dentro del algoritmo de visión. Es decir, al cambiar ligeramente el

ángulo en que la cámara apunta al espacio de trabajo, de 15 interacciones con los cubos, se

debieron ajustar las constantes de la ecuación de regresión de las coordenadas X é Y para 3 de

ellas. El margen de error tiende a ser de aproximadamente 0,5 cm para la ecuación de regresión

de las coordenadas X, lo cual le da al RV-2A suficiente precisión para recoger todos y cada uno

de los cubos sin importar su posición en el espacio de trabajo. Sin embargo, el robot tiende a

tener una mayor precisión para los cubos que se encuentran más cerca de este, a diferencia de

aquellos que se encuentran a una mayor distancia.

Los resultados de dichas pruebas se evidencian en la siguiente tabla, donde se probó el

resultado de la ecuación de regresión para 5 corridas del algoritmo, cada corrida interactuando

con 3 cubos en posiciones diferentes del espacio de trabajo para un total de 15 interacciones. El

resultado muestra si luego de realizar el cambio de coordenadas y que el robot se acercara a la

pieza, logró agarrarla con éxito o no (un fracaso se define como no agarrar el cubo, o que se

cayera de la pinza en el trayecto hacia la matriz de paletizado).

Page 50: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

Debido a la naturaleza si/no de la recogida y el paletizado de los cubos, el éxito del

prototipo no está en llegar siempre al punto exacto detectado por el algoritmo de visión, sino

tener la precisión suficiente para que la pinza de sujeción logre acercarse lo suficiente al objeto

como para agarrarlo sin dejarlo caer. En últimas, la razón por la que el robot puede fallar al

recoger los cubos se debe a una diferencia entre lo reconocido por el algoritmo de visión y lo

traducido por las ecuaciones en el cambio de coordenadas, lo cual puede ocurrir cuando la

cámara es movida de su posición original; cambiando los parámetros intrínsecos de la imagen del

espacio de trabajo.

En la prueba, un resultado correcto en el agarre se denomina “sujeción” cuando el cubo

logra ser tomado por la herramienta del robot. Esto no tiene en cuenta la calidad del agarre

mismo, únicamente que la pinza haya logrado agarrar y levantar el cubo del espacio de trabajo.

Por otro lado, un resultado es correcto en el proceso de paletizado si el cubo, una vez sujeto, fue

depositado en su orificio correspondiente en la matriz de paletizado sin caerse, rebotar, o salirse

de éste. La pinza baja los cubos hasta una altura de dos centímetros por encima de la matriz de

paletizado y los suelta para que encajen. Se decidió usar esta altura y no una menor puesto que

cuando ya hay cubos localizados dentro de la matriz, la pinza podría chocar contra estos y

dañarse, por lo que se hizo por motivos de seguridad. Por esta razón, en ocasiones el cubo puede

no encajar completamente, pero si al menos logra entrar en la abertura (a veces al ser depositado

queda rotado verticalmente por lo que no encaja en la matriz), este resultado también se

considera como un paletizado correcto. Esto se debe a que ni los cubos ni los agujeros en la

matriz tienen dimensiones completamente simétricas, por lo que al ser soltados desde cierta

altura se pierde el control sobre ellos y variables externas al sistema pueden llegar a dictar la

forma en que caen en la matriz de paletizado.

Page 51: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

Tabla 2. Resultado de pruebas para el prototipo

# Prueba Coordenadas X en milímetros

Coordenadas X del robot

Coordenadas Y en milímetros

Coordenadas Y del robot

Ángulo de rotación de

la pinzaAGARRE PALETIZADO

1 199,35 626,93 209,09 117,60 102 SUJECIÓN CORRECTO2 199,08 616,43 178,20 97,34 128 SUJECIÓN INCORRECTO3 193,04 606,22 210,57 113,64 106 SUJECIÓN CORRECTO4 148,33 556,89 171,05 85,64 125 NO SUJECIÓN INCORRECTO5 195,82 597,20 222,97 130,17 125 NO SUJECIÓN INCORRECTO6 123,05 543,61 222,93 139,14 123 SUJECIÓN CORRECTO7 85,74 496,76 194,45 103,91 121 SUJECIÓN INCORRECTO8 98,50 506,85 134,61 21,46 130 SUJECIÓN CORRECTO9 112,30 521,39 173,52 83,82 100 SUJECIÓN CORRECTO10 124,58 540,06 131,52 26,92 120 SUJECIÓN CORRECTO11 68,29 476,62 105,58 -3,02 92 SUJECIÓN CORRECTO12 85,50 455,16 116,14 24,95 121 SUJECIÓN CORRECTO13 175,55 631,03 150,32 46,73 114 NO SUJECIÓN INCORRECTO14 130,72 549,11 168,89 74,04 126 SUJECIÓN CORRECTO15 79,44 494,39 221,75 123,89 100 SUJECIÓN CORRECTO

En 10 de 15 pruebas (67% de los casos), tanto el proceso de agarre como el proceso de paletizado fueron exitosos. La precisión

del sistema es mucho mayor cuando la cámara se mantiene fija en su eje de rotación, pero esta prueba demuestra la funcionalidad del

prototipo, así su precisión pueda mejorarse restringiendo la cantidad de variables externas que pueden entrar en el sistema.

Page 52: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

Evaluación del impacto de la solución propuesta

A continuación se define la cotización de todos los elementos utilizados para la creación

del prototipo. El rango del precio podría estar entre COP $45.000.000-$50.000.000 al

implementarlo en una empresa; pero el código funciona. Este prototipo funciona exclusivamente

con el MELFA RV-2A, pero sería perfectamente posible implementar el mismo sistema para

cualquier otro robot manipulador que permita inputs vía Ethernet mediante una conexión

TCP/IP.

Tabla 3. Cuadro de presupuesto para el prototipo.Herramienta Precio (2015)

Mitsubishi MELFA RV-2a (usado) $40.940.000

Licencia NI Vision Builder $4.643.700

Horas hombre (144 horas en total) $816.500

Cámara web $30.000

Total $46.430.200

Aunque el costo nominal del prototipo es elevado, su precio está concentrado

mayormente en el robot y la licencia del software. Por tal motivo, el prototipo es mucho más

rentable para una empresa que ya cuente con ambos elementos, ya que el diseño de los

algoritmos no tiene un costo implícito. No obstante, este sistema no busca desplazar al operario

humano de todas las tareas que requieran tanto visión como interacción mecánica, sino de

proteger la integridad de aquellos operarios que trabajen en procesos de tipo DDD (Dirty, Dull,

Dangerous), como ya se ha explicado anteriormente en este trabajo.

Page 53: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

Conclusiones y recomendaciones

Todos los objetivos iniciales planteados en el proyecto fueron ejecutados con éxito; se

creó un sistema prototipo que realiza la tarea de control servo-visual para el proceso de bin-

picking en el CTAI de la Pontifica Universidad Javeriana. El prototipo puede reconocer e

interactuar con objetos homogéneos en 2D con características previamente definidas, y

proporciona una interfaz gráfica para el sistema.

El bin-picking puede ser utilizado para mejorar procesos de tipo DDD (Dirty, Dull,

Dangerous) donde sea preferible reemplazar al operario humano por un sistema automatizado de

control servo-visual. El sistema desarrollado en este trabajo cuenta con suficiente precisión para

reconocer, agarrar y paletizar todos los objetos que se encuentran en su espacio de trabajo,

aunque se debe restringir la entrada de variables físicas externas al sistema. Debido a la

naturaleza pequeña y uniforme de los cubos utilizados, no se probó si el sistema funciona con

objetos heterogéneos o de mayor peso. Sin embargo, aún quedan espacios en los que se podría

trabajar utilizando este prototipo: El sistema desarrollado en este trabajo sólo funciona en un

espacio 2D, por lo que se podría plantear el mismo sistema para un espacio en 3D en el futuro,

mediante la adición de un sensor adicional que proporcione las coordenadas de profundidad (por

ejemplo, una cámara situada en el plano horizontal).

Por otro lado, el prototipo no logra interactuar con una cantidad variable de N objetos

debido a las limitaciones de las plataformas utilizadas. La utilización de otro robot, o de otro

software de reconocimiento visual, podrían resolver este problema al permitir variabilidad en la

cantidad de objetos a trabajar. Adicionalmente, aunque el sistema ya cuenta con una interfaz

gráfica propia de la plataforma NI Vision Builder, también se podría evaluar la posibilidad de

Page 54: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

desarrollar una aplicación móvil que permita la comunicación de estos datos hacia un lugar

remoto, al igual que la integración del sistema completo con una plataforma de ERP.

Lista de referencias

Daewon, L., Ryan, T., & H. Jin, K. (2012). Autonomous Landing of a VTOL UAV on a Moving Platform Using Visual Servoing.

Fang, Y., Liu, X., & Zhang, X. (2011). Adaptive Active Visual Servoing of nonholonomic Mobiel Robots.

Freeman, H. (1988). Machine Vision: Algorithms, Architectures, and Systems. San Diego: Academic Press, Inc.

Institute of Computer Technology - Vienna University of Technology. (2006). TCP/IP Protocol Suite, RFC, IP Addresses, IP Forwarding.

Kim, K., Kim, J., Kang, S., Kim, J., & Lee, J. (2012). Vision-Based Bin Picking System for Industrial Robotics Application.

Kohrt, C., Pipe, A., Schiedermeier, G., Stamp, R., & Kiely, J. (2008). A Robot Manipulator Communications and Control Framework.

Kristensen, S., Estable, S., Kossow, M., & Brosel, R. (2001). Bin-picking with a solid state range camera.

Mitsubishi Electric Factory Automation. (2009). MELFA Industrial Robots Consistent Quality - Precise Control.

National Instruments. (2009). NI Vision Builder for Automated Inspection Tutorial. Austin, Texas.

Pochyly, A., Kubela, T., Kozak, M., & Cihak, P. (2010). Robotic Vision for Bin-Picking Applications of Various Objects. ISR Robotik.

Quintana, D. F. (2011). Control supervisorio de un robot manipulador industrial Mitsubishi Melfa utilizando la plataforma LabVIEW.

Rahardja, K., & Kosaka, A. (1996). Vision-Based Bin-Picking: Recognition and Localization of Multiple Complex Objects Using Simple Visual Cues.

Snyder, W., & Qi, H. (2010). Machine Vision. Cambridge: Cambridge University Press.

Sonka, M., Hlavac, V., & Boyle, R. (2013). Image Processing, Analysis, and Machine Vision. Stamford: Cengage Learning.

Page 55: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

Takayama, L., Ju, W., & Nass, C. (2008). Beyond Dirty, Dangerous and Dull: What Everyday People Think Robots Should Do. HRI '08 Proceedings o f the 3rdACM/IEEE international conference on Human robot interaction, 25-32.

Zhao, Y., Xie, W.-F., & Tu, X.-W. (2011). Multiple cameras visual servoing used for large scale.

Apéndices

APÉNDICE A: Especificaciones del robot Mitsubishi MELFA RV-2A

Model Units RV-2ADegrees of freedom 6

Driving method AC servomotor (J1 to J3 and J5 axis brake attached)

Position sensing method Absolute encoderMaximum load capacity (rating) kg 2

Maximum reach radius mm 621

Working area

1

Deg.

320 (-160 to +160)

2 180 (-45 to +135)

3 120 (+50 to +170)

4 320 (-160 to +160)

5 240 (-120 to +120)

6 400 (-200 to +200)

Maximum speed

1

Deg./s

150

2 150

3 180

4 240

5 180

6 330

Repeat position accuracy mm ±0.04Ambient temperature °C 0 to 40

Weight kg Approx. 37

Page 56: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

Tool wiring *1

6 wires for hand-check work (4-point inputs and 2 power supply

lines, the hand unit); 4-point outputs for air-hand (the shoulder unit); 1- point output for motor-driven hand (the hand unit); 4 spare wires (0.3

mm2 in size, arranged from the base through the end of fore-arm).

Tool air-tubing

Primary: 06*2 ports Secondary: 04*4 ports

Protective structure IP30

APÉNDICE B: Especificaciones del controlador del MELFA RV-2A

Model Unit CR1-571Path control method PTP control and CP control

Number of controlled axes Axis Concurrent control of up to 6 axesCPU 64bit RISC/DSP

Main functions

Indirect interpolation, direct interpolation, 3-dimensional radii interpolation, palletizing, condition branching, subroutines, multi-tasking, optimum adjustable speed control, optimum override control, optimum route connection, etc.

Programming language MELFA-BASIC IV or MoveMaster language (MoveMaster Command)

Position teaching method Direct and remote teaching, and MDI method

Memorycapacity

Number of teaching points Point/prg 2,5

Number of steps Step/prg 5Number of programs Program 88

Externalinput/

General-purposeinput/output Point 16/16 (max. when using options: 240/240)

output Exclusive Point Allocated by general input/output (1 “STOP” point is fixed)

Hand opening/closing Point 4/0 (when using options: 4/4)RS-232C Port 1 (for the connection of a PC, vision sensor, etc.)RS-422 Port 1 (for exclusive to the connection of teaching box)

Interface Hand-exclusive slot Slot 1 (electric hand and pneumatic hand interface only)

Expansion slot *1 Slot 0 (when option is used: 3 [for expansion options])

Page 57: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

obot input/output Channel 1 (for connecting parallel I/O unit)Ambient temperature °C 0 to 40

Ambient humidity %RH 45 to 85Powersupply Input voltage limit V 180 to 253VAC, single phase

207 to 253VAC, single phase at CEPower capacity *2 kVA 0.7

Grounding 100 or less (D-type grounding)Structure Self-supported floor type, open structure

Outside dimension *3 mm 212 (W) x 290 (D) x 151 (H)Weight *3 kg Approx. 8

Protective structure IP20 (IP54: when using CR1 protective box)

APÉNDICE C: Imágenes adicionales del espacio de trabajo

Figura 33. Cámara Guppy FireWire utilizada para el reconocimiento visual.

Page 58: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

Figura 34. Objetos a recoger por el robot.

Figura 35. Mitsubishi MELFA RV-2‘

Page 59: SISTEMA DE CONTROL SERVO-VISUAL EN 2D PARA EL PROCESO …

Figura 36. Espacio de trabajo completo (no incluye la matriz donde se organizan los cubos).