Jacques Robin CIn-UFPE

27
Jacques Robin CIn-UFPE

description

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 - PowerPoint PPT Presentation

Transcript of Jacques Robin CIn-UFPE

Page 1: Jacques Robin CIn-UFPE

Jacques RobinCIn-UFPE

Page 2: 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 Competições e resultados SoccerServer RoboLog Times do CIn-UFPE Melhores times da RoboCup’99 divisão softbots

Page 3: Jacques Robin CIn-UFPE

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 !

Page 4: Jacques Robin CIn-UFPE

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

Page 5: Jacques Robin CIn-UFPE

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

Page 6: Jacques Robin CIn-UFPE

Competições: fotos Robô grande:

Robôs pequenos:

Robôs cachorros:

Page 7: Jacques Robin CIn-UFPE

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)

Page 8: Jacques Robin CIn-UFPE

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 ServerUDP/IP UDP/IP

Client 1

Client 11Client 11

Client 1

Time A Time BSoccer Monitor

Page 9: Jacques Robin CIn-UFPE

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

Page 10: Jacques Robin CIn-UFPE

SoccerMonitor

Page 11: Jacques Robin CIn-UFPE

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

Page 12: Jacques Robin CIn-UFPE

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.

Page 13: Jacques Robin CIn-UFPE

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

Page 14: Jacques Robin CIn-UFPE

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

Page 15: Jacques Robin CIn-UFPE

SoccerServer: ações

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

Page 16: Jacques Robin CIn-UFPE

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

Page 17: Jacques Robin CIn-UFPE

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

Page 18: Jacques Robin CIn-UFPE

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

Page 19: Jacques Robin CIn-UFPE

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

Page 20: Jacques Robin CIn-UFPE

CMUnited bi-campeão do mundo:

arquitetura em camadas

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

Page 21: Jacques Robin CIn-UFPE

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++

Page 22: Jacques Robin CIn-UFPE

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

Page 23: Jacques Robin CIn-UFPE

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

Page 24: Jacques Robin CIn-UFPE

Evolução dos times da UMGP

Time aleatória (arqueozóico)

Futebol de quintal (paleozóico)

Page 25: Jacques Robin CIn-UFPE

Evolução dos times da UMGP

Aprender a proteger gol (mesozóico)

Aprender ocupação racional do território (cenozóico)

Page 26: Jacques Robin CIn-UFPE

RoboJornalistas: ISAAC

Zeng99 annihilated by CMU99! CMU99 absolutely devastated Zeng99 in a 11-0 rout. CMU99showed their offensive muster, pressing the attack on Zeng99and keeping the ball in their half of the field for 86% of thegame. With this field dominance, they had an easy time scoringon Zeng99. CMU99 handled the ball well, keeping control of theball for 74% of the game. Zeng99 had their players closetogether in this game. Better positioning may have helped themcontain the CMU99 offense. CMU99 scored using their dribbling technique for 2 of theirgoals. CMU99 scored using their passing skills for 8 of theirgoals. CMU99 scored after stealing the ball from an opponentfor 1 of their goals. CMU99 did not keep a good amount ofdistance between their players. Zeng99 did not keep a goodamount of distance between their players. CMU99 showed somegood ball control skills.

This game summary was produced by ISAAC.

Page 27: Jacques Robin CIn-UFPE

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