1 / 27

Jacques Robin CIn-UFPE

Jacques Robin CIn-UFPE. O que é RoboCup?. Copa de mundo de futebol para robôs físicos e software multi-agentes (softbots) Competição anual associada a uma conferência internacional de IA, robótica ou sistemas multi-agentes Roteiro da apresentação: Motivação e desafios da RoboCup

dung
Download Presentation

Jacques Robin CIn-UFPE

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Jacques Robin CIn-UFPE

  2. O que é RoboCup? • Copa de mundo de futebol para robôs físicos e software multi-agentes (softbots) • Competição anual associada a uma conferência internacional de IA, robótica ou sistemas multi-agentes • Roteiro da apresentação: • Motivação e desafios da RoboCup • Competições e resultados • SoccerServer • RoboLog • Times do CIn-UFPE • Melhores times da RoboCup’99 divisão softbots

  3. Motivação e desafios da RoboCup • Integrar pesquisa e tecnologia fragmentadas da IA • Percepção computacional (visão, integração de sensores) • Robótica (controle e integração de ações físicas) • Raciocínio, representação do conhecimento e planejamento (reativo e deliberativo) • Aprendizagem de máquina • Sistemas multi-agentes e IA distribuída (comunicação, cooperação, inteligência coletiva emergente) • IA tempo-real • Novo teste de Turing para a IA depois do xadrez • já que conseguimos tornar os computadores mais inteligentes do que Kasparov, • vamos agora tentar eleva-los a um nível de inteligência muito mais alto: o de Zidane !

  4. Histórico • 1992: idéia nasce em um workshop japonês de robótica • 1993: anuncio da Robot-J-League, que logo globaliza-se em Robot World Cup Initiative atendendo apelos da comunidade científica internacional • 1996: pré-RoboCup em Osaka na International Conference on Inteligent Robotics and Systems • 1997: 1a RoboCup em Nagoya no IJCAI’97 • 1998: 2a RoboCup em Paris no ICMAS’98 durante a Copa do Mundo de futebol humano • 1999: 3a RoboCup em Stockholm no IJCAI’99 • 2000: 4a RoboCup em Melbourne no PRICAI’2000

  5. Competições • 4 divisões: • Robôs grandes • 11 robôs do tamanho de R2D2 em quadra de futebol de salão • Robôs pequenos • 5 robôs de diâmetro max 18cm em mesa de ping-pong • visão global autorizada • Robôs com pernas • 3 robô-cachorros da Sony • hardware padronizado • Software multi-agentes (robôs virtuais) • Arquitetura cliente-servidor simulando jogo • SoccerServer implementa o ambiente • 22 clientes implementam os agente jogadores • Comunicação entre jogadores apenas através de strings passadas via o SoccerServer

  6. Robô grande: Robôs pequenos: Robôs cachorros: Competições: fotos

  7. Campeões • 1997: • Grandes: 5 times, 1. ISI/USC (us) • Pequenos: 4 times, 1. CMU (us) • Virtuais: 33 times, • 1. Humboldt U. (de), 2. Tokyo IT (jp), 3. ISI/USC, 4. CMU • 1998 • Grandes: 16 times, 1. Freiburg U, (de), 2. Tubligen U. (de) • Pequenos: 12 times, 1. CMU, 2. Roborros (au) • Virtuais: 34 times, 1. CMU, 2. Humboldt U. • 1999 • Grandes: 20 times, 1. Sharif (?), 2. ART (?), 3. Freiburg U. • Pequenos: 16 times, 1. BigRed (?), 2. FUFighter (?), 3. Lucky Star (?) • Cachorros: 9 times, 1. LRP (fr), 2. UNSW (uk), 3. CMU • Virtuais: 38 times, 1. CMU (us), 2. Freiburg U. (de), 3. Essex (uk)

  8. UDP/IP UDP/IP SoccerServer: arquitetura • Arquitetura clientes-servidor implementa simulador multi-agentes • Servidor atualiza: ambiente dos agentes = campo dos jogadores • Cliente do SoccerServer = agente = jogador • Time = software multi-agentes distribuído em 11 clientes Soccer Monitor Time A Time B Client 1 Client 1 Soccer Server Client 11 Client 11

  9. SoccerServer: comunicação • Recebe strings dos clientes jogadores • codificando suas ações no campo (correr, girar, chutar...) • Atualiza seu modelo do ambiente campo • as conseqüências das ações escolhidas pelos agentes • Manda strings para os clientes jogadores • codificando suas percepções no campo atualizado • visão da bola, dos outros jogadores, audição de mensagens,... • Modelo do campo: • bi-dimensional, atualizado cada 100ms • Comunicação entre jogadores apenas indireta: • ação de falar mandada para o SoccerServer • percepção auditiva recebida do SoccerServer

  10. SoccerMonitor

  11. SoccerServer: propriocepção • Parâmetros: • senseBody(Time, % momento da propriocepção viewMode(Quality, Width), % compromisso entre largura, % qualidade e freqüência da visão stamina(Stamina, % reserva de energia do jogador % parcialmente: - consumida por cada ação % - reabastecida a cada ciclo Effort) % f(Stamina) = percentual da força desejada % da próxima ação efetivamente disponível Speed, % ~ velocidade do jogador HeadAngle, % ângulo cabeça/corpo actionCounts(Kicks, Dashes, Turns, Says, NeckTurns) % número de ações de cada tipo já executada pelo jogador ) • Freqüência: 1 por ciclo

  12. SoccerServer: parámetros da visão • see(Time, % tempo da visão ObjName, % estrutura identificando objeto visto Distance, % posição relativa do objeto visto em coords Direção, % polares centrado no jogador olhando DistChng, DirChng, % derivadas dessas coordenadas polares BodyDir, % quando objeto visto é um jogador, orientação HeadDir) % do corpo e da cabeça relativamente a direção • ObjName = ball | • player(Team,Number) | • goal({l;r}) | % l = left, r = right • line({l|r|t|b}) % t = top, b = bottom • flag/1 | % pontos de referência no campo: • flag/2 | % com argumentos l,r,t,b, e/ou • flag/3). % c = center, p = penalty area, g = goalpoast.

  13. SoccerServer: limites da visão • Campo: • circulo de raio VisibleDistance fixo ao redor do jogador • cone centrado no rosto do jogador de ângulo ViewWidth = {180;90;45} escolhido pelo jogado • Clareza: diminuí com a distância • de perto direção e distância do objeto e se for jogador também cor e número • de longe apenas direção do objeto e se for jogador sem cor nem número • variação contínua entre os dois influência pela escolha de ViewQuality pelo jogador • Confiabilidade: ruído aumenta com distância • Freqüência: inversamente proporcional a ViewQuality e ViewWidth

  14. SoccerServer: audição • Parâmetros: • hear(Time, % tempo da audição Direction, % angulo da procedência da mensagem auditíva % 2 exceções: Direction = self ou referee Message) % string da mensagem em linguagem natural % exceção: linguagem artificial para mensagens % do juiz = kick_off_l | kick_in_l | % corner_kick_r | ... • Limites: • Raio = 50m • Freqüência: • 1 mensagem de jogador por ciclo • caso vários são mandados, apenas o primeiro é ouvido • Nenhum limite para mensagens do juiz

  15. move(X,Y): posicionar jogador no início do jogo dash(Power): acelerar no eixo com força Power turn(Moment): girar corpo de um angulo dependente de Moment e da velocidade do jogador turnNeck(Angle): girar pescoço relativo ao corpo kick(Power,Dir): chutar na direção Dir com força Power catch(Dir): mergulhar na direção Dir para pegar bola; reservado para goleiros say(Message): mandar string no único canal de comunicação compartilhado pelos 22 jogadores change_view(Angle,Quality): mudar compromisso entre largura, profundidade e freqüência da visão Angle = ângulo do cone de visão, 180, 90 ou 45 Quality = high: direção e distancia de cada objeto no cone de visão low: apenas direção dos mesmos Freqüência diminua automaticamente quando Angle e Quality aumentam SoccerServer: ações

  16. SoccerServer: tipo de ambiente • inacessível (percepção parcial e ruidosa) • não determinístico: • execução ruidosa das ações • imprevisibilidade das escolhas do agentes adversários • não confiabilidade de UDP/IP • episódico? (melhor ação depende apenas do estado atual do ambiente e não da sua história?) • dinâmico (o jogo é tempo-real, limite de 100ms para raciocinar sem o ambiente mudar) • contínuo (parâmetros reais em algumas percepções e ações) • ambos cooperativo e antagônico

  17. RoboLog • Interface de alto nível para usar o SoccerServer a partir de Eclipse Prolog (implementado em C) • Estruturado em 4 camada: • camada de redes: • predicados Prolog isomorfos aos comandos do SoccerServer • mas discretizando flux de percepções a ações • e assim implementando sincronização cliente/servidor • camada de raciocínio qualitativo e trigonometria • camada de percepções e ações complexas: • predicados de percepção e ação de granularidade maior do que os comando do SoccerServer • camada de jogador: • código de um agente exemplo com estratégia de jogo simplória • base para prototipagem rápido de times

  18. RoboLog camada 2: ações e percepções complexas • self(Time,X,Y,Dir): posição absoluta instantânea do jogador • myside(Side) e goalside(Side): lado do time do jogador e do gol oposto • goalie(Team,Nr):número dos goleiros • goals(Time,Team,N): placar • object(Time,Name,Id, Dist,Dir,DDist,DDir,X,Y,FaceDir): • coords relativas e absolutas do um objeto qualquer • kick_to(Distance,Dir):chama primitiva kick_to(Power,Dir) várias vezes até a bola estar na distancia Distance

  19. RoboLog camada 4: jogador exemplo com habilidades mínimas • Procura ver a bola e o gol do adversário • Se bola estiver bastante perto para ser dominada: • girar para ficar atrás dela na direção do gol • se a trajetória bola-gol estiver bloqueada por um jogador • tentar driblar jogador lateralmente • senão • se a bola estiver bastante perto do gol, chutar para o gol • senão driblar na direção do gol • Senão • se a bola estiver abaixo de um certo limiar de distância: • girar para ficar orientado na sua direção e acelerar • senão voltar para sua posição de base no campo

  20. camada 1: atualização do modelo do ambiente(t) interpretação das percepções recebidas (passivo) ações de percepção e de comunicação (ativo, guiado por objetivos das camadas mais altas) ex,: onde está a bola agora? camada 2: previsão do modelo do ambiente(t+n) ex,: onde estará a bola daqui a 3 ciclos se chutar nela com força F? envolve modelagem do comportamento dos outros camada 3: habilidades técnicas decomposta em sub-camadas ex, driblar adversários envolve saber conduzir a bola camada 4: habilidades táticas individuais decomposta em sub-camadas ex, chutar ou passar? se passar, passar para quem? camada 5: participação em planos de jogadas coletivas jogadas de bola parada impedimento marcação coordenada CMUnited bi-campeão do mundo: arquitetura em camadas

  21. CMUnited bi-campeão do mundo: tecnologias • Representação do conhecimento e raciocínio simbólico • regras heurísticas analíticas • Aprendizagem de máquina • aprendizagem supervisionado • conexionista (redes neurais) na camada 3, ex, getToBall • simbólico (árvores de decisão) na camada 4, ex, o que fazer com a bola: driblar, passar, chutar para o goal? • aprendizagem por reforço • simbólico na camada 4, ex, para onde lançar a bola? • Ambiente de avaliação e treinamento empírico usando: • SoccerServer Coach Client • Rastreamento em camada • Implementação em C++

  22. Time UMGP (Univeristy of Maryland’s Genetic Programming) • Time automaticamente programada usando aprendizagem evolucionista • 2 vitórias e 2 derrotas na RoboCup’97 • Prêmio da contribuição científica

  23. O que é aprendizagem evolucionista? • Entrada: • sopa primordial de instruções primitivas e construtores • critério de seleção natural (fitness measure) • operadores de criação de novos indivíduos-programas • reprodução, mutação • Saída: • programa combinando instruções primitivas por meio de construtores • melhor indivíduo da ultima geração • Processo iterativo: • criar geração inicial de combinações (programas) aleatórias • organizar torneio entre eles e selecionar os vencedores • criar nova geração combinando seus genes (sub-programas) • recomeçar até veteranos derrotam novatos

  24. Time aleatória (arqueozóico) Futebol de quintal (paleozóico) Evolução dos times da UMGP

  25. Aprender a proteger gol (mesozóico) Aprender ocupação racional do território (cenozóico) Evolução dos times da UMGP

  26. RoboJornalistas: ISAAC Zeng99 annihilated by CMU99! CMU99 absolutely devastated Zeng99 in a 11-0 rout. CMU99 showed their offensive muster, pressing the attack on Zeng99 and keeping the ball in their half of the field for 86% of the game. With this field dominance, they had an easy time scoring on Zeng99. CMU99 handled the ball well, keeping control of the ball for 74% of the game. Zeng99 had their players close together in this game. Better positioning may have helped them contain the CMU99 offense. CMU99 scored using their dribbling technique for 2 of their goals. CMU99 scored using their passing skills for 8 of their goals. CMU99 scored after stealing the ball from an opponent for 1 of their goals. CMU99 did not keep a good amount of distance between their players. Zeng99 did not keep a good amount of distance between their players. CMU99 showed some good ball control skills. This game summary was produced by ISAAC.

  27. Idéias de projetos RoboCup no CIn-UFPE • Times do CIn: • MaracatuRC00 para RoboCopa Brasil 2000 • MaractuRC01 para RoboCup 2001 • Divisão Lego Mindstorm • Ambiente de Desenvolvimento de SoccerBots: • GUI com vasto menu de predicados e classes prontos para testar rapidamente idéias táticas via “cortar e colar” • Ambiente de Suporte a Decisão: • Data Warehouse de estatísticas de jogos • Mineração de dados do data warehouse para descobrir táticas vencedoras • Geração de resumos (hiper)textuais dos resultados da mineração de dados • Disponibilizado na Web para usuários externos

More Related