XVII Encontro de Modelagem Computacional V Encontro Ciência e Tecnologia de Materiais Universidade Católica de Petrópolis (UCP), Petrópolis/RJ, Brasil. 15-17 out. 2014 IMPLEMENTAÇÃO DE UM ROBÔ SIMULADO CONTROLADO POR UMA REDE DE NEURÔNIOS PULSANTES PARAMETRIZADA POR MEIO DE UM ALGORITMO GENÉTICO Maria Clara Fernandes Cheng Shuen - [email protected] Centro Federal de Educação Tecnológica de Minas Gerais – CEFET-MG 30510-000 - Belo Horizonte, MG, Brasil Dr. Bruno André Santos - [email protected] Centro Federal de Educação Tecnológica de Minas Gerais – CEFET-MG 30510-000 - Belo Horizonte, MG, Brasil Dr. Rogério Martins Gomes - [email protected] Centro Federal de Educação Tecnológica de Minas Gerais – CEFET-MG 30510-000 - Belo Horizonte, MG, Brasil Resumo.Este trabalho apresenta o desenvolvimento de um robô simulado controlado por uma rede de neurônios pulsantes parametrizada por meio de algoritmos genéticos. A tarefa do robô é moverse no ambiente em direção a um objeto. É escolhido o modelo computacional de neurônio pulsante proposto por Izhikevich por ser eficiente computacionalmente e representar com acurácia a dinâmica de neurônios reais. Parâmetros da rede - matriz de ligação dos neurônios, peso dos sensores e peso dos motores - são otimizados por meio do algoritmo genético Microbial. Com 10 neurônios, sendo dois conectados aos sensores, e os demais aos motores, e após cerca de 2000 torneios do algoritmo genético, o agente obtém um fitness de 0.92, movendo-se em direção ao objeto com sucesso a partir de diferentes posições no ambiente. Apesar de ser relativamente simples, o modelo computacional aqui proposto é uma versão inicial de modelos mais complexos que se pretende construir e que poderão ser utilizados para estudar dinâmicas oscilatórias neurais na geração de coordenações sensório-motoras. Palavras-chave: Robótica evolucionária, Rede de neurônios pulsantes, Algoritmo Microbial, Izhikevich Os autores agradecem o suporte financeiro do Centro Federal de Educação Tecnológica de Minas Gerais. 1. INTRODUÇÃO A robótica evolucionária é técnica relativamente nova, utilizada na criação automática de robôs autônomos. Inspirada pelo princípio darwinista da reprodução seletiva do mais apto, ela vê os robôs como organismos artificiais autônomos que desenvolvem suas próprias habilidades em estreita interação com o meio ambiente e sem a intervenção humana. A robótica evolucionária, ou evolucionary robotics (ER), tem ganhado espaço desde o início da década de 90 devido a estudos baseados na teoria da evolução darwiniana para o projeto de robôs ou agentes simulados [9]. A XVII Encontro de Modelagem Computacional V Encontro Ciência e Tecnologia de Materiais Universidade Católica de Petrópolis (UCP), Petrópolis/RJ, Brasil. 15-17 out. 2014 ER tem sido utilizada no desenvolvimento de modelos computacionais que buscam entender como comportamentos funcionais são gerados a partir da dinâmica de sistemas neurais [7, 1, 4, 5, 6]. Santos et al. [5], por exemplo, desenvolveram um modelo de um agente computacional capaz de realizar fototaxia e analisaram como a dinâmica metaestável das oscilações neurais são moduladas e modulam a dinâmica comportamental do agente. Eles mostraram que a modulação dos sensores pelos motores é essencial para a rede neural convergir para um padrão estável e funcional de oscilações neurais. Moioli et al. [4] modelaram um agente com capacidade de apresentar os comportamentos de aproximar-se ou afastar-se de um objeto de acordo com sua forma (círculo ou losango). Eles estudaram o papel da sincronização neural no desempenho comportamental do agente. Fernandez-Leon [1] desenvolveu um agente executando uma tarefa de percepção categórica e analisou a robustez do comportamento do agente quando gerado por controladores neurais monoestáveis e biestáveis. Esses trabalhos ilustram o uso da robótica evolucionária no estudo de sistemas neurais gerando coordenações sensório-motoras. Similarmente, este trabalho utiliza a fundamentação de robótica evolucionária para desenvolver um modelo computacional que poderá ser utilizado no estudo de dinâmicas neurais gerando comportamentos sensório-motores. Particularmente, será apresentado um modelo computacional de um robô controlado por uma rede neural de neurônios pulsantes [2]. O comportamento desejado do robô é mover-se em direção a um objeto posicionado no centro de um ambiente simulado de 2 dimensões. Os parâmetros do modelo, tais como os pesos das conexões entre os neurônios da rede, serão otimizados por meio de um algoritmo genético. Neste trabalho não se pretende fazer uma análise de como a dinâmica neural gera o comportamento do robô. O objetivo é desenvolver uma plataforma computacional que servirá de base para estudos mais detalhados de dinâmicas neurais mais complexas, conforme será argumentado na seção de Discussões. Antes de apresentar o modelo computacional desenvolvido, na próxima seção será apresentado o modelo de neurônio pulsante proposto por Izhikevich [2] o qual será implementado como unidade básica do controlador do robô. 2. Neurônios pulsantes Izhikevich [2] propos um modelo computacional de neurônios pulsantes que representa satisfatoriamente a dinâmica de neurônios biológicos com boa eficiência computacional. O modelo contém alguns parâmetros que, quando combinados, resultam em vários padrões de pulsos. O modelo é descrito pelas equações diferenciais representadas em Eq. 1, 2 e 3. v ′ = 0.04v 2 + 5v + 140 − u + I (1) u′ = a(bv − u) (2) { Se v ≥ 30mV , então v←c u←u+d (3) Onde a variável v representa o potencial de membrana do neurônio; a variável u representa a recuperação da membrana; o parâmetro a descreve a escala de tempo da variável de recuperação XVII Encontro de Modelagem Computacional V Encontro Ciência e Tecnologia de Materiais Universidade Católica de Petrópolis (UCP), Petrópolis/RJ, Brasil. 15-17 out. 2014 u (valores menores resultam em recuperação mais lenta); o parâmetro b representa a sensibilidade de u em relação a v; o parâmetro c é o valor dado a v após um pulso; o parâmetro d trata do valor atribuído a u após um pulso; e a variável I representa os estímulos recebidos pelo neurônio. Após o pulso atingir o ápice de 30 mV, as variáveis v e u são recalculadas conforme a Eq. 3. A combinação dos parâmetros a, b, c e d resulta em diferentes padrões de pulsos, como visto em Izhikevich [3]. Na próxima seção será visto como este modelo de neurônio foi utilizado para controlar o robô, e como os parâmetros do controlador foram otimizados. 3. Modelo Computacional 3.1 Robô e ambiente simulados O modelo computacional desenvolvido consiste em um robô simulado se movendo em um ambiente bidimensional. O robô possui um formato circular, com 2 sensores e 2 motores, como mostra a Fig. 1, e sua tarefa é se aproximar de um objeto localizado no centro do ambiente. O raio do robô é de 1.25 u. m. (unidade de medida), e o raio da roda, 0.375 u. m. O ângulo dos sensores refere-se a posição dos mesmos em relação ao ângulo zero (frente do robô). Os sensores estão localizados nas extremidades esquerda e direita do robô, ou seja, nos ângulos (-π/2), para o sensor 1, e (π/2) para o sensor 2. O robô é controlado por uma rede de neurônios pulsantes baseada no modelo de Izhikevich [2]. Para obter um comportamento adequado do robô (aproximar do objeto), os parâmetros do modelo foram ajustados por meio de um algoritmo genético. Figura 1: Desenho esquemático do robô. O robô possui dois sensores e dois motores posicionados no mesmo eixo horizontal. 3.2 Controlador O controlador do robô consiste em uma rede formada 10 neurônios pulsantes. A rede foi divida em dois grupos simétricos de 5 neurônios cada, como mostra a Figura 2. Cada sensor está conectado a um único neurônio de cada grupo (neurônios 0 e 5, respectivamente). Os quatro neurônios restantes em cada grupo estão conectados aos motores. Dessa forma, o grupo neuronal 1 recebe dados do sensor 1 e controla o motor 1; e o grupo neuronal 2 recebe dados do sensor 2 e controla o motor 2. Os neurônios ligados aos sensores são tipo Class 1 Excitable, pois esta classe de neurônios tem a frequência de pulsos aumentada conforme a entrada cresce continuamente (Fig. 3). Este tipo de dinâmica é útil para detectar a distância entre o sensor e o objeto. Os parâmetros deste tipo de neurônio valem: a = 0.02, b = -0.1, c = -55 e d = 6. Os neurônios ligados aos motores são da classe Resonator porque, como visto na Fig. 4, XVII Encontro de Modelagem Computacional V Encontro Ciência e Tecnologia de Materiais Universidade Católica de Petrópolis (UCP), Petrópolis/RJ, Brasil. 15-17 out. 2014 Figura 2: Esquema da rede, juntamente com os sensores e motores. os pulsos são gerados de acordo com entradas degrau fornecidas, o que favorece que ele tenha neurônios pré-sinápticos. O nome Resonator é devido ao fato de que esse neurônio responde a entradas com frequencias similares (ou ressonantes) a oscilações de subthreshold (ou subliminares) [3]. Nesta classe de neurônio, os parâmetros a, b, c e d valem, respectivamente, 0.1, 0.26, -60 e -1. A leitura obtida pelos sensores é equivalente à distância euclidiana entre cada um deles e o objeto no ambiente. Tal distância é multiplicada por um parâmetro específico, que será evoluído pelo algoritmo genético. A diferença de ativação entre os sensores é essencial para rede identificar a posição do objeto e, desta maneira, controlar o comportamento do robô. Para a conversão dos pulsos dos neurônios para os motores, foi utilizado o mecanismo de uma janela deslizante, o qual contabiliza o número de spikes de 4 neurônios em cada grupo respectivamente (neurônios 1-4 do grupo 1 e neurônios 6-9 do grupo 2) nas últimas 100 iterações da rede, e envia para cada motor, conforme apresentado no esquema da Fig. 2. XVII Encontro de Modelagem Computacional V Encontro Ciência e Tecnologia de Materiais Universidade Católica de Petrópolis (UCP), Petrópolis/RJ, Brasil. 15-17 out. 2014 Figura 3: Class 1 Excitable Figura 4: Resonator. 3.3 Otimização dos parâmetros: algoritmo genético. Para otimização dos parâmetros do modelo foi utilizado o algoritmo genético Microbial [10]. Os cromossomos, ou elementos evoluídos com o algoritmo genético, foram: • A matriz de ligação entre os neurônios. Os elementos da matriz de ligação entre os neurônios foram gerados na faixa de 0 a 10, a partir da qual o algoritmo genético fez sua busca. No caso da matriz, cada gene é um número da matriz. • O peso dos sensores. O peso dos sensores foi gerado entre 2.5 e 10. • O peso dos motores. O peso dos motores foi variado entre 0 e 50. O cruzamento entre os indivíduos foi realizado recebendo um gene do vencedor com a taxa de 60%. A mutação foi feita através da soma ou subtração de um certo valor nos genes, respeitando-se os limites superiores e inferiores de cada um. Foram mutados 5% dos indivíduos. O tamanho da população foi de 100, e o número de torneios foi de 2000. Cada agente selecionado para participar dos torneios realizou 8 provas (trials). Cada prova durou 20000 iterações da rede de Izhikevich. Como o passo de integração do modelo foi de 0.001, cada prova corresponde a 20 segundos (tempo de vida do robô). Em cada prova, o robô foi posicionado em diferentes posições ângulos e em relação ao objeto. Os ângulos foram variados aleatoriamente entre 0 e 2 π radianos, sendo que o ângulo 0 equivale ao sentido direito do observador. Foi mantida fixa apenas a distância inicial entre o objeto e o robô, a qual foi de 50 unidades. Ao final de cada prova, calculava-se o fitness do agente e, em seguida, era obtida a média do fitness das oito provas. O cálculo do fitness foi feito da seguinte maneira: f itness = di − df , di (4) onde, di representa a distância inicial e df a distância final do robô ao objeto. Quando o robô se afasta do objeto (ou seja, df > di), o valor fitness é zero. Assim, o melhor robô obtem fitness 1, e o pior, 0. Não houve nenhuma razão específica para escolha do Microbial. Por ser um problema XVII Encontro de Modelagem Computacional V Encontro Ciência e Tecnologia de Materiais Universidade Católica de Petrópolis (UCP), Petrópolis/RJ, Brasil. 15-17 out. 2014 relativamente simples (controlar o comportamento do robô para se aproximar de um objeto), outros algorimos de otimização também poderiam ser utilizados. Resumindo, o robô se move em um ambiente bidimensional por meio da ativação dos dois motores, que são controlados pelos grupos de neurônios pulsantes, os quais, por sua vez, são estimulados pelos sensores. Tanto a ativação dos motores quanto a dos sensores são multiplicadas por parâmetros específicos. Os valores desses parâmetros, assim como os pesos entre os neurônios da rede, são otimizados por meio de um algoritmo genético. Na próxima seção serão vistos os resultados obtidos com a utilização deste modelo de controle e a otimização dos parâmetros do mesmo. 4. RESULTADOS Ao final dos 2000 torneios do algoritmo genético, o fitness do melhor indivíduo foi de 0.92, e a média da população, 0.61. A Fig. 5 apresenta como o fitness do melhor indivíduo e o fitness médio da população variam ao longo dos torneios. Inicialmente, o fitness do melhor indivíduo é de 0.77 e a média da população é 0.23. Após 200 torneios, o fitness do melhor indivíduo aumenta para 0.87 e a média da população para 0.35. Após aproximadamente 1300 torneios, o fitness do melhor indivíduo se estabiliza em 0.92 e a média da população em torno de 0.63. O melhor indivíduo da população foi escolhido para estudo das dinâmicas comportamental e interna. Figura 5: Fitness do melhor indivíduo e da população (eixo Y) em relação ao torneio do algoritmo genético (eixo X). A Fig. 6 mostra o comportamento de 4 execuções (ou "trials", em inglês) do melhor robô obtido por meio do genético. Cada robô começou em uma posição e angulos aleatórios e se aproximou do centro do ambiente onde o objeto estava localizado. Todos os robôs interagiram no ambiente durante 20 segundos (correspondente a 20000 passos de integração da rede). As trajetórias de cada robô no ambiente se diferem em suas formas devido às diferentes condições inicias dos robôs. A Fig. 7 apresenta a distância euclidiana do robô ao objeto para 8 execuções (provas) de um robô. Em cada execução, o robô é iniciado em uma posição e ângulos aleatórios. O gráfico mostra XVII Encontro de Modelagem Computacional V Encontro Ciência e Tecnologia de Materiais Universidade Católica de Petrópolis (UCP), Petrópolis/RJ, Brasil. 15-17 out. 2014 Algumas trajetórias do melhor indivíduo 60 40 20 0 −20 −40 −60 −80 −60 −40 −20 0 20 40 Figura 6: Quatro execuções do melhor robô após a otimização dos parâmetros. O círculo representa onde começou a trajetória do robô e o * representa o objeto. apenas as 3000 primeiras iterações de um total de 20000. Após 1500 iterações, todos os robôs já haviam se aproximado do objeto. No caso do sétimo robô (ver legenda do gráfico), inicialmente ele se afasta do objeto e somente após 500 itearações é que ele vira e muda de direção. O motido deste afastamento é que o robô inicia-se de “costas” para o objeto fazendo com que os sensores da direita e da esquerda apresentem a mesma leitura e, consequentemente, não detectem de qual lado o objeto se encontra. Somente após 500 iterações é que a diferença de ativação dos sensores se torna grande o suficiente para que o robô detecte a posição do objeto e mude de direção. Em todas as execuções realizadas, o robô se aproximou do centro e menor distância para o objeto foi de 2.8 unidades. A média das distâncias finais nas provas foi de 4 unidades de medida. Distâncias do robô até o objeto em cada prova 160 Primeira prova Segunda prova Terceira prova Quarta prova Quinta prova Sexta prova Sétima prova Oitava prova 140 Distância 120 100 80 60 40 20 0 0 500 1000 1500 2000 2500 3000 3500 Tempo Figura 7: Distâncias do robô ao objeto considerando 8 execuções (provas) do melhor indivíduo. A Fig. 8 apresenta a ativação dos neurônios num intervalo de tempo, para o melhor indivíduo. Nos últimos instantes, o robô está se aproximando do objeto, e o número de firings começa a diminuir, pois a rede não precisa mais pulsar para ativar os motores. Devido a este mecanismo, a partir de uma determinada distância do robô ao objeto, a rede para de pulsar, o que explica o robô sempre parar de se mover a uma determinada distância. XVII Encontro de Modelagem Computacional V Encontro Ciência e Tecnologia de Materiais Universidade Católica de Petrópolis (UCP), Petrópolis/RJ, Brasil. 15-17 out. 2014 9 8 7 Neurônio 6 5 4 3 2 1 0 950 1000 1050 1100 1150 1200 1250 1300 1350 1400 Iteração Figura 8: Firings, ou ativação dos neurônios no tempo Frequência (Hertz) Por fim, a Fig. 9 exibe a frequência de disparos (firings) na janela de tempo, para cada grupo neuronal, juntamente com a trajetória do robô no mesmo intervalo de tempo. Pode-se observar que em uma parte do tempo o grupo 1 pulsa mais que o grupo 2, significando que o robô faz uma curva em torno do motor 2 (motor da direita do robô). Quando o grupo 1 pulsa em frequências similares à do grupo 2, significando que a diferença entre eles tende a zero, o robô tende a se mover para a frente, em linha reta. Portanto, tal dinâmica neural pode ser percebida na dinâmica do comportamento do robô, como mostram as figuras. Frequência média de cada grupo neuronal x tempo 100 Grupo 1 Grupo 2 50 0 100 200 300 400 500 600 700 800 Tempo (ms) Trajetória robô 20 0 −20 −60 −50 −40 −30 −20 −10 0 Figura 9: Frequência de disparos na janela de tempo, para cada grupo neuronal, e trajetória do robô Como exemplo, na Fig. 9 pode-se verificar que, aproximadamente no momento 280 ms, o grupo neuronal 2 começa a ter mais pulsos que o grupo 1. Devido a isso, o robô começou a girar para a direita, para ir em direção ao objeto, como mostra a figura da trajetória. Depois disso os mesmos ficam por um tempo com o mesmo valor, para andar em linha reta, e depois as diferenças surgem novamente, até o robô aproximar-se finalmente do objeto. A próxima seção apresenta uma discussão dos resultados apresentados. XVII Encontro de Modelagem Computacional V Encontro Ciência e Tecnologia de Materiais Universidade Católica de Petrópolis (UCP), Petrópolis/RJ, Brasil. 15-17 out. 2014 5. DISCUSSÃO E CONCLUSÃO Neste trabalho, foi criada uma rede de neurônios pulsantes baseado no modelo de Izhikevich [2] com o objetivo de controlar um robô simulado computacionalmente. Seus parâmetros foram evoluídos através do algoritmo genético microbial. Com 10 neurônios, sendo dois conectados aos sensores, e os demais aos motores, e após cerca de 2000 torneios, o agente apresentou um fitness de 0.92. Assim, o robô move-se em direção ao objeto com sucesso, de forma robusta, a partir de diferentes posições no ambiente. O controlador do robô foi modelado com apenas 10 neurônios pois, como o tipo de comportamento desejado do robô é relativamente simples (aproximar de um objeto no ambiente), seria desnecessário utilizar uma rede com muitos neurônios. Durante o desenvolvimento deste trabalho, uma das dificuldades encontradas foi relacionada à maneira de ligar os sensores à rede, e a mesma aos motores. Foi necessário utilizar um tipo de neurônio (Class 1 Excitable) cuja dinâmica variasse em função da entrada contínua dos sensores. Já os motores, tiveram que ser controlados pela taxa de disparos do grupo neuronal dentro de uma janela de tempo deslizante de tamanho 100 – correspondente a 100 iterações da rede. Inicialmente, o objetivo era controlar os motores por meio de uma função que variasse de acordo com o tempo de disparo entre os neurônios do grupo neuronal. Desta forma, um grupo sincronizado, por exemplo, poderia gerar um sinal de intensidade máxima para os motores, enquanto que um grupo totalmente desincronizado poderia gerar um sinal nulo. Como este tipo de função possui uma complexidade um pouco maior, em termos de modelagem e implementação, e como o modelo utilizando a taxa de disparos já apresentava inúmeras outras variáveis que tinham que ser otimizadas, optou-se por um modelo um pouco mais simplificado para controlar os motores. Como trabalho futuro, pretende-se utilizar o nível de sincronia entre os neurônios para controlar os motores. Também houve dificuldades em como estruturar a rede internamente, quais tipos de neurônios utilizar, e quais seriam ligados aos sensores (pré-sinápticos) e aos motores (pós-sinápticos). Além disso, foi necessário estudar os espaços de busca a fim de aplicar corretamente o algoritmo genético. Os espaços de busca foram definidos analisando a dinâmica da rede individualmente e o comportamento do robô no ambiente. Nas primeiras rodadas do algoritmo genético, por exemplo, observou-se que o intervalo de busca dos pesos sinápticos estava abaixo do necessário para informação ser transferida dos sensores para os motores, por meio da rede. Apesar de ter sido utilizado o algoritmo genético para evoluir os parâmetros, o robô já apresentava um comportamento relativamente adequado mesmo antes da evolução, conforme medido pelo fitness em torno de 0.77 apresentado na Fig. 5. A justificativa para isto é que modelo foi projetado de tal forma que a aproximação do robô ao objeto era algo já esperado. Cada motor é controlado por redes simétricas estimuladas pelos sensores da direita e da esquerda, respectivamente. Então, quando o valor do sensor 1 é maior (ou seja, a distância do sensor 1 para o objeto é maior), o número de spikes do grupo 1 é também mais elevado. Desta forma, o motor 1 tem uma velocidade maior do que o motor 2, e o robô faz uma curva para o lado do grupo 2 (que é o lado mais próximo do objeto naquele momento). Esta maneira de ligar os sensores aos grupos neurais e estes aos motores, faz com que o sistema sempre busque um equilíbrio nas ativações dos grupos neuronais 1 e 2. Toda vez em que ocorre um desequilíbrio, o grupo com maior taxa de disparos faz com que o robô se rotacione de tal forma que o equilíbrio seja reestabelecido. Apesar de já ser esperado um comportamento adequado do robô devido a forma como foi projetado, o algoritmo genético foi essencial para realizar um ajuste fino no comportamento do robô. É importante ressaltar que o modelo computacional apresentado neste trabalho é uma versão XVII Encontro de Modelagem Computacional V Encontro Ciência e Tecnologia de Materiais Universidade Católica de Petrópolis (UCP), Petrópolis/RJ, Brasil. 15-17 out. 2014 inicial de um modelo mais complexo que se pretende desenvolver. O próximo passo deste trabalho é deixar de utilizar as redes simétricas no controlador do robô tornando, desta forma, o uso do algoritmo genético essencial para otimização dos parâmetros. O desenvolvimento futuro deste trabalho poderá contribuir para o entendimento de sistemas cognitivos, particularmente para o estudo de mecanismos gerativos de coordenações sensório motoras funcionais, dinâmicas de neurônios pulsantes, dinâmica informacional em redes oscilatórias, relevância causal dos componentes oscilatórios do sistema na geração de comportamentos, relação entre dinâmica neural e comportamentos no ambiente, mecanismos neurais de percepção, adaptação e memória. Poderá contribuir também para o desenvolvimento de controladores para robôs reais. Ou seja, esse estudo poderá contribuir tanto para a área de inteligência artificial, como na área de robótica, e até mesmo na Psicologia e Biologia, através da reprodução de fenômenos psicológicos e desenvolvimento de redes neurais artificiais inspiradas em redes neurais biológicas. O objetivo deste trabalho, que foi desenvolver um robô simulado controlado por uma rede neural de neurônios pulsantes com parâmetros evoluídos por um algoritmo genético, foi obtido, e de maneira satisfatória. O modelo aqui apresentado servirá como base para elaboração de modelos mais complexos e, consequentemente, para o estudo de redes de neurônios pulsantes controlando dinâmicas de coordenações sensório-motoras. Referências [1] Fernandez-Leon, Jose A., 2011. Evolving cognitive-behavioural dependencies in situated agents for behavioural robustness. Biosystems, vol. 106, n. 2-3, pp. 94–110. [2] Eugene M. Izhikevich, 2003. Simple model of spiking neurons. Networks, vol. 14, n. 6, pp. 1569–1572. IEEE Trans. Neural [3] Eugene M. Izhikevich, 2004. Simple model of spiking neurons. Networks, vol. 15 n. 5, pp. 1063–1070. IEEE Trans. Neural [4] Moioli, Renan C. and Vargas, Patrícia Amâncio and Husbands, Phil, 2012. Synchronisation effects on the behavioural performance and information dynamics of a simulated minimally cognitive robotic agent. Biosystems, vol. 106, n. 6-7, pp. 407–427. [5] Santos, Bruno A. and Barandiaran, Xabier E. and Husbands, Philip and Aguilera, Miguel and Bedia, Manuel Glez, 2012. Sensorimotor coordination and metastability in a situated HKB model. Connect. Sci., vol. 24, n. 4, pp. 143–161. [6] Agmon, E. and Beer, R. D. 2014. The evolution and analysis of action switching in embodied agents Adaptive Behavior, vol. 22, n. 1, pp. 3–20. [7] Hagras, H., Pounds-cornish, A., Colley, M., Callaghan, V., Clarke, G., 2004. Evolving Spiking Neural Network Controllers for Autonomous Robots Proceedings of the 2004 IEEE International Conference on Robotics and Automation, pp. 4620–4626. [8] Floreano D., Nolfi S., Mondada F. 1998. Competitive Co-Evolutionary Robotics: From Theory to Practice. MIT Press [9] Harvey, I., Di Paolo, E., Rachel W., Matt Q., Elio T., Elio T. Evolutionary robotics: A new scientific tool for studying cognition MIT Press, vol. 11, n. 1-2, pp. 79–98. XVII Encontro de Modelagem Computacional V Encontro Ciência e Tecnologia de Materiais Universidade Católica de Petrópolis (UCP), Petrópolis/RJ, Brasil. 15-17 out. 2014 [10] Harvey, Inman Artificial Evolution: A Continuing SAGA Springer, vol. 2217, pp. 94–109. IMPLEMENTATION OF A SIMULATED ROBOT CONTROLLED BY A SPIKING NEURON NETWORK PARAMETERIZED BY A GENETIC ALGORITHM Abstract. This work aims to develop a simulated robot, controlled by a spiking neural network, parameterized by genetic algorithms. Its task is to move to a certain object. The Izhikevich computacional model was chosen, due to its simplicity and computational efficiency, in addition to it representing with accuracy, from the biological view, a spiking neural network. There is a research for methods to connect the network with the two robot sensors and motors, and the robot had a circular format. Network parameters - neuron connectivity matrix, sensors and motors weight - are tuned with the Microbial genetic algorithm, which is simple and efficient, like the network. With 10 neurons, being two connected to the sensors, and the others to the motors, and after 2000 tournaments, the agent gets a fitness of 92%. This way, the robot successfully goes to the object, starting from different positions in the environment. Palavras-chave: Evolucionary robotics, Spiking neural network, Microbial algorithm, Izhikevich