Você está na página 1de 6

Modelagem inversa cinemtica em um brao robtico utilizando lgica fuzzy

Este exemplo mostra como usar um sistema fuzzy para modelar a cinemtica inversa em um brao robtico de dois conjunta.

O que cinemtica inversa?


Cinemtica a cincia do movimento. Em um brao robtico de dois conjunta, dado os ngulos das articulaes, as equaes
cinemticas dar a localizao da ponta do brao. A cinemtica inversa refere-se ao processo inverso. Dado um local desejado
para a ponta do brao robtico, o que deve os ngulos das articulaes ser de modo a posicionar a ponta do brao no local
desejado. H normalmente mais do que uma soluo e pode ser por vezes um problema difcil de resolver.
Este um problema tpico em robtica que tem de ser resolvido para controlar um brao robtico para realizar tarefas que
designada para fazer. Num espao de entrada 2-dimensional, com um brao robtico de duas articulaes e dada a
coordenada desejado, reduz o problema de encontrar os dois ngulos envolvidos. O primeiro ngulo entre o primeiro brao e
no solo (ou seja o que anexado a). O segundo ngulo entre o primeiro brao e o segundo brao.

Figura 1: Ilustrao que mostra o brao robtico de dois conjunta com os dois ngulos,

theta1 e theta2

Por que usar Fuzzy Logic?


Para estruturas simples, como o brao robtico de duas articulaes, possvel deduzir matematicamente os ngulos nas
articulaes dada a localizao desejada da ponta do brao. No entanto, com estruturas mais complexas (por exemplo: Nconjuntos braos robticos que operam em um espao de entrada 3-dimensional) deduzir uma soluo matemtica para a
cinemtica inversa pode ser um desafio.
Usando a lgica fuzzy, podemos construir um sistema de inferncia fuzzy que deduz a cinemtica inversa, se os cinemtica
direta do problema conhecida, portanto, evitando a necessidade de desenvolver uma soluo analtica. Alm disso, a soluo
difusa facilmente compreensvel e no requer conhecimento especial de fundo para compreender e avaliar.
Na seo seguinte, um esboo geral para o desenvolvimento de uma soluo deste tipo descrito, e mais tarde, os passos
detalhados so elaborados.

Viso geral da soluo fuzzy


Uma vez que so conhecidos a cinemtica frmulas para a frente para o brao robtico de dois conjunto, X e Y coordenadas
da ponta do brao so deduzidas para toda a gama de ngulos de rotao das duas juntas. As coordenadas e os ngulos so
salvos para serem usadas como dados de treinamento para treinar rede ANFIS (Adaptive Neuro-Fuzzy Inference System).
Durante o treinamento da rede ANFIS aprende a mapear as coordenadas (x, y) para os ngulos (theta1, theta2) . A
rede ANFIS treinada depois usado como uma parte de um sistema de controlo para controlar a maior brao
robtico. Sabendo a posio desejada do brao robtico, o sistema de controlo usa a rede ANFIS treinados para deduzir as
posies angulares das juntas e se aplica a fora para as articulaes do brao robtico de acordo com a mov-lo para o local
desejado.

O que ANFIS?
ANFIS significa Adaptive Neuro-Fuzzy sistema de inferncia. uma tcnica neuro-fuzzy hbrido que traz recursos de
aprendizagem de redes neurais para sistemas de inferncia fuzzy. O algoritmo de aprendizagem ajusta as funes de
pertinncia de um Sugeno tipo distorcido sistema de inferncia usando os dados de entrada e sada de treinamento.
Neste caso, os dados de entrada-sada refere-se "coordenadas de ngulos" de conjuntos de dados. As coordenadas agir
como entrada para o ANFIS e os ngulos de agir como a sada. O algoritmo de aprendizagem "ensina" o ANFIS para mapear

as coordenadas para os ngulos atravs de um processo chamado de treinamento. No final do treinamento, a rede ANFIS
treinados teria aprendido o mapa de entrada-sada e estar pronto para ser implantado na soluo maior do sistema de controle.

Gerao de dados
Deixe theta1 ser o ngulo entre o primeiro brao e o cho. Deixe theta2 ser o ngulo entre o segundo brao e o primeiro
brao (Ver Figura 1 para ilustrao). Deixe o comprimento do primeiro brao ser

L1 e a do segundo brao ser L2 .

Vamos assumir que o primeiro conjunto tem liberdade limitada a rodar e a poder rodar entre 0 e 90 graus. Da mesma forma,
assumir que o segundo conjunto tem limitado liberdade de rotao e pode rodar entre 0 e 180 graus. (Esta suposio tira a
necessidade de lidar com alguns casos especiais que iro confundir o discurso). Assim, 0 <= theta1 <= pi / 2 e 0

<= theta2 <= pi .

Figura 2: Ilustrao que mostra todas as possveis


Agora, para cada combinao de
cinemtica frmulas.

theta1 e theta2 valores.

theta1 e theta2 valoriza as coordenadas x e y so deduzidas usando a frente

O seguinte trecho de cdigo mostra como os dados so gerados para todos combinao de theta1 e theta2 valores e
salvo em uma matriz para ser usado como dados de treinamento. A razo para guardar os dados em duas matrizes explicado
na seco seguinte.

L1 = 10; % comprimento do primeiro brao


l2 = 7; % comprimento do segundo brao
theta1 = 0: 0,1: pi / 2; todos os valores possveis theta1%
theta2 = 0: 0,1: pi; % todos os valores possveis theta2
[THETA1, THETA2] = meshgrid (theta1, theta2); % gerar uma grade de valores
theta1 e theta2
X = L1 * cos (THETA1) + L2 * cos (THETA1 + THETA2); % computao x coordena
Y = L1 * sin (THETA1) + l2 * sin (THETA1 + THETA2); % computao coordenadas Y
data1 = [X (:) Y (:) THETA1 (:)]; % criar xy-theta1 dataset

data2 = [X (:) Y (:) THETA2 (:)]; % criar dataset xy-theta2


Clique aqui para obter o cdigo unvectorized
O grfico seguinte mostra todos os pontos de dados XY gerados por ciclismo atravs de diferentes combinaes
de theta1 e theta2 e deduzir x e y coordenadas para cada um. A trama pode ser gerado usando o trecho de cdigo
mostrado abaixo. O enredo ilustrado ainda mais para facilitar a compreenso.

plot (X (:), Y (:), 'r.');


eixo iguais;
xlabel ( 'X', 'TamanhoDoTipoDeLetra', 10)
ylabel ( 'Y', 'fontsize', 10)
Ttulo ( 'coordenadas XY gerada para todas as combinaes theta1 e theta2
usando frente frmula cinemtica', 'fontsize', 10)

Figura 3: XY coordenadas gerado para todos os theta1 e theta2 combinaes usando frente cinemtica frmulas

Construo ANFIS Networks


Uma abordagem para a construo de uma soluo ANFIS para este problema, a construo de duas redes ANFIS, um para
prever theta1 eo outro para prevertheta2 .
Para que as redes ANFIS para ser capaz de prever os ngulos que tm que ser treinados com dados de amostra de entradasada. A primeira rede ANFIS sero treinados com coordenadas X e Y como entrada e correspondente theta1 valores como
sada. A matriz de dados
ANFIS. Portanto dados

1 contm o xy-theta1 conjunto de dados necessrio para treinar a primeira rede


1 vai ser utilizado como o conjunto de dados para formar a primeira rede ANFIS.

Da mesma forma, a segunda rede ANFIS sero treinados com coordenadas X e Y como entrada e
correspondente theta2 valores como sada. A matriz de dados 2contm o xy-theta2 conjunto de dados necessrio
para treinar a segunda rede ANFIS. Portanto dados
rede ANFIS.

2 vai ser utilizado como o conjunto de dados para formar a segunda

ANFIS a funo que usado para treinar uma rede ANFIS. Existem vrias sintaxes para a funo. Se chamado com a
seguinte sintaxe, ANFIS automaticamente cria um Sugeno tipo FIS e treina-lo usando os dados de treinamento passados
para a funo.
O cdigo a seguir pode levar um par de minutos para ser executado:

fprintf ( '->% s \ n' , '.. Comear a treinar primeira rede ANFIS Pode levar um minuto
dependendo do seu sistema de computador' )
anfis1 = ANFIS (data1, 7, 150, [0,0,0,0]); % trem primeira ANFIS rede
fprintf ( '->% s \ n' , 'Comear a treinar segunda rede ANFIS Pode levar um minuto.
dependendo do seu sistema de computador. " )
anfis2 = ANFIS (data2, 6, 150, [0,0,0,0]); % trem segunda ANFIS rede
-> Comear a treinar primeira rede ANFIS. Pode demorar um minuto dependendo do
seu sistema de computador.
-> Comear a treinar segunda rede ANFIS. Pode demorar um minuto dependendo
do seu sistema de computador.
O primeiro parmetro para ANFIS a dados de treinamento, o segundo parmetro o nmero de funes de pertinncia
utilizados para caracterizar cada entrada e sada, o terceiro parmetro o nmero de treinamento pocas e o ltimo parmetro
so as opes para mostrar o progresso durante o treinamento. Os valores para o nmero de pocas e do nmero de funes
de pertinncia foram obtido aps uma boa quantidade de experimentao com diferentes valores.
A caixa de ferramentas vem com GUI do que ajuda a construir e testar redes ANFIS.

anfis1 e anfis2 representam as duas redes ANFIS treinados que sero implantados no sistema de controle maior.
Uma vez que a formao completa, as duas redes ANFIS teria aprendido a aproximar os ngulos (

theta1, theta2 )

em funo das coordenadas ( x, y ). Uma vantagem de utilizar a abordagem difusa que a rede ANFIS seria agora aproximar
os ngulos de coordenadas que so semelhantes, mas no exactamente a mesma que foi treinado com. Por exemplo, as
redes ANFIS treinados agora so capazes de aproximar os ngulos para coordenadas que se encontram entre dois pontos que
foram includos no conjunto de dados de treinamento. Isto ir permitir que o controlador final para mover o brao suavemente
no espao de entrada.
Temos agora duas redes ANFIS treinados que esto prontos para ser implantado no sistema maior, que ir utilizar essas redes
para controlar os braos robticos.

Validando ANFIS Networks


Tendo treinado as redes, uma importante etapa de acompanhamento validar as redes para determinar o quo bem as redes
ANFIS iria realizar dentro do sistema de controle maior.
Uma vez que este problema exemplo lida com um brao robtico de dois joint cuja inversa cinemtica frmulas podem ser
derivadas, possvel testar as respostas que as redes ANFIS produzir com as respostas das frmulas derivadas.
Vamos supor que importante para as redes ANFIS a ter baixos erros dentro da faixa de operao

0 <x <2 e 8 <y

<10 .
x = 0: 0,1: 2; % X coordenadas para validao
y = 8: 0,1: 10; coordenadas Y% para validao
Os theta1 e theta2 valores so deduzidos matematicamente a partir as coordenadas x e y Uso de cinemtica inversa
frmulas.

[X, Y] = meshgrid (x, y);


C2 = (X + Y. ^ 2 ^ 2 - 2 ^ L1 - L2 ^ 2) / (2 * * L1 L2);
S2 = sqrt (1 - 2 ^ C2.);
THETA2D = atan2 (s2, c2); % theta2 deduzida
k1 = L1 + L2 * c2.;
K2 = L2 * s2;
THETA1D = atan2 (Y, X) - atan2 (k2, k1); % theta1 deduzida
Clique aqui para obter o cdigo unvectorized

THETA1D e THETA2D so as variveis que mantm os valores de theta1 e theta2 deduzidas atravs das
frmulas de cinemtica inversa.

theta1 e theta2 valores previstos pelas redes treinadas ANFIS so obtidos usando o comando evalfis que avalia uma
FIS para as entradas dadas.

Aqui, evalfis usado para descobrir as sadas FIS para os mesmos valores xy usados anteriormente nas frmulas de
cinemtica inversa.

XY = [X (Y :) (:)];
THETA1P = evalfis (XY, anfis1); % theta1 previsto por anfis1
THETA2P = evalfis (XY, anfis2); % theta2 previsto por anfis2
Agora, podemos ver o quo perto as sadas FIS so com relao aos valores deduzidos.

theta1diff = THETA1D (:) - THETA1P;


theta2diff = THETA2D (:) - THETA2P;
subplot (2,1,1);
plot (theta1diff);
ylabel ( 'THETA1D - THETA1P' , 'fontsize' , 10)
ttulo ( 'theta1 deduzida - Previsto theta1' , 'fontsize' , 10)
subplot (2,1,2);
plot (theta2diff);
ylabel ( 'THETA2D - THETA2P' , 'fontsize' , 10)
ttulo ( 'theta2 deduzida - Previsto theta2' , 'fontsize' , 10)

Os erros esto na 1e-3 gama, que um bastante bom nmero para a aplicao que est sendo usado. No entanto isso pode
no ser aceitvel para outra aplicao, caso em que os parmetros para o ANFIS funo pode ser mexido at que uma
soluo aceitvel chegado. Alm disso, outras tcnicas como a seleo de entrada e formas alternativas para modelar o
problema pode ser explorado.

Construindo uma soluo torno das Redes ANFIS treinados


Agora dada uma tarefa especfica, como robs pegar um objeto em uma linha de montagem, o sistema de controle maior vai
utilizar as redes ANFIS treinados como referncia, bem como uma tabela de pesquisa, para determinar o que os ngulos dos
braos deve ser, dado um local desejado para a ponta do brao. Conhecendo os ngulos desejados e os ngulos actuais das
articulaes, o sistema ir aplicar fora apropriadamente nas articulaes dos braos para mov-los para o local desejado.
O invkine comando inicia uma interface grfica que mostra como as duas redes ANFIS treinados executar quando pediu para
traar uma elipse.

Figura 4: GUI para Cinemtica Inversa Modeling.


As duas redes ANFIS utilizados no exemplo foram pr-formados e esto instalados dentro de um sistema maior que controla a
ponta do brao rob de duas articulaes para rastrear uma elipse no espao de entrada.
A elipse a ser traado podem ser movimentados. Mover a elipse para uma localizao ligeiramente diferente e observar como o
sistema responde movendo-se a ponta do brao robtico da sua actual localizao para o ponto mais prximo do novo local da
elipse. Observar tambm que o sistema responde suavemente enquanto a elipse a ser rastreada, dentro das manchas no "x"
marcadas que representam a grade de dados que foi utilizado para formar redes. Uma vez que a elipse movido fora do
intervalo de dados que ele foi treinado com, as redes ANFIS responder de forma imprevisvel. Isso enfatiza a importncia de ter
dados relevantes e representativos para o treinamento. Os dados devem ser gerados com base no intervalo esperado de
operao para evitar tais problemas imprevisibilidade e instabilidade.

Concluso
Este exemplo ilustra usando ANFIS para resolver um problema de cinemtica inversa. A lgica fuzzy tambm encontrou vrias
outras aplicaes em outras reas de tecnologia como o controle no-linear, controle automtico, processamento de sinal,
sistema de identificao, reconhecimento de padres, a previso de sries temporais, minerao de dados, aplicaes
financeiras etc.,
Explorar outros demos e a documentao para mais detalhes sobre a lgica fuzzy e suas aplicaes.

Glossrio
ANFIS - Adaptive Neuro-Fuzzy sistema de inferncia. uma tcnica para ajustar automaticamente os sistemas de inferncia
Sugeno-tipo com base em dados de treinamento.
funes de pertena - uma funo que especifica o grau em que uma dada entrada pertence a um conjunto ou est
relacionada com um conceito.
espao de entrada - um termo usado para definir o intervalo de todos os valores possveis
FIS - distorcido sistema de inferncia. O nome geral para um sistema que usa o raciocnio distorcido para mapear um espao
de entrada para um espao de sada.
pocas - 1 poca de formao representa uma apresentao completa de todas as amostras / datapoints / linhas do conjunto
de dados de treinamento para o FIS.As entradas de cada amostra so apresentados e as sadas FIS so calculados que so
comparados com os resultados desejados para calcular o erro entre os dois.Os parmetros das funes de pertena so, em
seguida, ajustado para reduzir o erro entre a sada desejada e a sada real FIS.