Você está na página 1de 100

Faculdade de Engenharia Industrial

VISO COMPUTACIONAL APLICADA AO CONTROLE

DE MICRO ROBS

Relatrio do projeto de trabalho OS N.


5886 do Departamento de Engenharia
Eltrica da Faculdade de Engenharia
Industrial.

Coordenador do projeto: Prof. Reinaldo


Augusto da Costa Bianchi.

So Bernardo do Campo
2001
SUMRIO

LISTA DE FIGURAS

LISTA DE TABELAS

RESUMO

1. INTRODUO ............................................................................................................................... 1
1.1 VISO COMPUTACIONAL E INTELIGNCIA ARTIFICIAL ........................................................... 1
1.2 OBJETIVOS DO PROJETO ........................................................................................................ 2
1.3 DOMNIO DE APLICAO: FUTEBOL DE ROBS ...................................................................... 3
1.4 RESULTADOS PROPOSTOS X RESULTADOS OBTIDOS ............................................................... 3
1.5 ORGANIZAO DO TRABALHO ............................................................................................... 6
2. O DOMNO DO FUTEBOL DE ROBS..................................................................................... 7
2.1 INTRODUO......................................................................................................................... 7
2.2 DESCRIO DO DOMNIO DO FUTEBOL DE ROBS ................................................................. 7
2.3 DESAFIOS E PROBLEMAS A SEREM ESTUDADOS ...................................................................... 9
3. HISTRICO DA REA DE VISO COMPUTACIONAL ..................................................... 11
3.1 INTRODUO....................................................................................................................... 11
3.2 A TEORIA DE MARR ............................................................................................................. 12
3.3 O PARADIGMA RECONSTRUTIVO .......................................................................................... 13
3.4 VISO ATIVA, ANIMADA E QUALITATIVA ............................................................................ 15
3.5 O PARADIGMA PROPOSITADO............................................................................................... 17
4. TECNICAS DE SEGMENTAO DE IMAGENS EM VISO COMPUTACIONAL ........ 19
4.1 CAPTURA DE IMAGENS ........................................................................................................ 19
4.2 SEGMENTAO BASEADA EM SIMILARIDADES: BLOB COLORING......................................... 20
4.3 SEGMENTAO BASEADA EM DIFERENAS: VETORIZADOR ................................................. 21
4.3.1 Filtragem de Imagens por Cor (colorFilter)............................................................. 21
4.3.2 Determinao de Contornos (edgeDetector) ........................................................... 22
4.3.3 Vetorizador (vetorizer).............................................................................................. 23
5. SISTEMA VISUAL BASEADO EM SOFTWARE.................................................................... 25
5.1 INTRODUO....................................................................................................................... 25
5.2 ANLISE DO ALGORITMO BLOB COLOURING ....................................................................... 26
5.3 ANLISE DO ALGORITMO VETORIZADOR ............................................................................. 29
5.4 COMPARAO ENTRE OS ALGORITMOS BLOB COLORING E VETORIZADOR. ......................... 31
5.5 CONCLUSES E TRABALHOS FUTUROS ................................................................................. 32
6. SISTEMA VISUAL BASEADO EM HARDWARE .................................................................. 33
6.1 VHDL................................................................................................................................. 33
6.2 O SISTEMA IMPLEMENTADO................................................................................................. 34
6.2.1 Aquisio da imagem................................................................................................ 34
6.2.2 O protocolo IC-bus.................................................................................................. 35
6.2.3 Binarizao da Imagem ............................................................................................ 35
6.2.4 Determinao dos contornos .................................................................................... 36
6.2.5 Identificao de Objetos na Imagem ........................................................................ 36
6.2.6 Saida dos dados ........................................................................................................ 36
6.3 TRANSPOSIO DOS ALGORITMOS PARA VHDL .................................................................. 37
6.4 RESULTADOS ....................................................................................................................... 37
6.5 CONCLUSO ........................................................................................................................ 40
7. SISTEMA DE CONTROLE......................................................................................................... 42
7.1 INTRODUO AOS ALGORITMOS GENTIMOS (AG) E PROGRAMAO GENTICA (PG) ... 42
7.1.1 Evoluo e Seleo ................................................................................................... 42
7.1.2 Fitness....................................................................................................................... 42
7.2 PROGRAMAO GENTICA.................................................................................................. 43
7.2.1 Indivduo ................................................................................................................... 43
7.2.2 Reproduo............................................................................................................... 43
7.2.3 Cruzamento ............................................................................................................... 44
7.2.4 Mutao .................................................................................................................... 44
7.3 ALGORITMO GENTICO ....................................................................................................... 45
7.3.1 Indivduo ................................................................................................................... 45
7.3.2 Reproduo............................................................................................................... 45
7.3.3 Cruzamento ............................................................................................................... 45
7.3.4 Mutao .................................................................................................................... 46
7.4 PROGRAMAS IMPLEMENTADOS............................................................................................ 48
7.4.1 Agente seguidor de paredes com viso global e ambiente restrito ........................... 48
7.4.2 Agente seguidor de paredes com viso global.......................................................... 52
7.4.3 Agente seguidor de bola com obstculos e com viso global................................... 57
7.4.4 Agente seguidor de bola com obstculos e com viso local ..................................... 63
7.5 CONCLUSO ........................................................................................................................ 70
8. PROTTIPO DE ROB AUTNOMO .................................................................................... 72
8.1 MOTORES DE PASSO ............................................................................................................ 72
8.2 TCNICA DE ACIONAMENTO ................................................................................................ 74
8.3 IMPLEMENTAO EM VHDL............................................................................................... 75
8.4 RESULTADOS DA SIMULAO .............................................................................................. 77
8.5 CONCLUSO ........................................................................................................................ 79
9. TRABALHOS CORRELATOS................................................................................................... 80

10. CONCLUSO E TRABALHOS FUTUROS.............................................................................. 83

11. REFERNCIAS BIBLIOGRFICAS ........................................................................................ 85


LISTA DE FIGURAS

FIGURA 1.1 - PROTTIPO DO ROB AUTNOMO PARA A ROBOCUP F180. .................................................... 4


FIGURA 2.1 - O TIME CMUNITED-97 VENCEDOR DA COPA DE 1997. [VELOSO, M.; STONE, P; HAN, K.,
1998]................................................................................................................................................... 7
FIGURA 2.2 - O ESQUEMA BSICO DE UM JOGO APRESENTADO EM [FIRA, 1998]. ........................................ 8
FIGURA 2.3 - ROBS DA CATEGORIA MIROSOT DE FABRICXAO COREANA. ................................................ 9
FIGURA 3.1 - DISCIPLINAS QUE INVESTIGAM A VISO [TRIVEDI; ROSENFELD, 1989]............................ 11
FIGURA 4.1 - IMAGEM COMPOSTA CAPTURADA. .......................................................................................... 19
FIGURA 4.2 3 COMPONENTES DE COR DE UMA IMAGEM CAPTURADA........................................................ 20
FIGURA 4.3 - SEGMENTAO DE UMA IMAGEM COM BLOB COLORING......................................................... 21
FIGURA 4.4 - IMAGEM BINARIZADA PARA A COR VERMELHA....................................................................... 21
FIGURA 4.5 DEFINIO DOS ELEMENTOS BSICOS DE BORDA................................................................... 22
FIGURA 4.6 - DETERMINAO DE CONTORNOS ........................................................................................... 22
FIGURA 4.7 DEFINIO DOS VETORES ELEMENTARES .............................................................................. 23
FIGURA 4.8 CONTRIBUIO DE CADA ELEMENTO PARA O CLCULO DA REA .......................................... 24
FIGURA 4.9 - VETORIZADOR........................................................................................................................ 24
FIGURA 5.1 IMAGENS TPICAS DO DOMNIO, CAPTURADAS ON-BOARD. ..................................................... 25
FIGURA 5.2 ESQUEMA DA REA DE VISO DE UM ROB............................................................................ 25
FIGURA 5.3 - ESQUEMA LATERAL DA VISO DE UM ROB............................................................................ 26
FIGURA 5.4 - IMAGEM DA BOLA A 20 CM DE DISTNCIA .............................................................................. 26
FIGURA 5.5 RESULTADOS DE SEGMENTAO X DIFERENA DE COR PERMITIDA. ...................................... 28
FIGURA 5.6 RESULTADO DE IMAGEM COM ROB...................................................................................... 29
FIGURA 5.7 RESULTADO DA SEGMENTAO POR VETORIZAO .............................................................. 30
FIGURA 5.8 DISTNCIA X DIMETRO DE DIVERSAS IMAGENS. .................................................................. 31
FIGURA 6.1 DIAGRAMA DE BLOCOS DO SISTEMA IMPLEMENTADO EM HARDWARE. ................................. 34
FIGURA 6.2 RESULTADO DE UMA IMAGEM ANALIZADA PELO SISTEMA, EM SUAS DIVERSAS FASES........... 36
FIGURA 6.3 - A PLACA DE DESENVOLVIMENTO ALTERA ONDE O SISTEMA FOI TESTADO. .......................... 38
FIGURA 6.4 CARTA DE TEMPO. ................................................................................................................. 38
FIGURA 6.5 - CARTA DE TEMPO MOSTRANDO A ENTRADA DE DADOS NO CI ALTERA FLEX......................... 40
FIGURA 7.1 EXEMPLO DE INDIVDUO........................................................................................................ 43
FIGURA 7.2 EXEMPLO DE REPRODUO .................................................................................................. 43
FIGURA 7.3 EXEMPLO DE CRUZAMENTO .................................................................................................. 44
FIGURA 7.4 EXEMPLO DE MUTAO ........................................................................................................ 44
FIGURA 7.5 - EXEMPLO DE CROMOSSOMO .................................................................................................. 45
FIGURA 7.6 EXEMPLO DE REPRODUO .................................................................................................. 45
FIGURA 7.7 EXEMPLO DE CRUZAMENTO .................................................................................................. 46
FIGURA 7.8 EXEMPLO DE COMPLEMENTO ................................................................................................ 46
FIGURA 7.9 EXEMPLO DE INCREMENTO ................................................................................................... 46
FIGURA 7.10 EXEMPLO DE DECREMENTO ................................................................................................ 47
FIGURA 7.11 FUNCIONAMENTO DA AG E DA PG...................................................................................... 47
FIGURA 7.12 GRFICO EVOLUTIVO DE 71 GERAES............................................................................ 49
FIGURA 7.13 GRFICO EVOLUTIVO DE 71 GERAES COM EVOLUO ANTECIPADA............................. 50
FIGURA 7.14 GRFICO EVOLUTIVO DE 51 GERAES............................................................................ 50
FIGURA 7.15 EXEMPLOS DE CAMINHOS PERCORRIDOS PELOS AGENTES .................................................... 51
FIGURA 7.16 GRFICO EVOLUTIVO 51 GERAES................................................................................. 54
FIGURA 7.17 GRFICO EVOLUTIVO 42 GERAESCOM DECIMAO NA 21 GERAO ......................... 54
FIGURA 7.18 CAMINHO GERAO 10....................................................................................................... 55
FIGURA 7.19 CAMINHO GERAO 26....................................................................................................... 55
FIGURA 7.20 CAMINHO GERAO 48....................................................................................................... 56
FIGURA 7.21 GRFICO EVOLUTIVO 50 GERAES K = 1500.................................................................. 59
FIGURA 7.22 GRFICO EVOLUTIVO 100 GERAES COM DECIMAO - K = 1500 ................................ 60
FIGURA 7.23 GRFICO EVOLUTIVO 50 GERAES K = 1000................................................................. 60
FIGURA 7.24 CAMINHO GERAO 1......................................................................................................... 61
FIGURA 7.25 CAMINHO GERAO 8......................................................................................................... 61
FIGURA 7.26 CAMINHO GERAO 13....................................................................................................... 61
FIGURA 7.27 CAMINHO GERAO 41....................................................................................................... 62
FIGURA 7.28 GRFICO EVOLUTIVO 51 GERAES (TEMPO DE EXECUO = 1:42:35) .......................... 65
FIGURA 7.29 GRFICO EVOLUTIVO 51 GERAES (TEMPO DE EXECUO = 1:37:18) .......................... 65
FIGURA 7.30 GRFICO EVOLUTIVO 101 GERAES (TEMPO DE EXECUO = 2:57:45) ........................ 66
FIGURA 7.31 CAMINHO DA GERAO 1 ................................................................................................... 67
FIGURA 7.32 CAMINHO DA GERAO 7 ................................................................................................... 67
FIGURA 7.33 CAMINHO DA GERAO 12 ................................................................................................. 67
FIGURA 7.34 CAMINHO DA GERAO 16 ................................................................................................. 68
FIGURA 7.35 CAMINHO DA GERAO 41 ................................................................................................. 68
FIGURA 7.36 CAMINHO DA GERAO 50 ................................................................................................. 69
FIGURA 7.37 CAMINHO DA GERAO 70 ................................................................................................. 69
FIGURA 7.38 CAMINHO DA GERAO 81 ................................................................................................. 69

LISTA DE TABELAS

TABELA 1.1 COMPARAO DAS METAS PROPOSTAS E OS RESULTADOS ATINGIDOS. ................................... 4


TABELA 1.2 RESULTADO ADICIONAIS OBTIDOS. ......................................................................................... 4
TABELA 1.3 ARTIGOS PUBLICADOS. ........................................................................................................... 5
TABELA 1.4 ARTIGOS EM FASE DE AVALIAO. ......................................................................................... 5
TABELA 3.1 - OS TRS NVEIS NOS QUAIS QUALQUER MQUINA REALIZANDO UM PROCESSAMENTO DE
INFORMAO DEVE SER COMPREENDIDA. [MARR, 1982, P.25] ........................................................ 12
TABELA 4.1 VALORES DA CONTRIBUIO DE REA DE CADA ELEMENTO ................................................. 24
TABELA 5.1 COMPARAO DE PERFORMANCE ENTRE OS ALGORITMOS.................................................... 32
TABELA 6.1 TEMPO NECESSRIO PARA CADA MDULO............................................................................ 40
RESUMO

Este relatrio apresenta os resultados do projeto Viso Computacional aplicada ao


controle de micro-robs, financiado pela Fundao de Cincias Aplicadas FCA/FEI
sob o Nmero OS 5886.
O objetivo deste projeto o estudo de sistemas de viso computacional para o
controle de robs autnomos que apresentam comportamento inteligente, cooperando
entre si, em um domnio de jogo de futebol de micro robs. O principal problema
abordado o da integrao de diversos mdulos com tarefas diferentes em um sistema
robtico e que utiliza Viso Computacional Propositada para perceber o mundo.
Os sistemas baseados em viso computacional tm conquistado espao tanto nas
universidades quanto na indstria, devido intensa modernizao que os sistemas de
automao industriais vem sofrendo nos ltimos anos. Entre os fatores que impulsionam
esta moderizao pode-se incluir a competitividade crescente, a rpida alterao dos
produtos oferecidos ao mercado e o avano tecnolgico, entre outros, que visam
aumentar a produtividade, a qualidade e a confiabilidade dos produtos. Alm da rea de
manufatura e manipulao de matriais, outras aplicaes destes sistemas incluem o
trabalho em ambientes perigosos ou insalubres, o processamento de imagens de satlites
e a explorao espacial.
Diversos foram os resultados alcanados por este projeto. Foram especificadas
duas plataformas de desenvolvimento de um sistema de viso: a primeira, baseada em
um microcomputador Pentium III com placa de aquisio de imagens e uma cmera,
executando o sistema operacional Linux, e a segunda permitindo o desenvolvimento de
hardware dedicado, baseado em FPGAs e VHDL. Foram realizados estudos e
comparao sobre a utilizao de dois tipos de algoritmos de segmentao de imagens
para o desenvolvimento de um sistema de percepo visual de robs. Finalmente,
construiu-se um prottipo de micro rob, com mdulos de aquisio de imagens, de
controle dos motores e de controle de estratgias baseado em programao gentica.
O sistema foi testado exaustivamente e os resultados experimentais indicaram
algumas vantagens e desvantagens da metodologia empregada, possibilitando a
definio de algumas diretrizes importantes para o projeto e implementao de sistemas
robticos inteligentes atuando no mundo real.
1

1. INTRODUO
Neste captulo apresentada uma introduo ao trabalho proposto, descrevendo os
seus objetivos, justificativas, resultados e contribuies. Inicia-se o captulo com a
discusso da relao entre Viso Computacional e Inteligncia Artificial, que
fundamental para a insero do trabalho na rea de Inteligncia Artificial.

1.1 Viso Computacional e Inteligncia Artificial

Nos ltimos anos, vrios pesquisadores da rea de Viso Computacional (VC) tm


dado muita nfase s tcnicas puramente matemticas, como geometria e anlise
funcional, afastando-se das investigaes bsicas em Inteligncia Artificial (IA), que
geralmente buscam mtodos mais gerais para a soluo de problemas. Por um lado isto
aconteceu porque as metodologias que estavam sendo transferidas de IA para VC
mostravam-se grosseiramente inadequadas e, por outro, por existir uma certa confuso
de conceitos entre ambas as reas, incluindo ainda Robtica.
Esse enfoque puramente matemtico para VC pode ser problemtico, uma vez que
tende a compartimentar o estudo, esquecendo outros aspectos que compem um sistema
inteligente, e a ignorar o que muitos autores - como por exemplo, ALOIMONOS
(1994), BROOKS (1991b), ELFES (1986), FISHER (1994) e FIRBY (1997) -
concordam ser um problema fundamental em IA: a integrao dos diferentes aspectos da
inteligncia.
Muitos pesquisadores da rea de VC esto hoje direcionando seus estudos de
modo a reaproxim-la de IA, em um contexto bastante diferente do existente h 10 anos
atrs, porque existe hoje um embasamento matemtico e de engenharia muito mais
slido para a soluo dos problemas de VC. Reafirmar que VC e IA possuem muitos
aspectos em comum uma conseqncia dessa linha de pesquisa.
Assim, FISHER (1994) discute a relao entre VC e IA, mostrando que ambas
partilham objetivos, metodologias, ferramentas, suposies de domnios (domain
assumptions) e embasamento biolgico, psicolgico e filosfico. Afirma que as
diferenas so em grande parte ilusrias, e que VC ainda possui e vai continuar
possuindo uma forte conexo com IA [FISHER, 1994, p.21]. Observa que os objetivos
de VC so especializaes dos objetivos de IA e que podem ser correlacionados. Entre
as comparaes apresentadas por FISHER (1994), tem-se:
IA procura compreender, num dado aspecto, os processos computacionais
humanos e VC procura compreender os sistemas visuais biolgicos - incluindo
o humano, ambos desenvolvendo metodologias, teorias e mdulos que possam
ser testados;
IA tambm procura desenvolver ferramentas que so inteligentes, no sentido de
precisar de pouca ateno de um ser humano para atuar, sendo flexveis e
possuindo conhecimento compilado. VC procura construir ferramentas que
tenham habilidades de extrao de informao e que sejam autnomas;
IA procura aprimorar as habilidades dos seres humanos, possibilitando o
controle do seu ambiente, enquanto VC procura desenvolver ferramentas que
ampliem as habilidades perceptivas humanas;
IA pesquisa o desenvolvimento de representaes do conhecimento para
2

domnios diferentes e VC procura determinar qual a melhor representao para


um domnio especfico.
Desse modo, fica evidente que VC e IA esto profundamente relacionadas,
tornando o estudo dos outros aspectos de cognio de fundamental importncia para os
pesquisadores de VC.
A soluo para o problema de como fazer com que um rob se comporte de
maneira inteligente , h muito tempo, o sonho dos cientistas do campo de Inteligncia
Artificial e engenheiros da rea de Robtica.
Sistemas que solucionam esse tipo de problema encontram aplicaes na indstria
- por exemplo, em clulas flexveis de montagem ou manufatura - e em robs mveis
autnomos, que podem se locomover sem serem controlados por uma pessoa e que
encontram sozinhos seus caminhos, podendo assim atuar em ambientes no-
estruturados. Por exemplo, no caso de uma linha de montagem, espera-se que um rob
mvel reconhea o ambiente que o cerca; localize uma pea sobre uma mesa de
trabalho; identifique sua forma e orientao para poder manipul-la; locomova-se ao
longo da linha de montagem; posicione-se adequadamente para a tarefa de montagem;
etc.
Esse comportamento exige que o rob interaja com o mundo sua volta,
processando uma grande quantidade de informaes sensoriais (viso, tato, distncia,
fora, etc.), e as incorpore ao seu processo de atuao em tempo real. Por isso, a
utilizao de robs autnomos requer o desenvolvimento de sistemas avanados, de alto
desempenho, baseados em flexibilidade e confiabilidade.

1.2 Objetivos do Projeto

O objetivo deste projeto o estudo de sistemas de viso computacional para o


controle de robs autnomos que apresentam comportamento inteligente, cooperando
entre si, em um domnio de jogo de futebol de micro robs. O principal problema
abordado o da integrao de diversos mdulos com tarefas diferentes em um sistema
robtico e que utiliza Viso Computacional Propositada para perceber o mundo.
Os sistemas baseados em viso computacional tm conquistado espao tanto nas
universidades quanto na indstria, devido intensa modernizao que os sistemas de
automao industriais vem sofrendo nos ltimos anos. Entre os fatores que impulsionam
esta moderizao pode-se incluir a competitividade crescente, a rpida alterao dos
produtos oferecidos ao mercado e o avano tecnolgico, entre outros, que visam
aumentar a produtividade, a qualidade e a confiabilidade dos produtos. Alm da rea de
manufatura e manipulao de matriais, outras aplicaes destes sistemas incluem o
trabalho em ambientes perigosos ou insalubres, o processamento de imagens de satlites
e a explorao espacial.
Como indicadores de resultados do projeto, trs metas foram estabelecidas:
Especificao de uma plataforma de Viso Computacional;
Estudo de mtodos e algoritmos de Viso Computacional aplicveis ao
rastreamento de objetos;
Contruo de um sistema para o rastreamento de robs em movimento.
Como metodologia de projeto, foram seguidos modelos propostos pela Engenharia
de Software para o desenvolvimendo das aplicaes. O modelo de desenvolvimento
3

bsico utilizado a Anlise e Projeto Orientada a Objetos, com a utilizao da Unified


Modelling Language (UML) para a definio dos mdulos do projeto. Outras tcnicas
utilizadas Constructive Cost model e os modelos de estimativa de Putnam
(PRESSMAN, 1995).
As atividades realizadas incluram o estudo de textos fundamentais e avanados
da rea de Inteligncia Artificial, Viso Computacional e Robtica, com a apresentao
(por parte dos alunos e em sistema de rodzio) e a discusso de cada artigo em reunies
semanais. Ainda nas reunies, ocorreram a definio de tarefas de cada aluno, a
discusso sobre as dvidas e apresentao e anlise dos resultados obtidos.

1.3 Domnio de aplicao: Futebol de Robs

Os apreciadores de futebol defendem essa modalidade desportiva como


apaixonante, estratgica e at artstica, onde a habilidade tcnica e fsica dos jogadores
somada estratgia ttica, normalmente determinam o resultado de uma partida.
Guardada as propores, o futebol de robs, tambm apaixonante e estratgico, uma
possibilidade de aplicao, depurao e desenvolvimento de tcnicas de viso
computacional, inteligncia artificial e de outras reas, onde a habilidade de acertar e
conduzir a bola, a velocidade de deslocamento, a tomada de deciso, a capacidade de
cooperao e a estratgia ttica do time determinam o resultado.
Um projeto de um time de futebol robtico representa uma aplicao prtica do
uso de agentes autnomos com comportamento inteligente, cooperando entre si, visando
a execuo de uma tarefa, em geral, computacionalmente complexa. O grau de interao
entre esses agentes, no meio onde se desenvolve a tarefa, depende consideravelmente
das informaes obtidas durante sua execuo. Para tanto, so empregados sistemas de
aquisio de informaes que sejam adequados situao considerada. Alm disso, este
domnio possui caractersticas bastante complexas, envolvendo necessidade de atuao
em tempo real, tratamento de incertezas e rudos das informaes extradas de
ambientes dinmicos, em geral imprecisas e incompletas.
Atualmente, em muitas instituies nacionais e internacionais, vrios trabalhos
esto em desenvolvimento nesse campo, apresentando resultados significativos tanto
para a compreenso do funcionamento dos sistemas robticos quanto para a
implementao de sistemas reais nas reas de automao industrial, entre outras.

1.4 Resultados propostos x Resultados obtidos

Analisando os resultados propostos em relao aos resultados obtidos no


desenvolvimento deste projeto, a seguinte comparao pode ser estabelecida (Tabela
1.1):

Proposta Resultado
Especificao de uma Foram especificadas duas plataformas de
plataforma de Viso desenvolvimento: um microcomputador Pentium II com
Computacional para o placa de aquisio de imagens e uma cmera, executando
estudo. o sistema operacional Linux, e o desenvolvimento de
hardware dedicado, baseado em FPGAs e VHDL.
4

Estudo de mtodos e Foi realizado o estudo e a comparao da utilizao de


algoritmos de Viso dois tipos de algoritmos de segmentao de imagens para
Computacional aplicveis o desenvolvimento de um sistema de percepo visual de
ao rastreamento de objetos. robs.
Contruo de um sistema Este item foi realizado de duas maneiras diferentes:
para o rastreamento de robs aprimeira, com uma implementao em VHDL de
em movimento. algoritmos de viso Computacional tradicionais e a
segunda, com a implementao de um sistema em
Linguagem C.
Tabela 1.1 Comparao das metas propostas e os resultados atingidos.

Para alm dos resultados propostos, outros foram alcaados, como possvel
observar por meio da descrio abaixo (Tabela 1.2):

Resultados adicionais obtidos


Construo de um prottipo de micro rob, com mdulos de aquisio de imagens, de
controle dos motores e de controle de estratgias. A Figura 2.1 apresenta o prottipo
construdo na FEI.
Contruo de um sistema de controle baseado em algoritmos genticos para o rob.
Tabela 1.2 Resultado adicionais obtidos.

Figura 1.1 - Prottipo do Rob Autnomo para a RoboCup F180.

No que diz respeito sistematizao e divulgao dos resultados, os artigos abaixo


listados foram publicados (Tabela 1.3) ou esto sendo submetidos apreciao, ou seja,
esto em fase de avaliao (Tabela 1.4).
5

Conferncia, local e data Ttulo


International Conference On The RoboCup Domain as Foundation for
Engineering and Computer Practice Based, Research Integrated Studies
Education. So Paulo, in Electrical and Computer Engineering
Julho/2000.
Workshop de Computao Evoluindo Agentes Jogadores de Futebol.
Workcomp2000, So Jos dos
Campos, agosto/2000
Congresso Brasileiro de O Sistema de Viso Computacional de um
Automtica. Florianpolis, time de Futebol de Robs.
julho/2000
Simpsio de Iniciao Cientfica Um Sistema de Aquisio de Imagens
da Universidade de So Paulo, baseado em FPGAs
So Carlos, novembro/2000.
Simpsio de Iniciao Cientfica Viso Computacional utilizando hardware e
da Universidade de So Paulo, VHDL
So Carlos, novembro/2000.
Simpsio de Iniciao Cientfica Deteco de Velocidade baseada em Viso
da Universidade de So Paulo, Computacional
So Carlos, novembro/2000.
Simpsio de Iniciao Cientfica Desenvolvendo Jogadores de Futebol de
da Universidade de So Paulo, Robos: uma abordagem de Programao
So Carlos, novembro/2000. Gentica
Simpsio de Iniciao Cientfica Um sistema de controle por hardware
da Universidade de So Paulo, FPGA para um micro-rob.
So Carlos, novembro/2000.
Tabela 1.3 Artigos publicados.

Conferncia, local e data Ttulo


THE ROBOCUP 2001 An FPGA/VHDL-based Vision System for a
INTERNATIONAL Mobile Robot.
SYMPOSIUM. SEATTLE
USA, AGOSTO/2001.
Revista
REVISTA DA SOCIEDADE Um sistema de controle baseado em hardware
BRASILEIRA DE FPGA para um micro-rob.
AUTOMTICA
JOURNAL OF THE Implementing Computer Vision Algorithms in
BRAZILIAN COMPUTER Hardware.
SOCIETY
Tabela 1.4 Artigos em fase de avaliao.

Finalmente, quanto formao de especialistas na rea, os alunos que participaram


6

do projeto como bolsistas do projeto de Iniciao Cientfica da FEI puderam se


aperfeioar em temas como programao para ambiente Unix, programao em
Linguagem C e JAVA, sistemas digitais, FPGAS e VHDL, sistemas de controle, etc.
Alm disso, foi oferecido aos alunos do programa de Iniciao Cientfica e a Professores
desta Instituio um curso de Viso Computacional, com carga horria de 16 horas,
realizado no ms de maio de 2000.

1.5 Organizao do trabalho

Visando a apresentao do contexto no qual est inserido este projeto, o segundo


captulo descreve o domnio de aplicao do Futebol de Robs e seus desafios.
Como o sistema inteligente proposto neste trabalho concentra na viso seu meio
de interao perceptual com o ambiente, o terceiro captulo deste trabalho fornece um
breve histrico da rea de Viso Computacional, apresentando e discutindo os
paradigmas existentes. O quarto captulo apresenta as tcnicas de segmentao de
imagens em viso computacional estudadas e que foram utilizadas pelas
implementaes de software e hardware.
A organizao dos captulos entre o quinto e o oitavo segue a organizao da
construo de um rob, descrevendo os mdulos principais do rob construdo. O
quinto captulo apresenta a implementao de algoritmos de da segmentao de imagens
em software e seus resultados enquanto o sexto descreve a implementao de algoritmos
de viso computacional em hardware e seus resultados. O sistema de controle baseado
em programao gentica apresentado no captulo sete. O oitavo captulo descreve o
sistema para o controle de motores de passo implementado e o rob construdo.
O nono captulo apresenta trabalhos que fundamentaram e inspiraram este projeto.
Finalmente, o dcimo e ltimo captulo apresenta as concluses deste trabalho e discute
as propostas de extenses que podem ser realizadas em trabalhos futuros.
7

2. O DOMNO DO FUTEBOL DE ROBS

2.1 Introduo

Os livros textos modernos de Inteligncia Artificial, como RUSSELL e NORVIG


(1995), comeam a apresentar esta disciplina a partir de uma viso integrada. Isto no s
permite que se trate os problemas desta rea de pesquisa a partir de diversas abordagens,
como o resultado da compreenso, por parte dos pesquisadores, que IA no deve ser
vista como segmentada.
Seguindo esta tendncia, os domnios de aplicao pesquisados tambm
comearam a mudar. Na rea dos jogos, clssica em IA, criar programas eficientes para
jogos de tabuleiro deixou de ser um objetivo distante: no xadrez os computadores j
conseguem vencer os campees humanos. Novos domnios fizeram-se necessrios.
O futebol de robs foi proposto por diversos pesquisadores ([KITANO, 1997],
[KIM, 1998], [SANDERSON, 1997]) para criar para IA um novo desafio a longo prazo.
O desenvolvimento de times de robs envolve muito mais que integrao de tcnicas de
IA. Segundo KRAETZCHMAR et al. (1998), Dispositivos mecatrnicos, hardware
especializado para o controle de sensores e atuadores, teoria de controle, interpretao e
fuso sensorial, redes neuronais, computao evolutiva, viso, e Sistemas Multi-Agentes
so exemplos de campos envolvidos nesse desafio. A figura abaixo apresenta o time de
futebol de robs da Carnegie Mellon Universityque veneu a copa mundial de 1997.

Figura 2.1 - O time CMUnited-97 vencedor da copa de 1997. [VELOSO, M.; STONE,
P; HAN, K., 1998]

2.2 Descrio do Domnio do Futebol de Robs

Partidas de futebol entre robs constituem uma tarefa que possibilita a realizao
de experimentos reais para o desenvolvimento e testes de robs que apresentem
comportamento inteligente, cooperando entre si para a execuo de uma tarefa, alm de
serem extremamente motivantes para possibilitar o surgimento de um esprito de cincia
e tecnologia nas jovens geraes.
J existem algumas competies anuais, aliadas a importantes eventos das reas
de Inteligncia Artificial e Robtica, onde so observados os desenvolvimentos neste
tipo de aplicao. A cada 4 anos, as copas de robs so realizadas juntamente com as
8

copas mundiais de futebol, no pas sede. Assim, em 1998, juntamente com a Copa
Mundial de Futebol, da FIFA, foi realizada a Copa Mundial de Robs, da FIRA, na
Frana, patrocinada, entre outros, pela prpria FIFA.
A organizao chamada Federation of International Robot-soccer Association
(FIRA) responsvel pelo estabelecimento e controle das diversas copas emergentes de
futebol de robs. Existem diversas modalidades de jogos entre robs, com variaes
desde o nmero e o tamanho dos robs at a capacidade computacional de cada rob.
Entre estas modalidades, a MIROSOT - Micro Robot World Cup Soccer Tournament
a considerada a de mais fcil implementao (tem os robs menores e de mais baixo
custo), sendo a que este trabalho se destina.
Fisicamente a plataforma deste projeto constituda por um campo para o jogo,
plano, com as dimenses de 150 x 90 cm (similar a de futebol de boto) e, para cada
time, uma cmara de vdeo CCD e respectivo sistema de aquisio de imagens, um
computador, sistema de transmisso de dados e os 3 robs. Estes tm as dimenses
mximas de 7.5x7.5x7.5 centmetros e so compostos por 2 motores controlados por um
microprocessador, bateria prpria e sistema de comunicao sem fio. A Figura 2.1
apresenta o esquema bsico do sistema. A bola utilizada padronizada: uma bola de
golfe laranja.

Figura 2.1 - O esquema bsico de um jogo apresentado em [FIRA, 1998].

O funcionamento de cada time segue uma mesma frmula bsica: cada time
realiza a aquisio da imagem atravs da sua cmera, processa a imagem usando
tcnicas de Viso Computacional para descobrir a posio de todos os robs e da bola.
Com esta imagem, um sistema de deciso define a melhor ttica a aplicar e os
movimentos instantneos de cada rob. Todo este processamento realizado em um
nico computador. Com a deciso de movimentao tomada, um sistema comunicao
por rdio envia para os robs uma mensagem como movimento a ser realizado.
Este processo repetido com a deciso tomada mudando conforme a configurao
encontrada na imagem, em ciclos de 60 vezes por segundo.
As outras modalidades de campeonatos, que o grupo j tem estudado incluem:
RoboCup Small League: muito similar Mirosot, tem times de 5 robs de at 180 cm2 e
uma mesa similar a de tnis de mesa; RoboCup Medium e Full Size: nestas modalidades
no permitido o uso de um sistema de viso nico nem de um computador central.
Cada rob deve ter sua prpria cmera e computador e trocam as mensagens via rdio.
Nestas duas ltimas modalidades que se encontram as maiores contribuies at o
momento.
9

2.3 Desafios e problemas a serem estudados

Segundo SHEN (1998) Jogadores Robticos precisam realizar processos de


reconhecimento visuais em tempo real, navegar em um espao dinmico, rastrear
objetos em movimento, colaborar com outros robs e ter controle para acertar a bola na
direo correta. [SHEN, 1998, p.251].
Esta citao mostra a complexidade do desafio e dos problemas a resolver. Os
robs devem ser autnomos, eficientes, cooperativos, com capacidades de
planejamento, raciocnio e aprendizado, alm de existirem restries de tempo real.
A construo fsica dos robs envolvem diversos aspectos importantes, como o
estudo de dispositivos mecatrnicos, de hardware especializado para o controle de
sensores e atuadores e teoria de controle.

Figura 2.1 - Robs da categoria Mirosot de fabricxao coreana.

O sistema robtico deve possuir capacidades visuais para perceber o mundo:


reconhecer e localizar os robs no jogo e a bola, descobrindo os movimentos na cena. A
construo do sistema sensorial envolve: viso computacional, interpretao e fuso
sensorial, redes neuronais e computao evolutiva.
Uma das principais caractersticas de um sistema para o futebol de robs no sua
habilidade para raciocinar, mas sua habilidade para escolher aes de maneira rpida e
efetivas, sendo capaz de atuar em um ambiente incerto e varivel. Esse domnio pode
ser caracterizado como o de uma tarefa de planejamento reativo complexa, que envolve
diversos aspectos a serem estudados: a gerao e execuo de planos complexos para
resolver objetivos especficos, a alocao de recursos on-line, a capacidade de lidar com
problemas que surgem em tempo real e a capacidade de raciocinar com informaes
incompletas (nem sempre o sistema sensorial consegue detectar todos os movimentos) e
eventos imprevisveis (um toque na bola pode sair como previsto ou no: envolve
aspectos fsicos como atrito e aderncia).
Por ser um sistema com mltiplos robs executando uma tarefa em cooperao,
este domnio ideal para o estudo de aspectos fundamentais dos Sistemas Multi-
Agentes: a modelagem distribuda do ambiente (ou como dada agente representa o
conhecimento que possui do problema), a organizao das sociedades e a comunicao
entre os agentes, alm de arquiteturas de controle.
Finalmente VELOSO (1998) afirma que o Futebol de Robs excitante devido a
sua natureza de sensores/atuadores em tempo real. E isso pode ser atingido usando a
mais simples das arquiteturas at as mais complexas. Isto permite que equipes com as
mais diversas abordagens possam competir e medir os resultados de suas abordagens de
uma maneira objetiva: o placar e a classificao no campeonato. Neste domnio a
10

natureza das restries de tempo real ficam bvias: um sistema deve ser rpido o
suficiente pois se ele levar alguns segundos entre a percepo e a ao ele perde para o
adversrio.
O domnio do Futebol de Robs tem adquirido importncia cada vez maior na
rea de Inteligncia Artificial pois possui todas as caractersticas encontradas em outros
problemas reais complexos, desde sistemas de automao robticos, que podem ser
vistos como um grupo de robs realizando uma tarefa de montagem, at misses
espaciais com mltiplos robs [TAMBE, 1997].
11

3. HISTRICO DA REA DE VISO COMPUTACIONAL


Neste captulo apresentado um panorama da rea de Viso Computacional,
descrevendo os seus paradigmas, discutindo suas definies de viso e a relao entre
eles.

3.1 Introduo

As primeiras tentativas de construir um sistema de viso computacional so


atribudas por JOLION (1994) Levialdi nos anos 50. Foram trabalhos na rea de fsica
de altas energias, onde se tentava analisar imagens provenientes de experimentos em
cmaras de bolhas, realizando um processamento digital de imagens.
Uma definio tradicional da rea de viso computacional como disciplina foi
proposta por TRIVEDI e ROSENFELD (1989): viso computacional a disciplina que
investiga as questes computacionais e algoritmicas associadas aquisio, ao
processamento e compreenso de imagens. Somada Neurofisiologia e Psicologia
Perceptual, formam o conjunto das disciplinas que estudam a viso (Figura 3.1).

Viso

Neurofisiologia Psicologia Perceptual Viso Computacional


Experimental
Figura 3.1 - Disciplinas que investigam a viso [TRIVEDI; ROSENFELD, 1989].

Outra definio bem aceita pelos pesquisadores da rea a de MARR (1982), que
afirma: viso o processo que produz, a partir de imagens do mundo externo, uma
descrio que til ao usurio e que no repleta de informaes irrelevantes [MARR,
1982, p.31].
Uma definio mais informal e tambm mais polmica da rea de viso
computacional dada por TARR e BLACK (1994, p.65), que afirmam que o objetivo da
rea a compreenso e modelagem de um sistema de viso de propsito geral em seres
humanos e em mquinas. A crtica mais comum a essa afirmao que o chamado
Sistema de Viso de Propsito Geral, assim como os termos Problema Geral da
Viso, Problemas Mal Postos e Problema Genericamente Solucionvel, no so
bem definidos nem tampouco compreendidos [TSOTSOS, 1994] e que a maioria dos
problemas em viso so NP-completo ou NP-hard, como provado por TSOTSOS
(1989), KIROUSIS e PAPADIMITRIOUS (1985), COOPER (1992), entre outros. Alm
disso, TSOTSOS (1990) afirma que a viso humana no soluciona esses problemas
genricos da viso.
Na dcada de 50 os primeiros pesquisadores da rea acreditavam que o problema
da viso seria resolvido rapidamente. A rea porm se apresentou mais complexa que o
imaginado inicialmente. Um dos problemas fundamentais que viso um problema
mal posto, isto , a imagem bidimensional de uma cena no possibilita que se construa
12

uma nica descrio tridimensional da cena em questo, pois no existem equaes


geomtricas suficientes para encontrar todas as incgnitas necessrias reconstruo.
Assim, para resolver o problema visual, deve-se encontrar restries que possam
ser usadas para contorn-lo, tornando-o bem posto e possibilitando sua soluo. Uma
das caractersticas fundamentais que diferenciam os paradigmas existentes a origem e
grau das restries usadas para resolver o problema visual.
A primeira teoria que tentou metodologicamente resolver o problema visual,
restringindo-o, foi proposta por Marr em 1982.

3.2 A teoria de Marr

Segundo JOLION (1994), David Marr foi o primeiro a propor (em seu livro
chamado Vision [MARR, 1982]) uma metodologia completa para a viso
computacional, que ficou conhecida como o paradigma de Marr.
Antes dele, Gibson foi o que mais se aproximou da proposio de uma teoria
computacional para a viso, em 1966. Sua maior contribuio foi abandonar o debate
filosfico e apontar que o fato mais importante sobre os sentidos que eles so canais
para a percepo do mundo real - no caso da viso, as superfcies visveis [MARR,
1982, p.29].
A metodologia proposta por Marr consiste na diviso em trs nveis diferentes
nos quais um dispositivo de processamento de informaes deve ser compreendido
[MARR, 1982, p.24]. Neles esto contidos a teoria computacional do dispositivo (no
nvel superior), o algoritmo e tipo de representao usados (no nvel intermedirio) e os
detalhes da implementao fsica (no nvel inferior). JOLION (1994) acredita que esta
metodologia de trabalho uma das principais contribuies de Marr.
Teoria Computacional Representao e Implementao fsica
algoritmo
(nvel superior) (nvel inferior)
(nvel intermedirio)
Qual o objetivo da Como esta teoria Como a representao e o
computao, por que ela computacional pode ser algoritmo podem ser
conveniente e qual a implementada? Em parti- implementados
lgica da estratgia que cular, qual a representa- fisicamente?
pode realiz-la? o para as entradas e
sadas e qual o algoritmo
para a transformao?

Tabela 3.1 - Os trs nveis nos quais qualquer mquina realizando um processamento de
informao deve ser compreendida. [MARR, 1982, p.25]

Marr ainda props a diviso da derivao das formas de um objeto a partir de uma
imagem em trs estgios de representao (de complexidade crescente) [MARR, 1982,
p.37]:
1. O primeiro estgio, chamado esboo primrio, representa as propriedades
importantes da imagem bidimensional, como mudanas de intensidade e
distribuio e organizao geomtrica. Algumas primitivas usadas para a
13

construo desta representao so: os cruzamentos de zero, terminaes e


descontinuidades, segmentos de bordas, linhas virtuais, grupos, organizaes,
curvas e fronteiras.
2. O segundo estgio, chamado esboo 2 -D, representa algumas propriedades
das superfcies visveis em um sistema de coordenadas centrado no observador.
Entre essas propriedades esto a orientao e distncia do observador s
superfcies visveis (estimativas), contornos de descontinuidades destas
grandezas, reflectncia das superfcies e uma descrio aproximada da
iluminao. Algumas primitivas usadas nesta representao so orientao
local de superfcies, distncia do observador, descontinuidades na profundidade
e na orientao das superfcies.
3. O terceiro estgio, chamado modelo 3-D, representa a estrutura tridimensional
e a organizao espacial das formas observadas, usando uma representao
hierrquica modular que inclui primitivas volumtricas e superficiais. As
primitivas so modelos tridimensionais das formas, em um sistema de
coordenadas centrado nos objetos, organizados hierarquicamente, cada um
baseado em um conjunto de eixos no espao, aos quais formas volumtricas ou
de superfcie so fixadas, junto com alguma informao sobre as propriedades
das superfcies.
A terceira proposio de Marr a da diviso do problema da viso em
subproblemas independentes, tratados como mdulos independentes, que uma
aplicao da metodologia tradicional de IA de dividir para conquistar. Com isso,
diferentes mdulos foram definidos, como estereoscopia, shape from X, anlise de
movimento, etc.
Finalmente, Marr realiza vrias suposies sobre as caractersticas do mundo
fsico para poder restringir o problema de viso, como a existncia de superfcies
suaves, a existncia de uma organizao hierrquica da estrutura espacial, similaridade,
continuidade espacial, continuidade das descontinuidades e continuidade do fluxo tico.
Esta assuno de restries a partir do mundo fsico uma das caractersticas da teoria
de Marr.
A importncia da teoria de Marr para a disciplina de viso computacional
indiscutvel. Para ALOIMONOS (1994), estas contribuies estabeleceram as bases que
tornaram a rea uma disciplina cientfica. Assim, a partir da teoria proposta por Marr, os
pesquisadores da dcada de 80 comearam a trabalhar no que hoje chamamos de
paradigma reconstrutivo [BLACK et al., 1993, JOLION, 1994].

3.3 O paradigma reconstrutivo

O paradigma reconstrutivo pode ser considerado uma interpretao da teoria de


Marr, sobre a qual pesquisadores tiveram que fazer adies e outras suposies para
poderem construir aplicaes reais. Deve-se notar que, apesar do reconstrutivismo ter
sua base na teoria de Marr, as duas teorias possuem diferenas.
De acordo com o paradigma reconstrutivo, o objetivo da pesquisa em viso a
reconstruo em uma representao precisa de uma cena tridimensional observada e
suas propriedades, a partir de informaes contidas nas imagens, tais como:
sombreamento, contornos, estereoscopia, cores, etc [BLACK et al., 1993; JOLION,
1994]. Assim, sua finalidade principal est voltada para a reconstruo do mundo em
14

uma representao completa. Esta abordagem levou a muitas contribuies


(principalmente tericas), resultando em algumas tcnicas matemticas, por exemplo,
relacionadas descontinuidades e regularizao.
Outra definio dos objetivos do paradigma reconstrutivo, formulada por TARR e
BLACK (1994), consiste em construir uma descrio simblica de uma cena do mundo
real em um modelo, que possa ser usado como interface para outros processos
cognitivos - raciocnio, planejamento inteligente de atividades -, fazendo isto atravs de
descries funcionais do mundo visvel [TARR; BLACK, 1994].
O paradigma reconstrutivo justifica a necessidade de representaes
intermedirias como modo de reduzir o custo computacional da viso, afirmando que
comportamentos complexos em ambientes desconhecidos s se tornam possveis atravs
do uso de representaes poderosas. O reconstrutivismo normalmente objetiva a viso
genrica (isto , possibilidade de realizar comportamentos complexos) por uma
abordagem de baixo para cima (bottom-up), baseada em dados (data-driven).
Por ter bases na teoria de Marr, este paradigma recebe todas as crticas feitas
quela [JOLION, 1994], alm de outras especficas ao paradigma reconstrutivista
[TARR e BLACK, 1994; EDELMAN, 1994]:
no possvel sempre construir uma representao objetiva de uma cena;
reconstruir o mundo em um modelo to complexo quanto ele mesmo intil;
no sempre necessrio construir um modelo tridimensional completo da cena
para atingir um objetivo particular;
a geometria no o nico modelo existente para representar o mundo e para
sua compreenso;
o paradigma de Marr baseado fortemente na teoria de computao clssica de
Von Neumann, com abordagem seqencial;
cenas no so to simples como superfcies regulares;
restries podem surgir de outras fontes alm do mundo externo - fsico;
devemos pensar tambm no que podemos obter da cena, no s o que deseja-
se.
os algoritmos de reconstruo no so robustos em presena de rudos;
os algoritmos so ineficientes;
o paradigma reconstrutivista falhou em levar em conta a demanda
computacional de um perceptor do mundo real;
a reconstruo por si s no contribui em nada para a interpretao da cena;
existem evidncias psicofsicas que a hiptese reconstrutivista inconsistente
com a performance humana no reconhecimento;
Algumas destas crticas - as dependentes de hardware - esto sendo rebatidas
por autores como TARR e BLACK (1994), que acreditam que elas so verdadeiras hoje
devido somente ao estado da arte dos computadores, mas que melhoras j esto
acabando com esses problemas e que estamos entrando em um perodo estimulante no
qual todas as crticas sero resolvidas [TARR & BLACK, 1994]. Apesar disso, eles
afirmam que essas crticas foram boas para repensar e redirecionar a pesquisa na rea.
Estas crticas ainda merecem comentrios:
15

quanto falta de robustez, argumentam que o uso de modelos probabilsticos


propicia uma soluo melhor para a reconstruo do modelo do mundo;
para alguns problemas a referida ineficincia dos algortmos circunstancial e
freqentemente surgem algoritmos mais eficientes;
quanto subestimativa da demanda computacional, pode-se dizer que todos os
pesquisadores sistematicamente subestimam o esforo necessrio para se
extrair alguma informao til dos sensores;
a inapropriao para interpretao de cenas s verdade se desejada uma
interpretao semntica da cena, o que difcil sob qualquer enfoque terico;
apesar do estudo dos modelos naturais ser interessante, pois proporcionam
fonte de informaes e questionamento, evidncias psicofsicas contrrias por
si s no invalidam a teoria: existem muitos exemplos onde a soluo
tecnolgica encontrada no igual soluo biolgica e evolutiva, como os
carros, que no possuem patas, e os avies, que no batem asas.
Muitos pesquisadores acreditam que o paradigma reconstrutivo ainda possui
flego, e no s promissor para atingir os objetivos da viso computacional, mas
tambm possui boa fundamentao computacional e evolutiva [TARR; BLACK,
1994]. Porm, outros pesquisadores acreditam que algo mais necessrio para resolver
o problema de viso. Procurando este algo mais, novos paradigmas foram propostos. O
primeiro a surgir foi a chamado viso ativa.

3.4 Viso Ativa, Animada e Qualitativa

Em 1988 surge uma nova proposta para se encontrar restries a fim de tornar
tratvel o problema de viso. Nela, a viso controla o processo de aquisio de imagem
introduzindo restries fsicas que facilitam a reconstruo da informao da cena
tridimensional [ALOIMONOS, 1994]. O processo de viso passa a procurar
informao ativamente e pra de considerar que a informao seja captada
acidentalmente (passivamente) pelo sensor [BAJCSY; CAMPOS, 1992, p.31]. A este
novo paradigma deu-se o nome de ativo ou viso ativa.
Este paradigma baseado no trabalho de BAJCSY (1988), que definiu a
percepo ativa como o estudo da modelagem e das estratgias de controle para
percepo. Ela props uma nova metodologia para modelar um sistema perceptivo,
fortemente influenciada pela teoria de controle. Nesta metodologia, modelam-se em trs
nveis os sensores, os mdulos de processamento e a interao entre estes mdulos. Esta
modelagem pode ainda ser global, se ela aplicada a um sistema como um todo, ou
local, se ela modela algo especfico, como distores de uma lente, resoluo espacial,
filtros e etc.
BAJCSY ainda sugeriu uma nova proposta para a diviso da derivao das formas
de um objeto, baseada no controle ativo dos sensores e na proposta original de Marr.
Esta possui 5 etapas [BAJCSY, 1988, p.998]:
1. Controle dos dispositivos fsicos. Os objetivos nesta etapa so foco grosseiro
da cena, o ajuste da abertura, o foco no sujeito e a tentativa de encontrar
distncias a partir do foco.
2. Controle dos mdulos visuais de baixo nvel e o controle de um aparato
binocular. Os objetivos so a segmentao da imagem 2-D, clculo do nmero
16

de bordas e regies da imagem.


3. Controle de um mdulo visual geomtrico. O objetivo a construo do
esquema 2 -D.
4. Controle de processo de integrao de vrias vistas da cena e correspondncia
entre dados e modelos. O objetivo a descrio de objetos tridimensionais na
cena atravs de categorias volumtricas.
5. Controle da interpretao semntica. O objetivo a descrio tridimensional da
cena em um modelo que pode ter vrias complexidades.
Muitos autores, como TARR e BLACK (1994), acreditam que a viso ativa no
um paradigma novo, totalmente diferente do reconstrutivo, mas uma reformulao do
paradigma reconstrutivo tradicional, onde somente se adiciona a explorao dinmica
do ambiente [TARR; BLACK,1994, p.67], no abandonando todos os outros preceitos
da teoria de Marr. Eles acreditam que o paradigma uma tcnica promissora para
desenvolver algoritmos robustos de viso e compreenso da viso biolgica, pois
aumenta a entrada de dados visuais e pode resolver problemas que so intratveis no
modo tradicional [TARR; BLACK,1994, p.67].
Os defensores de viso ativa indicam que estas afirmaes seriam verdadeiras
somente se os sensores se movimentassem aleatoriamente. Mas como o paradigma
incorpora na modelagem a inteno explcita do controle dos sensores, ele
fundamentalmente diferente do reconstrutivo. O controle da aquisio da informao
para criar mais restries, adquirindo mais imagens de posies diferentes, escolhidas
pelo sistema, a caracterstica mais importante deste paradigma.
Estas novas idias foram bem aceitas pela comunidade, que logo em seguida viu
que as novas idias ainda no tinham acabado. Assim, aps o surgimento da Viso
Ativa, o paradigma Animado foi proposto por Dana Ballard (1991). Neste paradigma, "o
objetivo no construir uma representao interna explcita e completa do mundo, mas
exibir comportamentos que resolvam problemas [BALLARD; BROWN, 1992, p.17].
Segundo Ballard o comportamento visual mais importante o controle de
fixao (gaze control) [BALLARD, 1991]. O uso deste comportamento gera restries
adicionais que simplificam enormemente a soluo do problema de viso.
Outra caracterstica fundamental da viso animada o uso exaustivo de
aprendizado de comportamentos, pois ele reduz o custo computacional a longo prazo e
raramente produz erros irreversveis.
Algumas vantagens citadas por BALLARD (1991) em favor do paradigma so:
1. sistemas de viso animada podem usar a procura fsica: o sistema pode mover
as cmeras para chegar mais perto de objetos, mudar o foco ou o ponto de
observao;
2. os sistemas podem realizar movimentos na cmera usando aproximaes;
3. possibilita o uso de sistemas de coordenadas excntricos;
4. possibilita o uso de algoritmos qualitativos;
5. o controle de fixao permite a segmentao da imagem em reas de interesse;
6. possibilita a explorao do contexto ambiental;
7. a viso animada se adapta muito bem a algoritmos de aprendizado que usam
referncias indexadas [BALLARD, 1991, p.62].
17

Neste item que trata das idias que surgiram para tentar eliminar os problemas do
reconstrutivismo, falta citar ainda um paradigma, o qualitativo. Nele, a idia central
que os comportamentos podem no necessitar de representaes elaboradas do mundo
tridimensional [ALOIMONOS, 1992], aumentando assim o desempenho dos sistemas
de viso que no precisam reconstruir todo o mundo fsico.
Pode-se perceber que novas abordagem para solucionar o problema da viso foram
introduzidas com os paradigmas apresentados acima, e foram se desenvolvendo quase
paralelamente no tempo. Uma ltima abordagem apresentada a seguir.

3.5 O paradigma propositado

O paradigma propositado (purposive) [ALOIMONOS, 1994; BLACK et al., 1993;


JOLION, 1994; RIVLIN et al., 1991; SWAIN; STRICKER, 1991] surgiu como uma
evoluo e integrao dos paradigmas ativo, animado e qualitativo, e s vezes,
confundido com algum desses. Alm de reunir as idias dos trs paradigmas citados, ele
prope que a viso deve ser considerada dentro de um contexto de tarefas que um
agente deve realizar, e procura retirar dos propsitos do agente as restries para
solucionar o problema mal posto de viso [ALOIMONOS, 1994]. Assim, a nica
justificativa para se selecionar o que inserir em um modelo do mundo real a finalidade
deste modelo.
Outra caracterstica fundamental do paradigma a grande integrao da viso com
outras reas de inteligncia artificial, como planejamento inteligente de atividades,
raciocnio e aprendizado - resultado da crena que viso no um problema contido em
si, e que pode ser mais facilmente resolvido se for integrado com estes sistemas.
Deste modo, ao tentar solucionar o problema da viso, deve-se questionar o que se
deseja reconhecer, levando a uma questo diretamente ligada s tarefas visuais, isto , ao
propsito. Assim, o pensamento propositado coloca questes cujas respostas levam a
solues de tarefas especficas e no de uso geral, tornando-se um paralelo teoria
computacional proposta pelos reconstrutivistas.
Autores como TARR e BLACK (1994), definem que o objetivo do paradigma
construir sistemas para resolver tarefas especficas e o estudo das tarefas que
organismos com viso podem fazer.
Segundo ALOIMONOS (1994), os trabalhos de Brooks e Marr esto nos finais
opostos de um espectro onde a viso propositada se encontra no meio [ALOIMONOS,
1994, p.74]. evidente a influncia dos trabalhos de BROOKS (1986 e 1991) no
surgimento da viso ativa, qualitativa, animada e propositada, nas quais a decomposio
em tarefas, comportamentos propositados e muitas outras caractersticas daquele
trabalho so usadas.
A popularidade da abordagem propositada tem crescido bastante, uma vez que ela
alcana melhores resultados prticos na interao entre robs inteligentes e ambientes
complexos.
A principal crtica da comunidade reconstrutivista em relao propositada tem
sido a de que solues propositadas no possibilitam fcil expanso para tratamento de
problemas mais sofisticados, questionando a possibilidade de adquirir comportamentos
mais complexos com a simples montagem de comportamentos mais simples.
TARR e BLACK (1994) duvidam que qualquer sistema possa ser compreendido
18

em um contexto to estreito como este, pois concordam com MARR (1982): Em um


sistema geral, restries que so particulares a uma cena fazem com que o sistema
aumente de complexidade para gerenciar o grande nmero destas restries, ou seja, o
aumento de mdulos independentes - que surgem de restries diferentes - aumenta a
complexidade e que no ser humano esse nmero muito grande [MARR, 1982].
Outra questo que surge quanto provvel duplicao de esforos ao se tentar
construir mdulos distintos para comportamentos diversos. Algumas outras crticas ao
paradigma propositado, compiladas por TARR e BLACK (1994), so:
a viso propositada enganadora, porque no possumos ainda um
conhecimento adequado de quando processamentos especficos para certas
tarefas e crticos em relao ao tempo devem ser implementados e porque no
compreendemos as computaes que podem surgir da combinao de muitos
processos;
algumas suposies do paradigma propositado so apenas uma reformulao
daquelas feitas pelo paradigma reconstrutivo;
o propositivismo s serve para resolver problemas simples e casos particulares
TARR e BLACK (1994) acreditam que o paradigma propositado defende uma
mudana nos objetivos da rea de viso computacional que simplesmente um desvio
para evitar o estudo dos problemas reais da rea de viso computacional, que explicar
e implementar comportamentos visuais complexos. Acreditam que o paradigma
defende o abandono da busca por sistemas de viso inteligentes, por no querer tratar
problemas como sistema de viso de propsito geral e a viso humana, desistindo dos
objetivos de inteligncia artificial, psicologia cognitiva e neurocincias. Por isso, eles
afirmam que esta no uma alternativa ao paradigma reconstrutivo.
Porm, j foram apresentadas muitas crticas contra reconstrutivistas e
propositivistas. Assim, estabeleceu-se uma discusso entre reconstrutivistas e
propositivistas, que tem resultado em artigos onde nimos exaltados defendem suas
abordagens como a mais apropriada para o estudo em Viso Computacional [TARR e
BLACK, 1994; TSOTSOS, 1994; ALOIMONOS, 1994].
O propositivismo procura atingir a viso genrica atravs de uma abordagem de
cima para baixo (top-down), orientada aos objetivos (goal-oriented), dirigida pelas
tarefas (task-driven). Desta maneira, a viso de propsito geral emergir de uma
organizao de diversas solues dedicadas a diferentes tarefas visuais. Assim, o
problema principal torna-se: como organiz-las e quais so as tarefas primitivas,
voltando o enfoque para arquiteturas de integrao dos sistemas visuais.
na busca de solues para este importante problema que se encontra o maior
enfoque deste projeto. Para tentar resolv-lo, foram estudados os algoritmos clssicos da
rea de viso computacional, apresentado no prximo captulo.
19

4. TECNICAS DE SEGMENTAO DE IMAGENS EM VISO


COMPUTACIONAL
Segundo BALLARD e BROWN (1982) a idia de segmentao tem suas origens
nos psiclogos do grupo Gestalt, que estudavam as preferncias exibidas por seres
humanos no agrupamento ou organizao de um conjunto de formas dispostas no campo
visual. Ainda segundo estes autores, segmentao de imagens o termo usado em
viso computacional para o agrupamento de partes de uma imagem genrica em
unidades que so homogneas com respeito a uma ou vrias caractersticas (ou
atributos), que resulta em uma imagem segmentada. [BALLARD, D.; BROWN, C.,
1982, p. 116].
Existem duas maneiras bsicas de realizar a segmentao de uma imagem:
A anlise baseada em similaridades das regies da imagem. Regies so
definidas normalmente como reas 2D conectadas, sem superposio (um
pixel s pode fazer parte de uma nica regio).
A anlise baseada em descontinuidades na imagem, que utiliza as variaes
bruscas nos valores de intensidade dos pixels para particionar uma imagem.
A seguir so apresentados dois algoritmos que implementam estas abordagens
diferentes para segmentao, apresentando antes alguns conceitos sobre captura e
padres de imagens.

4.1 Captura de Imagens

Um programa que capture uma imagem colorida (24 bits), no modelo de cor
YUV, de tamanho varivel, gera as seguintes imagens.

Imagem Composta

Y - Luminncia U - Crominncia Azul V - Crominncia Vermelho


Figura 4.1 - Imagem composta capturada.

O modelo de cores YUV [LI, 1998] foi inicialmente usado no padro PAL para
20

vdeo analgico e atualmente usado como padro para video digital, sendo que o JPEG
e o MPEG so baseados em um modelo YUV modificado.
Este modelo define a imagem como sendo uma matriz de pontos, onde a cor de
cada ponto definido por 3 bytes: o primeiro define a luminncia da imagem (Y), e os
segundo (U) e terceiro (V) definem a crominncia.
A luminncia Y definida a partir das cores vermelha, verde e azul, onde:
Y = 0.299 * Vermelho + 0.587 * Verde + 0.114 * Azul
A crominncia definida como a diferena entre uma cor de referncia e um
branco de referncia para uma mesma luminncia. Assim os valores de crominncia so
definidos para o azul e o vermelho.
U = Azul - Y
V = Vermelho - Y
Neste modelo de cor uma imagem em nveis de cinza no possui crominncia e U
e V tornam-se igual a zero. Ainda, V varia do vermelho ao ciano e U do azul ao
amarelo.

4.2 Segmentao baseada em similaridades: Blob Coloring

Uma maneira de realizar a segmentao a fuso de regies (merging ou


growing). O algoritmo bsico pode ser descrito como: inicie com regies pequenas e
uniformes (pixel) e siga fundindo regies similares.
Uma implementao deste algoritmo pode ser feita com base em um algoritmo de
rotulao de regies em uma imagem do tipo Blob Coloring, descrito em (BALLARD,
D.; BROWN, C., 1982), com adaptao para imagens coloridas.
O algoritmo implementado recebe uma imagem e cria uma lista contendo uma
descrio da cena, com um id para cada objeto, seu tipo (dentre alguns tipos
conhecidos), seu tamanho em pixels e a sua posio na imagem.

Y U V
Figura 4.1 3 componentes de cor de uma imagem capturada.

Ele trabalha em 3 etapas: primeiro rotula uma regio; depois agrupa regies
segundo cor e proximidade em objetos; calcula a rea e o centro de massa dos objetos;
finalmente objetos desconhecidos (como sombras nos cantos da imagem) so retirados.
O resultado da execuo deste algoritmo sobre uma imagem mostrado na Figura 4.2.
21

Imagem original Regies Agrupadas Objetos na Cena


Figura 4.2 - Segmentao de uma imagem com Blob Coloring.

4.3 Segmentao baseada em diferenas: Vetorizador

O agente usa um algoritmo do tipo chain code (BALLARD, D.; BROWN, C.,
1982), baseado no descrito em (RILLO, A., 1989).
Dada uma imagem capturada, de tamanho determinado, este algoritmo
inicialmente filtra a imagem utilizando um limiar de cor, gerando uma imagem binria.
Depois, encontra os contornos da imagem filtrada, utilizando um operador de Robert
para encontrar as descontinuidades e finalmente, partir da imagem de descontinuidades,
este algoritmo encontra todas as regies da imagem que possuem um contorno fechado.
Descreve-se a seguir, os algoritmos que realizam cada parte deste processo.

4.3.1 Filtragem de Imagens por Cor (colorFilter)

A tarefa primitiva deste algoritmo filtrar uma imagem colorida, de tamanho


varivel, construindo uma imagem binria. Ele recebe a imagem colorida e o valor de
limiar de uma cor que se deseja filtrar no modelo YUV e atribui 1 s regies da imagem
onde a cor supere o limiar desejado e zero ao resto da imagem.

Imagem original Imagem binarizada


Figura 4.1 - Imagem binarizada para a cor vermelha.
22

4.3.2 Determinao de Contornos (edgeDetector)

Dada uma imagem binria, este agente determina os contornos existentes nela.
baseado no algoritmo descrito em (RILLO, A., 1989), que utiliza a definio de
contornos proposta por KITCHIN e PUGH (1983). Ele verifica quatro elementos da
imagem (mscara 2x2) para determinar se um ponto faz parte de um contorno ou no,
criando uma nova imagem onde as bordas encontradas esto entre os elementos da
imagem original.
A Figura 4.1 apresenta seis configuraes bsicas das dezesseis possveis
combinaes de quatro elementos de uma imagem binria. As configuraes na coluna
esquerda no pertencem a regies de contorno e por isso se atribui zero ao ponto
correspondente da imagem de resultante. Os da coluna direita so pontos que pertencem
a um contorno e resultam em um. As outras configuraes possveis podem ser obtidas
pela rotao destas apresentadas.

Elementos no pertencentes ao Elementos pertencentes ao


contorno (Resulta 0) contorno (Resulta 1)

Figura 4.1 Definio dos elementos bsicos de borda

Como este processo encontra o contorno entre os elementos da imagem, em vez


de dobrar a resoluo da imagem resultante - o que seria necessrio para desenhar as
bordas entre os pixels originais- esta deslocada de meio pixel para a esquerda e para
cima da imagem original, visando manter a resoluo original.

Imagem Capturada Imagem Filtrada Imagem dos Contornos


Figura 4.2 - Determinao de Contornos
23

A Figura 4.2 mostra uma imagem capturada onde existe um anel azul e uma pea
preta, a imagem filtrada para a cor azul e o contorno encontrado.

4.3.3 Vetorizador (vetorizer)

Dada a imagem binria, de tamanho determinado contendo os contornos de uma


imagem, este agente encontra todas as regies da imagem que possuem um contorno
fechado. Ele gera uma lista com a rea, o tamanho do contorno mnimo (chain size), a
posio do centro de rea para todas as regies fechadas da imagem. Ainda, este agente
verifica se cada regio possui uma forma circular ou no, utilizando a razo entre a rea
e o contorno calculado.
y
v5 v6 v7
y+1

y
v4 v8

y-1
v3 v2 v1

x-1 x x+1 x

Figura 4.1 Definio dos vetores elementares

O agente usa um algoritmo do tipo chain code (BALLARD, D.; BROWN, C.,
1982), baseado no descrito em (RILLO, A., 1989) e em (KITCHIN, P. W.; PUGH, A.,
1983). Este algoritmo considera que qualquer ponto em matriz de imagem est
conectado aos oito pontos imediatamente a sua volta atravs de um vetor elementar, cuja
direo foi rotulada (de v1 at v8) e que so apresentados na Figura 4.1.
O contorno de uma regio pode ser determinado, assim como sua rea calculada,
atravs de um procedimento que segue os contornos de uma imagem, criando uma
corrente de vetores ligados. Basta o ponto inicial da corrente e a seqncia dos vetores
para se determinar precisamente uma regio. Este procedimento segue o contorno mais
externo, caso a borda possua mais de um pixel de espessura.
Para calcular a rea de uma regio realizado um procedimento semelhante
integrao, onde a rea total dada pela somatria da contribuio de cada vetor
elementar. A Figura 4.2 mostra as contribuies dos vetores e a Tabela 4.1 apresenta os
valores desta contribuio.
O permetro de uma regio pode ser encontrado facilmente atravs dos algoritmos
baseados em chain-codes. O permetro total :
Permetro = PerimetroPar + Perimetrompar 2
isto , a soma do nmero de vetores com rtulo par (que esto na horizontal ou
vertical e por isso tem tamanho unitrio) mais a soma do vetores com permetro mpar
(que esto nas diagonais) vezes o tamanho destes, que 2 . O centro da regio tambm
24

pode ser calculado, utilizando frmulas para o clculo de centro de rea.


Contribuio positiva
y
Contribuio negativa
v7 v6 v5
y+1

v8 v4 v3 v2 v1
y

y-1

x=1 x

Figura 4.2 Contribuio de cada elemento para o clculo da rea

Vetor de Direo rea


v8 y1
v7 (y + ) 1
v6 0
v5 (y + ) (-1)
v4 y (-1)
v3 (y - ) (-1)
v2 0
v1 (y - ) 1

Tabela 4.1 Valores da contribuio de rea de cada elemento

A figura abaixo apresenta um exemplo de imagem vetorizada.

Imagem Capturada Imagem Filtrada Contornos Imagem Vetorizada


Figura 4.3 - Vetorizador
25

5. SISTEMA VISUAL BASEADO EM SOFTWARE

5.1 Introduo

Esta seo descreve uma para a contruo de um sistema visual para robs mveis
baseada em software.
Para a realizao deste trabalho foram implementados dois programas que, dada
uma imagem previamente capturada e armazenada no disco rgido do computador, a
segmentam baseados nos algoritmos Blob Coloring e Vetorizador.
O objetivo destas implementaes o de encontrar a bola - objeto esfrico de cor
laranja em imagens reais do domnio do futebol de robs. Um exemplo das imagens que
o sistema deve trabalhar esto na figura abaixo.

Figura 5.1 Imagens tpicas do domnio, capturadas on-board.

Entre os problemas que este domnio apresenta para a percepo o maior que a
cmera se encontra a bordo dos robs e por este motivo, o sistema possui apenas uma
vista parcial da rea do jogo. A figura abaixo esquematiza a rea visual de cada rob
vista de cima e a Figura 5.3 apresenta a vista lateral.

rea

Bola

Rob

Campo

Figura 5.2 esquema da rea de viso de um rob.


26

Rob Distncia Bola


rob - bola

Campo

Figura 5.3 - esquema lateral da viso de um rob.

Os algoritmos foram implementados em ambiente Intel Pentium utilizando o


sistema operacional Linux Conectiva 4.0 e linguagem C++ com compilador gcc. Alm
dos programas que implementam a segmentao foram criados diversos programas de
suporte, como bibliotecas para abertura de imagens padro PPM e programas de captura
de imagem (este em ambiente Windows).
A prxima seo apresenta os resultados obtidos e a comparao entre os
resultados dos dois algoritmos de segmentao implementados.

5.2 Anlise do algoritmo Blob Colouring

Um dos problemas encontrados com o algoritmo de segmentao de regies


semelhantes baseado no Blob Colouring que o resultado da segmentao depende
muito do limite permitido para que dois pixeis de valores de cor diferente sejam
considerados da mesma cor. Este limite para a semelhana necessrio pois em uma
imagem real, mesmo as regies semelhantes possuem pequenas variaes na intensidade
da cor de seu elementos.
Nas imagens contidas nas duas pginas seguintes mostrado o resultado da
segmentao da imagem abaixo (Figura 5.1) quando o limite em que se considera um
pixel da mesma cor de outro varia de 5 nveis de qualquer um dos componentes at 50.
A coluna da esquerda mostra as regies encontradas e a coluna da direita mostra os
objetos (regies conectadas de rea maior que 50 pixeis) encontrados. Alm disso, o
tempo de processamento e o nmero de regies tambm apresentado.

Figura 5.1 - Imagem da bola a 20 cm de distncia


27

Regies Objetos
Diferena permitida = 5
Tempo de processamento: 1,32 segundos - Nmero de regies encontradas: 49076
No existem objetos nesta imagem.

Diferena permitida = 10
Tempo de processamento: 3,02 segundos - Nmero de regies encontradas: 17557

Diferena permitida = 12
Tempo de processamento: 3, 36 segundos - Nmero de regies encontradas: 11047

Segue
28

Regies Objetos
Diferena permitida = 15
Tempo de processamento: 3,9 segundos - Nmero de regies encontradas: 5411

Diferena permitida = 20
Tempo de processamento: 4,91 segundos - Nmero de regies encontradas: 605

Diferena permitida = 50
Tempo de processamento: 4,9 segundos - Nmero de regies encontradas: 34
No existem objetos nesta imagem.

Figura 5.2 Resultados de segmentao x diferena de cor permitida.


29

A partir desta figura podemos concluir que:


Quando o limite permitido para que dois pixeis de valores de cor diferente sejam
considerados da mesma cor pequeno (por exemplo, 5), a quantidade de
regies na imagem se torna enorme (~104) o que torna impossvel encontrar
objetos.
Quando o limite permitido para que dois pixeis de valores de cor diferente sejam
considerados da mesma cor grande (por exemplo, 50), a quantidade de
regies na imagem diminui, tendendo at se tornar uma s, o que tambm
torna impossvel encontrar objetos na imagem.
A grande variao das cores da bola, proveniente da iluminao, no permite que
esta seja encontrada: ou ela segmentada em diversas regies diferentes (caso
da diferena permitida ser igual a 12) ou ela agrupada ao fundo (caso a
diferena seja igual ou maior que 15).
Com diversos testes deste algoritmo em vrias seqncias de imagens foi possvel
concluir que, devido a grande variao das cores dos objetos, esta abordagem no
permite encontrar a bola (objeto principal do futebol de robs) em uma imagem. A
imagem abaixo mostra o problema para imagens com a bola e o rob.

Imagem original Imagem com regies Imagem dos objetos

Figura 5.3 Resultado de imagem com rob.

5.3 Anlise do algoritmo Vetorizador

O algoritmo de segmentao de imagens baseado em Chain-Code apresentou


melhores resultados que o Blob Coloring. Apesar disso, este algoritmo no conseguiu
encontrar a bola inteira, apenas a regio central desta. Isso se deve novamente grande
variao de intensidade luminosa na imagem: a parte superior est muito clara e a
inferior muito escura para serem includas na segmentao da bola. A Figura 5.1 mostra
o resultado de uma segmentao.
30

Imagem original Imagem filtrada ( suavizao e limiarizao).

Imagem das bordas encontradas Imagem dos chain-codes encontrados.

Figura 5.1 Resultado da segmentao por vetorizao

Apesar de no serem os resultados esperados, a aplicao deste algoritmo em


imagens da bola em distncias diferentes da cmera permitiu se encontrar as laterais da
bola, o que possibilitou localizar a bola na imagem (Cx = Xdireita - Xesquerda).
Alm disso, o dimetro permite a criao de uma tabela com a variao do
dimetro da bola pela distncia (Figura 5.2). Esta tabela permite que se calcule a funo
que relaciona a largura da bola encontrada na imagem com a distncia desta da cmera.
31

Imagem Original Imagem Chaincodes Distncia / Dimetro

Distncia :10 0,5 cm

Dimetro: 143 2 pixeis

Distncia :20 0,5 cm

Dimetro: 86 2 pixeis

Distncia :50 0,5 cm

Dimetro: 36 2 pixeis

Distncia :100 0,5 cm

Dimetro: 18 2 pixeis

Figura 5.2 Distncia x Dimetro de diversas imagens.

5.4 Comparao entre os algoritmos Blob Coloring e Vetorizador.

Para a comparao de eficincia entre as implementaes dos algoritmos Blob


Coloring e vetorizador foi utilizado um computador Pentium 200 com 48 Mbytes de
memria RAM. A Tabela 5.1 apresenta os resultados dos tempos de execuo dos dois
algoritmos, levantados para diversas imagens em 2 tamanhos.
32

Tamanho da Blob Colouring Vetorizador


imagem (segundos) (segundos)
160 x 120 1,22 0,04
320 x 240 de 1,32 at 4,91 de 0,14 at 0,16
Tabela 5.1 Comparao de performance entre os algoritmos.

A partir desta tabela podemos notar que o algoritmo vetorizador foi mais eficiente
que o Blob Coloring. Apesar disto, nenhum dos dois foi eficiente o suficiente para a
aplicao no domnio do futebol de robs, onde o tempo mximo de processamento de
0,0167 segundos.
A seguir so apresentadas as concluses deste captulo e os possveis caminhos
para sua extenso.

5.5 Concluses e trabalhos futuros

Os diversos testes realizados com os algoritmo de segmentao de imagens por


agrupamento de regies Blob Coloring e por diferenas de regies Vetorizador com
Chain-Code em vrias seqncias de imagens foi possvel concluir que:
Devido grande variao da intensidade das cores dos objetos, o algoritmo de
Blob Coloring no encontra a bola (objeto principal do futebol de robs) em
uma imagem.
Novamente devido variao da intensidade das cores, o algoritmo vetorizador
no consegue segmentar a bola perfeitamente, mas consegue a localizar na
imagem e descobrir a distncia desta at o rob.
A partir dos resultados de eficincia medidos possvel concluir que o algoritmo
vetorizador mais eficiente que o Blob Coloring. Apesar disto, nenhum dos
dois foi eficiente o suficiente para a aplicao no domnio do futebol de robs,
onde o tempo mximo de processamento de 0,0167 segundos.

Como possveis trabalhos futuros deve-se estudar algoritmos mais robustos e


eficientes para localizar a bola na imagem, como os dedicados ao rastreamento de
objetos, os que envolvem Redes Neurais Artificiais (para diminuir a influncia da
variao de cores) e algoritmos baseados em Lgica Nebulosa.
33

6. SISTEMA VISUAL BASEADO EM HARDWARE


Esta seo descreve uma outra soluo a contruo de um sistema visual para
robs mveis. A soluo discutida a implementao de algoritmos de viso
computacional em hardware programvel . Ela est dividida em quatro partes principais.
A primeira descreve a linguagem VHDL. A segunda, descreve a implementaso e os
algoritmos e a terceira apresenta um exemplo de implementao em VHDL. Finalmente,
apresentamos resultados e a concluso deste captulo.

6.1 VHDL

VHDL (Bhasker, 1995) a abreviao de VHSIC Hardware Description Language


(VHSIC a abreviao de Very High Speed Integrated Circuits). VHDL uma
linguagem de descrio de hardware que pode ser usada para modelar um sistema
digital, desde uma simples porta lgica at um sistema digital completo.
A necessidade pela linguagem aconteceu em 1981 no programa VHSIC. Neste
programa um grande nmero de empresas dos Estados Unidos desenvolvia CIs para o
departamento de defesa (DoD), cada uma usando uma linguagem de descrio diferente
das outras. Ento surgiu a necessidade de uma linguagem padronizada que todos
pudessem usar.
Em 1983 um grupo de trs companhias, IBM, Texas Instruments e Intermetrics,
assinou um contrato com o DoD para desenvolver uma verso da linguagem.
A verso 7.2 do VHDL foi desenvolvida e apresentada ao pblico em 1985. Aps
isso houve uma crescente necessidade de fazer com que a linguagem se tornasse um
padro da indstria. Consequentemente, em 1986, a linguagem foi transferida para o
IEEE para padronizao.
Depois de avanos substanciais na linguagem, feitos por um grupo de indstrias,
universidades e representantes do DoD, a linguagem tornou-se padro pelo IEEE em
dezembro de 1987 (IEEE Std 1076-1987). A linguagem passou a ser reconhecida como
um padro do American National Standards Institute (ANSI).
De acordo com as regras do IEEE, um padro do IEEE precisa ser reformulado a
cada 5 anos para que possa continuar a ser um padro. Consequentemente a linguagem
foi atualizada com novos recursos, a sintaxe da maioria das construes foi
uniformizada, e muitas ambigidades presentes na verso de 1987 da linguagem foram
resolvidas. Esta nova verso da linguagem conhecida como IEEE Std 1076-1993.
O DoD, desde setembro de 1988, exige que todos os seus fornecedores de
Circuitos Integrados de Aplicao Especfica (ASIC) apresentem descries VHDL de
seus circuitos de dos subcomponentes.
VHDL permite para o projetista implementar a arquitetura atravs de trs mtodos
diferentes: o mtodo de Fluxo de Dados, o mtodo Comportamental e o mtodo
Estrutural.
No mtodo de fluxo de dados o projetista define declaraes Booleanas que so
atribudas a sinais. Estas declaraes so executadas concorrentemente e so usadas para
implementar funes Booleanas simples que dependem de um ou vrios sinais binrios.
O mtodo de behavioral define processos que contm declaraes entre um par de
Etiquetas Process e End process. As declaraes dentro de um processo so
34

executadas consecutivamente e trabalham da mesma maneira que qualquer programa


escrito em uma linguagem procedimental como C ou Pascal.
Finalmente, o mtodo estrutural permite ao projetista descrever as ligaes
eltricas do circuito e conecta vrios componentes virtuais dentro do FPGA. usado
para definir a interconexo lgica dos componentes de circuito.
Estes trs modos podem ser combinados no chamado modo misturado, onde o
projetista pode implementar parte do sistema como um circuito digital e outra parte
como um algoritmo, como foi feito neste projeto e que descrito na prxima seo.

6.2 O sistema implementado

O sistema implementado composto pelas seguintes partes (Figura 6.1):


Aquisio da Imagem
Binarizao
Determinao de contornos, com extrao das bordas.
Vetorizao, com clculo de informaes sobre a imagem.
Envio dos dados

Aquisio da Imagem
(Interface com o SAA7111 da Philips)

Binarizao
(Limiar)

Extrao de Bordas
(EdgeFind)

Vetorizao
(ChainCode)

Sada de Dados
(Interface com o
circuito de controle)

Figura 6.1 Diagrama de Blocos do sistema implementado em Hardware.

6.2.1 Aquisio da imagem

Para a construo do sistema em hardware necessrio encontrar uma forma de


extrair imagens diretamente de uma cmera de vdeo. Para isso foi utilizado um
decodificador de vdeo da Philips que faz a converso do sinal da cmera para o padro
RGB, realizando a aquisio da imagem.
O SAA7111 um CI produzido pela Philips que tem como funo receber uma
entrada de vdeo analgica e transform-la em uma sada digital com vrios padres
diferentes, escolha do usurio.
A entrada do processador de vdeo feita por uma combinao de dois canais
analgicos de pr-processamento. Estes canais possuem uma fonte de seleo, um filtro
35

anti-aliasing, um controle de ganho automtico, um circuito gerador de clock ( CGC ),


um decodificador digital multi padres (PAL BGHI, PAL M, PAL N, NTSC M e
NTSC N), possui um circuito que controla o brilho, contraste, saturao e uma matriz
espacial de cores. O SAA7111 aceita como entrada analgica os sinais CVBS ou S-
vdeo (Y/C) retirados da TV ou VTR.
A sada do decodificador de vdeo pode ter vrios padres, como por exemplo,
YUV (12-bit), YUV (16-bit), YUV (8-bit), RGB (16-bit), RGB (24-bit). Todos estes
sinais so digitais.
A imagem utilizada pelo sistema tem resoluo de 320 linhas, 240 colunas e 16
bits de cores. Ela gerada por uma cmera de vdeo comum, capturada e decodificada
pelo SAA7111. Neste trabalho foi utilizado como entrada o padro NTSC M e como
sada o padro RGB de 16 bits.
A interface do decodificador com o FPGA que implementa a viso feita atravs
de 16 pinos de entrada (RGB16) da seguinte forma: 10 pinos so utilizados para as cores
vermelho e azul (5 para cada) e 6 para o verde.
Este circuito controlado pelo protocolo de vdeo I2c-bus, descrito a seguir.

6.2.2 O protocolo IC-bus

O I2C-bus (Inter Integrated Circuit-bus) um protocolo de comunicao que foi


desenvolvido pela diviso de semicondutores da Philips no incio da dcada de 80. Este
protocolo tem por objetivo criar um caminho mais simples para se conectar a CPU de
um micro computador a um chip atravs da comunicao serial bidirecional, composta
por dois cabos: a linha serial de dados (SDA) e a linha serial de clock (SDL).
Cada componente conectado reconhecido pelo software com um nico endereo
e uma simples relao mestre/escravo quem faz a comunicao. O mestre pode operar
como transmissor ou receptor. Durante a transmisso podemos enviar mensagens sem
restrio do nmero de bytes a serem enviados.
Para podermos configurar o CI utilizando a comunicao serial cridas trs sub-
rotinas que manipula os sinais SDA e SDL. Essas rotinas so:
I2C_START = inicia transmisso
I2C_SEND_BYTE = manda 1 byte
I2C_STOP = termina transmisso
Para se configurar todos os parmetros do CI so utilizadas diversas sub-rotinas
em seqncia, repetindo o I2C _SEND_BYTE tantas vezes quanto necessrio para
enviar um bloco completo consistido por:
Identificador (Device ID) do SAA7111;
Endereo do primeiro parmetro a ser programado
Valor do primeiro parmetro.
Valor do parmetro seguinte.
Configuraes restantes.

6.2.3 Binarizao da Imagem

Aps ser capturada, a imagem convertida para bitmap preto e branco atravs de
36

um sistema de limiar de cores (como descrito na seo 4.3.1), que filtra e transfere para
a imagem monocromtica somente uma cor predefinida. Esta imagem (monocromtica)
armazenada em memria para ser processada.

6.2.4 Determinao dos contornos

A extrao de bordas descrita na seo 4.3.2 implementada aqui. A imagem


analisada em partes constitudas de quatro pontos cada uma, assim sendo analisa-se
primeiro os dois primeiros elementos da primeira linha, juntamente com os dois
primeiros da segunda, depois os segundo e terceiro elementos da primeira e da segunda
linha, e assim por diante at o final da linha. Quando termina a linha, repete-se o mesmo
processo para a segunda e a terceira linha e assim por diante at que tenha encerrado as
linhas.
Durante esta fase, a imagem binaria armazenada anteriormente seqencialmente
substituda pela imagem contendo as bordas, para diminuir a necessidade do uso de
memria.

6.2.5 Identificao de Objetos na Imagem

A vetorizao da imagem (como descrita na seo 0) realizada neste mdulo. O


resultado do mdulo anterior, armazenado na rea de memria reservada para a imagem,
passado para a funo chaincode que transforma cada borda da imagem em uma
seqncia de vetores, a partir dos quais elabora uma matriz com as informaes de
posio e tamanho de cada objeto.Ele faz uma varredura na imagem gerada pelo
primeiro algoritmo, que contm apenas as bordas dos objetos, e cria uma matriz de
vetores (chain code) para cada objeto que possua um contorno fechado. O resultado
deste algoritmo aplicado rea onde se encontra a bola mostrado a seguir:

Original Filtrada Contornos Vetorizada

Figura 6.1 Resultado de uma imagem Analizada pelo sistema, em suas diversas fases.

Ao final desta anlise encontramos as informaes sobre cada objeto, que neste
caso toda seqncia de vetores que forma um contorno fechado. Estes dados so
enviados para a porta de sada do circuito.

6.2.6 Saida dos dados

Para realizar a sada dos dados foi elaborado um pacote de dados. Os dados so
colocados na sada em pacotes de 32 bits, sendo 9 para a posio do objeto em relao
ao eixo X, 9 para o eixo Y e 14 para o tamanho do contorno mnimo (chain size). Esta
informao pode ser enviada a outro mdulo de FPGA, como o mdulo de estratgia ou
um mdulo que transmita a para um computador atravs de uma porta de comunicao
serial RS-232.
37

6.3 Transposio dos algoritmos para VHDL

Ao implementar o projeto, os trs modos para escrever uma especificao de


VHDL, descritos na seo 2, foram combinados no chamado modo-misturado, onde o
projetista pode implementar parte do sistema como um circuito digital e outra parte
como um algoritmo. Como os algoritmos implementados no sistema tm um tamanho
considervel, ns apresentamos aqui a simplificao do dispositivo de limiarizao.
A seguir se encontra um exemplo de uma descrio em VHDL que implementa
um dispositivo de limiarizao de uma imagem, no caso um filtro passa-baixa. Foi
usado o mtodo de fluxo de dados.

-- Esta parte descreve os sinais de entrada e sada


Entity Threshold is
PORT ( R, B: IN BIT_VECTOR(0 TO 4);
G: IN BIT_VECTOR(0 TO 5);
I: OUT BIT
);
End Threshold;

-- Esta parte defina a funcionalidade do dispositivo


Architecture Threshold of threshold Is
BEGIN
I <= not (R(4) or B(4) or G(5));
End Threshold;

A primeira parte do cdigo define os sinais de entrada e sada, onde h 5 bits para
os sinais vermelhos e azuis e 6 bits para o sinal verde e apenas um para o sinal de sada.
A segunda parte definea funo do sistema: um dispositivo que aceitar s cores que
possua os componentes vermelho, verde ou azul menos da metade da intensidade
mxima. Se algum dos bits mais significativos estiver com valor verdsadeiro, o sinal de
sada estar desligado.

6.4 Resultados

Estes algoritmos foram testados em um Pacote de Laboratrio do Programa


Universitrio ALTERA, que inclui Software de desenvolvimento MAX+PLUS II
(Edio de Estudante), uma placa de desenvolvimento educacional e um cabo para carga
ByteBlaster.
O software MAX+PLUS II um sistema de desenvolvimento que permite o
desenvolvimento atravs de sistemas grficos ou de uma linguagem de descrio de
hardware, compilao e verificao do projeto, e programao de dispositivo. A placa
de desenvolvimento educacional (Figura 6.1) possui dois dispositivos lgicos
programveis e reconfigurveis. Finalmente, o ByteBlaster permite a carga de
programas do MAX+PLUS na placa.
38

Figura 6.1 - A placa de desenvolvimento ALTERA onde o sistema foi testado.

Abaixo podemos ver um trecho da carta de tempo da fase de extrao de bordas.


O nmero de clocks gastos para a execuo desta fase o nmero de linhas da imagem
acrescido de um, pois o mtodo de implementao utilizado consegue processar uma
linha inteira a cada ciclo. Como o clock utilizado para o processamento da imagem de
100 MHz e nossa imagem tem 240 linhas, temos um total de 2,41s para cada imagem.

Figura 6.2 Carta de tempo.

O sinais na carta de tempo so:


CLK clock do sistema;
INPUT vetor de entrada que a representao de uma linha inteira;
OUTPUT vetor de sada no mesmo formato da entrada;
FIRST sinal de controle de sincronismo;
Um exemplo de carta de tempo com todas as entradas para uma imagem de 60x45
encontra-se a seguir.
39
40

Figura 6.3 - Carta de Tempo mostrando a entrada de dados no CI Altera Flex.

A tabela abaixo mostra o tempo necessrio para o processamento de cada imagem,


o que nos mostra que, teoricamente, o sistema poderia processar aproximadamente 649
imagens no formato utilizado por segundo. Os mesmos algoritmos, quando
implementados em linguagem C e ambiente Linux, leva 33ms para processar cada
imagem, ou seja, 21,5 vezes mais tempo.

Fase Tempo
Captura e Binarizao 770s
Extrao de Bordas 2,41s
Vetorizao 770s
Tempo total at os dados estarem disponveis na sada 1,54ms

Tabela 6.1 Tempo necessrio para cada mdulo.

Assim sendo, quem determinar o nmero de quadros processados por segundo


poder ser a cmera, o circuito de captura ou o circuito que processar os dados, j que
certo que todos eles tero capacidade inferior apresentada pela fase de tratamento e
identificao de objetos na imagem.

6.5 Concluso

Uma comparao da eficincia do sistema implementado em hardware com os


mesmos algoritmos implementados em linguagem C, os quais j forneciam um
desempenho muito bom (da ordem de 30 quadros por segundo), mostrou que o primeiro
sistema alcanou um desempenho superior com a mesma qualidade. Associado com o
baixo custo de componentes de FPGA (menor que uma placa Vdeo for Windows), o
41

sistema resultante um dispositivo de pequeno tamanho que serve bem para robs
autnomos.
Atravs dos resultados obtidos pode-se concluir que a implementao em
Hardware Programvel torna o sistema extremamente eficiente e que essa eficincia no
pode ser aproveitada plenamente pelo conjunto do rob, pois os componentes restantes
no conseguem alcanar o mesmo nvel de desempenho.
A avaliao das imagens resultante permitiu concluir que a qualidade dos
resultados obtidos tambm foi satisfatria.
Como trabalho futuro em VHDL deseja-se implementar outros algoritmos de
Viso Computacional em VHDL, como por exemplo, o Blob Colouring [BALLARD E
BROWN, 1982].
42

7. SISTEMA DE CONTROLE
O sistema de controle de um rob decide, a partir da sua percepo, quais aes
devem ser realizadas. Para estudar estes sistemas geralmente so implementados
simuladores do ambiente que se deseja estudar.
Atualmente na Robocup existe a liga de simulao, onde utilizado um sistema
cliente-servidor que gera um campo virtual e controla as aes dos jogadores. Um
cliente comanda um jogador no campo e controla suas aes. As comunicaes entre o
cliente e o servidor so feitas por UDP/IP. Os clientes podem ser escritos em qualquer
sistema de programao que tenha interface UDP/IP. O Servidor de Futebol
Multiplataforma pode ser usado em sistemas como SunOS 4.1.x, Solaris 2, DEC OSF/1,
NEWS-OS, Linux and Irix 5. Com base nesta simulao foi implementado o sistema de
controle descrito neste captulo, baseado em programao Gentica.

7.1 Introduo aos Algoritmos Gentimos (AG) e Programao Gentica


(PG)

7.1.1 Evoluo e Seleo

De acordo com a Teoria da Evoluo de Darwin, os organismos mais adaptados


ao mundo em que vivem so os que tero maiores chances de sobrevivncia.
Os organismos que se tem hoje so conseqncia da evoluo de outros
organismos inferiores que se extinguiram e que sem eles, provavelmente, no
existiriam. Cada criatura nessa cadeia o produto de uma srie de acidentes que tm
acontecido continuamente sobre a presso seletiva do ambiente, ou seja, fruto do
ambiente em que vive e no o contrrio. Por muitas geraes, a variao aleatria de
caractersticas e a seleo natural formaram o comportamento de indivduos e espcies
para que estes suprissem as demandas do seu ambiente.
Segundo Koza (1992), o processo evolutivo ocorre na natureza quando quatro
condies bsicas so satisfeitas:
Um indivduo tem a habilidade de se reproduzir;
Existe uma populao desses indivduos;
Existe alguma variedade entre esses indivduos;
Alguma diferena em habilidade de sobrevivncia est associada com a
variedade.
Em PG ser aproveitado o fato de que a evoluo na natureza criativa, pois
produz muitas vezes resultados inesperados, impensveis e no-lineares, diferente do
modo de programao usual. Este fato refere-se s formas de evoluo utilizadas em PG
como Reproduo, Cruzamento e Mutao.

7.1.2 Fitness

Fitness um parmetro que mede o encaixe da espcie em seu ambiente.


Existem vrias formas de fitness, a usada : Quanto maior o fitness do indivduo maior
sua probabilidade de sobrevivncia e adaptao ao ambiente. Com este dado obtido, os
indivduos podem ser organizados de forma descendente, ento so eliminados os piores
43

e os melhores continuam para serem reproduzidos ou cruzados.


O fitness na Programao Gentica usado para que os piores indivduos sejam
descartados.

7.2 Programao Gentica

7.2.1 Indivduo

Em PG o indivduo definido como uma rvore (representaes de rvores sero


mostradas a seguir) de funes e terminais, que constituem suas caractersticas e
comportamento no ambiente para o qual foi desenvolvido, cada funo um ramo e
cada terminal uma folha do indivduo.

Figura 7.1 Exemplo de Indivduo

Funes: podem ser condies, sensores, operaes aritmticas, booleanas, etc.


So usadas funes para captar informaes sobre o ambiente (mundo) e,
convenientemente, para melhorar o desempenho de cada indivduo.
Terminais: geralmente so variveis ou constantes. Os terminais sero usados para
fazer o indivduo agir no ambiente.

7.2.2 Reproduo

Os melhores indivduos da gerao atual so simplesmente copiados para a nova


gerao. O objetivo que os melhores indivduos no sejam perdidos.

Figura 7.1 Exemplo de Reproduo


44

7.2.3 Cruzamento

So escolhidos dois indivduos (pais) a partir do fitness, selecionando pontos de


cruzamento, e deles criados dois descendentes que vo estar na prxima gerao. O
objetivo que algo de novo seja criado usando o que h de melhor, os pais tambm so
preservados para a prxima gerao.

Figura 7.1 Exemplo de Cruzamento

7.2.4 Mutao

Um indivduo selecionado, depois um ponto de mutao, e a partir dele criado


um novo ramo. O objetivo bvio: melhorar um indivduo j bom, mas com isso ele
pode perder desempenho e ser eliminado. Observao: isso no impede que o indivduo
seja salvo antes de ser aplicado mutao, o que normalmente acontece.

Figura 7.1 Exemplo de Mutao

A mutao pouco utilizada porque no melhora, relevantemente, o desempenho


normal de uma execuo.
45

7.3 Algoritmo Gentico

7.3.1 Indivduo

Em AG os indivduos (exemplos sero mostrados a seguir) so representados por


cdigos de comprimento fixo chamados de cromossomos, geralmente o cromossomo
dividido em partes que identificam caractersticas importantes do indivduo, neste
exemplo ele representado em cdigo binrio, mas tambm podem ser usados nmeros
reais ou at mesmo o alfabeto.

0010 1110 0001 0011 1011


Figura 7.1 - Exemplo de Cromossomo

A forma e o comprimento do cromossomo so a forma de representao do


indivduo. Caractersticas que devemos escolher para o obtermos o melhor resultado
final. O cromossomo acima tem comprimento igual 20 e dividido em cinco
caractersticas.

7.3.2 Reproduo

Funciona da mesma forma que a reproduo em PG.

0010 1110 0001 0011 1011


Gerao Atual

0010 1110 0001 0011 1011


Prxima Gerao
Figura 7.1 Exemplo de Reproduo

7.3.3 Cruzamento

So escolhidos dois indivduos que sero os pais. Ento escolhido apenas um


ponto de cruzamento, pois o comprimento dos indivduos fixo e depois disso
efetuada a troca dos cdigos.
Ponto
de
Cruza
mento
0010 1110 0001 0011 1011

0011 1111 0011 0011 1010


Gerao Atual
46

0010 1110 0011 0011 1010

0011 1111 0001 0011 1011


Prxima Gerao
Figura 7.1 Exemplo de Cruzamento

Observao: O ponto de cruzamento pode ser qualquer um entre 1 e o


comprimento do cromossomo menos 1 (L 1).

7.3.4 Mutao

necessrio apenas um indivduo que, depois de escolhido o ponto de mutao,


aplicada uma das seguintes mudanas:
Complemento: o valor da caracterstica selecionada aleatoriamente
complementado.

0010 1110 0001 0011 1011


Gerao Atual

0010 1110 1110 0011 1011


Prxima Gerao
Figura 7.1 Exemplo de Complemento

Incremento: O valor da caracterstica selecionada aleatoriamente incrementado.

0010 1110 0001 0011 1011


Gerao Atual

0010 1110 0010 0011 1011


Prxima Gerao
Figura 7.2 Exemplo de Incremento

Decremento: O valor da caracterstica selecionada aleatoriamente decrementado.

0010 1110 0001 0011 1011


Gerao Atual

0010 1110 0000 0011 1011


Prxima Gerao
Figura 7.3 Exemplo de Decremento
47

Finalmente, apresentamos na figura a seguir um Fluxograma de Funcionamento da


Programao gentica e dos Algoritmos Genticos.

Gerao = 0

S Designar
Criar populao inicial aleatria
resultado

Critrio de terminao satisfeito ?


Fim

Calcular fitness de cada


indivduo na populao

i=0

S
Gerao + 1 i=M?

Selecionar operao gentica


probabilisticamente

Selecionar um indivduo Selecionar dois indivduos Selecionar um indivduo


baseado no fitness baseado no fitness baseado no fitness

Reproduzir i+1 Mutar

Copiar indivduo na Cruzar Inserir mutante na nova


nova populao populao

Inserir dois descendentes


na nova populao

i++

Figura 7.4 Funcionamento da AG e da PG

7.4 Programas Implementados

7.4.1 Agente seguidor de paredes com viso global e ambiente restrito

A implementao de um agente Seguidor de Paredes necessria por se tratar de


um comportamento bsico de movimentao de agentes inteligentes no domnio do
Futebol de Robs e por ser possvel o aproveitamento das caractersticas desenvolvidas
nesse agente para criar um time de futebol.
O objetivo principal desse comportamento desenvolver um indivduo que seja
capaz de percorrer toda a lateral do ambiente de simulao no tempo estipulado.
48

Com as caractersticas da PG foi criado o programa do rob seguidor de paredes


no qual o rob deve visitar o maior nmero de quadrados adjacentes parede dentro de
um ambiente de simulao em um nmero mximo de passos. considerado um passo
cada vez que o rob executar um terminal (agir), e considerada uma execuo cada
vez que a rvore completa do rob for percorrida uma vez, ou seja, existem vrios
passos dentro de uma execuo e opta-se por no par-la antes que termine, por isso
tm-se robs com mais passos, mas no com menos.
O indivduo deve percorrer a sala sempre prximo parede e completar sua volta
em no mximo 200 passos.
A cada simulao o indivduo comea em posies e direes diferentes para
evitar que ele percorra o caminho automaticamente sem verificar o ambiente em que
est.

Fitness
O fitness calculado da seguinte forma:
fitness = fit;
Na qual fit o nmero de posies do caminho ideal que o rob visitou nas
cinco execues.
O fitness mximo 300 e representa o nmero de clulas do caminho ideal, ou
seja, se um rob conseguir percorrer o caminho ideal sem se desviar muito da sua
trajetria, certamente ter um fitness igual ou prximo ao mximo.

Funes
PROGN3 (3): executa trs ramos em seqncia;
PROGN2 (2): executa dois ramos em seqncia;
IFWALL (I): executa seu ramo esquerdo se no for detectada parede pelo rob (a
no mximo 1 passo de distncia) e caso contrrio executa seu ramo direito.

Terminais
WALKFRONT (F): faz rob dar um passo frente;
WALKBACK (B): faz rob dar um passo para trs;
RIGHT (R): faz rob virar direita;
LEFT (L): faz rob virar esquerda.

Outros Parmetros
Populao (M) = 500;
Nmero de Geraes = 71;
Probabilidade de Cruzamento = 70%;
Probabilidade de Reproduo = 30%;
Matriz de simulao = 20 x 20;
Posicionamento do rob em nmeros inteiros;
49

Limite de complexidade (no sorteio) = 120;


ngulo de virada = 90;
Nmero de execues por indivduo = 5.

Resultados
Grficos Evolutivos
O grfico abaixo ilustra a evoluo dos indivduos ao se passarem 71 geraes
de reproduo e cruzamento. Pode-se observar que na gerao 69 obteve-se o primeiro
indivduo com fitness mximo designado igual 300. As oscilaes devidas a
aleatoriedade utilizada na medio do fitness. Por fim, a mdia da gerao que tambm
melhora, mas se mantm mais constante e estabiliza por volta da gerao 62.

Fitness = f(Gerao)

Mdia Maior

350

300

250

200
Fitness

150

100

50

0
0 10 20 30 40 50 60 70 80
Gerao

Figura 7.1 Grfico Evolutivo de 71 geraes

No prximo grfico temos um exemplo de uma execuo aonde o primeiro


indivduo com fitness 300 aparece na gerao 6, muito prematuro, por isso, e
tambm devido aleatoriedade esse indivduo no mantm seu desempenho. Ainda
vemos oscilaes at a gerao 20 aonde o melhor se estabiliza. Nesse grfico tambm
podemos perceber que devido soluo ter sido encontrada muito cedo obtemos uma
mdia final dos indivduos muito melhor que a do caso anterior.
50

Fitness = f(Gerao)

Mdia Maior

350

300

250

200
Fitness

150

100

50

0
0 10 20 30 40 50 60 70 80
Gerao

Figura 7.2 Grfico Evolutivo de 71 geraes com evoluo antecipada

E no ltimo grfico que foi simulado com apenas 51 geraes, o exemplo de


uma evoluo no qual o melhor indivduo no nem prematuro nem muito atrasado, ele
ocorre na 22 gerao e se estabiliza.

Fitness = f(Gerao)

Mdia Maior

350

300

250

200
Fitness

150

100

50

0
0 10 20 30 40 50 60
Gerao

Figura 7.3 Grfico Evolutivo de 51 geraes

Exemplos de Caminhos
Para entendermos as figuras necessrio que se saiba a maneira como foram
representadas:
51

As paredes so a parte representada pela cor preta;


A rea livre para circulao do rob representada pela cor branca;
As outras cores representam a direo do rob durante o percurso:
o Vermelho: para cima;
o Amarelo: esquerda;
o Azul: para baixo;
o Verde: direita.

Figura 7.4 Exemplos de caminhos percorridos pelos agentes

Gerao 0: vemos que o indivduo no consegue detectar quinas, por isso


percorre um caminho que possui mrito dentro da sua gerao mas no o suficiente.
Gerao 5: ao contrrio do indivduo da Gerao 0 esse indivduo procura pela
quina diversas vezes o que torna seu caminho confuso e de execuo lenta.
Gerao 32: nesse indivduo vemos um caminho limpo, que no executa
muitos testes antes de se movimentar, mas ainda no um indivduo excelente
exatamente por poupar movimentos na deteco das quinas e esbanjar movimentos
andando em linha reta.
Gerao 50: esse o indivduo excelente por que no se movimenta alm do
necessrio para a deteco das quinas e cantos, podemos ver que sempre prximo a eles
52

o indivduo se desvia um pouco de seu caminho retornando logo em seguida, sem


desperdcio de movimentos.

Exemplos de Indivduos
Abaixo mostrado o melhor indivduo dessa simulao na forma em que ele
escrito em arquivo depois de ter sido evoludo, e os dados do segundo e terceiro
melhores. Escrito dessa forma ele pode ser reutilizado em novos testes:

Indivduo 1
33FFILBI3RI22BR223BBRR2FF2LFFRIIF32I3FF3BRL32RLBII33RIIF3ILLFRF
F3LB3FB2BFRLBLRBB

PONTOS DE COMPLEXIDADE = 159


FITNESS = 300

Indivduo 2
PONTOS DE COMPLEXIDADE = 79
FITNESS = 300

Indivduo 3
PONTOS DE COMPLEXIDADE = 425
FITNESS = 300

Podem ser notadas as diferenas na complexidade dos trs indivduos, o primeiro


possui um tamanho que prximo mdia, o terceiro muito grande (ou muito
complexo) e o segundo tem aproximadamente a metade do tamanho do primeiro.
Deve ser lembrado que todos possuem fitness mximo portanto deve ser escolhida
uma das solues apresentadas, se houver necessidade de um indivduo que apenas
suficiente para suprir as necessidades mnimas, a escolha mais bvia seria o segundo
que apresentar um tempo de execuo menor, mas se o caso for um indivduo que
venha a ter bom comportamento em outros ambientes primeiramente deveremos test-
los nesse novo ambiente e ento o melhor deve ser escolhido.

7.4.2 Agente seguidor de paredes com viso global

Esta simulao possui as mesmas caractersticas da simulao anterior exceto pelo


fato de apresentar maior complexidade de resoluo devido grande rea a ser
percorrida.
O indivduo deve percorrer a sala, sempre prximo parede e completar sua volta
em no mximo 5000 passos.

Fitness
O fitness calculado da seguinte forma:
fitness = fit ( unfit / 500 )
53

Na qual fit o nmero de posies do caminho ideal que o rob visitou e unfit
o nmero de vezes em que ele se desviou do caminho (penalizao) ideal ou visitou
uma clula mais de uma vez, por esse nmero ser relativamente grande ele dividido
por 500 para diminuir sua influncia no fitness final.
O fitness mximo 780 e representa o nmero de clulas do caminho ideal, ou
seja, se um rob conseguir percorrer o caminho ideal sem se desviar muito da sua
trajetria, certamente ter um fitness prximo ao mximo.

Funes
PROGN3 (3): executa trs ramos em seqncia;
PROGN2 (2): executa dois ramos em seqncia;
IFWALL (I): executa seu ramo esquerdo se no for detectada parede pelo rob (a
no mximo 1 passo de distncia) e caso contrrio executa seu ramo direito.

Terminais
WALKFRONT (F): faz rob dar um passo frente;
WALKBACK (B): faz rob dar um passo para trs;
RIGHT (R): faz rob virar direita;
LEFT (L): faz rob virar esquerda.

Outros Parmetros
Populao (M) = 500;
Probabilidade de Cruzamento = 70%;
Probabilidade de Reproduo = 30%;
Matriz de simulao = 200 x 200;
Posicionamento do rob em nmeros reais;
Limite de complexidade (no sorteio) = 1000;
ngulo de virada = 30;
Nmero de execues por indivduo = 2.

importante que seja dito que o programa permite que o rob se vire em qualquer
ngulo que seja definido, o ngulo de 30 foi adotado depois de executadas vrias
simulaes.

Resultados
Grficos Evolutivos
O primeiro grfico, do fitness em funo da gerao, mostra a evoluo dos
indivduos aps 51 geraes (a gerao 0 tambm contada). Pode se observar como
a mdia acompanha a reta dos maiores aps as geraes e como mais estvel no
apresentando variaes bruscas. Por exemplo: na gerao 9 o maior indivduo possui
fitness igual 400 e na gerao 11 o fitness igual 530 o que representa um
54

grande salto, isso devido ao cruzamento.


Mdia Maior

800

700

600

500
Fitness

400

300

200

100

0
0 5 10 15 20 25 30 35 40 45 50
Gerao

Figura 7.1 Grfico Evolutivo 51 geraes

No prximo grfico, em uma simulao de 42 geraes, nota-se claramente uma


queda na mdia do fitness. Isso ocorre devido a uma tentativa de renovao dos
indivduos executada no meio do processo de evoluo, essa renovao chamada de
decimao. Na decimao apenas 10% deles so aproveitados e os outros 90% so
criados novamente. Apesar dessa tentativa e do fitness inicial ser prximo 500 no
final da simulao no se conseguiu indivduos to bons como os da execuo anterior.
Isso demonstra como a PG muito dependente dos seus primeiros indivduos, mas
tambm da variedade existente.

Mdia Maior

800

700

600

500
Fitness

400

300

200

100

0
0 5 10 15 20 25 30 35 40 45 50
Gerao

Figura 7.2 Grfico Evolutivo 42 geraescom decimao na 21 gerao

Exemplos de Caminhos
Gerao 10: o indivduo dessa gerao apesar de poder acompanhar a parede e
55

detectar o obstculo sua frente, no percebe quinas, apenas caminha at encontrar algo
que impea seu movimento, isso faz com que ele tenha algumas caractersticas que
podem ser aproveitadas na prxima gerao.

Figura 7.3 Caminho Gerao 10.

Gerao 26: esse indivduo percorre muito bem o caminho, mas por virar-se
muitas vezes para encontrar quinas, acaba no percorrendo o caminho todo. Ele
demonstra o aperfeioamento que ocorreu desde a dcima gerao na deteco de
quinas.

Figura 7.4 Caminho Gerao 26

Gerao 48: esse o indivduo excelente dessa execuo, pois percorre todo o
caminho dentro do nmero de movimentaes estipulado. Consegue detectar as quinas
que foram problema na 10 gerao e no perde tempo com isso como na 26 gerao.
56

Figura 7.5 Caminho Gerao 48

Exemplos de Indivduos
Abaixo mostrado o melhor indivduo dessa simulao na forma em que ele
escrito em arquivo depois de ter sido evoludo, e os dados do segundo e terceiro
melhores. Escrito dessa forma ele pode ser reutilizado em novos testes:

Indivduo 1
3IR22222FIF3B2II2FII2B2LI2B2B32F2LRRI22BL3IBIFIFBFB323L3B3B
FB2F32RFF23IIB3FLIFRLR2L3IILLILFILLRIF23B2II32RLIFRBB2RIIBB33IR
223I3IILL2I2I33BBRBRBIRRL3IB32LRBRRBI2BRLRFR2L3222FRIILLIFFRIF
LRIF3BIBRLRFFR2FRRL3IILBILFIFLRR3IB2I32LIRR22ILRBRILBBBBLFLF
BFBLR2IBRRRRIILLIFFRFI33FLIFR2LIRBB3ILLFIR3BBR

PONTOS DE COMPLEXIDADE = 290


FITNESS = 776

Indivduo 2
PONTOS DE COMPLEXIDADE = 110
FITNESS = 766

Indivduo 3
PONTOS DE COMPLEXIDADE = 44
FITNESS = 761

Podem ser notadas as diferenas na complexidade dos trs melhores indivduos. O


primeiro o maior de todos, mas que tambm o que possui maior fitness. O segundo
mesmo tendo fitness menor no apresenta tanta inferioridade e possui menos da metade
de pontos de complexidade do primeiro, o terceiro por sua vez tambm no perde muito
em desempenho e possui complexidade inferior metade do segundo. Deve ser
lembrado tambm que todos possuem fitness muito prximos ao mximo, mesmo tendo
sido descontados desvios, portanto cabe a ns escolher uma das solues que nos foram
apresentadas, se quiser um indivduo que apenas suficiente para suprir as nossas
57

necessidades atuais a escolha mais bvia seria o terceiro que apresentar um tempo de
execuo menor, mas se o caso for um indivduo que venha a ter bom comportamento
em outros ambientes primeiramente ele dever ser testado nesse novo ambiente.

7.4.3 Agente seguidor de bola com obstculos e com viso global

O agente Seguidor de Bola foi escolhido para ser o segundo passo da evoluo dos
Agentes Jogadores de Futebol, pois apresenta maior dificuldade que o Seguidor de
Paredes e adiciona elementos como a bola e obstculos.
Alm das funes de desvio de paredes e de movimentao, que foram
reaproveitadas, adiciou-se apenas uma funo que relaciona a movimentao do rob
com a movimentao da bola, alterando o ambiente e a maneira como se mede o fitness.
Com as caractersticas da PG foi criado o programa do rob seguidor de bolas
aonde o rob deve alcanar a bola e toc-la o maior nmero de vezes possveis dentro da
sua execuo. O ambiente de simulao continua do mesmo tamanho, apesar de ter sido
adicionados obstculos, os passos so contados da mesma forma. A execuo da rvore
tambm no parada enquanto no terminar.
O indivduo deve percorrer a sala buscando pela bola em no mximo 2000
passos. Os passos so reduzidos em relao ao caso anterior especificamente porque o
rob no precisa se movimentar tanto para alcanar a bola, e para tornarem a
representao final mais clara.
A cada simulao o rob e a bola comeam em posies aleatrias.

Fitness
O fitness foi calculado de diversas maneiras. Abaixo, algumas das melhores
maneiras e os motivos pelos quais so considerados melhores so apresentadas.
A frmula que serviu de base para as outras :
fitness = hits * k (n / Dini);
Aonde hits o nmero de vezes que o rob atingiu a bola; n o nmero de
passos do rob e Dini a distncia inicial medida antes do rob se movimentar. O valor
n / Dini (chamado de penalizao) recalculado a cada vez que o rob atinge a bola,
por isso usada a somatria desses valores no fitness. k uma constante a ser definida
em cada caso, e ser mostrado como ela influi no resultado.
O nmero de hits mximo estimado em 15, com base na rea de
movimentao, no nmero de execues e na distncia mxima que a bola pode ter do
rob.

Funes
PROGN3 (3): executa trs ramos em seqncia;
PROGN2 (2): executa dois ramos em seqncia;
IFWALL (I): executa seu ramo esquerdo se no for detectada parede pelo rob (a
no mximo 1 passo de distncia) e caso contrrio executa seu ramo direito.

Observao: so as mesmas do caso anterior.


58

Terminais
WALKFRONT (F): faz rob dar um passo frente;
WALKBACK (B): faz rob dar um passo para trs;
RIGHT (R): faz rob virar direita;
LEFT (L): faz rob virar esquerda;
ALIGN (A): direciona o rob para a bola.

Outros Parmetros
Populao (M) = 500;
Probabilidade de Cruzamento = 70%;
Probabilidade de Reproduo = 30%;
Matriz de simulao = 200 x 200;
Posicionamento do rob em nmeros reais;
Limite de complexidade (no sorteio) = 1000;
ngulo de virada = 5;
Nmero de execues por indivduo = 1.

O ngulo de 5 foi adotado por se tratar um valor suficiente e que permite bastante
preciso na movimentao buscando a bola.

Resultados
Grficos Evolutivos

No primeiro grfico (50 geraes) nota-se uma grande diferena em relao ao


Seguidor de Paredes: a variao exagerada do fitness do melhor indivduo, isso se deve
ao fato do rob interagir-se com outro objeto que tambm se movimenta, que mais
rpido que ele e que reflete em outros objetos, ou seja, executa-se apenas uma simulao
de cada rob e a posio inicial aleatria influi no resultado. De qualquer forma o fitness
nesse caso mais til para informar quantas vezes o rob consegue tocar a bola dentro
da execuo estipulada.
59

Mdia Maior

18000

16000

14000

12000

10000
Fitness

8000

6000

4000

2000

0
0 5 10 15 20 25 30 35 40 45 50
Gerao

Figura 7.1 Grfico Evolutivo 50 geraes k = 1500

No segundo grfico (100 geraes com decimao) foi executada a decimao j


citada, na 50 gerao. Como no caso anterior tem-se a variao do fitness do melhor
indivduo e tambm percebido que essa variao aps algum tempo permanece dentro
da mesma faixa, com poucas excees. Essa simulao foi feita para observar a
convergncia final dos dados e a eventualidade de ter indivduos por vezes to bons, e
como estes no poderiam ter perdido suas caractersticas de uma gerao para outra. At
a centsima gerao a mdia de fitness continua aumentando e a faixa em torno de onde
varia o indivduo com fitness mximo, tambm. Algumas vezes a posio inicial,
sorteada de certa forma, pode favorecer o desempenho final e isso no foi retirado, pois
a sorte tambm influi na evoluo.
O ltimo grfico (50 geraes) mostra uma simulao onde k = 1000. Isso fez
com que a somatria das penalizaes dos indivduos tivesse maior significncia no
fitness e com isso selecionou melhor aqueles que deveriam continuar, ocasionando uma
variao um pouco menor nos melhores. Pode-se notar indivduos com fitness muito
prximo 14000 o que indica que atingiram a bola 14 vezes. No caso anterior com
k = 1500 teve-se indivduos com fitness prximo 23000 o que indica 15 hits. Ou
seja, obteve-se uma melhora em um aspecto (maior estabilidade dos dados finais) e em
termos de fitness no se perdeu, pois a execuo com k = 1500 foi feita duas vezes e
somente na segunda execuo (100 geraes) que se obteve indivduos to bons.
60

Mdia Maior

25000

20000

15000
Fitness

10000

5000

0
0 10 20 30 40 50 60 70 80 90 100
Gerao

Figura 7.2 Grfico Evolutivo 100 geraes com decimao -


k = 1500

Mdia Maior

14000

12000

10000

8000
Fitness

6000

4000

2000

0
0 5 10 15 20 25 30 35 40 45 50
Gerao

Figura 7.3 Grfico Evolutivo 50 geraes


k = 1000

Exemplos de Caminhos
As figuras a seguir foram extradas da simulao com k = 1500. Os quadrados
brancos so obstculos para o indivduo e para a bola.
Nessas figuras o caminho feito pelo rob representado pela cor vermelha. O
amarelo representa o princpio do caminho, e o verde a posies da bola.
Gerao 1: Esse indivduo toca poucas vezes na bola, mas pode perceber como
ele j a persegue, apesar de no ter tido problemas com os obstculos.
61

Figura 7.4 Caminho Gerao 1

Gerao 8: Exemplo de um caminho onde o indivduo persegue muito bem a


bola, por partir de uma distncia maior que o exemplo anterior e mesmo assim possuir
fitness maior, formando uma parbola com o seu caminho.

Figura 7.5 Caminho Gerao 8

Gerao 13: Indivduo que inicia a busca pela bola j com um obstculo entre ele
e seu destino e utiliza suas funes e treinamento para desviar-se.

Figura 7.6 Caminho Gerao 13

Gerao 41: Indivduo bastante evoludo que consegue por vrias vezes atingir a
bola j que o fitness o estimula a fazer isso. Nota-se tambm que este indivduo no
62

perde tempo ao seguir a bola e sempre tenta a melhor trajetria. Pouco antes de a
execuo terminar ele ainda buscava atingir a bola mais uma vez e fez uma pequena
curva dentro da trajetria da bola.

Figura 7.7 Caminho Gerao 41

Exemplos de Indivduos

Abaixo mostrado o melhor indivduo da simulao com k = 1500 na forma em


que ele escrito em arquivo depois de ter sido evoludo, e os dados do segundo e
terceiro melhores. Escrito dessa forma ele pode ser reutilizado em novos testes:

Indivduo 1
3IIR2FF323I2ILIB32R3FRRR22L3RAF2BRFR323I2ILIBILLIAAIR32F2IF
3FFRFFF33RB2RRF33FFRILI23I2IRIB32R3FR32AR32F2IIAL2FRFAF22IALF
2BRR22L3RF2IBF323IFIRR33RBII3FBBIRAFF33FF22F2IIAL3F3RRFRFIRAI
232FRR2B2BR33FBIRF3L2RF3FFR2RBA2BIR32FRFBAIRFII333F2LFFFRBA
I2IBIIAL3FF3FFR3FFRAFL2BRFR323I2ILIB33BIAR22FF3A2IIAL3FFRLFF2F
RIAAIR32F2IF3FFRRFF33RF2RRF33FFRILR2BIR32FR3FFRBFLII3FLBIRAF
33FFRL32FRR2FIBFAIRF32RIIFRIFF33AIL3A2FFFFLFR2BIR32FR2FRBAIR
FII3FBBIRFF33FFRL3AR2FIBFAIRFII3L33FA3AILIFRFFFRIRAFLRF

PONTOS DE COMPLEXIDADE = 477


FITNESS = 16436

Indivduo 2
PONTOS DE COMPLEXIDADE = 696
FITNESS = 16433

Indivduo 3
PONTOS DE COMPLEXIDADE = 432
FITNESS = 16431
63

muito clara a diferena na complexidade dos indivduos do Seguidor de Bola


em relao aos indivduos do Seguidor de Paredes principalmente por se tratar de uma
tarefa mais difcil de ser executada. Os indivduos do Seguidor de Bola possuem uma
complexidade muito maior.
A complexidade do indivduo no pode ser diretamente relacionada com o seu
desempenho no ambiente. Os trs indivduos acima tm fitness muito prximos e o
segundo se destaca por ter uma complexidade consideravelmente maior.

7.4.4 Agente seguidor de bola com obstculos e com viso local

Esta simulao possui as mesmas caractersticas da simulao anterior exceto pelo


fato exigir uma maior habilidade do agente a ser desenvolvido.
Como a viso limitada, o agente no tem mais a viso do ambiente inteiro e
precisa buscar a bola da maneira mais rpida e desviando dos obstculos, pois estes
tambm atrapalham sua viso.

Fitness
O fitness nessa simulao foi calculado da mesma forma que na simulao
anterior. Isto porque o objetivo da evoluo ainda o mesmo, s as dificuldades que
aumentaram.
A frmula do clculo do fitness :
fitness = hits * k (n / Dini);
Aonde hits o nmero de vezes que o rob atingiu a bola; n o nmero de
passos do rob e Dini a distncia inicial medida antes do rob se movimentar. O valor
n / Dini (chamado de penalizao) recalculado a cada vez que o rob atinge a bola,
por isso usada a somatria desses valores no fitness. k uma constante que foi
mantida com o valor de 1500 de acordo com o que conclumos na simulao anterior.

Funes
PROGN3 (3): executa trs ramos em seqncia;
PROGN2 (2): executa dois ramos em seqncia;
IFWALL (I): executa seu ramo esquerdo se no for detectada parede pelo rob (a
no mximo 1 passo de distncia) e caso contrrio executa seu ramo direito;
IFBALL (C): executa o ramo esquerdo se enxergar bola e caso contrrio executa
o ramo direito.

Observao: foi acrescentada apenas uma funo (ifball).

Terminais
WALKFRONT (F): faz rob dar um passo frente;
WALKBACK (B): faz rob dar um passo para trs;
RIGHT (R): faz rob virar direita;
LEFT (L): faz rob virar esquerda;
64

ALIGN (A): direciona o rob para a bola.

Observao: iguais s do caso anterior.

Outros parmetros
Populao (M) = 500;
Probabilidade de Cruzamento = 70%;
Probabilidade de Reproduo = 30%;
Matriz de simulao = 200 x 200;
Posicionamento do rob em nmeros reais;
Limite de complexidade (no sorteio) = 1000;
ngulo de virada = 5;
Nmero de execues por indivduo = 1;
ngulo de viso = 30 para cada lado.

Resultados
Grficos Evolutivos
Nesse primeiro grfico, como j havia sido notado na simulao anterior, existe
uma grande variao no desempenho do melhor agente, parecendo at que este
desaprendeu de repente o que havia aprendido. Isso no verdade, mais uma vez isso
se deve grande gama de possibilidades em que o ambiente pode se apresentar para o
agente, antes que ele comece a buscar pela bola.
O principal que pode ser percebida a evoluo, em outras simulaes adiante
sero mostrados os efeitos de um desenvolvimento mais longo (com mais geraes).
No segundo grfico, notada uma maior estabilidade na evoluo e um melhor
resultado final, e que tambm seja notado que se trata apenas de uma outra simulao
com o mesmo programa. Esse grfico serve para ser mostrado que no se tem um
padro muito correto de evoluo, exceto o que j foi citado.
65

Mdia Maior

10000

9000

8000

7000

6000
Fitness

5000

4000

3000

2000

1000

0
0 5 10 15 20 25 30 35 40 45 50
Gerao

Figura 7.1 Grfico Evolutivo 51 geraes (Tempo de execuo = 1:42:35)

Mdia Maior

14000

12000

10000

8000
Fitness

6000

4000

2000

0
0 5 10 15 20 25 30 35 40 45 50
Gerao

Figura 7.2 Grfico Evolutivo 51 geraes (Tempo de execuo = 1:37:18)

Outro ponto interessante desse grfico um salto de desempenho na 49 gerao


o que pode indicar que se a simulao proseguisse, provavelmente seriam obtidos, da
em diante, agentes com fitness que variassem entre 9000 e 12000.
J no terceiro grfico, que se trata de uma simulao de 101 geraes,
perceptvel sua semelhana com o segundo grfico at a 50 gerao, aps isso o
detalhe importante que a evoluo tende a se estabilizar entre uma faixa de valores,
66

mas at a 100 gerao ela ainda existe. Outro fato importante mas que tambm no
pode ser tomado como regra que a faixa de variao dos melhores agentes diminui.

Mdia Maior

16000

14000

12000

10000
Fitness

8000

6000

4000

2000

0
0 10 20 30 40 50 60 70 80 90 100
Gerao

Figura 7.3 Grfico Evolutivo 101 geraes (Tempo de execuo = 2:57:45)

Um ponto marcante que podemos perceber nessas simulaes e que as


diferenciam das outras o baixo valor da mdia dos indivduos, que nem chega a
alcanar o desempenho do melhor indivduo da primeira gerao. Isso se deve
principalmente ao alto grau de dificuldade dessa simulao. Mas como se trata de uma
evoluo espelhada na natureza, o que se espera que se esses mesmos agentes forem
deixados evoluindo durante mais tempo, os melhores devem estabilizar em um valor
prximo ao timo e a mdia no deve ficar muito longe disso.

Exemplos de Caminhos
Nos exemplos de caminhos que sero apresentados a prioridade que sejam
mostrados os que exemplifiquem o desenvolvimento e sejam de fcil entendimento com
breves descries.
Gerao 1: por se tratar de um agente com pouca evoluo, nessa figura o agente
aps atingir a bola duas vezes se perde atrs de um obstculo.
67

Figura 7.4 Caminho da Gerao 1

Gerao 7: esse agente se vira uma vez procurando a bola e no a encontra, ento
segue em uma direo, comea a se virar novamente dessa vez encontrando a bola, da
segue para atingi-la.

Figura 7.5 Caminho da Gerao 7

Gerao 12: nesse exemplo o agente se vira buscando a bola, como todos fazem
desde as primeiras geraes, e depois que a encontra no mais a perde seguindo-a at o
fim da sua execuo.

Figura 7.6 Caminho da Gerao 12


68

Gerao16: esse agente atinge a bola duas vezes e por algum motivo perde sua
localizao, o que acontece ento que ele comea a se virar procurando a bola,
demonstrando uma boa evoluo no que diz respeito a localizar, ou no caso, achar
novamente a bola.

Figura 7.7 Caminho da Gerao 16

Gerao 41: esse apenas um exemplo de um agente que j consegue quase que
perfeitamente seguir a bola, daqui em diante o principal ponto de evoluo sero: o
aumento do nmero de vezes em que o agente atinge a bola e a economia na
movimentao at que se atinja a bola.

Figura 7.8 Caminho da Gerao 41

Gerao 50: o que deve ser observado nessa figura que o agente perde a viso da
bola porque se depara com um obstculo, mas logo depois faz o conhecido movimento
de busca da bola e a reencontra.
69

Figura 7.9 Caminho da Gerao 50

Gerao 70: nesse exemplo que se quer ressaltar o tipo de movimentao do


agente, que como no agente implementado anteriormente, esse agente desenvolve uma
certa capacidade em economizar movimentos para atingir a bola. O que se observa na
figura abaixo uma movimentao que quase prev onde a bola ser atingida
novamente.

Figura 7.10 Caminho da Gerao 70

Gerao 81: esse ltimo exemplo mostra uma boa perseguio da bola e tambm
as caractersticas boas que se mantiveram dos agentes anteriores, como a economia de
movimentos e um bom nmero de vezes atingindo a bola.

Figura 7.11 Caminho da Gerao 81


70

Exemplos de Indivduos
Abaixo mostrado o melhor indivduo da simulao de 101 geraes na forma
em que ele escrito em arquivo depois de ter sido evoludo, e os dados do segundo e
terceiro melhores. Escrito dessa forma ele pode ser reutilizado em novos testes:

Indivduo 1
3F33FCA32LLACI23FRBFBIIFL3I232FIICAF22BIIRRLBR3CA23FLII2F
2BLIBIL2IILR2BAF3I232FIBR3CA23FLIICA32LL2I3B2IBCARR2LFRBCAIIF
L3I232FIICAF22BIIR3RCA3R3ICARIR2BIBCAIRFI23FCACA3FBBRRFALRL
BR3CA23FLII2F2BLIBIL2IILR2BCARFIL22LBIL223CAIFB3IRBFBLL3FB2I3
3LILRBFL2IIR2CA3R2FIICBB3LL2LBCAR32B2LLLFCAR3FRLLRF223L2FR
RCABLCAICAFFFBILCA2I3L3FFR3B33FLFBLBLBRLIRIL2IILR2BCARFIL2
2L222IFB23FCALB2LRR2F3RIF2RLI323BRRFL23CACACAF2BI3F2RBB3B
RFLLI3LCA3FIR3233FFF3B2ILRFBCA2B322LRFLLRLACAR3BBCA3R333I
LRLFBBIRR3IILB23BFFBBLLRIR23CAFBB3FB2ICA2FFCALRF223L2FRRB
LCAICAFFFBILCA2I3L3FFR3BRBLLRLF22L3IB3CAFLLBFLLFBILCA2I3L3
FF2I32B3RCF3FB232I33CF2BR3B2RIBRRFIFFBLI3IB2LFILBFLB3RIRR33RI
BCA3CA32FBR2LCALBR2I2BLILBCA3RBB3CA2I2LR3CARRLLRLRI23IR2
3LBCAI2L3LL2I22CAR3FI3ICALII32B3R3CAF2BI2LCA3FRII3I2F3RLRICA2
BCAIICA2IRBCAF3B2CABBCA3RABLLFRLRLBRRBFLBRFRFFBLBRBFB
RRBFCALBLLRLFLBCAB

PONTOS DE COMPLEXIDADE = 832


FITNESS = 8966

Indivduo 2
PONTOS DE COMPLEXIDADE = 1023
FITNESS = 8902

Indivduo 3
PONTOS DE COMPLEXIDADE = 2583
FITNESS = 7476

Podemos perceber que a complexidade dos agentes sofreu um considervel


aumento, no tanto no melhor agente da simulao, mas no segundo e terceiro agentes.
A tarefa mais complexa exigiu uma maior elaborao dos indivduos, principalmente se
compararmos com o melhor indivduo da primeira simulao, que era o seguidor de
paredes em um ambiente simples. Para a resoluo daquele problema, o mnimo
necessrio foi um agente com 79 pontos de complexidade.

7.5 Concluso

A partir dos resultados obtidos conclui-se que, usando Programao Gentica,


71

pode-se criar indivduos que apresentam os comportamentos bsicos para atuar no


domnio do Futebol de Robs, como seguir paredes e bolas.
A Programao gentica permite a criao de indivduos que produzam os
resultados desejados desde que as habilidades necessrias para realizao das tarefas e a
relao dos indivduos com o ambiente sejam conhecidas. Assim, um aspecto muito
importante na Programao Gentica a simulao do ambiente, que deve incluir as
dificuldades e dados relevantes do ambiente, pois os indivduos criados s estaro bem
preparados para reagir a situaes conhecidas.
Para a obteno de indivduos capazes de realizarem outras tarefas deve-se
realizar novos treinamentos com base nos mesmos indivduos (se puderem ser
aproveitadas caractersticas adquiridas com o treinamento anterior) ou em novos (como
foi feito para o seguidor da bola). Ainda, para que um mesmo indivduo seja capaz de
executar duas tarefas, necessrio trein-lo nos dois ambientes onde atuar, pois suas
caractersticas somente permanecem ou se perpetuam quando as mesmas so necessrias
para o seu encaixe no ambiente. Mudando o ambiente de um indivduo pode tornar
muita das caractersticas, antes essenciais para a sua sobrevivncia, desnecessrias.
importante destacar que nenhum tipo de reedio foi utilizado para eliminar os
ramos desnecessrios ou reduzir a complexidade dos indivduos, sendo os indivduos
apresentados e seus comportamentos resultados dos conceitos de Programao Gentica
implementados.
A funo de fitness essencial para o controle dos indivduos que permanecero
nas prximas geraes. Ela controla a velocidade da evoluo, o resultado final e
complexidade dos indivduos A escolha de uma funo de fitness que no selecione
corretamente os indivduos que permanecero acarreta no maior tempo necessrio para
evoluir uma populao e at na criao de populaes que no atuam como desejado.
Entre os possveis trabalhos futuros em estudo encontram-se:
A evoluo de comportamentos mais complexos como: goleiro, defesa,
ataque, etc.
A insero de comunicao entre os agentes para a formao de times.
E finalmente, a implementao destes agentes no Simulador Oficial da
RoboCup.
72

8. PROTTIPO DE ROB AUTNOMO


Este captulo apresenta a construo de um prottipo de micro-robo autnomo
para a categoria F-180 da RoboCup. Para isso, inicialmente se estudou o controle de um
motor de passo. Depois se apresenta a implementao deste controle em VHDL.

8.1 Motores de passo

Motor de passo um atuador eletromecnico incremental. A energizao


seqencial de cada enrolamento individual, a partir de uma fonte CC, realizadas por
chaves semicondutoras (transistores bipolares ou Mosfets) comandadas por pulsos
digitais, provoca um deslocamento discreto e sncrono com os mesmos, denominados
"passos", como conseqncia do alinhamento magntico dos plos nas estruturas do
rotor e estator do motor. A cada pulso de alimentao aplicado em uma bobina do
estator, o rotor estaciona em uma posio estvel e nica, guardando entre um passo e
outro a mesma preciso, sem erros acumulativos.
Na Figura 8.1 pode-se observar que o estator possui seis plos onde cada par de
plos opostos possui um enrolamento comum e o rotor apenas quatro plos, este motor
conhecido como motor de relutncia varivel. Cada par de plos com enrolamento
comum chamado de fase, conseqentemente esta figura1 trata de um motor de trs
fases. Cada fase energizada por uma fonte de tenso continua atravs das chaves I, II e
III.

Figura 8.1 Motor de passo de relutncia varivel.

No primeiro estado o par de plos chaveado por I est excitado, onde o fluxo
magntico est representado por linhas entre os plos do estator e os plos do rotor.
Neste estado os plos do estator e do rotor esto alinhados e em equilbrio, onde h a
73

menor relutncia para o fluxo magntico. Quando a chave II acionada, dois novos
plos sero excitados, estado (2), e o rotor ir se movimentar a fim de entrar em
equilbrio, determinando novamente a menor relutncia para o fluxo magntico nesta
nova situao, estado (3). Por fim a chave I desacionada, estado (4), completando um
passo (aproximadamente 15o).
O torque do motor de passo depende da freqncia de energizao seqencial de
cada enrolamento individual, onde quanto maior a freqncia menor o tempo que o
motor tem para mudar o ngulo acarretando a perda de torque.
Existem trs tipos bsicos de motores de passo, so eles: Motor de Passo de
Relutncia Varivel, Motor de Passo de Im Permanente e Motor de Passo Hbrido. A
figura abaixo mostra estes trs tipos de motores.

Motor de Relutncia Varivel Motor de m Permanente Motor Hbrido

Figura 8.2 Trs tipos de motores de passo.

Motor de Passo de Relutncia Varivel


Este tipo de motor apresenta no rotor e estator uma estrutura multipolar em ao-
doe com conjuntos de bobinas convenientemente interligadas (fases) e enroladas nas
peas polares do estator.
Os ncleos do estator e do rotor possuem nmeros diferentes de plos (dentes),
de forma que a relutncia do circuito funo da posio do rotor em relao ao estator.
medida que uma das fases excitada, o ncleo do rotor gira em relao ao estator at
atingir a posio de mnima relutncia (como no exemplo anterior).

Motor de Passo de m Permanente:


Este tipo de motor apresenta um rotor permanentemente magnetizado com
estrutura cilndrica e um estator com plos (eventualmente com dentes) sobre as quais
se encontram enroladas as bobinas.
Uma caracterstica importante deste motor torque de reteno, ou seja, torque
sem excitao das bobinas.
Motor de Passo Hbrido
Este tipo de motor uma combinao dos motores de relutncia varivel e do
motor de im permanente.
No estator deste motor existem plos, onde sobre cada plo existem duas ou mais
bobinas pertencentes a fases distintas, utilizadas para reforar ou enfraquecer o fluxo
74

produzido pelo m rotrico.


A estrutura rotrica cilndrica com ms permanentemente magnetizados
longitudinalmente. Cada plo do m envolto por um anel de ao coberto de dentes.
Tais anis encontram-se desalinhado entre si de um passo de meio dente.

8.2 Tcnica de Acionamento

A alimentao de um motor de passo pode ser unipolar ou bipolar. A


alimentao unipolar geralmente utilizada em motores pequenos e permite passagem
de corrente unidirecional pelos enrolamentos. A alimentao bipolar, ou em ponte H,
permite que a corrente circule em ambos os sentidos, possibilitando um conjugado
maior e operao regenerativa.

Figura 8.1 - Acionamento unipolar e bipolar

Figura 8.2 Motor de passo e circuito montado em proto-board.


75

Existem trs modos bsicos para gerao de pulsos (Figura 8.3), que foram
testados em uma montagem em proto-board (Figura 8.2):
Modo 1: Uma fase alimentada por vez, de modo que a posio de
equilbrio das fases coincida com a posio de equilbrio dos ms,
fornecendo passo pleno.
Modo 2: Duas fases so alimentadas simultaneamente e a posio de
equilbrio dos ms diferente do Modo 1, fornecendo passo pleno, mas
com conjugado 2 vezes maior.
Modo 3: obtido combinando-se os Modos 1 e 2, ou seja, alternando-se a
alimentao de uma nica fase com a alimentao simultnea de duas
fases. Neste caso o avano de passo corresponde metade do passo
produzida pelos Modos 1 e 2

Modo 1

Modo 2

Modo 3

Figura 8.3 Modos de acionamento de um motor de passo.

8.3 Implementao em VHDL

A implementao do circuito consiste em um sistema lgico que controle os dois


motores de passo e um drive de potncia que fornea corrente e tenso necessria para
os motores, ambos pertencentes ao rob e fixos em uma base de metal (Figura 8.1),
observando os seguintes pr-requisitos:
Os motores no devem comear trabalhar em uma freqncia muito alta
(alta velocidade), pois se no houver esse controle pode haver um
escorregamento no motor (no dar um "passo", por exemplo);
76

Os motores devem girar tanto em sentido horrio e em sentido anti-


horrio, pois assim o rob poder fazer curvas em qualquer direo e
girar em torno do prprio eixo;
Os motores no devem parar de uma s vez, para tambm no haver
escorregamento.

Figura 8.1 - Os motores do rob fixos em uma base de metal.

O sistema lgico que controla os motores pode ser observado na Figura 8.2.

Figura 8.2 Circuito de controle implementado.

O bloco de controle define e a velocidade e a rotao dos motores e no bloco


seguinte ocorrem as divises de pulsos e do sentido de rotao para cada enrolamento
do motor (plos). Os seguintes dados de entrada, que permitem ao rob realizar
manobras no plano, so utilizados pelo circuito:
77

Clock de 300 Hz, necessrio para temporizar a seqncia de pulsos


gerados pelo circuito para os motores.
Sentido dos motores, para determinar se o motor rotacionar em sentido
horrio ou sentido anti-horrio.
Velocidade dos motores, o rob e capaz de desenvolver 5 velocidades
diferentes em ambos os sentido e esse dado necessrio para controlar
essa velocidade
Rotao do rob, com essa informao o rob e capaz de rotacionar em
torno de seu eixo um determinado ngulo.
Um drive de potncia necessrio para fornecer a corrente e tenso necessria
para os enrolamentos dos motores. Este foi construdo com transistores Mosfets IRF530
e resistncias. A Figura 8.3 apresenta como o circuito foi montado:

Figura 8.3 Circuito de potncia dos motores.

8.4 Resultados da simulao

Atravs de simulao utilizando o Software ALTERA Max+Plus 2 foi possvel


observar o funcionamento do circuito projetado. Nela pode-se observar que o circuito
depende da entrada "Dados" aceitar os dados enviados, necessrio para casos onde o
rob receba duas vezes a mesma informao, por exemplo, virar duas vezes para o
mesmo lado com o mesmo nmero de passos. Observa-se tambm que h acelerao e
desacelerao dependendo dos dados enviados ao controle, pois como j visto
anteriormente os motores no podem comear a trabalhar em freqncias altas.
78

Figura 8.1 Simulao do controle dos motores.

A figura abaixo apresenta o prottipo resultante deste estudo, com o sistema de


controle dos motores e a cmera para aquisio de imagens.

Figura 8.2 - Prottipo do Rob Autnomo para a RoboCup F180.


79

8.5 Concluso

A partir dos resultados da simulao e de experincias realizadas com a base


mvel pode-se concluir que:
O circuito descrito capaz de controlar um motor de passo observando
aceleraes e desaceleraes para que no ocorra perda de passos no motor.
A implementao em VHDL permite a fcil modificao do sistema e fcil
integrao com os outros componentes do sistema robtico (viso e estratgia de
controle).
Entre as possibilidades de trabalho futuro deve-se estudar a adoo de motores
mais econmicos ou motores DC visto que o motor de passo tem um consumo elevado
de energia.
80

9. TRABALHOS CORRELATOS
So discutidos neste captulo os trabalhos que serviram de base e inspirao para o
aqui proposto, dos quais muitas idias e crticas tiveram origem. Entre os trabalhos que
influenciaram esta proposta, dois tiveram maior peso: o de BROOKS (1986, 1991) e o
de BOISSIER e DEMAZEAU (1992, 1994).
Este captulo iniciado com o trabalho mais controverso e conhecido, o de
Rodney Brooks, que tem influenciado muitas reas de IA, como a de Planejamento
Inteligente, onde o paradigma reativo surgiu decorrente destas idias. Ainda, como j
afirmado ao ser apresentada a rea de Viso Computacional, o paradigma propositado
para VC surge como uma conseqncia do seu trabalho [ALOIMONOS, 1994]. Assim,
so apresentadas resumidamente as idias mais importantes do trabalho de Brooks.
BROOKS (1986, 1991) tem sido um entusiasta de uma abordagem baseada em
comportamentos em AI. Ele props a chamada Subsumption Architecture [BROOKS,
1986], onde um sistema construdo pela composio de camadas dedicadas a tarefas
especficas, com um comportamento especfico, e onde cada camada interage
diretamente com o mundo atravs de percepo e ao. Nesta arquitetura, camadas de
um nvel podem assumir o papel de uma camada em um nvel mais baixo suprimindo as
sadas desta, e ainda, camadas em nveis inferiores continuam a funcionar enquanto
adiciona-se camadas de nveis mais alto [BROOKS, 1986, p.152]. Ainda, cada camada
implementada em uma Mquina de Estado Finita (FSM), sendo decomposta em
unidades de processamento de informao paralelas e independentes, interligadas por
hardware, e que trocam mensagens entre si.
Deve-se enfatizar que a principal caracterstica da Subsumption Architecture
permitir que todas as camadas percebam e atuem diretamente no mundo, um mtodo
diferente do que se fazia at ento, onde s uma camada na base do sistema percebia e
atuava, e a decomposio era feita em nveis de processamento, como percepo,
navegao e planejamento.
O trabalho de BROOKS (1991) possui muitos outros aspectos importantes,
desejados para os sistemas criados com a arquitetura aqui proposta. Entre elas,
BROOKS acredita que necessrio que os sistemas:
1. Dominem apropriadamente e de maneira rpida as mudanas em seu ambiente
dinmico, sejam robustos em relao ao seu ambiente e tenham um propsito
em sua existncia.
2. Sejam construdos para o mundo real e nele testados.
3. Sejam construdos incrementalmente: os mdulos devem ser adicionados ao
sistema um de cada vez, e o sistema deve ser testado exaustivamente antes da
adio de um novo mdulo. [BROOKS, 1991, p.140 e p.145]
A proposta de Brooks foi importante como uma reao s arquiteturas robticas
que estavam sendo desenvolvidas at ento, que tinham a tendncia de se tornar cada
vez mais complexas. ELFES (1986) um exemplo dos sistemas que estavam sendo
construdos, onde muito tempo era gasto com o seu prprio gerenciamento. Como
reao a esta tendncia, um sistema simples e funcional como o de Brooks foi bem
recebido.
O segundo conjunto de trabalhos que influencia esta proposta o apresentado por
BOISSIER e DEMAZEAU (1992) e (1994).
81

Inicialmente, BOISSIER e DEMAZEAU (1992) propem uma anlise de alguns


sistemas de viso computacional baseada em DAI-MAS. Nesta, cada sistema dividido
em agentes focais (focus-agents), agentes de nvel (level-agents) e agentes bsicos
(basic-agents). Os agentes focais surgem com uma diviso vertical do sistema em suas
tarefas, e os agentes de nvel surgem com a diviso horizontal do sistema, em seus
nveis de representao. Os agentes bsicos so o resultado da interseo dos agentes de
foco e de nvel, sendo os blocos bsicos do sistema. Pode-se relacionar estes agentes aos
paradigmas de Viso Computacional notando que os agentes de nvel seguem uma
abordagem reconstrutiva e os agentes focais so propositados.
Depois deste trabalho de anlise, eles apresentaram em 1994 a ASIC (Architecture
for Social and Individual Control): uma arquitetura de controle baseada na abordagem
Multi-Agentes, que foi usada para construir o sistema MAVI, que integra diferentes
mdulos visuais em cooperao [BOISSIER; DEMAZEAU, 1994, p.107].
A descrio do funcionamento do sistema MAVI mostra como ele tem uma
abordagem reconstrutiva: o primeiro agente alimenta o sistema com uma seqncia de
imagens a serem interpretadas e controla a cmera; o segundo reconstri as
caractersticas bidimensionais (bordas de constrastes e agrupamento perceptual) a partir
das imagens e um terceiro agente constri uma descrio simblica da cena a partir das
caractersticas bidimensionais [BOISSIER; DEMAZEAU, 1994, p.113]. Como
exemplo das primeiras aplicaes do sistema MAVI em BOISSIER e DEMAZEAU
(1994b) mostrado como o sistema pode ser utilizado para a realizao de deteco de
contornos em imagens.
Um outro trabalho importante o de ELFES (1986), que concorda com BROOKS
no sentido em que acredita ser essencial investigar como os subsistemas so integrados
em uma arquitetura global [ELFES, 1986, p. 135].
ELFES (1986) prope uma arquitetura de controle onde processos independentes
comunicam atravs de mensagens em um blackboard e guardam informaes relevantes
no mesmo [ELFES, 1986, p.144]. O sistema dividido em nveis de processamento
(controle robtico, interpretao sensorial, integrao sensorial, ...) e utiliza
representaes para a modelagem do mundo real. Pode-se notar ainda uma caracterstica
da abordagem tradicional em seu sistema de teste, chamado Dolphin, que tem como
propsito estudar a extrao de caractersticas do mundo com sonares e no apresenta
um comportamento ou realiza uma tarefa especfica.
Nos ltimos dois anos surgiram vrios trabalhos que utilizam a abordagem
baseada em agentes tanto para controle de sistemas robticos como para sistemas de
viso computacional. Entre os trabalhos que utilizam agentes para o controle de
sistemas robticos que influenciaram este projeto esto os abaixo.
NEVES e OLIVEIRA (1997) propem uma arquitetura multi-agentes para o
controle de um rob mvel autnomo. Neste trabalho, o controle de um agente possui
trs nveis distintos, o cognitivo, o reativo e o reflexivo, onde em cada nvel existe uma
comunidade de agentes. Assim, os agentes do nvel cognitivo orientam os agentes do
nvel reativo, para que o sistema apresente uma reao orientada, enquanto os agentes
no nvel reflexivo so responsveis pelos comportamentos mais elementares. Uma
caracterstica muito forte neste trabalho o estudo da utilizao de aprendizado para a
insero de novos comportamentos no sistema.
GARCIA-ALEGRE e RECIO (1997) apresentam as diretrizes utilizadas na
82

implementao de Agentes de Comportamento Bsicos para o domnio de navegao


visualmente guiada. Neste sistema existe uma separao entre o sistema de viso e o
sistema de locomoo, e os vrios agentes necessrios para cada sistema so
implementados separadamente. Por exemplo, no sistema de locomoo existem agentes
bsicos como Pare, Ande e Volte, enquanto no sistema de viso existem agentes
bsicos chamados de Saccadic, Contorno e Centralize. Estes dois sistemas
interagem atravs de um agente que coordena a utilizao dos agentes bsicos para que
o sistema apresente um comportamento.
Tanto MATRIC (1998) quanto VELOSO et al. (1998) utilizam DAI-MAS para
modelar a coordenao em sistemas compostos por mltiplos robs. O primeiro trabalho
se preocupa com o aprendizado de comportamentos nesta classe de sistemas, enquanto o
segundo estuda a percepo distribuda e a colaborao de agentes autnomos mltiplos
em um ambiente incerto e dinmico.
Finalmente, FIRBY et al (1995) testaram a abordagem de viso propositada em
um rob mvel que realiza tarefas no ambiente de um escritrio real, e em particular a
tarefa de coleta de lixo, e analisam a adaptao deste tipo de sistema a novas situaes.
A arquitetura proposta integra um planejador reativo e um sistema de controle baseado
em capacidades inteligentes que utiliza rotinas visuais para perceber o ambiente. Este
trabalho trata um rob como um agente, e conclui que a abordagem vivel para tal
tarefa e que este tipo de sistema leva vantagem ao integrar ao e percepo.
Outros trabalhos que foram importantes para a realizao do trabalho proposto e
que devem ser citados so :
Os trabalho de SHNEEBELI (1992) e sua continuao em XAVIER (1996)
apresentam uma abstrao para controladores baseados em agentes onde estes so
distribudos em 3 categorias: Agentes Sensores, Agentes de Comportamento e Agentes
Atuadores. Assim, um sistema pode ser construdo utilizando classes de agentes
sensores e atuadores. Na seqncia deste trabalho, FREIRE et al (1997) utiliza esta
arquitetura para construir um sistema sensorial ultra-snico para um rob mvel.
Como exemplo de utilizao da Subsumption Architecture objetivando o controle
de um sistema de Viso Computacional, PINHANEZ (1994) prope o seu uso em um
sistema com um foco de ateno mvel objetivando a deteco de reas de alta
concentrao de bordas em uma cena. O artigo descreve atentamente o uso de mtodos
baseados em comportamentos para o projeto e a implementao da estrutura de controle
de um sensor parecido com a fvea, que apresenta resultados interessantes.
RIVLIN et al. (1991) estudam o problema do reconhecimento de objetos quando
este considerado no contexto de um agente operando em um ambiente. Eles tratam
principalmente da traduo das intenes do sistema em um conjunto de
comportamentos, propondo uma metodologia para a construo de sistemas com
intenes, comportamentos e tarefas em um ambiente determinado.
FERGUSON (1992) prope uma arquitetura para o controle de agentes mveis
autnomos, na qual um sistema dividido com base nos seus nveis de representao
em trs camadas, uma reativa, uma de planejamento e uma de modelagem.
E finalmente, NOREILS e CHATILA (1995) tambm introduzem uma arquitetura
de controle para robs mveis, e ainda fazem um bom levantamento dos trabalhos
relacionados a arquiteturas de controle de robs.
83

10. CONCLUSO E TRABALHOS FUTUROS


Devido dificuldade inerente construo de sistemas de IA e aos resultados
limitados obtidos em domnios artificiais bem-comportados, realizar experincias em
domnios reais uma boa maneira de buscar compreenso sobre os sistemas
construdos. Experincias podem prover: (i) confirmao preliminar de partes de uma
teoria de raciocnio; (ii) sugestes de possveis modificaes para a teoria, para o
ambiente onde ela est sendo testada e para o sistema robtico inserido no ambiente.
Alm disso, podem sugerir um grande nmero de experincias adicionais, possibilitando
a expanso e o fortalecimento da teoria original (HANKS et al, 1993).
Os resultados das experincias realizadas, que foram apresentados em cada
captulo, podem ser resumidos aqui.
Quanto aos algoritmos de Viso Computacional estudados, diversos testes
realizados em vrias seqncias de imagens permitiram concluir que o algoritmo de
Blob Coloring no encontra a bola (objeto principal do futebol de robs) em uma
imagem. J o algoritmo vetorizador no consegue segmentar a bola perfeitamente, mas
consegue a localizar na imagem e descobrir a distncia desta at o rob e mais
eficiente que o Blob Coloring.
Quanto implementao do sistema em hardware com os mesmos algoritmos
implementados em linguagem C, uma comparao da eficincia mostrou que o primeiro
sistema alcanou um desempenho superior com a mesma qualidade. Associado com o
baixo custo de componentes de FPGA (menor que uma placa Vdeo for Windows), o
sistema resultante um dispositivo de pequeno tamanho que serve bem para robs
autnomos. A avaliao das imagens resultante permitiu concluir que a qualidade dos
resultados obtidos tambm foi satisfatria.
Quanto ao controle de um rob utilizando a Programao Gentica, pode-se criar
indivduos que apresentam os comportamentos bsicos para atuar no domnio do
Futebol de Robs, como seguir paredes e bolas. A Programao gentica permite a
criao de indivduos que produzam os resultados desejados desde que as habilidades
necessrias para realizao das tarefas e a relao dos indivduos com o ambiente sejam
conhecidas.
Durante o projeto e desenvolvimento do sistema implementado foram aprendidas
algumas lies importantes sobre o desenvolvimento de um sistema robtico. Esses
conhecimentos, alguns dos quais so assunto de discusso por outros autores [BOND;
GASSER, 1988; GARCIA-ALEGRE, 1997], podem ser usados no suporte ao
desenvolvimento de novos sistemas e consistem em:
As dependncias entre subproblemas afetam o projeto dos agentes, nos fluxos
de dados, nos processos decisrios e nas aes.
Os conflitos que surgem a partir de aes incompatveis e da diviso dos
recursos do sistema podem colocar restries nas maneiras de se decompor um
sistema e forando o projetista a considerar a decomposio em diferentes
dimenses (temporal, espacial ou nveis de abstrao).
Durante o desenvolvimento deste projeto muitas sugestes de aperfeioamentos
foram discutidas. As sugestes de trabalhos futuros mais importantes so:
Os algoritmos de Viso Computacional implementados so simples. Como
possveis trabalhos futuros deve-se estudar algoritmos mais robustos e
84

eficientes para localizar a bola na imagem, como os dedicados ao rastreamento


de objetos, os que envolvem Redes Neurais Artificiais (para diminuir a
influncia da variao de cores) e algoritmos baseados em Lgica Nebulosa.
Implementar esses mesmos algoritmos citados acima em Linguagem C e
VHDL.
Quanto Programao Gentica, pode-se evoluir comportamentos mais
complexos como: goleiro, defesa, ataque, etc. e se inserir a comunicao entre
os agentes para a formao de times.
A implementao de agentes para o Simulador Oficial da RoboCup.
Aumentar o nvel de inteligncia e raciocnio de forma que os agentes possam
cumprir tarefas mais deliberativas e menos reativas.
A construo de novos prottipos, com outros tipos de motores, como motores
de corrente contnua.
Deve ser implementada uma maneira de realizar a confirmao sensorial que
verifica se uma ao foi realizada. Isso fecharia o lao de controle,
configurando o sistema como um servo mecanismo baseado em viso.

Finalmente, o objetivo principal deste projeto o estudo de sistemas de viso


computacional para o controle de robs autnomos que apresentam comportamento
inteligente, cooperando entre si, em um domnio de jogo de futebol de micro robs
foi completamente atingido, fato que pode ser constatado pelo nmero e pela qualidade
das publicaes realizadas.
85

11. REFERNCIAS BIBLIOGRFICAS


AGGARWAL, J. K.; MARTIN, W. N. The role of representation and reconstruction in
vision: is it a matter of definition? CVGIP: Image Understanding, v.60, n.1,
p.100-2, July 1994.

ALOIMONOS, Y., ed. Special issue on purposive, qualitative and active vision.
CVGIP: Image Understanding, v.56, n.1, 1992.

ALOIMONOS, Y. What I have learned. CVGIP: Image Understanding, v.60, n.1,


p.74-85, July 1994.

ALOIMONOS, Y.; ROSENFELD, A. A response to Ignorance, myopia and naivet in


computer vision systems by R. C. Jain and T. O. Binford. CVGIP: Image
Understanding, v.53, n.1, p.120-24, 1991.

ANDRAKA CONSULTING GROUP. What is an FPGA? http://users.ids.net/


~randraka/whatisan.htm

ARCELLI, F.; DE SANTO, M.; DI SALVO, S. Software Agents for Computer Vision:
a Preliminary Discussion. In: HAWAII INTERNATIONAL CONFERENCE ON
SYSTEM SCIENCES, 31, Hawaii, 1998. Proceedings. Los Alamitos, IEEE, 1998.
v. 5, p. 9-17.

BAJCSY, R. Active perception. Proceedings of the IEEE, v.78, n.8, p.996-1005,


1988.

BAJCSY, R.; CAMPOS, M. Active and exploratory perception. CVGIP: Image


Understanding, v.56, n.1, p.31-40, July 1992.

BALLARD, D. H. Hierarchic Recognition of Tumor in Chest Radiographs. Basel,


Birkhauser-Verlag, 1976.

BALLARD, D. Animate vision. Artificial Intelligence, v.48, p.57-86, 1991.

BALLARD, D. H.; BROWN, C. M. Computer Vision. Englewood Cliffs, Prentice-


Hall, 1982.

BALLARD, D.; BROWN, C. M. Principles of animate vision. CVGIP: Image


Understanding, v.56, n.1, p.3-21, July 1992.

BIANCHI, R. A. C. Uma Arquitetura de Controle Distribuda para um Sistema de


Viso Computacional Propositada. So Paulo, 1998. Dissertao (Mestrado) -
86

Escola Politcnica, Universidade de So Paulo.

BLACK, M. J.; ALOIMONOS, J.; HORSWILL, I.; SANDINI, G.; BROWN, C.M.;
MALIK, J.; TARR, M.J. Action, representation, and purpose: re-evaluating the
foundations of computational vision. In: INTERNATIONAL JOINT
CONFERENCE ON AI, 1993. Proceedings. 1993. p.1661-6.

BOISSIER, O.; DEMAZEAU, Y. A distributed artificial intelligence view on general


purpose vision systems. In: DEMAZEAU, Y; WERNER, E. (eds.) Decentralized
AI-3. Amsterdam, Elsevier, 1992. p.311-330.

BOISSIER, O; DEMAZEAU, Y. ASIC: An architecture for social and individual


control and its application to Computer Vision. In: EUROPEAN WORKSHOP ON
MODELLING AUTONOMOUS AGENTS IN A MULTI-AGENT WORLD, 1994.
Proceedings. 1994. p.107-18.

BOISSIER, O; DEMAZEAU, Y. Finding Contours Using a Multi-Agent System. In:


INTERNATIONAL JOINT CONFERENCE ON ARTIFICIAL INTELLIGENCE,
1994. Proceedings. 1994.

BOND, A. H; GASSER, L. Readings in Distributed Artificial Intelligence. Morgan


Kaufmann, San Mateo, CA, 1988.

BOUCHER, A.; GARBAY, C. A multi-agent system to segment living cells. In:


INTERNATIONAL CONFERENCE ON PATTERN RECOGNITION, 13th., 1996.
Proceedings. Los Alamitos, IEEE, 1996. v.3, p.558-62.

BROOKS, R. A. A robust layered control system for a mobile robot. IEEE Journal of
Robotics and Automation, VRA-2, n.1, p.14-23, March 1986.

BROOKS, R. A. Intelligence without representation. Artificial Intelligence, v.47,


p.139-59, 1991.

BROOKS, R. A. Intelligence without Reason. MIT AI MEMO No.1293, 1991b.

BROOKS, R. A.; STEIN, L. A. Building Brains for Bodies. MIT AI MEMO No.
1439, 1993.

BROWN, C. M. Toward General Vision. CVGIP: Image Understanding, v.60, n.1,


p.89-91, July 1994.

BROWN, S.; ROSE, J. Architecture of FPGAs and CPLDs: A Tutorial. IEEE Design
87

and Test of Computers, v. 13, no. 2, pp. 42-57, 1996.

CHAIB-DRAA, B. Industrial Applications of Distributed AI. In: HUHNS, M. N.;


SINGH, M. P. (eds.) Readings In Agents. So Francisco, Morgan Kaufmann, 1997.

CHENG, T. K.; KITCHEN, L.; LIU, Z.; COOPER, J. An Agent-Based Approach for
Robot Vison System. Technical Report no. 95/341995, Computer Science
Department, University of Melbourne, Austrlia, 1995.

CHRISTENSEN, H. I.; MADSEN, C. B. Purposive Reconstruction: A Reply to A


Computational and Evolutionary Perspective on the Role of Representation in
Vision by M. J. Tarr and M. J. Black. CVGIP: Image Understanding, v.60, n.1,
p.103-8, July 1994.

COOPER, M. Visual Occlusion and the Interpretation of Ambiguous Pictures.


Chicester, Ellis Horwood, 1992.

DEMAZEAU, Y; MLLER, J. Decentralized Artificial Intelligence. In: DEMAZEAU,


Y; MLLER, J. (eds.) Decentralized AI 1. Amsterdam, Elsevier, 1990. p.3-13.

DROGOUL, A. When Ants Play Chess (or Can Strategies Emerge from Tactical
Behaviors?). In:CALSTELFRANCHI, C; MLLER, J. P. (eds.) From reaction to
cognition - Lecture Notes in AI 957. Berlin-Heidelberg, Springer-Verlag, 1995. p.
13-27.

EDELMAN, S. Representation without reconstruction. CVGIP: Image


Understanding, v.60, n.1, p.92-4, July 1994.

ELFES, A. A distributed control architecture for an autonomous mobile robot.


Artificial Intelligence, Computational Mechanics Publications, v.1, n.2, 1986,
p.135-44.

FERGUSON, I. A. Toward an architecture for adaptative, rational, mobile agents.


Decentralized AI 3. Amsterdam, Elsevier, p.249-61, 1992.

FIRA - Federation of International Robot-Soccer Association. The rules of Mirosot.


FIRA, 1998. (http://www.fira.net/fira/98fira/rules.html)

FIRBY, R. J. Opening the door to robotic agents. IEEE Expert, v.12, n.2, p.7-9, Mar.
1997.

FIRBY, R. J.; KAHN, R. E.; PROKOPOWICZ, P. N.; SWAIN, M. J. Collecting trash:


88

a test of Purposive Vision. Submitted to the Workshop on Vision for Robots,


Pittsburg, PA, 1995.

FISHER, R. B. Is Computer Vision still AI? AI Magazine, p.21-7, Summer, 1994.

FISCHLER, M. A. The modeling and representation of visual information. CVGIP:


Image Understanding, v.60, n.1, p.98-9, July 1994.

FRANKLIN, S. Artificial Minds. Cambridge, MA, MIT Press, 1995.

FRANKLIN, S.; GRAESSER, A. Is it an Agent, or just a Program?: A Taxonomy for


Autonomous Agents. In: INTERNATIONAL WORKSHOP ON AGENT
THEORIES, ARCHITECTURES, AND LANGUAGES, 3., Heidelberg, Alemanha,
1996. Proceedings. Berlin, Springer Verlag, 1996.

FREIRE, E. O.; BASTOS, T. F.; DINNIKIV, V.; SHNEEBELI, H. J. Sistema Sensorial


Ultra-Snico para Rob Mvel com Controle Baseado em Agentes. In: SIMPSIO
BRASILEIRO DE AUTOMAO INTELIGENTE, 3o. Vitria, 1997. Anais.
Vitria, UFES-SBA, 1997. p.471-6.

GARCIA-ALEGRE, M. C.; ROCIO, F. Basic Agents for Visual/Motor Coordination of


a Mobile Robot. In: INTERNATIONAL CONFERENCE ON AUTONOMOUS
AGENTS, 1, Marina Del Rey, 1997. Proceedings. Marina Del Rey, ACM, 1997.

GASSER, L. Foreword. In: HUHNS, M. N.; SINGH, M. P. (eds.) Readings In Agents.


So Francisco, Morgan Kaufmann, 1997a. p.v-vi.

GEIST, G. A.; KOHL, J. A.; PAPADOPOULOS, P. M. PVM and MPI: a Comparison


of Features. Calculeteurs Paralleles, v. 8, n. 2, 1996.

HANKS, S.; POLLACK, M. E. ; COHEN, P. R. Benchmarks, Test Beds, Controlled


Experimentation, and the Design of Agent Architectures. AI Magazine, v. 17, n. 42,
1993.

HAYES-ROTH, B. An Architecture for Adaptive Intelligent Systems. Artificial


Intelligence (Special Issue on Agents and Interactivity), 72, p.329-65, 1995.

HENDLER, J.; MUSLINER, D. Research in the Autonomous Mobile Robotics


Laboratory, University of Maryland, College Park, Maryland, 1994.

HEWITT, C. Viewing Control Structures as Patterns of Passing Messages. J.


Artificial Intelligence, v.8, n.3, p. 323-64, June 1977.
89

HUHNS, M. N.; SINGH, M. P. Agents and Multiagent Systems: Themes, Approaches,


and Challenges. In: HUHNS, M. N.; SINGH, M. P. (eds.) Readings In Agents. So
Francisco, Morgan Kaufmann, 1997.

JAIN, R. C. Expensive Vision. CVGIP: Image Understanding, v.60, n.1 p.86-8, July
1994.

JAIN, R. C.; BINFORD, T. O. Ignorance, myopia and naivet in computer vision


systems. CVGIP: Image Understanding, v.53, n.1, p.112-17, 1991.

JENNINGS, N. R et al. Using ARCHON to develop real-world DAI applications.


IEEE Expert, v. 11, n, 6, p. 64-70, Dec 1996.

JOLION, J.M. Computer vision methodologies. CVGIP: Image Understanding, v.59,


n.1, p.53-71, Jan. 1994.

KENJO, T. Stepping motors and their microprocessor control Monographs in


Electrical and Electronic Engineering. OXFORD, 1992.

KIM, J.H.; VADAKKEPAT, P.; VERNER, I.M. FIRA Robot World Cup Initiative
and Research Directions. Int. J. of Robotics and Automation Systems, 1998.

KIROUSIS, L.; PAPADIMITRIOUS, C. The complexity of recognizing polyhedral


scenes. In: ANNUAL SYMPOSIUM ON FOUNDATIONS OF COMPUTER
SCIENCE, 1985. Proceedings. Los Alamitos, IEEE, 1985, p. 175-85.

KITANO, H. et al. RoboCup: A challenge Problem for AI. AI Magazine, v. 18, n. 1,


p. 73-85, Spring 1997.

KITCHIN, P. W.; PUGH, A. Processing of Binary Images. In: PUGH, A. (editor)


Robot Vision. Berlin, Springer, 1983. P. 2142.

KOZA, J. Genetic programming: on the programming of computers by means of


natural selection. Cambridge, MA, MIT Press, 1992.

KRAETZCHMAR, G. et al. The ULM Sparrows: Research into Sensorimotor


Integration, Agency, Learning, and Multiagent Cooperation. In: ROBOCUP
WORKSHOP, 2, Paris, 1998. Proceedings. FIRA, 1998. p. 459- 465

LI, Z. N. Multimedia Systems Class Notes. - School of Computing Science - Simon


Fraser University, 1998. (http://www.cs.sfu.ca/fas-info/cs/CC/365/li/material/notes/
Chap3/Chap3.3/Big.html)
90

MARR, D. Vision. New York, Freeman, 1982.

MATRIC, M. J. Coordination and learning in multirobot systems. IEEE Intelligent


Systems, v.13, n.2, p.6-8, April 1998.

MEDEIROS, A. A. D.; CHATILA, R. Priorities and data abstraction in hierarchical


control architectures for autonomous robots. In: WORKSHOP ON INTELLIGENT
ROBOTICS, 1o, Braslia, 1997. Proceedings. Braslia, 1997. p. 207-220.

NEVES, M. C.; OLIVEIRA, E. A Control Architecture for an Autonomous Mobile


Robot. In: INTERNATIONAL CONFERENCE ON AUTONOMOUS AGENTS, 1,
Marina Del Rey, 1997. Proceedings. Marina Del Rey, ACM, 1997.

NOREILS, F. R.; CHATILA, R. G. Plan execution monitoring and control architecture


for mobile robots. IEEE Transactions on Robotics and Automation, v.11, n.2,
April 1995.

PINHANEZ, C. S. Behavior-based Active Vision. International Journal of Pattern


Recognition and Artificial Intelligence, v.8, n.6, p.1493-1526, 1994.

PRESSMAN, R. Engenharia de Software. So Paulo, Makron Books, 1995.

RILLO, A.H.R.C. Sistema de Viso Binria com Reconhecimento de Peas


Parcialmente Oclusas. So Bernardo do Campo, 1989. Dissertao (Mestrado) -
Faculdade de Engenharia Industrial.

RILLO, A.H.R.C., RECTRI: um sistema de reconhecimento tridimensional a partir


de uma nica imagem de intensidade luminosa. So Paulo, 1994. Tese
(Doutorado) - Escola Politcnica, Universidade de So Paulo.

RILLO, A. H. R. C., BIANCHI, R. A. C., MOREIRA Jr, B., FERRAZ, F. Integrando


Viso e Comportamento: Uma aplicao de reconstruo propositiva. In:.
CONGRESSO BRASILEIRO DE AUTOMTICA, 11., So Paulo, 1996. Anais.
So Paulo, SBA, 1996. pp. 573-8.

RILLO, M.; RILLO, A.H.R.C.; COSTA, L.A.R. The LSI assembly cell. In:
IFAC/IFIP/IFORS/IMACS/ISPE Symposium on information control problems in
manufacturing technology, 7, Toronto, 1992. Proceedings. IFAC, 1992. p. 361-5.

RIVLIN, E.; ALOIMONOS, Y.; ROSENFELD, A. Purposive Recognition: a


Framework. Technical Report CAR-TR-597, CS-TR-2811, DACA76-89-C-0019,
91

IRI-9057934, University of Maryland, Dec. 1991.

RUSSELL, S. J.; NORVIG, P. Artificial Intelligence: A Modern Approach.


Englewood Cliffs, Prentice Hall, 1995.

SANDERSON, A. Micro-Robot World Cup Soccer Tournament (MiroSot). IEEE


Robotics and Automation Magazine, pg.15, December 1997.

SANDHOLM, T.; LESSER, V. Issues in automated negotiation and eletronic


commerce: extending the contract net framework. In: INTERNATIONAL
CONFERENCE IN MULTIAGENTS SYSTEMS, 1995, Proceedings, 1995. p. 328-
335.

SANDINI, G.; GROSSO, E. Why purposive vision? CVGIP: Image Understanding,


v.60, n.1 p.108-12, July 1994.

SHEN, W. et al. Integrated Reacive Soccer Agents. In: ROBOCUP WORKSHOP, 2,


Paris, 1998. Proceedings. FIRA, 1998.p. 251-264.

SHNEEBELI, H. A. Die Steuerung von Mehrfinger-Greifersystemen. Karlsruhe,


Alemanha, 1992. Tese (Doutorado) - Universidade de Karlsruhe.

SICHMAN, J. S.; DEMAZEAU, Y; BOISSIER, O. When can knowledge-based


systems be called agents? In: SIMPSIO BRASILEIRO DE INTELIGNCIA
ARTIFICIAL, 9., Rio de Janeiro, 1992. Anais. Rio de Janeiro, SBC, 1992. p.172-
85.

SMITH, R. G. The Contract Net Protocol: high-level communication and control in a


distributed problem solver. IEEE Transactions on Computers, v.29, n.12, p.1104-
13, Dec 1980.

SMITH, D. C.; CYPHER, A.; SPOHRER, J. KidSim: Programming Agents Without a


Programming Language. Communications of the ACM, v.37, n.7, p.55-67, 1994.

SPINU, C.; GARBAY, C.; CHASSERY, J. M. A multi-agent approach to edge


detection as a distributed optimization problem. In: INTERNATIONAL
CONFERENCE ON PATTERN RECOGNITION, 13th.,1996. Proceedings. Los
Alamitos, IEEE, 1996. v.2, p. 81-5.

STONE, P.; VELOSO, M. Multiagent Systems: A Survey from a Machine Learning


Perspective. CMU Internal Report, February, 1997.
92

Sun Microsystems Computer Corporation Sun Video Users Guide. Revision A,


August, 1994.

SWAIN, M.J.; STRICKER, M. Promising Directions in Active Vision. Technical


Report CS 91-27, University of Chicago, Nov. 1991.

TALUKDAR, S.; SOUSA, P.; MURTHY, S. Organization for computer-based agents.


Eng. Int. Syst., v.2, p. 75-87, 1993.

TAMBE, M. Implementing Agent Teams in Dynamic Multi-Agent Environments.


Applied Artificial Intelligence, v12, March 1998.

TARR, M. J.; BLACK, M. J. A computational and evolutionary perspective on the role


of representation in vision. CVGIP: Image Understanding, v.60, n.1, p.65-73,
July 1994.

TARR, M. J.; BLACK, M. J. Reconstruction and purpose. CVGIP: Image


Understanding, v.60, n.1, p.113-8, July 1994b.

TRIVEDI, M.M.; ROSENFELD, A. On making computers See. IEEE transactions


on systems, man and cybernetics, v.19, n.6, p.1333-6, Nov. 1989.

TSOTSOS, J. K. Complexity of Perceptual search tasks. In: INTERNATIONAL JOINT


CONFERENCE ON ARTIFICIAL INTELLIGENCE, 11, Detroit, 1989.
Proceedings. AAAI, 1989. 1571-7.

TSOTSOS, J. K. A Complexity Level Analysis of Vision. Behaviour and Brain Sci,


v.13, p.423-55, 1990.

TSOTSOS, J. K. There is no one way to look at vision. CVGIP: Image


Understanding, v.60, n.1, p.95-7, July 1994.

VAN DE VELDE, W. Toward learning robots. Robotics and Autonomous Systems,


v.8, n.1, pp 1-6, Nov. 1991.

VELOSO, M.; STONE, P; HAN, K. The CMUnited-97 Robotic Soccer Team:


Perception and Multiagent Control. In: INTERNATIONAL CONFERENCE ON
AUTONOMOUS AGENTS, 2, Minneapolis, 1998. Proceedings. AAAI, 1998.

WALTZ, D. I. Generating semantic descriptions from drawings of scenes with


shadows. In The Psicology of Computer Vision. New York, McGraw-Hill, 1975.

WERNER, E. The design of Multi-Agent Systems. In: DEMAZEAU, Y; WERNER, E.


93

(eds.) Decentralized AI-3. Amsterdam, Elsevier, 1992. p.3-28.

WOOLDRIDGE, M.; JENNINGS, N. R. Agent Theories, Architectures, and


Languages: a Survey. In: WOOLDRIDGE, M.; JENNINGS, N. R. (eds.) Intelligent
Agents. Berlin, Springer-Verlag, 1995. p.1-22.

XAVIER, J. E. M. Uma Estrutura para a Construo de Sistemas de Controle


Baseados em Agentes para Robs Mveis. Vitria, 1996. Dissertao (Mestrado)
- Universidade Federal do Esprito Santo.