XXIII Encontro Nac. de Eng. de Produção - Ouro Preto, MG, Brasil, 21 a 24 de out de 2003 Sistema de Reconhecimento de Peças para Robô Manipulador utilizado em Células de Montagem Automatizada - Estudo de caso Mário Luiz Tronco (UNESP) [email protected] Arthur José Vieira Porto (USP) [email protected] Resumo Este artigo apresenta um Sistema de Reconhecimento de Padrões, o qual pode ser utilizado em aplicações de classificação de peças em tarefas de montagem automatizada. O sistema, baseado em Redes Neurais, utiliza coarse coading e pode ser implementado em uma máquina paralela de baixo custo. O uso de codificação coarse reduz o volume de processamento necessário para o reconhecimento de peças em um sistema de montagem automatizada e a máquina paralela de baixo custo acelera o processo de reconhecimento. Resultados experimentais de classificação de peças, obtidos utilizando o sistema são apresentados. Palavras chave: Redes Neurais Artificiais, Visão de Robô, Montagem Automatizada. 1. Introdução As tendências de mercado atuais apontam para a competição internacional acirrada, através de grande diversidade de produtos com pequeno ciclo de vida, aliados à redução de tempo de entrega e incremento de requisitos de qualidade. Além destes desenvolvimentos relacionados ao mercado, os desenvolvimentos tecnológicos também desempenham um papel determinado, oferecendo novas oportunidades para otimizar custos, qualidade e tempo de entrega. Tais desenvolvimentos tecnológicos englobam ainda conceitos de tecnologia de informação, novas estratégias de desenvolvimento, novas técnicas de processamento, além da viabilidade de sistemas flexíveis de manufatura. A implementação de novas tecnologias na manufatura é uma estratégia multidimensional (CAMARINHA-MATOS et al., 1996) já que tem com conseqüências: aumento na uniformidade de produção, redução de custos e variabilidade de produtos, eliminação de atividades de risco, além da utilização de recursos humanos em trabalhos que envolvam maior uso de capacidade intelectual e menor esforço físico. As empresas tem que se ajustar (adequar) a este mercado e aos desenvolvimentos tecnológicos, de uma maneira específica que é determinada pelos seus próprios objetivos e pela sua estratégia. Sob a influência dos desenvolvimentos externos, os objetivos das empresas podem, em geral, ser divididos em: alta flexibilidade, alta produtividade, qualidade de produto alta e constante, pequenos tempos de entrega e baixos custos de produção. A otimização destes fatores competitivos normalmente resulta em maiores lucros. Para alcançar este objetivo, a maioria das empresas busca a aplicação de tecnologias avançadas de produção, controle de qualidade e melhoria das condições de trabalho. Em relação ao desenvolvimento de produto e produção, pode-se fazer a seguinte subdivisão de estratégias, a qual envolve: Produto: Design for Manufacturing/Assembly DFM/DFA), pequeno tempo de desenvolvimento, desenvolvimento mais freqüente de novos produtos, integração de funções para minimização do número de peças, miniaturização e padronização; Processo: Melhor Controle, ciclos com menores tempos e estoque mínimos; Sistema de Produção: Uso de componentes de sistemas modulares, universais e confiáveis, alta flexibilidade de sistema (em ENEGEP 2003 ABEPRO 1 XXIII Encontro Nac. de Eng. de Produção - Ouro Preto, MG, Brasil, 21 a 24 de out de 2003 relação à diminuição do tamanho dos lotes e crescente variação de produtos) e integração total do produto no sistema de produção. Dentro deste contexto, a utilização de sistemas robotizados oferece boas perspectivas para a racionalização das atividades de montagem. Exceto pela complexidade do projeto do produto e do processo, o desempenho de sistemas de montagem robotizada é também determinado pelo grau de sincronização entre o sistema de montagem e a manufatura de peças, a flexibilidade da garra e do equipamento periférico, assim como pela configuração do sistema (RAMPERSAD, 1995). 2. Automação do Processo de Montagem A montagem, uma das principais aplicações de robôs, situa-se numa área onde a automação total é rara, devido aos altos custos envolvidos, além de existirem poucos sistemas comerciais implementados com êxito. A evolução de sistemas mecânicos de montagem, os quais baseiam-se em tarefas simples e repetitivas de manipulação, com alto grau de tolerância, num meio cuidadosamente controlado, leva aos sistemas de montagem automatizada. Tais sistemas, de montagem automatizada, empregam visão artificial para trabalhar com problemas relacionados à tolerância das peças, peças defeituosas, além de erros de posicionamento das mesmas (DAVIES & GILL, 1993). Para que um determinado sistema de montagem automatizada, baseado em robô, seja adequado às necessidades da indústria, o requisito básico é que ele deve desempenhar as habilidades de um operador humano, tais como a manipulação precisa, identificação rápida de defeitos, etc., além de desempenhá-las a baixo custo. A abordagem utilizada até poucos anos atrás era a de que o robô era uma máquina ferramenta numericamente controlada ou um determinado dispositivo periférico atuando de forma isolada e eram programados para realizar uma determinada tarefa ou uma seqüência específica de tarefas com realimentação apenas de baixo nível de sensores externos. Esta abordagem não é mais adequada devido à interdependência de requisitos mecânicos, eletrônicos e computacionais de máquinas controladas por computador, as quais utilizam sensoreamento interativo. Numa nova abordagem, sistemas inteligentes vêm sendo pesquisados e desenvolvidos, os quais podem operar em meios estruturados e não estruturados, através do uso de mecanismos avançados de realimentação sensorial, e tomando decisões usando algoritmos de aprendizado e raciocínio. Experiências práticas têm demonstrado que alguns gargalos colocam-se ainda como obstáculos nas aplicações de sistemas de montagem robotizada. Eles incluem: alta complexidade de produto e processo, baixa qualidade das peças do produto, assim como dependência do produto em relação aos equipamentos periféricos. Desenvolvimentos na automação da montagem incluem a utilização de técnicas de Redes Neurais Artificiais e Visão Artificial, em conjunto com sistemas de montagem automatizada (SONG & CHANG, 1996; CAMARINHA-MATOS et al., 1996, TZAFESTAS & STAMOU, 1997, SHARMA & SRINIVASA, 1998, FELDMANN & COLOMBO, 1998). 3. Sistema de Reconhecimento de Peças para Robô de Montagem O Sistema de Reconhecimento de Peças, analisado neste artigo, foi implementado utilizando Redes Neurais Artificiais, para uso em Robôs empregados em operações de montagem automatizada. A principal característica apresentada pelo sistema é a de Invariância Geométrica, possibilitando ao mesmo trabalhar com imagens com transformações de translação, escala e rotação em relação às imagens previamente aprendidas, além de trabalhar com imagens ruidosas. A figura 1, a seguir, mostra o sistema implementado. ENEGEP 2003 ABEPRO 2 XXIII Encontro Nac. de Eng. de Produção - Ouro Preto, MG, Brasil, 21 a 24 de out de 2003 Montagem Automatizada Módulo de Segmentação /Extração de Características Módulo de Reconhecimento Aquisição Câmera Robô de Montagem Pré - Processamento Imagem Digitalizada Módulo de Aquisição de Dados Figura 1. Sistema de Reconhecimento de Peças para Robô de Montagem. Os módulos de Aquisição de Dados e de Segmentação/Extração de Características não serão detalhados neste artigo por envolverem apenas operações básicas nas imagens (leitura de Frame Grabber, Filtragem e Binarização da imagem). O módulo de Reconhecimento, que será detalhado neste trabalho, foi implementado utilizando a abordagem de Normalização dos Padrões (YUCEER & OFLAZER, 1993), em conjunto com uma técnica de redução de dados da imagem original, a qual envolve a geração de coarse coading (SPIRKOVSKA & REID, 1993). Tal módulo é composto por dois sub-módulos: Sub-módulo Pré-Processador e SubMódulo Classificador. 3.1 Sub-Módulo Pré-Processador O sub-módulo Pré-Processador tem como objetivo proporcionar correções de rotação, escala e translação antes do processo de classificação, proporcionando características de invariância geométrica ao sistema (YUCEER & OFLAZER, 1993). A figura 2, a seguir, mostra a estrutura do Sub-Módulo de Pré-Processamento e imagens resultantes após processamento. Imagem Original Bloco de Escala Bloco de Translação Bloco de Rotação Imagem de Saída Imagem de Entrada Sub-Módulo de Pré-Processamento Bloco de Translação Bloco de Transformação de Escala Bloco de Rotação (a) (b) Figura 2. Sub-Módulo de Pré-Processamento (a) e Imagens Resultantes do Sub-Módulo (b). O Bloco de Rotação mantém invariância rotacional, o Bloco de Escala mantém invariância às modificações de escala e o Bloco de Translação mantém invariância translacional. A ordem na qual o blocos são cascateados é determinada pelas dependências funcionais entre os blocos, sendo o primeiro bloco o de translação, seguido pelo de escala e finalmente pelo de rotação. Como as operações na escala e de rotação necessitam de um ponto ENEGEP 2003 ABEPRO 3 XXIII Encontro Nac. de Eng. de Produção - Ouro Preto, MG, Brasil, 21 a 24 de out de 2003 (pivô) apropriado, o Bloco de Translação é posicionado antes dos dois outros blocos. A origem da imagem de saída deste bloco será o ponto pivô para os blocos de Escala e Rotação. Para a implementação do Bloco Translação foi utilizada a seguinte formulação: Seja P o número de pixels "1" na imagem, N N (1) P = ∑ ∑ f ( xi , y j ) i =1 j =1 O Centro de Gravidade (xav,yav) será dado por: x av = 1 N ∑ P i =1 N ∑ f (x , y j =1 i j ).xi , y av = 1 N ∑ P i =1 N ∑ f (x , y j =1 i j ). y j (2) onde f(x,y) fornece o valor do pixel para as coordenadas (x,y), ou seja, 0 ou 1. A função de mapeamento, para que a invariância translacional possa ser obtida é dada por: f T ( xi , y j ) = f ( xi + xav , y j + yav ) (3) O bloco de Escala mantém a invariância (de escala) modificando a escala da imagem de entrada (proveniente do bloco de translação) de tal maneira que o raio médio para os pixels "1" seja igual a uma fração pré-determinada da grade, ou seja, qualquer que seja o tamanho da figura presente na imagem de entrada, ela será remapeada para uma imagem de saída do bloco, a qual conterá a figura da imagem de entrada com um tamanho igual a uma fração da grade. Neste trabalho, esta fração foi fixada em um quarto do tamanho da grade (128/4). O raio de um determinado pixel é definido como o tamanho da reta que o liga à origem (ponto central da grade). Assim, o raio médio pode ser calculado como segue. N N 1 (4) rav = N N ∑ ∑ f T (xi , y j ). (xi2 + y 2j ) ∑ ∑ f T (xi , y j ) i =1 j =1 i =1 j = 1 O fator de escala, s, é calculado como: (5) r s = av R onde R é a fração da grade (128/4 neste trabalho). A função de mapeamento, ou seja, aquela que produz a nova imagem, com a figura original com sua escala modificada, é mostrada a seguir. f TS ( xi , y j ) = f T ( s. xi , s. y j ) (6) Através desta equação, os pixels da imagem de saída são mapeados levando em conta os pixels correspondentes na imagem de entrada (proveniente do bloco de translação). Assim, um pixel da imagem original pode gerar um conjunto de pixels na imagem de saída (no caso de aumento de tamanho da imagem original). Por outro lado, diversos pixels da imagem de entrada podem dar origem a um número menor de pixels ou mesmo um único pixel da imagem de saída (no caso de redução de tamanho da imagem original). O bloco de rotação mantém invariância rotacional rotacionando a imagem de tal maneira que a direção de máxima variância coincida com o eixo x. Esta transformação, baseada na transformação de Karhunen-Loéve utiliza os seguintes conceitos [1]: dado um conjunto de vetores, o eigenvector que corresponde ao maior eingenvalue da matriz covariância calculada do conjunto de vetores, aponta para a direção de máxima variância. Tal propriedade pode ser utilizada para manter invariância rotacional já que a detecção da direção de máxima variância também revela o ângulo de rotação. Utilizando-se vetores 2D formados pelas coordenadas dos pixels "1" na imagem, os eigenvalues podem ser calculados como segue . Sendo: ENEGEP 2003 ABEPRO 4 XXIII Encontro Nac. de Eng. de Produção - Ouro Preto, MG, Brasil, 21 a 24 de out de 2003 mx m = y N 1 N N xi j =1 (7) ∑ ∑ f TS (xi , y j ) y j N ∑ ∑ f TS (xi , y j ) i =1 i =1 j = 1 P= N ∑ Txx = (8) i =1 N (9) ∑ f TS (xi , y j ) ∑ f TS (xi , y j ).xi2 i =1 j =1 N N (10) i =1 j =1 N N (11) ∑ ∑ f TS (xi , y j ). y 2j ∑ ∑ f TS (xi , y j ).xi y j Tyy = Txy = N i =1 j =1 A matriz covariância pode então, após simplificações, ser definida como: N 1 C=( N N xi xi ∑ ∑ f TS (xi , y j ) i =1 T mx mx ) - my my ∑ ∑ f TS (xi , y j ) x y j y j N j =1 (12) T i =1 j =1 Como foi mantida a invariância à translação nos blocos anteriores, mX e mY são zero. Após eliminar o termo médio antes da matriz, a matriz covariância torna-se: (13) Txx Txy C= Txy Tyy Levando em consideração as simplificações realizadas, os valores de seno e coseno do ângulo de rotação da figura presente na imagem de entrada (imagem de saída do bloco de escala) podem ser definidos como segue. 2 (14) ( Tyy − Txx ) + (( Tyy − Txx ) + 4. Txy2 ) sen θ = cosθ = (8. Txy2 + 2.( Tyy − Txx ) 2 + 2.( Tyy − Txx ) (( Tyy − Txx ) 2 + 4 Txy2 ) ) (15) 2. Txy ) (8. Txy2 2 2 + 2.( Tyy − Txx ) + 2.( Tyy − Txx ) (( Tyy − Txx ) + 4 Txy2 ) ) Em função destes valores, de seno e coseno, a função que faz o mapeamento da imagem de entrada para a imagem de saída, do bloco de rotação, pode ser descrita como segue. f TSR ( xi , y j ) = f TS (cosθ . xi − senθ . y j , senθ . xi + cosθ . y j ) (16) 3.2 Sub-Módulo Classificador O Sub-Módulo Classificador, cuja função é a classificação das imagens resultantes do sub-módulo de Pré-Processamento, é composto por um bloco codificador (gerador de coarse coading) e um bloco de reconhecimento, baseado em uma Rede Neural, como mostrado na figura 3. Campos Coarse Geração de Coarse Coading Rede Neural Vetor Imagem Figura 3. Sub-Módulo Classificador. ENEGEP 2003 ABEPRO 5 XXIII Encontro Nac. de Eng. de Produção - Ouro Preto, MG, Brasil, 21 a 24 de out de 2003 O algoritmo de coarse coading utiliza campos sobrepostos para representar um campo de entrada composto de pixels menores. Esta técnica funciona de forma análoga aos campos da retina, os quais permitem uma hiperacuracidade controlada. A figura 4, a seguir, mostra exemplos da geração de coarse coading. Figura 4. Geração de Coarse Coading. Os campos gerados através de coarse coading, para cada imagem, são apresentados à Rede Neural para treinamento. Para teste do sistema proposto, as imagens geradas pelo gerador de Coarse Coading foram utilizadas para treinamento de uma Rede Neural Multilayer Perceptron com Backpropagation. Os resultados experimentais obtidos são mostrados a seguir. Testes utilizando Multilayer Perceptron com Backpropagation Foram realizados testes utilizando Backpropagation em uma estrutura empregando 256 neurônios na camada de entrada, 12 neurônios na camada intermediária e 15 na camada de saída, como mostrado na figura 5, a qual mostra também os resultados experimentais obtidos. 1.0 % erro S A I D A S 0.8 0.7 0.6 0.5 0.4 0.3 (a) 0.2 0.1 10 20 30 40 50 60 70 80 tempo (b) Figura 5. Configuração com Backpropagation (a). Erro médio obtido durante a fase de teste utilizando Backpropagation (b). 4. Implementação paralela O sistema desenvolvido foi projetado para ser implementado na Arquitetura CPAD (OSHIRO, 1998), a qual utiliza processadores TMS320C40. Este processador oferece bom desempenho de processamento, canais paralelos de comunicação e uma estrutura de multibus interna. A principal vantagem de seu uso em relação às soluções baseadas em FPGA´s são a acuracidade numérica e programabilidade, associados a um núcleo de ponto flutuante de alto desempenho (DICK & HARRIS, 1998). Outra característica que contribui para seu alto desempenho é o pipeline associado à concorrência de operações de entrada/saída e da CPU. Uma estrutura composta por diversos ´C40 conectados em paralelo apresenta desempenho apropriado para as tarefas relacionadas às operações de montagem automatizada utilizando visão artificial. A presença de bus interno múltiplo, Coprocessador DMA, seis portas de ENEGEP 2003 ABEPRO 6 XXIII Encontro Nac. de Eng. de Produção - Ouro Preto, MG, Brasil, 21 a 24 de out de 2003 comunicação e um conjunto de instruções que contém níveis de paralelismo possibilita a ocorrência de múltiplas operações simultâneas (HARVEY et al., 2001). A implementação paralela do Sistema de Reconhecimento de Padrões proposto pode ser realizada através da utilização da Arquitetura CPAD, com a disposição de barramentos distintos, como mostrado na figura 6. Canais dedicados de comunicação entre ´C40 filhos ´C40 Câmera Barramento PC ISA ´C40 ´C40 ´C40 ´C40 Figura 6. Sistema de Reconhecimento de Padrões utilizando a Arquitetura CPAD (OSHIRO, 1998). Paralelização do Sistema O uso da arquitetura CPAD para a aceleração do processo de reconhecimento das imagens ocorre em dois momentos diferentes: primeiro no sub-módulo pré-processador e depois no sub-módulo classificador. Em ambos casos, o uso do conjunto de processadores 'C40 ocorre através de um processo de particionamento dos dados pelo processador pai, que os envia aos filhos, que fazem o processamento de fato. No sub-módulo pré-processador, o paralelismo acontece em quatro pontos do processamento, mais precisamente na determinacão do centro de gravidade (equação 2), da função de mapeamento (equação 3), do raio médio (equação 4) e dos componentes da matriz covariância (equações 7 a 11). Em todos os casos o volume de processamento necessário é da ordem do número de pixels da imagem (ou N2, para imagens NxN). Assim, mesmo considerando-se um pequeno número de operações para cada iteração (algo entre 3 operações para o cálculo da função de mapeamento e 13 operações para a matriz de covariância), tem-se um ganho acentuado de velocidade quando se particiona uma imagem de 16384 pixels (128x128), que geraria no mínimo cerca de 50000 operações aritméticas, em conjuntos de 1024 pixels para uma máquina com 16 ‘C40 filhos. Essa aceleração se torna ainda mais significativa para imagens mais reais, de 256x256 ou 512x512 pixels, que necessitariam executar cada ciclo respectivamente por 65536 e 262144 vezes. Como cada ciclo tem um comportamento regular e é repetido por um número de vezes que é potência de dois, assim como o número esperado de processadores filhos, então é possível acelerar um pouco mais o processamento através do desdobramento do ciclo mais interno, que executaria em cada iteração um número maior de operações, aqui definidas como oito. Assim, em vez de cada processador executar 1024 iterações (no caso de 16 ‘C40 e imagens de 128x128), teríamos apenas 128 iterações, reduzindo o total de instruções de máquina executadas para o controle da execução do ciclo. Do outro lado, o paralelismo do sub-módulo classificador aparece na forma adotada para a classificação de uma imagem pela rede neural. Como cada imagem original gera oito campos coarse, o processo de reconhecimento é feito por eleição, isto é, a imagem é identificada como sendo a que mais vezes foi indicada pela rede neural a partir dos campos coarse. Assim, aqui o paralelismo usa cada processador ‘C40 para realizar a classificação de um dos campos coarse. O aparente desperdício de metade dos processadores ‘C40, considerando-se a arquitetura de 16 processadores até agora mencionada, pode ser facilmente compensado pelas características de concorrência dos mesmos. Desse modo, como a operação de pré-processamento é sensivelmente mais rápida, pode-se fazer com que metade dos processadores fiquem dedicados ao pré-processamento e a outra parte ao trabalho das redes ENEGEP 2003 ABEPRO 7 XXIII Encontro Nac. de Eng. de Produção - Ouro Preto, MG, Brasil, 21 a 24 de out de 2003 neurais. Isso cria uma estrutura de pipeline em que, enquanto as redes neurais classificam uma primeira imagem usando metade dos ‘C40, a outra metade dos processadores estaria fazendo o pré-processamento de uma segunda imagem, permitindo então que o sistema pudesse controlar duas (ou mais) estações de montagem automatizada. 5. Conclusões O sistema implementado, como mostrado, pode trabalhar com imagens que sofreram alterações (transformações) em relação ao formato originalmente aprendido (ensinado à Rede Neural) e também com imagens degradadas (ruidosas). O uso de coarse coading proporcionou uma técnica bastante eficaz de redução de dados, permitindo ao sistema trabalhar com imagens da ordem de 256x256, 512x512 ou mesmo 1024x1024 pixels, habilitando-o à manipulação de peças de geometrias variadas com alto grau de sofisticação. Foram apresentados resultados experimentais de reconhecimento de peças utilizando configurações diferentes de Redes Neurais, os quais mostraram uma alta taxa de acerto. Apresentou-se a Arquitetura CPAD, a qual é apropriada para a implementação paralela do sistema, e foi feito um estudo das atividades a serem paralelizadas e o potencial ganho desta estratégia. Pode-se concluir que a implementação do sistema na Arquitetura CPAD deve acelerar substancialmente tanto o pré-processamento quanto à classificação, permitindo também o controle de mais do que uma estação de montagem, separando-se os processadores em grupos dedicados a cada um dos sub-módulos. A continuação deste trabalho envolverá testes com a Arquitetura CPAD em tarefas reais de reconhecimento de padrões, em uma estação de montagem automatizada. Referências CAMARINHA-MATOS, L. M.; LOPES, L. S.; BARATA, J. (1996). Integration in supervision of Flexible Assembly Systems. IEEE Tansactions on Robotics and Automation, vol 12, n. 2. DAVIES, J. L.; GILL, K. F. (1993). Machine Vision and Automated Assembly. Mechatronics, Vol 3, n.4. DICK, C.; HARRIS, F. (1998). Virtual signal processors. Microprocessors and Microsystems. vol 22, pp 291292. FELDMANN, K.; COLOMBO, A. W. (1998). Material flow and control sequence specification of flexible production systems using coloured Petri nets. International Journal of Advanced Manufacturing Technology, vol 14, n. 10, 1998, p 760-774. HARVEY, D. M.; KSHIRSAGAR, S. P.; HOBSON, C. A. Low cost scaleable parallel image processing system. Microprocessors and Microsystems, Vol 25 (2001) 143 - 157. OSHIRO, O. T. "Uma arquitetura paralela para o controle de máquina-ferramenta de ultra precisão. Tese de Doutorado. Escola de Engenharia de São Carlos. Universidade de São Paulo - EESC - USP, 1998. RAMPERSAD, H.K. (1995). State of the art in robotic Assembly. Industrial Robots, vol 22, n. 2. SHARMA, R.; SRINIVASA, N. (1998). Framework for active vision-based robot control using neural networks. Robotica, vol 16, n. pt 3, May-Jun 1998, p 309-327. SONG, K. T.; CHANG, J. M. (1996). Experimental study on robot visual tracking using a neural controller. Industrial Electronics Conference, vol 3. SPIRKOVSKA, L.;REID, M. B. "Coarse Coading Higher-Order Neural Networks for PSRI Object Recognition", IEEE Transaction on Neural Networks, Vol 4, Nr. 2, 1993. TZAFESTAS, S. G.; STAMOU, G. B. (1997). Concerning automated assembly: Knowledge-based issues and a fuzzy system for assembly under uncertainty. Computer-Integrated-Manufacturing-Systems, vol 10, n. 3, p 183-192. YUCEER, C.; OFLAZER, K. "A rotation, scaling and translation invariant pattern classification system", Pattern Recognition, Vol. 26, Nr. 5, 1993. ENEGEP 2003 ABEPRO 8