A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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.

Apresentações semelhantes


Apresentação em tema: "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."— Transcrição da apresentação:

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 Competições: fotos *Robô grande: *Robôs pequenos: *Robôs cachorros:

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 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 Server UDP/IP Client 1 Client 11 Client 1 Time ATime B Soccer Monitor

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

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

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 Evolução dos times da UMGP *Time aleatória (arqueozóico)*Futebol de quintal (paleozóico)

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

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


Carregar ppt "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."

Apresentações semelhantes


Anúncios Google