SciELO - Scientific Electronic Library Online

 
vol.17 número2Obtención de las Fuerzas Equivalentes en el Elemento Barra 2D en Régimen ElastoplásticoConsistencia, Fluidez y Viscosidad de Pastas Minerales de Relaves de Hierro índice de autoresíndice de materiabúsqueda de artículos
Home Pagelista alfabética de revistas  

Información tecnológica

versión On-line ISSN 0718-0764

Inf. tecnol. v.17 n.2 La Serena  2006

http://dx.doi.org/10.4067/S0718-07642006000200009 

 

Información Tecnológica-Vol. 17 N°2-2006, pág.: 61-69

ARTICULOS VARIOS

Proceso de Aprendizaje con Algoritmo Robusto para la Obtención del POSE de Objetos en Líneas de Ensamble con Robots en Tiempo Real (RT)

Learning Process using Robust Algorithm to Obtain Object POSE on Real Time Assembly Lines with Robots.

Mario Peña-Cabrera (1), Ismael López-Juárez (2) y Reyes Rìos-Cabrera (2)
(1) Univ. Nacional Autónoma de México, Inst. Investigaciones en Matemáticas Aplicadas y Sistemas,
Apdo. Postal 20-726, 04510 México D.F.-México (e-mail: mario@leibniz.iimas.unam.mx)
(2) CIATEQ A.C. Centro de Tecnología Avanzada, Av. Manantiales 23-A, 76246, El Marqués,
Querétaro-México. (e-mail: ilopez@ciateq.mx; reyes.rios@ciateq.mx)


Resumen

En el artículo, se presenta la metodología y el algoritmo utilizado para obtener posición y orientación en tiempo real (POSE) de objetos que van a ser ensamblados en línea y en procesos de manufactura robotizados. La información del POSE y características del objeto son integrados en un vector descriptivo que es utilizado por una red neuronal del tipo FuzzyARTMAP, para aprender del objeto y posteriormente reconocerlo y localizarlo. Se obtiene así un proceso de aprendizaje de la locación de piezas para su posterior reconocimiento y manipulación por el robot manipulador. Se presenta la explicación del algoritmo utilizado y su simulación en MatLab 5.0, con casos concretos de formas básicas de piezas de ensamble. Se presentan también resultados experimentales dentro de  una celda de manufactura con un robot de seis grados de libertad Kuka R15.

Palabras Claves: proceso de aprendizaje, algoritmo robusto, linea de ensamble, robót,  tiempo real


Abstract

In this paper, the methodology and algorithm used to obtain the POSE (position and orientation) of real objects on robotic assembly lines is showed as a practical case on industrial environments. The POSE information and the features of the object are integrated in a descriptor vector [CFD&POSE] to be used with a FuzzyARTMAP artificial neural network  to learn about assembly workpieces  and its location. A learning process of the location of the parts for future use by the robot is obtained. The paper shows the algorithm used and the simulation done in MatLab 5.0, with concrete cases of simple parts. It also shown the experimental results  obtained in a manufacturing cell with a Kuka R15 robot of six degrees of freedom.

Keywords: learning process, robust algorithm, assembly line, robot, real time


INTRODUCCION

El proceso de localizar y reconocer un objeto para realizar tareas de ensamble robotizado sin guías de ayuda fija en línea y dentro de una celda de manufactura inteligente, es un problema abierto a la investigación, ya que resultan obvias las ventajas que se tienen al utilizar robots en líneas de ensamble, y la automatización de procesos industriales (De Souza, 2002).

Para realizar operaciones autónomas de ensamble en procesos de manufactura, se requieren altos niveles de exactitud, robustez y velocidad de operación, para ello, las máquinas de visión son muy útiles usadas como capacidades sensoriales de robots, porque hacen posible cerrar la malla de control para el cálculo del POSE del efector final de un robot (Hutchinson, 1996), la importancia del tema queda demostrada en la aplicación que hacen Bone y Capson (2003) para el ensamble de componentes en línea en la industria automotriz en tiempo real.

El reconocimiento, seguimiento en tiempo real y la estimación del POSE de un objeto industrial utilizando métodos basados en características geométricas es mostrado por Yoon y De Souza (2003), en estas aplicaciones, la velocidad y la exactitud son factores primordiales y del orden de operación de milisegundos (cuadro de video comercial) y errores de estimación de milímetros; como una alternativa exitosa, los métodos basados en la utilización de características primitivas basadas en siluetas permiten satisfacer estos requerimientos (Miller et .al., 2003).

Existen númerosos enfoques en el área de procesamiento de imágenes para reconocer y localizar objetos como utilizar descriptores de códigos de cadenas (Bribiesca, 1999), utilizar características invariantes de siluetas (Aguado et. al., 2002) o técnicas de inteligencia artificial como redes neuronales para implementar sistemas de clasificación de patrones invariantes al escalamiento, traslación y rotación (Yüceer y Oflazer, 1993) y sistemas inteligentes de manufactura guiados por visión (Langley, et.al., 2003), por otro lado, mucho esfuerzo ha sido orientado al desarrollo de los efectores diestros montados en las terminales finales de los robots manipuladores (Bicchi y Kumar, 2001).

En el trabajo, se presenta un algoritmo que permite obtener el POSE de un objeto dentro de una línea de ensamble a partir de una imagen adquirida en tiempo real, se calcula el centroide, se realiza el reconocimiento del objeto y se calcula su orientación mediante un método novedoso que obtiene puntos críticos dentro de una imagen que representan los puntos frontera y el centroide del objeto; un conjunto de pares numéricos ordenados, es generado con el algoritmo, y forman la base para la formación de un vector descriptivo del objeto (Current Frame Descriptor), el cual es presentado a una red neuronal del tipo FuzzyARTMAP (Carpenter, 1991); la integración de estas operaciones representa un proceso de aprendizaje en línea.

Nuevos vectores caluclados con nuevas imágenes, representan la información aprendida cada vez mas refinada, obtienendo así, un proceso de aprendizaje incremental y gracias a la robustez y rapidez del modelo de red neuronal utilizado. Con la finalidad de hacer mas robusto el proceso en cuanto a condiciones de iluminación y rapidez, el método realiza un análisis del histograma 1D  para calcular los niveles de umbral en la escala de niveles de gris óptimos, para realizar segmentación de la imagen con diferentes condiciones de iluminación, el histograma 2D, permite obtener la región de interés utilizada haciendo el proceso de cálculo para generar el vector descriptivo del objeto con una resolución mas baja y en consecuencia más rápido, la integración del algoritmo con la red neuronal, hace al proceso substancialmente mas robusto y con características de invariancia a la traslación, rotación, escalamiento y para diferentes rangos de iluminación permitiendo su aplicación real en ambientes de procesos de manufactura.

METODOLOGIA

La Metodología que a contiuación se describe fue desarrollada para operar en una celda de manufactura flexible e inteligente, en donde el elemento central es un robot manipulador industrial KuKa KR15 de 6 grados de libertad (6dof), (figura 1).

Dentro de los límites de la celda, se realizan tareas de ensamble con piezas predefinidas, el proceso es implementado para integrar un sistema de visión que representa un modo sensorial para el robot dentro de su arquitectura general de funcionamiento en una red de control distribuido, las piezas utilizadas para la experimentación son piezas básicas diseñadas para tal motivo.

Fig. 1: Configuración general para la aplicación del sistema de visión, el vector descriptivo es proporcionado al robot manipulador.

El proceso inicia con la adquisición de la imagen en niveles de gris del objeto que se encuentra en la línea de ensamble, para minimizar el ruido de manchas en la imagen, se aplican operadores de erosión y dilación obteniendo una imagen más limpia del objeto en cuestión, posteriormente se obtiene la distribución en frecuencia de los niveles de gris en la imagen (histograma1D), para establecer los niveles de comparación que se utilizan con un “Operador Threshold” y segmentar la imagen para binarizarla dentro de cierto rango dinámico de iluminación.

 Con la finalidad de reducir el tiempo de procesamiento, el algoritmo que genera el vector descriptivo (CFD), se aplica únicamente sobre la región de interés (ROI) obtenida basándose en el histograma 2D; esto es: con el análisis del histograma 1D se obtienen los criterios de segmentación para hacer la imagen binaria, y con el histograma  2D para obtener información espacial de la distribución de grises en el objeto y reducir la resolución de la imagen. Sobre la ROI, se aplican luego nuevamente los operadores mencionados mejorando así la imagen para la extracción de las propiedades e información básica y llegar a obtener una Imagen Primitiva Binaria (PbinIm), la que sirve de base para obtener la información necesaria para el cálculo del POSE ; aplicando el algoritmo, se obtiene un conjunto de pares ordenados de puntos críticos en la imagen con los que se genera información del objeto conteniendo propiedades invariantes a la rotación, traslación y escalamiento así como el centroide de la superficie superior y orientación con referencia al punto NN (norte-norte) del objeto.

Esta información, se puede integrar en un vector CFDvector  que contiene la información necesaria para extraer propiedades de los modelos de las piezas utilizadas que se muestran en la figura 2.

Fig. 2: Modelos de piezas de ensamble: círculo, cuadro y semicuadro.

Histograma 1D y 2D

El histograma 1D, permite conocer la distribución de frecuencia de niveles de gris (Función de Densidad de Probabilidad) en una imagen; sea el modelo de una imagen:

                                                (1)

para un rango de niveles de gris de:

                                               (2)

donde Gl  es el nivel de gris de cada punto en la imagen esto es:

                       (3)

los métodos de histograma 1D, permiten establecer una selección de picos o valles mediante una estimación bayesiana de la función de densidad de probabilidad de los niveles de gris en la imagen o mediate un análisis numérico del histograma para obtener el nivel de comparación para segmentar la imagen (Sahoo et al.,1988); en nuestro caso, segmentar la imagen significa separar los elementos de interés para el calculo de propiedades paramétricas o no/paramètricas, según sea el caso, proporcionándonos la separación de segmentos deseables en la imagen que son la forma del objeto y el fondo, y una segmentación posterior que separa la parte para obtenciòn de la orientaciòn.

Por otro lado, tradicionalmente la optimización que se sigue para la obtención de los umbrales de comparación se basan en criterios apegados a la variancia y la entropía de la distribución de colores en la imagen, pero contemplan mayor consumo computacional en los procesos (Pun,1981) por lo que se sigue el método 1D,2D propuesto.

Si se tiene entonces una imagen en niveles de grises con MxN pixeles F(x,y), en donde los valores numéricos menores representan los colores más obscuros y los valores mayores los más claros, se puede obtener una función denominada “1D Thresholding Function” como sigue:

El histograma 2D, es utilizado para representar la probabilidad de la co-ocurrencia de dos valores de niveles de gris cuando sus pixeles correspondientes se encuentran separados a una distancia específica. Lo podemos definir como una matriz H2d que contiene informaciòn del nivel de gris de cada pixel y del nivel de gris promedio de la vecindad de un pixel dentro de la escala utilizada, esto es:

          (5)

donde MN son las dimensiones de la imagen, y en donde los valores promedios locales representan la información espacial, sin tener una representación del punto preciso de la información que refleja cada pixel, pero si permite tener una idea de la distribución espacial de los pixeles asociados a ciertas regiones en la imagen, base para obtener el criterio de la definición de la ROI (Ahuja et al,1978).

El valor del promedio local en una ventana de dimensiones pequeñas (2w+1)2 centrada en un pixel (x,y), se define como:

y así se obtiene una 2D Thresholding Function  f(T,S) definida como:

ALGORITMO  [CFD&POSE]

El algoritmo para generar el vector descriptivo que hemos llamado [CFD&POSE] se muestra a continuación y se ilustra mediante un ejemplo de una imagen de un cuadro con una resolución de 32x32 , en donde se muestra la imagen original (figura 3).

Fig. 3: Imagen original con resolucion de 32x32 para generar vector descriptivo del cuadro.

De la imagen original, se obtiene la estructura de datos para posteriormente y mediante el proceso antes indicado se determinen los umbrales de comparación para binarizar y obtener el ROI de la imagen ya binarizada (figura 4), se aplica luego el algoritmo [CFD&POSE] que utiliza una transformación que hemos llamado Matriz de Transformaciones de Peso con las operaciones siguientes :  aplicación de la transformación de matriz de factor de pesos (HWf), cálculo de los pares numéricos ordenados y obtención de los vectores Vx(m) y Vy(m), para con ello obtener los puntos frontera y el centroide de manera muy rápida.

Fig 4: Imagen binarizada.

Transformación de matriz de factores de pesos

Esta transfomación obtiene una matriz con valores numéricos distribuidos en la imagen de acuerdo a su peso y partiendo de una imagen binaria, cada número esta relacionado con un par de coordenadas para establecer su localización, el número de peso se define como:

donde :

    (8)

                                                          

donde k=3 y se obtienen números entre:

                                              (9)

se obtiene así, la imagen mostrada en la figura 5,  que es la transformación de la imagen binaria a una imagen con los pesos representativos del centroide y contorno; de la colección de números, se encuentra que la mediana de los Nwfmax nos proporcionan el centroide del objeto y los NWf min los puntos extremos del contorno del objeto.

Fig. 5: Imagen con pesos representativos para centroide y puntos frontera.

 

Cálculo de los pares numéricos ordenados y obtención de vectores Vx(m) y Vy(m)

A continuación se muestra el algoritmo para el cálculo de los pares numéricos de coordenadas y los vectores Vx(m) y Vy(m), el recorrido de la imagen se hace de izquierda-derecha y de arriba-abajo:

i) Encuentra un número diferente de cero y guardalo como minimo.

ii) Almacena coordenadas X,Y en vectores Vx (m) y Vy (m).

iii) Avanza, si nuevo número mayor que el anterior guardalo como máximo y conserva el mínimo.

iv) Avanza, si nuevo número mayor que el mayor almacenado guardalo como mayor y si menor que el menor almacenado guardalo como menor.

v) Almacena el mínimo de mínimos y el máximo de máximos asi como el posible número de ellos.

vi) Aplicación de la transformación de matriz de factor de pesos (HWf)

vii) Cálculo de los pares numéricos ordenados y obtención de vectores Vx (m) yVy (m).

viii) Obtención de puntos frontera y centroide.

ix) De entre el número de máximos, obten las coordenadas de la mediana de las coordenadas relacionadas.

x) Obtención de puntos frontera y centroide.

Aplicando el algoritmo, los vectores que contienen las coordenadas X,Y de los puntos del contorno se van acumulando en vectores que hemos llamado:

       (10)

Para el caso de la imagen mostrada de un ROI de 32x32, los puntos del contorno son para el eje de las X´s:

Vector(Xm)=

{15,18,14,19,13,20,12,21,11,22,9,23,24,9,24,10,24,11,23,12,22,13,21,20,14,19,15,18}

y para el eje de las Y´s:

Vector(Ym)=

        { 9,9,10,10,11,11,12,13,14,14,15,16,17,18,18,,19,20,20,22,22,23,23,24,25,25,25,26,26}

el cálculo del centroide se hace acumulando    todos los puntos máximos para las X-Y´s y escogiendo la mediana como sigue:

   (11)

 

y para el ejemplo, el centroide se encuentra en (ver fig.3):

Cxy(xc,Yc)=(16,17)                                       (12)

Las coordenadas del contorno son en el ejemplo: Contor = {(15,9), (18,9),...,(18,26) }; teniendo las coordenadas de los puntos frontera y las del centroide, se calculan las distancias frontera <centroide-puntos> entre ellos con un orden y número definidos, el orden es en el sentido de las manecillas del reloj (CW) y el número de puntos lo define el tamaño de la rejilla angular <RƏ> utilizada; se obtiene así, una funcion de los puntos frontera que hemos llamado Boundary Object Function (BOFpieza) con:

          (13)

La BOF para el cuadro se muestra en la figura 6

Fig. 6: Gráficas de BOFcuadro,

VECTOR DESCRIPTIVO [CFD&POSE]

El vector descriptivo se forma con las distancias previamente calculadas, que se normalizan para tener independencia del escalamiento; previamente se define una rejilla/angular {RƏ} de tamaño N para obtener la función de puntos frontera BOFpieza que se normaliza a N puntos, cada uno de estos puntos en la rejilla angular representa los grados que forman el incremento angular para cada paso normalizado. Una posición angular de la rotación del objeto de 180º representa un movimiento de 90 pasos en la rejilla angular en el sentido CW.

Las distancias que forman parte del vector descriptivo [CFD&POSE] se codifican en BCD[eeee.ffff] y son 180 elementos, la orientación en 8 posiciones, la ultima parte del vector, contiene lo que hemos llamado ID/clues siendo 8 con 4 bits cada uno, estos proporcionan información de la geometría del objeto contribuyendo a un reconocimiento mas robusto y se codifican dependiendo de la aplicación; un ejemplo de ID/clues utilizados son:

ID/clue0 ® Distancias iguales { eqd0 }

ID/clue1 ® Distancias mín. iguales {eqmind}

ID/clue2 ® Dist. máx. iguales{eqmaxd}

ID/clue3 ® Dif. Prom. de (eqmaxd-eqmind)

ID/clue4 ® Esquinas

ID/clue5® Secuencia de formas básicas {cuadro(0),circulo(1),triangulo(2),...}

Quedando para el caso del ejemplo del cuadro un vector descriptivo como el siguiente: 

RESULTADOS EXPERIMENTALES

Se preparó un área de trabajo con una cámara progresiva y sistema para obtener diferentes ambientes de iluminación, se instalaron los algoritmos CFD y las rutinas de adquisición de imágenes en una computadora PC para implementar el sistema de visión, la figura 7, se muestra la celda de trabajo en donde se realizaron los experimentos.

En una banda transportadora con que cuenta la celda de manufactura, se colocaron los objetos manufacturados de acuerdo a los modelos de pieza descritos anteriormente (círculo,cuadro y semicuadro), se adquirieron las imágenes de los objetos a un comando de petición del robot manipulador elemento central de la celda de manufactura y se obtuvieron los vectores descriptivos en línea y las funciones Boundary Object Function(BOF) para los tres tipos diferentes de piezas mostradas en la figura 2.

Con las funciones BOF, se entrenó a un modelo de red neuronal artificial del tipo FuzzyARTMAP y luego se probó su clasificación, las piezas fueron presentadas para diferentes localizaciones, rotaciones y escalamientos, siempre con una altura constante (z=fija), (tabla 1).

El entrenamiento se realizó presentando los objetos al sistema de visión con diferentes localidades e inclinaciones; para el reconocimiento en línea, se presentaron de igual forma en la banda transportadora los objetos con diferentes tamaños y posiciones rotadas, trasladadas e inclinadas hasta ángulos de 35 grados y en diferentes ambientes de iluminación controlados por fuentes de luz variables (figura 8).

Fig. 7: Celda de trabajo con sistema de visión.

Tabla 1. Distribución de las piezas de trabajo para el experimento y codificación
para clasificación con la red neuronal.

f angúlo rotado

  0

  45

  90

135

180

225

270

315

360

72 patrones circulares

x

x

x

x

x

       

72 patrones cuadrados

x

x

x

x

         

72 patrones combinados

x

x

x

x

x

x

x

x

 

total: 216 patrones

                 

Codificación para clasificación neuronal

1000=

Circulo

1100=

Cuadro

1010=

Combinado

Al final del proceso, el sistema obtiene una familia de vectores descriptivos [CFD&POSE] para cada pieza utilizada en el experimento, que contiene la información de la identificación de la pieza de trabajo, su posición y orientación (figuras 9a, 9b y 9c).

Para probar la robustez del algoritmo, la red neuronal fue entrenada primeramente con 2808 diferentes patrones y su capacidad de aprendizaje fue analizada.

Fig. 8: Piezas presentadas para ser reconocidas, rotadas, trasladadas y escaladas a diferentes ángulos de inclinación.


Fig. 9a: Curvas de familias [CFD&POSE] para el cuadro.


Fig. 9b: Curvas de familias [CFD&POSE] para el círculo.

Los resultados del porcentaje de reconocimiento y el número de neuronas generados  se muestran en la figura 10, se observa como el sistema aprendió los patrones en 3 épocas creando solamente 32 neuronas para clasficar 2808 patrones; el tiempo promedio de entrenamiento con el algoritmo implementado es de 4.42 ms. y el promedio para prueba y reconocimiento es de 1.0 ms.

Fig. 9c: Curvas de familias [CFD&POSE] para el combinado.


Fig. 10: Convergencia de aprendizaje de la red neuronal con el algoritmo [CFD&POSE].

CONCLUSIONES

Con estos patrones de entrenamiento, el sistema fue capaz de clasificar correctamente el 100% de las piezas presentadas en línea, aún cuando fueron de diferente tamaño, rotadas o trasladadas y para diferentes condiciones de iluminación, una metodología novedosa, para el reconocimiento y estimación del POSE de  componentes de ensamble en celdas de manufactura se ha desarrollado, utilizando un algoritmo robusto e invariante a la rotación, escalamiento y traslación, así como a la iluminación dentro de ciertos rangos; el código fue programado en MatLab 5.0 para realizar las simulaciones, la experimentacion real se realizó programando el algoritmo en Visual C++ 6.0 y utilizando una celda de manufactura inteligente que tiene como elemento central un robot KuKa KR/15 interactuando con un sistema de vision configurado con una cámara progresiva PULNIX 6710 CCD/BW.

Los resultados, muestran la factibilidad de utilizar el método para mandar información de posicionamiento y reconocimiento en tiempo-real a un robot manipulador para realizar tareas de ensamble; de las mediciones experimentales, se observó un error en la precision de posición de ± 3 mm. y ± 9 grados de error en el ángulo de orientación, esta información fue utilizada en línea por el robot manipulador.

El manipulador pudo recoger las piezas dentro de los límites de su tolerancia de funcionamiento con experimentos integrales del ensamble de las 3 piezas y en un modo “peg-in-hole”.

REFERENCIAS

Aguado, A., S.E. Montiel y M. Nixon, “Invariant characterization of the Hough Transform for pose estimation of arbitrary shapes”, Pattern Recognition, vol 35, 1083-1097, Pergamon (2002).        [ Links ]

Ahuja, S. y A. Rosenfeld, “A note on the use of second-order grey scale-level statistics for thresholding selection”, IEEE Trans. Systems Man Cybernet. 8, 897-898. (1978).        [ Links ]

Bicchi, A. y V. Kumar. “Robotic grasping and manipulation” , Articulated and mobil robots for services and technology, volume 270, chapter 4, 55-74. Springer Verlang, Germany (2001).        [ Links ]

Bone, G.M. y D. Capson, “Vision-guided fixtureless assembly of automotive components”, Robotics and Computer Integrated Manufacturing 19, 79-87. Pergamon, Elsevier Science LTD. (2003).        [ Links ]

Bribiesca, E. “A new chain code”, Pattern Recognition, vol 32, Pergamon 235-251, (1999).        [ Links ]

Carpenter, G.A., S. Grossberg y J.H. Reynolds, “ARTMAP: Supervised Real-Time Learning and Classification of Nonstationary Data by Self-Organizing Neural network”, Neural Networks. pp. 565-588, (1991).        [ Links ]

De Souza, G.N. y A. C. Kak, “A subsumptive hierarchical and distributed vision-based architecture for smart robotics” IEEE transacttions on Robotics and Automation, (2002).        [ Links ]

Hutchinson, S., G.D. Hager y P.I. Corke,“A tutorial on visual servo control”, IEEE transactions on robotics and automation”, 12(5), pp.651-670, (1996).        [ Links ]

Langley, C.S. y D. Eleuterio, “A memory efficient neural network for robotic pose estimation”, Proceedings of the 2003 IEEE International Symposium on Computational Inteligence in Robotics and Automation, No. 1, 418-423, IEEE CIRA, (2003).        [ Links ]

Miller, S., J. Knoop, H. Christensen y P. Allen, “Automatic grasp planning using shape primitives”, Proceedings of the 2003 IEEE International Conference on Robtics Automation, Taipei, Taiwa, September 14-19, 1824-1829, (2003).        [ Links ]

Pun, T., “Entropic Thresholding: A new Approach”, Computer Vision Graphics Image Proccesing, 16, 210-239, (1981).        [ Links ]

Sahoo, P.K., S. Soltani y A.K.C. Wang, “A survey on thresholding techniques”, Computer Vision Graphics Image Processing, 41, 233-260, (1988).        [ Links ]

Yoon,Y., G. De Souza y A. Kak, “Realtime tracking and Pose estimation for industrial objects using geometric features”, Proceedings of the 2003 IEEE International Conference on Robotics Automation, Taipei, Taiwa, September 14-19, pp.3473-3478,(2003).        [ Links ]

Yüceer, C. y K. Oflazer, “A rotation, scaling and translation invariant pattern classification system”, Pattern Recognition, vol 26, No.5 pp.687-710, (1993).        [ Links ]