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