RoboCup The Robot World Cup Initiative Daniela D. da S. Bagatini Prof. Dr. Luis Otávio Campos Alvares Sistemas Multiagentes e a RoboCup Desafio para SMA. A RoboCup estimula a pesquisa na construção de agentes avançados (comportamento inteligente). Um Problema Padrão • Plataforma para pesquisas: – – – – agentes autônomos colaboração de sistemas multiagentes aquisição de estratégias de pesquisa em tempo real entre outros. Um Problema Padrão • domínios específicos • pesquisas de sistemas do mundo real – exemplo: xadrez (ignora dificuldades) Características Xadrez RoboCup Meio ambiente estático dinâmico Mudança de estado turnos de tempos tempo real Acessibilidade de informações completo incompleto Um Problema Padrão • Lida com a complexidade do mundo real: – comportamento reativo e cognitivo, aquisição de estratégias, aprendizado, planejamento em tempo real, sistemas multiagentes, visão, decisões estratégicas, controle motor, controle de robôs inteligentes, e muitas outras. • Alto nível de competência para a realização de tarefas, como chutar, interceptar. • Colaboração em um problema dinâmico. • Característica: promover pesquisas com a oportunidade de demostrar resultados, na forma de competição em um ambiente dinâmico. RoboCup - The Robot World Cup “Reúne a necessidade de lidar com a complexidade do mundo real criando robôs simulados que demonstrem um alto nível de competência para a realização de tarefas, como chutar , interceptar, entre outros.” [KITANO] Problema: – Uma partida de futebol Avaliação: – Competição 97 Nagoya (IJCAI), 98 Paris (ICMAS), 99 Stockholm, 2000 Melborn, 2001 Seattle, ... Objetivos “Por volta do século 21, um time de robôs humanóides autônomos deve enfrentar o time campeão da copa do mundo conforme as regulamentações da FIFA”. [ASA 99] Conjunto de pequenos objetivos: – avaliar os méritos da proposta de pesquisa usando tarefas padrões de SMA: • planos, conhecimentos, capacidades, emoções e outros. – generalização da arquitetura para diversas outras aplicações. O Desafio • O trabalho em grupo é complexo; • Domínios dinâmicos de sistemas multiagentes requer alta flexibilidade de coordenação e comunicação para superar as incertezas; • Cumprir responsabilidades; • Planejamento de coordenação em domínios com tantas possibilidades de ação é uma tarefa complicada; • O dinamismo do domínio causado pelas ações não previstas do oponente torna a situação consideravelmente mais complexa. A Origem • O Soccerserver (Noda, 1995) é realístico em alguns aspectos: • a visão do jogador é limitada; • o jogador pode comunicar-se enviando recado; • todos os jogadores são controlados por separados; • cada jogador tem 10 companheiros e 11 oponentes; • cada jogador tem energia limitada; • ações e sensores têm ruídos; • e o jogo ocorre em tempo real. processos A Origem • Federação RoboCup: organização internacional, envolve mais de 35 países e 150 universidades, institutos de pesquisas nacionais e cooporações privadas. • Idéia discutida em 1993. Copa Mundial de Robôs Local/Data Times Primeira Nagoya, Japão, Agosto de 1997 + 40 Segunda Paris, Julho de 1998 + 50 Terceira Stockholm + 120 Hoje Melbourne + 150 Amanhã Seattle • O mais extraordinário está no aprimoramento do jogo desde a inauguração da copa mundial em 1997. Análise da Estrutura Simulator League (Liga do Simulador) Small-size real robot league (Liga de Robôs Reais de Pequeno Porte): O campo possui o mesmo tamanho e a mesma cor de uma mesa de ping-pong e apresenta cinco robôs por time, jogando uma partida com uma bola de golfe. Midle-size real robot league (Liga de Robôs Reais de Médio Porte): O campo é do tamanho e da cor de 3 mesas de ping-pong e apresenta cinco robôs por time, utilizando a bola de Futsal-4. O simulador Soccer Server [NODA95] Possibilidades Futuras Robôs para desenvolver tarefas perigosas. Robôs de pesquisa e Resgate. Futuros sistemas de transporte. Robôs de brinquedo. Robôs para socorrer idosos e deficientes. Robôs para trabalhar na indústria. Baterias de alta eficiência e uso de energia. Novos materiais e aparelhos. Evolução de Software. Vida Artificial. O simulador Soccer Server [NODA95] • Problema padrão para SMA – – – – desempenho cooperação aprendizado habilidades do agente • Características Meio Ambiente Dinâmico Mudança Tempo real Acesso Incompleto Controle Distribuído número limitado de informações envia mensagens pelo simulador considera aspectos físicos como: inércia, energia, vento contém ruído O Simulador da RoboCup • O campo de futebol: – objetos bidimensionais – apresenta um campo virtual (soccer monitor) – o tamanho do campo: regras de futebol humano • comprimento é de 105m • largura é de 68m • largura do gol é dupla, sendo 14.64m • jogadores e bola são representados como círculos • Existem os seguintes objetos: – objetos móveis (a bola e os jogadores) e – objetos visíveis (gols, flags e linhas). Características Sistema cliente-servidor Proporciona um campo virtual Um cliente é o cérebro do jogador em campo, e controla as ações do jogador Sistema aberto: Clientes podem ser escritos por algum sistema de programação que tem interface UDP/IP. Múltipla plataforma. O SS roda em SunOS 4.1.x, Solaris 2, DEC OSF/1, NEWS-OS, Linux e Irix 5. Características • Fatores randômicos na ação e restrições de desempenho em seus sentidos. • Não sabe a posição exata de muitos objetos distantes (ruído) • A incorreta sincronização: comportamento completamente indesejado. • Incerteza: Nem sempre os comandos enviados ao servidor são executados. Nada garante que o efeito do comando seja percebido. • A informação enviada pelo simulador pode ser inconsistente. • Os movimentos dos jogadores não são tão seguros. Comando: turn, kick Características (cont.) • Limite do sensor de informação: informação visual. • As informações sobre os jogadores visualizados são perdidas, quando as distâncias entre os objetos são longas. • Cada jogador possui uma certa energia (stamina). • Colisões são também simplificadas • Força negativa pode causar ao agente caminhar para trás, causando o consumo de energia duas vezes mais. • O servidor proporciona um canal de comunicação (através de comandos say e hear), mas com capacidade restrita. A Partida • A partida é basicamente controlada pelo módulo juiz. • Faltas como obstrução, possibilita que um juiz humano possa marcar. • O módulo árbitro controla o jogo da seguinte forma: Gol Bola fora de campo Desobstrução Controle do modo de jogo Final do primeiro tempo e final de jogo • O primeiro tempo: 5 minutos (3000 ciclos). • O intervalo: 5 minutos, os competidores podem modificar os programas clientes. A Partida • Cada partida pode assumir os seguinte estados: • before_kick_off: jogo parado, aguardando início. time_over: final de jogo. play_on: quando a bola está em jogo. kick_off_l ou kick_off_r: saída de bola. kick_in_l ou kick_in_r: reposição de bola em jogo. free_kick_l ou free_kick_r: chute livre. corner_kick_l ou corner_kick_r: cobrança de escanteio. goal_kick_l ou goal_kick_r: cobrança de tiro de meta. Comunicação cliente/servidor percepção Cliente socket ação socket Cliente socket Informações Sensoriais: • see • hear • sense_body Cliente Comandos de Ação: • kick • dash UDP • turn • turn_neck • move • catch ... Comandos de Controle (move X Y) (turn Moment): -180 (minmoment) ~ 180 (maxmoment). – Inércia: em sua velocidade máxima (1.0), o máximo de turn efetivo que pode fazer é -30 ~ 30. • (turn_neck Angle): –90 ~ 90. O ângulo da cabeça = ângulo de visão. • (dash Power): aceleração para a direção atual, -30 ~ 100. – Power negativo = dash para trás (duas vezes energia). • (say Message): mensagens num raio de 50m. – caracteres do alfabeto, números e símbolos ("+-*/_"), com tamanho máximo de 512 caracteres. Comandos de Controle • (change_view Width Quality): narrow= 45, normal= 90, wide= 180 e a qualidade pode ser low ou high. – A informação visual depende do modo de visão utilizado (catch Direction): agente goleiro A possibilidade: “catch_probability” Para pegar a bola: “goalie_cacthable_area”. Pode fazer um catch a cada catch_ban_cycle) Sucesso: modo free_kick, o goleiro pode se mover dentro da área de pênalti junto com a bola. • O modelo de ação é discreto (movimentos ocorrem ao final do ciclo). • Os comandos podem não causar os efeitos esperados (física e ruídos). • A mensagem enviada está limitada ao tamanho máximo de 256 bytes. • O servidor aceitará apenas um comando de ação de cada cliente, em cada ciclo de simulação. Informações Sensoriais • Um cliente possui três tipos de informações sensoriais: visuais, auditivas e do próprio corpo. • As informações visuais: informa a distância e o ângulo relativo aos "pontos estacionários" aos jogadores (nome do time, número do uniforme, distância e ângulo dos jogadores) e a bola (distância e ângulo). (see Time ObjInfo ObjInfo ...) • No campo existem 55 "pontos estacionários”. • O jogador pode também "ver" na visible_distance. Se o objeto está nessa distância mas não no cone de visão, o jogador pode saber somente o tipo do objeto (Player, Goal, Flag). Posição Absoluta Percepção do mundo Informações Sensoriais • Toda comunicação entre clientes é feita pelo servidor: say. • Informadas aos jogadores distantes até 50m. • As informações auditivas: são mensagens assincronamente enviadas por outros jogadores através do Soccerserver ou pelo próprio árbitro. (hear Time Direction Message) • Informação do corpo do jogador: sense_body. (sense_body Time (view_mode View_Quality ViewWidth) (stamina Stamina Effort) (speed AmountOfSpeed) (head_angle HeadDirection) (kick KickCount) (dash DashCount) (turn TurnCount) (say SayCount) (turn_neck TurnNeckCount)) Referências • KITANO, H. RoboCup: The Robot World Cup Initiative. In: International Joint Conference on Artificial Intelligence (IJCAI’95), 14., 1995, Montreal. Proceedings... Canada, 1995. • CORTEN, E; DORER, K; HEINTZ, F; KOSTIADIS, K; KUMMENEJE, J; MYRITZ, H; NODA, Itsuki; RIEKKI, J; RILEY, P; STONE, Peter; YEAP, T. Soccer Server manual. Technical report, RoboCup Federation, 1999. Disponível em http://www.dsv.su.se/~johank/RoboCup/manual/ (10, junho de 2000). • NODA, Itsuki; MATSUBARA, Hitoshi. Soccer Server and Researches on Multi-Agent Systems. In: International Conference on Intelligent Robots and Systems (IROS-96), 1996, Osaka. Proceedings... 1996. • STONE, Peter. The CMUnited-99 Simulator Team In: RoboCup-99: Robot Soccer World Cup. Disponível em http://www.ida.liu.se/ext/robocup/simul/CMUnited99/teampage.html (10, junho de 2000). Um Sistema Multiagente para o Simulador Soccer Server Daniela D. da S. Bagatini Prof. Dr. Luis Otávio Campos Alvares Clientes (times) Arquitetura • CMUnited (desde 1996) • AT Humboudt (desde 1997) • UFSC Team (desde 1998) • UFRGS Híbrida Característica Layered Learning Híbrida BDI Híbrida Controles difusos Híbrida “Subsunção” A Arquitetura Proposta Percepção variáveis de controle do Mundo Interface de Entrada Escolha da Ação simulador Interface de Saída Agente Informação Sensorial Ação Socket UDP Modelo do Mundo recv 2035: (see 14 ((goal r) 73 -7) ((flag r t) 84 -31) ((flag r b) 76.7 18) ((flag p r t) 63.4 -28) ((flag p r c) 56.8 -10) ((flag p r b) 56.8 10) ((player A) 13.2 40) ((ball) 22.2 -26 0 0) ((line r) 72.2 -90)) Parser • Comando: see ... • Bloco2: - Objeto: flag r t - Time e Numero:null - Distância: 84 - Direção: -31 • Bloco7: - Objeto: player - Time: A - Numero: null - Distância: 13.2 - Direção: 40 Interface de Comunicação Funções de envio: String de envio montada • init (TeamName, Goalie) Comando parametros • catch (Direction) • change_view (Width, Quality) • dash (Power) • kick (Power, Direction) • move (x, y) Acesso ao socket UDP Uso da função send(), envio da mensagem através da porta de comunicação. • say (Message) • sense_body() • turn (Angle) • turn_neck (Angle) Servidor Interface de Comunicação Acesso ao socket UDP String de recebimento bruta Uso da função receive(), recebimento da mensagem através da porta de comunicação. Interpretador de mensagens Servidor • Função receive() - duas opções: socket bloqueante ou não-bloqueante. Processamento Concorrente Recv Thread de Recebimento Buffer Thread Principal Send Buffer Thread de Envio Timer 100ms • Variáveis compartilhadas: RecvBuffer e SendBuffer. • Timer na Thread de envio. Processamento Paralelo • Socket bloqueante para não perder processamento da CPU. • Sincronização entre as threads - MutEx. • Thread bloqueadas esperando para acesso à memória. • Envio de mais de um comando por ciclo - Soccer Server aceita apenas um. • Processamento principal deve ser o mais rápido possível. A Arquitetura Proposta Percepção variáveis de controle do Mundo Interface de Entrada Escolha da Ação simulador Interface de Saída Agente Informação Sensorial Ação Socket UDP A Arquitetura - Interface Entrada/Saída Interface de Entrada • Recebe percepção • Controle das ações de saída • Envia ação • Previsão Interface de Saída see Cliente dash kick 100 ms A Arquitetura - Percepção do Mundo Percepção do Mundo • Parser • Modelo do Mundo • Memória • Variáveis de Controle Tempo 2 Tempo 1 0 c) 17.6 12 -0 0) Recebido : (see 341 ((goal r) 69.4 1)Tempo ((flag ((flag c t) 34.1 -61) ((flag 42.12 64) ((flag r t) 75.9 -24) ((flag r b) 79.8 27) Objeto1 c b) Objeto ... Objeto n ((flag p r t) 55.1 -18) ((flag p r c) 53.5 2) ((flag p r b) 58.6 23) Tipo: Tipo:t l 10) 35.2 -80) ((flag g r t) 69.4 -3) Tipo: ((flag gTipo: r b) 70.8 7) ((flag Nome: Nome: Nome: Nome: Modelo Mundo ((flag t 0)do 38.5 -65) ((flag r 10) 43.8 -53) ((flag t r 20) 50.9 -44) Distancia:t Distancia: Distancia: Distancia: Direção: Direção: ((flag2t r 30) 58.6 -38) ((flagDireção: t r 40) 66.7 -33)Direção: ((flag t r 50) 75.2 -29) ... ... ... ... ((flag b1 l 10) 44.3 78) ((flag b 0) 46.5 66) ((flag b r 10) 51.4 56) estou_desmarcado 0 ((flag b r 20) 57.4 47) ((flag b r 30) 64.1 40) ((flag b r 40) 71.5 35) ((flag b r 50) 79.8 31) ((flag r t 30) 79 -20) ((flag r t 20) 75.9 -13) Atualizar companheiro_perto_da_bola ((flag r t 10) 74.4 -6) ((flag r 0) 74.4 1) ((flag r b 10) 75.9 9) variáveis ((flag r b 20) 78.3 16) ((flag r b 30) 82.3 22) ((ball) 73.7 -24) companheiro_aproxima_da_bola ((player ufrgs 2) 16.4 42 -0 0.1 -42 -42) ((player ufrgs 3) 12.2 16 -0 0 -21 -21) ... ((player) 66.7 2) ((player) 66.7 -18) ((line r) 69.4 88)) A Arquitetura - Escolha da Ação Escolha da Ação • Regras de decisão: Conjunto de condição/ação Arquitetura de subsunção Chutar p/ posição - Chutar p/ comp. perto do gol Chutar p/ comp. perto do gol desmarcado SE posso_chutar e companheiro_perto_da_bola ENTÃO comportamento( ir para a bola ) Enviado : (dash 80) + Escolha da ação: exemplo Posso pegar a bola? sim não Estou no ponto de interseção? pegar a bola sim não girar para o ponto de interseção Estou na direção do ponto de interseção? sim caminhar para o ponto de interseção não girar para o ponto de interseção A Arquitetura - Um exemplo Cond ESCANTEIO e companheiro_perto_da_bola Ação comportamento( ir para a área do gol oponente ) Vantagens: Comportamentos bem definidos (arquitetura de subsunção) resultados eficientes comportamento e cooperação emergente Atacante Objetivo: fazer gol • Condição 1: posse de bola – chutar à gol – driblar (conduzir) – passar a bola • Condição 2: posse de bola – – – – ir para a bola (marcar e interceptar) acompanhar ataque posicionar estrategicamente fugir da marcação • Condição 3: vê bola – procurar a bola Atacante Condição 2: posse de bola – ir para a bola (marcar e interceptar) – acompanhar ataque – posicionar estrategicamente – fugir da marcação Regra 4 Cond Ação (vejo_a_bola) && (estou_marcado) && (bola_aproxima) && (não_meu_lado_de_campo) fugir_da_marcação* * modificar posição, não perder a visão da bola Dificuldades Inconsistência informações sensoriais Incerteza comandos enviados X comandos executados informação de percepção Sincronização controle dos ciclos Documentação boa com relação a RoboCup e aos clientes difícil com relação ao Soccer Server (manual)