controle de um robô do tipo differential drive através de...

13
Controle de um Robô do tipo differential drive através de Lógica Fuzzy e Redes Neurais FELIPE A. W. BELO, MARCO A. MEGGIOLARO, CARLOS HALL, RICARDO TANCHEIDT ICA : Laboratório de Inteligência Computacional Aplicada Departamento de Engenharia Elétrica Pontifícia Universidade Católica do Rio de Janeiro, PUC-Rio Rua Marquês de S. Vicente 225, Gávea, Rio de Janeiro, CEP 22453-900, RJ, Brasil Palavras Chave: Inteligência Artificial, Lógica Fuzzy, Redes Neurais, Robótica, Controle, Differential Drive . 1 – Resumo O problema aqui apresentado é o de se determinar a ação de um robô do tipo differential drive para se chegar a uma posição desejada. Possíveis soluções podem ser determinadas através da cinemática indireta do robô, porém, as soluções aqui empregadas utilizam Lógica Fuzzy e Redes Neurais. Para aplicação e teste das técnicas propostas foi desenvolvido um simulador para o robô. O Controlador Fuzzy desenvolvido trabalha com regras arbitradas. Já a Rede Neural, é treinada através de um histórico gerado pelo controle humano do robô. São propostos e testados diferentes Controladores Fuzzy. O mesmo acontece com Redes Neurais. Diferentes Redes são treinadas e aqui apresentadas. Foram obtidos bons resultados com as duas técnicas e são feitas diversas propostas visando resultados ainda melhores.

Upload: lykhuong

Post on 25-Jan-2019

232 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Controle de um Robô do tipo differential drive através de ...meggi.usuarios.rdc.puc-rio.br/paper/C066_NanoBio04_Controle_de_um... · O uso de robôs móveis tem se popularizado

Controle de um Robô do tipo differential drive através de Lógica Fuzzy e Redes Neurais

FELIPE A. W. BELO, MARCO A. MEGGIOLARO, CARLOS HALL, RICARDO TANCHEIDT

ICA : Laboratório de Inteligência Computacional Aplicada

Departamento de Engenharia Elétrica

Pontifícia Universidade Católica do Rio de Janeiro, PUC-Rio

Rua Marquês de S. Vicente 225, Gávea, Rio de Janeiro, CEP 22453-900, RJ, Brasil

Palavras Chave: Inteligência Artificial, Lógica Fuzzy, Redes Neurais, Robótica, Controle, Differential Drive .

1 – ResumoO problema aqui apresentado é o de se determinar a ação de um robô do tipo differential drive para se chegar a umaposição desejada. Possíveis soluções podem ser determinadas através da cinemática indireta do robô, porém, assoluções aqui empregadas utilizam Lógica Fuzzy e Redes Neurais. Para aplicação e teste das técnicas propostas foidesenvolvido um simulador para o robô.

O Controlador Fuzzy desenvolvido trabalha com regras arbitradas. Já a Rede Neural, é treinada através de umhistórico gerado pelo controle humano do robô.

São propostos e testados diferentes Controladores Fuzzy. O mesmo acontece com Redes Neurais. Diferentes Redessão treinadas e aqui apresentadas.

Foram obtidos bons resultados com as duas técnicas e são feitas diversas propostas visando resultados aindamelhores.

Page 2: Controle de um Robô do tipo differential drive através de ...meggi.usuarios.rdc.puc-rio.br/paper/C066_NanoBio04_Controle_de_um... · O uso de robôs móveis tem se popularizado

2 – Introdução

O uso de robôs móveis tem se popularizado nosúltimos anos com o aparecimento de robôs pessoaise privados. Do uso doméstico, que inclui aspiradoresrobóticos autônomos, a robôs para entretenimento,que incluí de brinquedos (como o AIBO da Sony) akits de robótica (como o Mindstorms da LEGO), évisível que a robótica não está mais restrita ao cenárioindustrial. Se a tecnologia para robôs de uso pessoalcrescer como promete, com preços competitivos, eboa aceitação comercial, este pode vir a ser umgrande mercado em um futuro próximo.

Grandes avanços têm sido feitos na área de robôsmóveis pessoais como pode ser visto em (Vivek, A.S.e Meggiolaro, M.A. [3]). Apesar dos custosenvolvendo hardware terem decrescido, fatoreseconômicos vão requerer a substituição dearquiteturas complexas por sistemas inteligentes e debaixo custo.

Robôs do tipo differential drive são possivelmente os demecânica mais simples dentre os robôs móveis,tornando-os bastante atrativos dentro do panoramaatual. Dentre outras vantagens, estes robôs possuemcaracterísticas vantajosas na locomoção emambientes estreitos devido a sua cinemática. O designdifferential drive é muito comum em robôs pequenos,de baixo custo e para uso indoor.

Além do design, outras características são de grandeimportância quando se trata de robôs móveis. Acriação de robôs autônomos é de maior relevânciaem robótica e requer o planejamento e execução domovimento de maneira automática, como pode serverificado em (Latombe, J.C. [11]). Porém, ainteligência operacional da qual o ser humano édotado, e com a qual lida de modo inconsciente parainteragir com o ambiente, perceber o mesmo eplanejar o movimentos, é de difícil reprodução porum programa de computador.

Do desafio de se criar uma inteligência artificialinspirada na inteligência humana, a InteligênciaComputacional é uma área da ciência que buscareproduzir aspectos humanos e da natureza, taiscomo: aprendizado, reprodução, raciocínio, evoluçãoe adaptação.

Dentre suas técnicas, as Redes Neuraiscompreendem modelos computacionais não lineares,inspirados no funcionamento do cérebro humano,procurando reproduzir, dentre outras características,o aprendizado. Das várias áreas onde Redes Neurais

Artificiais são empregadas, uma miríade de aplicaçõesestão relacionadas a veículos inteligentes e robótica.Algumas destas aplicações podem ser encontradasem (Pomerlau, D.A [13]). Provavelmente, a aplicaçãomais famosa é o sistema ALVINN [13], usado nocontrole de movimento do véiculo ALV(AutonomousLand Vehicle) da Carnegie-Mellon University. ALVINNutiliza uma Rede Neural para controlar a direção doveículo a partir de imagens obtidas por câmeras esensores de distância. O aprendizado desta rede éfeito através do histórico da direção realizada poruma pessoa. Este tipo de treinamento é parecido como que será apresentado aqui.

Outra técnica da Inteligência Computacional queencontra um vasto campo de aplicações em robóticaé a Lógica Fuzzy. A Lógica Fuzzy trabalha com amodelagem do raciocínio aproximado do serhumano, sendo capaz de inferir soluções emambientes não lineares e imprecisos. Um grandenúmero de aplicações relacionadas à robótica trabalhacom o uso de Sistemas Fuzzy como controladores(Mendel, J.M. [7]), uso que aqui também seráexplorado.

O problema aqui apresentado é o de se determinar aação de um robô do tipo differential drive para se chegara uma posição desejada. Este é um problema decontrole usual onde se deseja determinar a atuaçãodos motores do robô sabendo-se de seu estado e suaposição relativa à posição de destino. Soluçõespossíveis podem ser determinadas através dacinemática indireta do robô (Dudek, G. e Jenkin, M.[2]), porém, as soluções aqui empregadas utilizamLógica Fuzzy e Redes Neurais. A aplicação destastécnicas permite a extensão deste projeto para asolução de problemas mais complexos sem anecessidade de ampla modelagem matemática dosmesmos. Há inclusive a pretensão de futuraimplementação destas técnicas em conjunto com oalgoritmo de modelagem e navegação proposto em(Vivek, A.S. e Meggiolaro, M.A. [3]).

Tanto o sistema Fuzzy quanto a Rede Neural aquidesenvolvidos são utilizados como controladores dorobô em um ambiente simulado. A maior diferençaentre as duas técnicas está em a Rede Neural sertreinada através de um histórico gerado pelo controlehumano do robô (em simulação), e a lógica Fuzzy tersuas regras arbitradas através do conhecimento efamiliaridade com o problema.

Para aplicação e teste das técnicas propostas foidesenvolvido um simulador para o robô, já visandoseu uso futuro junto ao algoritmo citadoanteriormente e proposto em (Vivek, A.S. e

Page 3: Controle de um Robô do tipo differential drive através de ...meggi.usuarios.rdc.puc-rio.br/paper/C066_NanoBio04_Controle_de_um... · O uso de robôs móveis tem se popularizado

Meggiolaro, M.A. [3]). Um grande número desimuladores de robôs móveis tem sido desenvolvidonos últimos anos, alguns deles simulando robôs dotipo differential drive. A opção de desenvolver um novosimulador ao invés de se usar algum existente vem dapossibilidade de se trabalhar os problemas aquiabordados, e os problemas a serem desenvolvidos emtrabalhos futuros, levando em consideração suasparticularidades.

3 – Controle de um robô do tipo differential drive

Figura 1. Robô Sentinela. Robô do tipo differential drivedesenvolvido na PUC-Rio.

Descrição e cinemática de um robô do tipo differentialdrive podem ser encontrados em (Bräun, T. [1]) ou(Dudek, G. e Jenkin, M. [2]).

O design differential drive é definido por umaarquitetura com dois motores, de eixo em comum,montados em posições fixas nas laterais de um robô,e controle independente para cada roda. Devido ànecessidade de três pontos de contato com o solo,utiliza-se uma ou mais rodas ou pontos de apoiopassivos.

Este design é possivelmente o de mecânica maissimples dentre os robôs móveis. Porém, o seucontrole e sua física possuem certa complexidadedevido à coordenação das duas rodas serindependente. O design differential drive costuma serutilizado em robôs pequenos, de baixo custo e oupara uso indoor, tal como o robô Khepera [6].

Sua cinemática lida com a relação entre asvelocidades das duas rodas. Com as duas rodas emmesma velocidade e direção, o robô se move parafrente ou para trás. Para uma roda com velocidadesuperior a outra, o robô anda em curva ao longo doum arco de um círculo. Para os motores com mesmavelocidade e direções opostas, o robô roda em tornodo centro do eixo comum as duas rodas.

Ao serem aplicadas velocidades aos motores, o robôroda em torno de um ponto comum ao eixo de suas

rodas. Variando-se a velocidade das rodas, este pontopode ser mudado alterando as trajetórias escolhidas.Este ponto de rotação será definido como ICC. Oproblema está ilustrado na figura 2.

Figura 2.

Em determinado momento do tempo, o robô segueum caminho em torno de ICC com uma velocidadeangular comum w :

( )( ) l

r

vlRw

vlRw

=+

=+

2

,2

Onde:l – Distância entre as duas rodas;vl – Velocidade da roda esquerda;vr – Velocidade da roda direita;R – Distância do ponto ICC para o ponto centralentre as duas rodas;

Em determinado instante no tempo, resolvendo-separa R e para w:

( )( )

lvvw

vvvvlR

lr

lr

rl

−=

−+= ,2

As equações acima levam a algumas situaçõesinteressantes. Para vr = vl , tem-se R infinito,eportanto, o robô move-se em linha reta. Para vr = - vl ,R é igual a zero e portanto o robô roda em torno doponto central entre as duas rodas. Esta característicatorna este tipo de robô atraente para navegação emambientes estreitos. Porém, sua cinemática impededeterminados movimentos, tal como sua navegaçãosobre o eixo comum à suas rodas.

Um problema deste design é a sensibilidaderelacionada às velocidades das duas rodas. Pequenoserros podem levar a diferentes trajetórias, limitandosua aplicabilidade.

Page 4: Controle de um Robô do tipo differential drive através de ...meggi.usuarios.rdc.puc-rio.br/paper/C066_NanoBio04_Controle_de_um... · O uso de robôs móveis tem se popularizado

3-1 – Cinemática direta

Considerando a posição do robô em (x, y) direção θ(em relação ao eixo x) e velocidades vr e vl , duranteum período tt ∂→ , tem-se:

( ) ( )[ ]( ) ( )( ) ( )

∂+

−−

∂∂∂−∂

=

+−=

twICCICC

ICCyICCx

twtwtwtw

yx

RyRxICC

y

x

y

x

θθ

θθ

1000cossin0sincos

'''

,cos,sin

Para o caso particular em que vr = vl, = v, a equação ésimplificada para:

E para o caso em que vr = -vl, = v, obtém-se:

∂+=

ltv

yx

yx

2'''

θθ

As equações apresentadas acima foram às utilizadasna construção do simulador desenvolvido.

Integrando-se tais equações a partir de uma condiçãoinicial (x0 ,y0 , θ0 ), é possível computar a posição dorobô em qualquer instante t. Em contrapartida acinemática direta, pode-se também calcular acinemática inversa, para a qual, dado um instante t eposição desejada x e y (sem controle independente deθ), encontra-se vr e vl,. Há porém, infinitas soluçõespara vr e vl,. Neste projeto, não se procura traçar umatrajetória calculada para se chegar a uma posiçãodesejada, mas sim, se utilizar Lógica Fuzzy e RedesNeurais para tal objetivo. O uso destas técnicas nãoimplica em um melhor resultado, mas possibilitaatravés de variações na implementação, do trato deproblemas semelhantes, envolvendo outrascomplicações, e de modelagem matemática difícil.

3-2 – Lógica Fuzzy

Em (Mendel, J.M. [7]) é apresentado uma propostapara controladores fuzzy de caráter geral onde asentradas do sistema fuzzy são usualmente o erro entreo sinal de referência e a saída da planta, e a variaçãodeste erro. A saída do controlador é geralmente umavariação no controle.

Outras propostas, como em (Tanscheit, R. [8])sugerem como entradas parâmetros específicos doproblema.

SistemaFuzzy

d

α

Velocidade ouAceleração daRoda Esquerda

Velocidade ouAceleração daRoda Direita

Figura 3. Diagrama do Sistema Fuzzy

No problema aqui apresentado, foram escolhidascomo entradas do Sistema Fuzzy a distânciacartesiana d entre o robô e a posição destino, e oângulo α entre o robô e a posição destino. O sistemaestá exemplificado na figura 3.

Para as saídas do sistema, foram exploradas duaspossibilidades. Na primeira, as acelerações relativasaos motores são as saídas do Sistema Fuzzy. Esta é aescolha mais coerente com uma implementação real.Porém, não é a mais coerente com as entradasescolhidas. Como segunda possibilidade, asvelocidades das rodas do robô são as saídas dosistema.

Nos dois casos, têm-se duas variáveis de saída, umaassociada ao motor esquerdo e outra ao motordireito. A segunda possibilidade não trata de umcenário real, mas sim ideal, pois não se impõe avelocidade de um motor diretamente. Estapossibilidade pode ser coerente se as velocidadesencontradas na saída do sistema fuzzy forem utilizadascomo entradas de novos controladores, quepoderiam ser fuzzy ou não. O uso destes novoscontroladores atrelados ao sistema fuzzy não foisimulado, ficando portanto proposto para futurostrabalhos. Nas simulações onde as velocidades foramutilizadas como saídas do sistema, definiu-se ocenário como ideal, sendo as velocidades diretamenteaplicadas as rodas.

α

d

Figura 4. Robô em relação a posição desejada

A distância d e o ângulo α podem ser vistos na figura4 e foram definidos como:

( )( )

∂+∂+

=

θθθ

θtvytvx

yx

sincos

'''

Page 5: Controle de um Robô do tipo differential drive através de ...meggi.usuarios.rdc.puc-rio.br/paper/C066_NanoBio04_Controle_de_um... · O uso de robôs móveis tem se popularizado

( ) ( )

θα −

−−=

−+−=

xxyy

yyxxd

''tan

,''

1

22

Onde x e y são as coordenadas cartesianas do centrodo eixo entre as rodas do robô, θ é a direção do robôem relação ao eixo x e x’ e y’ são as coordenadas daposição de destino.

Para simplificar o problema, as variáveis de entrada esaída foram tratadas por universos discretos enormalizados, apresentados abaixo:

{ }{ }{ }6,4,2,0,2,4,6

,180,120,60,0,60,120,180,6,5,4,3,2,1,0

−−−=−−−=

=

out

d

UUU

α

A distância d foi escalonada entre 0 e uma distânciamáxima. As saídas foram escalonadas entrevelocidades mínimas e máximas para o caso dassaídas serem as velocidades nas rodas, ou aceleraçõesmínimas e máximas para o caso das saídas serem asacelerações.

Os conjuntos fuzzy foram definidos de formaaproximadamente triangular , simétricos, e com grausde pertinência {0,3; 0,7; 1; 0,7; 0,3}. Os conjuntosfuzzy podem ser vistos nas figuras 5,6 e 7.

Ângulos

0

0,2

0,4

0,6

0,8

1

180 120 60 0 -60 -120 -180

PBPMOSZONSNMNB

Figura 5. Conjuntos Fuzzy relacionados ao ânguloDistância

0

0,2

0,4

0,6

0,8

1

0 1 2 3 4 5 6

ZOPSSPSPMSPMPBSPB

Figura 6. Conjuntos Fuzzy relacionados a distância

Saídas

0

0,2

0,4

0,6

0,8

1

-6 -4 -2 0 2 4 6

NBNMNSZOPSPMPB

Figura 7. Conjuntos Fuzzy relacionados as saídas

O armazenamento das regras foi feito comoproposto em (Mendel, J.M. [7]) utilizando umnúmero para representar os conjuntos fuzzyassociados as variáveis de saída do sistema.

O método de defuzificação utilizado foi o CoM (Center ofMaximums) e para operador de agregação dosantecedentes foram utilizados tanto o operadormínimo como o operador produto.

A interface do simulador para definição das regrasfuzzy é apresentada abaixo:

Figura 8. Interface para definição das regras

3.3 – Rede Neural

A Rede Neural é utilizada para o controle do robô demaneira similar à lógica fuzzy. As entradas da redeconstituem-se de parâmetros da cinemática do robôno instante t e de sua posição em relação à posiçãodesejada. As saídas são ou as acelerações ou asvelocidades a serem aplicadas às rodas do robô.

Page 6: Controle de um Robô do tipo differential drive através de ...meggi.usuarios.rdc.puc-rio.br/paper/C066_NanoBio04_Controle_de_um... · O uso de robôs móveis tem se popularizado

RedeNeural

d

αAceleração da Roda

Esquerda

Aceleração da RodaDireita

Vr

Vl

RedeNeural

d

α

Velocidade da RodaEsquerda

Velocidade da RodaDireita

Figura 9. Redes Neurais propostas

Inicialmente, propôs-se trabalhar com quatroentradas, correspondentes à distância cartesiana dentre o robô e a posição destino, o ângulo α entre orobô e a posição destino e as velocidades das rodasdireita e esquerda. Para esta configuração, as saídasutilizadas seriam as acelerações correspondentes àsrodas. Como esta rede não estava apresentando bonsresultados, a rede foi simplificada de modo a facilitaro seu ajuste na busca por melhores resultados.Posteriormente, verificou-se que os maus resultadosobtidos não estavam atrelados à complexidade darede, mas sim a outros fatores, portanto, ficaproposto o uso da rede como inicialmente pensadapara trabalhos futuros.

A segunda rede proposta foi a rede efetivamentetestada. Sua configuração é semelhante ao SistemaFuzzy utilizado. Suas entradas correspondem a d e aα, e suas saídas correspondem às velocidades dasrodas do robô. Como para o sistema fuzzy, estemodelo não representa a realidade fielmente, dadoque as velocidades não podem ser aplicadasdiretamente às rodas como já comentado. Porém,pode-se fazer como proposto para o Sistema Fuzzy,utilizando novas malhas de controle, para as quais asentradas seriam as velocidades inferidas pela RedeNeural. Estas malhas de controle também poderiamser implementadas por Redes Neurais.

Nas simulações aqui descritas, admitiu-se o cenáriocomo ideal, aplicando-se as velocidades inferidasdiretamente sobre as rodas do robô. Fica proposta a

simulação completa, com as malhas de controlesugeridas, para trabalhos futuros.

A rede utilizada foi do tipo multi-layer perceptron , comuma camada escondida. O algoritmo de treinamentoempregado foi o Back Propagation , com treinamentoincremental e utilizando-se o termo momento. Paraimplementação da rede, usou-se a biblioteca Annie[9], implementada em C++ e de código fonte aberto.

As entradas e saídas foram normalizadas entre {0,1}da seguinte maneira:

- Distância d: Normalizada de 0 a uma distânciamáxima. Valores acima desta distância foramcomputados como 1;- Ângulo α: Normalizado entre 0 e 360 graus;- Velocidades: Normalizadas entre –Max e Max, ondeMax corresponde às velocidades máximas do robô;

Os padrões de treinamento foram obtidos através decorridas efetuadas e gravadas no simulador. Osimulador desenvolvido permitia o controle do robôatravés do teclado, possibilitando o armazenamentode todos os parâmetros relacionados ao robô durantea corrida para uso posterior. Portanto, várias corridasforam gravadas, nelas, o robô foi movido para aposição destino a partir de diversas posições iniciais.Posteriormente, um grupo de padrões eraselecionado a partir destes históricos e repassado parao treinamento da Rede Neural.

É interessante perceber que o método aplicado podeser empregado em problemas mais complexos,envolvendo sensoriamento e atuadores diversos. Umproblema proposto é a variação do problema aquitratado com obstáculos. Neste problema, as entradasda rede neural poderiam incluir dados do ambienteobtidos através de sensores.

O mesmo método também pode ser aplicado emjogos no treinamento de agentes utilizando-se ohistórico de partidas com jogadores reais. Em umjogo de corrida, por exemplo, os corredores virtuais(agentes) poderiam aprender com o histórico departidas efetuadas por corredores reais.

As soluções encontradas por uma Rede Neuraltreinada da maneira proposta não buscam o resultadoótimo, e sim, aproximar as soluções humanasutilizadas para treinamento da rede.

A interface do simulador para trabalhar com a RedeNeural pode ser vista na figura 10.

Page 7: Controle de um Robô do tipo differential drive através de ...meggi.usuarios.rdc.puc-rio.br/paper/C066_NanoBio04_Controle_de_um... · O uso de robôs móveis tem se popularizado

Figura 10. Interface para treinamento da Rede Neural

4 – Resultados Experimentais4.1 – Aplicando a Lógica Fuzzy

Foram experimentados diversos conjuntos de regraspara o Controlador Fuzzy.

Em todos os experimentos, as regras de saída paraum motor eram o espelho vertical das regrasescolhidas para o outro motor. Isto é intuitivo e fazsentido pela própria cinemática do robô. O resultadodesta prática é que dada uma mesma distância inicial,e para ângulos entre o robô e a posição objetivosimétricos, as saídas obtidas resultam em trajetóriastambém simétricas. Veja no exemplo abaixo:

Figura 11. Trajetórias simétricas

Seguindo-se este critério e procurando-se definir omenor conjunto de regras fuzzy, são apresentadosdois conjuntos de regras encontrados para duassituações distintas. Nestes dois experimentos, assaídas do controlador são referentes às velocidadesdas rodas do robô.

No primeiro conjunto de regras apresentado, buscou-se definir um controle onde o robô sempre semovesse para frente. Este conjunto é apresentado nafigura 12.

Algumas trajetórias encontradas utilizando-se esteconjunto de regras e o operador mínimo podem servistas na figura 13 . A distância máxima utilizada paraeste experimento foi de aproximadamente um quartoda tela do simulador.

Figura 12. Regras Fuzzy para Experiência 1

Page 8: Controle de um Robô do tipo differential drive através de ...meggi.usuarios.rdc.puc-rio.br/paper/C066_NanoBio04_Controle_de_um... · O uso de robôs móveis tem se popularizado

Figura 13. Trajetórias da experiência . As linhas vermelhas indicam as trajetórias percorridas. A cruzes vermelhas indicam as posições de

destino.

Este conjunto de regras respondeu bem a todas asposições iniciais testadas. Os operadores mínimo eproduto não levaram a diferenças significativas nastrajetórias encontradas.

Tentativas de se fazer o robô terminar mais próximodo objetivo acrescentando-se regras para osconjuntos PSS ou PS de distância não foram bemsucedidas. Estas regras faziam com que o sistemagerasse saídas diferentes de zero para distância zero, eportanto, o robô poderia não parar, muitas vezeschegando a oscilar quando próximo do objetivo. Umexemplo pode ser visto nas figuras 14 e 15.

Figura 14. Regras Fuzzy de exemplo

Figura 15. Trajetória de exemplo

Neste exemplo, o robô fica circulando ao redor daposição objetivo indefinidamente.

É interessante perceber que a maneira como osconjuntos fuzzy relacionados aos ângulos de entradaforam definidos favorece este controle específico.

São definidas regras diferentes para os conjuntoscentrados em -180 e 180 graus, quando, na verdade,eles representam o mesmo ângulo. Do modo em queo sistema foi implementado, estas regras não sesobrepõem. Isto permite que as ações relativas aosângulos negativos sejam desacopladas das açõesrelativas aos ângulos positivos.

Para que os conjuntos centrados em -180 e 180fossem acionados ao mesmo tempo, os conjuntosFuzzy teriam de ser definidos como demonstrado nafigura 16.

Page 9: Controle de um Robô do tipo differential drive através de ...meggi.usuarios.rdc.puc-rio.br/paper/C066_NanoBio04_Controle_de_um... · O uso de robôs móveis tem se popularizado

Ângulos

0

0,2

0,4

0,6

0,8

1

180 120 60 0 -60 -120 -180

PMZONM

Figura 16. Proposta de Conjuntos Fuzzy para ângulo

Só estão representados 3 conjuntos para facilitar avisualização.

Na definição feita na figura 16, os conjuntos nãoseriam limitados pelos ângulos -180 e 180, mas sim,atravessariam de um ângulo ao outro, dado que sãoiguais.

Para fazer o robô andar sempre para frente, tendo-setão poucos conjuntos relacionados ao ângulo deentrada, não seria adequado utilizar tal representação,pois não seria possível desacoplar ações relativas àângulos positivos de ações relativas à ângulosnegativos como foi feito.

Porém, para fazer o robô andar tanto para frentequanto para trás, a representação utilizada não sedemonstrou ideal, sendo proposto fazer como nafigura 16.

No segundo experimento se tenta fazer o robô andartanto para frente quanto para trás. As regrasescolhidas para este segundo experimento estão nafigura 17 e algumas trajetórias encontradas utilizando-se o operador produto podem ser vistas na figura 17.

Figura 17. Regras Fuzzy para Experiência 2

Figura 18. Trajetórias da experiência 2

Page 10: Controle de um Robô do tipo differential drive através de ...meggi.usuarios.rdc.puc-rio.br/paper/C066_NanoBio04_Controle_de_um... · O uso de robôs móveis tem se popularizado

Não se conseguiu trabalhar com o operador mínimopara obter os resultados desejados. Mesmoutilizando-se o operador produto, pequenas variaçõesnas regras levavam a resultados completamentediferentes.

Este conjunto de regras respondeu bem para agrande maioria das posições iniciais testadas, mas nãoa todas. Além disto, o comportamento do robô nãofoi o mesmo para trajetórias em que este se moviapara frente e trajetórias em que se movia para trás.

Além da proposta exemplificada na figura 16, ficampropostas as seguintes idéias:

- Definir um número maior de conjuntos relativos aoângulo, melhorando a discretização do problema;- Trabalhar com o problema não discretizado;- Trabalhar com outros métodos de defuzificação;

Também foram feitos experimentos utilizando-se asacelerações como saídas do Sistema Fuzzy. Osresultados obtidos foram péssimos, pois ocontrolador gerava grandes oscilações. Para ilustrar oproblema, são apresentadas duas experiênciasexecutadas:

Figura 20. Trajetórias para acelerações como saídas

O controle é tão ruim porque o sistema não temconhecimento sobre as velocidades do robô ou sobrea derivada da distância d e a derivada do ângulo α.Fica proposto para trabalhos futuros odesenvolvimento de um Controlador Fuzzy estesdados como entradas. Porém, a melhor opção deveser trabalhar com um segundo controlador, como jáproposto em 3-2 – Lógica Fuzzy.

O Controlador Fuzzy que apresentou os melhoresresultados foi o do primeiro teste. Porém, há sempre

um erro entre a posição desejada e a posição obtida.Este erro é pequeno e da ordem de 5% da distânciamáxima. O erro pode ser diminuído ao diminuir-se adistância máxima, mas isto pode levar o robô a fazertrajetórias mais longas.

4.2 – Aplicando a Rede Neural

Foram feitos inúmeros testes para diferentesconfigurações de redes. Procurou-se variar tambémos padrões de treinamentos dados as redes, tentandoentender como as redes vinham a se comportardados padrões de treinamento com característicasdiversas.

Foram treinadas redes com 5, 10, 15 e 20processadores na camada escondida. Bons resultadosforam obtidos com redes de 10 e 15 processadores. Arede que apresentou os melhores resultados possuía15 processadores. A rede de 5 processadores nãoconseguiu modelar o problema para um númerosuperior de padrões de treinamento (acima de 150padrões). Já a rede de 20 processadores resultou empior generalização.

O critério de parada do treinamento foi o número deépocas. Variou-se o número de épocas de 10000 a20000. Valores inferiores a 10000 não produzirambons resultados. Valores superiores a 20000, além depiorarem a generalização das redes, levaram a piorada modelagem dos próprios padrões de entrada, poisa rede acabava modelando o ruído presente nospadrões.

A taxa de aprendizado foi variada entre 0.5 e 0.8.Porém, sem grandes implicações nos resultados.

A taxa de momento foi variada entre 0.4 e 0.6,também sem apresentar grandes diferenças nosresultados.

A grande dificuldade encontrada, não foi com oajuste dos parâmetros da rede, mas sim com aescolha e apresentação dos padrões de treinamento.

Os padrões foram gerados a partir de históricos decorridas efetuadas no simulador. Estes históricosforam feitos a partir de amostragens realizadas a cada20 ms. Portanto, uma corrida de alguns segundosresultava em centenas de padrões de treinamento.Para o treino da rede, eram feitas de 6 a 12 corridas, oque levava a alguns milhares de padrões detreinamento.

A apresentação desta enorme quantidade de padrões,além de fazer com que a rede necessitasse de umenorme tempo de treinamento, fazia com que redespouco complexas não conseguissem aprender bem.

Page 11: Controle de um Robô do tipo differential drive através de ...meggi.usuarios.rdc.puc-rio.br/paper/C066_NanoBio04_Controle_de_um... · O uso de robôs móveis tem se popularizado

As redes modelavam algumas características dospadrões apresentados, mas não possuíam nenhumacapacidade de generalização.

As características aprendidas pela rede, eram aquelasrelativas a padrões que se repetiam muito ao longodas corridas. Saídas muito presentes nos padrõesapresentados, vinham a dominar a rede. Por exemplo,se nos padrões apresentados havia uma grandequantidade de padrões apresentando velocidademáxima nas saídas, a rede aprendia a responder comvelocidade máxima para qualquer entradaapresentada.

Como inicialmente as redes utilizadas possuíam 4entradas e acelerações como saídas, o problema eraainda mais sério. Os resultados encontrados muitasvezes não faziam sentido nenhum. Outras vezes, arede relacionava as saídas somente as entradasrelativas as velocidades, ignorando a distância d e oângulo α.

Um agravante é o fato de que pelos padrões seremextraídos de corridas humanas, há ruído nos dados.Este ruído é inerente ao método que não é estático, esim, dinâmico e altamente estocástico.

O problema da grande quantidade de padrões só foiconstatado ao simplificar-se a rede.

Para resolver o problema foi feita uma filtragem nospadrões. A primeira medida tomada foi a de eliminarpadrões com saídas repetidas, evitando que a redefosse contaminada por saídas freqüentes. Estamedida levou a rede a começar a apresentarresultados mais coerentes. Porém, o número depadrões continuou alto.

A segunda medida tomada foi a de se escolherpadrões em intervalos uniformes nos históricos. Ointervalo escolhido foi de 10 padrões. O número depadrões caiu então de milhares para algumascentenas.

Os resultados aqui apresentados são referentes a umarede de 15 processadores, 10000 épocas detreinamento, taxa de aprendizado de 0.7 e momentode 0.6. O conjunto de históricos foi feito de modo acobrir de maneira uniforme o universo de entradas.Esta foi a rede que apresentou os melhoresresultados.

Na figura 21 são apresentadas algumas trajetóriasutilizadas para treinamento da rede. Foram 12trajetórias ao todo, sempre simétricas ao redor daposição de destino que está marcada no centro datela.

Na figura 22 são apresentadas trajetórias percorridaspela rede neural..

Figura 21: Algumas trajetórias de treinamento da redes. Os robô se encontram nas posições iniciais. As linhas vermelhas indicam astrajetórias percorridas. A cruzes vermelhas indicam as posições de destino.

Page 12: Controle de um Robô do tipo differential drive através de ...meggi.usuarios.rdc.puc-rio.br/paper/C066_NanoBio04_Controle_de_um... · O uso de robôs móveis tem se popularizado

Figura 22: Algumas trajetórias efetuadas pela rede. Os robô se encontram nas posições finais.

De um modo geral, as redes geraram resultados bons,com dificuldades de realizar a tarefa para algumasáreas iniciais específicas. A rede comentadaapresentou excelentes resultados, conseguindoexecutar a tarefa para quase toda a área coberta peladistância máxima escolhida. É interessante notar, queapesar da rede ter conseguido aprender a tarefa, elanão segue trajetórias sempre parecidas com as doconjunto de treinamento. Muitas vezes a redeencontra soluções esquisitas, não esperadas, masconsegue atingir a posição de destino. Para a grandemaioria dos casos em que o robô não consegueatingir a posição de destino, ele ou passa a contorná-la, ou para próximo dela.

O motivo de a rede modelar soluções estranhas e queaparentemente não combinam com os padrões detreinamento é que diversos padrões podemapresentar dados conflitantes. Há muito ruídopresente nos padrões pois é quase impossível gravarduas corridas idênticas. Cada corrida gravada possuicaracterísticas diferentes. Portanto, enquanto umpadrão leva a rede a aprender determinadocomportamento, este mesmo comportamento podeser eliminado ao se apresentar para a rede outropadrão com características conflitantes com oprimeiro.

Propõe-se para estudos futuros:

- Uma seleção mais fina dos padrões de treinamento;- Treinar com um maior número de históricos,selecionados de modo a cobrir uniformemente ouniverso das variáveis de entrada;- Tentar usar alguma variação da rede BackPropagation, pois o treinamento pela BackPropagation é muito lento;

- Usar redes RBF. Este tipo de rede provavelmenteirá gerar resultados muitíssimo melhores que osobtidos com Back Propagation.

Apesar das redes não terem modelado o problemacom exatidão, os resultados encontradosdemonstram que o método aplicado possui validade,podendo vir a obter excelentes resultados seabordado de maneira um pouco diferente e tendoaplicações em diversos problemas similares aoproposto.

4.3 – Uma breve comparação entre o Controlador Fuzzy e o

Controlador Neural

O Controlador Fuzzy obtido produz soluções maisconsistentes dada qualquer posição inicial, a RedeNeural pode não prover soluções para alguns casosou apresentar trajetórias não usuais.

Espera-se porém que a Rede Neural seja capaz deprover soluções tão boas, e até melhores, quanto asobtidas se utilizando o Controlador Fuzzy.

A Rede desenvolvida apresentou erros de distânciafinais menores que o Controlador Fuzzy, isto quandoa Rede conseguia resolver o problema. Os errosrelativos a Rede Neural são sempre próximos dezero.

Para uma comparação mais coerente, tanto a RedeNeural quanto o Sistema Fuzzy devem ser maistrabalhados, pois ambos podem apresentar melhoresresultados.

Page 13: Controle de um Robô do tipo differential drive através de ...meggi.usuarios.rdc.puc-rio.br/paper/C066_NanoBio04_Controle_de_um... · O uso de robôs móveis tem se popularizado

O atrativo das Redes Neurais para a solução deproblemas deste tipo está em não ser preciso o prévioconhecimento do problema. As regras doControlador Fuzzy são arbitradas, já a Rede Neuralaprende pela observação da ação humana.

Para problemas semelhantes, porém, maiscomplexos, Redes Neurais devem apresentarresultados melhores que Controladores Fuzzy.

5 – Conclusões

Neste trabalho, o controle de posição de um robô dotipo differential drive é feito através de duas técnicasdistintas: Lógica Fuzzy e Redes Neurais.

Foram obtidos bons resultados com as duas técnicas,porém podem ser melhorados.

O melhor Controlador Fuzzy obtido demonstroulevar o robô para a posição desejada com erropequeno para todas as posições iniciais testadas.Porém, tem a desvantagem de que o robô só se movepara frente.

A melhor Rede Neural obtida demonstrou conseguirlevar o robô para a posição desejada com distância deerro quase nula. Porém, a Rede não chegou à posiçãodesejada para todas as posições iniciais testadas. Alémdisto, a rede apresentou algumas soluções estranhas enão usuais.

Apesar das redes não terem modelado o problemacom exatidão, os resultados encontradosdemonstram que o método aplicado possui validade,podendo vir a resultar em excelentes resultados seabordado com ressalvas.

As duas técnicas foram aplicadas em um cenário idealcom aplicação de velocidades sobre as rodas demodo direto. Propõe-se em trabalhos futuros asimulação do controle de velocidade.

Também ficam propostas para futuros trabalhosdiversas modificações nas técnicas empregadas, e, oemprego destas técnicas em problemas semelhantesenvolvendo complicações, tais como a simulaçãocom obstáculos.

6 – Bibliografia

[1] Thomas Bräun (2003). Embedded Robotics, Springer-Verlag Berlin Heidelberg.[2] Gregory Dudek, Michael Jenkin (2000).Computational Principles of Mobiler Robotics, CambridgeUniversity Press.

[3] Vivek A. Sujan, Marco A. Meggiolaro. InformationBased Indoor Environment Robotic Exploration andModeling Using 2-D Images and Graphs.[4] Notas de Aula em Redes Neurais,(www.ica.ele.puc-rio.br).[5] Notas de Aula em Lógica Fuzzy,(www.ica.ele.puc-rio.br).[6] Khepera: The miniature móbile robot, KheperaSupport Team.[7] Mendel, J.M., (1995). "Fuzzy logic systems forengineering: a tutorial". Proc. IEEE, Vol. 83(3): 345-377.[8] Ricardo Tanscheit. Sistemas Fuzzy.[9] Asim Shankar (2003). Annie - Artificial NeuralNetwork library, (annie.sourceforge.net).[10] Asim Shankar (2003). Annie Reference Manual 0.51,(annie.sourceforge.net).[11] Jean-Claude Latombe. Robot Motion Planning.Kluwer Academic Publishers, 1991.[12] Marco Aurélio Cavalcanti Pacheco. AlgoritmosGenéticos: Princípios e Avaliações.[13] Pomerlau, D.A (1993). Neural Networks forintelligent vehicles. In Proc. Intelligent Vehicles, pp.19-24,Tokyo.