UNIVERSIDADE DECOIMBRA
FACULDADE DECIÊNCIAS ETECNOLOGIA
DEPARTAMENTO DEENGENHARIAELECTROTÉCNICA E DECOMPUTADORES
RACmotion
Controlo da Trajectória de um Robô
Omnidireccional para a RoboCup SSL
Autores
João Rodrigues
Sérgio Brandão
Coimbra – Portugal 2005
UNIVERSIDADE DECOIMBRA
FACULDADE DECIÊNCIAS ETECNOLOGIA
DEPARTAMENTO DEENGENHARIAELECTROTÉCNICA E DECOMPUTADORES
RACmotion
Controlo da Trajectória de um Robô
Omnidireccional para a RoboCup SSL
Autores
João Rodrigues
Sérgio Brandão
Orientadores
Eng.º Rui Rocha
Prof. Doutor Jorge Dias
Relatório de Projecto apresentado no âmbito do curso de Licenciatura em Engenharia Electrotécnica e de Computadores, ramo de Automação e Robótica, no Departamento de Engenharia Electrotécnica e de Computadores da Faculdade de Ciências e Tecnologia da Universidade de Coimbra.
Coimbra – Portugal 2005
“Tudo o que uma pessoa pode imaginar,
outras podem tornar real.”
Agradecimentos
Este espaço é dedicado àqueles que deram a sua contribuição para que este projecto fosse realizado. A todos eles deixamos aqui o nosso sincero agradecimento.
Em primeiro lugar queremos agradecer ao Eng. Rui Rocha pela forma como orientou o nosso projecto. As notas dominantes da sua orientação, a utilidade das suas recomendações e a cordialidade com que sempre nos recebeu foram fundamentais para a realização deste projecto. Estamos gratos pela sua ajuda e também pela liberdade de acção que nos permitiu, a qual foi decisiva para que o mesmo contribuísse para o nosso desenvolvimento pessoal.
Em segundo lugar, queremos agradecer ao Prof. Doutor Jorge Dias pela disponibilidade concedida, pelas dicas oportunas e por todo o incentivo prestado ao longo do desenvolvimento deste projecto.
Gostaríamos ainda de agradecer ao Eng. Jorge Lobo, pela cooperação prestada e pela orientação sempre fundamental concedida no laboratório, que se mostrou elementar para o progresso do trabalho que nos propusemos a realizar.
Deixamos também aqui uma palavra de agradecimento aos elementos da RAC, pela forma como nos ajudaram e por nos terem transmitido algum conhecimento e interesse pelo desenvolvimento do nosso projecto.
São também dignos de uma nota de apreço os nossos colegas de curso que nos ajudaram na força e no espírito de trabalho, que nos acompanharam sempre nos trabalhos da RAC. A todos eles o nosso obrigado.
Resumo
Este projecto tem como principal objectivo o desenvolvimento de um sistema de controlo para o movimento de um robô omnidireccional. O controlador a desenvolver será utilizado nos robôs da RAC – Robótica Académica de Coimbra (equipa de futebol robótico do DEEC) que irá participar em competições oficiais da RoboCup SSL (Small Size League). Contudo, outros trabalhos foram desenvolvidos e implementados de modo a melhorar e complementar os objectivos da RAC. O RACmotion foi um projecto ambicioso no que diz respeito à inserção do Futebol Robótico no DEEC. Para que este Projecto alcançasse os seus objectivos, foi necessário planear, implementar, desenvolver e inovar!
Este relatório de projecto descreve toda a arquitectura da RAC ligada ao controlo do movimento do robô. São abordados tópicos de inteligência artificial, visão computacional, robótica, simulação, comunicação, processamento distribuído e engenharia de software. Este relatório de projecto introduz ao leitor o mundo do Futebol Robótico, analisando o estado da arte e a situação em Portugal num contexto mundial. Os problemas referentes ao futebol robótico são também introduzidos. É apresentada a arquitectura do sistema, especificando todos os seus módulos e abordando as suas principais características. A implementação e desenvolvimento de algumas aplicações são relatadas em detalhe, inclusive com algumas descrições de algoritmos e fórmulas utilizadas. Este documento relata todas as fases do Projecto RACmotion, desde o projecto de engenharia à implementação e construção do robô. Os testes e resultados são também analisados permitindo assim tirar diversas conclusões e perspectivas de desenvolvimento.
Índice
AGRADECIMENTOS...2 RESUMO...3 ÍNDICE...4 ÍNDICE DE FIGURAS...7 ÍNDICE DE TABELAS...9 INTRODUÇÃO...10 1. FUTEBOLROBÓTICO...112. PROBLEMAS EMERGENTES AOFUTEBOLROBÓTICO...18
3. RACMOTION...24
4. ARQUITECTURA DECONTROLO DARAC ...27
5. ESTRUTURA DO ROBÔ...32
6. HARDWARE...38
7. MODELOCINEMÁTICO...43
8. O SIMULADORRACBOT...47
9. CALIBRAÇÃO...57 10. SISTEMA DECONTROLO...61 11. TESTES ERESULTADOS...94 CONCLUSÃO...102 REFERÊNCIAS EBIBLIOGRAFIA...104 ANEXO1 ...106
DIÁRIOASBEIRAS 21 MARÇO2005...107
DIÁRIOASBEIRAS 1 MAIO2005 ...108
DIÁRIO DECOIMBRA 1 MAIO2005...109
ANEXO2 ...110
ARTIGOROBÓTICA2005 OMNIDIRECTIONALDRIVEMODELLING ANDROBOTCONSTRUCTION ...111
ANEXO3 ...117
CÓDIGOFONTE DASAPLICAÇÕESDESENVOLVIDAS...118
Sumário
AGRADECIMENTOS...2 RESUMO...3 ÍNDICE...4 ÍNDICE DE FIGURAS...7 ÍNDICE DE TABELAS...9 INTRODUÇÃO...10 1. FUTEBOLROBÓTICO...111.1. Histórico sobre Futebol Robótico...11
1.2. Organizações Internacionais ...12
1.2.1. Fira... 12
1.2.2. RoboCup ... 13
1.3. Ligas de Competição...14
1.4. RAC – Robótica Académica de Coimbra ...15
1.5. Futebol Robótico em Portugal ...16
1.6. Estado da Arte ...16
2. PROBLEMAS EMERGENTES AOFUTEBOLROBÓTICO...18
2.1. Inteligência Artificial ...19 2.2. Visão Computacional ...19 2.2.1. Visão Global ... 20 2.2.2. Visão Local... 20 2.3. Tolerância a Falhas...22 2.4. Engenharia de Software...22 2.5. Processamento Distribuído ...23 3. RACMOTION...24 3.1. Objectivos...24 3.2. Motivação ...24 3.3. Promoção e Divulgação ...25
4. ARQUITECTURA DECONTROLO DARAC ...27
4.1. Descrição...27
4.2. Aplicação em Robôs com Diferentes Níveis de Autonomia ...30
4.3. Ferramentas de Desenvolvimento ...30
4.4. Divisão de Tarefas de Desenvolvimento...30
5. ESTRUTURA DO ROBÔ...32 5.1. Plataforma ...32 5.2. Evolução ...33 5.3. Protótipo ...36 6. HARDWARE...38 6.1. PC/104...38 6.2. Comunicação ...41
6.3. Motores e Caixas de Desmultiplicação ...41
6.4. Baterias ...42
7. MODELOCINEMÁTICO...43
7.1. Modelo Cinemático RACbot ...43
7.2. Cinemática Inversa ...45
7.3. Cinemática Directa...45
7.4. Modelos alternativos ...46
8. O SIMULADORRACBOT...47
8.1. Motivação ...47 8.2. MATLAB Simulink ...47 8.3. Implementação ...48 8.3.1. Diagrama de Controlo ... 48 8.3.2. Visualização ... 50 8.3.3. Testes e Resultados ... 52
8.3.4. Conclusões... 56 9. CALIBRAÇÃO...57 9.1. Motivação ...57 9.2. Assumpções ...57 9.3. Procedimento de Calibração ...57 9.4. Testes em Simulação...59 9.5. Conclusões ...60 10. SISTEMA DECONTROLO...61 10.1. Sistema Operativo ...61 10.1.1. Características Pretendidas... 61 10.1.2. Analise de Candidatos... 62
10.1.3. Sistema Operativo de Desenvolvimento e Teste ... 64
10.1.4. Sistema Operativo da Plataforma ... 65
10.1.5. Processo de Arranque do Sistema... 67
10.2. Sistema de Comunicações ...67
10.2.1. Protocolo IEEE 802.11b ... 69
10.2.2. Protocolo TCP/IP ... 72
10.2.3. Protocolo de Comunicação RACprotocol ... 74
10.2.4. Driver do Dispositivo Wireless ... 80
10.2.5. Configuração da Rede Sem Fios ... 81
10.3. Funções de I/O na Placa MESA 4i65 ...82
10.3.1. Características do Firmware softDMC... 82
10.3.2. Calibração do Controlador PID ... 83
10.3.3. Implementação do softDMC Loader... 84
10.4. Controlador de Movimento...85
10.4.1. Arquitectura do Controlador... 86
11. TESTES ERESULTADOS...94
11.1. Competições e Eventos ...94
11.2. Testes e Ensaios ...94
11.2.1. Arranque e Movimento do Robô ... 95
11.2.2. Execução de Trajectórias ... 98
11.2.3. Procedimento de Calibração... 100
11.2.4. Controlo de Disparo e Carga do Kicker ... 100
11.2.5. Conclusões... 100
11.3. Perspectivas de Desenvolvimento Futuro ...101
CONCLUSÃO...102
REFERÊNCIAS EBIBLIOGRAFIA...104
ANEXO1 ...106
DIÁRIOASBEIRAS 21 MARÇO2005...107
DIÁRIOASBEIRAS 1 MAIO2005 ...108
DIÁRIO DECOIMBRA 1 MAIO2005...109
ANEXO2 ...110
ARTIGOROBÓTICA2005 OMNIDIRECTIONALDRIVEMODELLING ANDROBOTCONSTRUCTION ...111
ANEXO3 ...117
CÓDIGOFONTE DASAPLICAÇÕESDESENVOLVIDAS...118
Índice de figuras
Figura 1.1.1 – RoboCup 2004 Lisboa. ... 11
Figura 1.2.1.1 – FIRA Cup 2004 Corea. ...12
Figura 1.2.2.1 – ASIMO Honda, RoboCup 2003 Pádua. ...13
Figura 1.2.2.2 – RoboCup 2004 Lisboa. ...14
Figura 1.3.1 – Ligas de Competição, RoboCup 2004 Lisboa. ...15
Figura 1.4.1 – RAC - Robótica Académica de Coimbra. ... 15
Figura 1.5.1 – Festival Nacional de Robótica 2005... 16
Figura 1.6.1 – RoboCup SSL (Small Size League). ... 17
Figura 2.1 – Robocup: Sony Legged Robot League e Humanoid League. ...18
Figura 2.1.1 – Sistema computacional de IA utilizado na Robocup99 para SSL. ...19
Figura 2.2.1 – Marcações coloridas utilizadas pela RAC... 19
Figura 2.2.1.2 – Sistema computacional de IA utilizado na Robocup99 para SSL...20
Figura 2.2.2.1 – Sistema de Visão Local utilizado em diversos robôs destinados ao Futebol Robótico. ... 21
Figura 3.3.1 – Sessão de palestras do Atelier Robótica. ...25
Figura 3.3.2 – Atelier laboratorial, demonstração RAC. ... 26
Figura 3.3.3 – Páginas WEB do Atelier e projecto RACmotion. ...26
Figura 4.1.1 – Diagrama global da arquitectura de controlo. ...27
Figura 4.1.2 – Diagrama de sequência para a actualização de WM... 28
Figura 4.1.3 – Diagrama da arquitectura do agente robótico...28
Figura 4.1.4 – Exemplo de diagrama de sequência para as acções ao nível táctico do robô ...29
Figura 4.1.5 – Exemplo de diagrama de sequência para a execução de uma acção básica...29
Figura 4.1.6 – Exemplos de informação e de acções de controlo ...29
Figura 5.1.1 – Estrutura do RACbot. ...32
Figura 5.1.2 – Plataforma em alumínio do RACbot...33
Figura 5.2.1 – Fixação do PC na plataforma base do RACbot...33
Figura 5.2.2 – Fixação do disco FUJITSU na plataforma base do RACbot. ...33
Figura 5.2.3 – Chapa de apoio de ligações ao RACbot...34
Figura 5.2.4 – Extensão de ligação à fonte de alimentação da bancada. ...34
Figura 5.2.5 – Inserção das baterias no RACbot. ...35
Figura 5.2.6 – Rodas omnidireccionais adoptadas no RACbot. ...35
Figura 5.2.7 – Roda plástica e roda acrílica. ... 35
Figura 5.2.8 – Montagem do protótipo da RAC. ...36
Figura 5.3.1 – Protótipo RACbot. ...37
Figura 6.1.1 – Módulos do PC/104 no RACbot...38
Figura 6.1.2 – Placa M570 da SECO para PC/104. ...39
Figura 6.1.3 – Placa de programação I/O 4I65 da MESA para PC/104. ...39
Figura 6.1.4 – Placa H-Bridge de 4 canais para ligação à placa 4I65... 40
Figura 6.1.5 – Fonte de Alimentação V104 da TRI-M para PC/104...40
Figura 6.1.6 – Adaptador Compact Flash IDE CFADPT-CS da MESA para PC/104. ...40
Figura 6.2.1 – Adaptador Wireless USB da Edimax EW-7117U. ...41
Figura 6.3.1 – Micro-motor DC de 12V série SR da Faulhaber. ...41
Figura 6.3.2 – Caixa de desmultiplicação para motores série SR da Faulhaber...42
Figura 6.4.1 – Packs de baterias utilizadas no protótipo RACbot...42
Figura 7.1.1 – Modelo Cinemático do RACbot. ...43
Figura 7.1.2 – Desfasamento da roda... 44
Figura 7.4.1 – Diversos tipos de robôs utilizados em Futebol Robótico. ...46
Figura 8.2.1 – MATLAB - Simulink. ...47
Figura 8.3.1 – Fase de implementação do Simulador RACbot. ...48
Figura 8.3.1.2 – Diagrama de Controlo do Simulador RACbot...49
Figura 8.3.2.1 – Simulação da trajectória do robô, set-point [7 1 1 0.5, 10 3 1 0, 12 6 1 -0.5, 11 9 1 0, 9 10 1 0.5]...50
Figura 8.3.2.2 – Velocidade dos três motores segundo o set-point anterior... 50
Figura 8.3.2.3 – Variação dos parâmetros vx, vy e segundo o set-point anterior. ...51
Figura 8.3.2.4 – Orientação do robô ao longo do tempo segundo o set-point anterior. ... 51
Figura 8.3.2.5 – Animação vectorial efectuada pelo Simulador RACbot. ...52
Figura 8.3.2.6 – Animação efectuada ao Simulador RACbot. ...52
Figura 8.3.3.1 – Rotação do referencial do robô em . ... 53
Figura 8.3.3.2 – Rotação do referencial do robô em utilizada na simulação...53
Figura 8.3.3.3 – Simulação do movimento do robô, set-point [10 10 1 0.05, 10 0 1 0, 20 0 1 -0.1, 20 10 1 0]. ...54
Figura 8.3.3.4 – Simulação do movimento do robô, set-point [7 1 1 0.5, 10 3 1 0, 12 6 1 -0.5, 11 9 1 0, 9 10 1 0.5]. ...54
Figura 8.3.3.5 – Simulação do movimento do robô, set-point [0.6 0 1 0, 0.6 0.4 1 0, 0 0.4 1 0, 0 0.2 1 0]. ...55
Figura 8.3.3.6 – Variação dos parâmetros vx, vy e bem como a variação das velocidades dos três motores. ... 55
Figura 9.1.1 – Desfasamento da roda...57
Figura 9.3.1 – Dependência entre desfasamentos em relação a uma determinada trajectória. ...58
Figura 9.4.1 – Alterações efectuadas no simulador para simular o processo de calibração. ...59
Figura 9.4.2 – Procedimento de calibração utilizando o simulador RACbot. ...60
Figura 10.1.3.1 – Sistema de desenvolvimento e teste. ... 65
Figura 10.2.1.1 – Router wireless 802.11b...69
Figura 10.2.1.2 – Sobreposição de canais no protocolo 802.11b...71
Figura 10.2.3.1 – Nível inferior da arquitectura de controlo da RAC...74
Figura 10.2.5.1 – Configuração da rede sem fios. ...81
Figura 10.3.1 – MESA 4i65...82
Figura 10.3.2.1 – Interface gráfica de calibração DMCtune. ... 83
Figura 10.3.3.1 – Fase de arranque no sistem a de desenvolvimento...84
Figura 10.4.1.1 – Arquitectura geral da aplicação de controlo ... 86
Figura 10.4.1.3 – Diagrama de actividade do processo 1...88
Figura 10.4.1.4 – Diagrama de actividade do processo 2...90
Figura 10.4.1.5 – Diagrama de actividade do controlo por comandos de velocidade ...91
Figura 10.4.1.6 – Diagrama de actividade do sistema de polling dos dados da câmara ...91
Figura 10.4.1.7 – Diagrama de actividade do controlo de trajectórias ... 92
Figura 10.4.1.8 – Diagrama de actividade do controlador de rotação...93
Figura 10.4.1.9 – Diagrama de actividade do controlador de carga do kicker ... 93
Figura 11.1.1 – Robótica 2005. ...94
Figura 11.2.1.1 – Testes de movimento efectuados ao robô (varias direcções num raio de 1.2m). ...95
Figura 11.2.1.2 – Posição final do robô após a introdução do set-point C [0.6 1.03923 0.1 0]...96
Figura 11.2.1.3 – Testes de movimento efectuados ao robô para os set-points H e L (vmed=1m/s)...96
Figura 11.2.1.4 – Testes de movimento efectuados ao robô para os set-points B e C (vmed=1m/s). ...97
Figura 11.2.1.5 – Frente de ataque do robô. ...98
Figura 11.2.2.1 – Execução de trajectórias. ... 98
Figura 11.2.2.2 – Execução de trajectórias. ... 99
Figura 11.2.2.3 – Trajectória utilizada nos testes efectuados ao robô ...99
Índice de tabelas
Tabela 10.1.4.1 – Ferram entas de sistema presentes em initrd... 66
Tabela 10.2.1 – Pilha protocolar da plataforma RAC. ...69
Tabela 10.2.1.1 – Canais 802.11 e a sua disponibilidade em vários países. ...71
Tabela 10.2.2.1 – Cabeçalho de um pacote IPv4. ...73
Tabela 10.2.2.2 – Cabeçalho de um pacote TCP. ...73
Tabela 10.2.3.2.1 – Estrutura da mensagem. ...74
Tabela 10.2.3.2.1.1.1 – Mensagem OpenSess. ... 75
Tabela 10.2.3.2.1.2.1 – Mensagem SessQuit. ... 75
Tabela 10.2.3.2.1.2.2 – Condições de erro da mensagem SessQuit... 76
Tabela 10.2.3.2.2.1.1 – Mensagem GiveState. ... 76
Tabela 10.2.3.2.2.2.1 – Mensagem SetVelocity. ... 76
Tabela 10.2.3.2.2.3.1 – Mensagem KickBall. ... 77
Tabela 10.2.3.2.2.4.1 – Mensagem Setdribbling. ... 77
Tabela 10.2.3.2.2.5.1 – Mensagem Halt. ... 77
Tabela 10.2.3.2.2.6.1 – Mensagem SetTrajectory. ... 78
Tabela 10.2.3.2.2.7.1 – Mensagem SetParms. ... 78
Tabela 10.2.3.2.2.8.1 – Mensagem Position. ... 79
Tabela 10.2.3.2.3.1.1 – Mensagem State. ... 79
Tabela 10.2.3.2.3.2.1 – Mensagem GivePosition. ... 80
Tabela 10.3.3.1 – Funções implementadas para o carregador Linux ... 85
Tabela 10.4.1.1 – Classificação dos comandos de controlo ... 89
Tabela 10.4.1.2 – Influencia dos comandos nos controladores ...89
Tabela 11.2.1.1 – Conjunto de pontos utilizados no ensaio do movimento do robô...95
Tabela 11.2.1.2 – Cálculo da média das distancias das varias amostras aos pontos B e C...97
Introdução
O Futebol Robótico é um desafio para a Inteligência Artificial e Robótica em geral. No mundo inteiro, o Futebol Robótico exerce um fascínio inexplicável sobre as pessoas. Um jogo de Futebol Robótico pode ser visto como uma plataforma para incentivar o desenvolvimento tecnológico e o desenvolvimento de conceitos científicos de diversas áreas do conhecimento humano. Para que uma equipa de robôs efectivamente realize uma partida de futebol, diversas tecnologias e áreas do saber devem ser desenvolvidas e integradas, como a Robótica, Inteligência Artificial, Visão Computacional, Sistema de Comunicação e Processamento em Tempo Real, entre outras. Assim, um jogo de Futebol Robótico constitui uma tentativa de estimular o desenvolvimento da Robótica Inteligente, fornecendo um sistema dinâmico complexo, onde uma ampla gama de tecnologias pode ser integrada e testada.
O presente Projecto é intitulado RACmotion, um Projecto que tem como principal objectivo o controlo da trajectória do movimento de um robô omnidireccional. O controlador a desenvolver será utilizado nos robôs da RAC - Robótica Académica de Coimbra (equipa de futebol robótico do DEEC) - que irá participar em competições oficiais da RoboCup SSL (Small-Size League).
O capítulo 1 apresenta o Futebol Robótico, descreve-o como um problema padronizado e analisa o Estado da Arte. No capítulo 2 é introduzido todo um conjunto de problemas emergentes ao Futebol Robótico. O RACmotion é introduzido no capítulo 3, onde são definidos os seus objectivos, bem como, as suas motivações, promoções e divulgações. A arquitectura do sistema é descrita no capítulo 4. Segue-se o capítulo 5 que descreve a plataforma do robô adoptada pela equipa da RAC, explicando a sua evolução e alguns detalhes do seu desenvolvimento. O capítulo 6 aborda questões de hardware, bem como, alguns componentes usados no robô. O capítulo 7 introduz os modelos cinemáticos adoptados. De seguida, é apresentado no capítulo 8 o desenvolvimento do Simulador RACbot, explicando o seu funcionamento e alguns dos seus objectivos, alguns testes e conclusões também são descritos. A questão da calibração do robô é abordada no capítulo 9. A implementação do Sistema de Controlo é descrita no capítulo 10. Finalmente, o capítulo 11 apresenta testes feitos ao sistema, relatando alguns resultados obtidos. O relatório é finalizado com a apresentação das conclusões. Os anexos são ilustrados no final.
1. Futebol Robótico
Esta secção introduz o universo do Futebol Robótico. Primeiro, é apresentado o histórico sobre o tema. A seguir, são identificadas as principais entidades mundiais que o organizam e promovem. Posteriormente, é feita uma análise sobre o Futebol Robótico em Portugal, identificando algumas das principais equipas, universidades, organizações e eventos existentes no país. Finalmente, o capítulo termina com uma análise do estado da arte.
1.1. Histórico sobre Futebol Robótico
A ideia de robôs jogarem futebol foi mencionada, pela primeira vez, num artigo de 1992, intitulado “On Seeing Robots” [MACKWORTH, 1993]. Neste artigo, o investigador descreve o uso do Futebol Robótico para testar um sistema de visão robótica e desenvolver algoritmos de planeamento de trajectórias e controlo de movimento. Nos três anos seguintes, a ideia foi-se popularizando e amadurecendo no meio académico.
Em 1995, um grupo de investigadores japoneses da Osaka University [OSAKA] e do Sony Computer Science Lab [SONYCSLAB], propõem utilizar o futebol robótico como novo problema-padrão para a pesquisa na Inteligência Artificial e na Robótica. O anúncio é feito num artigo, “RoboCup: The Robot World Cup Initiative” [KITANO, 1995], publicado na International Joint Conference on Artificial Intelligence (IJCAI) de 1995. A IJCAI [IJCAI] é uma das principais conferências internacionais para investigadores de Inteligência Artificial, que tem vindo a ser realizada a cada dois anos desde 1969. Simultaneamente, o professor coreano Jong-Hwan Kim, do Korea Advanced Institute of Science and Technology (KAIST) [KAIST], propõe a realização do Micro-Robot World Cup Soccer Tournament.
Finalmente, em 1996, foram realizados os primeiros campeonatos internacionais, na Corea e no Japão. Desde então, equipas de futebol robótico surgiram em inúmeras universidades e centros de investigação em todo o mundo. Actualmente, existem duas grandes federações que organizam e promovem o Futebol Robótico: The RoboCup Federation (RoboCup) [ROBOCUP] e Federation of International Robot-Soccer Association (FIRA) [FIRA]. Os seus objectivos são promover a pesquisa e o desenvolvimento da inteligência artificial, robótica, visão computacional e muitas outras áreas do conhecimento humano através do Futebol Robótico.
Figura 1.1.1 – RoboCup 2004 Lisboa.
Para atingir esse objectivo, tanto a FIRA como a RoboCup promovem, anualmente, competições internacionais. Cada federação possui as suas próprias regras e categorias. Os robôs podem variar em número, tamanho e forma. Algumas categorias incluem também robôs humanóides bípedes. O campo de jogo e a bola podem ter tamanhos diferentes. De um modo geral, um jogo de futebol robótico funciona da seguinte forma: deve existir um sistema de inteligência artificial para controlar os robôs; a equipa também precisa de um sistema de visão para percepcionar o que está a ocorrer durante o jogo; finalmente, existem os robôs propriamente ditos, que executam as acções determinadas pelo controlador.
A forma como estas três tarefas básicas podem ser desenvolvidas abrange uma ampla gama de tópicos de pesquisa. Por exemplo, a Inteligência Artificial pode ser implementada utilizando Algoritmos Genéticos, Redes Neurais ou Agentes Inteligentes [RUSSEL, 1995]. O Processamento de Imagens, por sua vez, pode ser realizado através de diferentes métodos [GONZALEZ, 2002], tanto num sistema de visão global, com a câmara colocada sobre o campo, como num sistema local, onde cada robô possui a sua própria câmara. Finalmente, a concepção e construção dos robôs [VELOSO, 2000] envolve um conhecimento substancial de Electrónica e Mecânica. Uma equipa de futebol robótico avançada desenvolve investigação em diversas áreas, além daquelas que temos vindo a mencionar, nomeadamente no sistema eléctrico dos robôs. O futebol de robótico pode então ser visto como uma plataforma de pesquisa e desenvolvimento em diversas áreas, especialmente pela comunidade académica.
1.2. Organizações Internacionais
A RoboCup e a FIRA são as duas maiores organizações internacionais que promovem o Futebol Robótico. Estas federações realizam anualmente campeonatos mundiais, acompanhados de congressos com publicações de artigos técnicos. De seguida a FIRA e RoboCup são apresentadas, analisando os seus objectivos e dando uma visão geral sobre as suas categorias e regras de competição.
1.2.1. Fira
FIRA é a sigla de Federation of International Robot-soccer Association. Esta organização foi estabelecida em 5 de Junho de 1997. O seu objectivo é “levar o espírito da ciência e da tecnologia ao público em geral e à nova geração através do jogo de futebol robótico”. Nas palavras do idealizador e criador da FIRA, o professor Jong-Hwan Kim, o futebol robótico pode ser visto como uma competição de tecnologia robótica avançada, dentro de um espaço restrito. Ela oferece uma área desafiante para a nova geração e para investigadores que trabalham com sistemas de robôs móveis autónomos. Espera-se que, através destes eventos, se possa compreender melhor os conceitos científicos e os avanços tecnológicos envolvidos. Os resultados das pesquisas desenvolvidas, irão ajudar certamente a humanidade de diversas formas.
Figura 1.2.1.1 – FIRA Cup 2004 Corea.
A FIRA possui seis categorias, descritas a seguir. Maiores detalhes sobre as regras de cada categoria podem ser encontrados em [FIRA].
• HuroSot: Humanoid Robot World Cup Soccer Tournament. Utiliza robôs humanóides com duas
pernas. O tamanho máximo dos robôs é de 150 cm, pesando até 30 Kg.
• KheperaSot: o jogo é disputado por duas equipas com apenas 1 robô cada. O robô é
totalmente autónomo, com sistema de visão local. O robô utilizado nesta categoria é o Khepera [KTEAM], produzido por uma empresa suíça. A bola utilizada no jogo é uma bola de ténis amarela. O tamanho do campo é de 130 cm x 90 cm.
• MiroSot: Micro Robot World Cup Soccer Tournament. Nesta categoria, a partida é disputada por
guarda-redes. É permitido o uso de apenas um computador para controlar os robôs de uma equipa. De acordo com as regras, o volume ocupado pelo robô não pode exceder um cubo de aresta igual a 7,5 cm. A bola utilizada na partida é uma bola de golfe laranja. O tamanho do campo é de 150 cm x 130 cm para a Small League e de 220 cm x 180 cm para a Middle League.
• NaroSot: a partida é disputada por duas equipas, cada uma composta por cinco robôs, podendo
um deles ser o guarda-redes. É permitido apenas um computador para controlar cada equipa. O tamanho máximo de cada robô é de 4 cm x 4 cm x 5,5 cm. É utilizada uma bola de ping-pong laranja. O tamanho do campo é de 130 cm x 90 cm.
• RoboSot: nesta categoria, a partida é disputada por duas equipas, cada uma composta por um
a três robôs. Um dos robôs pode ser o guarda-redes. Cada robô pode ser totalmente independente ou semi-autónomo. O tamanho máximo dos robôs é de 20 cm x 20 cm x 40 cm. A bola utilizada no jogo é uma bola de ténis amarela. O tamanho do campo é de 220 cm x 180 cm.
• SimuroSot: categoria de simulação de Futebol Robótico. Composta por um servidor que simula
o ambiente do jogo de futebol (campo de jogo, robôs, bola, etc.) e por dois programas clientes com as estratégias de jogo de cada equipa. A partida é visualizada numa tela gráfica. As equipas podem criar as suas próprias estratégias e competir uns com os outros sem utilizar um hardware específico. Os jogos podem ser disputados por equipas de 5 ou 11 jogadores cada.
1.2.2. RoboCup
A RoboCup é uma iniciativa internacional, promovida pela comunidade científica na área da Robótica, que procura servir-se do futebol para desenvolver actividades de investigação na área da Robótica Móvel Inteligente, bem como estimular o ensino da Robótica junto de jovens estudantes dos níveis de ensino secundário e superior. Organiza regularmente competições internacionais (campeonatos europeus e mundiais), promovendo assim a troca científica de ideias a nível mundial [RAC].
Figura 1.2.2.1 – ASIMO Honda, RoboCup 2003 Pádua.
Para o desenvolvimento de uma equipa de futebol robótico é necessário um elevado conjunto de tecnologias. Desta forma, a investigação em futebol robótico e a competição internacional associada – RoboCup – atraíram a participação regular de algumas das melhores empresas, laboratórios de investigação e universidades mundiais, incluindo a Sony, Honda, SGI, Philips, GMD e as universidades de Carnegie Mellon, Cornell, Freiburg, Karlsruhe, UNSW, Tsinghua, entre outros.
A RoboCup traz consigo um objectivo bastante ambicioso: defrontar em 2050 uma equipa de futebol humana. Trata-se de um objectivo difícil de atingir. Mas com a manifestação e desenvolvimento de pequenas iniciativas como a RAC, estamos a lutar por uma comunidade tecnológica cada vez maior, que leva a um acentuado crescimento do poder de inovação e da ciência.
Figura 1.2.2.2 – RoboCup 2004 Lisboa.
A RoboCup possui três grandes ligas: RoboCupSoccer, RoboCupRescue e RoboCupJunior. A RoboCupRescue envolve a aplicação de robôs em situações práticas. Cada ano é lançado um desafio diferente, como por exemplo, o resgate de vítimas num cenário de destruição urbana causada por um terramoto. Já a liga RoboCupJunior foi criada para públicos jovens e envolve competições com robôs comerciais, que podem ser comprados prontos a usar. A RoboCupSoccer, por sua vez, possui cinco categorias diferentes, descritas a seguir. Maiores detalhes sobre as regras de cada categoria e das demais ligas pode ser encontrada em [ROBOCUP]. As categorias são:
• Simulation League: Futebol de Robôs simulados.
• Small Size Robot League (F-180): composta por duas equipas de até cinco robôs cada. Os
robôs utilizados nesta categoria devem caber dentro de um cilindro de 18 cm de diâmetro e 22,5 cm de altura. Podem ser completamente autónomos, ou podem ser controlados por um computador central que utiliza uma rede de computadores para os controlar. O tamanho do campo é de 490 cm x 340 cm. É utilizada uma bola de golfe cor-de-laranja.
• Middle Size Robot League (F-2000): composta por duas equipas com o mínimo de 7 e, no
máximo, 11 jogadores, sendo um deles o guarda-redes. O tamanho de cada robô é tal que a sua projecção no chão deve caber dentro de um quadrado de 50 cm de lado. O peso máximo de cada robô é de 40 kg. O tamanho do campo é de 1200 cm x 800 cm.
• Sony Legged Robot League: possui duas equipas, cada uma composta por 4 jogadores,
incluindo o guarda-redes. Os robôs utilizados são os “cãezinhos” AIBO da Sony [AIBO]. O jogo é composto por dois tempos de 10 minutos cada.
• Humanoid League: são utilizados robôs humanóides ou antropomórficos compostos por duas
pernas, dois braços, um tronco e uma cabeça. É utilizada uma bola de futebol oficial da Federação Internacional de Futebol Associação (FIFA). O tamanho dos robôs e do campo varia conforme as sub-categorias desta liga.
1.3. Ligas de Competição
Conforme foi descrito anteriormente, o futebol robótico inclui diversas ligas que se dividem em dois tipos: ligas robóticas (robôs pequenos, médios, “cães” e humanóides) e a liga de simulação.
Cada liga tem um conjunto próprio de desafios de investigação, com ênfase em determinados tópicos necessários para colocar uma equipa de robôs a disputar uma partida de futebol. A liga de robôs pequenos da RoboCup (Small Size League) é a liga que abrange o nosso projecto. Trata-se de uma liga que realça a dinâmica e a velocidade destes robôs devido à sua leve e compacta constituição. Para além de limitados no tamanho (diâmetro máximo de 18 cm e altura máxima de 22,5 cm) possuem também limitações na capacidade sensorial e de processamento, levando a comportarem-se como simples actuadores no sistema de jogo em si. Com regras estabelecidas para cumprir, esta liga caracteriza-se por gerar grande espectáculo entre os participantes e a competição em si, mas nunca esquecendo o seu valor cientifico.
Para além de outras ligas de igual importância, que se conjugam entre si, como é o caso da liga de simulação, devemos realçar que os desafios no domínio do futebol robótico são muito superiores aos desafios colocados por alguns problemas standard da Inteligência Artificial, como o xadrez. No futebol robótico o mundo é dinâmico, parcialmente inacessível aos robôs virtuais, contínuo, não determinístico, multi-objectivo, parcialmente cooperativo e adverso.
Figura 1.3.1 – Ligas de Competição, RoboCup 2004 Lisboa.
As diversas ligas da RoboCup foram projectadas de forma a contemplarem um conjunto elevado de complexidades, mantendo o custo e a dimensão do problema acessível aos grupos de investigação em Robótica e Inteligência Artificial.
Os problemas de investigação colocados pela RoboCup, cobrem uma vasta área nos domínios da Robótica e IA. Incluem, entre outras, a coordenação, a cooperação e comunicação multi-agente, as arquitecturas de agentes inteligentes, a aprendizagem, o planeamento em tempo-real, a decisão estratégica e táctica, o comportamento reactivo, a visão, o processamento e análise de imagem, o controlo, os sistemas de locomoção, os sistemas sensoriais, a fusão sensorial em tempo-real, a navegação e o controlo robótico [RAC].
O desafio associado à RoboCup é estimulante do ponto de vista científico, colocando um vasto conjunto de problemas aos investigadores das diversas áreas científicas mas, simultaneamente, atraente para o público em geral e para os meios de comunicação social.
O sucesso duma competição como a RoboCup reside fundamentalmente no desenvolvimento de metodologias de coordenação que lhes permitem trabalhar em conjunto de forma harmoniosa no sentido de atingir os seus dois objectivos principais: marcar golos na baliza adversária e evitar sofrer golos na sua baliza. A coordenação é desta forma uma das áreas de investigação essenciais no contexto da RoboCup e um factor crucial para o sucesso de uma equipa nas competições internacionais realizadas neste âmbito.
1.4. RAC Robótica Académica de Coimbra
A RAC – Robótica Académica de Coimbra – é um projecto do Departamento de Engenharia Electrotécnica e de Computadores [DEEC] da Faculdade de Ciências e Tecnologia da Universidade de Coimbra [FCTUC], que envolve alunos, investigadores e docentes desta instituição. É apoiado pela FCT – Fundação para a Ciência e Tecnologia [FCT], ao abrigo do projecto de investigação POSI/ROBO/43890/2002. Tem como objectivo principal formar e desenvolver uma equipa de futebol robótico dinâmica e competitiva, que possa representar o DEEC da FCTUC em competições da liga de robôs pequenos da RoboCup (SSL – Small Size League) [RAC].
O sucesso dum projecto como a RAC traz sempre alguns benefícios para a instituição que abraça, bem como para o país em geral. Promovida por alunos, investigadores e docentes na área da Robótica, procura servir-se do futebol para desenvolver actividades de investigação na área da Robótica Móvel Inteligente, bem como estimular o ensino da Robótica junto de jovens estudantes.
1.5. Futebol Robótico em Portugal
O Futebol Robótico é uma novidade no mundo inteiro. Muitas das investigações estão ainda em regime de iniciação e muitos avanços tecnológicos estarão para vir. Portugal não foge à regra e também possui equipas de Futebol Robótico, organizando todos os anos eventos que visam mostrar e apresentar algumas das tecnologias nesta área.
Paralelamente à RoboCup, o Festival Nacional de Robótica é já um marco importante no nosso país. A primeira edição realizou-se em 2001 na cidade de Guimarães e, com o passar dos anos, tem vindo a ganhar destaque. Trata-se de um encontro anual de estudantes, professores e investigadores que visa o desenvolvimento da ciência e do conhecimento. Paralelamente à parte lúdica e competitiva, existe sempre um encontro cientifico, aberto a participantes e investigadores através da publicação de artigos. A Robótica é o tema principal, no entanto, a divulgação de outras áreas tem vindo a ser visível. A arte e o espectáculo são vividos com grande entusiasmo através dos seus participantes.
A última edição, em 2005, decorreu em Coimbra, nas instalações do Departamento de Engenharia Electrotécnica e de Computadores da Faculdade de Ciências e Tecnologia da Universidade de Coimbra. A RAC, estando em fase de evolução e preparação para as competições, teve um contributo importante na realização e promoção do evento. O objectivo era estimular o gosto pela ciência e pela tecnologia junto das camadas jovens, através de um ambiente de competição e convívio.
Figura 1.5.1 – Festival Nacional de Robótica 2005.
São iniciativas que juntam centenas de estudantes e investigadores não só das principais universidades portuguesas com actividades na área da robótica, como também as escolas secundárias e profissionais de todo o país.
Em 2004, foi também realizada a RoboCup em Lisboa, que é a mais importante competição internacional de Futebol Robótico. Portugal cresce assim nesta área tão importante que é a Robótica.
1.6. Estado da Arte
A evolução do Estado da Arte em Futebol Robótico pode ser observada anualmente, durante os campeonatos mundiais da FIRA e da RoboCup. Ao fazer uma análise das competições, verifica-se que as equipas pioneiras, que participaram nos primeiros jogos, são bem menos sofisticadas que as equipas mais recentes, tanto em termos de software, como de hardware.
Analisando as equipas que participaram nas primeiras edições dos campeonatos mundiais, constata-se que alguns dos primeiros robôs possuíam apenas mecanismos de locomoção. Não havia
mecanismos de domínio sobre a bola ou de chuto. Muitas vezes a estratégia da equipa era simplesmente amontoar os jogadores na área de defesa e empurrar a bola para o campo do adversário, marcando golo, se possível. De um modo geral, o funcionamento dessas primeiras equipas era: o sistema de reconhecimento de imagens enviava os dados referentes às posições dos robôs e da bola, para um programa que calculava todos os caminhos possíveis para essa configuração de jogo. Esses dados eram processadas num sistema central que, tomando decisões estratégicas determinava quais os movimentos a realizar pelos robôs. A comunicação com os robôs era realizada remotamente.
Com o passar dos anos, os sistemas de visão computacional e a tomada de decisões estratégicas começaram a ser incorporados nos robôs, transformando-os em verdadeiros jogadores autónomos. As equipas mais recentes apresentam muitas inovações electromecânicas e estratégias de controlo bem mais sofisticadas e eficientes. Um bom exemplo é a equipa Big Red da Cornell University [CORNELL]. Esta equipa já foi várias vezes campeã na categoria de robôs pequenos (SSL – Small Size League) da RoboCup. Os novos robôs desta equipa possuem um sistema de direcção construído com uma combinação de três pares de rodas e uma frente de ataque com maior abertura [D’ANDREA, 2001]. Esse sistema proporciona uma grande liberdade de movimentos aos robôs, para além duma capacidade de aceleração superior. O mecanismo de chuto dos robôs da Big Red também representa um grande avanço do Estado da Arte. Esse novo mecanismo permite que o robô mantenha um domínio efectivo sobre a bola e, também, viabiliza a realização de passes eficientes. Graças a essas inovações de hardware, foi possível obter grandes avanços no software. As novas estratégias utilizam jogadores que cooperam entre si, realmente formando uma equipa, ao invés de simplesmente cada jogador chutar cegamente para marcar golo ou defender o seu campo. Assim, além de evitar colisões e encontrar caminhos, o sistema de estratégia passa a manipular a partida de tal forma a criar situações favoráveis para a vitória, através de dribles, passes e de posicionamento estratégico dos jogadores em campo. Novos sistemas que analisam o comportamento da equipa adversária para tentar antecipar as suas jogadas estão também a ser desenvolvidos.
Figura 1.6.1 – RoboCup SSL (Small Size League).
Finalmente, salienta-se que o objectivo das competições e, portanto, das equipas que participam delas, não é vencer o jogo, mas sim desenvolver ciência e tecnologia. Os artigos publicados durante os eventos promovidos pela FIRA e RoboCup servem como referência para que todas as equipas possam desfrutar dos avanços obtidos, ajudando a elevar o estado da arte em Futebol Robótico. Afinal, quem revela o segredo do seu sucesso, obriga-se a desenvolver algo ainda melhor para o próximo campeonato. Atitudes como a da equipa Big Red, que compartilha os seus conhecimentos e tecnologias, demonstram o espírito desportivo que existe por detrás do Futebol Robótico.
2. Problemas emergentes ao Futebol Robótico
Os maiores avanços da Inteligência Artificial foram obtidos através da investigação em problemas padronizados. Os jogos, de um modo geral, constituem um bom domínio para a exploração da inteligência das máquinas. Talvez o melhor exemplo seja o jogo de Xadrez. Grandes nomes da computação, como Alan Turing e Charles Babbage, conceberam programas para jogar xadrez. Ou seja, a ideia de que computadores poderiam competir em jogos é tão antiga quanto os próprios computadores. Assim, a investigação em jogos levou à descoberta de diversos algoritmos de busca poderosos, que podem ser aplicados noutras áreas, além do jogo em si. No xadrez, por exemplo, pode-se aplicar o algoritmo minimax [RICH, 1988]. Este algoritmo gera uma árvore com os movimentos possíveis e busca maximizar a possibilidade de vitória, ao mesmo tempo que minimiza as hipóteses do adversário.
Figura 2.1 – Robocup: Sony Legged Robot League e Humanoid League.
Os jogos são interessantes para a investigação da Inteligência Artificial porque possuem regras bem definidas, além de ser fácil medir o sucesso ou fracasso. Além disso, eles despertam um interesse muito grande. O Futebol Robótico, por sua vez, exerce um fascínio inexplicável sobre as pessoas, especialmente sobre o público jovem. Além de ser um desafio intelectual programar ou competir com a máquina, ainda existe a interacção física com os robôs. Ao contrário do xadrez e outros jogos em que os movimentos são realizados em jogadas, onde um jogador espera que o outro faça um movimento, o Futebol Robótico acontece em tempo real. Adicionalmente, por abranger o mundo físico real, incorpora toda a complexidade e problemas inerentes da realidade, sendo um sistema altamente dinâmico. Portanto, ruído, sincronismo, desgaste, imprecisão, falhas físicas, entre outros factores, fazem parte da equação.
Consequentemente, muitos dos algoritmos desenvolvidos para jogos são inúteis no Futebol Robótico, apesar de serem extremamente eficientes para o xadrez e afins. Um jogo de Futebol Robótico possui regras bem definidas. Basicamente, utilizam-se as mesmas regras de um jogo de futebol com jogadores humanos, mas com algumas modificações referentes ao tamanho do campo, número de jogadores, duração do jogo, etc. E, assim como nos demais jogos utilizados em IA, é fácil medir o sucesso ou fracasso: ganha a equipa que marcar mais golos. Entretanto, ao contrário de jogos que constituem apenas uma tarefa abstracta, o Futebol Robótico incorpora todas as dificuldades intrínsecas da solução de problemas do mundo real.
São inúmeras as áreas de investigação e pesquisa que podem ser realizadas com o Futebol Robótico. Devido ao grande número e diversidade das tecnologias envolvidas no desenvolvimento de uma equipa de futebol robótico, são muitas as áreas que podem ser abordadas por um projecto de pesquisa deste tipo. Nas secções seguintes, serão analisadas as áreas nas quais o Futebol Robótico pode ser utilizado como uma plataforma de estudos e testes dentro da Ciência da Computação. Assim, serão abordados problemas de Inteligência Artificial, Visão Computacional, Tolerância a Falhas, Engenharia de Software e Processamento Distribuído.
2.1. Inteligência Artificial
A Inteligência Artificial é utilizada na tomada de decisões estratégicas, definindo o comportamento dos jogadores (robôs). Ela interpreta os dados fornecidos por sensores e é responsável pelo controlo dos jogadores.
Figura 2.1.1 – Sistema computacional de IA utilizado na Robocup99 para SSL.
São muitas as áreas da IA que podem ser estudadas através do futebol robótico. Por exemplo, como cada equipa possui vários jogadores independentes um do outro, pode-se considerar cada robô como um agente e utilizar um sistema multiagentes [BARONE, 2003] para implementar o sistema de inteligência artificial. Da mesma forma, pode-se considerar a equipa como uma população de indivíduos e utilizar-se algoritmos genéticos [RUSSEL, 1995] para controlar os robôs. Uma vez que cada robô é dotado de um poder de processamento embebido, pode-se implementar uma rede neural em cada robô. Adicionalmente, cada robô possui sensores e actuadores sobre o meio, além de capacidade de comunicação remota. Assim, é possível fazer com que o sistema de multiagentes seja cooperativo. A rede neural, por sua vez, pode ser implementada num computador central, que controle o sistema como um todo e envia comandos via rádio para os robôs.
2.2. Visão Computacional
Num sistema de futebol robótico, a visão computacional realiza o processamento de imagens. O sistema deve realizar o reconhecimento do campo, da bola e dos jogadores das duas equipas envolvidas numa partida. Cada robô possui uma cobertura de cor predominantemente preta, com marcações coloridas que distinguem uma equipa da outra. Opcionalmente, cada robô pode possuir marcações adicionais, para diferenciar um robô específico dos demais.
Basicamente, o reconhecimento de imagens funciona da seguinte maneira: uma imagem estática é capturada através de uma câmara de vídeo; é realizado um reconhecimento de cores, para identificar a cor da bola, cada uma das equipas e, opcionalmente, alguma cor de marcação adicional para a diferenciação dos jogadores; finalmente, é executado um reconhecimento de formas, para distinguir os robôs da bola e filtrar eventuais ruídos. Ou seja, o reconhecimento de imagens dá-se através de dois passos básicos: diferenciação de cores e reconhecimento de formas. Assim, podem ser utilizadas duas abordagens, descritas a seguir.
2.2.1. Visão Global
Na visão global, uma câmara é colocada a uma determinada altura sobre o campo de jogo. Esta altura pode variar conforme a regra da competição específica e o tamanho do campo. Dessa forma, as imagens capturadas por esta câmara possuem uma visão global da situação do campo. O vídeo é então enviado para um computador central, que realiza o reconhecimento de imagens e envia essas informações para todos os robôs ou, conforme a abordagem utilizada pela Inteligência Artificial, para um programa central.
Figura 2.2.1.2 – Sistema computacional de IA utilizado na Robocup99 para SSL.
Neste tipo de visão, apesar de ocorrerem sempre eventuais ruídos na imagem capturada, dificilmente um dos objectos a ser reconhecido estará obstruído ou ocultado por outro. Adicionalmente, o plano imagem é paralelo ao plano onde a bola se move (campo de jogo), o que facilita o reconhecimento de formas. Uma vez que não é necessário levar a profundidade de um objecto em consideração, pode-se dizer que o reconhecimento de formas é bidimensional (2D).
2.2.2. Visão Local
Neste sistema de visão, cada robô possui uma (ou mais) câmaras embebidas. Não existe uma visão global directa da posição da bola e de todos os robôs. Existe antes um conjunto de visões individuais da situação de jogo de cada robô. Obviamente, a partir destas informações, é possível calcular a situação global do sistema. Entretanto, tal processamento é bastante sofisticado e as dificuldades são enormes. Por exemplo, para realizar o reconhecimento da bola, além de diferenciar a sua cor e reconhecer a sua forma, será necessário, ainda, considerar a sua proximidade em relação ao robô. Conforme varia a distância entre a bola e robô, o tamanho com que a bola aparece na imagem também será variado. O mesmo problema também ocorre para o reconhecimento dos robôs. Esta é apenas uma das dificuldades encontradas num sistema de visão local que, muitas vezes, não existe num sistema global.
Figura 2.2.2.1 – Sistema de Visão Local utilizado em diversos robôs destinados ao Futebol Robótico.
Outra dificuldade é a determinação da posição exacta de cada objecto reconhecido. Quando a visão é local, a bola e os demais jogadores identificados têm a sua posição reconhecida em relação ao robô que capturou a imagem. Mas qual é a posição deste robô em questão? A sua posição pode ser obtida, por exemplo, através de uma triangulação com as imagens reconhecidas pelos outros robôs da sua equipa, num sistema ainda completamente distribuído e descentralizado, mas no qual todos os robôs trocam informações entre si, para a obtenção da situação global do sistema. Entretanto, nada garante que este robô aparecerá na imagem capturada pelos outros robôs da sua equipa. E, ainda que apareça, o mesmo pode estar obstruído por outro robô ou parcialmente bloqueado, impedindo assim o seu reconhecimento. Adicionalmente, a imagem capturada por um robô pode estar vazia, isto é, não possuir nenhum objecto para ser reconhecido.
A determinação da posição exacta da bola e de cada robô pode ser obtida através do seguimento de cada jogador. Para isso, cada robô deve ser equipado com sensores nas suas rodas ou motores para que seja possível monitorizar o seu movimento e saber, num dado momento, o quanto o robô em questão se deslocou. Mais uma vez, a variedade de tecnologias e integração entre as diferentes áreas de estudo está presente.
Entretanto, é extremamente difícil realizar um rastreamento preciso. Como existe atrito e, adicionalmente, ocorrem colisões entre os robôs, implementar um sistema de rastreamento local que seja confiável, apenas com sensores nas rodas ou motores torna-se difícil. Mesmo que, utilizando outros tipos de sensores, seja possível realizar o rastreamento dos robôs da equipa, o problema de localização ainda persiste para os robôs da equipa adversária, uma vez que não são trocadas informações com os mesmos.
Por todas estas razões, é muito mais difícil realizar o reconhecimento local de imagens, em comparação com a abordagem global. E o aumento da dificuldade, ocasionado pela escassez de informação, não se restringe ao sistema de Visão Computacional. Como não existe um reconhecimento de imagens global da situação do jogo, a Inteligência Artificial terá que tomar as suas decisões estratégicas baseadas em informações locais e possivelmente incompletas.
Entretanto, a visão local possui também algumas vantagens. Como não existe nenhum computador central que processe a imagem global e envie as informações para os robôs, o sistema pode ser completamente distribuído, não existindo nenhuma dependência centralizada, ou um ponto único de falha. Dessa forma, outras áreas como Tolerância a Falhas e Processamento Distribuído podem implementar sistemas muito mais robustos e eficientes.
Salienta-se que a visão computacional para o Futebol Robótico não precisa, necessariamente, restringir-se à imagens capturadas por câmaras de vídeo. Pode-se utilizar uma variedade de outros sensores ou ainda uma combinação de diversos sensores. Por exemplo, é possível utilizar a tecnologia de sonares no futebol de robôs. O sonar emite uma sequência de ondas acústicas numa determinada frequência; conforme essas ondas são reflectidas por um determinado objecto, é possível determinar a sua posição e forma. Deste modo, a identificação de cada robô deixaria de depender do reconhecimento de cores e passaria a reconhecer a sua forma, ou seja, envolveria um campo de estudo e pesquisa completamente diferente. Da mesma forma, um sensor de calor poderia ser utilizado. Assim, o reconhecimento de cada robô seria feito pela sua assinatura térmica, e não mais pela sua marcação em cores. Caso algum desses sensores não seja muito adequado para uma determinada tarefa, pode-se utilizar ambos, cada um executando a tarefa que realiza com maior eficiência.
2.3. Tolerância a Falhas
O objectivo da Tolerância a Falhas não é evitar que as falhas ocorram mas, na ocorrência de uma falha, esforçar-se ao máximo para que aquela não ocasione um erro. Assim, no Futebol Robótico, um ambiente abundante em hardware e software potencialmente susceptíveis a falhas, a Tolerância a Falhas pode aumentar a confiabilidade do sistema, podendo significar a diferença entre a vitória ou a derrota!
O hardware, devido ao seu desgaste físico natural, ou decorrente do uso, pode falhar. Qualquer peça de hardware possui uma vida útil. Adicionalmente, a utilização de materiais inadequados pode ocasionar o seu mal funcionamento. E mesmo com componentes de boa qualidade, defeitos de montagem ou fabricação podem vir a gerar mais falhas. Finalmente, o hardware ainda pode conter falhas de projecto. Ou seja, o hardware é altamente propenso a falhas.
O software, por sua vez, existe numa realidade completamente diferente. Não existe desgaste de software [PRADHAM, 1996]. Ao produzir várias “unidades” de um mesmo programa, não existirão falhas de “fabricação”, como ocorre na reprodução do hardware. Quando uma cópia de um software cujo original funciona se apresenta corrompida, o defeito está no suporte usado para o armazenar, não no software. O software não sofre desgaste com o tempo.
Saliente-se que o software pode existir sem o hardware. De facto, cada vez mais se escreve softwares muito antes que qualquer hardware computacional tenha sido construído. A Máquina de Turing [TURING, 1936], idealizada por Alan Turing em 1936, é universalmente aceite e reconhecida como a formalização de algoritmo [DIVERIO, 1999]. Ela é capaz de realizar qualquer função computável, ou seja, o seu poder computacional é equivalente a qualquer computador moderno. Softwares que solucionam diversos problemas foram escritos para esta máquina. Entretanto, a máquina em si, nunca foi construída.
Quando um software apresenta algum defeito, o erro pode ter ocorrido em três situações distintas: falha durante o projecto do software; falha durante a implementação do software; ou uma falha de hardware que provocou uma falha no software.
Assim, no Futebol Robótico, diversas abordagens de Tolerância a Falhas podem ser exploradas e testadas. Por exemplo, pode-se implementar mecanismos de hardware para aumentar a Tolerância a Falhas dos robôs, como o uso de componentes redundantes que entrariam em operação apenas no caso de falha de uma peça. Outra opção é a implementação de mecanismos de software para compensar a falha de hardware: caso um dos motores do robô pare de funcionar, por exemplo, o software deve ser capaz de controlar um robô com um motor a menos, levando em consideração velocidade e habilidade de movimentação reduzidas. Finalmente, pode-se implementar mecanismos de software para lidar com falhas do próprio software: caso um programa bloqueie, outra versão do programa executando em paralelo assumiria as suas funções.
2.4. Engenharia de Software
Numa equipa de Futebol Robótico, na qual estão envolvidas várias áreas de conhecimento, a correcta integração das tecnologias desenvolvidas nas diferentes especialidades num único sistema é crítico para o funcionamento eficiente do conjunto. Devido à sua complexidade, o desenvolvimento e implementação de um sistema de Futebol Robótico é dividido em módulos. Cada módulo fica encarregado de solucionar uma parte específica do problema. Assim, temos os módulos de Inteligência Artificial, Visão Computacional, Comunicação, etc, tantos quanto forem necessários para uma abordagem completa do sistema.
Independentemente da implementação final do sistema, a Engenharia de Software é responsável pela determinação do fluxo de dados entre os diversos módulos, possibilitando a comunicação correcta entre as diferentes partes do sistema. O sistema final pode ser implementado por um ou mais programadores, utilizando diferentes paradigmas de programação (Orientada a Objectos, Programação Estruturada, Funcional, Lógica, etc.). O resultado, pode ser na forma de um único grande programa executável, ou em vários programas menores comunicando entre si. A comunicação, por sua vez, pode ocorrer através de uma rede, ou pode ser feita num único computador, através de funções do sistema operativo. Inclusive, pode-se ter um conjunto de programas em que cada um executa num sistema operativo diferente. Entretanto, com uma boa engenharia de software, torna-se desnecessário
que o programador de um módulo entenda ou tenha que alterar o código de outro módulo para que seu programa possa comunicar e funcionar com outro.
Portanto, o projecto do software de uma equipa de Futebol Robótico, constitui uma óptima plataforma para o teste de diferentes metodologias da Engenharia de Software, ou mesmo, para o desenvolvimento de novas abordagens. Afinal, o Futebol Robótico não envolve apenas a programação de computadores convencionais, mas inclui todo um sistema de hardware e, software embebido.
2.5. Processamento Distribuído
No Futebol Robótico, os programas de inteligência artificial e visão computacional exigem muito poder de processamento. Assim, quanto mais rápida for a CPU (Central Processing Unit), melhor o seu desempenho. Entretanto, por mais potente que seja o processador, a execução desses dois programas num mesmo computador terá um desempenho pior do que se cada sistema executasse num computador separado, com toda a CPU disponível para cada programa. Assim, o Processamento Distribuído é utilizado no Futebol Robótico para melhorar o desempenho do sistema, através da execução de partes pesadas do sistema em computadores distintos.
3. RACmotion
Este capitulo apresenta o RACmotion [RACMOTION], o nosso Projecto de Final de Licenciatura. O RACmotion tem o objectivo de oferecer uma solução para o controlo da trajectória do movimento de um robô omnidireccional, definindo toda a sua estrutura e finalidades. Inicialmente, são introduzidos os seus principais objectivos e por fim é descrita a sua motivação, bem como, toda a promoção efectuada e desenvolvida em seu redor e, da entidade que o abraça, a RAC.
3.1. Objectivos
O objectivo deste projecto, consiste no controlo da trajectória do movimento de um robô omnidireccional. O controlador a desenvolver será utilizado nos robôs da RAC que irão participar eventualmente em competições oficiais da RoboCup SSL (Small-Size League). Esta liga de competição caracteriza-se pela grande dinâmica dos robôs, que são de reduzidas dimensões e limitados no peso, para poderem ter grandes acelerações.
Cada robô da RAC dispõe de uma configuração mecânica constituída por três motores, que torna possível o movimento omnidireccional, ou seja, o robô não tem que se virar antes de se deslocar para um ponto no espaço. Especificada a trajectória, o controlador a desenvolver terá de controlar o robô durante a execução do movimento, em tempo-real e em malha fechada, enviando comandos de velocidade para o robô e usando o sinal do sensor de visão global para realimentar o controlo.
No âmbito deste trabalho, será também desenvolvido software para decompor cada comando de velocidade enviado à camada operacional do robô em comandos individuais de velocidade para os três motores de tracção. Será desenvolvido um modelo cinemático do robô omnidireccional, bem como o procedimento de identificação e calibração dos respectivos parâmetros.
Inserido nos objectivos gerais do projecto RAC, podemos dizer que este trabalho terá valor e importância acrescentada pois, em conjunto com outros projectos efectuados na área, poderá levar em frente o crescimento dos objectivos da RAC, a formação e o desenvolvimento de uma equipa de futebol robótico dinâmica e competitiva, que possa representar o DEEC em competições nacionais e internacionais.
Finalmente, este projecto serve como trabalho final para a obtenção do grau de Licenciatura em Engenharia Electrotécnica e de Computadores, através da conclusão do Projecto Final, cujo foco poderá ser voltado exclusivamente para a área da Robótica.
3.2. Motivação
A utilização de robôs na automação industrial e em locais de difícil acesso por humanos (por exemplo, na inspecção de tubulações) ou em situações perigosas (por exemplo, no desarme de bombas e de minas terrestres) tem crescido rapidamente no âmbito mundial. Da mesma forma, a exploração espacial também dependerá de unidades robóticas, capazes de operar de modo satisfatório nos ambientes hostis de outros planetas. Os países que não dominarem o ciclo de projecto, construção e operação de robôs autónomos estarão comprometendo fortemente sua capacidade de competição num mercado globalizado, uma vez que tais equipamentos já são considerados essenciais em vários tipos de actividades industriais. Por exemplo, a indústria automóvel tem utilizado de forma rotineira robôs de soldadura e pintura, com os quais é possível a construção de complexas estruturas dos modernos automóveis com baixo custo e alta qualidade.
Robôs autónomos que operam em equipa necessitam de um conjunto alargado de tecnologias de diversas especialidades. Um robô verdadeiramente autónomo deve ser dotado de visão computacional e/ou sensores, capazes de posicioná-lo num ambiente desconhecido, associado a um programa de controlo capaz de actuar em situações de conflito. Adicionando-se o requisito de acção cooperativa entre máquinas inteligentes, leva-se ainda à necessidade de se implementar sistemas de comunicação entre os robôs e a divisão de tarefas.
O estudo da robótica autónoma multi-agente tem sido realizada com baixa intensidade em Portugal. Entre os factores que limitam a actuação dos investigadores e alunos tem sido apontado o alto
custo de montagem de um laboratório de robótica. Os robôs necessários para um laboratório de pesquisa implicam investimentos elevados, inviáveis no cenário local. Por exemplo o robô Nomad, tipicamente utilizado em actividades de investigação em diversos países, tem um custo superior a USD$ 40 000,00.
Para além do fascínio pelo Futebol Robótico, uma das principais motivações para o desenvolvimento deste projecto é a formação e o desenvolvimento da equipa de futebol robótico do DEEC, iniciativa levada a cabo pela Robótica Académica de Coimbra – RAC. O objectivo preciso deste projecto, definido pelo desenvolvimento de um controlador de trajectórias para um robô omnidireccional, vai permitir o crescimento e desenvolvimento da ideia que muitos lutam e esperam ver realizada no departamento. Teve também como motivação o desenvolvimento de metodologias de coordenação, cooperação e seguimento de trajectórias, suficientemente genéricas para que possam vir a ser aplicadas a curto-prazo a problemas ligados ao Futebol Robótico, principalmente no caso da equipa da RAC.
O futebol robótico representa uma área que abrange diversos domínios e temas que se interligam sempre com o avanço e desenvolvimento de novas tecnologias. Cada vez mais, é preciso encarar o futuro com bons olhos, com vontade de o fazer evoluir, seguindo um rumo correcto, que nos levará a um futuro melhor.
3.3. Promoção e Divulgação
Para além da natural motivação resultante da participação em grandes competições envolvendo equipas de investigação científica, como a RoboCup e o Festival Nacional de Robótica, este projecto foi sempre encarado com a motivação de ajuda aos objectivos da RAC, bem como na sua promoção local e nacional.
A sua promoção deu-se, principalmente, ao nível da divulgação e no recrutamento de novos elementos. Com isso, a organização do Atelier de Robótica durante o evento Robótica 2005 veio melhorar a publicitação do projecto RAC. A ideia de organizar este atelier, constituído por uma pequena sessão de palestras e um atelier laboratorial, partiu fundamentalmente da nossa constatação que esta área da engenharia, apesar de fascinante, não atrai muito estudantes e eventuais interessados para o trabalho de investigação e desenvolvimento (I&D). Sendo assim, e tendo em conta que nós organizadores somos alunos finalistas que estamos a realizar projectos na área da Robótica, surgiu a ideia de organizar um evento constituído por palestras e visitas de estudo a laboratórios de I&D, com o objectivo de mostrar a todos o quanto esta área é fascinante.
Figura 3.3.1 – Sessão de palestras do Atelier Robótica.
Este tipo de promoção, procurou desmistificar a robótica como uma área não apenas ao alcance dos países mais desenvolvidos tecnologicamente, como por exemplo os EUA, Japão e Alemanha, mas também mostrando que num país pequeno como Portugal se pode fazer ciência robótica e contribuir para o seu avanço tecnológico.
Figura 3.3.2 – Atelier laboratorial, demonstração RAC.
Na área da engenharia, somos todos os dias confrontados com matemática, com física, com computação, ou seja, tudo ciências aplicadas, descorando de certa forma o exercitar das nossas aptidões relacionadas com os aspectos sociais e capacidades organizativas e humanistas. Ao realizar esta actividade, e levando em conta o trabalho já desenvolvido, tivemos o desejo de aprender coisas novas e diferentes, que habitualmente não estão incluídas no programa curricular do nosso curso, como seja tão simplesmente elaborar uma carta/ofício de uma forma mais formal e séria, deixando de parte as mensagens tipo telegrama que nos fomos habituando a escrever através do uso dos e-mails.
Como vivemos numa sociedade digital repleta de informação, foram também desenvolvidas páginas WEB, de modo a facilitar a divulgação do Atelier bem como do projecto RACmotion. A introdução dos conceitos e temas abordados, bem como a troca de ideias, tornam-se fundamentais neste tipo de promoção de iniciativas.
Figura 3.3.3 – Páginas WEB do Atelier e projecto RACmotion.
⇒ Sessão de Palestras e Atelier Robótica:
http://alumni.deec.uc.pt/~brandao/robotica2005atelier
⇒ Projecto RACmotion:
http://alumni.deec.uc.pt/~brandao/racmotion
De um modo geral o “feedback” dado pelos participantes foi muito bom e algum desse “feedback” ainda hoje é visível. Foi sempre nosso objectivo mostrar o trabalho da RAC no DEEC e dinamizar mais uma vez o nosso departamento nesta área tão aliciante que é a Robótica. Com a realização deste evento, tivemos uma enorme adesão no quadro de admissões à RAC por parte de colegas do DEEC e até mesmo pessoas de fora que estiveram presentes no Atelier, o que veio provar mais uma vez que este tipo de iniciativas são cada vez mais necessárias. É sempre bom contribuir para este tipo de causas e para o desenvolvimento da investigação do nosso departamento e, por isso, estamos gratos por termos conseguido alcançar os nossos objectivos.
Segue em anexo alguns relatos informativos de diversos órgãos de comunicação social que apresentaram algumas das iniciativas desenvolvidas.
4. Arquitectura de Controlo da RAC
A arquitectura de controlo da RAC foi projectada com o objectivo de controlar em tempo real uma equipa de robôs jogadores de futebol, dando a maior autonomia de controlo possível aos robôs. A arquitectura de controlo é distribuída, mas com um modelo de representação do mundo centralizado, que une os dados dos sensores de todos os robôs. Para além disso, a arquitectura é modular, escalável e suporta equipas da liga média (MSL) e da liga pequena (SSL) com diferentes níveis de autonomia de controlo do robô [MARTINS].
4.1. Descrição
A figura 4.1.1 mostra o diagrama da arquitectura global da equipa. A arquitectura é composta por um modelo centralizado de representação do mundo (WM - World Model). Este modelo é acedido por um número de agentes robóticos (AGENT 1, …, AGENT n) e pelo interface de sensores globais (GLBSENS). RFRINT Referee Interface World Model WM World Model World Model WM MNT System Monitor QRYMOD Query Model NTFYEV Notify Event UPDMOD Update Model World HMNSVS Human Supervisor Local Data LD STRCTR Strategic Control TCTCTR Tactic Control OPRCTR Operational Control ACT Actuators SENSPROC Sensory Processing SENS Sensors AGENT 1 Local Data LD STRCTR Strategic Control TCTCTR Tactic Control OPRCTR Operational Control ACT Actuators SENSPROC Sensory Processing SENS Sensors Local Data LD Local Data Local Data LD STRCTR Strategic Control TCTCTR Tactic Control OPRCTR Operational Control ACT Actuators STRCTR Strategic Control TCTCTR Tactic Control OPRCTR Operational Control ACT Actuators SENSPROC Sensory Processing SENS Sensors SENSPROC Sensory Processing SENS Sensors AGENT 1 AGENT 1 Events Local Data LD STRCTR Strategic Control TCTCTR Tactic Control OPRCTR Operational Control ACT Actuators SENSPROC Sensory Processing SENS Sensors AGENT n Local Data LD STRCTR Strategic Control TCTCTR Tactic Control OPRCTR Operational Control ACT Actuators SENSPROC Sensory Processing SENS Sensors Local Data LD Local Data Local Data LD STRCTR Strategic Control TCTCTR Tactic Control OPRCTR Operational Control ACT Actuators STRCTR Strategic Control TCTCTR Tactic Control OPRCTR Operational Control ACT Actuators SENSPROC Sensory Processing SENS Sensors SENSPROC Sensory Processing SENS Sensors AGENT n AGENT n Queries Sensory Fusion Inter-Agent Supervision GLBSENS Global Sensors (6) (6) (7) (7) (2) (7) (5) (2) (1) (4) (1, 3) (1, 3) (8) (9)
Figura 4.1.1 – Diagrama global da arquitectura de controlo.
O módulo WM é uma representação centralizada do mundo. Guarda informação importante sobre o jogo, como por exemplo, a orientação e velocidade de todos os jogadores e da bola, do resultado e situação do jogo. Esta informação é usada pelos robôs para tomar decisões usando informação consistente do estado do jogo e comum a todos. Os módulos UPMOD e RFRINT são processos que actualizam WM sempre que são detectadas alterações no ambiente de jogo. O módulo UPDMOD implementa a fusão sensorial dos sensores a bordo dos robôs e dos sensores globais. A figura 4.1.2 mostra um exemplo da sequência de eventos que actualiza o módulo WM desde que nova informação esteja disponível. O módulo RFRINT recebe comandos do árbitro do jogo e actualiza o estado do jogo em WM de acordo com a decisão tomada pelo árbitro (cantos, faltas, lançamentos, golos, etc.). O módulo MNT implementa um interface gráfico de utilizador que permite ao supervisor da equipa controlar os acontecimentos do jogo. O módulo HMNSVS permita ao supervisor humano afinar a estratégia seguida pela equipa. Os módulos QRYMOD e NTFYEV permitem que WM esteja disponível para todos os robôs. QRYMOD processa os pedidos sobre o estado de jogo e NTFYEV é um processo