Aplicação de Redes Neurais Artificiais e Algoritmos Genéticos na Resolução da Cinemática Inversa de um Manipulador Robótico com 5 graus de liberdade Francisco Erivaldo Fernandes Junior Marconi Kolm Madrid Departamento de Sistemas e Controle de Energia Faculdade de Engenharia Elétrica e de Computação Universidade Estadual de Campinas - Unicamp Campinas, Brasil [email protected] Departamento de Sistemas e Controle de Energia Faculdade de Engenharia Elétrica e de Computação Universidade Estadual de Campinas - Unicamp Campinas, Brasil [email protected] Resumo—O presente artigo apresenta o estudo e implementação das redes neurais artificiais e dos algoritmos genéticos na resolução da cinemática inversa de um manipulador robótico com 5 graus de liberdade. A cinemática inversa é um ramo com grandes desafios devido ao problema das equações não serem lineares, dificultando a determinação de soluções de uma forma fechada. Portanto, diversos pesquisadores, ao longo dos anos, tentam resolver esse problema evitando o uso de inversões de equações. Nesse sentido, o uso das redes neurais artificiais e dos algoritmos genéticos se mostram alternativas atraentes. O software Matlab foi utilizado como ferramenta para o desenvolvimento e a aplicação desses dois métodos. Palavras-chaves—Cinemática Inversa, Robótica, Redes Neurais Artificiais, Algoritmos Genéticos. Abstract—The present paper shows the study and the implementation of artificial neural networks and genetic algorithms to solve the inverse kinematics of a 5DOF robotic manipulator. The inverse kinematics is a field of study with challenges due the fact that the equations are not linear which become a problem to obtain closed form solutions. Therefore, many scientists try to solve this problem with methods that do not use equation inversions. In this sense, the use of artificial neural networks and genetic algorithms prove to be interesting alternatives for this purpose. The Matlab software was used as a tool to develop and application of these two methods. Index Terms—Inverse Kinematics, Robotics, Artificial Neural Networks, Genetics Algorithms. I. I NTRODUÇ ÃO A robótica é um campo de pesquisa tecnológica relativamente jovem que não está limitada pelas tradicionais fronteiras existentes entre as diversas engenharias. Para o entendimento das complexidades e aplicações que envolve o estudo dos robôs é necessário conhecimentos de engenharia elétrica, engenharia mecânica, engenharia industrial e de sistemas, ciências da computação, economia e matemática [1]. Além disso, os robôs são as principais ferramentas utilizadas em automação da produção industrial, em tarefas perigosas, em tarefas no espaço sideral e/ou em qualquer tarefa em que se deseja que uma máquina substitua um ser humano [2], [3]. Por isso, o estudo dessas máquinas tem vital importância para o desenvolvimento das áreas de tecnologia em mecatrônica e automação. A cinemática é o estudo do movimento de um robô em relação a um referencial cartesiano fixo ignorando as forças e os momentos que causam o movimento da estrutura. A formulação da cinemática de um robô, permite o estudo de dois problemas chaves na robótica. O problema da cinemática direta e o problema da cinemática inversa. O modelo cinemático direto permite determinar a posição e orientação da garra do robô, em relação a um referencial cartesiano fixo, a partir dos valores das suas juntas. Por outro lado, o modelo cinemático inverso permite determinar os valores das juntas do robô a partir da posição e orientação da garra. A cinemática direta pode ser facilmente obtida pelo método de Denavit-Hartenberg. Entretanto, não existe uma forma simples de se obter o modelo cinemático inverso de um manipulador robótico [1], [3], [4]. Na literatura é possı́vel encontrar diversas técnicas clássicas para resolver o problema da cinemática inversa. Para manipuladores robóticos simples, as soluções algébricas e geométricas são as abordagens mais comuns para este fim [3]. Enquanto que o desacoplamento cinemático é um exemplo de uma técnica clássica utilizada em robôs mais complexos [1]. Entretanto, existem alguns problemas ao se utilizar de tais abordagens. Esses problemas são inerentes a própria natureza da cinemática inversa, por exemplo [3]: • As equações são em gerais não lineares e, por isso, nem sempre é possı́vel encontrar soluções de forma fechada; • Múltiplas soluções podem existir; • Infinitas soluções podem existir, por exemplo, no caso de um manipulador redundante; • Podem não existir soluções admissı́veis. Devido a esses problemas, torna-se interessante encontrar outras maneiras para solucionar a cinemática inversa de manipuladores robóticos. Com isso em mente, o professor Madrid, durante seu doutorado, desenvolveu um método de busca heurı́stica para solução da cinemática inversa entre os anos de 1994 e 1997 [5], [6]. Posteriormente, esse método foi aperfeiçoado por Nicolato em 2007 [7]. Além desses, existem os métodos baseados em Redes Neurais Artificiais, RNA. O uso de RNA em robótica é algo relativamente novo, uma das primeiras publicações que relaciona o uso de RNA com robótica data de 1989 [Kung et al, 1989]. No caso especial do uso de RNA para resolução de cinemática inversa pode-se citar os trabalhos de Karlik, Wei, Koker, Oyama, Daya, Dash, entre outros [8]–[13]. Existem também trabalhos nos quais os autores usam uma combinação de algoritmos genéticos com RNA [14], [15]. Essas publicações provam que o estudo da cinemática inversa utilizando-se das redes neurais artificiais e algoritmos genéticos é uma área de interesse para diversos pesquisadores. Portanto, o presente trabalho tem como objetivo aplicar as redes neurais artificiais e algoritmos genéticos na resolução da cinemática inversa de um manipulador robótico com 5 graus de liberdade e analisar os resultados obtidos por esses métodos. Para se atingir este objetivo o presente artigo está subdividido da seguinte forma: • Na seção 2 são apresentados a fundamentação teórica do método de Denavit-Hartenberg para obtenção do modelo cinemático direto do robô em estudo e uma introdução a redes neurais e algoritmos genéticos; • Na seção 3 são apresentados os resultados obtidos usando as redes neurais e os resultados obtidos usando os algoritmos genéticos; • Por último, a conclusão e considerações finais estão apresentadas na seção 4. II. F UNDAMENTAÇ ÃO TE ÓRICA A. Modelagem Cinemática Direta Obter o modelo cinemático direto de um robô é tão importante quanto seu modelo cinemático inverso. Isso se deve ao fato de que com a cinemática direta é possı́vel obter a cinemática inversa, o jacobiano e o modelo dinâmico do manipulador [1], [3]. Portanto, o primeiro passo para a realização do presente trabalho foi a obtenção do modelo cinemático direto do robô em estudo, mostrado na Figura 1. Ao contrário da cinemática inversa, a obtenção do modelo cinemático direto de um manipulador robótico é um processo simples que faz uso de matrizes de transformação homogênea. A forma mais comum para obtenção desse modelo é através do uso da convenção de Denavit-Hartenberg, DH [1], [3]. Nessa convenção, um sistema de coordenadas é fixado em cada junta do robô. Essas juntas podem possui movimentos de rotação ou translação em torno de seu eixo. Uma matriz de transformação homogênea é atribuı́da para cada sistema de coordenadas fixado. Essas matrizes contém informações de orientação e posição do sistema coordenado atual em relação ao sistema anterior e pode ser escrita da seguinte forma: cos(θi ) − sin(θi ) cos(αi ) sin(θi ) sin(αi ) ai cos(θi ) sin(θi ) cos(θi ) cos(αi ) − cos(θi ) sin(αi ) ai sin(θi ) , Ai = 0 sin(αi ) cos(αi ) di 0 0 0 1 (1) Figure 1. Robô manipulador com 5 graus de liberdade. Table I PAR ÂMETROS DH PARA O ROB Ô EM ESTUDO . Link ai αi di θi 1 2 3 4 5 0 105 mm 95 mm 30 mm 0 π/2 0 0 −π/2 0 72 mm 0 0 0 153 mm θ1 θ2 θ3 θ4 θ5 onde θi , αi , ai e di , são parâmetros DH associados com o elo i e a junta i. Geralmente, os nomes dados a esses parâmetros são: link length, link twist, link offset e joint angle. Mais informações sobre esses parâmetros podem ser encontradas em [1], [3], [4]. Portanto, para se determinar as matrizes de cada elo é necessário montar uma tabela com esses parâmetros que, no caso do robô em estudo, encontra-se na Tabela I. Por último, para se determinar a orientação e a posição final da garra do robô é necessário multiplicar todas as matrizes ao longo da cadeia cinemática. Para o caso do robô em estudo, tem-se: T50 = A1 A2 A3 A4 A5 Portanto, o modelo cinemático o seguinte: nx sx ny sy 0 T5 = nz sz 0 0 (2) direto do robô em estudo é ax x ay y , (3) az z 0 1 onde: • nx = −s1 s5 − c5 (c4 (c1 s2 s3 − c1 c2 c3 ) + s4 (c1 c2 s3 + c1 c3 s2 )); ny = c1 s5 − c5 (c4 (s1 s2 s3 − c2 c3 s1 ) + s4 (c2 s1 s3 + c3 s1 s2 )); • nz = s234 c5 ; • sx = s5 (c4 (c1 s2 s3 − c1 c2 c3 ) + s4 (c1 c2 s3 + c1 s2 )) − c5 s1 ; • sy = c1 c5 + s5 (c4 (s1 s2 s3 − c2 c3 s1 ) + s4 (c2 s1 s3 + c3 s1 s2 )); • sz = −s123 s5 ; • ax = −s123 c1 ; • ay = c123 /2 − c123 /2; • az = c234 ; • x = c1 (30c234 − 153s234 + 95c23 + 105c2 ); • y = s1 (30c234 − 153s234 + 95c23 + 105c2 ); • z = 153c234 + 30s234 + 95s23 + 105s2 + 72. Sendo que a notação utilizada tem o seguinte significado: • ci = cos(θi ); • si = sin(θi ); • cijk = cos(θi + θj + θk ); • sijk = sin(θi + θj + θk ). • Figure 2. Exemplo de uma rede neural artificial [16]. B. Redes Neurais Artificiais Segundo Gurney [16], uma rede neural é um conjunto interconectado de elementos de processamento simples, chamados de nós, cuja funcionalidade é livremente baseada em neurônios animais. A capacidade de processamento da rede é armazenada nas forças de ligação entre as unidades, denominadas de pesos, obtidas pelo processo de adaptação ou aprendizagem de um conjunto de treinamento. Além disso, as Redes Neurais Artificiais também são conhecidas como aproximadores universais de funções [17], [18]. Portanto, são boas candidatas para serem usadas na resolução da cinemática inversa de manipuladores robóticos. Tipicamente, uma rede neural artificial é composta por um conjuntos de entradas e um conjunto de saı́das. Uma RNA pode ser composta por camadas de neurônios entre as entradas e as saı́das. Essas camadas intermediárias de neurônios são conhecidas pelo nome de Camadas Escondidas, do inglês Hidden Layers. Uma RNA pode ter um número arbitrário de camadas escondidas e cada uma delas podem ter um número arbitrário de neurônios [16], [17]. Por exemplo, na Figura 2 é mostrada uma RNA com 4 entradas, 2 saı́das e 1 camada escondida com 3 neurônios. C. Algoritmos Genéticos Segundo linden, os algoritmos genéticos são algoritmos de busca baseados nos mecanismos de seleção natural e genética. Eles combinam a sobrevivência entre os melhores indivı́duos com uma forma estruturada de troca de informação genética entre dois indivı́duos para formar uma estrutura heurı́stica de busca [19]. Portanto, os algoritmos genéticos é um processo iterativo em que busca-se a minimização de uma função, chamada de fitness function. Os valores presentes no código genético de um indivı́duo resulta em um determinado valor da função fitness. Apenas os indivı́duos que produzem os melhores valores dessa função serão selecionados para a próxima iteração. Figure 3. Trajetória do robô. Dessa forma, o algoritmo encontra rapidamente os melhores resultados para minimizar está função. III. R ESULTADOS Nesta seção são apresentados os resultados obtidos pela aplicação das redes neurais artificiais e algoritmos genéticos na resolução da cinemática inversa do robô em estudo. Em ambos os casos foram utilizados apenas 4 graus de liberdade, pois o 5o grau de liberdade constitui somente uma rotação em torno do eixo Z do sistema de referência da garra do robô. Ambos os métodos foram testados usando a trajetória da Figura 3. Essa trajetória seria a realização de uma simples tarefa de transporte, pegar um objeto em um local e colocá-lo em outro local. Além disso, os resultados foram obtidos utilizando-se o software Matlab. A. Aplicação das redes neurais artificiais Para a realização deste trabalho, o conjunto de treinamento da rede neural foi construı́do a partir de todas as possibilidades de posicionamento e orientação da garra do robô dentro do seu espaço de trabalho. Os melhores resultados foram obtidos com a utlização de uma rede neural do tipo feedforward com 3 camadas Figure 5. Erro quadrático médio do treinamento da rede neural. Figure 7. Erro durante o rastreamento da trajetória usando algoritmo genético. B. Aplicação dos algoritmos genéticos No presente trabalho, a função que se deseja otimizar é o erro quadrático entre o ponto atual do manipulador e o ponto que se deseja atingir, mostrada na equação 4. Portanto, para cada ponto da trajetória é necessário realizar uma minimização. x − xt e = x − xt y − yt z − zt y − yt , (4) z − zt Figure 6. Erro durante o rastreamento da trajetória usando rede neural. escondidas, contendo, respectivamente, 17, 15 e 12 neurônios. Além disso, em cada camada escondida foi utilizada a função de transferência log-sigmoid. Essa rede possui 12 entradas e 4 saı́das, Figura 4. Sendo as entradas os valores da orientação e posição final da garra do robô. Enquanto que as saı́das são os valores de cada junta do robô. O treinamento da rede foi feito utilizando a função trainbr e um conjunto de treinamento com 86016 dados de entrada e 28672 dados de saı́da. Esses dados foram divididos de forma randômica sendo 15% usados na validação e 85% usados no teste da rede. A taxa de aprendizagem foi de 0,2 e a rede foi treinada por 3000 iterações. Utilizando-se desses parâmetros se obteve um erro de treinamento da ordem de 10−10 , conforme ilustrado na Figura 5. Por fim, ao aplicar a rede neural treinada na trajetória desejada, foi obtido um erro da ordem de 10−2 mm, conforme apresentado na Figura 6. onde: • x é a coordenada cartesiana atual da garra do robô; • xt é a coordenada cartesiana do próximo ponto que a garra do robô deve atingir; • y é a coordenada cartesiana atual da garra do robô; • yt é a coordenada cartesiana do próximo ponto que a garra do robô deve atingir; • z é a coordenada cartesiana atual da garra do robô; • zt é a coordenada cartesiana do próximo ponto que a garra do robô deve atingir. Os valores de cada variável de junta do robô em estudo foi utilizado como código genético dos indivı́duos. Além disso, os melhores resultados foram obtidos quando o algoritmo genético utilizado tinha uma população de 1000 indivı́duos, com critério de parada de 2000 gerações, tolerância do valor da função fitness de 1 × 10−30 , fração de crossover de 0,43 e a seleção natural feita por roleta. Com isso, o erro cartesiano no rastreamento da trajetória foi da ordem de 10−4 mm, como mostrado na Figura 7. IV. C ONCLUS ÃO E DISCUSS ÃO DOS RESULTADOS Conforme demonstrado pelos resultados, a utilização de redes neurais e algoritmos genéticos na resolução da cinemática inversa de manipuladores robóticos é bastante satisfatório. Com um erro entre o valor desejado e o valor predito pequeno, as RNAs e os AGs podem ser usados em tarefas que requerem bastante precisão. Figure 4. Arquitetura da rede utilizada. Como pode-se ver pelos resultados, algoritmos genéticos se mostram uma melhor alternativa quando se trata de resolver a cinemática inversa. O problema da utilização das redes neurais é o tempo de treinamento. A rede proposta no presente trabalho teve um tempo de treinamento de quatro horas. Além disso, a rede neural obteve um um erro maior do que o algoritmo genético. Em metros, o erro obtido pela utilização da rede neural foi da ordem de 10−5 , enquanto que no algoritmo genético foi da ordem de 10−7 . Essa diferença pode ser crucial dependendo do tipo de tarefa que deseja-se que o robô realize. Entretanto, como pode-se ver na Figura 7, a utilização do algoritmo genético resultou em uma trajetória com grandes pertubações. Portanto, o próximo passo será determinar uma maneira de suavizar os resultados obtidos pelo algoritmo genético, como também reduzir o tamanho da população pra aumentar a velocidade do algoritmo. R EFERENCES [1] M. W. Spong, S. Hutchinson, and M. Vidyasagar, Robot Dynamics and Control, second edition ed. John Wiley & Sons Inc., 2004. [2] R. K. Mittal and I. J. Nagrath, Robotics and Control. Tata McGraw-Hill, 2003. [3] B. Siciliano, L. Sciavicco, L. Villani, and G. Oriolo, Robotics: Modelling, Planning and Control. Springer, 2009. [4] P. Corke, Robotics, Vision and Control: Fundamental Algorithms in Matlab. Springer, 2011. [5] M. K. Madrid, “Controle de trajetórias contı́nuas por seccionamento em sub-trajetórias usando inteligência artificial num robô multi-tarefas,” Ph.D. dissertation, Faculdade de Engenharia Elétrica e de Computação, Universidade de Campinas, 1994. [6] M. K. Madrid and G. P. Badan, “Heuristic search method for continuouspath tracking optimization on high-performance industrial robots,” Control Engineering Practice, vol. 5, no. 9, pp. 1261–1271, 1997. [7] F. Nicolato, “Estudo e implementação de um método de cinemática inversa baseado em busca heurı́stica para robôs manipuladores: Aplicação em robôs redundantes e controle servo visual,” Ph.D. dissertation, Faculdade de Engenharia Elétrica e de Computação. Universidade de Campinas, 2007. [8] B. Karlik and S. Aydin, “An improved approach to the solution of inverse kinematics problems for robot manipulators,” Engineering Applications of Artificial Intelligence, vol. 13, no. 2, pp. 159–164, Apr. 2000. [Online]. Available: http://linkinghub.elsevier.com/retrieve/pii/S0952197699000500 [9] L.-X. W. L.-X. Wei, H.-R. W. H.-R. Wang, and Y. L. Y. Li, “A new solution for inverse kinematics of manipulator based on neural network,” in Proceedings of the 2003 International Conference on Machine Learning and Cybernetics (IEEE Cat. No.03EX693), vol. 2, no. 1. IEEE, 2003, pp. 1201–1203. [Online]. Available: http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=1259668 [10] R. Köker, C. Öz, T. Çakar, and H. Ekiz, “A study of neural network based inverse kinematics solution for a three-joint robot,” Robotics and Autonomous Systems, vol. 49, no. 3-4, pp. 227–234, Dec. 2004. [Online]. Available: http://linkinghub.elsevier.com/retrieve/pii/S0921889004001666 [11] E. Oyama, T. Maeda, J. Gan, E. Rosales, K. MacDorman, S. Tachi, and A. Agah, “Inverse kinematics learning for robotic arms with fewer degrees of freedom by modular neural network systems,” in 2005 IEEE/RSJ International Conference on Intelligent Robots and Systems. IEEE, 2005, pp. 1791–1798. [Online]. Available: http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=1545084 [12] B. Daya, S. Khawandi, and P. Chauvet, “Neural network system for inverse kinematics problem in 3 DOF robotics,” in 2010 IEEE Fifth International Conference on BioInspired Computing: Theories and Applications (BIC-TA). IEEE, Sep. 2010, pp. 1550–1557. [Online]. Available: http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=5645269 [13] K. K. Dash, B. B. Choudhury, a. K. Khuntia, and B. B. Biswal, “A neural network based inverse kinematic problem,” 2011 IEEE Recent Advances in Intelligent Computational Systems, pp. 471–476, 2011. [Online]. Available: http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=6069357 [14] J. A. H. Martı́n, J. de Lope, and M. Santos, “Evolution of Neurocontrollers for Multi-link Robots,” Innovations in Hybrid Intelligent Systems, vol. 44, pp. 175–182, 2007. [15] R. Köker, “A genetic algorithm approach to a neuralnetwork-based inverse kinematics solution of robotic manipulators based on error minimization,” Information Sciences, vol. 222, pp. 528–543, Feb. 2013. [Online]. Available: http://linkinghub.elsevier.com/retrieve/pii/S0020025512005233 [16] K. Gurney, An Introduction to Neural Networks. London: UCL Press, 1997. [17] B. Krose and P. V. D. Smagt, An Introduction to Neural Networks, 8th ed. Amsterdam: University of Amsterdam, 1996, no. November. [Online]. Available: http://lia.univavignon.fr/fileadmin/documents/Users/Intranet/chercheurs/torres/livres/bookneuro-intro.pdf [18] K. Hornik, M. Stinchcombe, and H. White, “Multilayer feedforward networks are universal approximators,” Neural Networks, vol. 2, pp. 359–366, 1989. [19] R. Linden, Algoritmos Genéticos: Teoria e Implementação, 2004, Ed.