• Nenhum resultado encontrado

Planejamento cooperativo de tarefas em um ambiente de futebol de robôs

N/A
N/A
Protected

Academic year: 2017

Share "Planejamento cooperativo de tarefas em um ambiente de futebol de robôs"

Copied!
100
0
0

Texto

(1)

Universidade Federal do Rio Grande do Norte

Centro de Tecnologia

Programa de P´

os-Gradua¸c˜

ao em Engenharia El´

etrica

Marcelo Minicuci Yamamoto

Planejamento Cooperativo de Tarefas em um

Ambiente de Futebol de Robˆ

os

Disserta¸c˜ao de mestrado submetido ao Pro-grama de P´os-Gradua¸c˜ao em Engenharia El´etrica do Centro de Tecnologia da Univer-sidade Federal do Rio Grande do Norte.

Orientador: Prof D.Sc. Adelardo Adelino Dantas de Medeiros Co-orientador: Prof D.Sc. Pablo Javier Alsina

(2)

Sum´

ario

Lista de Figuras vi

Resumo vii

Abstract viii

1 Introdu¸c˜ao 1

1.1 Sistemas Multi-Robˆos . . . 2

1.2 Futebol de Robˆos . . . 3

1.2.1 A Categoria Mirosot . . . 4

1.2.2 A equipe POTI . . . 5

1.2.3 O Sistema Simulador . . . 7

1.3 Objetivos do Trabalho . . . 8

1.4 Metodologia . . . 8

1.5 Organiza¸c˜ao do Trabalho . . . 9

2 Sistemas Rob´oticos Cooperativos 10 2.1 Sistemas Multi-Robˆos . . . 10

2.2 Futebol de Robˆos . . . 11

2.3 Discuss˜ao . . . 15

3 Simulador 17 3.1 Estrutura do Simulador . . . 18

3.1.1 O Sistema de Simula¸c˜ao . . . 19

3.2 Modelagem Matem´atica do Robˆo . . . 23

(3)

3.2.2 Modelagem Dinˆamica . . . 25

3.3 Tratamento das Colis˜oes . . . 27

3.3.1 Detec¸c˜ao de Colis˜oes . . . 28

3.3.2 Modelagem das Colis˜oes . . . 32

3.3.3 O visualizador . . . 36

3.4 Discuss˜ao . . . 37

4 M´odulo de Planejamento 38 4.1 Desvio de Obst´aculos . . . 39

5 T´atica 45 5.1 Pap´eis . . . 47

5.1.1 Aloca¸c˜ao Dinˆanica de Pap´eis . . . 47

5.1.2 defensor . . . 52

5.1.3 Atacante . . . 55

5.1.4 Curinga . . . 63

5.2 Estilos de jogo . . . 65

5.2.1 Estilo Avan¸cado . . . 65

5.2.2 Estilo Recuado . . . 66

6 Resultados 67 6.1 Desvio de obst´aculos . . . 67

6.1.1 Obst´aculo simples . . . 68

6.1.2 Obst´aculos fundidos . . . 68

6.2 Comportamento dos estados . . . 72

6.2.1 Estado alinhar . . . 72

6.2.2 Estado chutar . . . 72

6.2.3 Estado defender . . . 72

6.3 Aloca¸c˜ao dinˆamica de pap´eis . . . 76

6.4 Resultado de jogos . . . 76

6.4.1 T´atica simples . . . 79

6.4.2 Resultados contra a t´atica simples . . . 80

(4)

7 Conclus˜oes 81 7.1 Trabalhos Futuros . . . 83

Trabalhos publicados 84

Referˆencias Bibliogr´aficas 85

(5)

Lista de Figuras

1.1 Exemplo de robˆos m´oveis . . . 2

1.2 Exemplo de robˆo m´ovel manipulador . . . 2

1.3 Vis˜ao geral de um jogo de futebol de robˆos . . . 5

1.4 Imagem do campo e dos robˆos desenvolvidos no LECA . . . 6

1.5 Arquitetura do sistema do futebol de robˆos . . . 7

3.1 (a)Sistema real (b)Sistema com o simulador . . . 19

3.2 Sistema completo de simula¸c˜ao . . . 20

3.3 Algoritmo do sistema simulador . . . 21

3.4 Algoritmo de simula¸c˜ao . . . 22

3.5 Diagrama esquem´atico do robˆo . . . 23

3.6 Exemplo das colis˜oes no simulador de futebol de robˆos: (a) colis˜ao robˆo-bola, (b) robˆo-parede e (c) robˆo-robˆo . . . 28

3.7 C´alculo dos v´ertices de um robˆo . . . 29

3.8 Centro de coordenadas deslocado . . . 30

3.9 Teste de colis˜ao entre dois robˆos . . . 30

3.10 Campo do futebol de robˆos . . . 31

3.11 Mudan¸ca dos eixos nas colis˜oes com as paredes . . . 31

3.12 Teste de colis˜ao entre a bola e uma parede . . . 32

3.13 (a)For¸ca atuando sobre corpo (b)Velocidade e orienta¸c˜ao da bola ap´os colis˜ao 33 3.14 (a)Colis˜ao frontal (b)Colis˜ao lateral . . . 35

3.15 Colis˜ao entre a bola e um robˆo . . . 35

3.16 Imagem mostrada pelo visualizador . . . 36

4.1 Diagrama do m´odulo . . . 39

(6)

4.2 (a)Obst´aculo simples, robˆo com dimens˜oes (b)Obst´aculo extendido, robˆo

pontual . . . 40

4.3 Configura¸c˜ao do obst´aculo . . . 40

4.4 Teste da possibilidade de colis˜ao . . . 41

4.5 C´alculo da nova trajet´oria . . . 41

4.6 Exemplo de desvio de obst´aculo . . . 42

4.7 (a)Teste da proximidade; (b)Obst´aculos fundidos . . . 43

4.8 (a)Problema na escolha da nova referˆencia; (b)Solu¸c˜ao com a fus˜ao de obst´aculos . . . 43

5.1 Hierarquia da t´atica . . . 46

5.2 Risco de gol . . . 48

5.3 Configura¸c˜ao dos pap´eis com a bola no ataque . . . 49

5.4 Configura¸c˜ao dos pap´eis com a bola no campo de defesa em dire¸c˜ao ao gol advers´ario . . . 51

5.5 Configura¸c˜ao dos pap´eis com a bola no campo de defesa em dire¸c˜ao ao gol defendido . . . 52

5.6 Comportamento dodefensor(a)bola indo em dire¸c˜ao ao gol (b)bola muito pr´oxima ao gol (c)bola se afastando do gol . . . 53

5.7 Comportamento do zagueiro . . . 54

5.8 Zonas de a¸c˜ao do atacante . . . 55

5.9 Diagrama de funcionamento do atacante . . . 56

5.10 Comportamento do atacante (a)Estado finalizar (b)Estado alinhar para toque (c)Estado tocar . . . 58

5.11 Alinhamento direto . . . 59

5.12 Alinhamento com tabela . . . 59

5.13 Teste de alinhamento . . . 60

5.14 Comportamento doatacante (a)Estado chutar (b)Estado conduzir . . . . 60

5.15 Comportamento doatacante (a)Estado pressionar (b)Estado bloquear . . 61

5.16 Comportamento doatacante (a)Estado contornar (b)Estado cobrir . . . . 62

5.17 Diagrama de funcionamento docuringa . . . 63

(7)

5.19 Decis˜ao do estilo de jogo . . . 65

6.1 Desvio de um ´unico obst´aculo . . . 69

6.2 Desvio de dois obst´aculos . . . 70

6.3 Desvio de dois obst´aculos fundidos . . . 71

6.4 Comportamento do robˆo no estado alinhar . . . 73

6.5 Comportamento do robˆo no estado chutar . . . 74

6.6 Comportamento do robˆo no estado defender . . . 75

6.7 Aloca¸c˜ao dinˆamica de pap´eis . . . 77

6.8 Aloca¸c˜ao dinˆamica de pap´eis . . . 78

6.9 Arvore de decis˜ao da t´atica simples . . . 79´

(8)

Resumo

Este trabalho apresenta o desenvolvimento de um m´etodo de coordena¸c˜ao e coopera¸c˜ao para uma frota de mini-robˆos m´oveis. O escopo do desenvolvimento ´e o futebol de robˆos. Trata-se de uma plataforma bem estruturada, dinˆamica e desenvolvida no mundo inteiro. O futebol de robˆos envolve diversos campos do conhecimento incluindo: vis˜ao computa-cional, teoria de controle, desenvolvimento de circuitos microcontrolados, planejamento cooperativo, entre outros.

A t´ıtulo de organiza¸c˜ao os sistema foi dividido em cinco m´odulos: robˆo, vis˜ao, loca-liza¸c˜ao, planejamento e controle. O foco do trabalho se limita ao m´odulo de planejamento. Para auxiliar seu desenvolvimento um simulador do sistema foi implementado. O simu-lador funciona em tempo real e substitui os robˆos reais. Dessa forma os outros m´odulos permancem praticamente inalterados durante uma simula¸c˜ao ou execu¸c˜ao com robˆos reais. Para organizar o comportamento dos robˆos e produzir a coopera¸c˜ao entre eles foi adotada uma arquitetura hierarquizada: no mais alto n´ıvel est´a a escolha do estilo de jogo do time; logo abaixo decide-se o papel que cada jogador deve assumir; associado ao papel temos uma a¸c˜ao espec´ıfica e finalmente calcula-se a referˆencia de movimento do robˆo. O papel de um robˆo dita o comportamento do robˆo na dada ocasi˜ao. Os pap´eis s˜ao alocados dinamicamente durante o jogo de forma que um mesmo robˆo pode assumir diferentes pap´eis no decorrer da partida.

(9)

Abstract

(10)

Cap´ıtulo 1

Introdu¸

ao

Os robˆos povoam o imagin´ario dos homens desde meados do s´eculo XX. Sejam robˆos mal´eficos de filmes cl´assicos como “Metropolis” de Fritz Lang e “2001, Uma Odiss´eia no Espa¸co” de Stanley Kubrick, passando pelos robˆos singulares das hist´orias de Isaac Asimov, at´e o menino robˆo do filme “IA”.

No mundo real, os robˆos ainda tˆem uma participa¸c˜ao muito menos fant´astica, por´em muito importante em nossas vidas. A rob´otica est´a presente em situa¸c˜oes onde se exige trabalho repetitivo, como montadoras de autom´oveis, e se aplica tamb´em em situa¸c˜oes de risco para a vida humana, como viagens explorat´orias ou limpeza de dutos de petr´oleo em alto-mar. Um outro ramo de atividade da rob´otica ´e a pesquisa acadˆemica: nesse caso, as aplica¸c˜oes pode parecer menos importante, como um c˜ao robˆo ou o futebol de robˆos. Entretanto, as solu¸c˜oes e tecnologias desenvolvidas nas universidades s˜ao fundamentais para a aplica¸c˜ao da rob´otica em todas as outras ´areas.

Os robˆos podem ser classificados como robˆos m´oveis ou robˆos manipuladores, de acordo com o modo que eles interagem com o meio que os cercam. Como os nomes sugerem, robˆos m´oveis s˜ao aqueles que podem se locomover em algum ambiente (figura 1.1), enquanto os robˆos manipuladores possuem ferramentas, i.e. uma garra, que podem interagir o ambiente. Devemos notar que um ´unico robˆo pode ter caracter´ısticas das duas classes (figura 1.2): a divis˜ao ´e feita porque os princ´ıpios de funcionamento das duas classes s˜ao bem diferentes.

(11)

CAP´ITULO 1. INTRODUC¸ ˜AO 2

Figura 1.1: Exemplo de robˆos m´oveis

Figura 1.2: Exemplo de robˆo m´ovel manipulador

rodas, esteiras e as patas. Neste trabalho, trataremos de robˆos m´oveis que se locomovem em meios terrestres dotados de rodas. Robˆos que se locomovem atrav´es de rodas s˜ao os mais simples de serem constru´ıdos, por´em os mais restritivos dentre os robˆos terrestres em rela¸c˜ao `as irregularidades do terreno. Por exemplo, dificilmente um robˆo dotado de rodas conseguir´a subir escadas cujos degraus sejam maiores que o raio das rodas. Robˆos human´oides tˆem toda a capacidade de adapta¸c˜ao ao terreno de um ser humano, por´em s˜ao muito mais dif´ıceis de implementar perfeitamente.

1.1

Sistemas Multi-Robˆ

os

(12)

CAP´ITULO 1. INTRODUC¸ ˜AO 3

diferencial entre sucesso ou fracasso do time inteiro.

Dois aspectos podem ser destacados no desenvolvimento de sistemas multi-robˆos: a coordena¸c˜ao e a coopera¸c˜ao. A coordena¸c˜ao acontece quando os robˆos de um mesmo grupo realizam suas pr´oprias tarefas sem a preocupa¸c˜ao de ajudar um ao outro. No entanto, se ocorrer alguma situa¸c˜ao em que os interesses de um dos robˆos conflitem com os interesses de outro, a situa¸c˜ao ser´a resolvida atrav´es de negocia¸c˜ao entre os robˆos n˜ao havendo preju´ızo para o time como um todo. A coopera¸c˜ao, por sua vez, ´e a capacidade de v´arios robˆos se unirem para realizar um objetivo maior. Na coopera¸c˜ao, ao inv´es de cada robˆo trabalhar em tarefas independentes, v´arios robˆos podem unir esfor¸cos a fim de realizar uma tarefa maior.

Uma terceira quest˜ao importante em sistemas multi-robˆos acontece em casos que ao inv´es de cooperar, os robˆos devam competir. Nesse caso, seja por recursos limitados ou por interesses conflitantes, os robˆos se encontram em situa¸c˜oes onde apenas um (ou um time) pode atingir seus objetivos. Essas situa¸c˜oes s˜ao facilmente encontradas em esportes (futebol, corrida, etc) ou por exemplo em situa¸c˜oes de sobrevivˆencia (recursos vitais limitados).

1.2

Futebol de Robˆ

os

O futebol de robˆos ´e um exemplo t´ıpico de um sistema multi-robˆos. Dois times, cada um composto por v´arios robˆos, os quais devem se organizar de modo a tentar garantir que seu time ven¸ca o jogo. Assim como no futebol humano, vence o jogo o time que marcar mais gols. Isso significa marcar gols e n˜ao permitir que o time advers´ario os marque. Esse ambiente inclui coordena¸c˜ao e coopera¸c˜ao com os companheiros de time, e competi¸c˜ao com os advers´arios.

Um dos primeiros registros sobre o futebol de robˆos data de 1992 pelo professor Allan Mackworth [1] da universidade British Columbia, Canad´a. Em 1995, o coreano Jong-Hwan Kim, professor do KAIST 1, propˆos `a comunidade cient´ıfica a cria¸c˜ao de um torneio de

futebol de robˆos, com o intuito de desenvolver pesquisa em todos os campos da rob´otica, reunir pesquisadores do mundo inteiro para trocar experiˆencias e atrair leigos e jovens

1

(13)

CAP´ITULO 1. INTRODUC¸ ˜AO 4

para o estudo dos robˆos. Em setembro de 1996, foi realizado o primeiro torneio oficial de futebol de robˆos em Daejeon, Korea, e no dia 5 de junho de 1997, junto com o segundo torneio, foi criada a FIRA2 [2], institui¸c˜ao que visava regulamentar os torneios anuais e

organizar um congresso concomitante. Em 1997 uma outra federa¸c˜ao, chamada RoboCup [3], foi estabelecida com o objetivo de “at´e o ano de 2050 desenvolver um time de robˆos human´oides totalmente autˆonomos capaz de vencer um jogo contra o campe˜ao mundial de futebol humano”. Inicialmente ambas as confedera¸c˜oes trabalhavam apenas com uma categoria de futebol de robˆos, atualmente existem cinco grandes categorias na FIRA (HuroSot, KheperaSot, MiroSot, NaroSot e RoboSot) e quatro na RoboCup (Small Size, Middle Size, 4-Legged e Humanoid) al´em de uma categoria de simula¸c˜ao. As categorias variam entre elas principalmente em rela¸c˜ao `a composi¸c˜ao do robˆo. Existem categorias para robˆos human´oides (b´ıpedes), para robˆos quadr´upedes e v´arias categorias que variam o tamanho e o n´umero de robˆos por equipe.

A categoria de futebol de robˆos escolhida para desenvolvimento no LECA3, a equipe

POTI [4], foi a Mirosot da FIRA. Essa decis˜ao se baseou no baixo custo de produ¸c˜ao devido as dimens˜oes dos robˆos e na ausˆencia de sensores. Al´em disso tivemos a possibi-lidade de desenvolver os robˆos no pr´oprio laborat´orio, o que reduz ainda mais os custos, facilita a manuten¸c˜ao al´em de contribuir para o desenvolvimento dos alunos de gradua¸c˜ao e p´os-gradua¸c˜ao envolvidos no projeto.

1.2.1

A Categoria

Mirosot

A categoriaMirosot de futebol de robˆos consiste em dois times com trˆes robˆos cada, onde um deles pode ser o goleiro. As dimens˜oes dos robˆos devem ser tais que caibam em um cubo com aresta 7,5cm. A bola de jogo ´e uma bola de golfe laranja.

Cada time pode possuir, al´em dos robˆos, uma cˆamera para a capta¸c˜ao das imagens do campo, localizada a uma altura igual ou superior a 2m, um computador para proces-samento de imagem, planejamento e controle dos robˆos e um sistema de comunica¸c˜ao via r´adio entre o computador e os robˆos. Uma vis˜ao geral do sistema de futebol de robˆos pode ser visto na figura 1.3.

2

Federation of International Robot-soccer Association

3

(14)

CAP´ITULO 1. INTRODUC¸ ˜AO 5

Figura 1.3: Vis˜ao geral de um jogo de futebol de robˆos

As regras do jogo em si s˜ao similares `a do futebol humano. O objetivo principal ´e fazer gols: o time que tiver feito mais gols no final da partida ser´a declarado vencedor. Todos os comandos enviados para os robˆos devem ser calculados pelo computador: nenhuma intera¸c˜ao de seres humanos com o computador ou os robˆos ´e permitida enquanto a bola estiver em jogo.

1.2.2

A equipe POTI

O futebol de robˆos ´e uma plataforma multidisciplinar envolvendo diversas ´areas do conhecimento como processamento digital de imagens, controle, programa¸c˜ao, microcon-troladores, eletrˆonica e logicamente a rob´otica, que por si s´o j´a engloba diversas ´areas. Nessa se¸c˜ao ser˜ao, mostrados resumidamente, todos os projetos que tˆem sido desenvolvi-dos em paralelo para chegar a um sistema de futebol de robˆos funcional e confi´avel.

Hardware

A estrutura f´ısica do futebol de robˆos ´e constitu´ıda do campo de madeira, as cˆameras para capta¸c˜ao das imagens, os refletores que possibilitam a ilumina¸c˜ao uniforme do campo, os robˆos, o m´odulo transmissor e o computador controlador. A figura 1.4 mostra uma imagem do campo com os robˆos.

(15)

CAP´ITULO 1. INTRODUC¸ ˜AO 6

Figura 1.4: Imagem do campo e dos robˆos desenvolvidos no LECA

duas pontes H para o acionamento dos motores, duas baterias de 9V, al´em dos diversos componentes discretos. O circuito transmissor ´e ligado ao computador atrav´es da porta paralela e possui um microcontrolador PIC16F877, um transmissor FM Radiometrix TX2 com capacidade de 9.6kbps e os componentes discretos.

Software

O sistema do futebol de robˆos ´e constitu´ıdo de diversos m´odulos que se interligam. Cada m´odulo foi desenvolvido separadamente em paralelo e todos os m´odulos s˜ao impres-cind´ıveis para o funcionamento do sistema como um todo. Podemos dividir o sistema em cinco m´odulos, denominados: robˆo, vis˜ao, localiza¸c˜ao, planejamento e controle. O funcionamento do sistema se d´a atrav´es da repeti¸c˜ao dos cinco passos descritos a seguir:

1. O m´odulo de vis˜ao (cˆamera) capta a configura¸c˜ao atual do campo (imagem); 2. O m´odulo de localiza¸c˜ao analisa a imagem e, com base nos r´otulos fixados sobre os

robˆos, estima as posturas (posi¸c˜oes e orienta¸c˜oes) dos robˆos e da bola;

3. A partir das posturas dos robˆos e da bola e de informa¸c˜oes sobre o jogo (tempo de jogo, placar, etc), o m´odulo de planejamento calcula qual comportamento dever´a ser adotado pelo time;

4. O m´odulo de controle traduz as informa¸c˜oes geradas pelo m´odulo de planejamento em valores de tens˜ao para os motores, compreens´ıveis pelos robˆos, e os transmite via r´adio;

5. Os robˆos recebem os dados e geram os valores de tens˜ao desejados para os motores (volta para o item 1).

(16)

CAP´ITULO 1. INTRODUC¸ ˜AO 7

Robô

Computador controlador

Planejamento Localização

Controle

Motores

Recepção

Transmissão via rádio

Visão

Figura 1.5: Arquitetura do sistema do futebol de robˆos

O protocolo de comunica¸c˜ao com os robˆos envia ciclicamente umstart byte seguido de seis bytes que contˆem as velocidades desejadas para os dois motores de cada um dos trˆes robˆos do time. Em cadabyte de velocidade, o primeirobit indica o sentido de rota¸c˜ao do motor e os sete bits restantes o valor da tens˜ao a ser aplicada, em percentual da tens˜ao m´axima. Cada robˆo leva em conta apenas os dois bytes que lhe dizem respeito.

1.2.3

O Sistema Simulador

Simuladores s˜ao comumente usados em diversas situa¸c˜oes nas quais s˜ao desacon-selh´aveis testes com sistemas reais, ou simplesmente para facilitar a fase de testes de um sistema. Entre esses sistemas podemos citar o desenvolvimento de avi˜oes. Seria de-sastroso realizar testes com prot´otipos de avi˜oes em tamanho real. Cada erro no projeto acarretaria na perda do avi˜ao e de milh˜oes de reais. Nesses casos os simuladores s˜ao in-dispens´aveis, garantindo um desenvolvimento mais barato, mais pr´atico e mais r´apido. ´E importante frisar que quanto mais real´ıstico for um simulador, mais confi´avel ser´a a fase de testes utilizando esse simulador.

A principal motiva¸c˜ao para o desenvolvimento de um simulador para o sistema de futebol de robˆos, foi a de facilitar os testes dos m´odulos de controle e planejamento. Com o simulador, os testes podem ser realizados em qualquer m´aquina que funcione com Linux, sem a necessidade de todo o aparato f´ısico como campo, refletores, cˆameras e robˆos, al´em de contornar o problema do consumo excessivo de baterias.

(17)

CAP´ITULO 1. INTRODUC¸ ˜AO 8

traum´atica poss´ıvel. Desse modo, trˆes aspectos foram tratados cuidadosamente e com as caracter´ısticas espec´ıficas do nosso sistema: modelagem dos robˆos, modelagem das co-lis˜oes e tempo de simula¸c˜ao. Al´em disso, o simulador foi desenvolvido de modo que n˜ao ´e necess´aria nenhuma adapta¸c˜ao ao programa de planejamento para transpor do simulado para o real. O simulador ser´a melhor detalhado no cap´ıtulo 3.

1.3

Objetivos do Trabalho

O objetivo deste trabalho ´e desenvolver um planejamento estrat´egico para uma frota de mini-robˆos m´oveis terrestres com o intuito de que eles cooperem entre eles em busca de um objetivo comum. Como plataforma ser´a usado o jogo de futebol de robˆos segundo as regras da categoria Mirosot da FIRA. Para tanto, desenvolveremos algumas t´aticas diferentes baseadas em diferentes paradigmas, a fim de chegar a uma t´atica vencedora.

1.4

Metodologia

A metodologia adotada foi, inicialmente realizar um pesquisa bibliogr´afica concomi-tante com o curso das disciplinas a fim de levantar o estado da arte. O passo seguinte foi desenvolver o simulador do sistema com o intuito de facilitar a fase de testes. Esse simu-lador deveria cumprir alguns pr´e-requisitos como o de possibilitar que as id´eias testadas no simulador pudessem ser transportadas para o sistema real sem que fossem necess´arias adapta¸c˜oes.

(18)

CAP´ITULO 1. INTRODUC¸ ˜AO 9

1.5

Organiza¸

ao do Trabalho

(19)

Cap´ıtulo 2

Sistemas Rob´

oticos Cooperativos

Sistemas multi agentes se tornam cada vez mais objeto de estudo pela comunidade cient´ıfica em todo mundo. Um fator que contribui para o crescimento do interesse nesse t´opico ´e que sistemas multi-agentes podem ser aplicados em ´areas diversas do conhe-cimento, como redes [5] e rob´otica, nos chamados sistemas multi-robˆos. Caso o pla-nejamento dos robˆos seja feita de forma centralizada, cada robˆo perde um pouco sua caracter´ıstica autˆonoma de agente e podemos tratar o grupo como um sistema rob´otico autˆonomo. Esses ´ultimos chamam a aten¸c˜ao pela possibilidade de aplica¸c˜ao em situa¸c˜oes reais como explora¸c˜ao a´erea, terrestre, aqu´atica ou espacial, trabalhos em ambientes hos-tis ou procura de sobreviventes em desastres. A seguir, na se¸c˜ao 2.1 ser˜ao apresentados alguns exemplos de trabalhos que est˜ao sendo desenvolvidos na ´area de multi-robˆos. Em seguida, a se¸c˜ao 2.2 tratar´a mais especificamente dos projetos que est˜ao sendo desenvol-vidos para o ambiente de futebol de robˆos.

2.1

Sistemas Multi-Robˆ

os

(20)

CAP´ITULO 2. SISTEMAS ROB ´OTICOS COOPERATIVOS 11

Ota e Arai [6] apresentam um m´etodo de coordena¸c˜ao onde, em um grupo de robˆos, cada indiv´ıduo tem a preocupa¸c˜ao de cumprir uma tarefa principal, que se restringe a se locomover para um certo local, e se manter a uma certa distˆancia fixa dos seus vizinhos. Desse modo, o grupo mant´em uma coes˜ao enquanto se movimenta. Desai et al [7] seguem a mesma linha de racioc´ınio, por´em eles trabalham com forma¸c˜oes dinˆamicas para o grupo que ´e liderado por um dos robˆos. O grupo ainda deve desviar de obst´aculos e voltar `a forma¸c˜ao desejada quando ultrapassar o obst´aculo.

J´a Lin [8] usa um algoritmo gen´etico para encontrar a solu¸c˜ao de uma tarefa de sele¸c˜ao de objetos. Uma outra abordagem usa exemplos de animais sociais na natureza como formigas [9]. Esses m´etodos geralmente demandam um certo tempo de execu¸c˜ao, sendo desaconselh´avel seu uso em sistema que funcionam em tempo-real.

Uma abordagem muito comum para a coordena¸c˜ao de times de robˆos, ´e divis˜ao da tarefa principal em v´arias sub-tarefas, e distribuir as sub-tarefas entre os robˆos [10, 11, 12, 13]. Desse modo cada robˆo se preocupa apenas em realizar uma tarefa menor, sem que necessariamente saiba o que os outros robˆos est˜ao fazendo. Com a divis˜ao temos tamb´em uma simplifica¸c˜ao das tarefas. Desse modo, tarefas maiores que s´o poderiam ser realizadas por um robˆo mais complexos podem ser realizadas por um grupo de robˆos simples. O grupo de robˆos acrescenta robustez, devido `a redundˆancia; velocidade, por serem v´arios robˆos fazendo o trabalho de um; e principalmente diminuir os custos do sistema por usar diversos robˆos de baixo custo ao inv´es de apenas um mais dispendioso.

Arai e Ota [14] classificam os sistemas multi-robˆoss atrav´es de dois aspectos: quem planeja equando planeja. O primeiro aspecto ´e dividido em centralizado e descentralizado. Em um sistema centralizado, o planejamento ´e realizado por um supervisor, enquanto que no descentralizado, cada robˆo ´e respons´avel por seu pr´oprio planejamento. A categoria quando planeja´e dividida emon-line eoff-line, ondeoff-line´e dito quando o planejamento ´e realizado a priori enquanto on-line ´e realizado no decorrer da a¸c˜ao.

2.2

Futebol de Robˆ

os

(21)

CAP´ITULO 2. SISTEMAS ROB ´OTICOS COOPERATIVOS 12

objetivo comum, vencer o jogo. Esse objetivo pode ser dividido em diversos objetivos menores como marcar gols, n˜ao tomar gols, ou ainda menores como defender ou chutar. Al´em disso ´e um ambiente extremamente dinˆamico e imprevis´ıvel, pois os obst´aculos s˜ao os robˆos advers´arios. Ou seja, ´e um ambiente que trabalha a coopera¸c˜ao (com os robˆos do pr´oprio time) e a competi¸c˜ao (com os robˆos advers´arios) em um ambiente dinˆamico que funciona em tempo-real.

Os primeiros trabalhos de coordena¸c˜ao nesse ambiente foram realizados antes do apa-recimento das duas grandes ligas de futebol de robˆos, FIRA e RoboCup. Foram trabalhos simples, onde geralmente se visava a coopera¸c˜ao de dois ou mais robˆos com um objetivo comum, empurrar uma bola para uma certa ´area, sem a presen¸ca de obst´aculos [1, 15].

Um conceito interessante que foi desenvolvido nos m´etodos de coopera¸c˜ao de futebol de robˆos foi a id´eia de papel (role) de um robˆo. O papel de um robˆo rege suas a¸c˜oes em cada momento do jogo, ou seja, diz quais a¸c˜oes ele deve tomar em cada situa¸c˜ao. Robˆos com pap´eis distintos podem tomar atitudes diferentes enfrentando a mesma situa¸c˜ao. A id´eia de pap´eis pode ser estendida para qualquer sistema multi-robˆoss [16]. No escopo do futebol de robˆos, podemos intuitivamente associar pap´eis com as posi¸c˜oes dos jogadores no futebol humano: teremos ent˜ao pap´eis como goleiro, defensor, meio-campo ou atacante. Apesar do objetivo global ser ganhar o jogo, cada uma dessas posi¸c˜oes tem tarefas, ou sub-objetivos, diferentes, como impedir que o time advers´ario fa¸ca gol, impedir que o time advers´ario chegue perto do gol, ou marcar gols. Desse modo todos os robˆos ter˜ao um objetivo definido e n˜ao conflitante. Algumas implementa¸c˜oes desse conceito trabalham com pap´eis fixos [17, 18, 19], ou seja, cada robˆo tem seu papel definido antes do jogo e permanece com o mesmo at´e o fim. Esse sistema peca pela falta de robustez e redundˆancia, como no caso de um dos robˆos vir a falhar fisicamente, j´a que nenhum outro robˆo ir´a assumir seu papel nas situa¸c˜oes necess´arias.

(22)

CAP´ITULO 2. SISTEMAS ROB ´OTICOS COOPERATIVOS 13

ser bem planejado para evitar falhas. Se no caso anterior, o defensor se encontra em uma posi¸c˜ao favor´avel para assumir o papel de meio-campista, ele inicia uma conversa¸c˜ao com o robˆo que se encontra com este papel. Caso algum dos dois robˆos perca uma das mensagens trocadas, o time pode passar a ter redundˆancia em um papel e carˆencia no outro. V´arios protocolos para tentar sanar esse problema j´a foram desenvolvidos [16]. O uso de aloca¸c˜ao dinˆamica de pap´eis junto com os de sele¸c˜ao de forma¸c˜ao dinˆamica, onde se define qual o esquema que o time ir´a jogar, tem gerado bons frutos em competi¸c˜oes [24, 21, 25, 26]

Lam et al [19] propuseram um m´etodo constitu´ıdo por um banco de dados de t´aticas e a¸c˜oes, e um mecanismo de sele¸c˜ao dessas t´aticas. Nesse caso, o banco de dados possui duas sub-divis˜oes: t´aticas de ataque e t´aticas de defesa. As t´aticas de ataque s˜ao utilizadas quando o time possuir a posse da bola e as de defesa quando o time advers´ario possuir a bola. As t´aticas s˜ao ordenadas por sua agressividade: a primeira t´atica de ataque ´e a menos ofensiva e a ´ultima a mais ofensiva. A grande contribui¸c˜ao desse m´etodo ´e o modo de sele¸c˜ao da t´atica baseada inteiramente em probabilidades estat´ısticas.

A IA tamb´em ´e muito utilizada na tentativa de gerar uma estrat´egia cooperativa ade-quada para o futebol de robˆos. Agah e Tanie [27] propuseram uma t´ecnica evolucion´aria atrav´es de algoritmos gen´eticos. Ele prop˜oe um m´etodo chamado arquitetura cognitiva baseada em tropismos1, onde cada tropismo ´e um comportamento que o robˆo deve ter em uma determinada situa¸c˜ao. Com um simulador simples, v´arios jogos simultˆaneos s˜ao realizados. `A medida que as popula¸c˜oes evoluem, os tropismos mais adequados s˜ao exal-tados, enquanto que os menos apropriados s˜ao extintos. Esse m´etodo exige um vasto tempo de treinamento a fim de encontrar uma t´atica ´otima e, al´em de n˜ao se adaptar ao advers´ario, exige extremo cuidado na sele¸c˜ao dos exemplos de treinamento.

Outra aplica¸c˜ao de IA na coordena¸c˜ao de times multi-robˆos ´e a utiliza¸c˜ao de l´ogica difusa [28, 29, 30, 31]. Sng [31] usa parˆameros como distˆancia at´e a bola e orienta¸c˜ao do robˆo para definir, com a l´ogica difusa, qual o robˆo mais apto para chutar a bola. A l´ogica difusa tamb´em ´e utilizada para definir quais pap´eis cada robˆo deve assumir e suas posi¸c˜oes no campo. De la Rosa et al [32] tamb´em usam um m´etodo de decis˜ao difusa

1

tropismo: Rea¸c˜ao de organismos que consiste na mudan¸ca de orienta¸c˜ao determinada por est´ımulos

(23)

CAP´ITULO 2. SISTEMAS ROB ´OTICOS COOPERATIVOS 14

baseado em parˆametros como distˆancia para a bola e distˆancia para o gol. A diferen¸ca desse ´ultimo trabalho ´e que toda a programa¸c˜ao ´e realizada em ambientes orientados a agentes, onde um agente (robˆo) ´e definido por suas cren¸cas, desejos e inten¸c˜oes. Hoje em dia existem v´arias linguagens de programa¸c˜ao experimentais orientadas a agentes, por´em nenhuma delas est´a bem estabelecida.

Wang et al [33] definem a id´eia de coopera¸c˜ao ideal como sendo confi´avel, escalar, volunt´aria e evolucion´aria. Nessa defini¸c˜ao, confiabilidade significa manter uma coerˆencia em situa¸c˜oes semelhantes e ser capaz de manter o sistema funcionando se algum dos agentes falhar. Coopera¸c˜ao escalar no sentido de possuir coopera¸c˜ao local, onde a¸c˜oes influenciam diretamente o agente, e coopera¸c˜ao global, onde a¸c˜oes influenciam o time como um todo. A voluntariedade significa que o agente seja capaz de perceber sozinho uma oportunidade de coopera¸c˜ao. E evolucion´aria por ser capaz de melhorar a performance do time atrav´es de treinamento.

Uma abordagem comumente utilizada ´e a organiza¸c˜ao das a¸c˜oes em camadas [34, 35, 36]. Na camada mais baixa, no n´ıvel dos robˆos, as a¸c˜oes s˜ao praticamente atˆomicas tais como mover de um ponto a outro ou mudar de orienta¸c˜ao. A medida que se sobe nas camadas, podemos ver a¸c˜oes mais elaboradas que se utilizam das inferiores como chutar a bola ou bloquear a bola. Percebe-se que para chutar a bola o robˆo precisa se mover at´e o ponto da bola, por´em quem ir´a se preocupar com isso ´e a camada inferior. No n´ıvel superior, as a¸c˜oes podem tomar dimens˜oes de grupo como mudar para esquema defensivo. Com esse tipo de organiza¸c˜ao ´e poss´ıvel simplificar cada camada, evitando erros por complexidade.

A aprendizagem por refor¸co tamb´em se faz muito presente em v´arios trabalhos de coordena¸c˜ao de futebol de robˆos. Geralmente a aprendizagem ´e utilizada como m´etodo de aperfei¸coamento, sendo usada junto com outras t´ecnicas como decis˜ao por camadas [35], m´aquinas de estados [37] ou como m´etodo de previs˜ao para pr´oximas jogadas de advers´arios [38]. Em outros casos, a aprendizagem pode ser utilizada como principal m´etodo de decis˜ao: Park [39] usa o Q-Learning para sele¸c˜ao de a¸c˜oes e Hu [40] usa uma rede neural com treinamento off-line.

(24)

CAP´ITULO 2. SISTEMAS ROB ´OTICOS COOPERATIVOS 15

baseado em holons, que s˜ao blocos de controle auto-ajust´aveis, permitindo uma maior resistˆencia a perturba¸c˜oes. Park et al [42] utilizam um algoritmo simples tipo dividir e conquistar. Hrabec e Honz´ık [43] utilizam um m´etodo simples de decis˜ao por ´arvore, onde as folhas s˜ao as a¸c˜oes a serem tomadas. E Kim et al [17] usam sele¸c˜ao de a¸c˜ao atrav´es de uam rede Perceptron com m´ultiplas camadas.

Al´em de m´etodos de coordena¸c˜ao de times como um todo, muitos trabalhos s˜ao de-senvolvidos no sentido de aprimorar tarefas espec´ıficas no jogo, tais como comportamento do goleiro [44], passar a bola entre jogadores [45, 46], chute a gol [47, 48], al´em de diversas t´ecnicas para desvio de obst´aculos [45, 49, 50, 51, 48].

2.3

Discuss˜

ao

Dentre as solu¸c˜oes encontradas, o conceito de pap´eis parece ser bem apropriado para o problema em quest˜ao. Com a ado¸c˜ao de pap´eis, cada robˆo possui um conjunto limitado de a¸c˜oes para tomar, tornando o planejamento mais simples e r´apido do que seria em um sistema em que cada robˆo devesse ponderar todas as op¸c˜oes. Por outro lado, com a aloca¸c˜ao dinˆamica de pap´eis, essa mesma abordagem que a primeira vista se tornaria r´ıgida e limitante, se mostra bem mais flex´ıvel, pois cada robˆo assume o papel mais adequado para sua atual situa¸c˜ao.

A id´eia da organiza¸c˜ao do planejamento em camadas tamb´em parece promissora, pois dessa forma podemos trabalhar com pap´eis mais abrangentes, simplificando a distribui¸c˜ao dos pap´eis e possibilitando um refinamento das atribui¸c˜oes dos pap´eis em uma ou mais camadas inferiores.

(25)

CAP´ITULO 2. SISTEMAS ROB ´OTICOS COOPERATIVOS 16

apresentado bons resultados em competi¸c˜oes de ˆambito nacional e internacional.

(26)

Cap´ıtulo 3

Simulador

Os simuladores s˜ao muito utilizados em sistemas rob´oticos, tanto com robˆos m´oveis quanto com manipuladores, como uma ferramenta auxiliar durante seu desenvolvimento. Simuladores s˜ao programas desenvolvidos com base nas caracter´ısticas reais do objeto a ser simulado (no caso um robˆo), e nas caracter´ısticas do meio pelo qual o objeto ´e cercado. Com o aux´ılio de um simulador ´e poss´ıvel verificar o comportamento de um robˆo, bem como sua intera¸c˜ao com o meio, sem que sejam necess´arios experimentos reais. Simuladores permitem que sejam realizados testes de viabilidade de um projeto sem o custo de tempo e financeiro para o desenvolvimento de um prot´otipo ou do pr´oprio sistema. Mesmo com um sistema j´a finalizado e funcional, os simuladores s˜ao ferramentas ´uteis na realiza¸c˜ao de experimentos sem a necessidade da disponibiliza¸c˜ao do aparato f´ısico, tornado-os mais f´aceis e menos custosos.

(27)

CAP´ITULO 3. SIMULADOR 18

a forma real do robˆo, por´em a dinˆamica da colis˜ao ´e ignorada e o processamento p´ara no momento em que alguma colis˜ao ´e detectada.

O objetivo do desenvolvimento deste simulador ´e substituir testes nos robˆos reais por testes no simulador. Para tanto precisamos de um simulador real´ıstico o suficiente para que n˜ao haja muitas diferen¸cas na transi¸c˜ao do mundo simulado para o real. O simulador proposto tem, portanto, alguns pr´e-requisitos. O primeiro deles ´e que, uma vez que o planejamento ser´a desenvolvido para os robˆos da equipe POTI, o simulador deve ser implementado com base em um modelo real´ıstico dos robˆos. O segundo aspecto importante ´e que o simulador deve funcionar em tempo real. Isso ´e importante para que os outros m´odulos do sistema possam se comunicar com o simulador do mesmo modo que se comunicariam com o sistema real. Al´em disso, o simulador deve detectar e tratar as colis˜oes recorrentes entre os robˆos, a bola e as paredes [55]. Na se¸c˜ao 3.1 ser´a mostrado como o simulador foi implementado e como ele se encaixa no sistema como um todo. A se¸c˜ao 3.2 falar´a sobre a modelagem matem´atica do robˆo e a se¸c˜ao 3.3 tratar´a os m´etodos de detec¸c˜ao e tratamento das colis˜oes desenvolvidos.

3.1

Estrutura do Simulador

O simulador foi projetado de modo a ser transparente ao resto do sistema. Nenhum dos outros m´odulos citados na se¸c˜ao 1.2 age de maneira diferente quando o sistema est´a funcionando com o simulador ou com os robˆos reais. Essa caracter´ıstica permite que os programas testados com o simulador sejam transferidos para o sistema real sem que sejam necess´arias adapta¸c˜oes.

As duas ´unicas diferen¸cas do sistema como um todo quando se utiliza o simulador ou os robˆos reais s˜ao a transmiss˜ao de dados e a obten¸c˜ao da imagem do campo. No sistema real, os sinais de controle s˜ao calculados pelo computador s˜ao enviados via r´adio para os robˆos. No sistema simulado os sinais s˜ao enviados via rede. S˜ao utilizados pipes e os dados s˜ao coletados via sockets.

(28)

CAP´ITULO 3. SIMULADOR 19

a ´unica informa¸c˜ao da posi¸c˜ao atual dos robˆos reside no pr´oprio simulador. Nesse caso, o simulador fornece informa¸c˜oes que permitem gerar uma imagem artificial do campo e dos robˆos nas suas devidas posturas (posi¸c˜ao e orienta¸c˜ao), e as envia para o computador controlador. O m´odulo de localiza¸c˜ao ir´a tratar a imagem artificial do mesmo modo que trataria uma imagem real. Uma vez encontradas as posturas dos robˆos e a posi¸c˜ao da bola, esse m´odulo fornece as informa¸c˜oes para o resto do sistema sem altera¸c˜oes em rela¸c˜ao ao sistema real.

A figura 3.1(a) mostra o sistema real j´a exibido na se¸c˜ao 1.2 e a figura 3.1(b) mostra de maneira an´aloga, como o simulador se encaixa no sistema. Pode-se perceber que as ´unicas diferen¸cas no computador controlador s˜ao os modos de transmiss˜ao e a capta¸c˜ao/gera¸c˜ao da imagem. A cria¸c˜ao da imagem artificial funciona como um pr´e-processamento para o sistema, n˜ao afetando em nada seu funcionamento. A utiliza¸c˜ao do simulador ou dos robˆos reais ´e indiferente para o funcionamento dos m´odulos do computador controlador.

Robô

Computador controlador Computador controlador Computador simulador

de imagem Geração

Planejamento Planejamento

(a) (b)

Localização

Controle

Motores

Recepção

Transmissão via rádio

Localização

Controle

Transmissão via rede

Simulação

Visão Transmissão

via rede

Figura 3.1: (a)Sistema real (b)Sistema com o simulador

3.1.1

O Sistema de Simula¸

ao

(29)

CAP´ITULO 3. SIMULADOR 20

atrasos, ou um grande consumo de tempo, do visualizador comprometam as caracter´ısticas de tempo real do simulador.

Visualizador Comunica¸c˜ao Simulador

viasocket

Figura 3.2: Sistema completo de simula¸c˜ao

O programa simulador funciona com dois processos em paralelo: um ´e respons´avel apenas pela comunica¸c˜ao com o controlador e o outro realiza a simula¸c˜ao propriamente dita. O processo de comunica¸c˜ao cria dois sockets de comunica¸c˜ao com cada time: o primeiro recebe os sinais de controle enviados pelo controlador e o segundo envia as in-forma¸c˜oes para a constru¸c˜ao das imagens artificiais do campo. O per´ıodo de amostragem do sistema (T) ´e de 33ms. Sempre que esse per´ıodo ´e alcan¸cado, as posi¸c˜oes e orienta¸c˜oes dos robˆos e da bola s˜ao calculados, armazenados e disponibilizados via socket para o computador controlador. Esse processo simula o comportamento da cˆamera que captura uma nova imagem do campo a cada 33mse a disponibiliza para o sistema. Uma vari´avel chamada sobra´e criada com o intuito de zerar o erro cumulativo que aconteceria a cada per´ıodo de amostragem. Esse atraso ´e decorrente do fato do simulador n˜ao levar exata-mente 33msde processamento. O algoritmo da figura 3.3 mostra de maneira simplificada o funcionamento do simulador.

A simula¸c˜ao propriamente dita ´e feita utilizando um m´etodo de integra¸c˜ao num´erica como o de Euler e o Runge-Kutta de quarta ordem [56]. A cada per´ıodo de amostragem s˜ao simulados 33msa partir do t´ermino da simula¸c˜ao anterior. A cada passo de simula¸c˜ao novas poses dos robˆos e da bola s˜ao calculados e em seguida ´e verificado se, com as novas posi¸c˜oes, ocorreu alguma colis˜ao. Caso tenha ocorrido, as corre¸c˜oes necess´arias de posi¸c˜ao e velocidade s˜ao realizadas. O algoritmo da figura 3.4 ilustra a utiliza¸c˜ao do m´etodo de Euler, onde x representa o vetor de estados nas equa¸c˜oes matem´aticas que descrevem os modelos do robˆo e da bola e delta t´e o passo de integra¸c˜ao:

(30)

CAP´ITULO 3. SIMULADOR 21

Repetir

| t = relogio

| dt = t - t_ant + sobra

| Se dt >= T

| | Simula at´e t_ant + T

| | t_ant = t

| | sobra = dt - T

| | Salva posi¸c~ao dos rob^os e bola

| | Envia informa¸c~oes para o computador controlador

| Sen~ao

| | sobra = sobra + dt

| | t_ant = t

| Fim_Sen~ao

| Se chegou novo sinal de controle

| | Atualiza tens~oes

| Fim_Se

| Dorme 10ms

Fim_Repetir

(31)

CAP´ITULO 3. SIMULADOR 22

t,t_atual,delta_t

Ler t_atual

Enquanto t < t_atual:

| Calcular dx

| x <- x + dx*delta_t

| Testar colis~oes:

| | Bola com cada parede

| | Para cada rob^o:

| | | Rob^o com cada parede

| | | Rob^o com bola

| | | Rob^o com cada rob^o

| | Se colis~ao

| | | Alterar x

| | | Tratar colis~ao

| | fim_Se

| t <- t + delta_t

fim_Enquanto

(32)

CAP´ITULO 3. SIMULADOR 23

objetivo captar as condi¸c˜oes de ilumina¸c˜ao do ambiente. Durante o jogo, a cada per´ıodo de amostragem o simulador gera e envia as posturas atuais dos jogadores e da bola. O m´odulo de gera¸c˜ao de imagem, localizado no computador controlador, recebe as posturas e desenha os robˆos e a bola em cima da imagem do campo vazio j´a armazenada. Uma vez montada, a imagem ´e passada para o m´odulo de localiza¸c˜ao e o processamento segue como se o sistema estivesse tratando com uma imagem real.

3.2

Modelagem Matem´

atica do Robˆ

o

Para que um simulador possa se tornar uma ferramenta confi´avel para o desenvol-vimento do planejamento de coopera¸c˜ao, ´e necess´ario que os robˆos simulados possuam respostas bastante fi´eis em rela¸c˜ao aos robˆos reais. Para tanto, ´e necess´ario o levanta-mento de um modelo matem´atico preciso do robˆo.

Esta se¸c˜ao descreve o modelo matem´atico de um robˆo c´ubico com aresta de 7,5cm, com duas rodas acionadas diferencialmente por dois motores de corrente cont´ınua com acoplamento direto como visto em Guerra et al [57], conforme esquema da figura 3.5. As principais grandezas envolvidas na modelagem est˜ao descritas a seguir, onde os ´ındices d

e e dizem respeito ao lado direito e esquerdo, respectivamente.

x y

b

τ, ω τd, ωd τe, ωe

rd re

Fe, ve

F, v

Fd, vd θ

Figura 3.5: Diagrama esquem´atico do robˆo

Grandezas dinˆamicas para a modelagem do robˆo:

(33)

CAP´ITULO 3. SIMULADOR 24

θ - orienta¸c˜ao do robˆo

b - distˆancia entre as duas rodas

rd, re - raios das rodas

ωd, ωe - velocidades angulares das rodas

ω - velocidade angular do robˆo

vd,ve - velocidades lineares na borda das rodas

v - velocidade linear do robˆo

τd, τe - torques nas rodas

τ - torque resultante no robˆo

fd, fe - for¸cas na borda das rodas

f - for¸ca resultante no robˆo

ed, ee - tens˜oes de armadura nos motores

id, ie - correntes de armadura nos motores

Rd, Re - resistˆencia de armadura nos motores

Kd, Ke - constantes contra-eletromotrizes nos motores

Jd, Je - momento de in´ercia dos rotores dos motores

J - momento de in´ercia do robˆo

βd, βe - coeficiente de atrito nos motores

βl - coeficiente de atrito viscoso linear no robˆo

βθ - coeficiente de atrito viscoso angular no robˆo

m - massa do robˆo

3.2.1

Modelagem Cinem´

atica

A rela¸c˜ao entre as velocidades no espa¸co de atuadores (ωr) e no referencial do robˆo

(ω) ´e:

v=v

Tω·ωr →ωr = ω

Tv·v (3.1)

onde: v= ⎡ ⎣ ν ω ⎤

⎦ ωr =

⎡ ⎣ ωd ωe ⎤ ⎦ v

Tω=

rd/2 re/2

rd/b −re/b

(34)

CAP´ITULO 3. SIMULADOR 25

lateralmente. Assim, o robˆo s´o pode se movimentar na dire¸c˜ao em que est´a orientado. Esta restri¸c˜ao ´e expressa matematicamente como:

dy

dx =

sinθ

cosθ ⇒y˙cosθ−x˙sinθ= 0 (3.2)

A rela¸c˜ao entre velocidades no referencial do robˆo e velocidades em espa¸co de configura¸c˜ao ´e dada por:

˙ q=qT

v·v (3.3)

onde: ˙ q= ⎡ ⎢ ⎢ ⎢ ⎣ ˙ x ˙ y ˙ θ ⎤ ⎥ ⎥ ⎥ ⎦ q

Tv =

⎢ ⎢ ⎢ ⎣

cosθ 0 sinθ 0

0 1 ⎤ ⎥ ⎥ ⎥ ⎦

3.2.2

Modelagem Dinˆ

amica

A partir das restri¸c˜oes n˜ao-holˆonomicas, a seguinte rela¸c˜ao entre esfor¸cos em espa¸co de atuadores τ e esfor¸cos no referencial do robˆo fθ ´e obtida:

fθ

TTv ·τ ⇒τ =vTT

ω·fθ (3.4)

onde:

fθ =

τθ

⎦ τ =

⎡ ⎣ τd τe ⎤ ⎦ ω

TTv =

1/rd 1/re

b/2rd −b/2re

A dinˆamica dos atuadores (motores) ´e dada pelas equa¸c˜oes el´etricas (3.5) abaixo. A modelagem dos atritos leva em conta apenas o atrito viscoso linear e despreza os efeitos n˜ao-lineares (atrito seco e de Coulomb).

i=−ρKrωr+ρe τ =Kr·i−Jrω˙r−β

rωr (3.5)

onde: i= ⎡ ⎣ id ie ⎤

⎦ ωr=

ωd

ωe

⎦ e=

⎡ ⎣ ed ee ⎤ ⎦

Kr =

Kd 0

0 Ke

⎦ βr =

βd 0

0 βe

ρ=

1/Rd 0

0 1/Re

⎦ Jr =

Jd 0

0 Je

(35)

CAP´ITULO 3. SIMULADOR 26

A equa¸c˜ao de movimento do robˆo pode ser obtida a partir das leis de Newton e Euler:

fθ =JR·v˙ +βR·v (3.6)

onde:

JR=

m 0

0 J ⎤

⎦ βR =

βl 0

0 βθ

Substituindo as equa¸c˜oes de dinˆamica de atuadores (3.5) na equa¸c˜ao de movimento do robˆo (3.6), obt´em-se a equa¸c˜ao 3.7 que expressa, no referencial do robˆo, o comportamento dinˆamico do robˆo.

K·e=M·v˙ −B·v (3.7)

onde:

K=ω

TTv ·ρ·Kr M=JR+ωTT

v ·J ω

rTv

B=βR

TTv[ρ·K2

r+βr]·

ω

Tv

O modelo descrito acima pode ser representado no espa¸co de estados pela equa¸c˜ao 3.8 a seguir: ⎧ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎨ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎩ ⎡ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ˙ v ˙ ω ˙ x ˙ y ˙ θ ⎤ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ = ⎡ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣

−M−1B ... 0 . . . .

cos(θ) 0 sin(θ) 0

0 1 ... 0 ⎤ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎡ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ v ω x y θ ⎤ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ + ⎡ ⎢ ⎢ ⎢ ⎣

M−1K . . . . 0 ⎤ ⎥ ⎥ ⎥ ⎦ ⎡ ⎣ ed ee ⎤ ⎦ y= ⎡ ⎢ ⎢ ⎢ ⎣

0 0 1 0 0 0 0 0 1 0 0 0 0 0 1

(36)

CAP´ITULO 3. SIMULADOR 27

A partir do modelo em espa¸co de estados descrito pela equa¸c˜ao 3.8, podemos deduzir a matriz de transferˆencia discreta G(z).

L(z)

θ(z)

⎦= ⎡

G11(z) G12(z)

G21(z) G22(z)

⎦ ⎡

Ed(z)

Ee(z)

onde cada Gij(z) possui a seguinte estrutura

Gij(z) =

Nij(z)

D(z) =

γijz2+δijz+εij

(z−1)(z2+α1z+α2) →

Gij(z) =

γijz2+δijz+εij

z3z2+α

1(z2−z) +α2(z−1)

(3.9)

Atrav´es das equa¸c˜oes 3.9 podemos chegar `as equa¸c˜oes 3.10, onde os parˆametros αi,

γij, δij eεij, com i, j = 1,2, s˜ao encontrados atrav´es de m´etodos de identifica¸c˜ao simples

como os m´ınimos quadrados.

∆lk =−α1∆lk−1−α2∆lk−2+γ11ed,k−1+δ11ed,k−2+ε11ed,k−3+

+γ12ee,k−1+δ12ee,k−2+ε12ee,k−3

∆θk =−α1∆θk−1−α2∆θk−2+γ21ed,k−1+δ21ed,k−2+ε21ed,k−3 +

+γ22ee,k−1+δ22ee,k−2+ε22ee,k−3

(3.10)

onde ∆lk=lk−lk−1 ´e distˆancia percorrida em um passo de amostragem, ∆θk =θk−θk−1

´e o incremento angular na orienta¸c˜ao do robˆo no mesmo per´ıodo, ed,k e ee,k s˜ao os sinais

de entrada da planta (tens˜ao nos motores direito e esquerdo, respectivamente) no instante

k. As equa¸c˜oes 3.10 s˜ao usadas para a simula¸c˜ao. Mais detalhes sobre a obten¸c˜ao desse modelo e sobre a identifica¸c˜ao dos parˆametros podem ser vistos em Guerra et al [58].

3.3

Tratamento das Colis˜

oes

No jogo de futebol de robˆos, devido ao dinamismo, rapidez e espa¸co f´ısico limitado, as colis˜oes s˜ao situa¸c˜oes freq¨uentes, sejam elas entre robˆos ou envolvendo a bola e as paredes. Por isso, de modo a garantir um maior realismo no simulador, foi necess´ario tratar essas colis˜oes. O tratamento de uma colis˜ao inclui sua detec¸c˜ao e sua modelagem.

(37)

CAP´ITULO 3. SIMULADOR 28

(b) (c)

(a)

Figura 3.6: Exemplo das colis˜oes no simulador de futebol de robˆos: (a) colis˜ao robˆo-bola, (b) robˆo-parede e (c) robˆo-robˆo

3.3.1

Detec¸

ao de Colis˜

oes

Para detec¸c˜ao das colis˜oes algumas simplifica¸c˜oes foram adotadas a fim de reduzir o tempo de execu¸c˜ao de cada passo do programa. Nas colis˜oes robˆo-parede, assume-se que os robˆos batem apenas com seus v´ertices; nas colis˜oes robˆo-robˆo, adota-se que ´e sempre um dos v´ertices de um robˆo que bate em uma das faces do outro. Essas simplifica¸c˜oes s˜ao feitas assumindo-se que os demais poss´ıveis tipos de colis˜ao (por exemplo, uma colis˜ao perfeitamente frontal dentre dois robˆos) tˆem uma probabilidade m´ınima de acontecer.

Al´em dessas simplifica¸c˜oes, a cada passo ´e realizada uma filtragem por proximidade. De posse das posi¸c˜oes dos centros dos robˆos e da bola, ´e poss´ıvel eliminar colis˜oes im-poss´ıveis devido `a distˆancia entre os objetos. Essa filtragem diminui o n´umero de testes e o tempo de processamento, quest˜ao fundamental em um sistema funcionando em tempo real.

A cada passo devemos inicialmente calcular a posi¸c˜ao dos quatro v´ertices de cada robˆo. De posse da posi¸c˜ao do centro do robˆo, da sua orienta¸c˜ao em rela¸c˜ao ao centro de coordenadas do campo e da dimens˜ao das arestas dos robˆos (figura 3.7), podemos facilmente calcular as posi¸c˜oes xj eyj dos quatro v´ertices (j = 0,1,2,3) dos robˆos atrav´es

das equa¸c˜oes 3.11:

⎧ ⎨

xj =xc +√b

2 ·cos(θ+ 45

o+ 90o·j)

yj =yc+ √b

2 ·sin(θ+ 45

o+ 90o·j) (3.11)

(38)

CAP´ITULO 3. SIMULADOR 29 robˆo. 0 yc xc b b 2 1 3 θ

Figura 3.7: C´alculo dos v´ertices de um robˆo

Colis˜ao robˆo-robˆo

Para testar se ocorreu ou n˜ao colis˜ao entre robˆos, deve-se verificar se cada v´ertice de cada robˆo se encontra dentro da regi˜ao delimitada pelas quatro semi-retas que definem o outro robˆo. O m´etodo de detec¸c˜ao desenvolvido desloca o centro do eixo de coordenadas do centro do campo para um dos v´ertices de um dos robˆos a serem testados. Esse centro de coordenadas ´e rotacionado de forma que eixosxeys˜ao as duas arestas do robˆo adjacentes a este v´ertice. A figura 3.8 mostras essa mudan¸ca de eixo, xc e yc s˜ao as coordenadas

do centro dos novos eixos e θ o ˆangulo de rota¸c˜ao do novo centro em rela¸c˜ao aos eixos globais. Transformamos ent˜ao o ponto que se deseja testar (xv,yv), ou seja o v´ertice do

outro robˆo, para o eixo de coordenadas calculado no robˆo (xp,yp). atrav´es das equa¸c˜oes:

xp =

(xv−xc)2+ (yv−yc)2·cos

tan−1 yv

−yc

xv−xc

−θ

yp =

(xv−xc)2+ (yv−yc)2·sin

tan−1 yv

−yc

xv−xc

−θ

Pela figura vemos que se 0 < xp < L e 0 < yp < d houve colis˜ao, sen˜ao n˜ao houve.

As dimens˜oes L e d s˜ao os lados do robˆo e xp e yp s˜ao as coordenadas do ponto a ser

(39)

CAP´ITULO 3. SIMULADOR 30

yc

xc xv

yv P

xp

yp

θ L

d

Figura 3.8: Centro de coordenadas deslocado

figura 3.9 podemos ver que embora nenhum v´ertice do robˆo 1 esteja em contato com o robˆo 2, existe a colis˜ao entre os dois robˆos.

Robô 1 Robô 2

3

2 1

1

2 3

0

0

Figura 3.9: Teste de colis˜ao entre dois robˆos

Colis˜ao robˆo-parede

A parede que envolve o campo pode ser dividida em dezesseis segmentos de retas como mostra a figura 3.10. O teste das colis˜oes dos robˆos com as paredes dever´a ser feito com cada um dos segmentos separadamente. De modo a diminuir o n´umero de testes, nesse tipo de colis˜ao tamb´em ´e realizada uma filtragem por proximidade inibindo testes com robˆos muito distantes da parede.

(40)

CAP´ITULO 3. SIMULADOR 31

16 2

5

7

8

9

14

12 13

11

10 4

6

1

15 3

v4 v1

v3 v2

Figura 3.10: Campo do futebol de robˆos

eixo das abcissas ´e perpendicular `a parede. A figura 3.11 ilustra a posi¸c˜ao do novo centro de coordenadas para o segmento 3 da parede. O novo eixo ser´a rotacionado em 180o e ter´a

seu centro em (xc,yc). Nesse tipo de colis˜ao, a parede pode ser tratada da mesma forma

que tratamos um robˆo na se¸c˜ao 3.3.1. Entretanto nesse caso a largura do obst´aculo (d) possui o tamanho do segmento de reta da parede e adotamos L com dimens˜oes infinitas, uma vez que o v´ertice nunca poderia ultrapassar a dimens˜ao da parede.

d

(xc,yc)

L

180o

Figura 3.11: Mudan¸ca dos eixos nas colis˜oes com as paredes

Os quatro v´ertices dos gols (v1,v2,v3 e v4 na figura 3.10) s˜ao testados como se fossem

(41)

CAP´ITULO 3. SIMULADOR 32

Colis˜ao bola-parede

O teste de colis˜ao da bola com as paredes acontece de maneira similar `a dos robˆos com as paredes. O eixo ´e deslocado para as paredes e o ponto a ser testado (xp, yp) ´e a

posi¸c˜ao do centro da bola (xb, yb), somado com a raio da bola (r) na dire¸c˜ao perpendicular

ao novo eixo de coordenadas, figura 3.12. No caso dos quatro v´ertices dos gols calcula-se simplesmente a distˆancia euclidiana entre o ponto e o centro da bola.

r

y x

(xp,yp)

(xb,yb)

Figura 3.12: Teste de colis˜ao entre a bola e uma parede

Colis˜ao robˆo-bola

A colis˜ao da bola com os robˆos ´e quase idˆentica `a da bola com as paredes. Nesse tipo de colis˜ao, o eixo de coordenadas ´e sempre deslocado para o robˆo e o ponto a ser testado segue o mesmo esquema da figura 3.12 usado na colis˜ao entre a bola e as paredes.

3.3.2

Modelagem das Colis˜

oes

Durante uma colis˜ao, um corpo sofre o efeito de uma for¸ca de grande intensidade F

(F → ∞) e fase β, durante um pequeno intervalo de tempo ∆t (∆t → 0). F e ∆t n˜ao podem ser determinados, mas supondo uma colis˜ao perfeitamente el´astica, o momento

P (P = F ·∆t) pode ser calculado a partir do fato que a energia cin´etica total antes e depois da colis˜ao se manter constante. A fase β pode ser determinada a partir do plano da colis˜ao, pois a for¸ca ´e sempre perpendicular a este plano. De posse do momento P

e da massa do corpo m, podemos calcular a mudan¸ca de velocidade resultante da for¸ca fazendo:

F =m·a→F =m· ∆v

∆t →∆v =

F ·∆t

(42)

CAP´ITULO 3. SIMULADOR 33

como:

F ·∆t =P

temos:

∆v = P

m (3.12)

A figura 3.13(a) ilustra uma situa¸c˜ao em que a bola colide com uma parede. A ve-locidade da bola antes da colis˜ao tem m´odulo vib e fase θib. A for¸ca gerada pela parede

tem m´odulo ∆v e a fase (βb) ´e perpendicular ao plano de colis˜ao que ´e a orienta¸c˜ao da

pr´opria parede. Na figura 3.13(b) ´e ilustrado o diagrama das velocidades dessa colis˜ao. O m´odulo (vf b) e fase (θf b) da velocidade final da bola ser˜ao dados pela soma dos vetores

vib e ∆v. As equa¸c˜oes 3.13 e 3.14 s˜ao referentes ao m´odulo e fase da velocidade da bola

respectivamente.

vf b =

v2 ib+ P mb 2

+ 2·vib· P

mb

·cos (βb −θib) (3.13)

θf b =tan−1

vib·sin(θib) + mPb ·sin(βb)

vib·cos(θib) + mPb ·cos(βb)

(3.14)

onde mb ´e a massa da bola.

Plano de colisão

(a) (b) (c)

θib

βb

θf b

vf b

βb

θib

vib

vf b

∆v

vib

∆v

θf b

Figura 3.13: (a)For¸ca atuando sobre corpo (b)Velocidade e orienta¸c˜ao da bola ap´os colis˜ao

(43)

CAP´ITULO 3. SIMULADOR 34

P utilizamos a conserva¸c˜ao da energia cin´etica e a equa¸c˜ao 3.13:

Eci =Ecf ⇒

mb·v2ib

2 =

mb·vf b2

2 ⇒

vib2 =vib2 +

P

mb

2

+ 2· P

mb

·vib·cos(βb−θib)⇒

chegamos ent˜ao na seguinte equa¸c˜ao para P:

P =−2·vib·cos(βb−θib)·mb (3.15)

Substituindo o valor de 3.15 em 3.13 e 3.14 conseguimos calcular a velocidade da bola ap´os a colis˜ao. Nesse caso espec´ıfico a intensidade da velocidade permanece constante, pois o obst´aculo (parede) tinha velocidade nula e massa muito maior que a bola. A ´unica altera¸c˜ao se dar´a na dire¸c˜ao do movimento da bola. A figura 3.13(c) mostra a configura¸c˜ao da velocidade da bola ap´os a colis˜ao.

Em uma colis˜ao envolvendo um robˆo, devemos dividir ∆v em duas componentes: uma paralela ao sentido de movimento do robˆo e outra na dire¸c˜ao do centro de massa do robˆo com orienta¸c˜ao θc. A primeira componente influenciar´a na velocidade linear final do

robˆo (vf b) e a segunda na velocidade angular final (ωf b). Um fator que deve ser levado

em conta ´e a face do robˆo que sofrer´a a colis˜ao. Nas faces dianteira ou traseira (figura 3.14(a)) o sentido da for¸ca ´e paralelo ao sentido de movimento do robˆo. Teremos ent˜ao as duas componentes atuando sobre o robˆo. Caso o robˆo sofra colis˜ao em uma de suas faces laterais (figura 3.14(b)), a for¸ca da colis˜ao ´e perpendicular ao movimento, nesse caso n˜ao existe componente paralela ao movimento. A ´unica for¸ca a agir nessa situa¸c˜ao ´e aquela direcionada ao centro do robˆo. Esse tipo de colis˜ao ir´a resultar apenas no giro do robˆo. Esse comportamento ´e ilustrado pela equa¸c˜ao da velocidade final do robˆo ap´os uma colis˜ao (3.16).

vf r =vir+

P

mr

·cos(β−θr) (3.16)

Na figura 3.14(a) a orienta¸c˜ao do robˆo (θr) ´e 90o e β tamb´em ´e 90o. Substituindo na

equa¸c˜ao 3.16 temos que cos(90o 90o) = 1, ou seja a colis˜ao ter´a influˆencia m´axima no

sentido do movimento linear. J´a na figura 3.14(b) θr = 90o eβ = 180o. Nesse caso temos

que cos(180o90o) = 0 e a colis˜ao s´o ter´a influˆencia na velocidade angular final do robˆo.

(44)

CAP´ITULO 3. SIMULADOR 35

eixo de colisão

eixo de colisão

(a) (b)

θc

θc

β

β

θr θr

Figura 3.14: (a)Colis˜ao frontal (b)Colis˜ao lateral

angular inicial ωir, orienta¸c˜ao θir. A bola tem velocidade inicial vib, com fase θib, dc ´e a

distˆancia entre o ponto de colis˜ao e o centro do robˆo. A bola recebe o mesmo tratamento que no caso da sua colis˜ao com a parede, as express˜oes da velocidade final da bola se mant´em as mesmas das equa¸c˜oes 3.13 e 3.14. Para o robˆo, devemos calcular express˜oes para suas velocidade finais linearvf r e angularωf r em fun¸c˜ao do momentoP. A express˜ao

que modela a velocidade linear final do robˆo ´e expressa pela equa¸c˜ao 3.16. A figura 3.15(b) ilustra o diagrama de for¸cas que influenciam a componente angular do robˆo.

(a) (b)

vir θ

ir

ωir

dc

θib

vib

∆vc

θc

θir

Figura 3.15: Colis˜ao entre a bola e um robˆo

A express˜ao que ir´a descrever a velocidade angular final do robˆo (ωr) ser´a:

ωf r =ωir+

P ·dc

Jr

·sin(βr−θc) (3.17)

(45)

CAP´ITULO 3. SIMULADOR 36

cin´etica temos:

Eci=Ecf ⇒

mb ·vib2 +mr·v2ir+Jr·ωir2

2 =

mb·vf b2 +mr·vf r2 +Jr·ωf r2

2

Substituindo as equa¸c˜oes 3.13, 3.16 e 3.17:

mb·v2ib+mr·vir2 +Jr·ω2ir =mr

vir+

P

mr

·cos(βr−θr

2

+

Jr

ωir2 + P.dc

Jr

·sin(βr−θc)

2

+mb

vib+

P

mb

·cos(βb−θib)

2

Desenvolvendo essa express˜ao chegamos ao seguinte resultado

P = −2(vr·cos(βr−(cos(θr) +β dc·ωr·sin(βr−θc) +vb·cos(βb−θv))

rθr)2)

mr +

dc·sin(βrθc)

Jr +

1

mb

(3.18)

Substituindo o valor da equa¸c˜ao 3.18 nas equa¸c˜oes 3.13, 3.14, 3.16 e 3.17 conseguimos calcular os valor de vf b, θf b,vf r e ωf r respectivamente.

3.3.3

O visualizador

Para facilitar a execu¸c˜ao dos testes com o simulador, foi desenvolvida uma interface gr´afica que exibe a situa¸c˜ao atual do jogo e ´e atualizada continuamente em tempo real. O software visualizador se comunica diretamente com o simulador, recebendo as informa¸c˜oes viasocket, podendo funcionar na mesma m´aquina, em uma m´aquina remota comunicando via socket ou at´e n˜ao ser executado.

A interface gr´afica para o usu´ario foi feita utilizando a biblioteca gr´afica OpenGL [59]. A taxa de exibi¸c˜ao de imagens (duas imagens por segundo) ´e bem inferior `a taxa de simula¸c˜ao (trinta simula¸c˜oes por segundo). Na figura 3.16 ´e mostrada uma imagem da interface com o usu´ario do visualizador.

(46)

CAP´ITULO 3. SIMULADOR 37

3.4

Discuss˜

ao

O desenvolvimento do simulador para o sistema do futebol de robˆos se mostrou mais complexo do que se imaginava no in´ıcio do trabalho e demandou mais tempo para ser implementado do que o esperado. Dentre os fatores que acarretaram no atraso da fi-naliza¸c˜ao, podemos citar por exemplo a detec¸c˜ao e modelagem das colis˜oes. Exaustivos testes utilizando diferentes paradigmas foram necess´arios at´e chegarmos ao modelo apre-sentado.

(47)

Cap´ıtulo 4

odulo de Planejamento

Os robˆos da equipe POTI n˜ao s˜ao dotados de sensores, portanto s˜ao incapazes de tomar decis˜oes sem o aux´ılio do computador central. No computador, o m´odulo de planejamento funciona como o c´erebro dos robˆos. Usando a cˆamera posicionada sobre o campo como ´

unico m´etodo de realimenta¸c˜ao, esse m´odulo tem por objetivo decidir o comportamento de cada robˆo do time a cada passo.

O m´odulo de planejamento ´e informado das posi¸c˜oes e orienta¸c˜oes dos robˆos e da posi¸c˜ao da bola, al´em do placar e tempo do jogo, a cada itera¸c˜ao do sistema. Para cumprir a tarefa designada, esse m´odulo engloba dois processamentos distintos: a a t´atica do time propriamente dita e o m´etodo de desvio de obst´aculos.

A t´atica ´e ponto mais importante desse m´odulo e principal foco do trabalho. ´E a t´atica que ir´a decidir o comportamento do time durante o jogo. Ela ´e respons´avel por todas as decis˜oes, desde a forma¸c˜ao do time e a coordena¸c˜ao entre os robˆos, at´e o pr´oximo ponto de referˆencia de cada robˆo. Para obtermos uma boa resposta da t´atica, ´e necess´ario garantir o bom funcionamento do controle, da transmiss˜ao, da localiza¸c˜ao e, obviamente, dos robˆos.

(48)

CAP´ITULO 4. M ´ODULO DE PLANEJAMENTO 39

temporariamente o robˆo. A pr´opria regra do jogo inibe contatos entre robˆos que n˜ao envolvam a disputa direta da bola. Devido `a pequena dimens˜ao do campo, ao n´umero de robˆos e `a velocidade e agilidade com que os robˆos se movimentam, achou-se necess´ario implementar um m´etodo de desvio de obst´aculos. Esse m´etodo deve ser ativado ap´os a t´atica e, caso haja necessidade, deve sobreescrever a referˆencia calculada pela t´atica por novas referˆencias que tentem impedir uma eventual colis˜ao.

Referências finais dos robôs Postura dos robôs, Posição da bola

Tempo de jogo, Placar do jogo

Referências dos robôs

Módulo de Decisão de Movimento

Tática obstáculosDesvio de

Figura 4.1: Diagrama do m´odulo

4.1

Desvio de Obst´

aculos

O m´etodo de desvio de obst´aculos se divide em dois casos: desvio de parede e desvio de robˆos. O desvio de paredes ´e o mais simples do dois e acontecer´a quando a referˆencia do robˆo a ser tratado estiver muito pr´oxima de alguma das paredes. A nova referˆencia ser´a alterada apenas na coordenada (x ouy) que estiver mais pr´oxima da parede.

No tratamento do desvio de robˆos, os obst´aculos s˜ao modelados como c´ırculos, com raio igual `a metade da diagonal principal do robˆo (4.2(a)). Al´em disso, o robˆo controlado ser´a representado apenas pela posi¸c˜ao de seu centro de massa. As dimens˜oes desprezadas no robˆo controlado dever˜ao ser acrescentadas ao obst´aculo. Portanto, o novo raio do obst´aculo dever´a ser igual `a diagonal principal do robˆo. Esse novo obst´aculo ser´a chamado de obst´aculo expandido. A figura 4.2(b) exibe a configura¸c˜ao de um obst´aculo expandido. O m´etodo de desvio de robˆos utiliza zonas de exclus˜ao ao redor dos obst´aculos. Se um robˆo penetra em uma dessas zonas, suas referˆencias s˜ao alteradas de modo que ele saia da regi˜ao e evite a poss´ıvel colis˜ao.

(49)

CAP´ITULO 4. M ´ODULO DE PLANEJAMENTO 40

Obstáculo simples

Robô r

Obstáculo extendido

Robô r

(a) (b)

Figura 4.2: (a)Obst´aculo simples, robˆo com dimens˜oes (b)Obst´aculo extendido, robˆo pontual

circunferˆencia com maior raio, chamadazona de influ^encia, define a regi˜ao a partir da qual os robˆos devem tomar ciˆencia do obst´aculo; a menor circunferˆencia (trajet´oria de

desvio) indica a trajet´oria que o robˆo deve seguir caso esteja sob risco de colidir com o obst´aculo.

Obstáculo

Zona de Influ^encia

trajet´oria de desvio

Figura 4.3: Configura¸c˜ao do obst´aculo

Inicialmente ´e testado se o robˆo se encontra dentro dazona de influ^enciade algum obst´aculo. Esse teste, al´em de filtrar os casos e diminuir o n´umero de c´alculos do pro-grama, evita que o m´etodo de desvio de obst´aculos altere demasiadamente as referˆencias calculadas pela t´atica, comprometendo o bom comportamento do time.

Uma vez dentro da zona de influ^encia, verificamos se a trajet´oria reta da posi¸c˜ao atual do robˆo at´e sua referˆencia intercepta o corpo do obst´aculo expandido em algum momento (figura 4.4). Caso n˜ao ocorra (referˆencia 1), a referˆencia do robˆo permanece inalterada, pois as possibilidades de colis˜ao s˜ao remotas. Se a poss´ıvel colis˜ao for de-tectada (referˆencia 2), a referˆencia do robˆo ´e alterada de forma a seguir a circunferˆencia

trajet´oria de desvio.

(50)

rotacio-CAP´ITULO 4. M ´ODULO DE PLANEJAMENTO 41

nado do ponto onde o robˆo se encontra no momento, no sentido mais pr´oximo da referˆencia original (figura 4.5(a)). O ˆangulo θ ´e constante, por´em como o robˆo est´a em movimento a nova referˆencia se torna dinˆamica. A medida que o robˆo se locomove a referˆencia de desvio se afasta do robˆo de forma que a nova referˆencia nunca ´e alcan¸cada (figura 4.5(b)).

Robô

Obstáculo

Referência 1

Referência 2

Zona de Influ^encia

Figura 4.4: Teste da possibilidade de colis˜ao

Referência

Robô Obstáculo

(a) (b)

Robô

Obstáculo

Referência

de desvio

de desvio Referência

Referência

θ

θ

Figura 4.5: C´alculo da nova trajet´oria

(51)

CAP´ITULO 4. M ´ODULO DE PLANEJAMENTO 42

posi¸c˜ao A e se encaminhar at´e a posi¸c˜ao C. O robˆo verde se encontra parado, obstruindo a trajet´oria reta entre os dois pontos. Quando o robˆo entra na zona de influ^encia

do obst´aculo, sua trajet´oria ´e puxada para um ponto sobre a circunferˆencia trajet´oria

de desvio, e come¸ca ent˜ao a seguir essa trajet´oria. Ao chegar ao ponto B, a trajet´oria direta entre a posi¸c˜ao atual do robˆo e a referˆencia no ponto C est´a desobstru´ıda: a partir desse ponto, o desvio de obst´aculos deixa de agir e o robˆo segue diretamente em dire¸c˜ao `a referˆencia.

A

B

C

Zona de Influ^encia

trajet´oria de desvio

Figura 4.6: Exemplo de desvio de obst´aculo

Caso dois obst´aculos estejam muito pr´oximos esse m´etodo de desvio pode causar dois problemas: se um dos obst´aculos for ignorado, a tentativa de desvio do primeiro obst´aculo pode causar a colis˜ao com o segundo; se os dois obst´aculos forem tratados, o robˆo pode chegar a um ponto de indecis˜ao (deadlock) chaveando entre o desvio de cada um dos obst´aculos. Para esse caso, a solu¸c˜ao encontrada foi a fus˜ao de dois obst´aculos. Caso o robˆo esteja na zona de influ^encia de um obst´aculo e exista outro obst´aculo a uma distˆancia menor que ∆l do primeiro, esses dois obst´aculos ser˜ao tratados como um s´o

Imagem

Figura 1.3: Vis˜ao geral de um jogo de futebol de robˆos
Figura 1.4: Imagem do campo e dos robˆos desenvolvidos no LECA
Figura 3.1: (a)Sistema real (b)Sistema com o simulador
Figura 3.5: Diagrama esquem´atico do robˆo Grandezas dinˆamicas para a modelagem do robˆ o:
+7

Referências

Outline

Documentos relacionados

Depois da abordagem teórica e empírica à problemática da utilização das Novas Tecnologias de Informação e Comunicação em contexto de sala de aula, pelos professores do

Therefore, the analysis of suitability of the existing transportation network for riding bicycle in Coimbra should address two important aspects: (i) identifying

Com a investigação propusemo-nos conhecer o alcance real da tipologia dos conflitos, onde ocorrem com maior frequência, como é que os alunos resolvem esses conflitos, a

Dessa maneira, os resultados desta tese são uma síntese que propõe o uso de índices não convencionais de conforto térmico, utilizando o Índice de Temperatura de Globo Negro e

Bom, eu penso que no contexto do livro ele traz muito do que é viver essa vida no sertão, e ele traz isso com muitos detalhes, que tanto as pessoas se juntam ao grupo para

Finalizando, destaca-se que a relação entre a busca por poder e prestígio e o comportamento de compra compulsiva não foi validada estatisticamente neste estudo, não sendo

Tendo em conta que os valores do teor de água que são encontrados no bacalhau que é comercializado se encontra num intervalo entre 40% e 58%, recorrendo aos ensaios anteriores e

A partir deste momento é dada indicação para a seleção da população em estudo e é ativado o envio da medicação pelo promotor, ficando o FH da Unidade de