simulador grÁfico bidimensional interativo de … · programação e aprendizagem para serem na...

7
40. SBAI- Simpósio Brasileiro de Automação Inteligente, São Paulo, SP, 08·10 de Setembro de 1999 SIMULADOR GRÁFICO BIDIMENSIONAL INTERATIVO DE ROBÔS AUTÔNOMOS Ronaldo Ruímo, José L. Silvino, Paulo F. M. Palmeira . Centro de Pesquisa e Desenvolvimento Em Engenharia Blétríca -; Universidade Federal de Minas Gerais Av. Antônio Carlos, 6627 CEP 31270-901 - Belo Horizonte, Brasil Telefone: (031) 499 5485 Nomenclatura m: Massa, I : Momento de inércia, v: Velocidade, F: Força, P ; Momento linear, M.: Momento angular, J: Impulso linear, K : Constante de atrito, Abstract- This work presents lhe implementation of a simulator for autonomous robots in unknown environments with cooperative behavior. The purpose of this simulator is to allow developing of control, learning, and program strategies that wi1l be utilized in lhe implementation of robotic autonomous systems. This simulator is implemented in C++, with the use of the object oriented programming. For testing of the method a mini 'robot soccer was considered. The dynamic modeling of the game and lhe simulator structure with a 2D graphical interface are presented. The computational aspects are discussed. Keywords: Robotics, artificial intelligence, object oriented program, contro!. Kw: Constante de atrito angular, 1 INTRODUÇÃO O) : Velocidade angular, 1.: tempo, L\T: largura do intervalo de tempo, r.: Torque, Jw ; Impulso angular, X, Y: Coordenadas cartesianas. Resumo-i- Um simulador de robôs autônomos em ambiente não controlado é apresentado. A finalidade deste simulador é permitir o estudo e desenvolvimento de estratégias de controle; programação e aprendizagem para serem utilizadas na implementação de sistemas de controle de robôs autônomos com características cooperativas. O simulador é desenvolvido em C++, com técnicas de programação orientada para o objeto. Para teste do método foi considerado o futebol de robôs. A modelagem dinâmica do jogo e a estrutura do simulador com interface visual 2D são apresentados. Os aspectos computacionais são discutidos. Palavras Chaves: Robótica, inteligência artificial, programação orientada por objetos, controle... 463 Os robôs são elementos fundamentais na execução de tarefas automatizadas. Com o avanço da automação a utilização de robôs em diversas tarefas e em diversos campos vem se ampliando, indo desde aplicações médicas, como por exemplo na realização de telecirurgias, até aplicações militares[lO] e aeroespaciais[11][12] Quanto mais complexa a tarefa que o robô executa, mais complexos são seus algoritmos de controle, por isto torna-se cada vez mais necessário o desenvolvimento de técnicas mais elaboradas de programação. Chamamos de ambiente não controlado um ambiente no qual . as posições e deslocamentos dos objetos não são previamente conhecidos. 2 MOTIVAÇÃO Em um ambiente controlado, o controle de robôs consiste em: determinar as trajetórias dos robôs, em seguida usar cálculos de cinemática inversa para calcular as ações de controle para realizar esta trajet ória e por ultimo criar um programa para seguir a trajetória idea1[9][13]. Em um ambiente não controlado, podem existir. muitas trajetórias possíveis. Portanto seria inviável o uso de

Upload: hatram

Post on 09-Nov-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

40. SBAI- Simpósio Brasileiro de Automação Inteligente, São Paulo, SP, 08·10 de Setembro de 1999

SIMULADOR GRÁFICO BIDIMENSIONAL INTERATIVO DE ROBÔSAUTÔNOMOS

Ronaldo Ruímo, José L. Silvino, Paulo F. M. Palmeira .Centro de Pesquisa e Desenvolvimento Em Engenharia Blétríca -; Universidade Federal de Minas Gerais

Av. Antônio Carlos, 6627CEP 31270-901 - Belo Horizonte, Brasil

Telefone: (031) 499 5485

Nomenclatura

m: Massa,

I : Momento de inércia,

v : Velocidade,

F: Força,

P ; Momento linear,

M.: Momento angular,

J : Impulso linear,

K : Constante de atrito,

Abstract- This work presents lhe implementation of asimulator for autonomous robots in unknown environmentswith cooperative behavior. The purpose of this simulator is toallow developing of control, learning, and program strategiesthat wi1l be utilized in lhe implementation of roboticautonomous systems. This simulator is implemented in C++,with the use of the object oriented programming. For testing ofthe method a mini 'robot soccer was considered. The dynamicmodeling of the game and lhe simulator structure with a 2Dgraphical interface are presented. The computational aspectsare discussed.

Keywords: Robotics, artificial intelligence, object orientedprogram, contro!.

Kw: Constante de atrito angular, 1 INTRODUÇÃOO) : Velocidade angular,

1.: tempo,

L\T: largura do intervalo de tempo,

r.: Torque,

Jw ; Impulso angular,

X, Y : Coordenadas cartesianas.

Resumo-i- Um simulador de robôs autônomos em ambientenão controlado é apresentado. A finalidade deste simulador épermitir o estudo e desenvolvimento de estratégias de controle;programação e aprendizagem para serem utilizadas naimplementação de sistemas de controle de robôs autônomoscom características cooperativas. O simulador é desenvolvidoem C++, com técnicas de programação orientada para o objeto.Para teste do método foi considerado o futebol de robôs. Amodelagem dinâmica do jogo e a estrutura do simulador cominterface visual 2D são apresentados. Os aspectoscomputacionais são discutidos.

Palavras Chaves: Robótica, inteligência artificial,programação orientada por objetos, controle...

463

Os robôs são elementos fundamentais na execução de tarefasautomatizadas. Com o avanço da automação a utilização derobôs em diversas tarefas e em diversos campos vem seampliando, indo desde aplicações médicas, como por exemplona realização de telecirurgias, até aplicações militares[lO] eaeroespaciais[11][12]

Quanto mais complexa a tarefa que o robô executa, maiscomplexos são seus algoritmos de controle, por isto torna-secada vez mais necessário o desenvolvimento de técnicas maiselaboradas de programação.

Chamamos de ambiente não controlado um ambiente no qual. as posições e deslocamentos dos objetos não são previamenteconhecidos.

2 MOTIVAÇÃOEm um ambiente controlado, o controle de robôs consiste em:determinar as trajetórias dos robôs, em seguida usar cálculos decinemática inversa para calcular as ações de controle pararealizar esta trajet ória e por ultimo criar um programa paraseguir a trajetória idea1[9][13].

Em um ambiente não controlado, podem existir. muitastrajetórias possíveis. Portanto seria inviável o uso de

40. SBAI - Simpósio Brasileiro de Automação Inteligente, São Paulo, SP, 08·10 de Setembro de 1999

algoritmos em tempo real para determinar e seguir todas elas.Isto inviabiliza o uso de ' técnicas convencionais deprogramação de robôs.

Atualmente tem sido propostas outras alternativas àprogramação convencional, tais como lógica fuzzy[I][5][12] ,redes neurais[4][6]; e algoritmos genéticos [14,15]. Entretanto,muitas destas técnicas são baseadas em conhecimento humano.Logo para sua implementação o conhecimento humano deveser armazenado e posteriormente transferido à unidade deprocessamento.

Neste trabalho é apresentado um simulador bidimensional emambiente gráfico (figura I) que permite a simulação de robôsautônomos através de seu modelo matemático . Este simuladordotado de recursos gráficos e interativos será usado comoferramenta na aquisição e manipulação do conhecimentonecessário para implementar as técnicas citadas anteriormente .

A existência de uma representação gráfica para oscomponentes neste simulador possibilita o treinamentosupervisionado dos robôs. Este treinamento será feito por um"treinador" humano, introduzido no ambiente do simuladorpela interface homem máquina. Uma vez introduzido noambiente o "treinador" irá interagir com os demaiscomponentes (outros robôs, obstáculos etc.). Esta interação égravada, e o conhecimento humano estará disponível para aposterior transferência para os robôs autônomos.

Figura 1 : Interface Gráfica

Uma outra aplicação deste simulador, seria o estudo daviabilidade de projetos de robôs através da simulação dosmesmos antes da sua construção, já que a construção de robôspode ser dispendiosa. Assim, o uso do simulador permitiriadesenvolver e testar técnicas de controle de maneiraeconômica, além de reduzir o custo do projeto físico dos robôs.

3 COMPARAÇÃO COM PROPOSTASANTERIORES

Law e Miikkulainen descrevem um simulador que é utilizadopara simular a evolução de um elemento de controle de uma

464

estratégia de seguidor, para um robô. Esta estratégia consisteem se mover o robô paralelamente a uma parede. Este controleutiliza uma rede neural que é treinada por algoritmos genéticos.Este simulador, entretanto, implementa o controle de posição eorientação desconsiderando a dinâmica envolvida.

Floreano e Mondada descrevem a evolução de uma rede neuralrecorrente para controlar um robô que se move num plano. Estaevolução consiste em utilizar algoritmos genéticos paraimplementar o uso de treinamento online de um robô real. Estetreinamento é realizado sem intervenção humana, consistindoentão em um treinamento não supervisionado.

A principal diferença entre o trabalho desenvolvido aqui paraos trabalhos desenvolvidos por Law e Miikkulainen e porFloreano e Mondada, consiste em que ambos os trabalhosutilizaram treinamento não supervisionado, enquanto que nestetrabalho, é utilizado treinamento supervisionado.

4 METODOLOGIAA metodologia utilizada será o uso de jogos entre robôs, maisespecificamente o futebol de robôs, para desenvolver e testarestratégias de controle e programação.

Cada jogador é um robô autônomo que executa ações como:controlar aceleração, frenagem e mudança de direção.

o uso de um jogo, como metodologia de desenvolvimento deum sistema de controle de robôs autônomos emcomportamento cooperativo, provém do fato deste jogo se darnum ambiente não controlado. Deste modo o controle de umaequipe de robôs necessita de complexas técnicas de controle eprogramação para apresentar um desempenho eficiente.

5 SIMULADOR 20o simulador é um software que permite simular um sistemareal, através de um modelo matemático do mesmo . Uma dasfunções primordiais deste simulador é auxiliar odesenvolvimento de técnicas de controle para o caso de umambiente não controlado.

o simulador bidimensional apresentado neste trabalho, édotado de um ambiente gráfico onde existem representaçõesgráficas bidimensionais dos robôs, da bola, do campo; enfim,dos objetos reais que fazem parte do jogo. As partes principaisde sua estrutura são descritas a seguir .

5.1 Estrutura do Simuladoro simulador é dividido em várias tarefas, havendo uma tarefaMestre e.várias tarefas filhas. As tarefas filhas são as tarefas decada robô componente do jogo . A tarefa Mestre é o controladormestre responsável por controlar e coordenar as tarefas dosrobôs. As tarefas filhas executam ações simples tais comoacelerar, freiar, girar etc. Já o controlador mestre é oresponsável pela execução dos algoritmos de controlenecessários para garantir a cooperação dos robôs . .

Para cada objeto real envolvido no jogo há uma instância daclasse apropriada para representá-lo no simulador. Estainstância ou objeto será responsável, por executar a tarefa desteobjeto e também para se comunicar com o controlador mestre (figura 2).

40. SBAI-Simpósio Brasileiro de Automação Inteligente, São Paulo, SP, 08-10 de Setembro de 1999

Figura 2 :Hierarquia de tarefas

o simulador representa graficamente os objetos reais utilizandouma hierarquia de primitivas gráficas (figura 3).

Esta hierarquia tem como base a classe Ponto que representaum ponto e possui também outras classes descendentes dePonto: as classes linha, Arco e Circulo que representam asprimitivas gráficas e a classe Lista que representa uma lista deprimitivas gráficas.

\lW&

(X,Y)Figura 5 :Modelo do Robô

É considerado que o controlador atua nos robôs aplicandoatravés dos motores dos mesmos impulsos lineares e ouangulares cujo módulo e duração são controlados.

Como em todo sistema controlado por computador, estesistema é um sistema amostrado discreto, isto é, os sensoresamostrarão seus valores em intervalos de tempo determinados.Para simplificar os cálculos, é considerado que os valoresvariam linearmente ou se mantém constantes entre umaamostragem e outra, sendo ll.T o intervalo de amostragem dosistema.

Representação Gráfica5.2

Figura 3 : Hierarquia de Primitivas Gráficas

A classe personagem que é a base da hierarquia de classesdestinada a representar os objetos reais, por ser derivada daclasse Lista (figura 4) possibilita uma representação gráficavetorial dos objetos. Assim cada classe descendente depersonagem possui uma lista com as primitivas gráficasnecessárias para a representação bidimensional vetorial do tipode objeto real que ela representa.

Assim, pode-se criar o seguinte modelo matemático' para. calcular a dinâmica dos objetos reais.

A posição pode ser calculada através da integração davelocidade no tempo[7].

x = fk v(t ).dtJk-l

Sendo a área calculada igual a distância percorrida pelo objetoentre os instantes k-l e k.

A integração numérica, é 'realizada utilizando o método dostrapézios [8], no qual área abaixo da curva é aproximada porum trapézio(figura 6). Assim, o deslocamento ll.x = Área dotrapézio, é dado por:

Chamando Vk•1 = Vo, Vk- VI::.1 = ll.V, a seguinte equação éobtida:

Figura 4 : Classe Personagem

5.3 DinâmicaCada personagem é localizado, através de duas coordenadascartesianas X e ' Y. Sua velocidade linear é dada emcoordenadas polares (módulo, ângulo), e sua velocidadeangular pelo atributo W (figura 5).

L\x=[vo+ }M'{ = ____

(1)

o simulador possui informações .sobre os parâmetrosnecessários ao cálculo da dinâmica tais como: Constante deatrito, massa e momento de inércia. De posse destesparâmetros, o simulador pode então realizar o cálculo dadinâmica dos objetos reais do jogo, usando um modelomatemático do mesmo.

Figura 6 : Intervalo de Integração

465

40. SBAI - Simpósio Brasileiro de Automação Inteligente, São Paulo, SP, 08-10 de Setembro de 1999

5.3.1 Equaçõesde impulsoe aceleração 5.3.3 Colisãoo momento linear P de um objeto de massa m é dada por[7]:Pem.v

Pela Segunda lei de Newton a variação do momento linear éigual a resultante das forças que atuam sobre o objeto:

O cálculo é efetuado, partindo-se do principio da conservaçãoda quantidade de movimento dos objetos envolvidos [7]. Ass imao se detectar a ocorrência de uma colisão, o simulador calculaas variações de velocidade que cada objeto deverá sofrer eaplica sobre os mesmos os impulsos necessários para tanto.

o impulso linear J é definido como a variação do momentolinear logo: .

5.3.4 AlgoritmoSeja um determinado objeto real cuja dinâmica se querdeterminar. Pode-se calculá-Ia pelo seguinte algoritmo:

dp=F .dt J =fdp=fF(t) .dtConsiderando F constante no intervalo tem-se :

I) Cálculo da aceleraç ão causad a pelo impulso aplicado,equação (2) linear ou (lO) angular;

2) Cálculo da desaceleração causada pelo atrito, equação (6)linear ou angular(7);

= (2) 3) Verificação da ocorrência de colisões.

o momento angular M de um objeto de momento de inércia I édado por :

M=/ ·(j)Pela 2ª lei de Newton no movimento angular temos [7]:

L'C= dLdt

4) Cálculo da variação da velocidade ô,V, equação (8) linearou (11) angular;

5) Cálculo da nova posição, equação (I) linear ou (12)angular;

6) Cálculo da nova velocidade, equação (9) linear ou (13)angular.

Considerando 't constante no intervalo tem-se:

o impulso angular Jto é definido como a variação do momentoangular logo:

Logo um impulso Jw em um corpo produz uma variaçãoigual a:

(4)

(2)

(8)

(1)

(9)

Para o caso da posição linear:

m

=m

LiX =[vo+!!J.; }!!J.T(3)

Esta força de atrito age produz indo urna variação V no robôigual a

5.3.2 Equações de Atrito e Frenagem.O atrito gerado pelo movimento do robô cria uma força desentido contrário ao movimento do mesmo e proporcional aomódulo de sua velocidade

Fa=-KIVI (5)

Para o caso da posição angular :

=---;:-I +m ·v2

K .esr= --'01"--_ _;,_I +m ·v2

MJ =[

(lO)

(lI)

(12)

(13)

Este algoritmo é implementado pelo simulador através demétodos membros das classes que representam os objetos reais.Assim, a instânc ia que representa um determinado objeto éresponsável pelo cálculo da dinâmica do mesmo.

Cabe comentar que esta tarefa de cálculo da dinâmica dosobjetos se torna desnecessária no caso de controle real dosrobôs pois as informações sobre posição e deslocamento sãonormalmente obtidas por um sistema de visão.

(7)

(6)

Da mesma maneira para ri movimento angular o atrito gera umtorque de sentido contrário ao movimento do mesmo eproporcional a sua velocidade angular, logo:

!!J.(j) = K 01 • (j).!!J.T/ +m·v2

466

40. SBAI - Simpósio Brasileiro de Automação Inteligente, São Paulo, SP, 08-10 de Setembro de 1999

6 ASPECTOS COMPUTACIONAISo simulador 2D foi implementado em C++ com o uso detécnicas de programação orientada à obje tos [2], de modo queos objetos reais foram repres entados através de uma hierarquiade classes (figura 7 ). Assim cada objeto real presente no jogo érepresentado por uma instância de uma destas classes. Porexemplo a bola do jogo é representada por uma instancia daclasse bola.

o simulador 2D possui uma classe Mestre, responsável porcontrolar e coordenar os demais objetos.

Foi criada uma única instância da classe Mestre, sendo que estaé o controlador mestre responsável por controlar e coordenartodas as tarefas filhas representadas pelas instâncias das classesque representam os objetos reais pertencentes ao jogo.

o controlador é responsável também pelo cálculo das colisõesentre os objetos.

Para representação dos componentes o simulador usa umahierarquia de classes destinada a representar os objetos reais.Esta hierarquia tem como base a classe personagem, a qualpossui três classes derivadas: a classe bola; a classe jogador e aclasse treinador. Esta hierarquia está mostrada na figura 7.

Estas classes possuem informações referentes à posição,orientação e dinâmica dos objetos, de modo que cada instânciade uma determinada classe possui informações referentes a umobjeto específico.

Como métodos, estas classe s tem as funções necessárias paratornar possíveis as ações de cada objeto como, por exemplo,alterar a velocidade ou direção de um robô . Além disto estasclasses possuem funções responsávei s pela comunicação dasmesmas com o controlador mestre e funções necessárias parapossibilitar o cálculo da dinâmica dos objetos reais por parte dosimulador bidimensional.

A classe personagem, base da hierarquia, possui como atributosas informações referentes a posição, dinâmica, velocidade eorientação dos objetos, além dos métodos responsáveis peloscálculos de inércia e deslocamento : inerciat), controlet),mover),

Figura 7 : Hierarquia de Classes

A classe bola que representa a bola do jogo, assim como asoutras classes pertencentes a esta hierarquia é herdeira depersonagem e diferencia-se da classe personagem por possuiruma representação gráfica.

A classe treinador, que representa a interação com o usuáriotreinador, além de possuir todos os métodos e atributosherdados da classe personagem, possui também um método de

467

entrada que será usado no treinamento. Esta entrada é realizadapor um usuário treinador através de um joystick com o qual égravada uma trajetória que é utilizada no treinamento dosrobôs.

A classe jogador, herda todos os atributos e métodos da classepersonagem e possui também métodos que possibilitam suacomunicação com o controlador mestre, além de possuir seupróprio método de controle autônomo.

Além da função de representação dos robôs e do ambiente noqual estão inseridos, o simulador tem também as funções decálculo da dinâmica de todos os objetos envolvidos no jogo.

o controlador mestre possui uma lista com todas as instânciasde classes que representam os objetos reais . Possui também ummétodo run que usa esta lista para chamar o método run decada objeto . Isto é possível porque a classe personagem temum método virtual rum) que executa as tarefas do personagem.

7 PROGRAMAÇÃO POR ALGORITMOSGENÉTICOS

A técn ica alternativa de programação escolhida foi o uso dealgoritmos genéticos pois estes possuem a capacidade deadaptação necessária num ambiente não controlado.

Os algoritmos genéticos são utilizados para evoluir umapopulação de elementos de modo que depois de varias geraçõespossa-se obter um elemento otimizado.

Inicialmente é criada uma primeira geração de elementosaleatórios. Após isto, cada nova geração é formada peloselementos selecionados da geração anterior acrescida de novoselementos, criados por operadores genéticos. Os operadoresgenéticos usados são a mutação e o cruzamento. A evolução sedá pela seleção dos melhores indivíduos em cada geração (Função de sobrevivência), a mutação age alterando ascaracterísticas do elemento, o cruzamento age combinando doiselementos pais para produzir um elemento filho.

Neste trabalho foi implementado um algoritmo genético usadopara evoluir uma população de elementos de controle que sãoredes neurais, para após varias gerações, conseguir . umelemento otimizado que será o elemento de controle autônomodo robô autônomo.

8 TREINAMENTOOs algoritmos genéticos são utilizados para treinar uma redeneural, este treinamento baseia-se numa trajetória ideal gravadapor um usuário humano com o uso de um joystick. A redeneural foi escolhida como elemento de controle por ser umaproximador universal de funções o que permite que ela sejausada para criar diversos tipos de trajetórias.

As redes neurais utilizadas são redes neurais do tipo feed-foward. Cada rede neural tem 15 entradas e duas saídas. Asentradas são: posições x e y e ângulo do robô no instante atualno instante t-I e no instante t-2, além de posições x e y da bolano .instante atual e anterior. As duas saídas são os impulsoslinear e angular que serão aplicados ao robô .

rFigura 9 : Exemplo I

No primeiro exemplo, figura 9, vemos o caso de uma trajetóriade interceptação na qual o bola esta em movimento. Pode-sever que a diferença entre a trajetória gravada e a gerada é muitopequena.

robô

Indivíduo

A classe GNAEvolution implementa o algoritmo genético. Elaprocessa a evolução de uma população composta de instânciasde qualquer classe descendente da classe indivíduo.

A classe RedeNeural implementa uma rede neural artificial.Para que as redes neurais possam ser evoluídas pela classeGNAEvolution, a classe RedeNeural foi criada comodescendente da classe indivíduo (figura 8), tendo seus métodosvirtuais redefinidos.

,A classe indivíduo é uma classe abstrata que apresenta osmétodos virtuais necessários a .evolução tais como: Mula,cruza, etc.

Para implementar o controle dos robôs autônomos por redesneurais e o treinamento das mesmas com o uso de algoritmosgenéticos foram criadas três classes. A classe Indivíduo, aclasse GNAEvolution e a classe RedeNeural

9 IMPLEMENTAÇÃO DA APRENDIZAGEM

40. SBAI - SimpósioBrasileirode Automação Inteligente, São Paulo,SP, 08-10de Setembrode 1999

São usados dois operadores de mutação, o primeiro operador "de mutação utilizado o método Backpropagation de ..... _treinamento de redes neurais, para se obter urna mutaçãodirecionada para produzir um novo elemento mais bem bolaadaptado que o anterior. O segundo método é um operador quealtera os pesos da rede neural aleatoriamente.

RedeNeural

Figura 8 : Hierarquia do indivíduo

1O RESULTADOSNesta etapa do trabalho procurou-se comparar as trajetóriasexecutados pelo robô quando este é controlado pela redeneural, com as trajetórias de referência, gravadas pelo usuáriotreinador no modo interativo do simulador 2D.

Foram treinadas diversas trajetórias sendo que duas delas sãoapresentadas a seguir. Para cada um dos exemplos é mostradoum gráfico onde são superpostas a trajetória ideal, gravada pelousuário treinador com o uso de um joystick e a trajetória quefoi gerada pelo robô jogador, controlado pela rede neural.

Figura 10 : Exemplo 2

No segundoexemplo, figura 10, vemos uma outra trajetória deinterceptação na qual o bola esta em movimento. Pode-se verque a diferença entre a trajetória gravada e a gerada éimperceptível.

11 CONCLUSÕES E ·PERSPECTIVAS.Na etapa em que se encontra o desenvolvimento do projetoquando da redação deste artigo, já foi implementado e testado arepresentação gráfica dos objetos componentes do simulador, adinâmica e a interação homem - máquina.

O três modos de funcionamento do simulador já foramimplementados é testados.

468

40. SBAI- Simpósio Brasileiro de Automação Inteligente, São Paulo, SP, 08-10 de Setembro de 1999

As redes neurais treinadas com o uso de algoritmos genéticosmostraram ser capazes . de fazer o robô jogador seguir astrajetórias desejadas, mesmo quando a bola está em movimento

REFERÊNCIAS[1] Palmeira P.F.M. "Uso de Relações Difusas para

Implementação de Máquina de Inferência e Base deConhecimentos"- xm CILANCE -1993

[2] Montenegro, F. & Pacheco, P . "Orientação a obje tos emC++" . Ciência Moderna, 1994.

[3] Law, D. And Mikkulainen, R. Grounding Robotic Control .with Genetic Neural Networks. Technical Report AI94-223. 1994

[4] Wasserman, P. D. Neural Computing Theory and Practice.VNR 1989.

[5] Tunstel, E. Mobile Robot Autonomy via Hierarchical FuzzyBehavior Control. 2nd WorId Automation Congress,Montpellier, France, May 1996.

[6] Balakrishnan, K. And Honavar, V. Some Experiments inEvolutionary Synthesis of Robotic Neurocontrollers.Artificial Intelligence Research Group - Iowa StateUniversity, Ames, IA - 50011.

[7] Halliday, D. and Resnick, R. Fundamentos de Física 1.Livros Técnicos e Científicos Ed. 1991.

[8] Simmons. .G. Cálculo com Geometria Analítica. Vol. 1.McGraw-HilI, 1988.

[9] Ollero, A ; García-Cerezo, A ; Martínez, J. And Mandow,A. Fuzzy Tracking Methods for Mobile Robots. Chapter17 of the book. "Applications of fuzzy logic: Towardshigh machine intelligence quotient". Prentice HalI serieson Enviromental and Inteiligent ManufacturingSystems.

[10] Gage, D. How to communicate with zill ions of robots.SPIE Mobile Robots VIII, Boston, 9-10 September1993, Volume 2058, pp 250-257.

. ..-[11] Mishkin, A; Morrison, J.; Nguyen, T.; Stone, H.; Cooper,

B. and Wilcox, B. Experiences with Operations andAutonomy of the Mars Pathfinder Microrover. JetPropulsion Laboratory, california Institute ofTechnology, 4800 Oak Grove Drive, Pasadena, CA91109.

[12] Tunstel, E.; Danny, H.; Iippincott, T. And Jamshidi, M.Fuzzy behavior-based Navigation for planetaryMicrorovers. NASA Center for Autonomous ControlEngineering, Departrnent of Electrical and ComputerEngineering, University of New Mexico, Albuquerque,NM 87131. ·

[13] Volpe, R. Task Space Velocity Blending for Real-TimeTrajectory Generation. The Jet Propulsion Laboratory,Califomia Institute of Technology, Pasadena, California91109. IEEE internatinalConference on Robotics andAutomation, May 2-61993, Atlanta Georgia.

469

[14] Be ásley, D.; Bull, D. and Martin, R. An Overview ofGenetic Algorithms: Part I, FundamentaIs. UniversityComputing, 1993 15(2) 58-69.

[15] Beasley, D.; Bull, D. and Martin, R. An Overview of. Genetic Algorithms: Part 2, Research Topics. University

Computing, 1993 15(4) 170-181.

[16] Floreano, D. And Mondada, F. Evolution of Horning,Navigation in Real Mobile Robot. IEEE Transactions onSystems, Man, and Cybernetics, In Press, 1995.