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.
Download

Aplicaç˜ao de Redes Neurais Artificiais e Algoritmos Genéticos na