• Nenhum resultado encontrado

5π 6 π 2 ≤ θ2 ≤ π 0 ≤ θ3 ≤ π 2 −π 2 ≤ θ4 ≤ 0 0 ≤ θ5 ≤ π 2 . (5.9)

Os melhores resultados foram obtidos com a utiliza¸c˜ao de uma rede neural do tipo feedforward com 4 camadas escondidas, contendo, respectivamente, 17, 15, 12 e 19 neurˆonios. Assim como no primeiro teste, em cada camada escondida foi utilizada a fun¸c˜ao de transferˆencia ou ativa¸c˜ao log-sigmoid. A rede possu´ıa 12 entradas e 5 sa´ıdas. O treinamento da rede foi feito utilizando a fun¸c˜ao de treinamento trainbr e um conjunto de dados de treinamento de 171072 dados de entrada e 71280 dados de sa´ıda. O conjunto de treinamento foi dividido de forma aleat´oria, sendo 15% usados para valida¸c˜ao e 85% usados no treinamento da rede. A taxa de aprendizagem foi de 0,2 e a rede foi treinada por 3000 itera¸c˜oes. Al´em disso, devido ao tamanho da rede, o treinamento da rede foi realizado por 4 processadores.

Usando a defini¸c˜ao completa do problema, n˜ao foi poss´ıvel obter um erro satisfat´orio. O erro de treinamento da rede ficou na ordem de 1, 6 × 10−6. Esse erro ´e bem maior do que o erro obtido no primeiro caso. Ao aplicar essa rede na trajet´oria desejada, o erro relativo ao posicionamento cartesiano do robˆo foi da ordem de 1 mm, conforme mostrado na parte inferior da Figura 5.10. A diferen¸ca entre os valores desejados das juntas e os valores obtidos na rede neural s˜ao mostrado na parte superior da Figura 5.10.

5.8

Aplica¸c˜ao dos algoritmos gen´eticos na resolu¸c˜ao da

cinem´atica inversa

Com os algoritmos gen´eticos pretendeu-se minimizar a distˆancia quadr´atica entre o ponto atual da trajet´oria e o pr´oximo ponto desejado da trajet´oria que ´e uma fun¸c˜ao baseada no trabalho de Madrid e Badan de 1997 [11]. Assim como no caso das redes neurais, foi utilizado um cen´ario mais simples e um cen´ario mais complexo para testar os algoritmos gen´eticos. O c´odigo utilizado nos algoritmos gen´eticos pode ser consultado no Apˆendice F deste trabalho.

Figura 5.10: Evolu¸c˜ao dos erros durante o rastreamento da trajet´oria usando rede neural no segundo teste.

5.8.1

Resultados da aplica¸c˜ao dos algoritmos gen´eticos no problema

simplificado

No caso mais simples, foi utilizado um algoritmo gen´etico para minimizar a seguinte fun¸c˜ao:

e =x − xt y − yt z − zt    x − xt y − yt z − zt  , (5.10) onde:

ˆ x ´e a coordenada cartesiana atual da garra do robˆo;

ˆ xt ´e a coordenada cartesiana do pr´oximo ponto que a garra do robˆo deve atingir; ˆ y ´e a coordenada cartesiana atual da garra do robˆo;

ˆ yt ´e a coordenada cartesiana do pr´oximo ponto que a garra do robˆo deve atingir; ˆ z ´e a coordenada cartesiana atual da garra do robˆo;

ˆ zt ´e a coordenada cartesiana do pr´oximo ponto que a garra do robˆo deve atingir.

A otimiza¸c˜ao foi realizada apenas para θ1, θ2, θ3 e θ4. Assim como feito no primeiro teste usando redes neurais, a vari´avel de junta θ5 foi considerada constante e igual a π/2 durante este teste. Como c´odigo gen´etico dos indiv´ıduos da popula¸c˜ao foram usados os valores reais referentes a cada vari´avel de junta, como mostrado na Figura 5.11. Al´em disso, no primeiro ponto a ser

5.8. Aplica¸c˜ao dos algoritmos gen´eticos na resolu¸c˜ao da cinem´atica inversa 55

seguido na trajet´oria, o algoritmo deveria fazer uma busca em todo o espa¸co de juntas. Ap´os esse ponto, o algoritmo fazia buscas apenas em pontos pr´oximos do atual. Sendo assim, ap´os o primeiro ponto da trajet´oria ter sido encontrado, o espa¸co de buscas era reduzido para o valor atual das juntas ±0, 150 radianos.

Os melhores resultados foram obtidos quando o algoritmo gen´etico utilizado tinha uma popula¸c˜ao de 1000 indiv´ıduos constantes ao longo das gera¸c˜oes, com crit´erio de parada de 2000 gera¸c˜oes, tolerˆancia do valor da fun¸c˜ao de avalia¸c˜ao de 1 × 10−30, fra¸c˜ao de crossover de 0, 43 e sele¸c˜ao feita por roleta, sem elitismo. A muta¸c˜ao foi determinada pela fun¸c˜ao mutationfeasible do MATLAB. Com isso, o erro cartesiano no rastreamento da trajet´oria foi da ordem de 10−4 mm, como mostrado na Figura 5.12.

Figura 5.11: C´odigo gen´etico dos indiv´ıduos do primeiro teste dos algoritmos gen´eticos.

Figura 5.12: Evolu¸c˜ao dos erros durante o rastreamento da trajet´oria usando algoritmo gen´etico no primeiro teste.

5.8.2

Resultado dos algoritmos gen´eticos no problema completo

No segundo caso, pretendia-se minimizar a seguinte fun¸c˜ao atrav´es da utiliza¸c˜ao dos algoritmos gen´eticos [11]:

onde: en=   Nx− Nxt Ny − Ny t Nz− Nz t  ; (5.12) es =   Sx− Sxt Sy− Sy t Sz− Sz t  ; (5.13) ea =   Ax− Axt Ay− Ay t Az− Az t  ; (5.14) ep =   X − Xt Y − Yt Z − Zt  . (5.15)

As equa¸c˜oes acima representam a diferen¸ca entre a orienta¸c˜ao e a posi¸c˜ao atual do end-effector e a orienta¸c˜ao e a posi¸c˜ao do pr´oximo ponto da trajet´oria, que s˜ao representados pelo ´ındice t. Al´em disso, foi feita a minimiza¸c˜ao levando-se em contas as vari´aveis de juntas do robˆo.

Da mesma forma do primeiro caso, no c´odigo gen´etico dos indiv´ıduos da popula¸c˜ao foram usado valores reais referentes a cada vari´avel de junta. Assim como no primeiro caso, o algoritmo realiza uma busca completa no espa¸co das juntas apenas para o primeiro ponto da trajet´oria, nos pr´oximos pontos ´e feita uma busca apenas no espa¸co compreendido entre o valor atual da junta ±0, 150 radianos.

Os melhores resultados foram obtidos quando o algoritmo tinha uma popula¸c˜ao de 1500 indiv´ıduos constante ao longo das gera¸c˜oes, com crit´erio de parada de 3000 gera¸c˜oes, tolerˆancia do valor da fun¸c˜ao de avalia¸c˜ao de 1 × 10−60, fra¸c˜ao de crossover de 0, 4 e sele¸c˜ao feita por roleta, sem elitismo. A muta¸c˜ao foi determinada pela fun¸c˜ao mutationfeasible do MATLAB. Com isso, o erro cartesiano no rastreamento da trajet´oria foi da ordem de 10−3 mm, como mostrado na Figura 5.13.