RobotBulls Robotics Team Description 2015 (2D)

Documentos relacionados
Desenvolvimento de Estratégia para Programação do Futebol de Robôs

Lógica Fuzzy. Alexandre Garcia Aguado, Marco André Cantanhede

TDP do time RECIFE SOCCER Futebol SPL

Implementação de um Time para a categoria RoboCup Soccer Simulation 3D

Fabrício Jailson Barth BandTec

Simulação de Futebol de Robôs

Desenvolvimento de um time de futebol robótico para o RoboCup 2D

Modelagem de Classes. Mestrado em Engenharia de Produção e Sistemas Computacionais. Profa. Adriana Pereira de Medeiros

Inteligência Artificial Agentes Inteligentes

Modelagem e Simulação de um Sistema de Aprendizado de Reforço para Robôs

Mecanismos de Interrupção e de Exceção, Barramento, Redes e Sistemas Distribuídos. Sistemas Operacionais, Sistemas

Entidade Mantenedora: SEAMB Sociedade Espírita Albertino Marques Barreto CNPJ: /

Inteligência Artificial Aplicada a Robôs Reais

Inteligência Artificial

Sistema de Reconhecimento de Robôs da categoria Small Size de Futebol de Robôs da FEI RoboFEI

Inteligência Artificial (Lista 1) Prof. Alex F. V. Machado

Inteligência Artificial. Prof. Ilaim Costa Jr.

Um Middleware de Inteligência Artificial para Jogos Digitais 105

Quem somos? História. Mais informações acessem:

Resumo parcial da Tese de Doutorado. Um modelo de Sistema de Gestão do Conhecimento para grupos de pesquisa e desenvolvimento.

GRADE CURRICULAR E CORPO DOCENTE. Fase 1 Carga horária total: 360h

Redes Neurais e Sistemas Fuzzy

Pós-Graduação em Engenharia de Automação Industrial SISTEMAS INTELIGENTES PARA AUTOMAÇÃO

Como Modelar com UML 2

Trabalho Campeonato de Futebol Programação Orientada a Objetos (SCC204) Prof. Moacir Pereira Ponti Junior 26 de abril de 2011

Implementação de controlador PID fuzzy para otimização do controle de posição de um servomotor DC

Iniciação Científica no INATEL

INTELIGÊNCIA COMPUTACIONAL

Introdução à Computação

Curso de Bacharelado em Ciência da Computação

Inteligência Computacional para Jogos Eletrônicos

lnteligência Artificial Introdução a Lógica Nebulosa (Fuzzy)

1. Introdução. 1.1.Objetivo

Campeonato de Gamão. 1. Regras. 2. Servidor

Inteligência Artificial. Aula 1 Prof. Nayat Sánchez Pi

Figura 4.2: Matriz Curricular

Pós-Graduação em Engenharia de Automação Industrial SISTEMAS INTELIGENTES PARA AUTOMAÇÃO

SIMULADOR DE UMA PARTIDA DE FUTEBOL COM ROBÔS VIRTUAIS

INF 1771 Inteligência Artificial

ATIVIDADES PRÁTICAS SUPERVISIONADAS

FUTSAL. Trabalho realizado por: Helena Rocha 12ºA Nº17 Ana Lúcia 12ºA Nº3

Iniciação Científica no INATEL

Objetos de Aprendizagem Conceitos Básicos. Liane Tarouco CINTED/UFRGS

INF 1771 Inteligência Artificial

Autores: Roberto Krieck, presidente e Márcio Belli, gerente comercial da Operacional Solution, fornecedora de software ERP e MES

Colégio Adventista de Rio Preto. Futsal. 9º ano. Prof. Daniel Prandi. Prof. Sheila Molina

Pesquisa Operacional Introdução. Profa. Alessandra Martins Coelho

Framework para o Desenvolvimento de Agentes para a Robocup: o Módulo de Definição de Áreas de Atuação

APLICAÇÃO DE NÚMEROS FUZZY TRIANGULARES EM ANÁLISES DE INVESTIMENTOS EM SITUAÇÕES DE INCERTEZA - MÉTODO BASEADO NA TEORIA DOS JOGOS

lnteligência Artificial Introdução a Lógica Nebulosa (Fuzzy)

Modelagem para previsão/estimação: uma aplicação Neuro-Fuzzy

REGRAS DO CAMPEONATO

Aprendizado de Máquina (Machine Learning)

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS PRÓ-REITORIA DE GRADUAÇÃO ESCOLA DE CIÊNCIAS EXATAS E DA COMPUTAÇÃO PLANO DE ENSINO

INE 5101 Simulação Discreta. Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE

LÓGICA FUZZY. Adão de Melo Neto

3 Aprendizado por reforço

2010 Modalidade: Teórica Nível 4 (8º e 9º anos ensino fundamental) Duração: 2 horas Nome do Aluno:... Matr:... Escola:... Cidade:... Estado:...

Sistemas Especialistas

DESENVOLVIMENTO DE ROBÔS MÓVEIS PARA IMPLANTAÇÃO DE UM TIME DE FUTEBOL DE ROBÔS DO IFSULDEMINAS RESUMO

Introdução à Ciência da Computação

CRÉDITOS DO CURSO. Carga Horária Créditos IN1030 Seminários 30 2

Minicurso: Inteligência Artificial Aplicada a Sistemas Elétricos

Inteligência Artificial. Conceitos Gerais

Orientação a Objetos Parte I. Introdução a POO (Programação Orientada a Objetos)

Inteligência Artificial

IF-705 Automação Inteligente Sistemas de Controle - Fundamentos

Transcrição:

RobotBulls Robotics Team Description 2015 (2D) Alexandre Baratella Lugli, Haroldo Manoel Dornelas, Leonardo de Oliveira Saldanha e Wanderson Eleutério Saldanha. Av. João de Camargo, 510, Santa Rita do Sapucaí/MG. INATEL National Institute of Telecommunications, Department of Industrial Automation and Control. Santa Rita do Sapucaí, Minas Gerais, Brazil. Resumo - O documento a seguir descreve a composição de um time de futebol virtual, na categoria 2D. Tem como principal objetivo apresentar o desenvolvimento do time de futebol RobotBulls, assim como as metodologias utilizadas e resultados obtidos durante o desenvolvimento do trabalho. I - INTRODUÇÃO A RobotBulls é marca do Laboratório de Robótica e Inteligência Artificial do Instituto Nacional de Telecomonunicações - INATEL. Foi idealizada no segundo semestre de 2013 pelos alunos de Engenharia de Controle e Automação Industrial. O objetivo da equipe é promover a pesquisa na área da robótica visando aprimorar o conhecimento, de forma que auxilie na criação de soluções inovadoras. O objetivo do trabalho é estudar, desenvolver e aplicar técnicas de programação, a fim de desenvolver uma equipe de robôs virtuais, autônomos, para participação em eventos de pesquisa e desenvolvimento, motivando a busca por soluções inovadoras. O trabalho é direcionado para o desenvolvimento de uma aplicação de futebol de robôs, na modalidade de simulação em duas dimensões (2D). Utilizando técnicas de programação que visam implementar as possíveis jogadas que cada jogador pode executar no campo, o time foi desenvolvido sob um modelo disponibilizado livremente na internet, com características básicas dos jogadores, chamado de Agent2D Helios base[1]. A partir do time base, os comportamentos dos jogadores são modificados, a fim de melhorar seu desempenho e estratégia em campo. Cada jogador deve possuir um certo grau de inteligência artificial (IA) que lhe permita prever uma possível jogada do adversário e, então, ser capaz de executar uma ação preventiva. Os jogadores programados, denominados agentes desempenham papéis distinto em campo, como acontece no futebol real. Os principais papéis são: goleiro, defensores, meio campistas, atacantes e técnico, de acordo com as regras e regulamentações disponíveis em [2]. orientada a objetos. A modularidade oferecida pela linguagem permite a abstração e modelagem de comportamentos e atitudes, praticados na realidade pelos jogadores reais. Uma abstração mais próxima da realidade vai além da lógica booleana e requer técnicas avanças de programação e aprendizado. A lógica difusa e o aprendizado por reforço são as técnicas mais comuns utilizadas na categoria entre outras. A lógica difusa permite, através de cálculos de persistência, encontrar infinitos valores determinísticos entre 0 e 1, o que representa uma alusão do mundo real, onde quase nada é exato. [4] No mundo real, a habilidade e aprimoramento das técnicas proporcionada pelos jogadores são desenvolvidos com a prática repetitiva em exaustivos treinos. O futebol virtual diverge pouco da prática real. O aprendizado por reforço pode ser alcançado por modelagem de estados, formalizados por Processos Markovianos de Decisão, introduzindo a função heurística para influenciar o agente na escolha de suas ações, durante o aprendizado. As heurísticas são extraídas em tempo de execução, oferecendo alguma recompensa para as ações corretas. [5] III - DESENVOLVIMENTO A. Elementos do jogo Para se realizar um jogo é necessário ter, no mínimo, os seguintes agentes: goleiro, jogadores, técnico e campo. A Figura 1 ilustra, de forma simples, a disposição dos jogadores do time base Agent2D. O time base é um time padrão, com apenas os movimentos e ações básicos, sem a implementação de nenhuma lógica avançada de controle. A estrutura básica permite iniciar o desenvolvimento de novos métodos e características conforme a necessidade vem sendo apresentada pelos oponentes em cada nova competição. [1] II - METODOLOGIA A categoria de futebol de robôs em 2D utiliza a linguagem de programação C++. Segundo [3], nos últimos anos cresceu muito a utilização de programação orientada a objetos. A linguagem de programação C++ implementou vários elementos chave de programação orientada a objetos, permitindo a utilização de poderosas técnicas de projeto

Figura 3. Exemplo do campo de visão. Figura 1. Disposição dos jogadores do time base. A comunicação entre os agentes é feita através da troca de mensagens UDP conforme Figura 2. O servidor, por padrão cria interferência aleatória sobre as mensagens, oferecendo ao cenário virtual um comportamento semelhante ao do mundo real. O ambiente de simulação possui além dos jogadores e o goleiro, dois agentes abstratos denominados Árbitro e técnico. Estes agentes não são apresentados visualmente durante a execução da simulação, não obstante que, interagem normalmente com os demais agentes em campo. O árbitro efetua a supervisão da partida, efetuando a marcação de irregularidades, aplicação de advertências, bem como, a expulsão de determinado jogador. O técnico efetua a manutenção do time, substituindo jogadores cansados e alterando as tácticas do jogo. Figura 4. Marcas de orientação. Os agentes nada mais são que objetos instanciados a partir de basicamente duas classes principais em campo, interagindo em modo cooperativo com os demais companheiros. A classe SamplePlayer que implementa as características e comportamentos dos diversos jogadores e a classe SampleCoach implementa as características e comportamentos do técnico da equipe.em campo. Através destas classes é possível implementar uma lógica de controle, a fim de otimizar a realização de alguma tarefa específica. [1] Figura 2. Comunicação entre agentes. Cada agente possui uma visão limitada do jogo, conforme ilustrado na Figura 3. Para sua orientação em campo, cada agente consegue ver, pelo menos, uma flag de marcação, conforme a Figura 4. O campo é mapeado sobre um Plano cartesiano com origem no centro (pontapé inicial) através de coordenadas horizontais e verticais. Essas coordenadas são a referência de orientação para os objetos em campo, no caso, agentes e bola. B. Estratégias e programação A programação orientada a objetos surgiu com o principal objetivo de unir os dados e funções em um único elemento: o objeto. Esta metodologia traz uma série de vantagens sobre linguagens de programação procedural, como o C, conforme listado a seguir [3]. - Reusabilidade: as classes que compõem o sistema podem ser aproveitadas em outros sistemas, sem alteração, uma vez que, os dados e funções estão contidos dentro da classe. Caso haja necessidade, podem-se criar novas classes baseadas em outras já existentes, herdando as características da classe pai. - Encapsulamento: proteção dos dados contra alterações indevidas. O encapsulamento mantém escondidos dados e métodos do objeto. Pode-se explicitamente declarar o grau de visibilidade de atributos e métodos. - Produtividade: A partir do momento que temos a disposição uma coleção de classes devidamente testadas e com um funcionamento a prova de erros, para criar novos sistemas, basta usar estas classes,

sem nenhuma necessidade de reescrever e adaptar código. Isto dá, sem sombra de dúvida, maior rapidez e, consequentemente, produtividade no desenvolvimento da equipe. A Linguagem C++ é uma extensão da linguagem C que incorpora recursos de Orientação a Objetos. [3] A Figura 5 ilustra um trecho de código de programação básica do agente goleiro, no qual é possível verificar um teste se deve "pegar" ou "chutar" a bola ou se movimentar em campo. Figura 6. Trecho de código de implementação Fuzzy. Figura 5. Exemplo do metódo executar() do agente goleiro. C. Técnicas avançadas de programação Além da programação estruturada e orientada a objetos, também é possível utilizar a técnica de inteligência artificial chamada de lógica Fuzzy (Difusa). Esse sistema lógico vai além da Lógica Booleana, onde temos apenas dois valores lógicos: o FALSO (0) e o VERDADEIRO (1) e possibilita a utilização de valores lógicos intermediários. Isto significa que um valor lógico difuso é um valor qualquer no intervalo de valores entre 0 e 1. O que diferencia a lógica Fuzzy da lógica booleana é a capacidade desta de se aproximar do mundo real onde não existem somente respostas extremas. A lógica Fuzzy fornece espaço ao meio termo apresentando ainda a possibilidade de mensurar o grau de aproximação da solução exata e assim inferir algo que seja necessário. A Figura 6 apresenta um trecho de código implementando a lógica Fuzzy para um cálculo de probabilidades. [4] Quando um determinado problema apresenta um grande grau de incerteza é necessário que para solução deste se utilize um modelo matemático que contemple essa especificidade e não desconsidere aspectos que possam ser ignorados na aplicação de lógicas tradicionais. Para esses casos a Lógica Fuzzy é amplamente recomendada, pois apresenta um modelo capaz de combinar a imprecisão associada aos eventos naturais e o poder computacional das máquinas produzindo assim sistemas de respostas inteligentes. [4] Um dos grandes objetivos inerentes à Lógica Fuzzy é se aproximar em sua lógica, da forma com que o raciocínio humano relaciona as informações buscando respostas aproximadas aos problemas, por isso o grande foco desta lógica é a solução de problemas cujas informações recentes sejam incertas. Na Figura 7 é apresentada a representação de um sistema difuso, contendo os seus principais componentes. Figura 7. Representação de um sistema difuso

A "fuzzificação" do sistema lógico Fuzzy consiste analise do problema e os dados de entrada são transformados em variáveis linguísticas. O processo de inferência consiste na elaboração de regras definidas para a execução da lógica. A defuzzificação é a etapa em que os valores Fuzzy são convertidos em números reais tendo assim um conjunto de saída matematicamente definido. [4] D. Aprendizado por reforço O aprendizado com reforço pode ser entendido da seguinte forma, se uma ação é seguida de estados satisfatórios, ou por uma melhoria no estado, então a tendência para produzir esta ação é aumentada, isto é, reforçada. Estendendo-se esta ideia, ações podem ser selecionadas em função da informação sobre os estados que elas podem produzir, o que introduz aspectos de controle com realimentação. Uma forma de modelar problemas de aprendizado com reforço é utilizar o Processo de Decisão de Markov. Três sinais passam de um lado para outro entre o agente e o ambiente, como é mostrado na Figura 8, caracterizando o problema de aprendizagem: um sinal para representar as escolhas feitas pelo agente, um sinal que indica o estado do ambiente e um sinal para definir as metas do agente, representando respectivamente as ações, estados do ambiente e as recompensas. [5] Figura 9. Método de recompensa para ação de chutar a bola. IV - RESULTADOS PARCIAIS Os testes de validação foram realizados ao longo do ano, após a equipe ter estudado as regras do jogo, comportamentos dos jogadores e o funcionamento do sistema. A partir do time base padrão foram desenvolvidos alguns times, testados entre si para definir o time que obtivesse melhor desempenho dentre os demais, logo o time oficial foi definido e testado com outros times disponibilizados por competidores de campeonatos anteriores. Alguns dos resultados parciais estão ilustrados na Tabela I, na qual é possível verificar uma porcentagem de 18/28 de vitórias sobre as demais equipes, representando uma margem de vitórias em 64,3%. Figura 8. Modelo padrão de aprendizado com reforço. Na estrutura da aprendizagem com reforço, o agente faz suas decisões com base num sinal do ambiente chamado de estado do ambiente. Caso um estado contenha toda a informação relevante, então ele é chamado de Markov ou que tem a propriedade de Markov. A Figura 9 apresenta um trecho de código do método de recompensa para as ações de chute do agente.

Tabela III. Classificação Final na IWCA 2015 VI - CONCLUSÃO Tabela I. Resultados parciais. V - CAMPEONATOS O ápice do trabalho chega ao seu início com a participação da equipe no Congresso Brasileiro de Robótica, em 2014 [6]. A Tabela II demonstra a classificação final da equipe RobotBulls entre os 12 times que participaram da competição. A equipe obteve a oitava posição na classificação, sendo esse resultado considerado satisfatório, uma vez que esta foi a primeira participação da equipe em uma competição. [7] Os sistemas de robôs estão em grande ascensão atualmente, devido às inúmeras aplicações que podem ser realizadas. O futebol de robô possibilita a implementação de conceitos computacionais inovadores e aplicações de técnicas de sistemas dotados de inteligência, a fim de otimizar a jogada e operação dos elementos de campo. Assim, é de suma importância ter a correta posição dos jogadores dentro do campo, ter uma lógica de programação consistente e poder prever as jogadas do time adversário com precisão e rapidez. É possível, ainda, utilizar das técnicas de decisão persistente, como lógica Fuzzy, visando a otimização e previsão das jogadas realizadas pelos jogadores e técnicas de aprendizado, como Q-learning e o uso de heurísticas. Com o desenvolvimento deste trabalho, a equipe obteve incentivo e confiança para seguir em frente, iniciando o desenvolvimento do estudo em novas categorias e segmentos. Conclui-se que o futebol 2D é apenas o inicio de um estudo que visa o desenvolvimento de um time de futebol com robôs reais. A meta para o ano de 2015 será participar do Congresso Brasileiro de Robótica - LARC/CBR 2015, buscando uma colocação entre os melhores times latinoamericanos e continuar o trabalho para iniciar sua primeira participação no campeonato mundial Robocup 2016. REFERÊNCIAS BIBLIOGRÁFICAS Tabela II. Classificação Final LARC/CBR 2014. Em 2015 a equipe participou da competição de robótica promovida pela organização da IWCA no Instituto Nacional de Telecomunicações. Entre seis times brasileiros e dois times internacionais, a RobotBulls conquistou o terceiro lugar, ficando em primeiro lugar entre os times nacionais. A Tabela III apresenta a classificação da equipe na competição de robótica da IWCA 2015. [9] [1] Robocup Tools Project. Disponível em <http://en.osdn.jp/projects/rctools/> - Acesso em 02 de Maio de 2015. [2] Rules of Soccer Simulation League 2D. Disponível em <http://www.cbrobotica.org/wpcontent/uploads/2drulesrobocup2014.pdf> - Acesso em 21 de Maio de 2015. [3] Robocup Federation. Dispnível em <http://www.robocup.org.br/> - Acesso em 02/06/2015 [4] MANSSOUR, Isabel H. Linguagem de Programação C++. Curso de Linguagem de programação C++. Disponível em: <https://www.inf.pucrs.br/manssour/linguagemc++/> - Acesso em 02 de Junho de 2015. [5] COX, E. The fuzzy systems handbook: a practitioner s guide to building, using, and

maintaining fuzzy systems. New York: AP Professional, 1994. [6] BIANCHI, Reinaldo A. da Costa. Uso de Heurísticas para a Aceleração do Aprendizado por reforço. Tese de doutorado - Escola Politécnica da Universidade de São Paulo. São Paulo, 2004. [7] Congresso Brasileiro de Robótica. Disponível em: <http://www.cbrobotica.org/> - Acesso em 02 de Junho de 2015. [8] Final Results - RoboCup Simulation 2D. CBR/LARC 2014. São Carlos - SP. Disponível em: <http://www.dainf.ct.utfpr.edu.br/~fabro/larc2014/> - Acesso em 02 de Junho de 2015. [9] Robotics Championship soccer simulation. IWCA 2015. Santa Rita do Sapucaí. Disponível em: <http://www.inatel.br/iwca/futebol2d> - Acesso em 02 de Junho de 2015.