Upload
trinhque
View
220
Download
0
Embed Size (px)
Citation preview
Universidade Federal do Rio Grande do Norte
Centro de Tecnologia
Programa de Pos-Graduacao em Engenharia Eletrica
Marcelo Minicuci Yamamoto
Planejamento Cooperativo de Tarefas em um
Ambiente de Futebol de Robos
Dissertacao de mestrado submetido ao Pro-
grama de Pos-Graduacao em Engenharia
Eletrica do Centro de Tecnologia da Univer-
sidade Federal do Rio Grande do Norte.
Orientador: Prof D.Sc. Adelardo Adelino Dantas de Medeiros
Co-orientador: Prof D.Sc. Pablo Javier Alsina
Natal/RN - Brasil
Fevereiro/2005
Sumario
Lista de Figuras vi
Resumo vii
Abstract viii
1 Introducao 1
1.1 Sistemas Multi-Robos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Futebol de Robos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.1 A Categoria Mirosot . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.2 A equipe POTI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.3 O Sistema Simulador . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3 Objetivos do Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.5 Organizacao do Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2 Sistemas Roboticos Cooperativos 10
2.1 Sistemas Multi-Robos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2 Futebol de Robos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3 Discussao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3 Simulador 17
3.1 Estrutura do Simulador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.1.1 O Sistema de Simulacao . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2 Modelagem Matematica do Robo . . . . . . . . . . . . . . . . . . . . . . . 23
3.2.1 Modelagem Cinematica . . . . . . . . . . . . . . . . . . . . . . . . . 24
i
3.2.2 Modelagem Dinamica . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.3 Tratamento das Colisoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.3.1 Deteccao de Colisoes . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.3.2 Modelagem das Colisoes . . . . . . . . . . . . . . . . . . . . . . . . 32
3.3.3 O visualizador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.4 Discussao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4 Modulo de Planejamento 38
4.1 Desvio de Obstaculos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5 Tatica 45
5.1 Papeis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.1.1 Alocacao Dinanica de Papeis . . . . . . . . . . . . . . . . . . . . . . 47
5.1.2 defensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.1.3 Atacante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.1.4 Curinga . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.2 Estilos de jogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5.2.1 Estilo Avancado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5.2.2 Estilo Recuado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
6 Resultados 67
6.1 Desvio de obstaculos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
6.1.1 Obstaculo simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
6.1.2 Obstaculos fundidos . . . . . . . . . . . . . . . . . . . . . . . . . . 68
6.2 Comportamento dos estados . . . . . . . . . . . . . . . . . . . . . . . . . . 72
6.2.1 Estado alinhar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
6.2.2 Estado chutar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
6.2.3 Estado defender . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
6.3 Alocacao dinamica de papeis . . . . . . . . . . . . . . . . . . . . . . . . . . 76
6.4 Resultado de jogos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
6.4.1 Tatica simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
6.4.2 Resultados contra a tatica simples . . . . . . . . . . . . . . . . . . . 80
ii
7 Conclusoes 81
7.1 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Trabalhos publicados 84
Referencias Bibliograficas 85
iii
Lista de Figuras
1.1 Exemplo de robos moveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Exemplo de robo movel manipulador . . . . . . . . . . . . . . . . . . . . . 2
1.3 Visao geral de um jogo de futebol de robos . . . . . . . . . . . . . . . . . . 5
1.4 Imagem do campo e dos robos desenvolvidos no LECA . . . . . . . . . . . 6
1.5 Arquitetura do sistema do futebol de robos . . . . . . . . . . . . . . . . . . 7
3.1 (a)Sistema real (b)Sistema com o simulador . . . . . . . . . . . . . . . . . 19
3.2 Sistema completo de simulacao . . . . . . . . . . . . . . . . . . . . . . . . 20
3.3 Algoritmo do sistema simulador . . . . . . . . . . . . . . . . . . . . . . . . 21
3.4 Algoritmo de simulacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.5 Diagrama esquematico do robo . . . . . . . . . . . . . . . . . . . . . . . . 23
3.6 Exemplo das colisoes no simulador de futebol de robos: (a) colisao robo-
bola, (b) robo-parede e (c) robo-robo . . . . . . . . . . . . . . . . . . . . . 28
3.7 Calculo dos vertices de um robo . . . . . . . . . . . . . . . . . . . . . . . . 29
3.8 Centro de coordenadas deslocado . . . . . . . . . . . . . . . . . . . . . . . 30
3.9 Teste de colisao entre dois robos . . . . . . . . . . . . . . . . . . . . . . . . 30
3.10 Campo do futebol de robos . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.11 Mudanca dos eixos nas colisoes com as paredes . . . . . . . . . . . . . . . . 31
3.12 Teste de colisao entre a bola e uma parede . . . . . . . . . . . . . . . . . . 32
3.13 (a)Forca atuando sobre corpo (b)Velocidade e orientacao da bola apos colisao 33
3.14 (a)Colisao frontal (b)Colisao lateral . . . . . . . . . . . . . . . . . . . . . . 35
3.15 Colisao entre a bola e um robo . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.16 Imagem mostrada pelo visualizador . . . . . . . . . . . . . . . . . . . . . . 36
4.1 Diagrama do modulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
iv
4.2 (a)Obstaculo simples, robo com dimensoes (b)Obstaculo extendido, robo
pontual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.3 Configuracao do obstaculo . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.4 Teste da possibilidade de colisao . . . . . . . . . . . . . . . . . . . . . . . . 41
4.5 Calculo da nova trajetoria . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.6 Exemplo de desvio de obstaculo . . . . . . . . . . . . . . . . . . . . . . . . 42
4.7 (a)Teste da proximidade; (b)Obstaculos fundidos . . . . . . . . . . . . . . 43
4.8 (a)Problema na escolha da nova referencia; (b)Solucao com a fusao de
obstaculos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.1 Hierarquia da tatica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.2 Risco de gol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.3 Configuracao dos papeis com a bola no ataque . . . . . . . . . . . . . . . . 49
5.4 Configuracao dos papeis com a bola no campo de defesa em direcao ao gol
adversario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.5 Configuracao dos papeis com a bola no campo de defesa em direcao ao gol
defendido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.6 Comportamento do defensor (a)bola indo em direcao ao gol (b)bola muito
proxima ao gol (c)bola se afastando do gol . . . . . . . . . . . . . . . . . . 53
5.7 Comportamento do zagueiro . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5.8 Zonas de acao do atacante . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.9 Diagrama de funcionamento do atacante . . . . . . . . . . . . . . . . . . . 56
5.10 Comportamento do atacante (a)Estado finalizar (b)Estado alinhar para
toque (c)Estado tocar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.11 Alinhamento direto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.12 Alinhamento com tabela . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.13 Teste de alinhamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.14 Comportamento do atacante (a)Estado chutar (b)Estado conduzir . . . . 60
5.15 Comportamento do atacante (a)Estado pressionar (b)Estado bloquear . . 61
5.16 Comportamento do atacante (a)Estado contornar (b)Estado cobrir . . . . 62
5.17 Diagrama de funcionamento do curinga . . . . . . . . . . . . . . . . . . . 63
5.18 Comportamento do curinga, estado atacar . . . . . . . . . . . . . . . . . . 64v
5.19 Decisao do estilo de jogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
6.1 Desvio de um unico obstaculo . . . . . . . . . . . . . . . . . . . . . . . . . 69
6.2 Desvio de dois obstaculos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
6.3 Desvio de dois obstaculos fundidos . . . . . . . . . . . . . . . . . . . . . . 71
6.4 Comportamento do robo no estado alinhar . . . . . . . . . . . . . . . . . . 73
6.5 Comportamento do robo no estado chutar . . . . . . . . . . . . . . . . . . 74
6.6 Comportamento do robo no estado defender . . . . . . . . . . . . . . . . . 75
6.7 Alocacao dinamica de papeis . . . . . . . . . . . . . . . . . . . . . . . . . . 77
6.8 Alocacao dinamica de papeis . . . . . . . . . . . . . . . . . . . . . . . . . . 78
6.9 Arvore de decisao da tatica simples . . . . . . . . . . . . . . . . . . . . . . 79
vi
Resumo
Este trabalho apresenta o desenvolvimento de um metodo de coordenacao e cooperacao
para uma frota de mini-robos moveis. O escopo do desenvolvimento e o futebol de robos.
Trata-se de uma plataforma bem estruturada, dinamica e desenvolvida no mundo inteiro.
O futebol de robos envolve diversos campos do conhecimento incluindo: visao computa-
cional, teoria de controle, desenvolvimento de circuitos microcontrolados, planejamento
cooperativo, entre outros.
A tıtulo de organizacao os sistema foi dividido em cinco modulos: robo, visao, loca-
lizacao, planejamento e controle. O foco do trabalho se limita ao modulo de planejamento.
Para auxiliar seu desenvolvimento um simulador do sistema foi implementado. O simu-
lador funciona em tempo real e substitui os robos reais. Dessa forma os outros modulos
permancem praticamente inalterados durante uma simulacao ou execucao com robos reais.
Para organizar o comportamento dos robos e produzir a cooperacao entre eles foi
adotada uma arquitetura hierarquizada: no mais alto nıvel esta a escolha do estilo de
jogo do time; logo abaixo decide-se o papel que cada jogador deve assumir; associado ao
papel temos uma acao especıfica e finalmente calcula-se a referencia de movimento do
robo. O papel de um robo dita o comportamento do robo na dada ocasiao. Os papeis
sao alocados dinamicamente durante o jogo de forma que um mesmo robo pode assumir
diferentes papeis no decorrer da partida.
vii
Abstract
viii
Capıtulo 1
Introducao
Os robos povoam o imaginario dos homens desde meados do seculo XX. Sejam robos
maleficos de filmes classicos como “Metropolis” de Fritz Lang e “2001, Uma Odisseia
no Espaco” de Stanley Kubrick, passando pelos robos singulares das historias de Isaac
Asimov, ate o menino robo do filme “IA”.
No mundo real, os robos ainda tem uma participacao muito menos fantastica, porem
muito importante em nossas vidas. A robotica esta presente em situacoes onde se exige
trabalho repetitivo, como montadoras de automoveis, e se aplica tambem em situacoes de
risco para a vida humana, como viagens exploratorias ou limpeza de dutos de petroleo em
alto-mar. Um outro ramo de atividade da robotica e a pesquisa academica: nesse caso,
as aplicacoes pode parecer menos importante, como um cao robo ou o futebol de robos.
Entretanto, as solucoes e tecnologias desenvolvidas nas universidades sao fundamentais
para a aplicacao da robotica em todas as outras areas.
Os robos podem ser classificados como robos moveis ou robos manipuladores, de acordo
com o modo que eles interagem com o meio que os cercam. Como os nomes sugerem, robos
moveis sao aqueles que podem se locomover em algum ambiente (figura 1.1), enquanto
os robos manipuladores possuem ferramentas, i.e. uma garra, que podem interagir o
ambiente. Devemos notar que um unico robo pode ter caracterısticas das duas classes
(figura 1.2): a divisao e feita porque os princıpios de funcionamento das duas classes sao
bem diferentes.
Existem basicamente tres tipos de ambientes para locomocao de robos moveis: aereo,
aquatico e terrestre. No ambiente terrestre os meios mais comuns de locomocao sao as
CAPITULO 1. INTRODUCAO 2
Figura 1.1: Exemplo de robos moveis
Figura 1.2: Exemplo de robo movel manipulador
rodas, esteiras e as patas. Neste trabalho, trataremos de robos moveis que se locomovem
em meios terrestres dotados de rodas. Robos que se locomovem atraves de rodas sao os
mais simples de serem construıdos, porem os mais restritivos dentre os robos terrestres
em relacao as irregularidades do terreno. Por exemplo, dificilmente um robo dotado de
rodas conseguira subir escadas cujos degraus sejam maiores que o raio das rodas. Robos
humanoides tem toda a capacidade de adaptacao ao terreno de um ser humano, porem
sao muito mais difıceis de implementar perfeitamente.
1.1 Sistemas Multi-Robos
Situacoes em que varios robos devem cooperar a fim de realizar uma unica tarefa,
a movimentacao e o sincronismo dos robos se tornam crıticos. Para um robo realizar
certa acao, ele deve se comunicar com os outros robos, interpretar mensagens recebidas e
abstrair respostas que sejam uteis a situacao de mundo atual no seu ponto de vista, para
entao tomar uma atitude. O erro na interpretacao de alguma das mensagens pode ser o
CAPITULO 1. INTRODUCAO 3
diferencial entre sucesso ou fracasso do time inteiro.
Dois aspectos podem ser destacados no desenvolvimento de sistemas multi-robos: a
coordenacao e a cooperacao. A coordenacao acontece quando os robos de um mesmo
grupo realizam suas proprias tarefas sem a preocupacao de ajudar um ao outro. No
entanto, se ocorrer alguma situacao em que os interesses de um dos robos conflitem com
os interesses de outro, a situacao sera resolvida atraves de negociacao entre os robos nao
havendo prejuızo para o time como um todo. A cooperacao, por sua vez, e a capacidade
de varios robos se unirem para realizar um objetivo maior. Na cooperacao, ao inves de
cada robo trabalhar em tarefas independentes, varios robos podem unir esforcos a fim de
realizar uma tarefa maior.
Uma terceira questao importante em sistemas multi-robos acontece em casos que ao
inves de cooperar, os robos devam competir. Nesse caso, seja por recursos limitados
ou por interesses conflitantes, os robos se encontram em situacoes onde apenas um (ou
um time) pode atingir seus objetivos. Essas situacoes sao facilmente encontradas em
esportes (futebol, corrida, etc) ou por exemplo em situacoes de sobrevivencia (recursos
vitais limitados).
1.2 Futebol de Robos
O futebol de robos e um exemplo tıpico de um sistema multi-robos. Dois times, cada
um composto por varios robos, os quais devem se organizar de modo a tentar garantir que
seu time venca o jogo. Assim como no futebol humano, vence o jogo o time que marcar
mais gols. Isso significa marcar gols e nao permitir que o time adversario os marque. Esse
ambiente inclui coordenacao e cooperacao com os companheiros de time, e competicao
com os adversarios.
Um dos primeiros registros sobre o futebol de robos data de 1992 pelo professor Allan
Mackworth [1] da universidade British Columbia, Canada. Em 1995, o coreano Jong-Hwan
Kim, professor do KAIST 1, propos a comunidade cientıfica a criacao de um torneio de
futebol de robos, com o intuito de desenvolver pesquisa em todos os campos da robotica,
reunir pesquisadores do mundo inteiro para trocar experiencias e atrair leigos e jovens
1Korean Advanced Institute of Science and Technology
CAPITULO 1. INTRODUCAO 4
para o estudo dos robos. Em setembro de 1996, foi realizado o primeiro torneio oficial de
futebol de robos em Daejeon, Korea, e no dia 5 de junho de 1997, junto com o segundo
torneio, foi criada a FIRA2 [2], instituicao que visava regulamentar os torneios anuais e
organizar um congresso concomitante. Em 1997 uma outra federacao, chamada RoboCup
[3], foi estabelecida com o objetivo de “ate o ano de 2050 desenvolver um time de robos
humanoides totalmente autonomos capaz de vencer um jogo contra o campeao mundial
de futebol humano”. Inicialmente ambas as confederacoes trabalhavam apenas com uma
categoria de futebol de robos, atualmente existem cinco grandes categorias na FIRA
(HuroSot, KheperaSot, MiroSot, NaroSot e RoboSot) e quatro na RoboCup (Small Size,
Middle Size, 4-Legged e Humanoid) alem de uma categoria de simulacao. As categorias
variam entre elas principalmente em relacao a composicao do robo. Existem categorias
para robos humanoides (bıpedes), para robos quadrupedes e varias categorias que variam
o tamanho e o numero de robos por equipe.
A categoria de futebol de robos escolhida para desenvolvimento no LECA3, a equipe
POTI [4], foi a Mirosot da FIRA. Essa decisao se baseou no baixo custo de producao
devido as dimensoes dos robos e na ausencia de sensores. Alem disso tivemos a possibi-
lidade de desenvolver os robos no proprio laboratorio, o que reduz ainda mais os custos,
facilita a manutencao alem de contribuir para o desenvolvimento dos alunos de graduacao
e pos-graduacao envolvidos no projeto.
1.2.1 A Categoria Mirosot
A categoria Mirosot de futebol de robos consiste em dois times com tres robos cada,
onde um deles pode ser o goleiro. As dimensoes dos robos devem ser tais que caibam em
um cubo com aresta 7,5cm. A bola de jogo e uma bola de golfe laranja.
Cada time pode possuir, alem dos robos, uma camera para a captacao das imagens
do campo, localizada a uma altura igual ou superior a 2m, um computador para proces-
samento de imagem, planejamento e controle dos robos e um sistema de comunicacao via
radio entre o computador e os robos. Uma visao geral do sistema de futebol de robos
pode ser visto na figura 1.3.
2Federation of International Robot-soccer Association3Laboratorio de Engenharia de Computacao e Automacao
CAPITULO 1. INTRODUCAO 5
Figura 1.3: Visao geral de um jogo de futebol de robos
As regras do jogo em si sao similares a do futebol humano. O objetivo principal e fazer
gols: o time que tiver feito mais gols no final da partida sera declarado vencedor. Todos
os comandos enviados para os robos devem ser calculados pelo computador: nenhuma
interacao de seres humanos com o computador ou os robos e permitida enquanto a bola
estiver em jogo.
1.2.2 A equipe POTI
O futebol de robos e uma plataforma multidisciplinar envolvendo diversas areas do
conhecimento como processamento digital de imagens, controle, programacao, microcon-
troladores, eletronica e logicamente a robotica, que por si so ja engloba diversas areas.
Nessa secao serao, mostrados resumidamente, todos os projetos que tem sido desenvolvi-
dos em paralelo para chegar a um sistema de futebol de robos funcional e confiavel.
Hardware
A estrutura fısica do futebol de robos e constituıda do campo de madeira, as cameras
para captacao das imagens, os refletores que possibilitam a iluminacao uniforme do campo,
os robos, o modulo transmissor e o computador controlador. A figura 1.4 mostra uma
imagem do campo com os robos.
Os robos sao constituıdos de acrılico e cada unidade possui dois motores DC com aci-
onamento independente, um receptor FM Radiometrix RX2 com capacidade de 9.6kbps,
um microcontrolador Microchip PIC16F876, um circuito integrado acionador L293 com
CAPITULO 1. INTRODUCAO 6
Figura 1.4: Imagem do campo e dos robos desenvolvidos no LECA
duas pontes H para o acionamento dos motores, duas baterias de 9V, alem dos diversos
componentes discretos. O circuito transmissor e ligado ao computador atraves da porta
paralela e possui um microcontrolador PIC16F877, um transmissor FM Radiometrix TX2
com capacidade de 9.6kbps e os componentes discretos.
Software
O sistema do futebol de robos e constituıdo de diversos modulos que se interligam.
Cada modulo foi desenvolvido separadamente em paralelo e todos os modulos sao impres-
cindıveis para o funcionamento do sistema como um todo. Podemos dividir o sistema
em cinco modulos, denominados: robo, visao, localizacao, planejamento e controle. O
funcionamento do sistema se da atraves da repeticao dos cinco passos descritos a seguir:
1. O modulo de visao (camera) capta a configuracao atual do campo (imagem);
2. O modulo de localizacao analisa a imagem e, com base nos rotulos fixados sobre os
robos, estima as posturas (posicoes e orientacoes) dos robos e da bola;
3. A partir das posturas dos robos e da bola e de informacoes sobre o jogo (tempo de
jogo, placar, etc), o modulo de planejamento calcula qual comportamento devera
ser adotado pelo time;
4. O modulo de controle traduz as informacoes geradas pelo modulo de planejamento
em valores de tensao para os motores, compreensıveis pelos robos, e os transmite
via radio;
5. Os robos recebem os dados e geram os valores de tensao desejados para os motores
(volta para o item 1).
Esse esquema pode ser visto na figura 1.5.
CAPITULO 1. INTRODUCAO 7
Rob
ô
Com
puta
dor
cont
rola
dor
Planejamento
Localização
Controle
Motores
Recepção
Transmissãovia rádio
Visão
Figura 1.5: Arquitetura do sistema do futebol de robos
O protocolo de comunicacao com os robos envia ciclicamente um start byte seguido de
seis bytes que contem as velocidades desejadas para os dois motores de cada um dos tres
robos do time. Em cada byte de velocidade, o primeiro bit indica o sentido de rotacao do
motor e os sete bits restantes o valor da tensao a ser aplicada, em percentual da tensao
maxima. Cada robo leva em conta apenas os dois bytes que lhe dizem respeito.
1.2.3 O Sistema Simulador
Simuladores sao comumente usados em diversas situacoes nas quais sao desacon-
selhaveis testes com sistemas reais, ou simplesmente para facilitar a fase de testes de
um sistema. Entre esses sistemas podemos citar o desenvolvimento de avioes. Seria de-
sastroso realizar testes com prototipos de avioes em tamanho real. Cada erro no projeto
acarretaria na perda do aviao e de milhoes de reais. Nesses casos os simuladores sao in-
dispensaveis, garantindo um desenvolvimento mais barato, mais pratico e mais rapido. E
importante frisar que quanto mais realıstico for um simulador, mais confiavel sera a fase
de testes utilizando esse simulador.
A principal motivacao para o desenvolvimento de um simulador para o sistema de
futebol de robos, foi a de facilitar os testes dos modulos de controle e planejamento. Com
o simulador, os testes podem ser realizados em qualquer maquina que funcione com Linux,
sem a necessidade de todo o aparato fısico como campo, refletores, cameras e robos, alem
de contornar o problema do consumo excessivo de baterias.
O simulador proposto para desenvolvimento deveria ser o mais fiel possıvel ao sis-
tema real para que a transicao do sistema simulado para o sistema real fosse o menos
CAPITULO 1. INTRODUCAO 8
traumatica possıvel. Desse modo, tres aspectos foram tratados cuidadosamente e com
as caracterısticas especıficas do nosso sistema: modelagem dos robos, modelagem das co-
lisoes e tempo de simulacao. Alem disso, o simulador foi desenvolvido de modo que nao e
necessaria nenhuma adaptacao ao programa de planejamento para transpor do simulado
para o real. O simulador sera melhor detalhado no capıtulo 3.
1.3 Objetivos do Trabalho
O objetivo deste trabalho e desenvolver um planejamento estrategico para uma frota
de mini-robos moveis terrestres com o intuito de que eles cooperem entre eles em busca
de um objetivo comum. Como plataforma sera usado o jogo de futebol de robos segundo
as regras da categoria Mirosot da FIRA. Para tanto, desenvolveremos algumas taticas
diferentes baseadas em diferentes paradigmas, a fim de chegar a uma tatica vencedora.
1.4 Metodologia
A metodologia adotada foi, inicialmente realizar um pesquisa bibliografica concomi-
tante com o curso das disciplinas a fim de levantar o estado da arte. O passo seguinte foi
desenvolver o simulador do sistema com o intuito de facilitar a fase de testes. Esse simu-
lador deveria cumprir alguns pre-requisitos como o de possibilitar que as ideias testadas
no simulador pudessem ser transportadas para o sistema real sem que fossem necessarias
adaptacoes.
Apos termos um simulador devidamente desenvolvido e testado, passamos a nos ocu-
par com tarefas simples porem uteis para o funcionamento da tatica, como o desvio de
obstaculos e a identificacao da bola. Em seguida, foram desenvolvidas taticas simples,
intuitivas e eficientes que foram utilizadas na validacao da tatica proposta. Finalmente
passamos ao desenvolvimento da tatica proposta, essa tatica, assim como as anteriores
foram desenvolvidas quase exclusivamente sobre o simulador. Apos termos as taticas fun-
cionais no simulador, passamos para os testes com sistema real. Para a validacao da tatica
proposta, foram realizados jogos, entre as taticas desenvolvidas.
CAPITULO 1. INTRODUCAO 9
1.5 Organizacao do Trabalho
No capıtulo 2 sera mostrado um apanhado geral dos paradigmas de arquitetura e de
algumas taticas ja existentes. O capıtulo 3 falara sobre o funcionamento do simulador
desenvolvido para auxiliar a fase de testes do sistema do futebol de robos. O capıtulo 4
fala sobre o modulo de planejamento que, alem da tatica, engloba outros submodulos como
o desvio de obstaculos. O capıtulo 5 sera dedicado exclusivamente a tatica desenvolvida
e finalmente no capıtulo 6 serao mostrados resultados e tecidas as consideracoes finais.
Capıtulo 2
Sistemas Roboticos Cooperativos
Sistemas multi agentes se tornam cada vez mais objeto de estudo pela comunidade
cientıfica em todo mundo. Um fator que contribui para o crescimento do interesse nesse
topico e que sistemas multi-agentes podem ser aplicados em areas diversas do conhe-
cimento, como redes [5] e robotica, nos chamados sistemas multi-robos. Caso o pla-
nejamento dos robos seja feita de forma centralizada, cada robo perde um pouco sua
caracterıstica autonoma de agente e podemos tratar o grupo como um sistema robotico
autonomo. Esses ultimos chamam a atencao pela possibilidade de aplicacao em situacoes
reais como exploracao aerea, terrestre, aquatica ou espacial, trabalhos em ambientes hos-
tis ou procura de sobreviventes em desastres. A seguir, na secao 2.1 serao apresentados
alguns exemplos de trabalhos que estao sendo desenvolvidos na area de multi-robos. Em
seguida, a secao 2.2 tratara mais especificamente dos projetos que estao sendo desenvol-
vidos para o ambiente de futebol de robos.
2.1 Sistemas Multi-Robos
A cooperacao tem um papel fundamental em sistemas multi-robos. Para que se
possa tirar maximo proveito de uma situacao onde varios robos (agentes) tem de re-
alizar o mesmo objetivo, os robos devem primeiramente nao atrapalhar um ao outro
(coordenacao), e se possıvel ajudar um ao outro (cooperacao). O principal objetivo da
cooperacao entre robos e montar um time que possa realizar tarefas mais rapidamente
que um unico robo ou ate tarefas que um robo sozinho nao conseguiria cumprir.
CAPITULO 2. SISTEMAS ROBOTICOS COOPERATIVOS 11
Ota e Arai [6] apresentam um metodo de coordenacao onde, em um grupo de robos,
cada indivıduo tem a preocupacao de cumprir uma tarefa principal, que se restringe a se
locomover para um certo local, e se manter a uma certa distancia fixa dos seus vizinhos.
Desse modo, o grupo mantem uma coesao enquanto se movimenta. Desai et al [7] seguem
a mesma linha de raciocınio, porem eles trabalham com formacoes dinamicas para o grupo
que e liderado por um dos robos. O grupo ainda deve desviar de obstaculos e voltar a
formacao desejada quando ultrapassar o obstaculo.
Ja Lin [8] usa um algoritmo genetico para encontrar a solucao de uma tarefa de
selecao de objetos. Uma outra abordagem usa exemplos de animais sociais na natureza
como formigas [9]. Esses metodos geralmente demandam um certo tempo de execucao,
sendo desaconselhavel seu uso em sistema que funcionam em tempo-real.
Uma abordagem muito comum para a coordenacao de times de robos, e divisao da
tarefa principal em varias sub-tarefas, e distribuir as sub-tarefas entre os robos [10, 11, 12,
13]. Desse modo cada robo se preocupa apenas em realizar uma tarefa menor, sem que
necessariamente saiba o que os outros robos estao fazendo. Com a divisao temos tambem
uma simplificacao das tarefas. Desse modo, tarefas maiores que so poderiam ser realizadas
por um robo mais complexos podem ser realizadas por um grupo de robos simples. O
grupo de robos acrescenta robustez, devido a redundancia; velocidade, por serem varios
robos fazendo o trabalho de um; e principalmente diminuir os custos do sistema por usar
diversos robos de baixo custo ao inves de apenas um mais dispendioso.
Arai e Ota [14] classificam os sistemas multi-roboss atraves de dois aspectos: quem
planeja e quando planeja. O primeiro aspecto e dividido em centralizado e descentralizado.
Em um sistema centralizado, o planejamento e realizado por um supervisor, enquanto que
no descentralizado, cada robo e responsavel por seu proprio planejamento. A categoria
quando planeja e dividida em on-line e off-line, onde off-line e dito quando o planejamento
e realizado a priori enquanto on-line e realizado no decorrer da acao.
2.2 Futebol de Robos
O futebol de robos e um ambiente muito propıcio para a pesquisa e o desenvolvimento
de sistemas multi-robos. Um grupo de robos tem de cooperar de modo a realizar um
CAPITULO 2. SISTEMAS ROBOTICOS COOPERATIVOS 12
objetivo comum, vencer o jogo. Esse objetivo pode ser dividido em diversos objetivos
menores como marcar gols, nao tomar gols, ou ainda menores como defender ou chutar.
Alem disso e um ambiente extremamente dinamico e imprevisıvel, pois os obstaculos sao
os robos adversarios. Ou seja, e um ambiente que trabalha a cooperacao (com os robos
do proprio time) e a competicao (com os robos adversarios) em um ambiente dinamico
que funciona em tempo-real.
Os primeiros trabalhos de coordenacao nesse ambiente foram realizados antes do apa-
recimento das duas grandes ligas de futebol de robos, FIRA e RoboCup. Foram trabalhos
simples, onde geralmente se visava a cooperacao de dois ou mais robos com um objetivo
comum, empurrar uma bola para uma certa area, sem a presenca de obstaculos [1, 15].
Um conceito interessante que foi desenvolvido nos metodos de cooperacao de futebol
de robos foi a ideia de papel (role) de um robo. O papel de um robo rege suas acoes em
cada momento do jogo, ou seja, diz quais acoes ele deve tomar em cada situacao. Robos
com papeis distintos podem tomar atitudes diferentes enfrentando a mesma situacao. A
ideia de papeis pode ser estendida para qualquer sistema multi-roboss [16]. No escopo do
futebol de robos, podemos intuitivamente associar papeis com as posicoes dos jogadores no
futebol humano: teremos entao papeis como goleiro, defensor, meio-campo ou atacante.
Apesar do objetivo global ser ganhar o jogo, cada uma dessas posicoes tem tarefas, ou
sub-objetivos, diferentes, como impedir que o time adversario faca gol, impedir que o
time adversario chegue perto do gol, ou marcar gols. Desse modo todos os robos terao um
objetivo definido e nao conflitante. Algumas implementacoes desse conceito trabalham
com papeis fixos [17, 18, 19], ou seja, cada robo tem seu papel definido antes do jogo e
permanece com o mesmo ate o fim. Esse sistema peca pela falta de robustez e redundancia,
como no caso de um dos robos vir a falhar fisicamente, ja que nenhum outro robo ira
assumir seu papel nas situacoes necessarias.
Um avanco no conceito de papeis foi o desenvolvimento da alocacao dinamica de papeis
[20, 21, 22, 23]. Nesse modelo, os robos tem a capacidade de trocar de papeis de acordo
com a configuracao atual do sistema. Se um defensor ve a possibilidade de avancar com
a bola, ele pode trocar de papel com o meio-campista; se um atacante percebe que pode
evitar o gol, ele se transforma em goleiro. Em sistemas descentralizados a coordenacao
das trocas de papel e crıtica. Todo o processo e baseado na troca de mensagens que deve
CAPITULO 2. SISTEMAS ROBOTICOS COOPERATIVOS 13
ser bem planejado para evitar falhas. Se no caso anterior, o defensor se encontra em
uma posicao favoravel para assumir o papel de meio-campista, ele inicia uma conversacao
com o robo que se encontra com este papel. Caso algum dos dois robos perca uma das
mensagens trocadas, o time pode passar a ter redundancia em um papel e carencia no
outro. Varios protocolos para tentar sanar esse problema ja foram desenvolvidos [16]. O
uso de alocacao dinamica de papeis junto com os de selecao de formacao dinamica, onde
se define qual o esquema que o time ira jogar, tem gerado bons frutos em competicoes
[24, 21, 25, 26]
Lam et al [19] propuseram um metodo constituıdo por um banco de dados de taticas e
acoes, e um mecanismo de selecao dessas taticas. Nesse caso, o banco de dados possui duas
sub-divisoes: taticas de ataque e taticas de defesa. As taticas de ataque sao utilizadas
quando o time possuir a posse da bola e as de defesa quando o time adversario possuir
a bola. As taticas sao ordenadas por sua agressividade: a primeira tatica de ataque e a
menos ofensiva e a ultima a mais ofensiva. A grande contribuicao desse metodo e o modo
de selecao da tatica baseada inteiramente em probabilidades estatısticas.
A IA tambem e muito utilizada na tentativa de gerar uma estrategia cooperativa ade-
quada para o futebol de robos. Agah e Tanie [27] propuseram uma tecnica evolucionaria
atraves de algoritmos geneticos. Ele propoe um metodo chamado arquitetura cognitiva
baseada em tropismos1, onde cada tropismo e um comportamento que o robo deve ter
em uma determinada situacao. Com um simulador simples, varios jogos simultaneos sao
realizados. A medida que as populacoes evoluem, os tropismos mais adequados sao exal-
tados, enquanto que os menos apropriados sao extintos. Esse metodo exige um vasto
tempo de treinamento a fim de encontrar uma tatica otima e, alem de nao se adaptar ao
adversario, exige extremo cuidado na selecao dos exemplos de treinamento.
Outra aplicacao de IA na coordenacao de times multi-robos e a utilizacao de logica
difusa [28, 29, 30, 31]. Sng [31] usa parameros como distancia ate a bola e orientacao
do robo para definir, com a logica difusa, qual o robo mais apto para chutar a bola. A
logica difusa tambem e utilizada para definir quais papeis cada robo deve assumir e suas
posicoes no campo. De la Rosa et al [32] tambem usam um metodo de decisao difusa
1tropismo: Reacao de organismos que consiste na mudanca de orientacao determinada por estımulos
externos, dita positiva quando em direcao ao estımulo e negativa quando se afasta do mesmo.
CAPITULO 2. SISTEMAS ROBOTICOS COOPERATIVOS 14
baseado em parametros como distancia para a bola e distancia para o gol. A diferenca
desse ultimo trabalho e que toda a programacao e realizada em ambientes orientados a
agentes, onde um agente (robo) e definido por suas crencas, desejos e intencoes. Hoje em
dia existem varias linguagens de programacao experimentais orientadas a agentes, porem
nenhuma delas esta bem estabelecida.
Wang et al [33] definem a ideia de cooperacao ideal como sendo confiavel, escalar,
voluntaria e evolucionaria. Nessa definicao, confiabilidade significa manter uma coerencia
em situacoes semelhantes e ser capaz de manter o sistema funcionando se algum dos
agentes falhar. Cooperacao escalar no sentido de possuir cooperacao local, onde acoes
influenciam diretamente o agente, e cooperacao global, onde acoes influenciam o time
como um todo. A voluntariedade significa que o agente seja capaz de perceber sozinho uma
oportunidade de cooperacao. E evolucionaria por ser capaz de melhorar a performance
do time atraves de treinamento.
Uma abordagem comumente utilizada e a organizacao das acoes em camadas [34, 35,
36]. Na camada mais baixa, no nıvel dos robos, as acoes sao praticamente atomicas tais
como mover de um ponto a outro ou mudar de orientacao. A medida que se sobe nas
camadas, podemos ver acoes mais elaboradas que se utilizam das inferiores como chutar
a bola ou bloquear a bola. Percebe-se que para chutar a bola o robo precisa se mover
ate o ponto da bola, porem quem ira se preocupar com isso e a camada inferior. No
nıvel superior, as acoes podem tomar dimensoes de grupo como mudar para esquema
defensivo. Com esse tipo de organizacao e possıvel simplificar cada camada, evitando
erros por complexidade.
A aprendizagem por reforco tambem se faz muito presente em varios trabalhos de
coordenacao de futebol de robos. Geralmente a aprendizagem e utilizada como metodo
de aperfeicoamento, sendo usada junto com outras tecnicas como decisao por camadas
[35], maquinas de estados [37] ou como metodo de previsao para proximas jogadas de
adversarios [38]. Em outros casos, a aprendizagem pode ser utilizada como principal
metodo de decisao: Park [39] usa o Q-Learning para selecao de acoes e Hu [40] usa uma
rede neural com treinamento off-line.
Varias outras abordagens de coordenacao e cooperacao para o ambiente do futebol
de robos podem ser encontradas, Candea et al [41], criaram um metodo de coordenacao
CAPITULO 2. SISTEMAS ROBOTICOS COOPERATIVOS 15
baseado em holons, que sao blocos de controle auto-ajustaveis, permitindo uma maior
resistencia a perturbacoes. Park et al [42] utilizam um algoritmo simples tipo dividir e
conquistar. Hrabec e Honzık [43] utilizam um metodo simples de decisao por arvore, onde
as folhas sao as acoes a serem tomadas. E Kim et al [17] usam selecao de acao atraves de
uam rede Perceptron com multiplas camadas.
Alem de metodos de coordenacao de times como um todo, muitos trabalhos sao de-
senvolvidos no sentido de aprimorar tarefas especıficas no jogo, tais como comportamento
do goleiro [44], passar a bola entre jogadores [45, 46], chute a gol [47, 48], alem de diversas
tecnicas para desvio de obstaculos [45, 49, 50, 51, 48].
2.3 Discussao
Dentre as solucoes encontradas, o conceito de papeis parece ser bem apropriado para
o problema em questao. Com a adocao de papeis, cada robo possui um conjunto limitado
de acoes para tomar, tornando o planejamento mais simples e rapido do que seria em
um sistema em que cada robo devesse ponderar todas as opcoes. Por outro lado, com
a alocacao dinamica de papeis, essa mesma abordagem que a primeira vista se tornaria
rıgida e limitante, se mostra bem mais flexıvel, pois cada robo assume o papel mais
adequado para sua atual situacao.
A ideia da organizacao do planejamento em camadas tambem parece promissora, pois
dessa forma podemos trabalhar com papeis mais abrangentes, simplificando a distribuicao
dos papeis e possibilitando um refinamento das atribuicoes dos papeis em uma ou mais
camadas inferiores.
No nosso sistema, o planejamento e centralizado, ja que todo o processamento e feito
por um computador remoto e os robos nao possuem sensores. Alem disso, apesar de os
robos nao serem autonomos, o sistema como um todo e, ou seja o planejamento e feito a
priori com o computador capaz de realizar decisoes sem a necessidade de interferencia hu-
mana. A configuracao do sistema centralizado foi escolhida por diversas razoes: diminuir
os custos do robos, ja que nao sera necessario que sejam equipados com sensores e micro-
controladores mais potentes; pela facilidade de implementacao, sistemas com localizacao
e processamento global sao mais simples que sistemas distribuıdos; e esses sistemas tem
CAPITULO 2. SISTEMAS ROBOTICOS COOPERATIVOS 16
apresentado bons resultados em competicoes de ambito nacional e internacional.
Alem do comportamento global do sistema, a adocao de um metodo de desvio de
obstaculos tambem parece ser de fundamental importancia devido as recorrentes colisoes
que acontecem em um ambiente de dimensoes restritas.
Capıtulo 3
Simulador
Os simuladores sao muito utilizados em sistemas roboticos, tanto com robos moveis
quanto com manipuladores, como uma ferramenta auxiliar durante seu desenvolvimento.
Simuladores sao programas desenvolvidos com base nas caracterısticas reais do objeto
a ser simulado (no caso um robo), e nas caracterısticas do meio pelo qual o objeto e
cercado. Com o auxılio de um simulador e possıvel verificar o comportamento de um
robo, bem como sua interacao com o meio, sem que sejam necessarios experimentos reais.
Simuladores permitem que sejam realizados testes de viabilidade de um projeto sem o
custo de tempo e financeiro para o desenvolvimento de um prototipo ou do proprio sistema.
Mesmo com um sistema ja finalizado e funcional, os simuladores sao ferramentas uteis
na realizacao de experimentos sem a necessidade da disponibilizacao do aparato fısico,
tornado-os mais faceis e menos custosos.
Podemos destacar tres pontos importantes para analisar a qualidade de um simulador
para um sistema robotico: a modelagem dos robos; a modelagem das colisoes e o tempo
de simulacao. Cook et al [52] apresentam um simulador para um braco manipulador com
interface grafica: os comandos sao enviados para o simulador e, em seguida, podem ser
enviados para o robo real caso a simulacao nao apresente colisoes. Porem, as possıveis co-
lisoes do robo nao sao tratadas. No caso da deteccao de alguma colisao, o processamento
e interrompido. Kimoto e Yuta [53] descrevem um simulador para um robo movel enfati-
zando o funcionamento dos sensores. A deteccao das colisoes e simplificada aproximando
a forma da base do robo de um quadrado para um cırculo. Kulkarni et al [54] trabalham
com robos poligonais em seu simulador: o metodo de deteccao das colisoes leva em conta
CAPITULO 3. SIMULADOR 18
a forma real do robo, porem a dinamica da colisao e ignorada e o processamento para no
momento em que alguma colisao e detectada.
O objetivo do desenvolvimento deste simulador e substituir testes nos robos reais
por testes no simulador. Para tanto precisamos de um simulador realıstico o suficiente
para que nao haja muitas diferencas na transicao do mundo simulado para o real. O
simulador proposto tem, portanto, alguns pre-requisitos. O primeiro deles e que, uma
vez que o planejamento sera desenvolvido para os robos da equipe POTI, o simulador
deve ser implementado com base em um modelo realıstico dos robos. O segundo aspecto
importante e que o simulador deve funcionar em tempo real. Isso e importante para que
os outros modulos do sistema possam se comunicar com o simulador do mesmo modo que
se comunicariam com o sistema real. Alem disso, o simulador deve detectar e tratar as
colisoes recorrentes entre os robos, a bola e as paredes [55]. Na secao 3.1 sera mostrado
como o simulador foi implementado e como ele se encaixa no sistema como um todo. A
secao 3.2 falara sobre a modelagem matematica do robo e a secao 3.3 tratara os metodos
de deteccao e tratamento das colisoes desenvolvidos.
3.1 Estrutura do Simulador
O simulador foi projetado de modo a ser transparente ao resto do sistema. Nenhum
dos outros modulos citados na secao 1.2 age de maneira diferente quando o sistema esta
funcionando com o simulador ou com os robos reais. Essa caracterıstica permite que os
programas testados com o simulador sejam transferidos para o sistema real sem que sejam
necessarias adaptacoes.
As duas unicas diferencas do sistema como um todo quando se utiliza o simulador ou
os robos reais sao a transmissao de dados e a obtencao da imagem do campo. No sistema
real, os sinais de controle sao calculados pelo computador sao enviados via radio para
os robos. No sistema simulado os sinais sao enviados via rede. Sao utilizados pipes e os
dados sao coletados via sockets.
Por razoes obvias, a obtencao da imagem do campo tambem e modificada quando
se utiliza o simulador. Enquanto que no sistema real a camera capta uma imagem das
posicoes atuais dos robos, com o simulador os robos nao estao posicionados no campo e
CAPITULO 3. SIMULADOR 19
a unica informacao da posicao atual dos robos reside no proprio simulador. Nesse caso,
o simulador fornece informacoes que permitem gerar uma imagem artificial do campo e
dos robos nas suas devidas posturas (posicao e orientacao), e as envia para o computador
controlador. O modulo de localizacao ira tratar a imagem artificial do mesmo modo que
trataria uma imagem real. Uma vez encontradas as posturas dos robos e a posicao da bola,
esse modulo fornece as informacoes para o resto do sistema sem alteracoes em relacao ao
sistema real.
A figura 3.1(a) mostra o sistema real ja exibido na secao 1.2 e a figura 3.1(b) mostra de
maneira analoga, como o simulador se encaixa no sistema. Pode-se perceber que as unicas
diferencas no computador controlador sao os modos de transmissao e a captacao/geracao
da imagem. A criacao da imagem artificial funciona como um pre-processamento para
o sistema, nao afetando em nada seu funcionamento. A utilizacao do simulador ou dos
robos reais e indiferente para o funcionamento dos modulos do computador controlador.
Rob
ô
Com
puta
dor
cont
rola
dor
Com
puta
dor
cont
rola
dor
Com
puta
dor
sim
ulad
or
de imagemGeração
Planejamento Planejamento
(a) (b)
Localização
Controle
Motores
Recepção
Transmissãovia rádio
Localização
Controle
Transmissãovia rede
Simulação
VisãoTransmissão
via rede
Figura 3.1: (a)Sistema real (b)Sistema com o simulador
3.1.1 O Sistema de Simulacao
O sistema de simulacao envolve dois componentes: o simulador propriamente dito e o
visualizador. O simulador roda em um processo dedicado (uma thread) de alta prioridade.
Os dados simulados sao enviados via socket para o visualizador, de modo que podem ser
lidos e exibidos pelo visualizador, como mostra a figura 3.2. O visualizador funciona em
outro processo e exibe os dados para o usuario. Esta configuracao evita que eventuais
CAPITULO 3. SIMULADOR 20
atrasos, ou um grande consumo de tempo, do visualizador comprometam as caracterısticas
de tempo real do simulador.
Visualizador SimuladorComunicacao
via socket
Figura 3.2: Sistema completo de simulacao
O programa simulador funciona com dois processos em paralelo: um e responsavel
apenas pela comunicacao com o controlador e o outro realiza a simulacao propriamente
dita. O processo de comunicacao cria dois sockets de comunicacao com cada time: o
primeiro recebe os sinais de controle enviados pelo controlador e o segundo envia as in-
formacoes para a construcao das imagens artificiais do campo. O perıodo de amostragem
do sistema (T) e de 33ms. Sempre que esse perıodo e alcancado, as posicoes e orientacoes
dos robos e da bola sao calculados, armazenados e disponibilizados via socket para o
computador controlador. Esse processo simula o comportamento da camera que captura
uma nova imagem do campo a cada 33ms e a disponibiliza para o sistema. Uma variavel
chamada sobra e criada com o intuito de zerar o erro cumulativo que aconteceria a cada
perıodo de amostragem. Esse atraso e decorrente do fato do simulador nao levar exata-
mente 33ms de processamento. O algoritmo da figura 3.3 mostra de maneira simplificada
o funcionamento do simulador.
A simulacao propriamente dita e feita utilizando um metodo de integracao numerica
como o de Euler e o Runge-Kutta de quarta ordem [56]. A cada perıodo de amostragem
sao simulados 33ms a partir do termino da simulacao anterior. A cada passo de simulacao
novas poses dos robos e da bola sao calculados e em seguida e verificado se, com as novas
posicoes, ocorreu alguma colisao. Caso tenha ocorrido, as correcoes necessarias de posicao
e velocidade sao realizadas. O algoritmo da figura 3.4 ilustra a utilizacao do metodo de
Euler, onde x representa o vetor de estados nas equacoes matematicas que descrevem os
modelos do robo e da bola e delta t e o passo de integracao:
Para diminuir o tempo de geracao e de envio da imagem artificial, o simulador nao
envia uma imagem do campo inteiro (640 × 480 × 3 bytes) a cada passo como ocorre
com camera. Ao inves disso, inicialmente uma imagem real do campo vazio e adquirida
antes do jogo pelo sistema de calibracao de cores. No jogo real, essa imagem tem por
CAPITULO 3. SIMULADOR 21
Repetir
| t = relogio
| dt = t - t_ant + sobra
| Se dt >= T
| | Simula ate t_ant + T
| | t_ant = t
| | sobra = dt - T
| | Salva posic~ao dos robos e bola
| | Envia informac~oes para o computador controlador
| Sen~ao
| | sobra = sobra + dt
| | t_ant = t
| Fim_Sen~ao
| Se chegou novo sinal de controle
| | Atualiza tens~oes
| Fim_Se
| Dorme 10ms
Fim_Repetir
Figura 3.3: Algoritmo do sistema simulador
CAPITULO 3. SIMULADOR 22
t,t_atual,delta_t
Ler t_atual
Enquanto t < t_atual:
| Calcular dx
| x <- x + dx*delta_t
| Testar colis~oes:
| | Bola com cada parede
| | Para cada robo:
| | | Robo com cada parede
| | | Robo com bola
| | | Robo com cada robo
| | Se colis~ao
| | | Alterar x
| | | Tratar colis~ao
| | fim_Se
| t <- t + delta_t
fim_Enquanto
Figura 3.4: Algoritmo de simulacao
CAPITULO 3. SIMULADOR 23
objetivo captar as condicoes de iluminacao do ambiente. Durante o jogo, a cada perıodo
de amostragem o simulador gera e envia as posturas atuais dos jogadores e da bola. O
modulo de geracao de imagem, localizado no computador controlador, recebe as posturas
e desenha os robos e a bola em cima da imagem do campo vazio ja armazenada. Uma
vez montada, a imagem e passada para o modulo de localizacao e o processamento segue
como se o sistema estivesse tratando com uma imagem real.
3.2 Modelagem Matematica do Robo
Para que um simulador possa se tornar uma ferramenta confiavel para o desenvol-
vimento do planejamento de cooperacao, e necessario que os robos simulados possuam
respostas bastante fieis em relacao aos robos reais. Para tanto, e necessario o levanta-
mento de um modelo matematico preciso do robo.
Esta secao descreve o modelo matematico de um robo cubico com aresta de 7,5cm,
com duas rodas acionadas diferencialmente por dois motores de corrente contınua com
acoplamento direto como visto em Guerra et al [57], conforme esquema da figura 3.5. As
principais grandezas envolvidas na modelagem estao descritas a seguir, onde os ındices d
e e dizem respeito ao lado direito e esquerdo, respectivamente.
x
y
b
τ, ω
τd, ωd
τe, ωe
rd
re
Fe, ve
F, v
Fd, vdθ
Figura 3.5: Diagrama esquematico do robo
Grandezas dinamicas para a modelagem do robo:
x, y - posicao do centro de massa do robo
CAPITULO 3. SIMULADOR 24
θ - orientacao do robo
b - distancia entre as duas rodas
rd, re - raios das rodas
ωd, ωe - velocidades angulares das rodas
ω - velocidade angular do robo
vd, ve - velocidades lineares na borda das rodas
v - velocidade linear do robo
τd, τe - torques nas rodas
τ - torque resultante no robo
fd, fe - forcas na borda das rodas
f - forca resultante no robo
ed, ee - tensoes de armadura nos motores
id, ie - correntes de armadura nos motores
Rd, Re - resistencia de armadura nos motores
Kd,Ke - constantes contra-eletromotrizes nos motores
Jd, Je - momento de inercia dos rotores dos motores
J - momento de inercia do robo
βd, βe - coeficiente de atrito nos motores
βl - coeficiente de atrito viscoso linear no robo
βθ - coeficiente de atrito viscoso angular no robo
m - massa do robo
3.2.1 Modelagem Cinematica
A relacao entre as velocidades no espaco de atuadores (ωr) e no referencial do robo
(ω) e:
v = vTω · ωr → ωr = ωTv · v (3.1)
onde:
v =
⎡⎣ ν
ω
⎤⎦ ωr =
⎡⎣ ωd
ωe
⎤⎦ vTω =
⎡⎣ rd/2 re/2
rd/b −re/b
⎤⎦
O robo modelado e sujeito a restricoes nao holonomicas, isto e, restricoes nas possıveis
velocidades que pode assumir, devido ao fato que o atrito impede que as rodas deslizem
CAPITULO 3. SIMULADOR 25
lateralmente. Assim, o robo so pode se movimentar na direcao em que esta orientado.
Esta restricao e expressa matematicamente como:
dy
dx=
sin θ
cos θ⇒ y cos θ − x sin θ = 0 (3.2)
A relacao entre velocidades no referencial do robo e velocidades em espaco de configuracao
e dada por:
q = qTv · v (3.3)
onde:
q =
⎡⎢⎢⎢⎣
x
y
θ
⎤⎥⎥⎥⎦ qTv =
⎡⎢⎢⎢⎣
cos θ 0
sin θ 0
0 1
⎤⎥⎥⎥⎦
3.2.2 Modelagem Dinamica
A partir das restricoes nao-holonomicas, a seguinte relacao entre esforcos em espaco
de atuadores τ e esforcos no referencial do robo f θ e obtida:
f θ = ωTTv · τ ⇒ τ = vTT
ω· f θ (3.4)
onde:
f θ =
⎡⎣ fθ
τθ
⎤⎦ τ =
⎡⎣ τd
τe
⎤⎦ ωTT
v =
⎡⎣ 1/rd 1/re
b/2rd −b/2re
⎤⎦
A dinamica dos atuadores (motores) e dada pelas equacoes eletricas (3.5) abaixo. A
modelagem dos atritos leva em conta apenas o atrito viscoso linear e despreza os efeitos
nao-lineares (atrito seco e de Coulomb).
i = −ρKrωr + ρe τ = Kr · i − Jrωr − βrωr (3.5)
onde:
i =
⎡⎣ id
ie
⎤⎦ ωr =
⎡⎣ ωd
ωe
⎤⎦ e =
⎡⎣ ed
ee
⎤⎦
Kr =
⎡⎣ Kd 0
0 Ke
⎤⎦ βr =
⎡⎣ βd 0
0 βe
⎤⎦
ρ =
⎡⎣ 1/Rd 0
0 1/Re
⎤⎦ Jr =
⎡⎣ Jd 0
0 Je
⎤⎦
CAPITULO 3. SIMULADOR 26
A equacao de movimento do robo pode ser obtida a partir das leis de Newton e Euler:
f θ = JR · v + βR · v (3.6)
onde:
JR =
⎡⎣ m 0
0 J
⎤⎦ βR =
⎡⎣ βl 0
0 βθ
⎤⎦
Substituindo as equacoes de dinamica de atuadores (3.5) na equacao de movimento do
robo (3.6), obtem-se a equacao 3.7 que expressa, no referencial do robo, o comportamento
dinamico do robo.
K · e = M · v − B · v (3.7)
onde:
K = ωTTv · ρ · Kr M = JR + ωTT
v · Jω
r Tv
B = βR + ωTTv [ρ · K2
r + βr] ·ωTv
O modelo descrito acima pode ser representado no espaco de estados pela equacao 3.8 a
seguir: ⎧⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎩
⎡⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣
v
ω
x
y
θ
⎤⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦
=
⎡⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣
−M−1B... 0
. . . . . . . . . . . . . .
cos(θ) 0
sin(θ) 0
0 1
... 0
⎤⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦
⎡⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣
v
ω
x
y
θ
⎤⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦
+
⎡⎢⎢⎢⎣
M−1K
. . . . . .
0
⎤⎥⎥⎥⎦
⎡⎣ ed
ee
⎤⎦
y =
⎡⎢⎢⎢⎣
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
⎤⎥⎥⎥⎦
⎡⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣
v
ω
x
y
θ
⎤⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦
(3.8)
CAPITULO 3. SIMULADOR 27
A partir do modelo em espaco de estados descrito pela equacao 3.8, podemos deduzir
a matriz de transferencia discreta G(z).⎡⎣ L(z)
θ(z)
⎤⎦ =
⎡⎣ G11(z) G12(z)
G21(z) G22(z)
⎤⎦
⎡⎣ Ed(z)
Ee(z)
⎤⎦
onde cada Gij(z) possui a seguinte estrutura
Gij(z) =Nij(z)
D(z)=
γijz2 + δijz + εij
(z − 1)(z2 + α1z + α2)→
Gij(z) =γijz
2 + δijz + εij
z3− z2 + α1(z2
− z) + α2(z − 1)(3.9)
Atraves das equacoes 3.9 podemos chegar as equacoes 3.10, onde os parametros αi,
γij, δij e εij, com i, j = 1, 2, sao encontrados atraves de metodos de identificacao simples
como os mınimos quadrados.
∆lk = −α1∆lk−1 − α2∆lk−2 + γ11ed,k−1 + δ11ed,k−2 + ε11ed,k−3 +
+ γ12ee,k−1 + δ12ee,k−2 + ε12ee,k−3
∆θk = −α1∆θk−1 − α2∆θk−2 + γ21ed,k−1 + δ21ed,k−2 + ε21ed,k−3 +
+ γ22ee,k−1 + δ22ee,k−2 + ε22ee,k−3
(3.10)
onde ∆lk = lk − lk−1 e distancia percorrida em um passo de amostragem, ∆θk = θk − θk−1
e o incremento angular na orientacao do robo no mesmo perıodo, ed,k e ee,k sao os sinais
de entrada da planta (tensao nos motores direito e esquerdo, respectivamente) no instante
k. As equacoes 3.10 sao usadas para a simulacao. Mais detalhes sobre a obtencao desse
modelo e sobre a identificacao dos parametros podem ser vistos em Guerra et al [58].
3.3 Tratamento das Colisoes
No jogo de futebol de robos, devido ao dinamismo, rapidez e espaco fısico limitado, as
colisoes sao situacoes frequentes, sejam elas entre robos ou envolvendo a bola e as paredes.
Por isso, de modo a garantir um maior realismo no simulador, foi necessario tratar essas
colisoes. O tratamento de uma colisao inclui sua deteccao e sua modelagem.
Existem quatro tipos de colisoes possıveis no ambiente do futebol de robos: colisao
bola-parede, colisao robo-parede, colisao robo-bola e colisao robo-robo, tres das quais
estao ilustradas na figura 3.6. O tratamento de uma colisao envolve a deteccao de sua
ocorrencia e a inclusao dos seus efeitos na simulacao.
CAPITULO 3. SIMULADOR 28
(b) (c)(a)
Figura 3.6: Exemplo das colisoes no simulador de futebol de robos: (a) colisao robo-bola,
(b) robo-parede e (c) robo-robo
3.3.1 Deteccao de Colisoes
Para deteccao das colisoes algumas simplificacoes foram adotadas a fim de reduzir o
tempo de execucao de cada passo do programa. Nas colisoes robo-parede, assume-se que
os robos batem apenas com seus vertices; nas colisoes robo-robo, adota-se que e sempre
um dos vertices de um robo que bate em uma das faces do outro. Essas simplificacoes sao
feitas assumindo-se que os demais possıveis tipos de colisao (por exemplo, uma colisao
perfeitamente frontal dentre dois robos) tem uma probabilidade mınima de acontecer.
Alem dessas simplificacoes, a cada passo e realizada uma filtragem por proximidade.
De posse das posicoes dos centros dos robos e da bola, e possıvel eliminar colisoes im-
possıveis devido a distancia entre os objetos. Essa filtragem diminui o numero de testes e
o tempo de processamento, questao fundamental em um sistema funcionando em tempo
real.
A cada passo devemos inicialmente calcular a posicao dos quatro vertices de cada
robo. De posse da posicao do centro do robo, da sua orientacao em relacao ao centro
de coordenadas do campo e da dimensao das arestas dos robos (figura 3.7), podemos
facilmente calcular as posicoes xj e yj dos quatro vertices (j = 0, 1, 2, 3) dos robos atraves
das equacoes 3.11: ⎧⎨⎩ xj = xc + b√
2· cos(θ + 45o + 90o
· j)
yj = yc + b√2· sin(θ + 45o + 90o
· j)(3.11)
onde (xc, yc) e a posicao do centro do robo, b a extensao da sua aresta e θ a orientacao do
CAPITULO 3. SIMULADOR 29
robo.
0
yc
xc
b
b
2
1
3
θ
Figura 3.7: Calculo dos vertices de um robo
Colisao robo-robo
Para testar se ocorreu ou nao colisao entre robos, deve-se verificar se cada vertice de
cada robo se encontra dentro da regiao delimitada pelas quatro semi-retas que definem o
outro robo. O metodo de deteccao desenvolvido desloca o centro do eixo de coordenadas
do centro do campo para um dos vertices de um dos robos a serem testados. Esse centro de
coordenadas e rotacionado de forma que eixos x e y sao as duas arestas do robo adjacentes
a este vertice. A figura 3.8 mostras essa mudanca de eixo, xc e yc sao as coordenadas
do centro dos novos eixos e θ o angulo de rotacao do novo centro em relacao aos eixos
globais. Transformamos entao o ponto que se deseja testar (xv,yv), ou seja o vertice do
outro robo, para o eixo de coordenadas calculado no robo (xp,yp). atraves das equacoes:
xp =√
(xv − xc)2 + (yv − yc)2· cos
(tan−1 yv − yc
xv − xc
− θ
)
yp =√
(xv − xc)2 + (yv − yc)2· sin
(tan−1 yv − yc
xv − xc
− θ
)
Pela figura vemos que se 0 < xp < L e 0 < yp < d houve colisao, senao nao houve.
As dimensoes L e d sao os lados do robo e xp e yp sao as coordenadas do ponto a ser
testado. Esse procedimento e repetido para cada vertice de cada robo em relacao aos
outros robos. Devemos notar que e necessario testar cada dois robos duas vezes. Isso
porque mesmo que os vertices do primeiro robo nao tenham colidido com o segundo robo,
existe a possibilidade de que algum vertice do segundo tenha colidido com o primeiro. Na
CAPITULO 3. SIMULADOR 30
yc
xc xv
yv
P
xpyp
θ
L
d
Figura 3.8: Centro de coordenadas deslocado
figura 3.9 podemos ver que embora nenhum vertice do robo 1 esteja em contato com o
robo 2, existe a colisao entre os dois robos.
Robô 1 Robô 2
3
21
1
2
30
0
Figura 3.9: Teste de colisao entre dois robos
Colisao robo-parede
A parede que envolve o campo pode ser dividida em dezesseis segmentos de retas como
mostra a figura 3.10. O teste das colisoes dos robos com as paredes devera ser feito com
cada um dos segmentos separadamente. De modo a diminuir o numero de testes, nesse
tipo de colisao tambem e realizada uma filtragem por proximidade inibindo testes com
robos muito distantes da parede.
Na colisao dos robos com as paredes, assim como na colisao entre robos, um novo centro
de eixos coordenados e calculado. Nesse tipo de colisao o centro dos eixos sera em uma das
extremidades da parede, o eixo das coordenadas coincide com a superfıcie da parede e o
CAPITULO 3. SIMULADOR 31
162
5
7
89
14
12
13
11
10
4
6
1
153
v4 v1
v3 v2
Figura 3.10: Campo do futebol de robos
eixo das abcissas e perpendicular a parede. A figura 3.11 ilustra a posicao do novo centro
de coordenadas para o segmento 3 da parede. O novo eixo sera rotacionado em 180o e tera
seu centro em (xc,yc). Nesse tipo de colisao, a parede pode ser tratada da mesma forma
que tratamos um robo na secao 3.3.1. Entretanto nesse caso a largura do obstaculo (d)
possui o tamanho do segmento de reta da parede e adotamos L com dimensoes infinitas,
uma vez que o vertice nunca poderia ultrapassar a dimensao da parede.
d
(xc,yc)
L
180o
Figura 3.11: Mudanca dos eixos nas colisoes com as paredes
Os quatro vertices dos gols (v1,v2,v3 e v4 na figura 3.10) sao testados como se fossem
vertices de robos. Nesse caso o centro do eixo de coordenadas e deslocado para um dos
vertices do robo da mesma forma que na colisao robo-robo (3.3.1).
CAPITULO 3. SIMULADOR 32
Colisao bola-parede
O teste de colisao da bola com as paredes acontece de maneira similar a dos robos
com as paredes. O eixo e deslocado para as paredes e o ponto a ser testado (xp, yp) e a
posicao do centro da bola (xb, yb), somado com a raio da bola (r) na direcao perpendicular
ao novo eixo de coordenadas, figura 3.12. No caso dos quatro vertices dos gols calcula-se
simplesmente a distancia euclidiana entre o ponto e o centro da bola.
r
y x(xp,yp)
(xb,yb)
Figura 3.12: Teste de colisao entre a bola e uma parede
Colisao robo-bola
A colisao da bola com os robos e quase identica a da bola com as paredes. Nesse tipo
de colisao, o eixo de coordenadas e sempre deslocado para o robo e o ponto a ser testado
segue o mesmo esquema da figura 3.12 usado na colisao entre a bola e as paredes.
3.3.2 Modelagem das Colisoes
Durante uma colisao, um corpo sofre o efeito de uma forca de grande intensidade F
(F → ∞) e fase β, durante um pequeno intervalo de tempo ∆t (∆t → 0). F e ∆t nao
podem ser determinados, mas supondo uma colisao perfeitamente elastica, o momento
P (P = F · ∆t) pode ser calculado a partir do fato que a energia cinetica total antes e
depois da colisao se manter constante. A fase β pode ser determinada a partir do plano
da colisao, pois a forca e sempre perpendicular a este plano. De posse do momento P
e da massa do corpo m, podemos calcular a mudanca de velocidade resultante da forca
fazendo:
F = m · a → F = m ·∆v
∆t→ ∆v =
F · ∆t
m
CAPITULO 3. SIMULADOR 33
como:
F · ∆t = P
temos:
∆v =P
m(3.12)
A figura 3.13(a) ilustra uma situacao em que a bola colide com uma parede. A ve-
locidade da bola antes da colisao tem modulo vib e fase θib. A forca gerada pela parede
tem modulo ∆v e a fase (βb) e perpendicular ao plano de colisao que e a orientacao da
propria parede. Na figura 3.13(b) e ilustrado o diagrama das velocidades dessa colisao.
O modulo (vfb) e fase (θfb) da velocidade final da bola serao dados pela soma dos vetores
vib e ∆v. As equacoes 3.13 e 3.14 sao referentes ao modulo e fase da velocidade da bola
respectivamente.
vfb =
√v2
ib +
(P
mb
)2
+ 2 · vib ·P
mb
· cos (βb − θib) (3.13)
θfb = tan−1
(vib · sin(θib) + P
mb
· sin(βb)
vib · cos(θib) + Pmb
· cos(βb)
)(3.14)
onde mb e a massa da bola.
Plano decolisão
(a) (c)(b)
θib
βb
θfb
vfb
βb
θib
vib
vfb
∆v
vib
∆vθfb
Figura 3.13: (a)Forca atuando sobre corpo (b)Velocidade e orientacao da bola apos colisao
De posse das expressoes para calcular o valor da intensidade e fase da velocidade final
da bola, basta encontrarmos um valor para P para resolvermos a equacao. Para encontrar
CAPITULO 3. SIMULADOR 34
P utilizamos a conservacao da energia cinetica e a equacao 3.13:
Eci = Ecf ⇒mb · v
2ib
2=
mb · v2fb
2⇒
v2ib = v2
ib +
(P
mb
)2
+ 2 ·P
mb
· vib · cos(βb − θib) ⇒
chegamos entao na seguinte equacao para P :
P = −2 · vib · cos(βb − θib) · mb (3.15)
Substituindo o valor de 3.15 em 3.13 e 3.14 conseguimos calcular a velocidade da bola
apos a colisao. Nesse caso especıfico a intensidade da velocidade permanece constante,
pois o obstaculo (parede) tinha velocidade nula e massa muito maior que a bola. A unica
alteracao se dara na direcao do movimento da bola. A figura 3.13(c) mostra a configuracao
da velocidade da bola apos a colisao.
Em uma colisao envolvendo um robo, devemos dividir ∆v em duas componentes: uma
paralela ao sentido de movimento do robo e outra na direcao do centro de massa do
robo com orientacao θc. A primeira componente influenciara na velocidade linear final do
robo (vfb) e a segunda na velocidade angular final (ωfb). Um fator que deve ser levado
em conta e a face do robo que sofrera a colisao. Nas faces dianteira ou traseira (figura
3.14(a)) o sentido da forca e paralelo ao sentido de movimento do robo. Teremos entao
as duas componentes atuando sobre o robo. Caso o robo sofra colisao em uma de suas
faces laterais (figura 3.14(b)), a forca da colisao e perpendicular ao movimento, nesse
caso nao existe componente paralela ao movimento. A unica forca a agir nessa situacao
e aquela direcionada ao centro do robo. Esse tipo de colisao ira resultar apenas no giro
do robo. Esse comportamento e ilustrado pela equacao da velocidade final do robo apos
uma colisao (3.16).
vfr = vir +P
mr
· cos(β − θr) (3.16)
Na figura 3.14(a) a orientacao do robo (θr) e 90o e β tambem e 90o. Substituindo na
equacao 3.16 temos que cos(90o− 90o) = 1, ou seja a colisao tera influencia maxima no
sentido do movimento linear. Ja na figura 3.14(b) θr = 90o e β = 180o. Nesse caso temos
que cos(180o− 90o) = 0 e a colisao so tera influencia na velocidade angular final do robo.
A figura 3.15(a) ilustra um caso em que ocorre uma colisao entre a bola e um robo. A
colisao acontece na face traseira do robo que tem velocidade linear inicial vir, velocidade
CAPITULO 3. SIMULADOR 35
eixo decolisão
eixo decolisão
(a) (b)
θc
θc
β
β
θr θr
Figura 3.14: (a)Colisao frontal (b)Colisao lateral
angular inicial ωir, orientacao θir. A bola tem velocidade inicial vib, com fase θib, dc e a
distancia entre o ponto de colisao e o centro do robo. A bola recebe o mesmo tratamento
que no caso da sua colisao com a parede, as expressoes da velocidade final da bola se
mantem as mesmas das equacoes 3.13 e 3.14. Para o robo, devemos calcular expressoes
para suas velocidade finais linear vfr e angular ωfr em funcao do momento P . A expressao
que modela a velocidade linear final do robo e expressa pela equacao 3.16. A figura 3.15(b)
ilustra o diagrama de forcas que influenciam a componente angular do robo.
(a) (b)
vir θir
ωir
dc
θibvib
∆vc
θc
θir
Figura 3.15: Colisao entre a bola e um robo
A expressao que ira descrever a velocidade angular final do robo (ωr) sera:
ωfr = ωir +P · dc
Jr
· sin(βr − θc) (3.17)
Para calcular o momento de colisao P , devemos levar em conta a velocidade da bola
e as velocidades linear e angular do robo. Usando novamente a conservacao da energia
CAPITULO 3. SIMULADOR 36
cinetica temos:
Eci = Ecf ⇒mb · v
2ib + mr · v
2ir + Jr · ω
2ir
2=
mb · v2fb + mr · v
2fr + Jr · ω
2fr
2
Substituindo as equacoes 3.13, 3.16 e 3.17:
mb · v2ib + mr · v
2ir + Jr · ω
2ir = mr
(vir +
P
mr
· cos(βr − θr
)2
+
Jr
(ω2
ir +P.dc
Jr
· sin(βr − θc)
)2
+ mb
(vib +
P
mb
· cos(βb − θib)
)2
Desenvolvendo essa expressao chegamos ao seguinte resultado
P =−2(vr · cos(βr − θr) + dc · ωr · sin(βr − θc) + vb · cos(βb − θv))
(cos(βr−θr)2)mr
+ dc·sin(βr−θc)Jr
+ 1mb
(3.18)
Substituindo o valor da equacao 3.18 nas equacoes 3.13, 3.14, 3.16 e 3.17 conseguimos
calcular os valor de vfb, θfb, vfr e ωfr respectivamente.
3.3.3 O visualizador
Para facilitar a execucao dos testes com o simulador, foi desenvolvida uma interface
grafica que exibe a situacao atual do jogo e e atualizada continuamente em tempo real. O
software visualizador se comunica diretamente com o simulador, recebendo as informacoes
via socket, podendo funcionar na mesma maquina, em uma maquina remota comunicando
via socket ou ate nao ser executado.
A interface grafica para o usuario foi feita utilizando a biblioteca grafica OpenGL
[59]. A taxa de exibicao de imagens (duas imagens por segundo) e bem inferior a taxa
de simulacao (trinta simulacoes por segundo). Na figura 3.16 e mostrada uma imagem da
interface com o usuario do visualizador.
Figura 3.16: Imagem mostrada pelo visualizador
CAPITULO 3. SIMULADOR 37
3.4 Discussao
O desenvolvimento do simulador para o sistema do futebol de robos se mostrou mais
complexo do que se imaginava no inıcio do trabalho e demandou mais tempo para ser
implementado do que o esperado. Dentre os fatores que acarretaram no atraso da fi-
nalizacao, podemos citar por exemplo a deteccao e modelagem das colisoes. Exaustivos
testes utilizando diferentes paradigmas foram necessarios ate chegarmos ao modelo apre-
sentado.
Um outro problema encontrado foram as restricoes de tempo real do programa. Primei-
ramente optamos por utilizar diferentes computadores ligados via rede durante a execucao
dos programas, pois apenas um computador e incapaz de realizar todas as tarefas. Ob-
servamos entao que o mınimo de comunicacao via socket deveria ser utilizado. O excesso
de mensagens acarretava na perda de quadros ou no atraso do sistema.
Capıtulo 4
Modulo de Planejamento
Os robos da equipe POTI nao sao dotados de sensores, portanto sao incapazes de tomar
decisoes sem o auxılio do computador central. No computador, o modulo de planejamento
funciona como o cerebro dos robos. Usando a camera posicionada sobre o campo como
unico metodo de realimentacao, esse modulo tem por objetivo decidir o comportamento
de cada robo do time a cada passo.
O modulo de planejamento e informado das posicoes e orientacoes dos robos e da
posicao da bola, alem do placar e tempo do jogo, a cada iteracao do sistema. Para
cumprir a tarefa designada, esse modulo engloba dois processamentos distintos: a a tatica
do time propriamente dita e o metodo de desvio de obstaculos.
A tatica e ponto mais importante desse modulo e principal foco do trabalho. E a
tatica que ira decidir o comportamento do time durante o jogo. Ela e responsavel por
todas as decisoes, desde a formacao do time e a coordenacao entre os robos, ate o proximo
ponto de referencia de cada robo. Para obtermos uma boa resposta da tatica, e necessario
garantir o bom funcionamento do controle, da transmissao, da localizacao e, obviamente,
dos robos.
O metodo de desvio de obstaculos visa evitar que os robos colidam com outros robos e
com as paredes enquanto buscam atingir a posicao calculada pela tatica. Colisoes podem
causar muitos prejuızos para o bom comportamento do time. Quando um robo colide
com algum obstaculo, o funcionamento do controle e afetado, pois o comportamento do
robo deixa de ser o esperado. Alem do controle, durante uma colisao, prejuızos fısicos aos
robos podem ocorrer, como um robo tombar ou algum fio da placa romper, incapacitando
CAPITULO 4. MODULO DE PLANEJAMENTO 39
temporariamente o robo. A propria regra do jogo inibe contatos entre robos que nao
envolvam a disputa direta da bola. Devido a pequena dimensao do campo, ao numero de
robos e a velocidade e agilidade com que os robos se movimentam, achou-se necessario
implementar um metodo de desvio de obstaculos. Esse metodo deve ser ativado apos a
tatica e, caso haja necessidade, deve sobreescrever a referencia calculada pela tatica por
novas referencias que tentem impedir uma eventual colisao.
Referências finaisdos robôs
Postura dos robôs, Posição da bolaTempo de jogo, Placar do jogo
Referênciasdos robôs
Módulo de Decisão de Movimento
Tática obstáculosDesvio de
Figura 4.1: Diagrama do modulo
4.1 Desvio de Obstaculos
O metodo de desvio de obstaculos se divide em dois casos: desvio de parede e desvio
de robos. O desvio de paredes e o mais simples do dois e acontecera quando a referencia
do robo a ser tratado estiver muito proxima de alguma das paredes. A nova referencia
sera alterada apenas na coordenada (x ou y) que estiver mais proxima da parede.
No tratamento do desvio de robos, os obstaculos sao modelados como cırculos, com
raio igual a metade da diagonal principal do robo (4.2(a)). Alem disso, o robo controlado
sera representado apenas pela posicao de seu centro de massa. As dimensoes desprezadas
no robo controlado deverao ser acrescentadas ao obstaculo. Portanto, o novo raio do
obstaculo devera ser igual a diagonal principal do robo. Esse novo obstaculo sera chamado
de obstaculo expandido. A figura 4.2(b) exibe a configuracao de um obstaculo expandido.
O metodo de desvio de robos utiliza zonas de exclusao ao redor dos obstaculos. Se um
robo penetra em uma dessas zonas, suas referencias sao alteradas de modo que ele saia
da regiao e evite a possıvel colisao.
Para cada obstaculo determinamos duas circunferencias ao seu redor (figura 4.3): a
CAPITULO 4. MODULO DE PLANEJAMENTO 40
Obstáculo simples
Robô
r
Obstáculo extendido
Robô
r
(a) (b)
Figura 4.2: (a)Obstaculo simples, robo com dimensoes (b)Obstaculo extendido, robo
pontual
circunferencia com maior raio, chamada zona de influencia, define a regiao a partir da
qual os robos devem tomar ciencia do obstaculo; a menor circunferencia (trajetoria de
desvio) indica a trajetoria que o robo deve seguir caso esteja sob risco de colidir com o
obstaculo.
Obstáculo
Zona de Influencia
trajetoriade desvio
Figura 4.3: Configuracao do obstaculo
Inicialmente e testado se o robo se encontra dentro da zona de influencia de algum
obstaculo. Esse teste, alem de filtrar os casos e diminuir o numero de calculos do pro-
grama, evita que o metodo de desvio de obstaculos altere demasiadamente as referencias
calculadas pela tatica, comprometendo o bom comportamento do time.
Uma vez dentro da zona de influencia, verificamos se a trajetoria reta da posicao
atual do robo ate sua referencia intercepta o corpo do obstaculo expandido em algum
momento (figura 4.4). Caso nao ocorra (referencia 1), a referencia do robo permanece
inalterada, pois as possibilidades de colisao sao remotas. Se a possıvel colisao for de-
tectada (referencia 2), a referencia do robo e alterada de forma a seguir a circunferencia
trajetoria de desvio.
A nova referencia e o ponto em trajetoria de desvio que esteja a θ graus rotacio-
CAPITULO 4. MODULO DE PLANEJAMENTO 41
nado do ponto onde o robo se encontra no momento, no sentido mais proximo da referencia
original (figura 4.5(a)). O angulo θ e constante, porem como o robo esta em movimento
a nova referencia se torna dinamica. A medida que o robo se locomove a referencia de
desvio se afasta do robo de forma que a nova referencia nunca e alcancada (figura 4.5(b)).
Robô
Obstáculo
Referência 1
Referência 2
Zona de Influencia
Figura 4.4: Teste da possibilidade de colisao
Referência
Robô Obstáculo
(a) (b)
Robô
Obstáculo
Referência
de desvio
de desvioReferência
Referência
θθ
Figura 4.5: Calculo da nova trajetoria
Supondo que a tatica mantenha a mesma referencia durante varias iteracoes, a tendencia
do robo e seguir a circunferencia trajetoria de desvio ate que a reta que liga a sua
posicao atual e a referencia calculada pela trajetoria nao intercepte o obstaculo. Nesse
momento, a referencia original calculada pela tatica nao e alterada e o robo segue na
direcao desejada. A figura 4.6 ilustra a situacao descrita acima onde o robo deve sair da
CAPITULO 4. MODULO DE PLANEJAMENTO 42
posicao A e se encaminhar ate a posicao C. O robo verde se encontra parado, obstruindo
a trajetoria reta entre os dois pontos. Quando o robo entra na zona de influencia
do obstaculo, sua trajetoria e puxada para um ponto sobre a circunferencia trajetoria
de desvio, e comeca entao a seguir essa trajetoria. Ao chegar ao ponto B, a trajetoria
direta entre a posicao atual do robo e a referencia no ponto C esta desobstruıda: a partir
desse ponto, o desvio de obstaculos deixa de agir e o robo segue diretamente em direcao
a referencia.
A
B
C
Zona de Influencia
trajetoriade desvio
Figura 4.6: Exemplo de desvio de obstaculo
Caso dois obstaculos estejam muito proximos esse metodo de desvio pode causar dois
problemas: se um dos obstaculos for ignorado, a tentativa de desvio do primeiro obstaculo
pode causar a colisao com o segundo; se os dois obstaculos forem tratados, o robo pode
chegar a um ponto de indecisao (deadlock) chaveando entre o desvio de cada um dos
obstaculos. Para esse caso, a solucao encontrada foi a fusao de dois obstaculos. Caso
o robo esteja na zona de influencia de um obstaculo e exista outro obstaculo a uma
distancia menor que ∆l do primeiro, esses dois obstaculos serao tratados como um so
(figura 4.7(a)). E importante ressaltar que a fusao so ocorrera entre dois obstaculo e
se o robo estiver na zona de influencia de um deles. Esse filtro evita que tempo
computacional seja desperdicado realizando fusoes que nao serao uteis. Devemos observar
tambem que nao e necessario que o robo se encontre na zona de influencia dos dois
obstaculos para que a fusao ocorra. O centro do super obstaculo sera a media simples dos
centros dos dois obstaculos isolados e seu raio sera a metade da distancia euclidiana entre
os dois obstaculo mais o raio do obstaculo isolado (figura 4.7(b)). E importante observar
que a fusao so ocorrera quando os dois obstaculos forem robos, as paredes sempre serao
tratadas como obstaculos unicos.
CAPITULO 4. MODULO DE PLANEJAMENTO 43
xobst =xobst1 + xobst2
2
yobst =yobst1 + yobst2
2
robst = robst1 +
√(xobst1 − xobst2)2 + (yobst1 − yobst2)2
2
(a) (b)
∆l
Figura 4.7: (a)Teste da proximidade; (b)Obstaculos fundidos
A fusao de dois obstaculos e importante no momento de decisao do sentido de θ. A
figura 4.8(a) mostra um robo que deseja sair da posicao A para a posicao C. Caso nao
houvesse a fusao de obstaculos, o robo iria tomar o caminho mais curto considerando
apenas o obstaculo 1. Seguindo a trajetoria de desvio do obstaculo 1, o robo, ao
chegar ao ponto B, colidira com o obstaculo 2, ou tentara seguir a trajetoria de desvio
do obstaculo 2 e seguira nessa indecisao indefinidamente. A figura 4.8(b), mostra a
ilustracao o comportamento do mesmo robo, com os obstaculos e a referencia mantidas
em reacao ao exemplo anterior. Percebe-se que o robo segue a trajetoria de desvio
unica e evita os dois obstaculos.
B
A
C
A
C
B
(a) (b)
1
2
1
2
Figura 4.8: (a)Problema na escolha da nova referencia; (b)Solucao com a fusao de
obstaculos
CAPITULO 4. MODULO DE PLANEJAMENTO 44
Alem da fusao de dois obstaculos, foi cogitada a generalizacao da fusao para n obstaculos.
Essa ideia foi abandonada devido a dimensao do campo e a dimensao dos objetos apos a
fusao. Com a adocao da fusao para mais de dois objetos, nao seriam raros os casos em
que o super objeto e as paredes bloqueariam todas as trajetorias possıveis do robo ate a
referencia.
Capıtulo 5
Tatica
A tatica e o principal foco deste trabalho. Ela dita o comportamento do time e,
consequentemente, dos jogadores durante o jogo. Cada robo da equipe POTI, por nao
possuir sensores, depende de comandos externos para realizar qualquer tarefa. Nesse
contexto, o “raciocınio” dos robos e todo realizado no computador controlador atraves da
tatica. Entao podemos afirmar que, nesse caso, cada robo nao e autonomo por si so, o
sistema como um todo e autonomo.
A tatica esta organizada em camadas; Existem quatro nıveis de decisao: o estilo de
jogo esta no nıvel mais alto, os papeis de cada robo imediatamente abaixo, no terceiro
nıvel estao os estados e no nıvel mais baixo os calculos das posicoes desejadas (referencias)
de cada robo. A figura 5.1 mostra a hierarquia das camadas da tatica. No nıvel 1, com
base nas informacoes atuais do jogo, tais como a postura dos jogadores e o tempo e placar
de jogo, e definido qual estilo de jogo o time ira adotar no passo seguinte. O estilo de jogo
define a postura do time como um todo. O nıvel 2 tambem usa as informacoes de entrada
para delegar a cada robo um dos tres papeis possıveis. Na terceira camada o processo e
dividido e cada robo e tratado individualmente. A partir dos dados do jogo, do estilo de
jogo do time e do papel imposto ao jogador sera decidido qual a melhor acao a se tomar
no momento (estado do jogador). Finalmente, no quarto nıvel e calculada a postura que
cada robo deve buscar para a proxima iteracao. As referencias dos tres robos sao passadas
para o desvio de obstaculos visando eventuais correcoes.
CAPITULO 5. TATICA 46
Postura dos Robôs,Posição da bolaTempo de jogo, Placar do jogo
Posição futura da bola
DefensorEstados do
do DefensorReferência
Defensor
Estados
AtacanteEstados do
CuringaEstados do
Referências
do AtacanteReferência
do CuringaReferência
Papéis
Referências dos Robôs
Estilo
Avançado Normal Recuado
Atacante Curinga
Nıvel 3
Nıvel 4
Nıvel 1
Nıvel 2
Figura 5.1: Hierarquia da tatica
CAPITULO 5. TATICA 47
5.1 Papeis
Foram definidos tres papeis para a equipe POTI de futebol de robos: Defensor,
Atacante e Curinga, tendo cada um dos papeis um certo numero de estados associa-
dos. Os estados nao sao os mesmos para todos os papeis, porem existem alguns estados
comuns a mais de um papel. Apesar de existirem tres papeis e tres robos em cada time,
esses papeis nao sao fixos: no decorrer do jogo a tatica ira distribuı-los e indicar o papel
mais adequado para cada robo na situacao presente. Isso significa, por exemplo, que um
robo que comece o jogo como defensor, durante o jogo podera assumir a posicao de
atacante e vice versa. Este metodo de troca de papeis e chamado de alocacao dinamica
de papeis [21] e tem por objetivo determinar a melhor configuracao de papeis de forma que
o time aumente sua eficiencia. A seguir, na secao 5.1.1, veremos como se da a distribuicao
dos papeis de acordo com a situacao do jogo e a posicao dos robos e da bola em campo.
Nas secoes 5.1.2, 5.1.3 e 5.1.4 sera mostrado o comportamento individual de cada papel
(defensor, atacante e curinga, respectivamente) frente a diferentes situacoes.
5.1.1 Alocacao Dinanica de Papeis
Tres fatores sao levados em conta no metodo de alocacao dinamica de papeis: a posicao
dos robos, a posicao da bola e o sentido de deslocamento da bola. A primeira preocupacao
e saber se a bola se encontra no meio campo ofensivo ou no meio campo defensivo. Se
a bola estiver no meio campo ofensivo, e suposto que o time nao corre perigo imediato
de sofrer um gol: portanto ignoramos o sentido de movimentacao da bola e a decisao da
alocacao dos papeis sera dada exclusivamente atraves da posicao relativa entre os robos
e a bola. Caso a bola se encontre no meio campo defensivo, supoe-se que o time corre
algum risco de sofrer gol: verificamos portanto o sentido de movimento da bola. Se a bola
estiver se movimentando em direcao ao gol adversario, ha um risco moderado de sofrer
gols, por outro lado, se a bola estiver se movimentando em direcao ao gol defendido, ha
um risco eminente do time sofrer um gol. A figura 5.2 mostra um diagrama do risco do
time sofrer gols. A seguir veremos qual o procedimento de decisao em cada um dos casos
citados acima.
CAPITULO 5. TATICA 48
Bola na direçãodo gol adversário?
Bola no campode ataque?
RiscoRiscoMínimo
RiscoMáximo
RiscoModerado
sim
não
sim
não
Figura 5.2: Risco de gol
Bola no Ataque
A situacao em que a bola esta no campo de ataque e o momento em que o time
possui menor risco de sofrer gols. Portanto, nesse caso, o papel prioritario na escolha e o
atacante. Como regra geral, o robo mais proximo da bola sera considerado o atacante.
A excecao ocorre quando o robo mais proximo da bola estiver posicionado a frente da
bola. Nesse caso, e mais proveitoso indicar um robo mais distante, porem posicionado
atras da bola para ser o atacante. Isso porque o atacante nao teria que contornar a bola
para se posicionar para o chute, tornando essa acao mais rapida mesmo que o robo esteja
mais distante. Essa decisao tambem reduz os riscos do robo chutar a bola em direcao ao
campo de defesa acidentalmente. Se todos os robos estiverem a frente da bola, entao o
mais proximo dela sera o atacante.
A segunda prioridade e a escolha do defensor. A regra e que o robo mais proximo do
gol defendido, que nao seja o atacante, sera denominado defensor. O robo que ainda
nao tiver o papel definido sera o curinga.
Na figura 5.3(a) a bola esta posicionada no ataque e a frente de todos os robos do
time. Nesse caso, o robo posicionado mais proximo da bola sera nomeado o atacante,
o robo mais proximo ao gol sera o defensor e o robo restante sera o curinga. Ja na
figura 5.3(b) o robo mais proximo a bola esta a sua frente, portanto, o segundo robo mais
proximo da bola sera considerado o atacante, novamente o robo mais proximo ao gol
sera o defensor e o robo que esta mais proximo da bola, nesse caso, sera o curinga.
Na figura 5.3(c) vemos que dois robos se encontram a frente da bola, logo, independente
da distancia que os outros robos estejam da bola, o que se encontra atras da bola sera
CAPITULO 5. TATICA 49
o atacante. Notamos entao que o defensor nao sera mais o robo mais proximo ao gol,
pois ele ja tem seu papel determinado. O segundo robo robo mais proximo ao gol assume
a posicao de defensor e o robo restante sera o curinga. A figura 5.3(d) ilustra uma
situacao em que todos os robos se encontram a frente da bola: nesse caso simplesmente
adotamos a regra geral. O robo mais proximo da bola sera o atacante, o mais proximo
ao gol, excecao feita ao ja alocado, sera o defensor e o terceiro robo sera o curinga.
(a) (b)
(c) (d)
DefensorDefensor
Defensor Defensor
Atacante
Curinga
Curinga
Atacante
Curinga Curinga
AtacanteAtacante
Figura 5.3: Configuracao dos papeis com a bola no ataque
Bola na defesa em direcao ao gol adversario
O caso da bola estar na defesa, porem se movimentando em direcao ao ataque, remete
a um risco moderado de sofrer gols. Nessa situacao, o comportamento do metodo de
alocacao dinamica de papeis procede de forma similar ao caso de risco mınimo de gol.
A excecao acontece se houver menos de dois jogadores posicionados no campo de defesa.
Nesse caso, o robo que esta posicionado no campo de defesa, se houver, ou o robo mais
CAPITULO 5. TATICA 50
proximo ao gol, sera impreterivelmente o defensor. A escolha dos papeis dos outros
robos percorre de forma identica ao caso da bola no campo de ataque.
Na figura 5.4(a) a bola esta posicionada a frente de todos os jogadores, logo todos eles
estao atras da linha de meio campo. O robo mais proximo da bola sera entao o atacante,
o robo mais proximo do gol que nao seja o atacante sera o defensor e o robo restante
sera o curinga. Na figura 5.4(b) a bola esta a frente de dois jogadores, portanto existem
dois jogadores no campo de defesa e a distribuicao de papeis procede normalmente.
Na figura 5.4(c) ainda temos dois jogadores no campo de defesa; portanto, o mais
proximo a bola que esta atras dela sera denominado atacante, o mais proximo ao gol
sera o defensor e o robo restante sera o curinga. Na figura 5.4(d) apenas um robo se
encontra no campo defensivo; portanto esse robo tem prioridade e sera obrigatoriamente
o defensor. O proximo robo mais perto da bola sera o atacante e o terceiro robo o
curinga.
Na figura 5.4(e) e (f), a bola se encontra atras de todos os robos. O unico detalhe que
diferencia as duas situacoes e que na figura 5.4(e) dois robo estao no campo defensivo,
enquanto que na figura 5.4(f) apenas um robo esta. Portanto, no primeiro caso, a distri-
buicao dos papeis agira como no caso de menor risco: o jogador mais proximo da bola
sera o atacante. Ja no segundo caso, o robo mais proximo ao gol e, no caso, da bola sera
o defensor. Casos em que todos os robos estejam posicionado no meio campo ofensivo
serao tratados da mesma forma que casos em que so exista um robo no campo defensivo.
Bola na Defesa em direcao ao gol defendido
Essa configuracao e considerada de risco maximo. Nesse caso, a prioridade de escolha
de papel e sempre do defensor. O robo posicionado mais proximo ao gol defendido sera
o defensor. O robo mais proximo da bola que nao seja o defensor sera o atacante e
o outro robo sera o curinga. Esse metodo de decisao visa priorizar a defesa, tentando
minimizar os riscos de sofrer gols.
Na figura 5.5(a) o robo mais proximo da bola tambem e o robo mais proximo do gol.
Na situacao de risco maximo, o defensor tem prioridade, portanto esse sera o papel do
robo mais proximo da bola. Na figura 5.5(b) resolvemos facilmente o problema de alocacao
de papeis, pois o robo mais proximo ao gol sera o defensor e o robo mais proximo a bola
CAPITULO 5. TATICA 51
(e) (f)
(c) (d)
(a) (b)
Defensor
Defensor
Defensor
Defensor
Defensor
Defensor
Atacante
Curinga Curinga
Atacante
Curinga
Atacante
Atacante
Curinga
Atacante
Curinga
Atacante
Curinga
Figura 5.4: Configuracao dos papeis com a bola no campo de defesa em direcao ao gol
adversario
CAPITULO 5. TATICA 52
sera o atacante.
A figura 5.5(c) ilustra um caso em que o robo mais proximo a bola esta a frente dela,
porem o robo que esta atras da bola tambem e o mais proximo ao gol. Nessa situacao o
jogador mais proximo ao gol sera o defensor e o mais proximo a bola sera o atacante,
mesmo estando a frente da bola. Na figura 5.5(d) o robo mais proximo ao gol sera o
defensor; o mais proximo a bola esta a frente da mesma, portanto o segundo mais
proximo a bola sera o atacante, e o mais proximo a bola sera o defensor.
(a) (b)
(c) (d)
Defensor Defensor
DefensorDefensor
Atacante
Curinga Curinga
Atacante
Curinga
Atacante
AtacanteCuringa
Figura 5.5: Configuracao dos papeis com a bola no campo de defesa em direcao ao gol
defendido
5.1.2 defensor
O defensor tem dois comportamentos basicos possıveis denominados goleiro, e za-
gueiro. O primeiro, como o nome sugere, age como um goleiro, com area de atuacao
limitada em frente ao gol. Ja zagueiro e usado em situacoes especıficas do jogo e tem uma
CAPITULO 5. TATICA 53
funcao defensiva mais a frente da meta defendida.
Goleiro
O goleiro age de tres formas distintas: quando a bola esta na direcao do gol por
ele defendido, quando a bola esta na direcao do gol adversario e quando a bola esta
muito proxima ao gol. Se o movimento da bola esta no sentido do gol, a preocupacao do
defensor e defender a bola. Para tanto definimos uma trajetoria reta paralela a linha
do gol com uma distancia d da mesma, como mostra a figura 5.6(a). A amplitude da
trajetoria e limitada pelo tamanho do gol, o robo so deve passar uma vez sua propria
dimensao da linha do gol, essa restricao e definida por ser desnecessario tentar defender a
bola que nao se encaminhe diretamente ao gol. A posicao exata do defensor e calculada
a partir da extrapolacao do movimento da bola ate a intercecao com a trajetoria do
defensor.
Caso a distancia da bola ate a linha de fundo do campo seja menor que d e a bola
esteja acima ou abaixo das traves, o goleiro deve se posicionar de forma a cobrir o angulo
para evitar o gol, essa configuracao pode ser vista na figura 5.6(b).
O terceiro caso de comportamento do goleiro acontece quando a bola esta se movi-
mentando na direcao do gol adversario. Nesse caso nao existe perigo eminente de gol e
o goleiro se limita a acompanhar a posicao da bola na componente y, mantendo a com-
ponente x constante. A movimentacao do defensor se limita as dimensoes do gol para
evitar que o gol fique desprotegido. A figura 5.6(c) ilustra esse caso.
d
d
d
(a) (b) (c)
yx
yx
yx
Figura 5.6: Comportamento do defensor (a)bola indo em direcao ao gol (b)bola muito
proxima ao gol (c)bola se afastando do gol
CAPITULO 5. TATICA 54
Zagueiro
O zagueiro realiza uma trajetoria semi-circular na intermediaria do campo defensivo.
Essa configuracao de goleiro pode ser usada quando o time estiver no ataque, necessitando
a vitoria. Nesse caso o zagueiro teria a incumbencia de interromper os possıveis ataques
da equipe adversaria o mais cedo possıvel recolocando a propria equipe novamente no
ataque. Essa abordagem resulta em um comportamento de risco que so deve ser usada
em situacoes extremas. A outra possibilidade e adotar o zagueiro em conjunto com um
defensor convencional, com o intuito de defender com mais veemencia. A figura 5.7
ilustra o comportamento do zagueiro, ele segue o semi-cırculo com centro no fundo do gol
(xcentro, ycentro) e raio R e acompanha a posicao da bola. Para calcular a referencia de
posicao do defensor nesse caso, inicialmente devemos calcular o angulo entre a bola e o
fundo do centro do gol esquerdo (γ):
γ = tan−1(ybola − ycentro
xbola − xcentro
)
A referencia da posicao do defensor e a posicao sobre a circunferencia de raio R
correspondente ao angulo γ.
xgol = xcentro + cos(γ)
ygol = ycentro + sin(γ)
x
y
(xcentro, ycentro)
(xbola, ybola)
(xbola, ybola)
R
Figura 5.7: Comportamento do zagueiro
CAPITULO 5. TATICA 55
5.1.3 Atacante
O atacante tambem possui dois comportamentos basicos distintos: o atacante em si
e o atacante recuado. O atacante tem como funcao principal marcar os gols do time.
Em grande parte dos casos o atacante e que deve ter a incumbencia de interagir com a
bola. Para tanto foram determinados dez estados que o atacante deve alternar a fim de
se comportar da melhor maneira possıvel perante a situacao da partida. Esses estados
sao: finalizar, alinhar, chutar, conduzir, alinhar para toque, tocar, bloquear, pressionar,
cobrir e contornar.
Para facilitar os testes na escolha do estado do atacante, o campo foi dividido em tres
zonas denominadas Z1, Z2 e Z3 como mostra a figura 5.8. A primeira zona (Z1) inicia
no gol defendido e se extende ate a metade do campo defensivo. A segunda zona (Z2)
continua de onde a Z1 acabou e segue ate metade do campo ofensivo, a terceira zona (Z3)
preenche a regiao do campo que ainda nao foi ocupada.
Z2 Z3Z1
Figura 5.8: Zonas de acao do atacante
Na figura 5.9 e mostrado um diagrama de funcionamento com a interligacao de todos
os estados do atacante. O comportamento de cada um dos estados individualmente sera
detalhado mais a frente. A posse da bola e assumida em duas situacoes: a primeira quando
o atacante esta mais proximo da bola que qualquer outro jogador, a segunda quando a
menor distancia de um jogador adversario para a bola seja maior que uma distancia ε.
CAPITULO 5. TATICA 56
Bola em Z2?
Possui possede bola?
Bola na alturado gol?
Alinhado?
Bola em Z3?
Alinhartocar
Tocar
Finalizar
Bola no sentidodo ataque?
Robô atrásda bola? Bloquear
Contornar
Alinhado?
Robô atrásda bola?
Bola à frentedo meio−campo?
Robô atrásda bola?
Bola em Z1?
Bola no sentidodo ataque?
Robô atrásda bola?
Alinhar
Conduzir
Chutar
Pressionar
Cobrir
Contornar
Cobrir
Bloquear
Pressionar
Contornar
sim
não
sim
sim
não não
sim
sim
não
sim
não
sim
sim
não
não não
não
sim
sim
não
sim
não
não
sim
não
sim
Figura 5.9: Diagrama de funcionamento do atacante
CAPITULO 5. TATICA 57
Estado finalizar
O estado finalizar e acionado quando a bola se encontra na Z3 e esta entre o ymax e o
ymin do gol. A figura 5.10(a) destaca a zona mencionada. Quando a bola esta localizada
nessa regiao especıfica consideramos que existe uma grande chance de marcar um gol; o
atacante entao e enviado diretamente para a posicao da bola. O alinhamento e descartado
devido a proximidade do gol, o que diminui a chance de errar o gol.
Estado alinhar para toque
Os estados alinhar para toque e tocar podem causar certa confusao com o nome;
na realidade, ao inves de tocar, o atacante realiza um chute cruzado. Na secao 5.1.4
veremos que nessas situacoes o curinga tende a se posicionar na regiao determinada
pela finalizacao: por essa razao, existe uma grande chance do curinga assumir o papel
de atacante e tentar finalizar para o golo que fez com que esses estados fossem assim
denominados.
No estado alinhar para toque, o robo tenta se posicionar de forma a realizar o chute
cruzado. Para tanto, o atacante busca uma posicao na reta formada pelo centro da bola
e o canto oposto do gol a uma distancia de alinhamento da. A figura 5.10(b) ilustra o
alinhamento: o robo esta com a postura A e busca a postura B.
Estado tocar
Uma vez alinhado, o robo simplesmente se movimenta em direcao a bola tentando
fazer o gol ou permitir que um outro jogador o faca. A figura 5.10(c) exemplifica essa
situacao.
Estado alinhar
Se a bola se encontrar na Z2 e estiver a frente do atacante, sera assumido o estado
alinhar. Assim como no alinhar toque, o estado alinhar tem por objetivo posicionar o robo
de forma a permitir o chute do atacante. Existem dois casos distintos para o alinhamento:
o alinhamento direto e o alinhamento com tabela. O primeiro funciona como mostrado no
estado alinhar toque, com a diferenca que o ponto de alinhamento sera o centro do gol, ao
inves do canto oposto. O segundo caso deve ser adotado caso a bola esteja muito proxima
CAPITULO 5. TATICA 58
A
B(a) (b) (c)
yx
da
yx
yx
Figura 5.10: Comportamento do atacante (a)Estado finalizar (b)Estado alinhar para
toque (c)Estado tocar
de uma das paredes. O alinhamento deve ser calculado de forma que apos o chute a bola
colida com a parede e siga em direcao ao gol. Esse tipo de alinhamento e necessario pois
nao haveria espaco util para o robo se posicionar para um alinhamento direto.
A figura 5.11 mostra o calculo da referencia do robo para o alinhamento direto. O
ponto (xgol, ygol) representa o centro do gol adversario, (xb, yb) a posicao da bola e β o
angulo formado entre a posicao da bola e o centro do gol. O ponto desejado para o
alinhamento (xalin, yalin) e a projecao da distancia de alinhamento da atraves da reta a
partir da posicao da bola. O ponto desejado sera entao:
xaling = xb + da · cos(β)
yaling = yb + da · sin(β)
Ja a figura 5.12 ilustra o metodo de alinhamento com o uso da tabela. O ponto de
destino passa a ser o centro do gol do campo rebatido sobre o eixo coordenado x. A
explicacao e simples: sabendo-se que o angulo de incidencia da bola na parede e igual
ao angulo de saıda, podemos ver que, por semelhanca de triangulos, a bola tendera a se
movimentar para o centro do gol.
Um robo nao e obrigado a estar posicionado exatamente sobre o ponto calculado para
que consideremos que esteja alinhado com a bola e o gol. O ponto calculado seria o
alinhamento ideal, porem devido a dinamicidade do jogo e as proprias imperfeicoes do
controle e do ruıdo da imagem captada, um metodo diferente e usado para testar se um
robo esta ou nao alinhado para o chute. Esse metodo consiste em definir uma regiao
em torno do ponto de alinhamento ideal na qual o robo seria considerado alinhado. Tal
CAPITULO 5. TATICA 59
da
(xgol, ygol)
xalin(xb, yb)
β
yalin
β
Figura 5.11: Alinhamento direto
da
β
ββ
Figura 5.12: Alinhamento com tabela
regiao foi denominada regiao de alinhamento. A figura 5.13 ilustra o calculo da regiao
de alinhamento. Duas retas definidas pelas extremidades do gol e pela bola formam os
angulos β1 e β2. O robo tem de estar posicionado no setor de raio Dalin e angulos θb + β1
e θb − β2, onde θb e o angulo entre a bola e o centro do gol e Dalin e a distancia aceitavel
para o alinhamento. Nota-se que essa distancia e maior que a definida pelo calculo do
estado alinhar.
Estado chutar
Uma vez alinhado, se o robo estiver na Z2, a frente do meio campo, o atacante passara
para o estado chutar. Como o robo esta a uma certa distancia do gol, e necessario que
ele atinja a bola com certa velocidade para que a bola alcance o gol. Nesse caso, se a
referencia enviada ao controle fosse a posicao da bola, o robo tenderia a chegar ate a bola
com velocidade mınima, pois esse seria seu destino. O robo entao e enviado para uma
referencia a frente da bola, na reta determinada pela posicao da bola e o centro do gol.
A figura 5.14(a) ilustra esse comportamento, onde dch e a distancia a frente da bola que
a referencia deve ser calculada.
CAPITULO 5. TATICA 60
Região de Alinhamento
Ponto de Alinhamento
Dalin
β2
β1
θb
Figura 5.13: Teste de alinhamento
Estado conduzir
Caso o robo esteja alinhado a bola, porem atras da linha do meio campo, por existirem
poucas chances de fazer um gol com um chute direto, o atacante devera conduzir a bola.
A conducao tem por objetivo posicionar a bola para um melhor aproveitamento do proprio
robo ou de um companheiro de equipe. Durante a conducao o robo sera enviado para
uma posicao um pouco a frente da bola, como mostra a figura 5.14(b).
(a) (b)
dch
Figura 5.14: Comportamento do atacante (a)Estado chutar (b)Estado conduzir
Estado pressionar
O estado pressionar consiste na mesma acao que o estado finalizar: a referencia e a
propria posicao da bola. Esse estado e adotado em duas situacoes: a primeira acontece
CAPITULO 5. TATICA 61
quando o atacante esta na Z1 e a bola esta a sua frente e a segunda ocorre quando o
robo nao possui a posse da bola, porem ela se movimenta em direcao ao gol adversario.
No primeiro caso, ilustrado na situacao 1 da figura 5.15(a), o intuito do robo e eliminar o
perigo eminente de gol. A situacao poderia ser resolvida tambem com os estados chutar
ou conduzir; porem, atraves da experiencia, percebeu-se que nao e recomendavel imprimir
muita velocidade a bola na regiao proxima ao proprio gol sob pena da bola rebater em
algum outro robo e entrar na propria meta.
A situacao 2 da figura 5.15(a) mostra o caso em que o robo nao possui a posse da
bola, porem a mesma se movimenta em direcao ao gol adversario. Nesse caso o atacante
tenta aproveitar a situacao e criar um ataque. Apesar do jogador adversario ter a posse
da bola, ou ele nao a tem sob controle, ou ele se encaminha na direcao do proprio gol.
Estado bloquear
O estado bloquear e acionado quando o atacante nao possui a posse da bola e a mesma
se movimenta em direcao ao gol defendido. Nesse caso assumimos que o adversario tem
o controle da bola ou esta tentando alcanca-la. O estado bloquear prega que, antes do
atacante tentar uma acao ofensiva, deve interromper o avanco adversario. Para tanto,
no estado bloquear o robo deve manter a posicao na coordenada x e se direcionar para a
projecao da coordenada y da bola como mostra a figura 5.15(b).
Adversário
(b)(a)
Adversário
1
2
Figura 5.15: Comportamento do atacante (a)Estado pressionar (b)Estado bloquear
CAPITULO 5. TATICA 62
Estado contornar
O estado contornar e chamado quando o atacante se encontra em Z2 e a bola esta
atras dele. Nessa situacao, antes de tentar alinhar com a bola, e mais seguro que o robo
tente contorna-la, para evitar que movimente nao intencionalmente a bola na direcao do
proprio gol. Durante essa acao, o robo deve tentar evitar o contato com a bola: para isso
levamos em conta a posicao e o sentido da velocidade da bola. A figura 5.16(a) ilustra
um caso em que o robo tenta contornar a bola.
Estado cobrir
No estado cobrir, a bola deve estar posicionada atras do atacante, em Z1, acima ou
abaixo do gol. O objetivo do robo e se posicionar entre a bola e o centro do gol, a uma
distancia ∆ da bola, de modo a tentar impedir um eventual chute de um jogador adversario
5.16(b). Uma vez posicionado, o robo deve se encontrar atras da bola e seu estado sera
alterado para pressionar. Esse estado, alem de tentar evitar um chute adversario, garante
que o robo nao cometa um gol contra ao tentar se posicionar.
(a) (b)
∆
Figura 5.16: Comportamento do atacante (a)Estado contornar (b)Estado cobrir
Atacante recuado
O atacante recuado realiza uma funcao similar ao zagueiro: ele percorre uma trajetoria
semi-circular buscando interceptar a bola caso essa esteja indo na direcao do gol defendido.
Porem o raio dessa trajetoria e maior no atacante recuado que no zagueiro. O atacante
recuado e usado em situacoes em que o time adota o estilo recuado: caso a bola esteja
no campo de ataque, adotamos o atacante recuado para tentar impedir que os ataques
CAPITULO 5. TATICA 63
acontecam. Dessa forma o time tenta minimizar as chances de sofrer gols. No caso da
bola ja te-lo ultrapassado, o atacante recuado assume a posicao de espera. Ja se a bola
estiver a frente do jogador com relacao ao gol adversario, o atacante recuado assume o
papel de atacante realizando as acoes ja citadas.
5.1.4 Curinga
Como ja pode ser visto no decorrer do capıtulo, o curinga e o papel que possui menor
prioridade no momento da alocacao. Essa caracterıstica porem nao diminui a importancia
desse jogador. A razao que leva o curinga a ter menor prioridade e que se ele se encontra
em uma posicao favoravel, seja para atacar, seja para defender. Ele pode portanto vir
aassumir o papel do atacante ou do defensor. Podemos afirmar entao que a funcao
do curinga na tatica e se posicionar de forma a auxiliar o desempenho da equipe. O
curinga pode assumir cinco estados: contornar, posicao de espera, defender, bloquear e
atacar. A figura 5.17 mostra como e decidido qual estado o curinga deve adotar.
Bola à frentedo robô?
Bola em Z1? Contornar
Bola no campodefensivo?
Defender
Bola em direçãoao ataque?
Bloquear
Atacar
Bola em Z1?
de EsperaPosição
de EsperaPosição
nãonão
simsim
não
não
sim
simsim
não
Figura 5.17: Diagrama de funcionamento do curinga
Tres dos estados do curinga, contornar, pressionar e bloquear ja foram vistos e fun-
cionam da mesma forma que com o atacante. No estado defender o curinga tem com-
portamento identico ao zagueiro: a divisao so e feita por questoes de organizacao do
CAPITULO 5. TATICA 64
trabalho.
O estado posicao de espera e ativado sempre que a bola estiver em Z1 e o curinga
estiver a frente dela, ou quando o adversario tiver a posse da bola e o curinga tambem
estiver a frente da bola. Nesses caso, e recomendado que o curinga se posicione de modo
a nao congestionar a regiao do gol defendido para evitar eventuais gols contra alem de
proporcionar uma melhor colocacao para um possıvel contra ataque. A posicao de espera
em si e sobre o meio de campo com a coordenada y atual do robo, a menos que esteja
a uma distancia menor que ∆ da coordenada y da bola. Essa precaucao e tomada para
evitar que o atacante bloqueie a bola caso ela se dirija ao ataque.
No estado atacar, ativado quando a bola se encontra no campo de ataque e se mo-
vimenta em direcao ao gol adversario, o comportamento do curinga se divide em duas
situacoes: coordenada y da bola entre a trave superior e inferior do gol e bola nos lados.
No primeiro caso, ilustrado na figura 5.18(a), o curinga tende a se posicionar atras do
atacante a uma distancia δ1 e acima ou abaixo a uma distancia δ2. A decisao do posicio-
namento na coordenada y varia de acordo com a posicao do atacante: caso ele esteja na
metade superior do campo o curinga deve ficar abaixo do atacante e vice versa.
No caso da bola estar em um dos flancos do campo, o curinga deve se posicionar a
uma distancia δ3 atras da bola e no centro do gol como mostra a figura 5.18(b). Esse
posicionamento tem por objetivo aproveitar um eventual passe do atacante visando o
gol.
(a) (b)
δ1Curinga
Atacante
δ2 δ3
Figura 5.18: Comportamento do curinga, estado atacar
CAPITULO 5. TATICA 65
5.2 Estilos de jogo
Foram definidos tres estilos de jogo para a equipe POTI: normal, avancado e recuado.
Cada estilo possui caracterısticas diferentes e afetam diretamente o comportamento dos
papeis. As secoes 5.1.2, 5.1.3 e 5.1.4 mostram o funcionamento dos papeis quando o estilo
normal e adotado.
Por princıpio, o estilo assumido no inıcio dos jogos e o normal. A decisao de mudanca
do estilo de jogo a ser adotado e tomada em duas situacoes: se o time estiver perdendo por
uma grande diferenca de gols e na metade do segundo tempo, com 2m30s para o termino
da partida. No primeiro caso foi decidido que se a diferenca de gols for igual ou maior que
cinco em favor do time adversario o time deve adotar o estilo recuado. Essa decisao tenta
preservar o time de uma derrota por uma diferenca muito grande de gols, alem de alterar
um estilo de jogo que nao funcionou contra um certo adversario. A mudanca de estilo na
metade do segundo tempo pode ocorrer de duas formas: se o time estiver perdendo por
qualquer placar o estilo avancado e adotado; se o time estiver ganhando por qualquer
placar o estilo recuado e o escolhido; em caso de igualdade no placar e mantido o estilo
normal. A figura 5.19 ilustra a arvore de decisao do estilo de jogo da equipe.
Faltam maisque 2m 30s?
ResultadoPerdendoEmpatando
Ganhando
sim
não
AvancadoNormal
Recuado
Figura 5.19: Decisao do estilo de jogo
5.2.1 Estilo Avancado
Quando time assume o estilo avancado o atacante se comporta de forma identica ao
estilo normal mostrado na secao 5.1.3, porem quando a bola esta na defesa, a posicao
de espera do atacante e no meio do campo. Quando a bola esta no ataque, o curinga
tambem funciona da mesma forma que a descrita na secao 5.1.4. Caso a bola esteja no
CAPITULO 5. TATICA 66
sentido ofensivo ele entra no estado atacar, caso contrario assume o estado bloquear. Se
a bola estiver no campo de defesa e acionado um estado de posicao de espera semelhante
ao do atacante no estilo normal. O defensor funciona normalmente caso a bola esteja
no campo de defesa e funciona como zagueiro se a bola estiver posicionada no campo de
ataque.
5.2.2 Estilo Recuado
No estilo recuado, o defensor funciona da mesma foram que no estilo normal expli-
cado na secao 5.1.2. O curinga tambem tem comportamento semelhante ao mostrado na
secao 5.1.4, porem quando a bola esta no campo de ataque ele assume o estado defender.
O atacante so assume sua funcoes ofensivas se a bola estiver a frente do robo e se movi-
mentando para o campo de ataque. Se a bola estiver a frente do robo e se movimentando
para o campo de defesa e assumida o estado de atacante recuado, e caso a bola esteja
atras do robo assume-se a posicao de espera.
Capıtulo 6
Resultados
A apresentacao dos resultados sera dividida algumas secoes: serao apresentados sepa-
radamente resultados do desvio de obstaculo (secao 6.1), comportamento individual de
alguns estados (secao 6.2), questoes sobre a alocacao dinamica dos papeis (secao 6.3),
alem de resultados de jogos contra taticas diferentes (secao 6.4).
Para demonstracao dos resultados de desvio de obstaculos e do comportamento dos
estados, serao apresentados configuracoes iniciais dos robos e da bola. Com base nos
resultados obtidos serao exibidos graficos provenientes do visualizador que demonstram o
comportamento dos robos diante do problema proposto. As configuracoes iniciais foram
arbitradas a fim de exaltar um certo comportamento. Com esse mesmo objetivo manteve-
se o time adversario imovel a nao ser em ocasioes em essa movimentacao apresentou-se
necessaria.
Na alocacao dinamica de papeis tambem apresentaremos configuracoes iniciais pre-
definidas com seus respectivos papeis alocados. Induziremos um certo comportamento e
sera apresentada a configuracao dos papeis apos os eventos.
Na secao 6.4 serao mostrados os princıpios de funcionamento das taticas sparring e os
resultados dos jogos realizados contra cada uma.
6.1 Desvio de obstaculos
Nesta secao sera mostrado o funcionamento do metodo de desvio de obstaculos. Para
tanto foram criadas situacoes em que um robo deve se deslocar de um ponto inicial para
CAPITULO 6. RESULTADOS 68
uma referencia fixa. Entre esses dois ponto existirao um ou mais obstaculos (robos) fixos
aos quais o robo deve evitar.
6.1.1 Obstaculo simples
No primeiro cenario, um robo deve sair da posicao (−0.3, 0.0, 0.0) (x, y, θ) e chegar
a posicao (0.4, 0.0, 0.0). Um robo esta estacionado na posicao (0.0, 0.0, 0.0) impedindo o
deslocamento reto do robo ate seu destino. A figura 6.1(a) exibe o cenario inicial. Na
figura 6.1(b) o robo ja entrou na zona de influencia do obstaculo e inicia o desvio da
sua trajetoria. Na figura 6.1(c) o robo segue a trajetoria de desvio, ate que na figura
6.1(d) ele chega a um ponto em que sua trajetoria reta ate sua referencia nao intercepta
mais o corpo do obstaculo. A partir desse ponto o desvio de obstaculos nao mais interfere
na referencia original do robo (0.4, 0.0, 0.0) como mostram as figuras 6.1(e) e 6.1(f).
No segundo cenario (figura 6.2(a)) o robo deve se deslocar da mesma posicao (−0.3, 0.0, 0.0)
a posicao (0.4, 0.0, 0.0) que no cenario anterior. Porem nesse caso existem dois obstaculos
impedindo a passagem de robo ate seu destino. Os obstaculos, no entanto, nao estao
proximos o suficiente para que seja realizada uma fusao de obstaculos, portanto robo
deve tratar cada obstaculo individualmente. O robo inicialmente trata o obstaculo mais
proximo,q no caso o robo amarelo-rosa (figura 6.2(b)). Na figura 6.2(c) o robo ainda segue
a trajetoria de desvio do primeiro robo, porem a nova referencia entra em conflito
com o segundo obstaculo (robo amarelo-verde) e entra na sua trajetoria de desvio.
A partir da figura 6.2(d) o robo e influenciado apenas pelo segundo obstaculo. Na figura
6.2(e) o robo pode seguir em linha reta ate sua referencia (figura 6.2(f)).
6.1.2 Obstaculos fundidos
No cenario tres (figura 6.3(a)) ainda mantemos a mesma posicao inicial e a mesma
referencia que nos cenarios anteriores. Entretanto, nesse caso a distancia entre os dois
obstaculos pequena o suficiente para gerar uma fusao de obstaculos. Podemos perceber
atraves das figuras 6.3(b), 6.3(c) e 6.3(d), pode-se observar que o raio da trajetoria de
desvio do obstaculo e significativamente maior que nos caso anteriores. Na figura 6.3(e)
a trajetoria reta do robo ate sua referencia nao e mais obstruıda pelos obstaculos e ele
chega ao seu destino (figura 6.3(f)).
CAPITULO 6. RESULTADOS 69
(a) (b)
(c) (d)
(e) (f)
Figura 6.1: Desvio de um unico obstaculo
CAPITULO 6. RESULTADOS 70
(a) (b)
(c) (d)
(e) (f)
Figura 6.2: Desvio de dois obstaculos
CAPITULO 6. RESULTADOS 71
(a) (b)
(c) (d)
(e) (f)
Figura 6.3: Desvio de dois obstaculos fundidos
CAPITULO 6. RESULTADOS 72
6.2 Comportamento dos estados
Nesta secao sera exibido o comportamento dos robos quando submetidos a alguns
cenarios especıficos. Estes cenarios sao artificiais e induzem o robo a assumir um determi-
nado estado. Os robos nao participantes da acao, sejam eles adversarios ou companheiros
de equipe, permanecem estaticos durante a acao. Sera ilustrado o comportamento de tres
estado: alinhar, chutar e defender.
6.2.1 Estado alinhar
Nesse cenario, a bola se encontra estatica posicionada no ponto (0.5, 0.2) e o robo
esta na posicao (0.0, 0.0, pi
2) (figura 6.4(a)), os demais robos estao estaticos. Este exemplo
simples mostra o comportamento do robo quando o mesmo se encontra no estado alinhar.
Podemos observar nas figuras 6.4(a), 6.4(b), 6.4(c) e 6.4(d) que o robo sai de sua posicao
inicial e busca um posicionamento tal que seja possıvel o chute em gol. O robo so esta
devidamente alinhado quando estiver na posicao correta e com a orientacao devida. Essa
configuracao e mostrada na figura 6.5(a).
6.2.2 Estado chutar
Este cenario foi executado na sequencia do cenario anterior. Na figura 6.5(a) o robo
esta alinha para o chute. Nas figura seguintes (6.5(b), 6.5(c) e 6.5(d)) o robo atinge a
bola com certa velocidade ate que ela se encaminha em direcao ao gol.
6.2.3 Estado defender
Este cenario exibe o comportamento do defensor, atuando como goleiro com a bola
vindo em sua direcao. Em um momento inicial (figura 6.6(a) o robo esta com a pos-
tura (−0.65, 0.0, π2), os demais robos estao estacionarios. A bola se encontra na posicao
(0.0, 0.3) e se encaminha na direcao gol, a fase do vetor velocidade da bola e vθ = −175o.
Pode-se perceber atraves das figuras 6.6(b), 6.6(c) e 6.6(d) que o robo tende a se posici-
onar no ponto de intercecao entre a trajetoria da bola e a reta que define seu campo de
acao (5.1.2).
CAPITULO 6. RESULTADOS 73
(a) (b)
(c) (d)
Figura 6.4: Comportamento do robo no estado alinhar
CAPITULO 6. RESULTADOS 74
(a) (b)
(c) (d)
Figura 6.5: Comportamento do robo no estado chutar
CAPITULO 6. RESULTADOS 75
(a) (b)
(c) (d)
(e) (f)
Figura 6.6: Comportamento do robo no estado defender
CAPITULO 6. RESULTADOS 76
6.3 Alocacao dinamica de papeis
Nesta secao sera mostrada uma situacao em que ocorre a troca de papeis dos membros
da equipe. Na situacao inicial (figura 6.7(a) temos o robo azul-rosa com o papel de
defensor assumindo a condicao de goleiro, uma vez que a bola esta se deslocando em
direcao ao gol defendido. O robo azul-ciano esta com o papel de atacante, por ser o
mais proximo da bola e com o defensor ja alocado. O robo azul-verde assume o papel
de curinga. O atacante esta no estado contornar, ja que ele esta a frente da bola.
Ja o curinga assume a posicao de espera a fim de nao atrapalhar o funcionamento dos
companheiros de equipe.
Nas figura 6.7(b), 6.7(c) e 6.7(d) os papeis permanecem inalterados, com o defensor
tentando defender a bola, o atacante se movimentando de forma a contornar a bola e
o curinga assumindo a posicao de espera. Na figura 6.8(a) o defensor ja defendeu a
bola, com isso a bola deixa de ter a direcao do gol defendido e passa a se movimentar em
direcao ao gol oposto. Nesse momento o defensor e o atacante trocam de papeis entre
si. Isso ocorre porque o novo atacante deve ser o jogador que esta mais proximo a bola
e atras dela. Enquanto que o novo defensor deve ser o robo mais proximo ao gol que
nao seja o novo atacante ja alocado. Nesse momento o defensor passa a acompanhar a
bola, o atacante entre no estado alinhar e o curinga tenta contornar a bola. A partir
da figura 6.8(b) nao ocorrem mais mudancas de papel e o comportamento do robos segue
normalmente.
6.4 Resultado de jogos
A tatica usada como parametro de comparacao foi denominada tatica simples. Ela foi
desenvolvida para ser usada na competicao nacional de futebol de robos (JRI 2004 [4])
que ocorreu em Salvador. Essa tatica se propoe a ser simples e eficiente. Devido ao pouco
tempo de testes disponıveis decidimos por desenvolver uma tatica baseada em preceitos
simples e intuitivos e pouco sujeita a falhas. Durante o campeonato a tatica simples foi
utilizada duas vezes: venceu a primeira partida, contra a equipe que se sagraria campea
e perdeu a segunda, porem devido a problemas com o sistema de visao.
CAPITULO 6. RESULTADOS 77
(a) (b)
(c) (d)
Figura 6.7: Alocacao dinamica de papeis
CAPITULO 6. RESULTADOS 78
(a) (b)
(c) (d)
Figura 6.8: Alocacao dinamica de papeis
CAPITULO 6. RESULTADOS 79
6.4.1 Tatica simples
A estrutura da tatica consiste de um robo com a funcao fixa de goleiro, enquanto os
outros dois robos alternam a funcao de atacante. O robo que nao assumir nenhuma das
duas funcoes tem por objetivo se manter distante dos outros dois robos minimizando as
possibilidades de interferencia na jogada.
O robo que exercera a funcao de goleiro durante o jogo e definido pelo tecnico antes
do inıcio da partida, ele exercera essa funcao durante todo o jogo. Para a posicao de
atacante sera escolhido o robo, a excecao do goleiro, que esteja mais proximo da bola.
O funcionamento do goleiro e simples, ele se mantem sempre a uma distancia fixa da
linha do gol defendido (coordenada x constante) e sua posicao no eixo y definida por:
goleiroy = bolay · 0.6
O atacante tem quatro estados definidos: alinhar, chutar, contornar e parado. O
funcionamento dos estados e similar aos apresentados no capıtulo 5, o estado parado faz
com que o robo permaneca em sua posicao atual. A arvore de decisao dos estados esta
mostrada na figura 6.9.
Alinhado?
Robô atrásda bola?
chutar
parado
alinhar
contornar
do goleiro?Bola perto
não
sim
sim
sim
sim
não
Figura 6.9: Arvore de decisao da tatica simples
O terceiro robo recebe as seguintes referencias:
refx = −atacantex · 0.5
refy = −atacantey
CAPITULO 6. RESULTADOS 80
6.4.2 Resultados contra a tatica simples
Foram realizadas dez partidas contra a tatica simples definida acima. Das dez partidas
a tatica proposta venceu sete, empatou uma e perdeu duas. O numero de gols pro foi
72, contra 56 gol sofrido, gerando um saldo positivo de 16 gols. A tabela 6.1 mostra o
placar de cada partida, POTI representa a tatica proposta e simples a tatica simples ja
explicada.
Jogo POTI Simples Resultado
1 8 4 Vitoria
2 7 6 Vitoria
3 11 3 Vitoria
4 7 7 Empate
5 7 11 Derrota
6 5 6 Derrota
7 8 7 Vitoria
8 6 5 Vitoria
9 7 3 Vitoria
10 6 4 Vitoria
Tabela 6.1: Resultado dos jogos
Capıtulo 7
Conclusoes
O metodo decisao de movimento proposto para o futebol de robos se mostrou bem
apropriado para ser usado em sistema multi-robos com questoes de tempo limitante.
Trata-se de um metodo simples, de rapida execucao, eficiente e que pode ser facilmente
adaptado para outros ambientes multi-robos. Ao defrontar com um novo ambiente, e
necessario inicialmente definir os novos papeis que se adequem a nova realidade. Nao e
necessario que o numero de papeis seja igual ao numero de robos da equipe. Finalmente
devemos desenvolver o metodo de alocacao de papeis para distribuı-los de forma adequada
entre os membros do time. Se estivermos tratando de sistemas multi-robos distribuıdos,
deve-se acrescentar metodos de comunicacao e negociacao entre os robos necessarios para
as trocas de papel. Nesse caso, ao inves de um computador central controlar o compor-
tamento de cada um dos robos, cada membro da equipe deve ser ciente da suas condicao
e de quais acoes tomar na situacao.
Durante o desenvolvimento do modulo de decisao de movimento, alguns fatores ne-
cessarios para seu bom funcionamento foram observados. A execucao desse modulo de-
pende diretamente de todos os outros modulos do sistema: suas entradas sao definidas
pelo modulo de aquisicao; suas saıdas tem de ser transformadas pelo modulo de controle;
depende do modulo de transmissao para que as informacoes cheguem aos robos; final-
mente sao necessarios robos que funcionem de acordo com o esperado pelo controle. Por
essas razoes podemos afirmar que e essencial que todos os modulos estejam funcionando
perfeitamente para que a tatica funcione tambem perfeitamente.
Caso algum dos modulos nao esteja funcionando bem o modulo de decisao de mo-
CAPITULO 7. CONCLUSOES 82
vimento e o que deve se adaptar para tentar contornar esse problema. Por exemplo:
o modulos de localizacao estiver com um erro grande na posicao encontrada dos robos.
Nesse caso, a decisao de movimentos deve ser menos baseada nas posicoes exatas dos
robos, ou definir areas grandes nas quais um robo pode estar localizado. Da mesma forma
o modulo de decisao de movimento deve se adaptar ao mal desempenho de qualquer um
dos outros modulos. Ressaltando apenas que nao esta sendo proposta uma adaptacao
dinamica. Simplesmente esta sendo dito que o modulo de decisao de movimento deve ser
desenvolvido de acordo com as condicoes de funcionamento atuais do sistema no qual ele
deve ser encaixado. Ou seja, uma tatica ideal para um determinado sistema pode ser
desastrosa em outro.
Dentre os fatores que o modulo de decisao de movimento depende, o primordial sao
os robos. Duas equipes com robos equivalentes e com taticas distintas possivelmente re-
alizarao um jogo equilibrado. Por outro lado, um jogo com duas equipes com taticas
equivalentes (adaptadas ao proprio sistema) porem uma delas possui robos muito mais
eficientes que a outra, sera vencido facilmente pela equipe com melhores robos. Fazendo
uma analogia com o futebol humano, supondo duas equipes com esquemas de jogo se-
melhantes, porem uma delas possui jogadores muito melhores que a outra. O resultado
de um confronto terminara certamente com uma vitoria da equipe com jogadores mais
qualificados.
Alem da importancia do funcionamento do sistema como um todo, outras questoes se
mostraram fundamentais para nao comprometer o comportamento da tatica. Questoes
simples que chamamos de tratamento de excecoes. Os tratamentos de excecoes cuidam
de aspectos pouco importantes para a logica do time, contudo sao essenciais durante a
execucao do sistema. Dentre essas excecoes podemos citar, por exemplo, o teste que
verifica se algum robo esta “preso” a parede ou a algum outro robo. Em muitos casos
um robo esta encostado com uma das faces em uma das paredes do campo e tenta se
locomover em direcao a propria. Nessa situacao, um teste simples pode detectar essa
situacao e uma informacao para o robo se movimentar na direcao oposta a parede resolve
o problema. Outra excecao que mereceu tratamento e o chaveamento de papeis. Dois
robos com posicoes proximas podem entrar em um ciclo de troca de papeis entre eles e
permanecer nesse laco por um grande perıodo de tempo. Para resolver esse problema
CAPITULO 7. CONCLUSOES 83
adotamos uma especie de histerese1 na troca de papeis. Para um robo assumir algum
outro papel ele deve insistir nessa mudanca por um certo numero de passos. Questoes
aparentemente simples como essas podem fazer a diferenca entre o sucesso ou fracasso de
uma tatica.
7.1 Trabalhos Futuros
Existem varios trabalhos futuros possıveis que dariam continuidade as ideias propos-
tas nesse documento. Uma proposta simples e de facil implementacao seria o aumento do
numero de robos por equipe: tanto no simulador, onde e possıvel acrescentar facilmente
mais robos; como no sistema real, em que ja possuımos seis robos, alem do know-how para
completar duas equipes sem maiores dificuldades. A expansao poderia ser direta, alte-
rando apenas a alocacao dos papeis e o numero de robos com cada papel, ou acrescentado
diferentes papeis para um melhor comportamento da equipe.
Uma outra alteracao possıvel seria a adocao de robos heterogeneos na equipe. Ja existe
um projeto para modificar a mecanica dos robos existentes adicionando engrenagens aco-
pladas ao motor, tornando os robos mais lentos, porem mais controlaveis. Essa alteracao
acarretaria em uma mudanca drastica na alocacao dos papeis, onde alguns robos teriam
prioridades fısicas para assumir determinados papeis.
Uma terceira ideia possıvel e a aplicacao da tatica em outros ambientes a fim de
testar a adaptabilidade do metodo a ambientes menos estruturados. Um outro metodo
de decisao de movimento baseado em inteligencia artificial ja esta em desenvolvimento
pelo mestrando da UFRN Dennis Barrios Aranibar. Nesse metodo a equipe ira aprender
a medida que enfrenta os adversarios, quanto mais jogos fizer, mais apta a vencer o
time estara. O simulador implementado para este projeto tambem sera utilizado como
ferramenta de auxılio para o desenvolvimento do novo metodo.
1Histerese: Retardo na resposta de uma unidade do sistema quando existe um acrescimo ou decrescimo
no valor do sinal
Trabalhos Publicados
- Marcelo Minicuci Yamamoto, Diogo Pinheiro Fernandes Pedrosa, Pablo Javier Alsina
and Adelardo Adelino Dantas de Medeiros. Um simulador dinamico para mini-robos
moveis com modelagem de colisoes. In SBAI, Bauru, Brasil, sep 2003.
- Marcelo Minicuci Yamamoto, Antonio Pereira de Araujo Jr., Pablo Javier Alsina
and Adelardo Adelino Dantas de Medeiros. A equipe POTI de futebol de robos. In JRI
- Jornada de Robotica Inteligente, Salvado, Brasil, aug, 2004
Referencias Bibliograficas
[1] Alan K. Mackworth. On seeing robots. In Vision Interfaces, 1992.
[2] Federation of international robot-soccer association. http://www.fira.net.
[3] Robocup. http://www.robocup.org.
[4] Marcelo Minicuci Yamamoto, Antonio Pereira Araujo Jr., Pablo Javier Alsina, and
Adelardo Adelino Dantas Medeiros. A equipe poti de futebol de robos. In JRI -
Jornada de Robotica Inteligente, Salvador, Brasil, aug 2004.
[5] Jordi Delgado. Emergence of social conventions on complex networks. Artificial
Intelligence, 141:171–185, 2002.
[6] Jun Ota and Tamio Arai. Motion planninf of multiple robots using dynamic groups.
In ICRA, pages 28–33, Atlanta, USA, may 1993.
[7] Jaydev P. Desai, Vijay Kumar, and James P. Ostrowski. Controls of changes in
formation for a team of mobile robots. In ICRA, pages 1556–1561, Detroit, USA,
May 1999.
[8] Fang-Chang Lin. Genetic algorithms for coordinating multi-agent robotic systems. In
IEEE International Conference on Systems, Man and Cybernetics, pages 3431–3436,
Orlando, USA, oct 1997.
[9] C. Ronald Kube and Eric Bonabeau. Cooperative transport by ants and robots.
Robotics and Autonomous Systems, 30(1-2):85–101, jan 2000.
[10] Fabrice R. Noreils, Alcatel Alsthom Recherche, and de Route Nozay. An architecture
for cooperative and autonomous mobile robots. In ICRA, pages 2703–2710, Nice,
France, may 1992.85
REFERENCIAS BIBLIOGRAFICAS 86
[11] Fabrice R. Noreils and Recherche. Multi-robot coordination for battlefield strategies.
In IROS, pages 1777–1784, Raleigh, NC, jul 1992.
[12] J.B. Michael Krieger and Jean-Bernard Billeter. The call of duty: Self-organized task
allocation in a population of up to twelve mobile robots. Robotics and Autonomous
Systems, 30(1-2):65–84, jan 2000.
[13] Barry L. Brumitt and Anthony Stentz. Dynamic mission planning for multiple mobile
robots. In ICRA, pages 2396–2401, Minneapolis, USA, April 1996.
[14] Tamio Arai and Jun Ota. Motion planning of multiple mobile robots. In IROS, pages
1761–1768, Raleigh, NC, July 1992.
[15] Michael K. Sahota, Alan K. Mackworth, Stewart J. Kingdon, and A. Barman, Rod.
Real-time control of soccer-playing robots using off-board vision: the dynamite test-
bed. In IEEE International Conference on Systems, Man and Cybernetics, pages
3690–3693, Vancouver, Canada, oct 1995.
[16] Luiz Chaimowicz, Mario F.M. Campos, and Vijay Kumar. Dyanmic role assignment
for coopertive robots. In ICRA, pages 293–298, Washington, USA, may 2002.
[17] Jong-Hwan Kim, Hyun-Sik Shim, Heung-Soo Kim, Myung-Jin Jung, and Prahlad
Vadakkepat. Action selection and strategies in robot soccer systems. In Midwest
Symposium on Circuits and Systems, pages 518–521, Sacramento, USA, aug 1997.
[18] Jong-Hwan Kim, Hyun-Sik Shim, Myung-Jin Jung, I.-H Choi, and J.-O Kim. A
cooperative multi-agent system and its real time application to robot soccer. In
ICRA, pages 638–643, Albuquerque, USA, apr 1997.
[19] H.K. Lam, T.H Lee, F.H.F. Leung, and P.K.S. Tam. Decision maker for robot soccer.
In IEEE Industrial Electronics Society, pages 43–47, Denver, USA, nov 2001.
[20] Jong-Hwan Kim, Kwang-Choon Kim, Dong-Han Kim, Yong-Jae Kim, and Prahlad
Vadakkepat. Path planning and role selection mechanism for soccer robots. In ICRA,
pages 3216–3221, Leuven, Belgium, may 1998.
REFERENCIAS BIBLIOGRAFICAS 87
[21] Peter Stone and Manuela Veloso. Task decomposition, dynamic role assignment and
low-bandwidth communication for real-time strategic teamwork. Artificial Intelli-
gence, 110(2):241–273, jun 1999.
[22] Yang Bo and Wang Qinghua. Agent brigade in dyanmic formation of robotic soccer.
In Wolrd Congress on Intelligent Control and Automation, pages 174–178, Hefei,
China, jun 2000.
[23] Rosemary Emery, Kevin Sikorski, and Tucker Balch. Protocols for collaboration,
coordination and dynamic role assignment in a robot team. In ICRA, pages 3008–
3015, Washington, USA, may 2002.
[24] Manuela Veloso, Michael Bowling, Sorin Achim, Kwun Han, and Peter Stone. The
cmunited-98 champion small-robot team. In RoboCup-98: Robot Soccer World Cup
II, pages 77–92, 1999.
[25] C. Castelpietra, Luca Iochhi, Maurizio Piaggio, and A. Sgorbissa. Coordination
among heterogenous robotic soccer players. In IROS, pages 1385–1390, Takamatsu,
Japan, oct 2000.
[26] Thilo Weigel, Jens-Steffen Gutmann, Markus Dietl, Alexander Kleiner, and Ber-
nhard Nebel. Cs freiburg: Coordinating robots for successful soccer playing. IEEE
Transactions on Robotics and Automation, 18(5):685–699, oct 2002.
[27] Arvin Agah and Kazuo Tanie. Robots playing to win: Evolutionary soccer strategies.
In ICRA, pages 632–637, Albuquerque, USA, apr 1997.
[28] Qingchun Meng, Xiaodong Zhuang, Changjiu Zhou, Jianshe Xiong, Yulin Wang,
Tao Wang, and Bo Yin. Game strategy based on fuzzy logic for soccer robots. In
IEEE International Conference on Systems, Man, and Cybernetics, pages 3758–3763,
Nashville, USA, oct 2000.
[29] Elmer P. Dadios and Odon A. Maravillas Jr. Fuzy logic controller for micro-robot
soccer game. In IEEE Industrial Electronics Society, pages 2154–2159, Denver, USA,
nov 01.
REFERENCIAS BIBLIOGRAFICAS 88
[30] Elmer P. Dadios and Odon A. Maravillas Jr. Cooperative mobile robots with obstacle
and collision avoidance using fuzzy logic. In IEEE International Symposium on
Intelligent Control, pages 75–80, Vancouver Canada, oct 2000.
[31] H.L. Sng, G.Sen Gupta, and C.H. Messom. Strategy for collaboration in robot soccer.
In International Workshop on Electronic Design, Test and Applications, pages 347–
351, Christchurch, New Zealand, jan 2002.
[32] J.Ll de la Rosa, A. Oller, J. Vehı, and J. Puyol. Soccer tema based on agent-oriented
programming. Robotics and Autonomous Systems, 21(2):167–176, sep 1997.
[33] Hui Wang, Han Wang, Chunmiao Wang, and William Y.C. Soh. Embedding coo-
peration in robots to play soccer game. In IROS, pages 809–814, Maui, USA, oct
2001.
[34] Kai-Tai Song and Chih-Ching Tang. A distributed architecture for effective multiro-
bot cooperation in team competitions. In IEEE Industrial Electronics Society, pages
547–552, San Jose, USA, nov 1999.
[35] Song Zhiwei, Zhang Bo, Chen Xiaoping, and Wang Xufa. Layered decision-making
and planning in shaoling team. In World Congress on Intelligent Control and Auto-
amtion, pages 179–183, Hefei, China, jul 2000.
[36] Kuan-Yu Chen and Alan Liu. A desing method for incorporating multidisciplinary
requirements for developing a robot soccer player. In International Symposium in
Multimedia Software Engineering, pages 25–32, 2002.
[37] Tae-Yong Kuc, In-Jae Lee, and Seung-Min Baek. Perception, reasoning and learning
of multiple agent systems for robot soccer. In IEEE International Conference on
Systems, Man, and Cybernetics, pages 728–733, Tokyo, Japan, oct 1999.
[38] Peter Stone, Patrick Riley, and Manuela Veloso. Defining and using ideal team-
mate and opponent agent models: a case study in robotic soccer. In International
Conference on MultiAgent Systems, pages 441–442, Boston, USA, jul 2000.
REFERENCIAS BIBLIOGRAFICAS 89
[39] Kui-Hong Park, Yong-Jae Kim, and Jong-Hwan Kim. Modular q-learning ba-
sed multi-agent cooperation fo robot soccer. Robotics and Autonomous Systems,
35(2):109–122, may 2001.
[40] Qian Hu, Ming-Rui Fei, and Xia-Ei Feng. Mas collaboraion and machine learning
method for robot soccer. In International Conference on Machine Learning and
Cybernetics, pages 1034–1037, Beijing, China, nov 2002.
[41] Ciprian Candea, Huosheng Hu, Luca Iocchi, Daniele Nardi, and Maurizio Piaggio.
Coordination in multi-agent robocup teams. Robotics and Autonomous Systems,
36(2-3):67–86, aug 2001.
[42] Sung-Wook Park, Jung-Han Kim, Eun-Hee Kim, and Jun-Ho Oh. Development of
a multi-agent system for robot soccer game. In ICRA, pages 626–631, Albuquerque,
USA, apr 1997.
[43] Jakub Hrabec and Bohumil Honzık. Mobile robots playing soccer. In International
Workshop on Advanced Motion Control, pages 510–513, 2002.
[44] G. Adorni, S. Cagnoni, M. Mordonini, and M. Piaggio. Coordination strategies for
the goal-keeper of a robocup mid-size team. In IEEE Intelligent Vehicles Symposium,
pages 486–491, Dearbom, USA, oct 2000.
[45] Minoru Asada, Peter Stone, Hiraki Kitano, Barry Werger, Yasuo Kuniyoshi, Alexis
Drogoul, Dominique Duhaut, Manuela Veloso, Hajime Asama, and Sho’ji Suzuki.
The robocup physical agent challenge: Phase i. Applied Artificial Intelligence, 12,
1998.
[46] Tzu-Chen Liang and Jung-Sin Liu. Motion controller realizing cyclic ball passing
strategy among multiple mobile robots in robot soccer games. In ICRA, pages 2587–
2592, Washington, USA, may 2002.
[47] Tzuu-Hseng Li, Ren-Cheng Liu, and I-Fong Lin. Fuzzy shooting control of car-
like soccer robot. In IEEE Region 10 International Conference on Electrical and
Electronic Technology, pages 447–452, Singapore, aug 2001.
REFERENCIAS BIBLIOGRAFICAS 90
[48] Ching-Chang Wong, Ming-Fong Chou, and Chin-Po Hwang. A method obstacle
avoidance and shooting action of the robot soccer. In ICRA, pages 3778–3782, Seoul,
Korea, may 2001.
[49] A. Tsoularis and C. Kambhampati. Avoiding moving obstacles by deviation from
a mobile robot’s nominal path. The International Journal of Robotics Research,
18(5):454–465, may 1999.
[50] Pankaj K. Agarwal, Julien Basch, John Guibas, Leonidas J. Hershberger, and
Li Zhang. Deformable free-space tilings for kinetic collision detection. Internati-
onal Journal of Robotics Research, 21(3):179–197, mar 2000.
[51] Zvi Shiller. Online suboptimal obstacle avoidance. The International Journal of
Robotics Research, 19(5):480–497, may 2000.
[52] G. E. Cook, C. Biegl, J. F. Springfield, and K. R. Fernandez. An intelligent robotics
simulator. In IEEE Industry Applications Society Annual Meeting, volume 3, pages
1793–1800, Denver, CO, USA, October 1994.
[53] K. Kimoto and S. Yuta. A simulator for programming the behavior of an autono-
mous sensor-based mobile robot. In IROS - IEEE/RSJ International Conference on
Intelligent Robots and Systems, volume 2, pages 1431–1438, July 1992.
[54] Jayant A. Kulkarni, Joseph S. Byrd, and Robert O. Pettus. X-window based graphical
mobile robot simulator for path planning and sensor fusion experiments. In Annual
Simulation Symposium, pages 185–192, New Orleans, USA, apr 1991.
[55] Marcelo Minicuci Yamamoto, Diogo Pinheiro Fernandes Pedrosa, Pablo Javier Al-
sina, and Adelardo Adelino Dantas Medeiros. Um simulador dinamico para mini-
robos moveis com modelagem de colisoes. In SBAI, Bauru, Brasil, sep 2003.
[56] Claudio Garcia. Modelagem e Simulacao. Editora da Universidade de Sao Paulo, Av.
Prof. Luciano Gualberto, Travessa J, 374, 05508, Sao Paulo, SP, Brazil, 1997. ISBN
85-314-0402-9.
REFERENCIAS BIBLIOGRAFICAS 91
[57] Patrıcia Nishimura Guerra, Marcelo Minicuci Yamamoto, and Pablo Javier Alsina.
Um controlador adaptativo para um robo movel com rodas: Analise e simulacao. In
CBA - Congresso Brasileiro de Automatica, Natal, RN, Brazil, 2002.
[58] Patricia Nishimura Guerra, Pablo Javier Alsina, Adelardo Adelino Dantas de Medei-
ros, and Antonio Pereira Araujo Jr. Linear modelling and identification of a mobile
robot with differential drive. In International Conference on Informatics on Control,
Automation and Robotics, ICINCO, Setubal, Portugal, aug 2004.
[59] Mason Woo, Jackie Neider, Tom Davis, and Dave Shreiner. OpenGL Programming
Guide. Addison-Wesley, EUA, 3 edition, 1999. ISBN 0-20-160458-2.