ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de...

94
ÍCARO DOS SANTOS FRANÇA SIMULAÇÃO DE MOVIMENTO DE ROBÔS NUM AMBIENTE COOPERATIVO DE FUTEBOL Dissertação apresentada ao Departamento de Engenharia Mecânica da UFF como parte dos requisitos para a obtenção do título de Mestre de Ciências em Engenharia Mecânica. Orientadora: Fabiana R. Leta Departamento de Engenharia Mecânica Universidade Federal Fluminense Niterói 2001

Transcript of ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de...

Page 1: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

ÍCARO DOS SANTOS FRANÇA

SIMULAÇÃO DE MOVIMENTO DE ROBÔS NUM AMBIENTE COOPERATIVO DE FUTEBOL Dissertação apresentada ao

Departamento de Engenharia

Mecânica da UFF como parte

dos requisitos para a obtenção

do título de Mestre de Ciências

em Engenharia Mecânica.

Orientadora:

Fabiana R. Leta

Departamento de Engenharia Mecânica

Universidade Federal Fluminense

Niterói

2001

Page 2: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

2

AGRADECIMENTOS:

Ao professor Heraldo S. da Costa Mattos pela orientação e estímulo neste trabalho

e durante o curso de mestrado, concernente às noções de Cálculo Tensorial, e à professora

Aura Conci, pelas noções de Teoria dos Autômatos.

Page 3: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

3

“Omne tulit punctum,Qui miscuit utile dulci”

( Horácio, Arte Poética, 343 )

“Sublata causa, tollitur effectus”

(Aristóteles, Metafísica ,VIII)

Page 4: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

4

SUMÁRIO:

I - AGRADECIMENTOS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . 2

II- EPÍGRAFE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

III- SUMÁRIO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6

IV- RESUMO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7

V- ABSTRACT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . .8

1. - INTRODUÇÃO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9

1.1 - ORGANIZAÇÃO DA TESE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10

2. - FUTEBOL DE ROBÔS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . .10

2.1 - HISTÓRICO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . 10

2.2 - MULTIDISCIPLINARIDADE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . .11

2.3 - CATEGORIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21

2.3.1- MIROSOT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21

2.3.2- HUROSOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22

2.3.3- NAROSOT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

Page 5: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

5

2.3.4- KEPHERASOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2.4 - SISTEMA DE FUTEBOL DE ROBÔS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26

2.4.1- ESTRUTURA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26

2.4.2- SISTEMA DE VISÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2.4.3- INTELIGÊNCIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3. - SISTEMAS EXISTENTES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29

3.1 - EXEMPLO DE UM SISTEMA REAL – EQUIPE GUARANÁ . . . . . . . . . . . . 29

3.1.1- ESTRATÉGIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.1.2 - SISTEMA DE VISÃO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

3.1.3 - DETERMINAÇÃO DE TRAJETÓRIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

3.2. - OUTROS SISTEMAS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

3.2.1 -CARNEGIE-MELLON UNIVERSITY MILIBOT SIMULATOR.. . . . . . . . . . 47

3.2.2. - TOKYO-U SIMULATOR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

3.2.3 - ROBOWIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

3.2.4. -UNESP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

3.3 – COMPARAÇÃO DE SISTEMAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

4-SIMULADOR DE FUTEBOL DE ROBÔS . . . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . 54

4.1- CONSIDERAÇÕES INICIAIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

4.2 - IMPLEMENTAÇÃO DE UM SIMULADOR DE FUTEBOL . . . . .. . . . . . . . . . 57

4.3 - SIMULADOR DE FUTEBOL DE ROBÔS DESENVOLVIDO . . . . . . . . . . . . 62

5 - RESULTADOS OBTIDOS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

6- CONCLUSÕES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

7 –REFERÊNCIAS BIBLIOGRÁFICAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

8 – BIBLIOGRAFIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

Page 6: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

6

APÊNDICES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

A. -APÊNDICE:

ALGORITMO DE VISÃO COMPUTACIONAL . . . . . . . . . . . . . . . .. . . . . . . . . . . . 81

A.1 - DEFINIÇÃO DOS MOMENTOS

GEOMÉTRICOS DE INTERESSE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

A. 2 - ESPECIFICAÇÃO DO PONTO DE

OPERAÇÃO (“THRESHOLDING”) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

Page 7: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

7

LISTA DE FIGURAS

Figura 2.1 Esquema do sistema de navegação

de um robô móvel autônomo. . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . 19

Figura 2.2 Orientação do robô por meio das etiquetas. . . . . . . . . . . . . . . . . . . . . . . . . . 20

Figura 2.3 Foto de jogadores da liga MIROSOT,

patrocinados pela PMC-Sierra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

Figura 2.4 Time Narosot brasileiro – “Bravo” – em ação. . . . . . . . . . . . . . . . . . . . . . . 24

Figura 2.5 Jogador de um time S- Kepherasot. . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . 25

Figura 3.1 Comportamento do goleiro. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

Figura 3.2 Estados do goleiro. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

Figura 3.3 Área de transição. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

Figura 3.4 Comportamento do defensor e do atacante. . . . . . . . . . . . . . . . . . . . . . . . . . 35

Figura 3.5 Etiqueta de separação dos robôs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

Figura 3.6 Fotografia do Time Guaraná em ação . . . . . . . . . . .. . . . . . . . . . . . . . . . . . 37

Figura 3.7 Evitando obstáculos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

Figura 3.8 Simulador Millibot da Carnegie-Melon University. . . . . . . . . . . . . . . . . . 49

Figura 3.9. Interface do Simulador Robocup Oficial. . . . . . . . . . . . . . . . . . . . . . . . . . . 50

Figura 3.10 Simulador UNESP – CBFR ( Oficial ). . . . . . . . . . . . . . . . . . . . . . . . . . 52

Figura 3.11 Tabela 3.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

Page 8: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

8

Figura 4.1 Interface Visual do Simulador

de Pegoraro & Costa ( 1998). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

Figura 4.2 Sistema de navegação original . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

Figura 4.3 Sistema de navegação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

Figura 4.4 Sistema de navegação modificado em JAVA . . . . . . . . . . . . . . . . . . . . . . . 67

Figura 4.5 Fluxograma do sistema de navegação

do simulador de futebol de robôs . . . . . . . . . . . . . . . . . . . . . . . . .68

Figura 4.6 Fluxograma do algoritmo de “Clipping”. . . . . . . . . . . . . . . . . . . . . . . . . . . 69

Figura 4.7. Possíveis localizações da bola (coordenadas Xb,Yb) com relação

ao jogador (A,B,C,D,E,F,G,H), explicando o algoritmo apresentado

na figura 4.6 e definindo os 8 quadrantes possíveis de localização

da bola. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

Figura 4.8. Determinação dos parâmetros de ângulo do jogador e da bola. . . . .. . . . . . 71

Figura 5.1 Sequência de imagens do simulador desenvolvido

em JAVA . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

Figura 5.2 (a). Manobra complexa do atacante azul . . . . . . . . . . . . . . . . . . . . . . . . . . 75

Figura 5.2 (b). manobra complexa do atacante azul . . . . . . . . . . . . . . . . . . . . . . . . . . 76

Page 9: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

9

RESUMO:

A presente tese é o primeiro trabalho na UFF na área de robôs autônomos móveis

a estabelecer um procedimento de pesquisa em termos de trajetórias de movimentos de

robôs em ambientes randômicos, juntamente com uma revisão sobre os conceitos

envolvidos. Através do exame de um problema padrão onde um grande escopo de

tecnologias pode ser integrado e examinado (sistemas de navegação, Visão

Computacional, algoritmos de Inteligência Artificial e transmissão de dados remotos)

escolhe-se como paradigma as competições existentes de futebol de robôs. Este ambiente

cooperativo de simulação de movimento servirá de base para testes de futuras pesquisas de

estratégias em tais ambientes. Para isto tem-se como um dos paradigmas o sistema

desenvolvido pela Escola Politécnica de São Paulo para o time de futebol de robôs

“Guaraná”, que segue as regras preconizadas pela MIROSOT coreana.

Page 10: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

10

ABSTRACT:

The present thesis is the first work on Mobile Autonomous Robots done at

UFF to foster AI and Autonomous Mobile Robots research proceedings about movement

trajectories in a randomical environment and a resume of the adopted proceedings on these

subject. At examing a standard problem where a wide range of technologies can be

integrated and organized (navigation systems, machine vision, AI algorithms and so on)

that is described by the main paradigms as the system developped by The Escola

Politécnica de São Paulo for the soccer robot team called “GUARANÁ”, which follows up

the competition rules of the korean MIROSOT.

Page 11: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

11

1. INTRODUÇÃO

Muitos sistemas de navegação têm sido propostos para o controle autônomo de

robôs móveis em ambiente cooperativo ( mais de um robô que coopera com outros robôs

para um resultado comum ), podem-se citar como exemplo o sistema com lentes “Olho-de-

Peixe” [6] e o “Spartan” [4]. As medidas de posição são muito importantes e alguns

sistemas de navegação têm incorporado um sensor omnidirecional para a obtenção do

ambiente em torno do robô móvel.

A motivação desta tese consiste no estudo de sistemas simulados que podem ser

implementados em sistemas reais de navegação. Em trabalhos prévios, (Kurata, Grattan e

Uchiyama, 1998 [5]; Pegoraro e Costa, 1998 [2]; Herbert e Hennenberger, 1998 [4]) tais

sistemas de navegação têm sido propostos para coletar este tipo de informação pelo uso de

métodos tais como:

(1) Rotação da câmera por meios mecânicos e,

(2) Transformando um campo omnidirecional em uma imagem

Page 12: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

12

simples, pelo uso de um elemento ótico especial, por exemplo

espelhos cônicos, hiperbólicos e por lentes especiais, como a

Olho-de-Peixe”.

Assim na presente tese discute-se um sistema de navegação simulado, que

futuramente pode ser implementado em caso real, considerando-se um sensor visual

omnidirecio nal para um robô móvel de um time de futebol de robôs. O sensor visual é

composto simplesmente por uma câmera CCD (Charged Couple Device) acima do campo

de futebol de robôs. Pela obtenção do centróide do robô e do ponto de referência através do

sensor CCD, obtem-se a posição do robô móvel com respeito ao solo integrando dois

conjuntos de informações:

(1) A posição relativa entre o alvo de referência no robô e a câmera no

teto

(2) O ângulo rotacional do robô relativo aos eixos principais de referência.

Para a obtenção destes parâmetros geométricos faz-se necessário um programa de

reconhecimento de imagens que distingua os dados do robô móvel dos do cenário geral ao

fundo, assim como dos outros robôs do time adversário e a bola. Um programa de

determinação automática que distingua os parâmetros relevantes para o sistema de

navegação, elegante e geometricamente preciso, deve ser usado.

Page 13: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

13

1.1 ORGANIZAÇÃO DA TESE

No capítulo 2, apresenta-se um histórico sobre os campeonatos de futebol de robôs,

destacando-se um histórico das competições de futebol de robôs (seção 2.1),

multidisciplinaridade e detalhes da categoria MIROSOT (seções 2.2 e 2.3), sistema de

posicionamento e algoritmo de visão computacional (seção 2.4) com abordagens sobre os

momentos geométricos de interesse.Apresenta-se um caso real – o Time Guaraná , seu

sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada

de outros tipos de simuladores de ambientes cooperativos entre robôs (capítulo 2.7).

Com estes subsídios, pode-se iniciar a implementação computacional de um

simulador de futebol de robôs: o programa inicial de Pegoraro & Costa em DELPHI (seção

3.1), o programa do autor em JAVA, com um exame de certos detalhes do programa de

Pegoraro & Costa (capítulos 3.2 e 3.3) e uma analise do programa em JAVA do autor

(Capítulo.4), uma avaliação (capítulo 5) e a conclusão(capítulo 6). No Apêndice encontrar-

se-ão subsídios teóricos necessários para trabalhos futuros de implementação de um sistema

de visão de futebol de robôs.

Page 14: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

14

2. FUTEBOL DE ROBÔS

2.1. HISTÓRICO

Na história da Inteligência Artificial e da Robótica, o ano de 1997 pode ser

considerado como o momento de decisão: em Maio de 1997 o IBM Deep Blue derrotou o

campeão mundial de xadrez. Em 4 de Julho de 1997, a Missão Pathfinder da NASA

conseguiu um pouso bem sucedido na superfície de Marte e seu veículo robô – Sojourner -

realizou a contento suas atividades programadas.

A idéia do futebol de robôs foi pela primeira vez mencionada pelo Professor Alan

Mackworth (University of British Columbia, Canadá) e uma série de artigos sobre o projeto

de futebol de robôs foi publicado por este grupo. Independentemente, um grupo de

pesquisadores japoneses organizou um workshop sobre grandes desafios em Inteligência

Artificial em Outubro de 1992 em Tóquio. Este grupo iniciou uma séria discussão sobre o

uso de futebol de robôs para a promoção da Ciência e da Tecno logia. Séries de estudos

foram feitos sobre possibilidades tecnológicas, impacto social e possibilidades financeiras.

Em adição, as primeiras regras de competição foram delineadas para competição de futebol

de robôs e simuladores. Como resultado destes estudos em Junho de 1993 um grupo de

pesquisadores incluindo Minoru Asada, Yasuo Kuniyoshi e Hiroaki Kitano decidiram

iniciar a competição de futebol de robôs, primeiramente chamada de J-League, e dentro de

um mês receberam apoio entusiástico de vários outros pesquisadores de todo o mundo.

Page 15: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

15

Com este apoio internacional a competição foi rebatizada de Robot World Cup Iniciative

ou “RoboCup”.

Concorrente a esta discussão, muitos outros pesquisadores utilizaram o jogo de futebol

como domínio de pesquisa. Por exemplo, Itsuki Noda, do Laboratório Eletrotécnico

Governamental do Japão (ETL), conduziu uma série de pesquisas em robótica multi-agente

usando o futebol e criou o primeiro simulador de futebol de robôs, mais tarde adotado como

o modelo oficial da SONY . Outros como Minoru Asada, da Universidade de Osaka e os

professores Manuela Veloso e Peter Stone, da Universidade Carnegie-Melon,

desenvolveram seus próprios sistemas, ampliando o escopo da RoboCup a um efetivo nível

internacional. A primeira competição oficial da RoboCup (patrocinada pela SONY) , com

suas respectivas conferências tecnológicas, foi realizada em Nagoya, Japão, de 23 a 29 de

Agosto de 1997. Mais de quarenta times participaram de todas as partes do mundo. O

vencedor da J-League foi o AT-Humboldt, da Universidade Humboldt, Alemanha, que

venceu o time AndHill do Instituto de Tecnologia de Tóquio na final. O terceiro lugar foi

para o ISI Synthetics (ISIS) da ISI/USC, que derrotou o CMUnited da Universidade

Carnegie-Melon.

Atualmente a nível mundial, existem duas federações envolvidas com o Futebol de

Robôs: a RoboCup e a FIRA (Federation of International Robot-Soccer Association -

Federação Internacional de Futebol de Robôs Autônomos). Cada uma delas possui suas

próprias regras, torneios, conferências técnicas e patrocinadores principais. Existem

também as chamadas ligas (NAROSOT, KEPHERASOT e outras), que são subdivisões

baseadas no tamanho e complexidade dos robôs. Cada uma destas ligas segue regulamentos

próprios porém todas têm um objetivo em comum: promover a evolução de uma tecnologia

Page 16: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

16

e facilitar o acompanhamento e o progresso desta. Uma destas propostas é a Micro Robot

Soccer Tournment – MIROSOT, promovida pela FIRA.

O início efetivo do envolvimento brasileiro com o futebol de robôs autônomos

ocorreu em julho de 1995, quando o Instituto de Automação ( IA ) do Centro Tecnológico

de Informática da UNESP enviou alguns pesquisadores para o Centro de Pesquisas KAIST

(Korean Advanced Institiute of Science and Technology) em Seul, Coréia do Sul. A

viagem à Coréia foi uma resposta ao convite realizado a toda a comunidade internacional

pelo prof. Dr. John-Hwan Kim, para que pesquisadores envolvidos com os diversos

aspectos da robótica autônoma se reunissem e elaborassem um plano comum de

experimentação. Este grupo – a partir das regras básicas estipuladas pelos pesquisadores

coreanos – gerou as normas e acordos do que viria a ser a atual FIRA

2.2. MULTIDISCIPLINARIDADE

Como desafio tecnológico, o futebol de robôs é composto por vários problemas-

padrão envolvendo teorias, algoritmos e arquiteturas de programação, que podem ser

utilizados para tratar das complexidades do dia-à-dia. Tais áreas incluem: fusão de sensores

em tempo real, comportamento reativo, aprendizagem, planejamento em tempo real,

sistemas multiagentes, reconhecimento de contexto, visão robótica, estratégias de decisão,

controle motor, controle de inteligência robótica e muito mais.

Além de propiciar o desenvolvimento destas áreas e de motivar prêmios como o

Scientific Challenge Awards e o Engineering Challenge Awards, programas de pesquisas

como os da RoboCup provêm um fórum para pesquisas de alta qualidade e de alto impacto,

tais como The RoboCup Physical Agent Phase I. Este consiste de três tarefas: movimento

Page 17: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

17

da bola, recebimento da bola e passagem da bola. A tarefa de movimento da bola examina a

habilidade do robô de se aproximar da bola e para mover a bola até o lugar desejado por

meio de dribles ou chutes. Tal tarefa é desenvolvida sob trê s condições: ausência de

obstáculos, obstáculos estacionários e obstáculos móveis. A tarefa de recebimento da bola é

similar, exceto no detalhe em que lida com a interceptação de recebimento de bola. Após

estas duas tarefas terem sido razoavelmente cumpridas, a terceira tarefa – passar a bola -

pode então tomar lugar.

A construção de um sistema de medida de posição é composta essencialmente de

um sensor visual e de um alvo de referência sobre o robô móvel. O sistema inercial de

coordenadas está localizado na câmera CCD no teto, bem sobre a origem Ow, cuja altura Zr

é conhecida (cf. Figura 2.1, para as seguintes considerações) A origem do sistema de

coordenadas do alvo de referência está no topo do robô móvel, e seu eixo X é fixo,

apontando sempre para frente do robô móvel, segundo a regra de Ixx > Iyy (elemento da

matriz de inércia Ixx maior do que Iyy) ou pelo uso de uma tarja rosa na etiqueta-alvo de

referência propostos na seção 2. A altura do alvo de referência em relação ao solo – altura

máxima do robô ou diâmetro da bola – Zv – também é conhecida.

A posição relativa do robô em relação à câmera CCD é obtida através de dois

ângulos: um ângulo de zênite β entre o eixo Z do sistema de referência do robô móvel e a

câmera, e o ângulo azimutal α entre o eixo fixo X e o eixo Zw ( que projeta-se para o centro

da câmera CCD ). A distância do centróide da imagem ao centróide do objeto é r. O ângulo

θ, entre o eixo X e o centróide do alvo de referência captado pela câmera CCD, é igual ao

ângulo α entre o eixo X e o eixo da lente da câmera. As coordenadas do alvo de referência

são rotacionadas, acompanhando o movimento do robô, tornando-se necessário compensar

Page 18: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

18

o ângulo rotacional α , que é obtido como parâmetro derivado da matriz de inércia I –

juntamente com a excentricidade e o traço – ou pela instalação de um giroscópio no interior

do robô móvel. Partindo destas considerações geométricas, a posição do robô em relação à

sala (xv,yv) é obtida pelo uso das equações seguintes:

onde a constante f é a distância focal de lente, e a constante Zc é a distância do alvo de

referência até o sensor visual. O programa de processamento de imagens e os circuitos de

integração em tempo real e de comando são separados do robô e tem sua fonte de energia

externamente ao sistema. A distância r e o ângulo e o ângulo azimutal α podem ser

calculados a partir das coordenadas (xm,ym) do centróide da imagem pelo uso da equação

seguinte:

).sen()./tan().()cos(.tan.cos.

)´cos()./tan().()cos(.tan.cos.

πθαπθαβφ

πθαπθαβφ

−+−=−+==

−+−=−+==

frZZZRy

frZZZRx

vrcv

vrcv

)/arctan( ptpt xxyy −−=α )2.2(

)1.2(

Page 19: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

19

Figura 2.1. Esquema do sistema de navegação de um robô móvel autônomo

Ao fim deste procedimento de processamento, a posição do robô (xv,yv) é

calculada pelo uso das equações, comparando o valor do ângulo medido θc pelo ângulo

rotacional do robô α medido do eixo x do robô até o vetor (cp ,ct),com cp sendo o centróide

p (Cf. Figura 2.1) e ct o centróide da cor do time t. Para as dimensões do robô (padrão

MIROSOFT ) e da resolução da imagem usada é observado um desvio máximo de ±10

graus. A posição (x,y) de cada robô de um time de futebol de robôs resulta da média

ponderada das posições dos centróides da etiqueta do time e da etiqueta rosa (abordagem

particular de Pegoraro & Costa para o Time Guaraná – os dois centróides são empregados

para determinar o sentido de movimentação do robô):

Page 20: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

20

onde (x t,yt) são as coordenadas do centróide do elemento da cor do time; (xp,yp) são as

coordenadas do centróide do elemento p e c1 e c2 são fatores dependentes do tamanho das

etiquetas. As posições dos robôs adversários e da bola são definidos pelas coordenadas dos

centróides dos elementos das cores do time adversário e da bola, respectivamente As

orientações são determinadas pela direção do movimento, dada pela diferença entre a

posição dos elementos na imagem atual e na anterior.

Figura 2.2. Movimento do robô, orientado segundo a posição das etiquetas

21

21

21

21 ,

cc

ycycy

cc

xcxcx

ptm

ptm

+

+=

+

+=

)3.2(

Page 21: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

21

2.3 CATEGORIAS

2.3.1 MIROSOT

Esta categoria é disputada entre dois times, cada um composto por três robôs de

dimensões máximas de 7,5 cm x 7,5 cm x 7,5 cm, num campo verde retangular de madeira

de 130 cm x 90 cm. Uma câmera instalada a uma altura mínima de 2 metros acima do

campo captura imagens do jogo, que são transmitidas a um computador (off – board)

responsável por um ciclo de controle bem definido. Cada time é identificado por etiquetas

de 3,5 cm x 3,5 cm colocadas sobre os robôs, sendo que um time deve possuir etiquetas

amarelas e outro, azuis. A bola utilizada é uma bola de golf laranja [2].

A liga S-MIROSOT possui as mesmas características, mas é disputada por times

compostos somente de um jogador e o goleiro,

Page 22: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

22

Figura 2.3: Foto de jogadores da liga MIROSOT, patrocinados pela PMC-Sierra.

2.3.2 HUROSOT

A HUROSOT (Humanoid Robot World Cup Soccer Tournament – Torneio de

futebol de robôs com robôs humanóides) e´ uma liga de competição entre robôs

humanóides. Um robô humanóide tem duas pernas e seu tamanho é limitado à 40 cm em

altura e 15 cm em diâmetro – as pernas serão de 15 cm de diâmetro. A partida será

disputada entre dois times, cada um consistindo de três robôs, um dos quais sendo o

goleiro. Três componentes do time serão “humanos” são permitidos na partida: o treinador

e dois assistentes.

Page 23: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

23

Os robôs humanóides já estão em fase de desenvolvimento, mas as regras ainda

estão sendo preparadas. A liga S-HUROSOT (Single Humanoid Robot World Cup

Tournament – torneio de futebol de robôs com robôs humanóides simples) possui as

mesmas carcaterísticas, mas é disputada por times compostos somente de um jogador e a

bola.

2.3.3 NAROSOT

A NAROSOT (Nano Robot World Cup Soccer Tournament – Torneio mundial de

futebol de Nano-robôs) é uma liga de competição de futebol de robôs de nano-tecnologia.

O tamanho de um robô será limitado à menos do que 3,75 x 3,75 x 3,75cm e a partida será

disputada entre dois times, cada um com três robôs, sendo um dos robôs o goleiro. Três

componentes “humanos” são permitidos na partida: o treinador e dois assistentes. Um

computador de controle é permitido para cada time, para o processamento de visão e outros

programas de localização e identificação. A S-NAROSOT (Single Nano Robot World Cup

Soccer Tournament – torneio mundial de futebol de nano-robôs) possui as mesmas

características, mas é disputada por times compostos somente de um jogador e o goleiro.

Page 24: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

24

Figura 2.4 : Time Narosot brasileiro – “Bravo” – em ação.

2.3.4 KEPHERASOT

A KEPHERASOT (Khepera Robot World Cup Soccer Tournament - Torneio

mundial de futebol de robôs do tipo Kephe ra ) é uma liga de competição de futebol de

robôs com robôs kephera (besouro). A partida é jogada entre dois times, cada um

consistindo de três robôs kephera, um dos quais é o goleiro. Três componentes “humanos”

são permitidos em cada partida: o “treinador” e dois assistentes, com um computador de

controle por time, principalmente dedicado ao processamento de visão e outros programas

de localização e identificação. Exceto pelo tamanho dos robôs e do campo, as regras da

competição são similares às da MIROSOT. A S-KEPHERASOT (Single Khepera Robot

World Cup Soccer Tournament - Torneio mundial de futebol de robôs com robôs Kephera)

Possui as mesmas características, mas é disputada por times compostos somente de um

jogador e o goleiro.

Page 25: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

25

Figura 2.5 : Jogador de um time S- Kepherasot.

Page 26: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

26

2.4. SISTEMA DE FUTEBOL DE ROBÔS

2.4.1 ESTRUTURA

Sistemas de futebol de robôs são chamados sistemas de controle inteligente multi-

agente. Um sistema de controle inteligente é um sistema que pode controlar incertezas, é

autônomo e com capacidade de aprendizado. Este tipo de sistema tem que ser equipado

com a habilidade de reagir à vizinhança, processar dados, resolver problemas aprendizado

e raciocínio. Lógica Fuzzy, Redes Neurais Artificiais e Computação Evolucionária são os

algoritmos que podem melhorar a inteligência de um sistema de futebol de robôs. Todos

estes algoritmos são motivados pelo fato que eles podem imitar o raciocínio e o padrão de

comportamento de um ser humano. Um sistema multi-agente consiste de vários

subsistemas individuais, com seus mecanismos próprios de movimento, que podem se

comportar independentemente e também cooperar com os outros membros de seu time. A

vantagem de se usar um sistema multiagente é que ele pode resolver problemas bastante

complicados, que de outra forma seriam de resolução difícil.

Um sistema de futebol de robôs possui as características tanto de um sistema

multi-agente como de um sistema de controle inteligente – daí o interesse em seu estudo.

Um sistema de futebol de robôs consiste em robôs, sistema de visão, equipamento de

comunicação e um computador principal. Para a construção de tal sistema, são necessárias

várias tarefas como: escolher uma CPU, projetar o mecanismo de movimento dos robôs,

Page 27: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

27

escolher sensores, programas e o comportamento dos robôs. A inteligência pode ser

construída na CPU principal, dentro do robô móvel ou em ambos. Isto faz a diferença entre

um sistema de futebol de robôs baseado na visão e um sistema de futebol de robôs

baseado nos robôs (item 2.4.3).

2.4.2 SISTEMA DE VISÃO

O sistema de visão é utilizado para encontrar objetos em um playground, por

exemplo. No futebol de robôs, este procedimento tem como fundamneto a dife renciação

plena ( segmentação ) de todos os componentes da imagem – robôs e bola – do fundo da

imagem, por meio de procedimentos de “Thresholding” (Cf. Apêndice desta tese). A

identificação de cada componente do time e da bola é providenciada pela escolha judiciosa

das cores de cada time – azul e laranja - pois permitem um contraste maior (Cf. capítulo

3.1.2, onde a técnica empregada pelo TIME GUARANÁ é explicada com alguns detalhes

adicionais) e que emprega subtração inicial de imagens entre componentes da imagem e

plano de fundo.é empregado um sistema RGB de três cores e não um padrão de cinza, pois

a informação das cores é utilizada para localizar a posição dos objetos já que, com somente

imagens em escala de cinza, é difícil distinguir entre objetos de brilho semelhantes[3].

2.4.3 INTELIGÊNCIA

A escolha do ambiente de futebol de robôs como fonte de estudo da presente tese

deve integrar conceitos de diversas áreas como: Visão Computacional, Agentes

Page 28: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

28

Autônomos, Multi-Agentes, Inteligência Artificial, Robótica, Controle, Sistemas de Tempo

Real, Engenharia de Software, entre outros. Nenhum sistema integrando todos estes

conceitos é superior ou melhor do que outro: somente são distintos onde a inteligência

artificial é constituída. As propriedades destes sistemas [3] são descritas abaixo:

1) Sistema de futebol de robôs baseado em visão:

a) Sistema de futebol de robôs por controle remoto sem inteligência instalada

individual. Vantagem: estrutura simples e fácil de se construir, programação

flexível.

Desvantagem: requer computação realmente rápida e não

permite instalação de outros sensores como de toque

ou infravermelho.

b) Sistema de futebol de robôs com Inteligência Artificial à bordo

Vantagem: sistema fácil de modularizar e expandir e permite

o uso de sistemas de visão menos eficientes.

Desvantagem: risco de perca de consistência entre o programa

principal de navegação e o sistema de Inteligência

Artificial instalado nos robôs.

2) Sistema de futebol de robôs baseado nos próprios robôs:

Vantagem: fácil desenvolvimento com múltiplos robôs, com

resposta rápida e efetiva a mudanças ambientais.

Desvantagem: construir o robô é complicado e as

comunicações entre eles devem ser totalmente

eficientes.

Page 29: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

29

3. SISTEMAS EXISTENTES

3.1. EXEMPLO DE UM SISTEMA REAL – EQUIPE GUARANÁ

3.1.1 ESTRATÉGIAS

No time “Guaraná”[2] foram utilizados três comportamentos estratégicos principais,

que cada robô pode assumir de acordo com sua posição: goleiro, defensor e atacante. Um

robô fixo é designado para ser o goleiro, devendo sempre manter este comportamento. Já os

outros dois robôs alternam de comportamento, dependendo do estado do jogo; no entanto

sempre um deles é o atacante e o outro o defensor.

O comportamento do goleiro consiste em colocar-se na posição projetada da bola na

linha defensiva do gol. Nas outras situações, o goleiro permanece sempre em frente ao gol.

Este transita entre três estados, cada um com uma ação associada: colocar-se na posição

projetada do movimento da bola (estado i); colocar-se na posição final da bola yb (estado ii)

e colocar-se no centro do gol (estado iii). O programa de simulação anexo exemplifica de

forma clara estes comportamentos.

Page 30: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

30

O estado i do goleiro é o mais importante – é nele que as defesas realmente

acontecem. Nele, a linha de defesa é determinada por xgol ( linha onde o robô deve

permanecer) e por yprev (ordenada prevista do cruzamento da bola e da linha xgol). O yprev é

calculado pela equação:

sendo

(xb,yb) a coordenada da bola,

(dxb,dyb) os deslocamentos em x e y, da bola observados nos últimos quadros,

xgol a linha onde o robô goleiro deve permanecer para não sair da área nem invadir o gol.

Nos três estados (i, ii, iii ) a abcissa do robô é sempre xgol. Já a ordenada dos estados

nos estados i e ii é calculada, mas sempre respeitando os limites do gol:

onde:

b

golbbbprev dx

xxdyyy

)( −−=

maxmin gprevg yyy ≤≤)2.3(

)1.3(

Page 31: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

31

ygmin e ygmax são os limites inferior e superior do gol.

Estes valores estão definidos pelas dimensões do campo e do gol. Já as transições

entre os três estados ocorrem segundo as seguintes regras:

(1) xb < d1 e dxb < 0,

(2) xb <d2 e dxb < 0,

(3) xb ≥ d2

onde:

(xb,yb) é a coordenada da bola,

dxb é o deslocamento da bola (dxb >0, indica bola se dirigindo ao campo adversário ),

d1 é o limite estratégico a partir do qual o robô goleiro pode chegar à posição prevista da

bola para efetuar a defesa (valor empírico: 40 cm),

d2 é o limite estratégico a partir do qual se considera que não existe perigo iminente.

Figura 3.1. Comportamento do goleiro

Page 32: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

32

Figura 3.2. Estados do goleiro

A posição alvo do defensor situa-se na coordenada y da bola em uma faixa de

defesa distanciada de 30cm a 60cm do gol, bloqueando a bola para evitar sua trajetória ao

gol ou obstruindo um possível chute do adversário. Porém, o defensor sai do caminho da

bola para permitir que o atacante do mesmo time leve a bola para longe da área de defesa.

Quando o defensor e a bola estão em uma situação favorável com respeito ao gol

adversário, ocorre uma permuta de comportamento do defensor com o atacante,

simplificando e agilizando uma situação de ataque ao gol adversário. As situações

favoráveis acontecem quando o defensor é o robô mais próximo da bola e, além disso,

quando ele se encontra na área de transição.

Page 33: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

33

Figura 3.3. Área de transição.

O atacante tem dois estados distintos: (i) modo de posicionamento, quando o

alvo g é colocado atrás da bola numa posição que permita a condução da bola ao gol

adversário ou o bloqueio da bola empurrada por um atacante adversário – dessa forma, este

posicionamento serve também para fortalecer a defesa; (ii) modo de condução, quando o

robô se desloca e corrige sua trajetória – alterando o alvo g´ - para conduzir a bola de forma

a alcançar o gol adversário. Estas transições ocorrem segundo as seguintes regras:

(1) xb - d1 > xd ,

(2) xb + d1 < x d,

(3) xa < x b < xd e ya – yb < d2 e yd – yb < d2 ,

(4) xb – xd < d3 e

( )( )( ) max,min g

ba

gbbabg y

xx

xxyyyy ≤

−−+≤

Page 34: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

34

(5) xb – xa < d3 e

(6) xa – xb > d4,

sendo:

(xb,yb) a coordenada da bola,

(xa,ya) a coordenada do robô atacante,

(xd,yd) a coordenada do robô defensor,

d1,d2,d3,d4 valores determinados empiricamente sendo 4,20,4,8 cm, respectivamente,

ygmin , ygmax são os limites inferior e superior do gol,

xg é a coordenada da linha de gol do campo adversário.

Na figura 3.2 são apresentados os comportamentos do defensor e do atacante, onde os

números indicados referem-se às regras, sendo que o defensor e atacante podem, no

decorrer do jogo, trocar de comportamento estratégico.

( )( )( ) max,min g

ba

gbbabg y

xx

xxyyyy ≤

−−+≤

Page 35: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

35

Figura 3.4. Comportamentos do defensor e do atacante

3.1.2. SISTEMA DE VISÃO.

No sistema de sensoriamento visual desenvolvido para o “Time Guaraná”[2] o

reconhecimento dos objetos de interesse no campo – jogadores e bola – é baseado nas cores

da imagem capturada pela câmera, sendo que um conjunto de pixels adjacentes de cor

laranja identifica a bola; de cor azul, os robôs de um time e de cor amarela, os robôs de

outro time. Para a completa identificação e localização dos robôs no time, além da etiqueta

com a cor característica, exigida pelas regras, uma segunda etiqueta de cor rosa foi

utilizada, ambas margeadas por uma moldura preta: para evitar que duas etiquetas da

mesma cor, porém colocadas em robôs distintos que estejam em contato, possam ser

identificadas como um único elemento, evitando um alinhamento acidental. O ciclo de

controle do sistema foi definido pela taxa de aquisição de imagens, que neste caso é de 30

Page 36: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

36

quadros por segundo, ou seja, um quadro a cada 33 ms. Assim, em períodos de 33 ms. uma

nova imagem refletindo o estado atual do campo torna-se disponível ao computador para

processamento.

O módulo de visão computacional possui uma fase inicial (off-line) de

calibração, executada previamente ao início da partida. A fase off-line ocorre cerca de vinte

minutos antes da partida, quando as equipes preparam os times, instalam os equipamentos e

calibram o módulo de visão computacional, que nesta fase desempenha duas tarefas de

importância vital: os valores limites para classificação das cores e a determinação do

modelo de campo vazio. Durante a partida (fase on-line), a visão identifica, localiza e

rastrea a bola e os jogadores no campo.

A definição dos valores limites para a classificação das cores utilizadas no jogo –

azul, amarela, rosa e laranja – é feita através da iteração direta com um operador humano: a

princípio seleciona-se a cor a ser calibrada e depois apresentam-se continuamente imagens

do campo, onde a cor de interesse é selecionada pelo operador. Para cada seleção, são

calculados as relações R/G e G/B do valor RGB do pixel. Após diversas seleções, os

limites superior e inferior das relações R/G e G/B são estabelecidos como valores limites

para serem usados na classificação da cor calibrada: este processo deve ser repetido para

cada cor de interesse, principalmente para observar se há superposição dos limites de

aceitação para diferentes cores.

Page 37: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

37

. Figura 3.5 Etiqueta de cores dos robôs

Figura 3.6 – Fotografia do Time Guaraná em ação, mostrando as etiquetas

coloridas.

Page 38: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

38

Durante uma partida, para acelerar o processamento de imagens, é realizada uma

fase preliminar de subtração da imagem atual do campo com uma imagem modelo do

campo vazio – sem jogadores e sem a bola. Esta subtração é realizada somente nas bandas

R e G da imagem. A definição da imagem modelo do campo vazio também é realizada na

fase de calibração do sistema. São adquiridas N imagens do campo vazio, a um intervalo dT

entre as aquisições, para melhor refletir as oscilações de luminosidade devidas tanto à

iluminação não homogênea quanto aos ajustes automáticos de algumas câmeras utilizadas.

No time “Guaraná”, os valores de N e dT foram definidos empiricamente como 5 imagens

e 1 segundo, respectivamente. Para determinar a imagem modelo do campo vazio, calcula-

se a média entre as N imagens:

onde:

p(x,y) é o valor do pixel na coordenada (x,y) da imagem modelo do campo vazio,

pi(x,y) é o valor do pixels na coordenada (x,y) da i-ésima imagem do campo vazio,

N é o número de imagens consideradas,

(xi,yi)(xf,yf) são as coordenadas superior esquerda e inferior direita que definem os limites

do campo na imagem. Estes limites dependem da fixação da câmera em relação ao campo,

;...

;...,

,),(

),( 1

yfyiy

xfxixN

yxpyxp

N

ii

=

=

=∑

=)3.3(

Page 39: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

39

a qual deve ser feita de forma que todo o campo possa ser visualizado na imagem e que

longitudinalmente o campo esteja alinhado com o eixo horizontal da imagem.

A partir da imagem modelo, calculam-se os desvios dos valores dos pixels em

relação às outras N imagens, definindo os limites de variação em R e G:

onde:

LR,LG são os limites vermelho e verde da imagem, respectivamente, que serão utilizados

na subtração da imagem, durante a fase On-line do sistema,

r(p),g(p) são os componentes vermelho e verde do pixel p, respectivamente,

p(x,y) é o valor do pixel na coordenada (x,y) da imagem modelo do campo vazio,

(xi,yi),(xf,yf) são as coordenadas superior esquerda e inferior direita que definem os limites

do campo na imagem,

N é o número de imagens consideradas.

( )

( )

....;...;...1

;)),(()),((max

;...;...;...1

;)),(()),((max

fifi

i

fifi

i

yyyxxxNi

yxpgyxpgLG

yyyxxxNi

yxpryxprLR

===

−=

===

−= )4.3(

Page 40: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

40

Quando uma imagem é capturada, gera-se inicialmente a imagem diferença

pd(x,y) da subtração desta imagem atual pa(x,y) com a imagem modelo do campo vazio

p(x,y):

onde:

pd(x,y) é o módulo da diferença do valor do pixel na coordenada (x,y) da imagem atual com

a imagem modelo do campo vazio,

pa(x,y) é o valor do pixel na coordenada (x,y) da imagem atual- última imagem capturada,

p(x,y) é o valor do pixel na coordenada (x,y) da imagem modelo do campo vazio,

r(p),g(p) são os componentes vermelho e verde, respectivamente, do pixel p,

(xi,yi),(xf,yf) são as coordenadas superior esquerda e inferior direita que definem os limites

do campo na imagem.

( )( )

yfyiyxfxix

yxpgyxpgyxpg

yxpryxpryxpr

ad

ad

,...,;,...,

;)),(()),((),(

;)),(()),((),(

==

−=

−=)5.3(

Page 41: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

41

Os valores não nulos da imagem diferença correspondem aos elementos de

interesse e a ruídos. Como p(x,y), pd(x,y) e pa(x,y) são densidades de probabilidades,

correspondendo aos valores de pixel em um ponto determinado, o método de subtração de

imagens na verdade é um processo de determinação de threshold ótimo para fins de

processamento da imagem.

3.1.3 DETERMINAÇÃO DE TRAJETÓRIA

O sistema de sensoriamento visual é o mesmo proposto em parte por Kurata,

Grattan & Uchiyama [6] e por Pegoraro & Costa [2], mesmo para um caso inteiramente

diferente, é de aplicação válida nesta tese. Consiste principalmente de uma câmera CCD

(tipo KP-M1, produzida por Hitachi Denshi Co. Ltda, ou JVC com saída em S-VHS). O

programa de processamento de imagens é projetado para a obtenção do centróide e da

elipse de inércia da imagem, com circuitos de processamento para sua integração em tempo

real, utilizando como interface o Vídeo for Windows da Microsoft, que possibilita a

aquisição de imagens digitais oriundas de qualquer placa digitalizadora compatível (PCI

PixelView PV-Bt-848, por exemplo) , desde que seja capaz de operar em pelo menos 30

quadros por segundo com 24 bits RGB. O “Hardware” do sistema é composto de um

conversor analógico/digital, três processadores digitais de sinais (DSP), dois divisores

analógicos e elementos condicionantes de sinal adequados, controlados por um

microprocessador PC Pentium II 233 MHz. O princípio de operação de cada elemento do

circuito é basicamente o mesmo, sendo o cálculo do centróide e da elipse de inércia

realizado através dos momentos de primeira e de segunda ordem.

Page 42: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

42

Após identificar cada objeto na imagem, o sistema de coordenadas em pixels é

transformado em sistema cartesiano de campo (com unidades de 0.5 cm para cada pixel).

As fórmulas serão apresentadas consideram o campo de defesa no lado esquerdo:

no lado esquerdo do campo (menor x). Quando a partida é iniciada, cada robô é

identificado por um operador humano. A partir deste instante, a identificação se dá por

intermédio de um algoritmo de rastreamento, que usa um método de otimização exaustiva

para encontrar a solução de mínimo custo do seguinte sistema:

Na expressão 3.6:

r = 1,2,3 é o número do robô considerado,

i = 1,2,...,n é o número de um dos n elementos da cor do time encontrado na imagem,

j = 1,2,...,m é o número de um dos m elementos da cor rosa encontrados na imagem,

s(i,j,r) é a função-objetivo a ser minimizada,

d(e1,e2) é a distância cartesiana entre os elementos e1 e e2 no sistema de coordenadas,

etime(i) é o centróide do i-ésimo elemento com a cor do time,

erosa(i) é o centróide do j-ésimo elemento rosa,

eant(r) é o centróide do elemento da cor do time do r-ésimo robô identificado na imagem

anterior,

( ) ( ) ( )

( )( ) cmjeiedcm

cmreiedcmlsineli

lsinelieiedjeiedrjis

rosatime

rosatime

rosarosarosa

timetimetime

anttimerosatime

7)(),(4

14)(),(0)(

)()).()(),(,,

≤≤

≤≤≤≤

≤≤+=

)6.3(

Page 43: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

43

netime(i) é o número de pixels no i-ésimo elemento da cor do time,

nerosa (j) é o número de pixels no j-ésimo elemento da cor rosa,

litime e lstime são os limites inferior e superior do número de pixels, que definem, que

definem a faixa válida do tamanho do elemento ( etiqueta ) da cor do time,

litime e lstime são os limites inferior e superior de número de pixels, que definem a faixa

válida do tamanho do elemento ( etiqueta da cor rosa ).

Figura 3.7 Evitando obstáculos

Os valores de litime e lstime, litime e lstime mudam de acordo com o tamanho da

etiqueta, da resolução da imagem usada e da posição da câmara e receberam 60, 80, 20 e

30, respectivamente. Este algoritmo de otimização é aplicado para cada um dos três robôs

Page 44: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

44

do time, resultando em 3 pares de elementos diferentes (elemento da cor do time, elemento

rosa), cada um associado a um robô.

Inicialmente calcula-se a trajetória do robô r da posição atual s até a posição

alvo g , utilizando uma reta Rsg [2]. Se a trajetória de um obstáculo O cruzar Rsg, calcula-se

um alvo intermediário g´ para o robô r (Cf. Figura 3.7), levando-se em consideração o

ponto Pi onde as trajetórias de O e r se interceptariam e a posição atual do robô. Neste

processo, a velocidade e direção do obstáculo definem o ponto de intercepção Pi e o tempo

da colisão tc. Se tc é menor que o tempo tg que o robô r levaria para alcançar o alvo g (isto

é, 0< tc < tg) então um alvo intermediário g´ é definido. O alvo g´ é localizado a uma

distância d do obstáculo O, perpendicularmente a Rsg, considerando o caminho s-g´-g mais

curto. A distância d também é definida empiricamente. As bordas do campo também

impõem restrições à escolha do caminho s-g´-g mais curto, uma vez que o robô também

deve evitar colisões com as bordas. Este processo de evitar colisões é iterativo, sendo

aplicado a um obstáculo por vez – aquele que estiver mais próximo do robô r: se o

obstáculo O estiver muito próximo do robô, o alvo intermediário g´escolhido ainda poderá

resultar em colisão. Após o robô iniciar seu movimento, o ângulo de orientação medido a

partir da diferença de rotação entre as rodas motoras esquerda e direita (Cf. Figura 2.6), ψ ,

é controlado para mantê-lo na direção da próxima meta e após isto ele percorre uma linha

reta, da forma mais suave possível. A combinação da distância até o alvo e os sub-alvos

intermediários ( para evitar eventuais obstáculos) determinam a trajetória do robô. A

trajetória é traçada a partir do ponto representativo s , sendo diferente daquele traçado pelo

eixo de direção, porque:

Page 45: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

45

(1) O ângulo de manobra real ψ s se posicionará entre 90º e 270º em relação ao

eixo x do campo, e

(2) A posição (xm,ym) e o ângulo α do ponto representativo s são dados pelas

seguintes equações, que explicam a dinâmica do robô móvel:

Com Ltd sendo a distância entre o eixo motor e o eixo de direção do robô móvel, dT o

tempo de enquadramento – uma imagem a cada 33ms – e α , Vm ( no caso do time

“Guaraná”, Vm é constante e estipulado como 1 m/s) ωm dados pelo cálculo dos momentos

de segunda ordem:

Entretanto, é necessário modificar o valor de referência do ângulo de manobra

para ser maior, com a finalidade de trazer o ponto representativo s o mais próximo possível

do eixo de direção [6]. O ângulo ψm entre a direção do veículo e o alvo ( ou sub -alvo) mais

∫ ∫

∫∫

==

=

=

dTdT

tdm

dT

smm

dT

smm

dtLVdttt

dtVty

dtVtx

00

0

0

sen)/()()(

sencos)(

,coscos)(

ψωα

αψ

αψ)7.3(

( )yy

yyxxtdmm

yy

yyxx

td

mm

IdT

IIdLV

I

II

dTd

LV

..

,.

−==

−==

αω

αω

)8.3(

Page 46: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

46

próximo deve ser escolhido como ângulo de manobra em vez do ângulo ordinário ψ s. Esta

mudança significa um ganho variável K(ψ s,Rsg), que será empregado no sistema. A variável

ganho muda com a alteração do ângulo de manobra ordinário ψs e com a distância Rsg . Seu

valor calculado torna-se maior a medida que a distância Rsg do robô até o próximo sub-alvo

torna-se menor. Pelo uso da variável ganho, o desempenho do robô pode ser melhorado.

O ponto de interseção Pi = (x i,yi) é definido como o ponto onde a trajetória do

robô r cruza a trajetória do obstáculo 0. Uma aproximação utilizada por Pegoraro & Costa

(1998) é a seguinte: o número de quadros nx que decorrem no instante atual até r e O se

interceptarem em x e o número de ny até r e O se interceptarem em y são:

Onde (xr,yr) são as coordenadas do robô; (xo,yo) são as coordenadas do obstáculo e dxr, dyr,

dxo ,dyo são os deslocamentos do obstáculo e do robô, dados pela diferença entre a posição

atual e a anterior. Se nx < 0 ou ny<0, não existe ponto de intersecção. O número de quadros

até a interseção é dado por: ni=min(nx,ny). No início da iteração do cálculo, nx e ny podem

ser diferentes e ni pode corresponder a um número menor que o número real de quadros até

a intersecção; entretanto nx e ny convergem para o mesmo valor nos próximos passos de

iteração ( como já foi dito, cada passo de iteração dT corresponde a 33ms, ou seja, a cada

quadro de imagem). O ponto de interseção (x i,yi) é calculado como segue:

ro

ory

ro

orx

dydyyy

n

dxdxxx

n

−−

=

−−

= ,)9.3(

Page 47: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

47

3.2. OUTROS SISTEMAS

Outros sistemas de simulação de futebol de robôs usam diferentes procedimentos e

algoritmos de navegação. O primeiro simulador desenvolvido por Itsuki Noda para a

SONY, por exemplo, é escrito em linguagem LISP para funcionar em ambiente de CAD, e

é patente privada da própria SONY (Cf. página oficial da Robocup na internet). Existem

simuladores mais recentes, como o ROBOWIN que emprega os mais avançados

procedimentos como a lógica FUZZY, com implementos sofisticados de programação

estatística e de competição on-line.

Neste item apresenta-se uma breve análise de alguns sistemas de simulação de

ambientes cooperativos entre robôs.

3.2.1. CARNEGIE-MELLON UNIVERSITY MILIBOT SIMULATOR

Seu simulador foi projetado para testar algoritmos e arquiteturas para times de robôs

multidistribuído e ganhou o quarto lugar na primeira Robocup ( time com interdependência

entre robôs com assistência de um líder de time para coordenar movimentação e sensores).

Possui as seguintes características: suporte multiplataforma - GUI (Graphics Universal

.

,

ooii

ooii

ydyny

xdxnx

+=

+=)10.3(

Page 48: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

48

Interface) server e simulador escritos inteiramente em JAVA (v.1.0); capacidade de ser

observado em webpage, robôs conectados via socket ou porta serial (os programas para os

robôs podem ser escritos em C++ e o GUI em JAVA); controles e interface dinamicamente

configurados (configuração dos robôs e do painel de controle carregados a partir de

scripts); habilidade de “arrastar e soltar” os robôs durante a operação e habilidade de

adicionar obstáculos durante operação. Além destas, o simulador pode admitir outras

configurações de painel de controle e suporte para vários tipos de robôs e configurações. O

simulador possui; pacotes configuráveis para simulação e caso real, controle dos robôs de

forma local ou distribuída (cada robô pode ser controlado de forma independente ou em

conjunto); controle de um único time ou vários times em conjunto, no caso do simulador,

cada robô virtual tem seu próprio algoritmo de navegação; suporte de arquivos de texto e

outros arquivos com informações; suporte à eventos: iniciar, terminar, faltas e etc.

A guisa de comentário: pode ser dito que este é um sistema quase perfeito, mas que

funciona melhor em ambiente industrial do que em competição oficial entre times de robôs,

pois seu algoritmo principal de navegação tem como prioridade a detecção e a navegação

por entre obstáculos e não manobras e trajetórias de competição. Sua complexidade

excessiva custou-lhe a vitória na primeira Robocup porém ainda é um dos melhores

simuladores de robôs em ambiente cooperativo já desenvolvidos.

Page 49: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

49

Figura 3.8. Simulador Millibot da Carnegie-Melon University

3.2.2. TOKYO-U SIMULATOR

Atualmente é o simulador padrão da Robocup, adotado também pela Humboldt

Universitat zu Berlin e que foi copiado integralmente pelo ROBOWIN. Suas características

são: suporte multiplataforma com GUI server e simulador escritos inteiramente em C++

(Borland C++ v.4.5); capacidade de partidas on-line via socket ou porta serial e suporte

para vários tipos de estratégias (Lógica FUZZY, Lógica Mu e outras) e suporte a eventos:

Page 50: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

50

iniciar, terminar, chute inicial e outros. O programa principal do simulador admite

interfaces configuráveis tanto para Windows como para Linux ou Sun OS: o modelo oficial

de Itsuki Noda, por exemplo, usa uma interface desenvolvida por Klaus Dorer, Albert-

Ludwig Universitat zu Freiburg para Windows ou Linux RedHat v.6.0.

É o padrão Robocup Jr. oficial, pois permite partidas on-line e off-line (partidas

jogadas diretamente pela internet ou como simulador simples). Porém uma análise mais

detalhada mostra que no caso off-line trata-se mais de uma animação com seqüências fixas

de imagens, em que a alteração da estratégia utilizada – Fuzzy ou outras – provoca

variações no esquema original. Como trata-se de um simulador didático, este aborda casos

simples de competições de forma original.

Figura 3.9. Interface do Simulador Robocup Oficial.

Page 51: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

51

3.2.3. ROBOWIN

É uma versão um pouco melhorada do Tokyo-U original, feita pelo autor da

interface do Robocup oficial: Klaus Dorer, com maiores facilidades para competições off-

line mas com o mesmo ambiente GUI, mesmo suporte a eventos e mesmas classes em C++

para a navegação dos robôs. Possui como acréscimo um módulo especial descrevendo o

comportamento estratégico de cada jogador individualmente e logfiles previamente

gravados – o que dispensa a obrigatoriedade de acessar a internet para realizar as partidas.

Porém, compartilha a mesma deficiência básica do Tokyo-U/ Humboldt Universitat zu

Berlin: as partidas off-line são animações, ou seja, seqüências pré-determinadas de imagens,

cujas variações básicas ilustram os vários comportamentos estratégicos à disposição dos

times de jogadores.

3.2.4. UNESP – CBFR

O mesmo sistema do simulador da Escola Politécnica de São Paulo, mas com

uma série de vantagens. O Simulador UNESP – CBFR (Copa Brasil de Futebol de Robôs)

tem como características: não possuir suporte multiplataforma (roda somente no Windows)

e apresenta somente partidas off-line. As imagens são unidas dinamicamente por arquivos

DLL. Possui suporte a eventos variados como iniciar partida, faltas, placar, etc, o que o

torna mais didático do que o Simulador de Pegoraro & Costa, por exemplo.

Page 52: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

52

Figura 3.10 – Simulador UNESP – CBFR ( Oficial )

3.3 COMPARAÇÃO DOS SISTEMAS

A grande maioria dos sistemas existentes para avaliação pública, porém, segue as

mesmas linhas de programação: navegação por implementação de equações cinemáticas

clássicas em tempo real ou com o uso de bancos de imagens pré-gravadas – o que é usual

em simuladores implementados JAVA e C++ - utilizando sequências ordenadas de métodos

e rotinas ou por meio de união dinâmica de arquivos e recursos (DLL), que é procedimento

usual em programas desenvolvidos em DELPHI. Na Tabela 3.1 apresentam-se as

principais características de alguns simuladores à título de comparação.

Page 53: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

53

Tabela 3.1. Principais características dos simuladores Carnegie-Mellon,

Tokyo-U/Robowin e UNESP/GUARANÁ.

Carnegie-Mellon Tokyo-U e Robowin UNESP e

GUARANÁ

Multiplataforma Sim

(Windows, Linux e

SUN OS )

Sim (Windows ,

Linux e SUN OS)

Não (somente

Windows)

Suporte a eventos Sim ( Suporte

completo para

futebol e para uso

industrial)

Sim ( Suporte para

eventos de futebol)

Sim ( Suporte para

eventos de futebol –

O simulador UNESP

possui maior

variedade)

Partidas via internet sim sim não

Linguagem JAVA ( GUI server

em JAVA e robôs

opcionalmente em

C++)

C++

(Borland C++4.5 e

seguintes)

DELPHI

.

Page 54: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

54

4. SIMULADOR DE FUTEBOL DE ROBÔS – PROGRAMA EM DELPHI

4.1. CONSIDERAÇÕES INICIAIS

A presente simulação foi desenvolvida baseada nas estratégias propostas por

Pegoraro & Costa (descritas no item 2.6) , tendo como fundamento as regras da FIRA. Seus

aspectos principais estão codificados em um programa em DELPHI que descreve de forma

completa o comportamento de uma partida de futebol de robôs, consistindo de cinco partes

principais:

(1) o arquivo executável,

(2) Estrate1.pas,

(3) Estrate2.pas,

(4) Estrate1.dll,

(5) Estrate2.dll,

Os programas Estrate1.pas e Estrate2.pas são detalhados na distribuição oficial do

simulador em DELPHI: descrevem de forma completa os comportamentos estratégicos .

Estão escritos em Pascal e têm como referência direta os arquivos Estrate1.dll e

Estrate2.dll, que são bibliotecas de links dinâmicos (bitmaps dos robôs jogadores, do

campo e etc.).

Estrate1.pas pode ser divido em três partes, ou subrotinas básicas:

Page 55: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

55

• A primeira parte constitui-se do algoritmo posicional do time de futebol de robôs. Se o

robô atacante estiver dentro de certas coordenadas cartesianas (uma faixa do campo

determinada por valores empíricos de X e Y) e em um ângulo diferente de 90 graus, ele

é eleito para a função de atacante – de outro modo, ele será escolhido para defesa. O

robô goleiro ocupará sempre uma posição Ymax e Ymin, delimitando a grande área

antes do gol. Uma vez determinado qual o robô que ocupa uma posição melhor em

relação a bola, passa-se a segunda parte, que trata do algoritmo de navegação do robô

móvel.

• Na segunda parte, se X robô > X bola e – principalmente – para Y robô > Ybola,

aplicam-se as fórmulas para se achar o ângulo α do robô móvel, determinando-se assim

a posição do robô móvel em relação a bola.

• Na terceira parte, o programa checa novamente a imagem do campo de futebol de

robôs, registra a nova posição do robô e da bola e computa um novo ângulo α para o

robô móvel, repetindo este procedimento para cada intervalo de imagem dT.

O Estrate2.pas tem também três partes significativas:

• A primeira parte idêntica a Estrate1.pas – o programa delimita as regiões do campo,

identificando os robôs que estão nelas e designando- lhes o papel ou de atacante ou de

defensor. Uma vez cumprida esta tarefa, o programa parte para a segunda parte.

• Na segunda parte, o programa calcula as posições relativas do robô atacante e da bola e

computa a velocidade e a aceleração que este deve ter para alcançar a posição

(X,Y)robô = (X,Y)bola.

Page 56: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

56

• Na terceira parte, o programa checa novamente a imagem do campo, dos robôs e da

bola para o intervalo de tempo seguinte dT, computando a velocidade e a aceleração

dos robôs atacante e defensor para a nova configuração de imagem.

Os arquivos em DLL podem ser resumidos da seguinte maneira:

Estrate1.dll

(1) Bitmaps - imagens dos jogadores do futebol de robôs – padronizados para o

simulador e arquivos de imagens para leitura direta, no caso real

(2) Menu - como mostrado na window do simulador,

(3) Dialog- barra de tarefas e janelas de diálogo,

(4) Stringtable - string de valor “101”,

(5) Font - fontes principais usadas no programa,

(6) Accelerators - 0, 101, VIRTKEY,

(7) Rcdata- dados opcionais para o arquivo resource (.rc),

(8) Cursor- padronizado para todos os casos,

(9) Icon- padronizado para o caso do simulador,

(10) Versioninfo - informações sobre a versãodo programa,

(11) DLGinit- dados opcionais para arquivos DLGinit.

Estrate2.dll:

Possui a mesma estrutura do arquivo anterior,porém para o time adversário.

Page 57: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

57

4.2. DETALHES DE IMPLEMENTAÇÃO DO SIMULADOR

Como visto na proposta de simulador de futebol de robôs de Pegoraro &

Costa[2], a questão fundamental é criar um conjunto de ações representadas por um

programa de computador, que represente fielmente o que acontece em uma competição de

futebol de robôs. Analisando-se o problema e diversas soluções, nota-se que o sistema de

navegação proposto para o simulador é o ideal como ponto de partida para

desenvolvimentos futuros. Tal desenvolvimento consiste simplesmente em um programa

em linguagem DELPHI (ou PASCAL) com arquivos encadeados dinamicamente ( arquivos

DLL) cujo procedimento é basicamente calcular uma linha reta entre o centróide do robô e

a bola, reta esta que tem como parâmetros as coordenadas do robô e da bola, juntamente

com o ângulo que o vetor posição do centróide da bola faz com origem das coordenadas e o

eixo das abcissas.

Page 58: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

58

Figura 4.1. Interface Visual do Simulador de Pegoraro & Costa ( 1998).

Figura 4.2. Sistema de navegação original.

Page 59: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

59

No código fonte em Pascal este sistema é encontrado codificado nas seguintes

instruções principais:

1) Para a bola parada: se a coordenada yr do robô for maior do que a coordenada yb

da bola, a rotina empregada determina uma nova coordenada y tendo como

parâmetros a coordenada y inicial, mais a tangente do ângulo que a bola faz com o

referencial inercial multiplicada pela diferença da distância (coordenada x) entre o

jogador e a bola. Deste modo, calcula uma linha reta entre o centróide do robô até

o centróide da bola, com o coeficiente angular dado pela tangente do ângulo que a

bola faz com o referencial fixo ao sistema, como visto na sequência de instruções

abaixo:

begin

novoy:=round(dlldados[17]+( (sin((pi/180)*dlldados[15])/cos((pi/180)*

dlldados[15]))*(dlldados[21]-(37+dlldados[16])) ));

end

No caso de yr do robô ser menor do que yb da bola, o conjunto de instruções é o

mesmo com apenas a troca do sinal referente ao termo da tangente da reta.

Page 60: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

60

2) Para a bola em movimento o esquema original é igualmente simples: no decorrer

do jogo a bola ocupa diversas posições no campo, e os jogadores de ambos os

lados devem se adaptar às mudanças ocorridas, conforme representado

esquematicamente na Figura 4.3:

Figura 4.3 Sistema para bola em movimento.

O código fonte para estas rotinas de programação da bola em movimento, é

organizado da seguinte maneira:

1) Temos yr do robô for igual ao yb da bola. Se a coordenada xb da bola for menor que

coordenada xr do robô e se ângulo que o centróide do robô faz com o plano de referência

for diferente de 180 graus, então a rotina realiza a seguinte verificação: se o ângulo a

calculado pelo programa for igual ou diferente do ângulo que a bola faz com o plano de

referência, verifica-se em seguida se as coordenadas xb da bola são maiores ou menores das

Page 61: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

61

do jogador, alocando-se então a velocidade da bola e do jogador de acordo com esta regra

de decisão. Com isto o programa determina uma velocidade para o robô ( 0, 1 ou 2000),

conforme pode ser observado a seguir:

begin

dllacao:=1;

dllangulo:=180-dlldados[25];

end {end do angulo robô <>180}

else

begin

dllacao:=0;

dllveloc:=2000;

end;{end do angulo robô = 180}

end {end do x bola < x robô }

2) No caso contrário da regra de decisão, para o ângulo do robô diferente de zero, o

robô “corrige” seu ângulo em relação ao referencial fixo ao sistema, tornando-o o mais

similar possível ao ângulo da bola (assumindo a velocidade angular ω). Calcula, então, a

trajetória em linha reta. A bola, no programa original, é posta em movimento por uma

função do tipo randomize, que é utilizada de maneira similar nas outras rotinas do

programa:

Page 62: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

62

begin

dllacao:=1;

dllangulo:=180-dlldados[25];

end {end do angulo robô <>180}

else

begin

dllacao:=0;

dllveloc:=2000;

end;{end do angulo robô = 180}

end {end do x bola < x robô }

4.3. SIMULADOR DE FUTEBOL DE ROBÔS DESENVOLVIDO

Baseado no simulador descrito no item 4.2, propõe-se uma nova visão deste

problema, encarando-o de um ponto de vista bem diverso. Em primeiro lugar escolheu-se,

para um simulador de futebol de robôs aperfeiçoado, a linguagem JAVA, em lugar do

DELPHI original. Esta escolha se deve ao fato de que a linguagem JAVA garante

portabilidade para o simulador, isto é, dá a capacidade de poder ser executado diretamente

em qualquer navegador apto para JAVA (Internet Explorer ou Netscape). Além disso, o

Page 63: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

63

interpretador JAVA é multi-thread, o que permite refletir de forma direta no simulador a

concorrência característica do problema sendo simulado.

JAVA, assim como DELPHI, é uma linguagem Orientada a Objetos. Pode-se

portanto utilizar os conceitos de: – Classe e Herança [8] . “Classe” é um modelo para vários

objetos com recursos semelhantes e herança é o mecanismo que organiza as classes e seus

comportamentos. O programa de simulação de futebol de robôs em JAVA possui somente

uma única estrutura de classe – a classe Simulador, que é do tipo “Thread”, com os

métodos hierárquicos característicos da classe “Applet”.

A sintaxe “Simulador” ( “thread” único) pode ser dividido nas seguintes partes

principais:

1) A rotina para importar as classes em JAVA adequadas ao programa, que se

limitam as instruções:

import java.awt.*;

import java.awt.Font;

2) A classe pública ( única e principal), subclasse da classe “Applet” (que por

sua vez é subclasse da classe “thread”) em que o programa principal se

insere da seguinte forma:

public class Simulador extends java.applet.Applet implements Runnable

3) O método public void init que inicia o programa e que declara quais imagens

serão carregadas pelo programa e desenhadas na tela. O termo método é

característico da terminologia Orientada a Objetos (classes encapsulam

atributos - variáveis - e incorporam os métodos – públicos ou privados- que

Page 64: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

64

manuseiam estes atributos). O void init executa-se apenas uma vez pelo

navegador aplicado,

4) O método public void paint (também chamado como Graphics screen) que

desenha as figuras na tela. O termo void, análogo ao similar em C/C++,

declara que uma função do programa não retorna um valor explícito ao final.

5) O método public void start, que inicia o thread, isto é, habilita-o a ser

executado imediatamente. Ele entra em uma fila de instruções e concorre

com os outros threads habilitados. Para ser executado, é necessário o método

run.

6) O método public void run, que é o programa em questão (dentro do “thread”)

juntamente com a entrada de execução do código, tendo o run sido

previamente estabelecido.

7) O método public void stop, que termina o programa: executado toda a vez

que a aplicação for desativada – faz par com start.

public void stop() {

if (runner != null) {

runner.stop();

runner = null;

}

}

8) O método public void update (Graphics screen), que desenha o movimento

seguinte dos elementos móveis da tela – isto é feito quadro-a-quadro.

public void update(Graphics screen) {

Page 65: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

65

Paint(screen);

}

}

Outras modificações propostas sofisticam o controle da trajetória do robô à bola.

No original em DELPHI o robô chuta a bola em qualquer direção, ditada pela posição

relativa do robô à bola. No esquema proposto, calcula-se ou interpola-se um ponto

Figura 4.4 Sistema de navegação modificado em JAVA

para a bola em movimento.

intermediário , conforme mostrado na Figura 4.4, tendo como parâmetro o dobro do ângulo

a original como primeira aproximação. Outros valores – um terço, um quarto e outros

podem ser empregados para refinar o resultado, pois eles acrescentariam mais estágios na

aproximação do jogador à bola, permitindo assim um controle mais sofisticdo da trajetória.

Tome-se como exemplo inicial o jogador Defensor 1 ( jogador 2 do time azul): o

jogador de defesa do time azul possui uma estratégia otimizada: primeiro traça uma linha

Page 66: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

66

reta até a bola e em seguida interpola um ponto a um terço da distancia até a bola, alinhada

com a meta adversária [9]. Sendo o simulador uma reprodução simplificada dos

procedimentos usuais de uma partida de futebol de robôs, o programa inicia a computação

com o sinal de entrada do sistema de navegação, enviando um fator de aceleração aos

“jogadores” (valor unitário, positivo ou negativo dependendo das posições relativas dos

jogadores no campo). Estes dados serão processados pela rotina de programação da

seguinte maneira: com os fatores de aceleração em tempo unitário, são calculadas as

velocidades lineares (sendo um simulador, fatores de torque ou de correção diferencial

entre coordenadas calculadas e reais no campo não entrarão na computação) e, a partir daí,

as novas coordenadas dos jogadores são calculadas por meio das interpolações necessárias.

Mais adiante será visto que no caso real, a sequência de passos é diferente, pois o programa

realmente inicia com os dados visuais coletados pelo sensor CCD e os dados enviados aos

robôs são processados de forma ligeiramente diferente pelo programa de processamento de

imagens. O simulador serve tão somente para avaliar os algoritmos de navegação

empregados – e neste aspecto a simulação deve seguir o mais próximo possível o caso real.

sim

Acelerações nas Coordenadas x e y

X defensor1 > (380-38) Aceleração em x

igual a –1 (valores unitários)

Page 67: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

67

não

sim

não

sim

não

Figura 4.5: Fluxograma do sistema de navegação do simulador de futebol de robôs

As alterações no programa original podem ser codificadas em JAVA de forma

similar ao programa em PASCAL, mas de forma mais simples: acrescentam-se as

instruções necessárias às instruções de trajetória (na forma de uma interpolação “robusta”),

de forma que o bloco do programa primeiro executa a primeira instrução – ponto

intermediário a um terço da distância entre o jogador e a bola - e em seguida calcula uma

X defensor1 < x da bola

Aceleração em x Igual a 1 (valores unitários)

(x da bola – X defensor) > 150

Aceleração do jogador Em x = -1 (valores unitários)

1º passo de programa: novo x igual a um acréscimo simples

2ª passo de programa: novo x igual a uma interpolação linear, com um ponto calculado a um terço da distancia do jogador à bola

Aceleração em x=1

1º passo de programa: novo x igual à um acréscimo simples

2ª passo de programa. Novo x igual a uma interpolação linear, com um ponto calculado a um terço da distancia do jogador à bola

Page 68: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

68

linha reta simples entre os centróides do jogador e da bola, o mais alinhado possível com a

meta adversária.

Para o rebote da bola com os jogadores e dos jogadores entre si, utilizou-se um

algoritmo chamado de “Clipping”. No simulador de Pegoraro & Costa usou-se uma

manipulação de arquivos DLL para gerar tal efeito. Entretanto o autor achou mas simples e

conve niente utilizar o algoritmo de “Clipping”, que permite a utilização de um único bloco

de instruções ( “thread”) . Temos a imagem da bola ( coordenadas X bola, Y bola) e a

imagem de um jogador ( coordenadas X jogador, Y jogador). Partindo destes parâmetros o

algorítmo de “clipping” realiza uma série de testes de aferição de resultados para cada

configuração jogador-bola, examinando os casos em que há intersecção das imagens do

jogador e da bola ( Cf. Figura 4.4).

não B,C,E,G,H

A,D,F, sim

A,B,D,F,G não

sim C,E,H

H sim não E,C

E não

sim C

Figura 4.6: Fluxograma do algoritmo de “Clipping”

X da bola < (xjogador - 22)

X da bola > (xjogador+22)

Y da bola < (yjogador+22)

Y da bola > (yjogador-22)

O ângulo que a bola faz com o plano de referência é – por simetria - invertido em sinal para que a bola rebata no limite da imagem do jogador. Para cada face pode ser feito um fluxograma de “Clippimg” semelhante

A bola continua na trajetória original

Page 69: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

69

Este algoritmo de pode ser expandido para a criação de regras de decisão – que

permitem uma sofisticação maior na estratégia do jogo, para evitar colisões entre os

jogadores e para fornecer mais vivacidade ao jogo, evitando um confronto simétrico de

estratégias opostas (Cf. Figura 4.7).

Figura 4.7. Possíveis localizações da bola (coordenadas Xb,Yb) com relação

ao jogador (A,B,C,D,E,F,G,H), explicando o algoritmo apresentado

na figura 4.6 e definindo os 8 quadrantes possíveis de localização

da bola.

Estas regras de decisão são adaptadas para todas as relações entre os jogadores e

a bola, e entre os jogadores entre si. Pode-se igualmente ampliar e sofisticar o alcance de

tais regras, tomando-se o cuidado de não “forçar” resultados determinados ou causar

movimentos da bola e dos jogadores não condizentes com as regras da competição de

Page 70: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

70

futebol e robôs. No caso real a sequencia empregada – e os parâmetros em jogo - são

ligeiramente diferentes.

Como o sistema navegação no caso real recebe os dados da câmera CCD através do

Programa de Processamento de Imagens, estes deverão passar por um pré-processamento,

que será detalhado a seguir:

1) Primeiro calculam-se os ângulos dos jogadores e da bola, juntamente com o

centróide. Toma-se por exemplo o ângulo e o centróide de um jogador e da bola:

Figura 4.8. Determinação dos parâmetros de ângulo do jogador e da bola.

2) Sendo o objetivo principal para fins de navegação a obtenção de uma reta entre o

centróide do jogador e da bola, esta é computada como tendo o coeficiente de

inclinação m a tangente de (b – a). Ora, esta tangente é o módulo da reta e é

proporcional à velocidade que o jogador deve ter para alcançar a posição em que

a bola está, segundo esta mesma linha reta [2]. Portanto, o sistema de navegação

Page 71: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

71

deverá enviar ao jogador um sinal – positivo ou negativo - que será o pulso de

aceleração necessário para alcançar a posição da bola,

3) A equação empregada para este caso será:

Sendo V velocidade final, V0 a velocidade inicial – geralmente nula , a a

aceleração e ∆t o intervalo de tempo entre um segmento de programa e outro.

Portanto, o sistema envia um sinal para o jogador, para que seus motores iniciem

o movimento com um pulso de aceleração a no intervalo ∆t.

4) Para o caso real, outros fatores que devem ser pré-processados antes do envio do

sinal de “acelerar” ou “desacelerar” são o torque do veículo e as correções

diferenciais entre a posição computada e a posição real, obtidas pela calibração

do sistema de sensoriamento visual no campo antes de começar a partida de

futebol de robôs.

5) O programa principal então tem duas opções para calcular as novas coordenadas

dos jogadores e da bola: ou por meio da fórmula cinemática direta:

ou por meio de passos intermediários: calculando-se primeiro a velocidade e em

seguida as posições relativas. Este método é o que foi empregado no simulador

pois permite passos intermediários de interpolação e um refinamento maior no

taVV ∆±= .0 )1.4(

2

2

00tatVxx ∆+∆+= )2.4(

Page 72: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

72

sistema de navegação (tempo unitário e aceleração unitária para o caso do

simulador. Outros valores podem ser empregados, resultando em valores

diferentes):

V = V0 + a*t : t = 1 (tempo unitário),

xd1move = V.

( codificação válida para todos os jogadores: xPosition = coordenada x do

centróide da bola. V0 é a velocidade inicial, geralmente nula )

xd1 = (xd1+1) - 1*(xd1 - xPosition)*xd1move/10 - xd1move*(xd1move-

1)*(xPosition-xd1)*(xPosition-xd1)/40

Page 73: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

73

5. RESULTADOS OBTIDOS

Foi apresentado nesta tese uma proposta de simulador de futebol de robôs em

linguagem JAVA capaz de utilizar o sistema proposto por Pegoraro & Costa [2]. Este

ambiente permite operações multi-thread, que sào importantes para simulações que

envolvam cooperação entre robôs. Na presente tese adotou-se apenas um thread por

simplificação. Apesar disso, o simulador desenvolvido permite futuras ampliações,

inserindo-se os conceitos multi- thread.

Testes objetivos foram feitos, provando ser o simulador em JAVA, dentro das

premissas empregadas, consistente em teoria e bastante prático. Porém algo deve ser dito

sobre o verdadeiro trabalho em uma implementação: raramente um algoritmo permanece

impecável após os primeiros testes, sendo necessário ajustes complementares para que o

sistema simule as ações da forma exata como prescrito pelo projetista.

Na figura 5.1 apresenta-se uma sequência de imagens do início da partida, em que

a estratégia de movimentação e a trajetória de cada componente do time de futebol de robôs

é vista na sua forma mais simples: cada jogador vai em direção à bola pelo caminho

estrategicamente mais simples.

Page 74: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

74

Figura 5.1. Sequência de imagens do simulador desenvolvido em JAVA

ilustrando as trajetórias dos jogadores segundo o algoritmo

descrito nesta seção.

Nas Figuras 5.2 (a) e (b) temos uma situação mais complexa: a bola é rebatida

velozmente de uma seção do campo para a seção adversária (do campo do time laranja para

o campo do time azul). O jogador atacante azul, mais veloz e mais hábil que o similar no

time laranja, toma a iniciativa e manobra parabolicamente, evitando os outros jogadores

que também estão indo em direção à bola, até alcançar esta e chutá- la de volta à meta

adversária.

Page 75: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

75

Figura 5.2 (a): Manobra complexa do atacante azul.

Page 76: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

76

Figura 5.2 (b). Manobra complexa do atacante azul.

Page 77: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

77

Está claro que estas estratégias não são definitivas ou estanques: como o programa

do simulador é em JAVA e está aberto, qualquer modificação ou sofisticação estratégica é

permitida visando a melhor demonstração dos princípios lógicos e de Inteligência Artificial

desenvolvidos.

Page 78: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

78

6. CONCLUSÕES

Foi desenvolvida nesta tese uma simulação de movimento de robôs num ambiente

cooperativo de futebol, através de algoritmos que permitem o direcionamento e o

posicionamento de um conjunto de robôs. Tendo como paradigma o trabalho feito no time

de futebol de robôs “Guaraná” da Escola Politécnica de São Paulo, foram apresentados

comentários ao programa em DELPHI do simulador de futebol de robôs desenvolvido a

partir dos trabalhos em que tais algoritmos ( parte deles embasados em linhas puramente

empíricas ) encontraram sua justificação.

Mostrando como um todo a validade do sistema de navegação proposto, o

simulador de futebol de robôs foi elaborado em JAVA, e aponta para uma série de

confirmações experimentais e práticas dos princípios tratados nesta tese. Abrindo portas

para futuras modificações, um dos resultados mais significativos foi a aplicação plena dos

métodos e recursos da linguagem JAVA, devido à sua portabilidade ( capacidade de ser

executado em vários tipos de navegadores). Com o código inteiramente aberto o usuário

poderá futuramente alterar os modos de navegação de cada jogador individualmente ou em

grupo ( adotando o sistema de navegação mais apropriado) e realizar toda a sorte de

aperfeiçoamentos de forma livre e direta .

Para a continuidade da tese, podem ser propostos aperfeiçoamentos no

simulador de futebol de robôs em JAVA e o aproveitamento das estratégias de

movimentação nele desenvolvidas para a implementação de times de futebol de robôs .

Page 79: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

79

Desenvolvimentos de interesse são o uso de múltiplos “threads” ou blocos de instruções

específicos para cada componente do time de futebol de robôs, estratégias e manobras mais

sofisticadas e a criação de sub-classes poderá permitir alterações de estratégias.

Outro aspecto importante para a continuidade do trabalho proposto nesta tese

consiste num aprofundamento dos conceitos de Visão Computacional - com análises de

métodos de seleção de imagens, estudos comparativos de cores nos times e como estas

afetam o rendimento do time e do processamento das respectivas imagens. Paralelamente,

sugere-se a construção mecânica dos próprios robôs jogadores de futebol e a utilização de

todas estas técnicas e procedimentos integrados em um caso real – o futebol de robôs

completo e plenamente funcional, que será o teste essencial para os conceitos

desenvolvidos até aqui neste trabalho. Por fim, o uso intensivo da Inteligência Artificial –

que permitirão a adoção de estratégias eficientes de cooperação entre robôs com o objetivo

final de vencer uma partida de futebol real - coroará todo e qualquer desenvolvimento nesta

área da robótica.

Page 80: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

80

7. REFERÊNCIAS BIBLIOGRÁFICAS

[1] CAPRARI R. S.: “Method of target detection in images by moment analysis of

correlation peaks”, in “Applied Optics ”, , volume 38, number 8, pp1317-1324

March 1999.

[2] COSTA A.H.R., PEGORARO R. et Al: “Construindo robôs autônomos para partidas de

futebol: o time GUARANÁ”, Anais do IV SBAI, pp 457-462 ,1998,

[3] KIM J. H., “Classification of a robot soccer system”, in “Korea Advanced Institute of

Science and Technology (KAIST) Reports”,pp 1-15, 1999.

[4] KURATA J., GRATTAN K.T., UCHIYAMA H.: “Navigation system for a mobile

robot with a visual sensor using a fish-eye lens “ , in “Review of Scientific

Intruments”, Volume 69, number 2, February 1998,

[5] MILLER P.C., CAPRARI R.S., “Demonstration of improved automatic target-

recognition performance by moment analysis of correlation peaks”, in “Applied

Optics”, vol.38, No. 8, March 1999.

[6] ROBOCUP OFFICIAL SITE. 1998; FIRA OFFICIAL SITE. 1998; www.ia.cti.br

www.robotics.com/robots.html, etc.

[7] WYLIE C. R., JR., “Advanced Engineering Mathematics”, Mcgraw-Hill Inc., Third

Edition, pp 97-108, 1965.

[8] RAMON, F. “JAVA – Guia de Consulta Rápida”, NOVATEC,1999.

Page 81: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

81

8. BIBLIOGRAFIA

[1] GUO R., PANDIT S.M., “Automatic threshold selection based on histogram modes and

a discriminant criterion”, in “Machine Vision and Applications”, volume

10,pp 1325-1331, 1998,

[2].HERBERT T.J, HENNEBERGER B.E., “Optical filtering approach to regularized

tracking of na object´s position and orientation”, in “ Applied Optics”, vol.37.

number 32, pp 208-218, November 1998,

Page 82: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

82

APÊNDICES

APÊNDICE A: ALGORITMO DE VISÃO COMPUTACIONAL

A.1 – INTRODUÇÃO

O método mais comum de detecção automática de objetos e seu reconhecimento é a

filtragem linear por meio de um filtro de correlação. Este é o caso de sinais temporais (

sequência discreta de imagens) e sinais espaciais ( as próprias imagens ). O impulso de

resposta do filtro, também chamado de “função de espalhamento pontual por sinais” é

escolhido para fornecer uma saída de baixo impulso generalizado quando o sinal de entrada

não somente vem com ruídos, mas também quando tem pico acentuado ( alvo de referência

imerso em um cenário com muitos sinais de ruído). Um sensor apropriado ( a câmera CCD)

registra o alvo de referência e fornece um sinal de saída baseado no valor da correlação em

um dado ponto ser maior do que algum valor de “Thresholding”. É o que é chamado de

“Detetor de Ponto”.

O sistema proposto aqui pode ser empregado para suplementar o desempenho de tal

“Detetor de Ponto” pois combina parâmetros geométricos de segunda ordem, criando uma

estrutura matemática que formaliza esta decisão estratégica e designa medidas quantitativas

das formas dos momentos geométricos dos valores de pico.

Page 83: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

83

A .2 DEFINIÇÃO DOS MOMENTOS GEOMÉTRICOS DE INTERESSE

Embora as definições seguintes pertençam as variáveis contínuas x e y, as

distribuições de planos de correlação reais vêm de detetores de pixels, portanto x e y são

realmente valores discretos e as integrais são na realidade somatórios. O pico de correlação

que está sendo caracterizado é a função intensidade de posição p(x,y) >0, cuja região de

suporte é o domínio fechado D ( se necessário, o pico será truncado na fronteira de D).

Embora em principio não haja restrição na forma da função p(x,y), a utilidade da análise de

momentos é concebida em p(x,y) pela representação de um um ou mais picos isolados ( no

caso do futebol de robôs, deve-se indicar, dentro do domínio D os valores de pico dos

alvos de referência dos robôs e da bola ). Sendo a região de suporte D excessivamente

grande, os valores de pico desaparecerão antes de alcançar as fronteiras ( o que não ocorre

no futebol de robôs). Observa -se que p(x,y) é a função distribuição de imagem do sinal de

saída do filtro de correlação e não do sinal de entrada da imagem (Caprari, 1998, que é a

base para as definições seguintes ).

O momento escalar zero (m), análogo à massa de um corpo rígido e a área do

Page 84: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

84

objeto em pixels, é

onde n é o número total de pixels em uma dada direção, x ou y, supondo-se uma imagem

quadrada..

O momento primeiro ou posição do centróide do objeto, análogo ao centro de

massa de um corpo rígido, tem como componentes

O momento segundo, matriz I, análogo ao tensor de inércia de um corpo rígido de

massa unitária, é u´a matriz simétrica com elementos

( análogos aos Raios de Giração em relação ao centróide ).

∑∑= =

=n

x

n

y

yxpm1 1

),,()1.( A

∑∑

∑ ∑

= =

= =

=

=

n

x

n

yy

n

x

n

yx

yxypm

C

yxxpm

C

1 1

1 1

),(1

),,(1 )2..( A

)3.( A

Page 85: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

85

Vetores e matrizes que definem momentos de ordem maior podem ser derivados a

priori, mas a análise será conduzida na matriz de inércia e na elipse de inércia associada.

Sendo D uma região invariante (i.e., D não é influenciado por p(x,y)), todos os

momentos tensores podem ser formalmente vistos como combinações dos sinais de saída

dos bancos de filtros lineares operando no plano de correlação e este paradigma pode

facilitar o desenvolvimento de detetores estatísticos otimizados.

Diagonalizando I por uma transformação de similaridade, demonstra-se que os

momentos principais de inércia I11 > I22 > 0 são os autovalores de I:

Os eixos principais de inércia são os autovetores correspondentes. Considera-se o

ângulo do eixo principal maior medido à partir do eixo x:

( )

( )

( )( ) xyy

n

x

n

yxxy

n

x

n

yyyy

xn

n

x

n

yxxx

pCyCxm

I

pxyCym

I

pCxm

I

−−=

−=

−=

∑ ∑

∑ ∑

∑ ∑

= =

= =

= =

1 1

2

1 1

2

1 1

1

1

1

( ) ( )( ){ }( ) ( )( ){ },4

21

,421

2/12222

2/12211

xyyyxxyyxx

xyyyxxyyxx

IIIIII

IIIIII

+−−+=

+−++=

)4.( A

Page 86: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

86

onde θ ∈[-π /2, π /2].A adição de π só deve ser realizada quando o ângulo obtido da função

inversa for negativo, de forma a garantir a condição θ∈[0, π]) . É importante ressaltar que θ

fornece a direção do robô.

Embora os eixos maiores e menores da elipse de inércia sejam a transposição dos

eixos principais correspondentes do pico, a excentricidade da elipse de inércia

é uma boa medida da anisotropia do contorno de pico.

O traço da matriz de inércia,

( ) ( ),11 πθ +

−=

xy

xx

III

arctg)5.( A

2/1

11

221

−=

II

e

)6.( A

2211 IIIIt yyxx +=+=)7.(A

Page 87: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

87

análogo ao momento de inércia polar, é uma boa medida para a extensão do pico no plano

xy.

A matriz de inércia simétrica têm 3 elementos independentes dos quais foram

derivadas 3 grandezas θ, e e t. Mais tarde será mostrado que as interpretações geométricas

de θ, e e t estão alinhadas com aspectos da forma do pico de distribuição.

A .3 ESPECIFICAÇÃO DO PONTO DE OPERAÇÃO (“THRESHOLDING”)

O ângulo θ , a excentricidade e e o traço t são, como parâmetros de momentos de

segunda ordem ,bons candidatos para a discriminação entre os picos do alvo e o do cenário

somente se há uma diferença estatística entre os dois tipos de pico, caracterizados pelos

parâmetros dos momentos. Os histogramas dos picos do alvo são estimativas empíricas de

funções de densidade de probabilidade dos parâmetros de 2º orem, dado que o pico de

correlação corresponde à um alvo legítimo, assim como o pico do cenário. Esta informação

é necessária e suficiente para nos permitir o projeto de um discriminador de alvo-cenário .

Para cada intervalo no domínio dos parâmetros ( o que também vale para o caso de multi-

thresholding) podemos integrar o histograma do alvo corretamente normalizado para a

obtenção da detecção da probabilidade do objeto Pd e, respectivamente, para o histograma

Page 88: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

88

do cenário, obtendo-se assim a probabilidade de “alarme falso” correspondente Pfa. Um

intervalo de campo diferente leva à um ponto diferente no plano PfaPd, formando as

Características Operativas de Resposta (ou C.O.R., Caprari,1998)

Antes do detetor de threshold ser totalmente especificado, permanece a questão de

se nominar um intervalo (ou intervalos ) no domínio dos parâmetros nos quais a detecção

dos alvos é favorecida, o que equivale à nominar um ponto operativo ( ou vários pontos,

para o caso de muitos alvos) na região COR, coincidente com o alvo de referência – no

caso, o centróide . Na situação na qual a COR é crescente de forma monótona e contínua , a

maneira mais convencional e simples de selecionar um ponto de operação na COR é

escolher um valor de Pfa que especifica totalmente a região do domínio dos parâmetros

atribuidos ao alvo, ou seja, especifica o threshold que deve ser excedido – que aliás é

melhor especificado para um número discreto de pontos do que para um “continuum”.

Escolhe-se o ponto de operação (“threshold”) definindo-se uma medida de

detecção universal efetiva, função das probabilidades de detecção do alvo e dos alarmes

falsos η(Pfa,Pd):

( ) ( )( )

( )[ ]( )[ ]{ }06.0/5.0exp1

06.0/5.0exp1*

005.0ln995.0005.0ln

,4.0

−−−+−++

=Pd

PdPfaPdPfaη )8.( A

Page 89: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

89

η é o produto de uma função monotonamente decrescente de Pfa por uma função

monotonamente crescente Pd. Os dois fatores de η levam os valores de 0 a 1 nas suas

extremidades. η depende de Pfa com uma queda logarítmica que compensa – ou penaliza –

diminuições ou aumentos de Pfa (diferenças de iluminação, ruído e outros fatores

externos).

Sendo o ângulo, a excentricidade e o traço para a correlação dos picos de alvo

estatisticamente independentes e normalmente distribuídos, então sua densidade de

probabilidade é:

onde µθ-t e σθ-t2 são, respectivamente, a média e a variância da distribuição dos ângulos dos

picos do alvo, com o domínio dos ângulos escolhidos para assegurar uma distribuição

unimodal. µe-t e σe-t2 são, respectivamente, a média e a variância da distribuição de

excentricidade dos picos do alvo. µt -t e θt-t2 são, respectivamente, a média e a variãncia da

distribuição do traço dos picos de alvo. θt é o parâmetro de ângulo expresso no mesmo

domínio da distribuição do ângulo de alvo caracterizado por µe-t e σe-t2. E e t são,

respectivamente, a excentricidade e o traço.

( )( )

( ) ( ) ( )

−−

−−

−−=

−−−2

2

2

2

2

2

2/3exp

21|,,

tt

tt

te

te

t

tt

tttet

tealvotep

σµ

σµ

σµθ

σσσπθ

θ

θ

θ

)9.( A

Page 90: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

90

Do mesmo modo, se o ângulo, a excentricidade e o traço dos picos de correlação

do cenário são estatisticamente independentes e normalmente

distribuídos, então a densidade de probabilidade condicionada ao pico de correlação do

cenário é:

µθ-c e σθ-c2 são, respectivamente, a média e a variância da distribuição dos ângulos dos

picos do cenário, com o domínio dos ângulos escolhidos para assegurar u´a distribuição

unimodal a mais diferente possível dos picos de alvo. µe-t e σe-t2 são, respectivamente, a

média e a variância da distribuição de excentricidade dos picos do alvo são,

respectivamente, a média e a variância da distribuição do traço dos picos do cenário. θt é o

parâmetro de ângulo expresso no mesmo domínio a distribuição do ângulo de cenário

caracterizado por µe-c e σe-c2. E e t são, respectivamente, a excentricidade e o traço. Nota-se

que os parâmetros do ângulo θt e θc são computados como estão, indiferente se o detetor

escolher entre ângulo ou o alvo para o threshold.

A Razão de Semelhança do parâmetro de momento de segunda ordem é definido

como

( )( )

( ) ( ) ( )

−−

−−

−−=

−−−2

2

2

2

2

2

2/3 exp2

1|,,

ct

ct

ce

ce

c

cct

ctcec

tecenáriotep

σµ

σµ

σµθ

σσσπθ

θ

θ

θ

)10.( A

Page 91: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

91

A detecção do alvo estatisticamente ótima é alcançada pela regra de decisão como

onde a escolha do threshold τ’ é ditada pela regra δ=1 ( ou 0 ) correspondendo à escolha do

alvo – ou cenário – para referência de threshold.

A extensão do método para o caso de múltiplos thresholds – o caso do futebol de

robôs, por exemplo, em que a imagem da bola e dos robôs da competição devem ser

distinguidos da do restante do cenário – é direta devido ao próprio critério discriminante.

Por exemplo, no caso de 3 thresholds, assume-se somente 2: 1 <= τ1<= τ 2<= L, pela

separação de três classes de domínios C0 para [ 1,...,τ 1], C1 para [τ1+1,...,τ2] e C2

[τ2+1,...τ3]. O critério de medida σθ2 ( ou σt

2 e até mesmo η) é então função de duas

( ) ( )( )cenáriotep

alvotepteL

!,,|,,

,,θ

θθ = )11.( A

( ) ( )( ) ( ) τθθδ

τθθδ

<=

≥=

teLte

teLte

,,...0,,

,,...1,, )12.( A

Page 92: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

92

variáveis τ1 e τ2, e um conjunto ótimo de thresholds τ1* e τ2* é selecionado pela

maximização de σθ2 .

Deve-se notar que os thresholds selecionados geralmente tornam-se menos

precisos à medida que o número de classes a serem separadas cresce – o que é devido ao

critério de medida a ser definido em uma escala de cinza unidimensional ( para o caso de

cores, tem-se três canais , correspondendo à escala de cores RGB – vermelho, verde e azul )

. Entretanto, para o caso do futebol de robôs, temos apenas 2 ou 3 thresholds ( bola, cor

definida em escala de cinza do nosso time e cor definida em escala de cinza do time

adversário)), o que torna a computação simples e torna desnecessário processos especiais

de detecção.

Antecipando o problema da detecção e navegação do robô móvel, à ser

apresentado em detalhes na seção 3, as propriedades anisotrópicas da matriz de inércia são

importantes para a determinação e guia do robô móvel rumo à bola. Assumindo-se que o

robô seja de superfície superior quadrada, com um alvo de referência sobre este de uma

forma qualquer ( elipse, por exemplo, embora não seja o caso do futebol de robôs ) , cujos

centróides sejam coincidentes, determina-se, através do traço, o momento de inércia polar

de ambos:

( ) ( )212*

2*1

2 ,max ττσττσ θθ = )13.(A

)(

)(

''

''

elipseIII

quadradoIII

yyxxpoe

yyxxpoq

+=

+= )14.(A

Page 93: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

93

Os momentos de inércia da elipse são os que são computados pelo programa de

thresholding, e os do quadrado são dados invariantes do problema . Passando-se aos dois

momentos de inércia polares, com c=d e a e b os semi-eixos da elipse:

então

e

com a regra: se Ixx´> Iyy , a direção dada será a do eixo x do referencial móvel.

( )

4

322

222

baI

dccI

poe

poq

+=

+=)15.(A

)16.( A

,12

43

43

,12

43

43

3

'

3

'

=

=

acd

bcd

I

bcd

acd

I

yy

xx

Page 94: ÍCARO DOS SANTOS FRANÇA - UFF - Niterói - Rio de Janeiro · sistema de visão computacional e de posicionamento. Por fim tem-se uma análise detalhada de outros tipos de simuladores

94