Treinamento de Robôs por Algoritmos Genéticos em Ambiente

Propaganda
1
TREINAMENTO DE ROBÔS POR ALGORITMOS GENÉTICOS EM AMBIENTE SIMULADO
V. H. de C. Olmo1, R. P. de O. Neves1
1
Centro de Matemática, Computação e Cognição, Universidade Federal do ABC, Santo André, SP, Brasil
O projeto consiste no desenvolvimento de simulação e algoritmo de treinamento para a determinação de um sistema de controle
ótimo para o Ballbot, um robô que possui um corpo alongado e uma esfera em sua base, que deve ser constantemente acelerada pelos
atuadores, comandados pelo sistema de controle, de forma a manter o equilíbrio. Algoritmos genéticos e técnicas de treinamento não
supervisionado foram empregadas para determinar os parâmetros de maior eficiência para o sistema de controle.
Palavras Chave — Algoritmos Genéticos, Ballbot, Java, Java3D, Simulação, Sistemas de Controle.
II. METODOLOGIA
I. INTRODUÇÃO
A
lgoritmos genéticos e outras técnicas de computação
evolutiva aplicam conceitos derivados de biologia e
genética, tais como hereditariedade e mutação, para a busca de
soluções ótimas para problemas práticos na computação,
ciências e engenharias [1][2]. Técnicas de simulação e
modelagem computacional são utilizadas, onde os problemas
são descritos através de métodos numéricos, aplicando
ferramentas computacionais e técnicas de programação para
reproduzir determinados comportamentos físicos do problema
estudado em um ambiente virtual.
A simulação utiliza o ambiente de desenvolvimento ALIVE
[1], que traz classes e métodos para criação de simulações
físicas. ALIVE é um programa desenvolvido em Java [6][13],
uma linguagem orientada a objeto distribuída gratuitamente, e
o API Java 3D [13], que permite criar, manipular e visualizar
objetos tridimensionais em um ambiente virtual.
O Ballbot é um robô constituído por um corpo cilíndrico que
contem circuitos, sensores e motores que movimentam uma
esfera, localizada na base, constantemente se equilibrando
sobre ela. Atuadores posicionados na base movem a esfera em
eixos distintos, de forma a constantemente compensar as
forças horizontais que atuam sobre o centro de massa. Este
tipo de robô foi desenvolvido para ser utilizado em ambientes
com espaço limitado, onde robôs grandes e desajeitados não
conseguiriam se movimentar com facilidade.
Fig. 2. Modelo do robô com diagrama de forças que atuantes
O modelo do robô é constituído de duas formas geométricas,
um cone e uma esfera. Se tratando de formas simples, seu
centro de massa pode ser facilmente determinado [3][4][5]. As
forças atuantes no robô são:
1.
Fig. 1. Ballbot
O sistema de controle é responsável por associar o
comportamento das saídas (atuadores) às entradas (sensores).
Algoritmos de treinamento são usados visando obter o melhor
ajuste possível entre os comandos recebidos do usuário, as
leituras efetuadas nos acelerômetros e giroscópios, e o ajuste
das velocidades nos motores.
Técnicas de Sistemas Multi-Agentes [7][8] são empregadas
para testar conjuntos de diferentes parâmetros em uma
população de robôs, coordenados pela mesma função objetivo.
2.
3.
Força peso (1), determinada pela massa vezes a
aceleração gravitacional;
A força de atrito, determinada pela equação (2) onde µ
indica o coeficiente de atrito.
A força realizada pela aceleração do motor na esfera.


P  m g


Fatrito  Fnormal  
(1)
(2)
2
O ambiente da simulação é simples, possuindo apenas uma
superfície plana que oferece atrito, representado por um
retângulo, a resistência do ar foi desconsiderada [11].
A simulação possui uma interface de controle que permite
interagir com o ambiente virtual e o modelo, realizando
operações como adicionar ou remover robôs, configurar a
direção, movimentar, ligar e desligar o sistema de controle [1].
onde alguns genes são modificados aleatoriamente através
de um filtro que introduz ruído no genoma.
O processo é repetido e a população obtém graus de sucesso
progressivos a cada geração, até que eventualmente a solução
ótima seja atingida.
III. RESULTADOS
O robô simulado deve continuamente acelerar a esfera de
forma a compensar a projeção da força da gravidade no eixo
horizontal e, quando solicitado pelo controle, produzir um
vetor resultante na direção especificada.
Ao atingir velocidade suficiente para compensar a ação da
gravidade sobre o centro de massa, o robô começa a voltar
para seu ponto de equilíbrio estático.
Para estabelecer a velocidade correta, o sistema de controle
recebe como entrada o vetor aceleração e os comandos do
usuário, determinando qual a melhor velocidade para se
equilibrar ou se movimentar na direção determinada. Com a
aplicação
de
técnicas
de
computação
evolutiva,
especificamente algoritmos genéticos, são determinados os
pesos das conexões entre cada ação e reação produzida, no
caso, entre as entradas e saídas, determinando eficientemente a
solução ótima para o sistema de controle em cada caso.
Fig. 3. Janela de controle
No algoritmo genético as soluções para o sistema de controle
são representadas por conjuntos de parâmetros [2], onde cada
conjunto representa uma solução individual na população, os
genes dos indivíduos representando os parâmetros da solução.
Uma população de N indivíduos é inicializada com variações
aleatórias, cada um obtendo grau de sucesso distinto.
Fig. 4. Robô em equilíbrio
A população passa por quatro etapas básicas:

Cálculo da aptidão: Cada indivíduo da população recebe
uma pontuação, determinando o quão perto do objetivo
esse indivíduo chegou.

Seleção: Os indivíduos mais aptos, que obtiveram maior
pontuação, são selecionados. As soluções de menor
desempenho são descartadas.

Cruzamento: Os parâmetros dos indivíduos selecionados
são combinados entre si, de forma que seus genes geram
novos indivíduos com características intermediárias.

Mutação: Para garantir maior variabilidade na nova
população, novos indivíduos gerados sofrem mutação,
Fig. 5. Robô em movimento
3
Quando o controle do robô é desligado (botão Turn OFF), é
possível observar a perda do equilíbrio, quando a força da
gravidade atuando sobre o modelo deixa de ser compensada
pelo sistema de controle (Fig. 6).
[5] Young, Hugh D., Física I, 12a Ed., São Paulo, Addison
Wesley, 2008
[6] Deitel, H.M., Deitel, P.J. , Java, como programar,
Bookman, 2003
[7] Shloam, Y. (1998), “Agent-Oriented Programming”.
Readings in Agents, Edited by M.N. Huhns e M.P. Singh,
Morgan & Kaufmann, S. Francisco 329-349.
[8] Wooldridge, M., Jennings, N. (1995), “Agent Theories,
Architectures, and Languages: a Survey”, Wooldridge
and Jennings Eds., Intelligent Agents, Berlin: SpringerVerlag, pp. 1-22
Fig. 6. Motor desligado
IV. CONCLUSÃO
[9] Miranda, Fabio R. et al (2001), “Arena and WoxBOT: First
Steps Towards Virtual World Simulations”. SIBGRAPI
2001 - XIV Brazilian Symposium on Computer Graphics
and Image Processing, Florianópolis, Brazil (october)
IEEE Computer Society Press.
A simulação, por sua praticidade e versatilidade, se
demonstrou uma ótima ferramenta para auxílio na
especificação do sistema de controle, reproduzindo as
principais interações físicas entre o ambiente e o robô.
[10] Netto, M. L. et al (2000), “WOXBOT: a Wide Open
Extensible Robot for Virtual World Simulations”.
GRAPHICON 2000 - 10th International Conference on
Computer Graphics and Vision, Moscow, Russia
(August).
Algoritmos Genéticos são capazes de determinar soluções
ótimas para um dado sistema de controle proposto,
determinando o melhor conjunto de parâmetros que
relacionam um conjunto de variáveis de entrada às saídas.
[11] Gould, Harvey; Tobochnik, Jan; Christian, Wolfgang, An
introduction to computer simulations methods
applications to physical systems, Third edition, Addison
Wesley, 2006
Futuramente, pretende-se aperfeiçoar a precisão da simulação
e aplicar métodos mais avançados de treinamento, visando
obter resultados comparáveis a operação em um modelo real.
[12] Neves, Rogério, ALIVE project site: programa, artigos e
links relacionados
http://www.lsi.usp.br/~rponeves/,
último acesso setembro de 2009.
A implementação do sistema de controle especificado em um
modelo real do robô é viável, tão logo suas características
físicas sejam corretamente reproduzidas na simulação e seus
parâmetros de controle resolvidos pelo algoritmo de
treinamento.
[13] Sun Java site: Download, support, papers, tutorials and
books related to Java and Java3D programming.
http://java.sun.com/, último acesso Setembro de 2009.
REFERENCES
[1] Neves, Rogério P. O. and Netto, Marcio L., “A.L.I.V.E.
Vida Artificial em Ambientes Virtuais: Uma Plataforma
Experimental em Realidade Virtual para Estudos dos
Seres Vivos e da Dinamica da Vida”, Tese de Mestrado,
Setembro de 2003, Escola Politécnica, Universidade de
São Paulo, http://www.lsi.usp.br/~rponeves/diss/, último
acesso setembro de 2009.
[2] Neves, Rogério and Netto, Marcio L. “Evolutionary
Search for Optimization of Fuzzy Logic Controllers”.
FSKD 2002 - 1st International Conference on Fuzzy
Systems and Knowledge Discovery 2002 Proceedings,
Volume I, Hybrid Systems and Applications I, pp. 202206, ISBN 981-04-7520-9
[3] Halliday, David; Resnick, Robert; Walker, Jearl.
Fundamentos de Física vol. 1, 7. ed. Rio de Janeiro, LTC,
2007
[4] Nussenzveig, H. Moysés, Curso de física básica vol.1, 4
ed., São Paulo, Edgard Blücher, 2002
Download