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ônomosagentes autônomos
– colaboração de sistemas multiagentescolaboração de sistemas multiagentes
– aquisição de estratégias de pesquisa em tempo realaquisição de estratégias de pesquisa em tempo real
– entre outros.entre outros.
Um Problema Padrão
– exemplo: xadrez (ignora dificuldades)exemplo: xadrez (ignora dificuldades)
CaracterísticasCaracterísticas XadrezXadrez RoboCupRoboCupMeio ambiente estáticoestático dinâmicodinâmico
Mudança de estado turnos de temposturnos de tempos tempo realtempo realAcessibilidade de completocompleto incompletoincompletoinformações
Controle centralcentraldistribuídodistribuído
• domínios específicosdomínios específicos• pesquisas de sistemas do mundo realpesquisas de sistemas do mundo real
Um Problema Padrão• Lida com a complexidade do mundo real:
– comportamento reativo e cognitivo, aquisição de comportamento reativo e cognitivo, aquisição de
estratégias, aprendizado, planejamento em tempo estratégias, aprendizado, planejamento em tempo
real, sistemas multiagentes, visão, decisões real, sistemas multiagentes, visão, decisões
estratégicas, controle motor, controle de robôs estratégicas, controle motor, controle de robôs
inteligentes, e muitas outras.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: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:Problema: – Uma partida de futebol
Avaliação: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 Por volta do século 21, um time de robôs
humanóides autônomos deve enfrentar o humanóides autônomos deve enfrentar o
time campeão da copa do mundo conforme time campeão da copa do mundo conforme
as regulamentações da FIFAas regulamentações da FIFA”. ”. [ASA 99]
Conjunto de pequenos objetivos: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.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.
Uma das maiores razões porque a RoboCup atrai tantas Uma das maiores razões porque a RoboCup atrai tantas
pesquisas está no fato de requer a integração de pesquisas está no fato de requer a integração de
tecnologias dentro de um time completo de agentes.tecnologias dentro de um time completo de agentes.
A Origem• O Soccerserver (Noda, 1995) é realístico em alguns aspectos:
• a visão do jogador é limitada; a visão do jogador é limitada;
• o jogador pode comunicar-se enviando recado;o jogador pode comunicar-se enviando recado;
• todos os jogadores são controlados por processos separados; todos os jogadores são controlados por processos separados;
• cada jogador tem 10 companheiros e 11 oponentes; cada jogador tem 10 companheiros e 11 oponentes;
• cada jogador tem energia limitada; cada jogador tem energia limitada;
• ações e sensores têm ruídos; ações e sensores têm ruídos;
• e o jogo ocorre em tempo real.e o jogo ocorre em tempo real.
• Várias complexidades do mundo real são asseguradas.
A Origem• Federação RoboCup: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.
• O mais extraordinário está no aprimoramento do jogo desde a inauguração da copa mundial em 1997.
Copa Mundial de RobôsCopa Mundial de Robôs Local/DataLocal/Data TimesTimes
PrimeiraPrimeira
SegundaSegunda
TerceiraTerceira
HojeHoje
AmanhãAmanhã
+ 40+ 40
Paris, Julho de 1998Paris, Julho de 1998
StockholmStockholm
MelbourneMelbourne
SeattleSeattle
Nagoya, Japão, Agosto de 1997Nagoya, Japão, Agosto de 1997
+ 50+ 50
+ 120+ 120
+ 150+ 150
Análise da Estrutura Simulator LeagueSimulator League (Liga do Simulador) (Liga do Simulador)
Small-size real robot leagueSmall-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 leagueMidle-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.
Sony four leggedSony four legged leagueleague: Eles tem de coordenar todas as suas quatro
pernas para levar a bola para dentro do gol. O robô Sony joga em um
campo de carpete verde com declive.
O simulador Soccer Server [NODA95]
Possibilidades Futuras Robôs para desenvolver tarefas perigosas.Robôs para desenvolver tarefas perigosas.
Robôs de pesquisa e Resgate. Robôs de pesquisa e Resgate.
Futuros sistemas de transporte.Futuros sistemas de transporte.
Robôs de brinquedo.Robôs de brinquedo.
Robôs para socorrer idosos e deficientes.Robôs para socorrer idosos e deficientes.
Robôs para trabalhar na indústria.Robôs para trabalhar na indústria.
Baterias de alta eficiência e uso de energia.Baterias de alta eficiência e uso de energia.
Novos materiais e aparelhos.Novos materiais e aparelhos.
Evolução de Software.Evolução de Software.
Vida Artificial.Vida Artificial.
O simulador Soccer Server [NODA95]
número limitado de informaçõesnúmero limitado de informações
• CaracterísticasMeio Ambiente
Mudança
Acesso
Controle
DinâmicoDinâmico
Tempo realTempo real
IncompletoIncompleto
DistribuídoDistribuído
• Problema padrão para SMA – desempenho– cooperação– aprendizado– habilidades do agente
envia mensagens pelo simuladorenvia mensagens pelo simulador contém ruídocontém ruído
considera aspectos físicos como: considera aspectos físicos como: inércia, energia, ventoinércia, energia, vento
O Simulador da RoboCup• O campo de futebol:
– objetos bidimensionais objetos bidimensionais
– apresenta um campo virtual (apresenta um campo virtual (soccer monitorsoccer monitor))
– o tamanho do campo: regras de futebol humanoo tamanho do campo: regras de futebol humano• comprimento é de 105m comprimento é de 105m
• largura é de 68mlargura é de 68m
• largura do gol é dupla, sendo 14.64mlargura do gol é dupla, sendo 14.64m
• jogadores e bola são representados como círculosjogadores e bola são representados como círculos
• Existem os seguintes objetos:– objetos móveis (a bola e os jogadores) e objetos móveis (a bola e os jogadores) e
– objetos visíveis (gols, objetos visíveis (gols, flagsflags e linhas). 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ômicosFatores randômicos na ação e restrições de desempenho
em seus sentidos.• Não sabe a posição exataposição exata de muitos objetos distantes
(ruído) • A incorreta sincronizaçãoincorreta sincronização: comportamento completamente
indesejado.• IncertezaIncerteza: 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 inconsistenteinconsistente.
• Os movimentos 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
perdidasperdidas, quando as distâncias entre os objetos são longas.
• Cada jogador possui uma certa energiaenergia (stamina).• ColisõesColisões são também simplificadas• Força negativaForç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çãocomunicaçã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: GolGol
Bola fora de campoBola fora de campo
DesobstruçãoDesobstrução
Controle do modo de jogoControle do modo de jogo
Final do primeiro tempo e final de jogoFinal do primeiro tempo e final de jogo
• O primeiro tempoO primeiro tempo: 5 minutos (3000 ciclos).
• O intervaloO intervalo: 5 minutos, os competidores podem modificar os programas clientes.
• O segundo tempoO segundo tempo: 5 minutos.
• ProrrogaçãoProrrogação: tempo extra (até ocorrer um gol).
A Partida
• Cada partida pode assumir os seguinte estados:
• before_kick_offbefore_kick_off:: jogo parado, aguardando início.
time_overtime_over:: final de jogo.
play_onplay_on:: quando a bola está em jogo.
kick_off_l kick_off_l ou ou kick_off_rkick_off_r:: saída de bola.
kick_in_lkick_in_l ou ou kick_in_rkick_in_r:: reposição de bola em jogo.
free_kick_l free_kick_l ou ou free_kick_rfree_kick_r:: chute livre.
corner_kick_l corner_kick_l ou ou corner_kick_rcorner_kick_r:: cobrança de escanteio.
goal_kick_lgoal_kick_l ou ou goal_kick_rgoal_kick_r:: cobrança de tiro de meta.
goal_lgoal_l ou ou goal_rgoal_r:: ocorrência de um gol.
Comunicação cliente/servidor
UDPUDP
socketsocket
socketsocket
socketsocket
percepçãopercepção
açãoação
Informações Sensoriais:Informações Sensoriais:• seesee• hearhear• sense_bodysense_body
ClienteCliente
ClienteCliente
ClienteCliente
......
Comandos de Ação:Comandos de Ação:• kickkick• dashdash• turnturn• turn_neckturn_neck• movemove• catchcatch
Comandos de Controle ((movemove X Y) X Y)
((turnturn MomentMoment):): -180 (minmoment) ~ 180 (maxmoment).
– Inércia: em sua velocidade máxima (1.0), o máximo de Inércia: em sua velocidade máxima (1.0), o máximo de turnturn efetivo que pode efetivo que pode
fazer é -30 ~ 30. fazer é -30 ~ 30.
• ((turn_neckturn_neck AngleAngle):): –90 ~ 90. O ângulo da cabeça = ângulo de visão.
• ((dashdash PowerPower):): aceleração para a direção atual, -30 ~ 100.
– PowerPower negativo = negativo = dashdash para trás (duas vezes energia). para trás (duas vezes energia).
• ((saysay MessageMessage):): mensagens num raio de 50m.
– caracteres do alfabeto, números e símbolos ("+-*/_"), com tamanho máximo de caracteres do alfabeto, números e símbolos ("+-*/_"), com tamanho máximo de
512 caracteres.512 caracteres.
• ((kick Power Directionkick Power Direction):): -30 ~ 100, -180 ~ 180.
– KickableareaKickablearea
– Distância inicial.Distância inicial.
Comandos de Controle• ((change_viewchange_view WidthWidth QualityQuality):): narrow= 45, normal= 90, wide= 180 e a
qualidade pode ser low ou high.
– A informação visual depende do modo de visão utilizadoA informação visual depende do modo de visão utilizado
((catch Directioncatch Direction):): agente goleiro
A possibilidade: “A possibilidade: “catch_probabilitycatch_probability””
Para pegar a bola: “Para pegar a bola: “goalie_cacthable_areagoalie_cacthable_area”. ”.
Pode fazer um Pode fazer um catchcatch a cada a cada catch_ban_cyclecatch_ban_cycle))
Sucesso: modo Sucesso: modo free_kickfree_kick, o goleiro pode se mover dentro da área , o goleiro pode se mover dentro da área
de pênalti junto com a bola.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: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).
((seesee Time ObjInfo ObjInfo ...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 AbsolutaPercepçãoPercepçãodo mundodo mundo
Informações Sensoriais• Toda comunicação entre clientes é feita pelo servidor: say.• Informadas aos jogadores distantes até 50m. • As informações auditivas:As informações auditivas: são mensagens assincronamente enviadas por
outros jogadores através do Soccerserver ou pelo próprio árbitro.
((hearhear Time Direction MessageTime Direction Message))• Informação do corpo do jogadorInformação do corpo do jogador: sense_body.
((sense_bodysense_body TimeTime
(view_mode View_Quality ViewWidth)(view_mode View_Quality ViewWidth)
((staminastamina Stamina EffortStamina Effort))
((speedspeed AmountOfSpeedAmountOfSpeed))
((head_anglehead_angle HeadDirectionHeadDirection))
((kick KickCountkick KickCount))
((dash DashCountdash DashCount))
((turn TurnCountturn TurnCount))
((say SayCountsay SayCount))
((turn_neck TurnNeckCountturn_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)
• CMUnited (desde 1996)
• AT Humboudt(desde 1997)
• UFSC Team (desde 1998)
• UFRGS
ArquiteturaArquitetura
Híbrida
Híbrida
Híbrida
CaracterísticaCaracterística
BDI
Controlesdifusos
Híbrida “Subsunção”
Layered Learning
HíbridaHíbrida ““Subsunção”Subsunção”
AgenteAgente
A Arquitetura Proposta
Socket UDPSocket UDP
Ação
variáveis de controle
Informação Sensorial
simulador
Escolha da Ação
Percepçãodo Mundo
Interfacede Entrada
Interfacede Saída
Modelo do Mundo
Parser
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))
• 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:
• init (TeamName, Goalie)
• catch (Direction)
• change_view (Width, Quality)
• dash (Power)
• kick (Power, Direction)
• move (x, y)
• say (Message)
• sense_body()
• turn (Angle)
• turn_neck (Angle)
Funções de envio:
• init (TeamName, Goalie)
• catch (Direction)
• change_view (Width, Quality)
• dash (Power)
• kick (Power, Direction)
• move (x, y)
• say (Message)
• sense_body()
• turn (Angle)
• turn_neck (Angle)
String de envio montada
Comando parametros
String de envio montada
Comando parametros
Acesso ao socket UDP
Uso da função send(), envio
da mensagem através da
porta de comunicação.
Acesso ao socket UDP
Uso da função send(), envio
da mensagem através da
porta de comunicação.
ServidorServidor
Interface de Comunicação
Interpretador de mensagensInterpretador de mensagens
String de recebimento brutaString de recebimento brutaAcesso ao socket UDP
Uso da função receive(), recebimento
da mensagem através da porta de
comunicação.
Acesso ao socket UDP
Uso da função receive(), recebimento
da mensagem através da porta de
comunicação.
ServidorServidor
• Função receive() - duas opções: socket bloqueante ou não-bloqueante.
Processamento Concorrente
SendBuffer
RecvBuffer
ThreadPrincipalThread
PrincipalThread de
RecebimentoThread de
RecebimentoThread de
EnvioThread de
Envio
Timer100ms
• 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.
AgenteAgente
A Arquitetura Proposta
Socket UDPSocket UDP
Ação
variáveis de controle
Informação Sensorial
simulador
Escolha da Ação
Percepçãodo Mundo
Interfacede Entrada
Interfacede Saída
A Arquitetura - Interface Entrada/Saída
InterfaceInterfacede Entradade Entrada
InterfaceInterfacede Saídade Saída
• Recebe percepção
• Controle das ações de saída• Envia ação• Previsão
100 ms 100 ms
seesee
kickkick
ClienteCliente
dashdash
Recebido : (see 341 ((goal r) 69.4 1) ((flag c) 17.6 12 -0 0) Recebido : (see 341 ((goal r) 69.4 1) ((flag c) 17.6 12 -0 0) ((flag c t) 34.1 -61) ((flag c b) 42.1 64) ((flag r t) 75.9 -24) ((flag r b) 79.8 27)((flag c t) 34.1 -61) ((flag c b) 42.1 64) ((flag r t) 75.9 -24) ((flag r b) 79.8 27)((flag p r t) 55.1 -18) ((flag p r c) 53.5 2) ((flag p r b) 58.6 23) ((flag p r t) 55.1 -18) ((flag p r c) 53.5 2) ((flag p r b) 58.6 23) ((flag g r t) 69.4 -3) ((flag g r b) 70.8 7) ((flag t l 10) 35.2 -80) ((flag g r t) 69.4 -3) ((flag g r b) 70.8 7) ((flag t l 10) 35.2 -80) ((flag t 0) 38.5 -65) ((flag t r 10) 43.8 -53) ((flag t r 20) 50.9 -44) ((flag t 0) 38.5 -65) ((flag t r 10) 43.8 -53) ((flag t r 20) 50.9 -44) ((flag t r 30) 58.6 -38) ((flag t r 40) 66.7 -33) ((flag t r 50) 75.2 -29) ((flag t r 30) 58.6 -38) ((flag t r 40) 66.7 -33) ((flag t r 50) 75.2 -29) ((flag b l 10) 44.3 78) ((flag b 0) 46.5 66) ((flag b r 10) 51.4 56) ((flag b l 10) 44.3 78) ((flag b 0) 46.5 66) ((flag b r 10) 51.4 56) ((flag b r 20) 57.4 47) ((flag b r 30) 64.1 40) ((flag b r 40) 71.5 35) ((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)((flag b r 50) 79.8 31) ((flag r t 30) 79 -20) ((flag r t 20) 75.9 -13)((flag r t 10) 74.4 -6) ((flag r 0) 74.4 1) ((flag r b 10) 75.9 9) ((flag r t 10) 74.4 -6) ((flag r 0) 74.4 1) ((flag r b 10) 75.9 9) ((flag r b 20) 78.3 16) ((flag r b 30) 82.3 22) ((ball) 73.7 -24)((flag r b 20) 78.3 16) ((flag r b 30) 82.3 22) ((ball) 73.7 -24)((player ufrgs 2) 16.4 42 -0 0.1 -42 -42) ((player ufrgs 3) 12.2 16 -0 0 -21 -21) ((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)) ((player) 66.7 2) ((player) 66.7 -18) ((line r) 69.4 88))
A Arquitetura - Percepção do Mundo
PercepçãoPercepçãodo Mundodo Mundo
• Parser
AtualizarAtualizar variáveis variáveis
• Modelo do Mundo
• Memória
• Variáveis de Controle
estou_desmarcadoestou_desmarcado
companheiro_perto_da_bolacompanheiro_perto_da_bola
companheiro_aproxima_da_bolacompanheiro_aproxima_da_bola......
Objeto1 Objeto 2 Objeto n...
Tipo:Nome:Distancia:Direção:...
Tipo:Nome:Distancia:Direção:...
Tipo:Nome:Distancia:Direção:...
Tipo:Nome:Distancia:Direção:...
Tempo 0
Tempo 1
Tempo 2
Modelo do MundoModelo do Mundo
22 11 00
A Arquitetura - Escolha da AçãoEscolha Escolha da Açãoda Ação
• Regras de decisão:Conjunto de condição/ação
Enviado : (dash 80)Enviado : (dash 80)
SE SE posso_chutar e posso_chutar e companheiro_perto_da_bola ENTÃO companheiro_perto_da_bola ENTÃOcomportamento( ir para a bola )comportamento( ir para a bola )
++
--
Chutar p/ comp. perto do gol desmarcado
Chutar p/ comp. perto do gol
Chutar p/ posição
Arquitetura de subsunçãoArquitetura de subsunção
Escolha da ação: exemplo
sim não
nãosim
Posso pegar a bola?
pegar a bola Estou no ponto de interseção?
sim não
girar para o ponto de interseção
girar para o ponto de interseção
caminhar para o ponto de interseção
Estou na direção do ponto de interseção?
A Arquitetura - Um exemplo
Vantagens:Vantagens:
Comportamentos bem definidos (arquitetura de subsunção)Comportamentos bem definidos (arquitetura de subsunção)
resultados eficientes comportamento e cooperação emergente
ESCANTEIO e companheiro_perto_da_bolaESCANTEIO e companheiro_perto_da_bola
comportamento( ir para a área do gol oponente )comportamento( ir para a área do gol oponente )
Cond
Ação
Atacante
• Condição 3: vê bola vê bola– procurar a bola
• Condição 1: posse de bolaposse de bola– chutar à gol– driblar (conduzir)– passar a bola
• Condição 2: posse de bola posse de bola– ir para a bola (marcar e interceptar)– acompanhar ataque– posicionar estrategicamente– fugir da marcação
Objetivo:Objetivo: fazer golfazer gol
Atacante Condição 2: posse de bola posse de bola
– ir para a bola (marcar e interceptar)– acompanhar ataque– posicionar estrategicamente
– fugir da marcação
fugir_da_marcação*
(vejo_a_bola) && (estou_marcado) && (bola_aproxima) && (não_meu_lado_de_campo)
Cond
Ação
* modificar posição, não perder a visão da bola
Regra 4Regra 4
Dificuldades InconsistênciaInconsistência
informações sensoriais
IncertezaIncerteza comandos enviados X comandos executados informação de percepção
SincronizaçãoSincronização controle dos ciclos
DocumentaçãoDocumentação boa com relação a RoboCup e aos clientes difícil com relação ao Soccer Server (manual)