Você está na página 1de 7

1

Cinemática Inversa de um Manipulador Usando


Redes Neurais
Luis Ernesto Ynoquio Herrera
ICA – Laboratório de Inteligência Computacional Aplicada
Departamento de Engenharia Elétrica
Pontifícia Universidade Católica de Rio de Janeiro
Rua Marquês de São Vicente, 225, Gávea, Rio de Janeiro, RJ.
Brasil, 22453-900
luisyno@hotmail.com

Resumo – Neste trabalho se apresenta um procedimento para


resolver o problema da Cinemática Inversa de um manipulador
(braço robô) usando Redes Neurais. A solução do problema da
Cinemática Inversa é muito difícil por incluir equações não-
lineares e possuir um número muito grande de soluções
admissíveis.

Se usa uma base de conhecimento obtido a partir da


Cinemática Direita, assim temos uma base de dados de posições
x,y,z que descreve um plano no espaço de trabalho do robô. Desta
forma a rede já treinada vai poder resolver o problema da
cinemática inversa para qualquer trajetória nesse plano.

PALAVRAS CHAVE: Redes Neurais, Back Propagation,


Robótica, Cinemática Inversa, Manipulador robótico.

I. INTRODUÇÃO
Na maioria das aplicações da robótica, é importante a
descrição espacial do elemento final do manipulador com Figura 1: Scorbot VR Plus.
respeito ao sistema de coordenadas de referência fixo. Então
é necessário resolver o problema da cinemática direita e da Em Paul, Shimano y Mayer (1981) é proposto uma
cinemática inversa. técnica da transformada inversa, onde se procura através de
muitas aproximações resolver os ângulos de Euler. Estas
A cinemática inversa consiste em achar um conjunto de técnicas por aproximação geométrica têm muitas condições
ângulos para atingir uma posição – orientação desejada á quanto à estrutura física do manipulador e o tipo das
partir de sua localização no espaço (x,y,z). Assim a solução articulações, além da dificuldade para atingir a solução.
deste problema é muito difícil, porque inclui equações não -
lineares de funções transcendentais e, em geral, leva a O objetivo deste trabalho é fazer solução ao problema da
soluções múltiplas. cinemática inversa de um braço robô usando redes neurais.
Depois do treino, a rede é testada com uma trajetória, assim
A cinemática direita consiste em achar a orientação- ela é capaz de interpolar pontos de treino não conhecidos.
posição desejada (x,y,z), a partir do conjunto de ângulos das
articulações e a geometria do braço robô.
II. FUNDAMENTAÇÃO
Em Denavith – Hatemberg (1955) é proposto um método
matricial e sistemático para resolver de forma geral a Redes Neurais
cinemática direita de um robô de n graus de liberdade. Este
problema foi feito de muitas maneiras planejando-se muitos Redes Neurais Artificiais são técnicas computacionais que
métodos para resolvê-lo. Em Pieper (1968) apresentou á apresentam um modelo matemático inspirado nos neurônios
solução da cinemática para manipuladores com seis graus de biológicos e na estrutura massivamente paralela do cérebro,
liberdade onde três eixos consecutivos se interceptam em com capacidade de adquirir, armazenar e utilizar
um ponto. conhecimento experimental. [2]
2

Uma grande rede neural artificial pode ter centenas ou minimização do erro. Assim ela pode ser vista como uma
milhares de unidades de processamento; já o cérebro de um generalização do algoritmo Last Mean Squere (LMS).
mamífero pode ter bilhões de neurônios.
A figura 3 mostra a arquitetura de uma rede neural MLP
A figura 2 mostra o modelo básico de um neurônio artificial. com uma camada de entrada, 2 camadas escondidas e uma
Ele tem as seguintes partes: camada de saída.

• Conexões entre processadores (Synaptics).- Cada


conexão tem um peso sináptico (wkm) e determina o efeito
da entrada (xm) sobre o processador.

• Bias(bk).- tem o papel de aumentar ou diminuir a


influência do valor das entradas. É possível considerar o
bias como uma entrada de valor constante 1, multiplicado
por um peso igual a bk.

• Regra de Propagação (Summing junction).- soma


todos os sinais de entrada multiplicados pelos respectivos
pesos, além do bias bk.
Figura 3.- Arquitetura MLP [1]
• Função de Ativação (Activation function).- tem a
função de limitar a saída e introduzir não-linearidade ao O aprendizado Back-Propagation tem duas fases:
modelo. Feed-Fordwar e Feed-Backward. Na Feed-Fordwar as
entradas se propagam pela rede, da camada de entrada até a
camada de saída, assim durante esta fase os pesos sinápticos
da rede (wkm) são fixados. Logo, na fase Feed-Backward os
pesos sinápticos são ajustados de acordo com a regra de
correção do erro[1], então o sinal do erro se propaga na
direção contrária ao fluxo de dados, indo da camada de saída
até a primeira camada escondida.

As características principais de uma rede MLP são: a função


de ativação de seus neurônios são funções não lineares, pois,
do contrário à rede se diminuiria a uma rede de camada
única. A rede possui uma ou mais camadas de neurônios
ocultos que não formam parte da entrada e nem da saída; as
quais permitem à rede aprender tarefas complexas e extrair
as características mais significativas dos padrões no
processo de treinamento.
Figura 2.- Neurônio Artificial [1]
De modo geral, as redes neurais têm a capacidade própria de
aprendizagem, a possibilidade de processamento em
Multilayer Peceptrom paralelo, uma relativa tolerância á falha, e a capacidade de
lidar ou processar grandes quantidades de informações
Uma rede neural do tipo Multilayer Perceptrom (MPLs) é provindas dos elementos sensoriais, o que elimina a
constituída por um conjunto de nós fonte, os quais formam a necessidade de modelos matemáticos sofisticados. Todas
camada de entrada da rede (input layer), uma ou mais estas vantagens fazem que as redes neurais sejam utilizadas
camadas escondidas (hidden layers) e uma camada de saída para realizar a modelagem e representar sistemas não
(output layer). lineares.

• A Camada de Entrada: é onde os padrões são


Cinemática Direita Do Braço Robô
apresentados à rede.
• Camadas Escondidas: onde é feita a maior parte do
processamento, através das conexões ponderadas; podem A representação em coordenadas homogêneas é
ser consideradas como extratoras de características. indispensável para descrever a geometria espacial de um
manipulador. O conceito de uma representação em
• Camada de Saída: onde o resultado final é concluído e
coordenadas homogêneas em um espaço tridimensional é
apresentado.
útil para desenvolver transformações matriciais que incluam
rotação, translação, escalado e transformação da perspectiva.
MPLs tem sido usado satisfatoriamente para a solução de
problemas difíceis mas fazendo o uso de um algoritmo Em geral, uma matriz de transformação homogênea é uma
muito conhecido: error back-propagation algorithm. Este matriz que transforma um vetor de posição expressado em
algoritmo está baseado na regra de aprendizado de coordenadas homogêneas desde um sistema de coordenadas
até outro sistema de coordenadas.
3

Uma matriz de transformação homogênea considera-se di: É a distância desde a origem do sistema de
que consiste em quatro submatrizes: coordenadas Oi−1 até a interseção do eixo zi−1 com o
eixo xi ao longo do eixo zi−1.
R P3 x1  αi: È o ângulo de separação do eixo zi−1 ao eixo zi
T =  3x3
 f1x3 S1x1  respeito do eixo xi (usando a regra da mão direita).

A matriz de Transformação D-H é:


 Matrix _ rotacion Vector − posição 
T = 
Transforma ção _ perspectiv a Escala 

Para analisar a cinemática do braço robô, se usa a


representação de Denavit-Hartenberg, a qual estabelece em
forma sistemática um sistema de coordenadas para cada
elemento da cadeia articulada. A representação resulta em (1)
uma matriz de transformação homogênea que representa A partir da matriz de transformação, acha-se a matriz
cada um dos sistemas de coordenadas dos elementos em homogênea 0Ti, a qual especifica a localização do sistema de
uma articulação com respeito a sistema de coordenadas do coordenadas i com respeito a sistema de coordenadas base
elemento anterior, denominada matriz de transformação D- inercial. Esta matriz é a seguinte:
H.
Para a aplicação particular, se estabelece o sistema de
coordenadas como se ilustra na Figura 4. 0
Ti = ∏ ij =1 j −1 A j (2)

O problema da cinemática direita consiste em achar a


posição e orientação final do braço robô, começando dos
ângulos das articulações θ = {θ1, θ2, · · · , θi}. Usando a
matriz de transformação 0Ti se relaciona um ponto pi, em
repouso, expressado em coordenadas homogêneas com
respeito ao sistema de coordenadas i em outro sistema de
coordenadas fixo na base do robô. Usando a seguinte
equação:

(3)
Nossa aplicação é um braço robô de cinco graus de
liberdade, e o ponto do espaço que nós queremos obter é a
origem do sistema de coordenadas do elemento final, então
Figura 4: Sistema de coordenadas para um robô Scorbot VR
temos a seguinte expressão:
Plus de 5 GDL.

A partir do sistema de coordenadas escolhido e as medidas


do braço robô, se acham os parâmetros da representação de (4)
Denavit-Hartenberg (θθi, di , ai, αi ) para ser substituídos em
uma matriz de transformação D-H. Onde:

elo ai (mm) di(mm) αi θi (5)


1 0 364 -90 θ1
2 220 0 0 θ2 Logo após resolver a equação 3, obtemos:
3 220 0 0 θ3
4 0 0 90 θ4
5 0 170 0 θ5 (6)
Tabela 1: Parâmetros do braço robô Scorbot VR Plus de 5
GDL. Onde:

Onde[3]:

ai: É a distância de separação desde a intersecção do E (x, y, z) são a posição espacial da origem do sistema de
eixo zi−1 com o eixo xi até o origem do sistema i á o coordenadas do elemento final em relação ao sistema de
largo do eixo xi (norma comum entre os eixos zi−1 e coordenadas fixo na base do robô.
zi). Assim obtemos a cinemática direita que é dada pelo seguinte
θi: É o ângulo da articulação do eixo xi−1 a eixo xi conjunto de equações:
respeito do eixo zi−1 (regra da mão direita).
4

x = 170*[cos(θ1)*cos(θ2)*cos(θ3) – cos(θ1)*sin(θ2)*sin(θ3)]*sin(θ4) – Padrões:


170* [-cos(θ1)*cos(θ2)*sin(θ3) – cos(θ1)*sin(θ2)*cos(θ3)]*cos(θ4) +
220*cos(θ1)*cos(θ2)*cos(θ3) – 220*cos(θ1)*sin(θ2)*sin(θ3) +
220*cos(θ1)*cos(θ2) (7) Na tabela 2, se mostram os padrões. Cada padrão de
treino tem como entrada as posições x,y,z da posição do
y=170*[sin(θ1)*cos(θ2)*cos(θ3) – sin(θ1)*sin(θ2)*sin(θ3)]*sin(θ4) – elemento final e como “target” os ângulos das juntas do
170*[-sin(θ1)*cos(θ2)*sin(θ3) – sin(θ1)*sin(θ2)*cos(θ3)]*cos(θ4)+ braço robô (θ1, θ2, θ3, θ4).
220*sin(θ1)*cos(θ2)*cos(θ3) – 220*sin(θ1)*sin(θ2)*sin(θ3) +
220*sin(θ1)*cos(θ2) (8) Padrão x Y z θ1 θ2 θ3 θ4
1 -50 150 550 108,41 0,15 -60,76 -31,10
z = 364 + 170*[-sin(θ2)*cos(θ3) – cos(θ2)*sin(θ3)]*sin(θ4) –
2 -50 152 550 108,20 0,31 -60,33 -31,12
170*[sin(θ2)*sin(θ3)-cos(θ2)*cos(θ3)]*cos(θ4) –
3 -50 154 550 107,99 0,39 -59,83 -31,22
220*sin(θ2)*cos(θ3) – 220*cos(θ2)*sin(θ3) – 220*sin(θ2) (9)
4 -50 156 550 107,74 0,72 -59,57 -30,98
5 -50 158 550 107,57 0,72 -58,96 -31,17
Nestas equações, se pode ver que a posição do braço robô 6 -50 160 550 107,35 0,94 -58,62 -31,06
não depende do ângulo θ5, então o problema fica com 4 7 -50 162 550 107,16 0,59 -57,68 -31,69
variáveis. 8 -50 164 550 106,97 0,94 -57,43 -31,44
9 -50 166 550 106,74 1,12 -57,06 -31,35
10 -50 168 550 106,58 1,23 -56,61 -31,38
... ... ... ... ... ... ... ...
III. MÉTODOLOGIA ... ... ... ... ... ... ... ...
1324 50 196 550 75,69 14,03 -63,53 -15,45
Este trabalho tem como objetivo desenvolver a cinemática 1325 50 198 550 75,84 14,03 -63,07 -15,44
inversa de um braço robô fazendo o treinamento de uma 1326 50 200 550 75,96 14,21 -62,82 -15,24
rede neural. Tabela 2: Padrões de Treinamento

A base de conhecimento é obtida a partir da a cinemática 2. A arquitetura da rede neural, o número de camadas
direita e do uso de algoritmos genéticos, assim, temos um ocultas e de unidades nestas camadas é de extrema
conjunto de treino de 1326 padrões que descrevem um plano importância. Quanto maior o número de neurônios, mais
pesos para ajustar e mais complexa será a rede neural, o
no espaço de trabalho do braço robô.
qual requer um maior custo computacional. É necessário
mexer com diferentes tipos de desenhos até obter uma
Após a rede poderá fazer qualquer trajetória desejada boa generalização, ou uma resposta com a exatidão
dentro do espaço de treinamento (plano-2D). E este requerida.
procedimento poderá ser também estendido para fazer o
treino de todo o espaço de trabalho (3D) de um braço robô.
Neste projeto usaremos uma rede para cada variável de
saída, assim temos então 4 redes.
Modelagem da rede
Para obter bons resultados na generalização, é necessário
ter em conta as seguintes 3 considerações:

1. O tamanho do conjunto de treinamento, o quanto os


exemplos são representativos do problema de interesse.

Na figura 5, se amostra o plano de treinamento usado


para nossa rede. Ele tem um área de 100 x 50 mm com Figura 6: 1 rede para cada variável
padrões (pontos) cada 2 mm. Deste modo temos um total
de 1326 padrões. Depois de fazer a simulação com diferentes arquiteturas,
se opto por uma arquitetura, como se mostra na figura 7.

Figura 7: Arquitetura de redes

Figura 5: Plano de Treinamento Temos uma rede de 3 entradas, 2 camadas escondidas e 1


saída. E os neurônios nas camadas escondidas são:
5

1ra. Camada 2da. Camada


Escondida Escondida
Rede1 15 10
Rede2 25 10
Rede3 15 10
Rede4 15 10
Tabela 3: Neurônios na camada escondida

3. Os parâmetros de treino são também importantes:

• Para garantir uma boa generalização usamos um


conjunto de validação da seguinte forma: 70% dos
dados para treino, 20% para validação e 10% para
teste.

• A forma de aprendizado é feita em método batch,


onde os pesos são atualizados uma vez por ciclo.
Figura 9: Output vs Target - Rede 2
• Para acelerar o processo de aprendizado usamos uma
variação á o algoritmo “back-propagation” conhecida
como “Resilient Propagation”, onde os ajustes na
taxa de aprendizado dependem somente das sinais
dos termos do gradiente e não da sua magnitude.
Pode-se, ainda, utilizar o termo de “momento” para
diminuir o problema de ficar num mínimo local.

• As representações das variáveis são em números


contínuos e a normalização usada é a seguinte:
__
Xi − X
X =n
(10)
i
σ
Sinal com média zero e variância unitária.

IV. RESULTADOS
Figura 10: Output vs Target - Rede 3
Depois de fazer o treinamento, temos os seguintes dados
obtidos a partir do conjunto de teste. Ver as seguintes
figuras.

Figura 11: Output vs Target - Rede 4

Para o calculo dos erros usamos a equação do msMAPE


Figura 8: Output vs Target - Rede 1 (modified symmetric mean absolute percentage error) já que
os dados tem valores que passam por zero[4].
6

Como resultado a rede tem os ângulos de resposta:

Padrão θ1 θ2 θ3 θ4
(11)
onde: 1 102,41 3,79 -55,93 -28,60
2 102,32 3,77 -56,24 -28,55
3 102,24 3,77 -56,55 -28,50
4 102,16 3,75 -56,86 -28,44
5 102,08 3,74 -57,17 -28,37
Assim temos os seguintes erros calculados: 6 101,99 3,71 -57,47 -28,30
7 101,91 3,68 -57,77 -28,23
msMAPE 8 101,83 3,64 -58,06 -28,16
Rede1 0,14 % 9 101,74 3,61 -58,34 -28,09
Rede2 8,04 % 10 101,66 3,62 -58,61 -28,03
Rede3 0,76% … … … … …
Rede4 1,82% … … … … …
Tabela 4: Erro msMAPE (%) do conjunto de teste 179 72,88 13,05 -71,82 -15,51
180 72,74 12,82 -71,57 -15,81
181 72,62 12,57 -71,30 -16,04
Trajetória de Prova Tabela 6: Ângulos de resposta da rede

Com a rede treinada, agora queremos fazer uma trajetória no Para verificar a qualidade da reposta fazemos o uso da
espaço de treino, isso é, uma curva descrita dentro do plano. cinemática direita, substituindo os pontos nas equações 7, 8,
e 9 temos (x’,y’,z’):

Padrão x’ y’ z’
1 -40,14 182,37 550,51
2 -39,62 181,36 550,51
3 -39,13 180,35 550,52
4 -38,64 179,34 550,54
5 -38,15 178,32 550,59
6 -37,67 177,28 550,68
7 -37,18 176,24 550,79
8 -36,70 175,20 550,91
9 -36,22 174,23 550,99
10 -35,77 173,39 550,96
… … … …
Figura 12: 1 rede para cada variável … … … …
179 48,51 157,43 548,52
A trajetória desejada é de 181 pontos em (x,y,z). Eles podem 180 48,89 157,36 548,53
ser ou não parte do conjunto de treino.
181 49,26 157,07 548,80
Tabela 7: Valores obtidos pela cinemática direita
Padrão x Y z
1 -40,50 182,65 550,00 Assim temos os seguintes erros calculados:
2 -40,00 181,84 550,00
3 -39,50 181,01 550,00 msMAPE
4 -39,00 180,18 550,00 X 0,95%
5 -38,50 179,33 550,00 Y 0,40%
6 -38,00 178,47 550,00 Z 1,20%
7 -37,50 177,61 550,00 Tabela 8: Erro msMAPE (%) dos eixos
8 -37,00 176,74 550,00
9 -36,50 175,87 550,00 V. CONCLUSÕES
10 -36,00 175,00 550,00
… … … … • As redes neurais podem desenvolver a cinemática
… … … … inversa de um manipulador,
179 48,50 157,26 550,00 • O tempo computacional requerido para o treino é
180 49,00 156,87 550,00 muito elevado, isso se dá pela quantidade de dados
181 49,50 156,52 550,00 que ela precisa,
Tabela 5: Pontos da trajetória de proba • Mas quando os pesos das redes são encontrados,
elas podem fazer qualquer trajetória sem alterar ou
7

fazer trocas nas redes,


• A quantidade de operações que a rede realiza para
cada ponto sempre é a mesma.
• A quantidade de operações é menor que os
métodos heurísticos tradicionais.

VI. BIBLIOGRAFIA
[1] Simon Haykin. Neural Networks, a Comprehensive
Fundation. Second Edition- Hamilton, Ontario, Canada.

[2] Marley B. R. Vellasco. Redes Neurais I. Notas de


Aula, ICA - PUC-RIO

[3] H. Harry Asada - Introduction to Robotics (1995).


Massachusetts Institute of Tecnology.

[4] Zhuo Chen. Assesing Forecast Accuracy Measures


(2004). Department of Economics – Iowa State University.

Você também pode gostar