RoboCup Criação de uma Equipa para a Liga Mixed Reality do RoboCup

Tamanho: px
Começar a partir da página:

Download "RoboCup Criação de uma Equipa para a Liga Mixed Reality do RoboCup"

Transcrição

1 Faculdade de Engenharia da Universidade do Porto RoboCup Criação de uma Equipa para a Liga Mixed Reality do RoboCup Hugo Filipe Pereira de Almeida Sarmento Mendes VERSÃO PROVISÓRIA Dissertação realizada no âmbito do Mestrado Integrado em Engenharia Electrotécnica e de Computadores Major Automação Orientador: Prof. Dr. Luís Paulo Reis 09/06/2010

2 Hugo Filipe Pereira de Almeida Sarmento Mendes, 2010 ii

3 Resumo A RoboCup é uma iniciativa internacional que fomenta a investigação em áreas como a inteligência artificial, sistemas multi-agente, agentes autónomos, robótica, fusão sensorial, coordenação de equipas e aquisição de estratégias. Esta federação é responsável por organizar anualmente, uma série de competições e demonstrações que têm lugar, cada ano, num local diferente do mundo. As principais competições dizem respeito ao futebol robótico, onde os agentes/robôs, reais ou virtuais, disputam um jogo de futebol, com regras idênticas às usadas pelos humanos. O terreno de jogo também ele pode ser real ou virtual. Desta forma, dentro do futebol robótico temos as seguintes competições: Simulation 2D League, Simulation 3D League, Small Size Robot League, Middle Size Robot League, Humanoide League, Standard Platform League e Mixed Reality League. Esta tese teve como objectivo criar uma equipa de raiz, para participar na liga Mixed Reality em Singapura no ano de 2010, dentro da equipa FCPortugal. No futebol robótico não só é importante o comportamento de cada agente como indivíduo, mas também o seu papel dentro de um objectivo comum. Para conseguir criar uma equipa é necessário começar pelo mais básico, dotar os agentes com a capacidade de actuarem sobre o mundo onde estão inseridos e dele obterem informação. Foi principalmente sobre estas duas questões que a presente tese teve como tema de estudo. No entanto, todos os temas relacionados com a criação completa de uma equipa de futebol robótico são abordados, incluindo, entre outros: percepção, acção, decisão individual e decisão colectiva (estratégia). iii

4 iv

5 Abstract The Robocup is an international initiative that promotes the research in areas such as artificial intelligence, multi-agent systems, autonomous agents, robotics, sensorial fusing and acquisition of strategies. This organization is responsible for organizing annually, a series of competitions and demonstrations that take place, each year, in a different place of the world. The main competitions are robotic soccer leagues, where the agents/robots, real or virtual, dispute a soccer match, using identical rules as for the human soccer. The game field also can be real or virtual. Inside of the robotic soccer we have the following competitions: Simulation 2D League, Simulation 3D League, Small Size Robot League, Middle Size Robot League, Humanoid League, Standard Platform League e Mixed Reality League. This thesis had the objective to create a team from scratch, to participate in the Mixed Reality league in Singapore in the year of 2010, inside the team FCPortugal. In the robotic soccer, the behavior of each agent is not only important as individual, but also its goal inside of a common objective. To create a robotic soccer team, it is necessary to start with the most basic things, to endow the agents with the capacity to act on the world where they are inserted and get information from it. These were mainly the questions that the present thesis studied. However, all the themes related with the complete creation of a robotic soccer team are approached including: perception, action, individual decision and collective decision (strategy). v

6 vi

7 Agradecimentos Queria agradecer a todos os elementos constituintes da FCPortugal e em especial, ao Prof. Dr. Luís Paulo Reis, pelo conhecimento que me passou, pela ajuda que me deu e pela oportunidade que me disponibilizou. Foi um prazer conviver e trabalhar com todos os elementos da FCPortugal, tendo sido preciosa a informação que deles pude obter. Recordarei com saudade estes últimos meses. Gostaria também de agradecer à Diana Guimarães pela ajuda e apoio que me deu. Este projecto foi parcialmente suportado pela FEUP/DEI - Departamento de Engenharia Informática e pelo LIACC Laboratório de Inteligência Artificial e Ciência de Computadores da Universidade do Porto. vii

8 viii

9 Índice Resumo... iii Abstract... v Agradecimentos... vii Índice... ix Lista de figuras... xii Lista de tabelas... xiv Abreviaturas... xv Capítulo 1- Introdução Enquadramento e Motivação Objectivos Estrutura da tese Capítulo 2 - Agentes e Sistemas Multi-Agente Agentes Agentes Autónomos Autonomia Reactividade Pró-Actividade Habilidade Social Ambiente Atributos dos Agentes Sistemas Multi-Agente Conclusões Capítulo 3 - A Liga "Mixed Reality" Introdução O terreno de jogo Regras do jogo ix

10 3.4 O robô real O sistema da Mixed Reality Simulador Introdução MR-Simulator Simulação do ambiente Simulação dos Robôs Conclusões Capítulo 4 - Desenvolvimento do Agente Ficheiros Metodologia para a criação da equipa Ficheiro WorldData GetFieldDimensions() GetMyPosition() GetMyOrientation() GetBallPosition() GetPlayerPosition() IamClosestToBall() CentroBaliza() Ficheiro BasicPlayer GoToXY(double xx, double yy) KickXY(Vector FinalPos) Goalie() Ficheiro SampleAgent Conclusões Capítulo 5 - Desenvolvimento da Estratégia da Equipa Ficheiro strategy.conf.mr Posicionamento estratégico Matrizes de fluxo Segurança Conclusões Capítulo 6 - Testes e análise de resultados obtidos Teste das funções do WorldData Teste da função GetFieIdDimension() Teste da função GetMyPosition() Teste da função GetBallPosition() x

11 6.1.4 Teste da função GetPlayerPosition() Teste da função GetMyOrientation() Teste das funções do BasicPlayer Teste da função GoToXY(double xx, double yy) Teste da função KickXY(Vector FinalPos) Análise global aos resultados obtidos Formação com dois avançados e dois defesas Formação com quatro avançados Formação com três avançados e um defesa Análise global aos resultados obtidos Conclusões e Trabalho Futuro Conclusões Trabalho futuro Referências xi

12 Lista de figuras Figura 1: Esquema Típico de um Agente, [Reis, 2003] Figura 2: Estrutura genérica de um Sistema Multi-Agente [Reis, 2003] Figura 3: Terreno de jogo Figura 4: Robô utilizado na "Mixed Reality" e suas respectivas dimensões (em milímetros) Figura 5: Discretização das velocidades. [SourceForge, 2010b] Figura 6: Arquitectura da "Mixed Reality" Figura 7: Estrutura do sistema da Mixed Reality [Gerndt e Guerra, 2008] Figura 8: Ciclo principal do MR-Simulator, [Simões, 2010] Figura 9: Informação básica disponível [Lau e Reis, 2007b] Figura 10: Cálculo das dimensões do campo Figura 11: Cálculo da posição do agente Figura 12: Cálculo da orientação Figura 13: Cálculo da posição absoluta da bola Figura 14: Vectores necessários para a função IamClosestToBall() Figura 15: Cálculo de CentroBaliza() Figura 16: Vector em coordenadas polares para o destino Figura 17: Posição ideal para o guarda-redes Figura 18: Posição dos jogadores com a bola no ponto xii

13 Figura 19: Posição dos jogadores com a bola no ponto Figura 20: Posição dos jogadores com a bola entre o ponto 1 e Figura 21: Malha para definição de fluxo Figura 22: Matriz de fluxo Figura 23: Teste da função GetMyPosition() Figura 24: Teste da função GetPlayerPosition() Figura 25: Teste da função GoToXY(double xx, double yy) Figura 26: BahiaMR ao ataque Figura 27: BahiaMR à defesa Figura 28: Matriz de fluxo com preferência pelo centro (fluxo central) Figura 29: Matriz de fluxo com preferência pelas alas (fluxo lateral) Figura 30: Equipa à defesa com bola no centro Figura 31: Equipa à defesa com bola na lateral Figura 32: Equipa ao ataque com bola no centro Figura 33: Equipa ao ataque com bola pela lateral Figura 34: Equipa à defesa com a bola no corredor central Figura 35: Equipa à defesa com a bola numa posição lateral Figura 36: Equipa ao ataque com bola pelo corredor central Figura 37: Equipa ao ataque com bola numa posição lateral Figura 38: Equipa à defesa com a bola numa posição central Figura 39: Equipa à defesa com a bola numa posição lateral Figura 40: Equipa ao ataque com a bola no centro Figura 41: Equipa ao ataque com a bola junto à linha lateral xiii

14 Lista de tabelas Tabela 1 - Dimensões do campo Tabela 2 - Resultados da função GetBallPosition() Tabela 3 - Resultados da função KickXY () Tabela 4 - Resultados obtidos com dois avançados e fluxo central Tabela 5 - Estatística com dois avançados e fluxo central Tabela 6 - Resultados obtidos com dois avançados e fluxo lateral Tabela 7 - Estatística com dois avançados e fluxo lateral Tabela 8 - Resultados obtidos com quatro avançados e fluxo central Tabela 9 - Estatística com quatro avançados e fluxo central Tabela 10 - Resultados obtidos com quatro avançados e fluxo lateral Tabela 11 - Estatística com quatro avançados e fluxo lateral Tabela 12 - Resultados obtidos com três avançados e fluxo central Tabela 13 - Estatística com três avançados e fluxo central Tabela 14 - Resultados obtidos com três avançados e fluxo lateral Tabela 15 - Estatística com três avançados e fluxo lateral Tabela 16 - Resultados gerais (V - Vitórias; E - Empates; D - Derrotas; GM - Golos Marcados; GS - Golos Sofridos) xiv

15 Abreviaturas ARM AVR FEUP ID IEEE IrDA LCD MR ODE USB XML Advanced RISC Machine Advanced Virtual RISC Faculdade de Engenharia da Universidade do Porto Identity Instituto de Engenheiros Electricistas e Electrónicos Infrared Data Association Liquid Crystal Display Mixed Reality Open Dynamics Engine Universal Serial Bus Extensible Markup Language xv

16 Capítulo 1 Introdução 1.1 Enquadramento e Motivação A Robocup é uma iniciativa internacional que fomenta a pesquisa em áreas como a inteligência artificial, sistemas multi-agente, agentes autónomos, robótica, fusão sensorial e aquisição de estratégias. Esta organização é responsável por organizar anualmente uma série de competições e demonstrações que têm lugar, cada ano, num diferente local do mundo. A principal competição é o futebol robótico onde os agentes/robôs, reais ou virtuais, disputam um jogo de futebol, com regras idênticas às usadas pelos humanos. O terreno de jogo também ele pode ser real ou virtual. A competição RoboCup teve na sua génese o futebol e actualmente está dividida em quatro grandes áreas: RoboCup Soccer, RoboCup Rescue, RoboCup Júnior e [RoboCup, 2010]. O RoboCup Soccer (Futebol Robótico) está dividido em dois tipos de ligas: Robótica e Simulação. Por sua vez a liga Robótica subdivide-se em: Robôs Pequenos, Robôs Médios, Robôs com Pernas (robôs quadrúpedes AIBO da Sony) e Humanóides. As ligas de Simulação estão divididas em: Simulação 2D, Simulação 3D (com robôs humanóides) [Boedecker and Asada, 2008], Realidade Mista (robôs Ecobes da Citizen), e outros desafios (incluindo a liga de treinadores e demonstrações) [RoboCup, 2010].

17 Cada uma destas ligas tem características próprias que oferecem diferentes desafios às equipas participantes. Por exemplo, nas ligas de simulação, especialmente na liga 2D, é dado maior ênfase à coordenação de Sistemas em Multi-Agente; já na liga de robôs pequenos o destaque está no controlo rápido e preciso dos robôs, enquanto que na liga de robôs médios os tópicos mais importantes incluem a visão computacional, projecto electromecânico e auto-localização dos robôs. O RoboCup propõe novos desafios para além do futebol robótico, como o RoboCup Rescue (RoboCup de Salvamento) que tem como finalidade promover a investigação e desenvolvimento em cenários de desastre, muito útil para a actual sociedade. O RoboCup Rescue tem como objectivo integrar informação de desastres em sistemas de decisão de emergência, previsão, planeamento e interface humana. A maior parte dos conceitos do futebol podem ser aplicados neste domínio, pois ambos têm um ambiente multi-agente, as metodologias de coordenação, entre outras similaridades. O RoboCup Rescue compreende três ligas: RoboCup Rescue Simulation (Simulação de desastre), RoboCup Rescue Virtual Competition (Simulação de robôs reais) e o RoboCup Rescue Robot Competition (Robôs reais) [RoboCup, 2010]. O RoboCup Júnior permite que jovens estudantes (de escolas primárias e secundárias) e estudantes universitários possam participar neste projecto, abrangendo também outros domínios além do futebol tal como a dança e acções de salvamento em cenários de desastre [RoboCup, 2010]. No âmbito do RoboCup também foi criada a liga RoboCup@Home cujo objectivo é o uso de metodologias robóticas para o desempenho de tarefas domésticas. Neste contexto as aplicações oriundas do RoboCup inovam outros domínios, como por exemplo o futebol, a dança, o salvamento em cenários de desastre e os edifícios inteligentes. Portugal, desde o ano 2000, participa nas competições internacionais do RoboCup, com o uso de um sistema multi-agente, totalmente funcional, denominado por FC Portugal. Este sistema foi desenvolvido por uma colaboração entre a Universidade do Porto e a Universidade de Aveiro. A equipa FC Portugal tem obtido excelentes resultados na competição RoboCup. Conquistou a vitória em cinco campeonatos da Europa e em três campeonatos do Mundo de Futebol Robótico Simulado [Reis 2003]. Tais conquistas motivaram o uso do FC Portugal para a previsão das formações das equipas no futebol robótico simulado nesta investigação, tendo em vista o desenvolvimento de uma metodologia de classificação. 17

18 1.2 Objectivos O objectivo geral desta tese consiste em criar uma equipa de futebol robótico para participar no Robocup Singapura, na categoria de demonstração Mixed Reality. De forma a atingir este objectivo, foram definidos os seguintes objectivos: Estudo sobre sistemas multi-agente, RoboCup e sobre as diferentes ligas da RoboCup; Estudo da Liga Mixed Reality e do simulador Mixed Reality; Implementação dos movimentos básicos dos agentes; Implementação de um estado do mundo para os agentes contendo a sua localização e orientação absoluta; Implementação do cálculo da velocidade da bola, posições e velocidades dos TeamMates e Oponnents. Implementação do posicionamento estratégico e de formações; Criação do guarda-redes e da primeira equipa base incluíndo algorítmos de decisão para os agentes; Incorporação na Mixed Reality de conceitos definidos pela FC Portugal para outras ligas: Matchflow, Setplays [Conceição et al., 2006] [Lau e Reis, 2006] [Lopes, 2009], Strategy (funções de decisão de alto nível) Pretende-se no final obter uma equipa totalmente funcional para a Mixed Reality, capaz de competir nesta liga no RoboCup. 1.3 Estrutura da tese Esta tese é constituída por seis capítulos, sendo o primeiro composto por esta introdução ao trabalho. No segundo capítulo é feita uma breve explicação sobre o significado do termo Agente e de Sistemas Multi-Agente. O capítulo três aborda a Liga Mixed Reality, como é composto o sistema de jogo e quais as suas regras. O capítulo quatro tem no seu conteúdo a principal parte do trabalho desenvolvido. Estão referenciadas as principais funções de baixo nível que são parte constituinte de todos os agentes. O capítulo cinco apresenta as possibilidades de ajuste nas funções de mais alto nível e como isso pode ser feito. O capítulo seis apresenta os testes efectuados para validar o trabalho feito. São também feitos os comentários aos resultados obtidos. O último capítulo contém as conclusões gerais do trabalho e as perspectivas de desenvolvimento. 18

19 Capítulo 2 Agentes e Sistemas Multi-Agente 2.1 Agentes Um agente é uma entidade que toma decisões de forma autónoma, recorrendo a sensores para obter informação sobre o mundo onde "habita" e fazendo uso de actuadores para sobre ele agir Agentes Autónomos A conceptualização, especificação e implementação de Agentes Autónomos é matéria constituinte de uma disciplina derivada essencialmente da Inteligência Artificial cuja investigação científica teve grandes desenvolvimentos nos últimos anos. Os agentes são aplicados nas mais diversas áreas que variam desde a interacção homem-máquina até complexos processos de controlo industrial. Devido ao elevado número de aplicações e à relativa abertura do conceito, existem diversas definições de Agente e não existe um consenso alargado entre os autores da área sobre esta matéria. No entanto, baseando-nos no trabalho de Pattie Maes [Chavez e Maes, 1996], uma primeira e simples definição de agente é: Um sistema computacional que habita um dado ambiente, sente e age nesse ambiente, e ao fazê-lo realiza um conjunto de objectivos ou tarefas para o qual foi projectado [Reis, 2003]. 19

20 Embora não exista uma definição consensual do conceito de agente, existe a noção de que a autonomia é essencial num agente. Baseados nesta noção central de autonomia e nos trabalhos de Wooldridge e Jennings [Wooldridge e Jennings, 1995] [Wooldridge, 2002], Pattie Maes [Chavez e Maes, 1996] e Russel e Norvig [Russel e Norvig, 1995], iremos adoptar a seguinte definição de agente: Um Agente é um sistema computacional, situado num dado ambiente, que tem a percepção desse ambiente através de sensores, tem capacidade de decisão, age de forma autónoma nesse ambiente através de actuadores, e possui capacidades de comunicação de alto-nível com outros agentes e/ou humanos, de forma a desempenhar uma dada função para a qual foi projectado. [Reis, 2002] A definição apresentada diz-nos que um agente é um sistema computacional que se encontra situado num dado ambiente. Este ambiente pode ser uma parte do mundo real (universidade, fábrica, hospital, campo de futebol, etc.), um ambiente simulado ou mesmo um computador. Os agentes mais vulgares são os agentes de software. No entanto, os agentes podem ter uma existência física (possuíndo um corpo), designando-se nesse caso por agentes robóticos. Independentemente do tipo de agente e ambiente, essencial na definição de agente que adoptamos, é sempre importante a capacidade do mesmo se aperceber do ambiente e nele agir de forma autónoma. Desta forma, o agente deve possuir sensores e actuadores apropriados ao seu ambiente e à execução das tarefas para as quais foi projectado. A figura 1 apresenta um esquema típico de um agente. Figura 1: Esquema Típico de um Agente, [Reis, 2003] Uma das definições de agente mais conhecidas e aceites na comunidade é apresentada por Wooldridge e Jennings [Wooldridge e Jennings, 1995] que definem um agente como uma peça de hardware ou (mais usual) um sistema computacional baseado em software que goza das seguintes propriedades: Autonomia. Os agentes operam sem a intervenção directa de humanos ou outros agentes e possuem algum tipo de controlo sobre as suas acções e estado interno; Reactividade. Os agentes têm a percepção do seu ambiente e respondem rapidamente às alterações que nele ocorrem; Pró-Actividade. Os agentes não se limitam a agir em resposta ao seu ambiente. Eles são capazes de tomar a iniciativa e exibir comportamento direccionado por objectivos; 20

21 Habilidade Social. Os agentes são capazes de interagir com outros agentes (e possivelmente com humanos) através de uma dada linguagem de comunicação de agentes Autonomia Dentro do grupo de investigação na área dos agentes inteligentes, a autonomia é uma das características mais consensuais como forma de definir o conceito de agente. Quanto maior for a autonomia do agente, maior vai ser a sua capacidade de agir por iniciativa própria, não necessitando que haja uma mudança no meio onde ele se insere ou a recepção de instruções por parte de outrém, como um agente ou um humano, para agir. Huhns e Singh [Huhns e Singh, 1997] classificam a autonomia dos agentes em cinco tipos distintos: Autonomia Absoluta. O agente possui controlo completo sobre as suas percepções, raciocínio e acções, e é muito pouco previsível; Autonomia Social. O agente conhece os outros agentes presentes no sistema e é sociável, exercendo no entanto a sua autonomia em certas circunstâncias. A autonomia está em tensão natural com a coordenação ou com outras noções de alto-nível tais como compromissos; Autonomia de Interface. Em grande parte dos sistemas, onde a autonomia absoluta é impossível, a autonomia máxima possível para o agente é a autonomia respeitante à sua forma de interface com o exterior; Autonomia de Execução. Liberdade que o agente possui na execução de acções no ambiente; Autonomia de Projecto. Grau de autonomia dos projectistas do agente na sua construção. Quanto maior for a autonomia de projecto, maior poderá ser a heterogeneidade dos agentes. Segundo Foner [Foner, 1993], existem três requisitos básicos que os agentes devem ter, de forma a obterem um elevado nível de autonomia: capacidade de execução de acções periódicas, execução espontânea e iniciativa própria. Com base nestes requisitos, o agente adquire a capacidade de agir de forma independente, o que poderá trazer benefícios para o utilizador Reactividade Por reactividade entende-se a capacidade de um agente reagir a mudanças no ambiente que o cercam. Um agente com maior reactividade é aquele que mais rapidamente reage a alterações externas. A única forma de um agente ser reactivo é ser dotado de mecanismos que permitam absorver informação sobre o meio envolvente e ter as ferramentas necessárias para sobre ele agir. Esta é uma 21

22 característica dos agentes que está presente em quase todas as definições de agente [Wooldridge e Jennings, 1994], [Russel e Norvig, 1995], [Franklin e Graesser, 1996]. No entanto, Russel e Norvig [Russel e Norvig, 1995], definem um agente reactivo quando este utiliza planeamento reactivo e regras de condição-acção para definir o seu comportamento. Apesar de a reactividade ser uma característica desejável num agente, ele não deve ser puramente reactivo, já que iria reagir continuamente às mudanças externas, sem a preocupação com os seus objectivos finais Pró-Actividade A pro-actividade é a capacidade de iniciativa de que um agente é dotado. Um agente pro-activo toma acções de forma a concretizar os seus objectivos e não exclusivamente resultantes de mudanças do meio externo Habilidade Social Este atributo representa a capacidade de um agente interagir com os outros agentes. Segundo Genesereth e Ketchpel [Genesereth e Ketchpel, 1994], um agente deve possuir a capacidade de comunicar com os outros agentes, numa linguagem de alto-nível. Para esta comunicação ser possível, torna-se necessário que os agentes compartilhem o mesmo vocabulário com a mesma semântica. Para além desta condição, é necessário também que haja um meio por onde os agentes possam comunicar, ou seja, é necessário fornecer ao agente os actuadores apropriados a esta função. Esta comunicação não está restrita apenas à interacção entre agentes. Segundo Franklin e Graesser [Franklin e Graesser, 1996], os agentes podem inclusive comunicar com humanos Ambiente O ambiente é o local onde o agente tem a possibilidade de obter informação e agir. Assim, conforme a acção que o projectista deseja para um determinado agente, é necessário avaliar quais as acções possíveis e que informação pode o agente retirar do ambiente onde "habita". Uma forma de classificar as propriedades de um agente é a sugerida por Russel e Norvig [Russel e Norvig 1995], onde se pode distinguir as seguintes classes: Acessível vs. Inacessível. Um ambiente acessível é aquele onde um agente consegue obter, através dos seus sensores, informação actualizada, precisa e completa sobre o ambiente. Grande parte dos ambientes típicos não são acessíveis neste sentido. Entre os ambientes inacessíveis destacam-se a Internet e todos os ambientes físicos reais. Determinístico vs. Não determinístico. Num ambiente determinístico cada acção tem um efeito único garantido, não existindo qualquer incerteza quanto ao resultado da sua execução. 22

23 Estático vs. Dinâmico. Um ambiente estático é suposto permanecer inalterado enquanto o agente decide a próxima acção a executar. Em contraste, num ambiente dinâmico outros agentes encontram-se a agir no ambiente ao mesmo tempo. Todos os ambientes físicos do mundo real e a Internet são dinâmicos neste sentido. Discreto vs. Contínuo. Um ambiente diz-se discreto se existe um número finito de percepções e acções possíveis para o agente e contínuo caso contrário. Um ambiente pode ser contínuo no que diz respeito às percepções do agente e discreto no que diz respeito às acções (e vice-versa). A qualidade das decisões por parte dos agentes está fortemente relacionada com a informação que este consegue adquirir do ambiente, tanto em quantidade como em qualidade. Quanto à acessibilidade de um ambiente, não existem apenas duas possibilidades (acessível/não acessível). Num ambiente inacessível, é necessário averiguar qual o grau de acessibilidade. Como vimos, um ambiente físico é inacessível, no entanto é possível obter alguma informação dele, apesar de essa informação poder estar desactualizada e ser pouco precisa. Desta forma, devem ser fornecidos aos agentes metodologias capazes de minimizar estes erros, de forma a não comprometer as suas decisões Atributos dos Agentes Um agente pode ser definido a partir de um conjunto de características básicas. Tendo como base este conjunto de características, podemos agrupar os agentes em diferentes classes ou tipologias. No entanto, não é necessário que o agente possua todas as características ou atributos da classe onde está inserido, embora as suas capacidades estejam relacionadas com elas. Assim, conforme a função que o agente irá desempenhar, quem projecta deve escolher os atributos necessários. 2.2 Sistemas Multi-Agente Uma das áreas de incidência da Inteligência Artificial Distribuída e Robótica Inteligente é a construção de sistemas autónomos e cooperativos, com vista à resolução de um problema global. O agente é o elemento computacional activo desses sistemas autónomos. A área da investigação designada por agentes autónomos surgiu inspirada nas áreas científicas da Inteligência Artificial, Engenharia do Software, Sistemas Distribuídos e Redes de Computadores, Sociologia, Teoria dos Jogos e Economia [Reis, 2003]. Aliás é notório na Engenharia de Software a evolução dos paradigmas de programação. Primeiro surgiu a programação monolítica, depois a programação estruturada, depois a programação por objectos e por último, ainda sem grande expressão no mercado, a programação por agentes. 23

24 Os agentes possuem capacidade de decisão autónoma, são capazes de comportamento reactivo, pró-activo, social e possuem um fluxo de controlo próprio distinto dos restantes agentes que compõem um dado sistema multi-agente [Lesser, 1999]. Para se perceber o conceito de agente é importante a descrição dos atributos, da arquitectura e das suas capacidades. O trabalho em equipa, que os agentes podem desenvolver com outros agentes e/ou humanos, é uma das grandes mais-valias deste paradigma. Daí é fundamental saber como é que eles podem interagir, cooperar e raciocinar em função do ambiente que os rodeia, ou seja, como podem construir sociedades de agentes os sistemas de multi-agente. Os sistemas multi-agente exibem um comportamento autónomo mas ao mesmo tempo interagem com os outros agentes presentes no sistema, e/ou trabalham em conjunto de forma a satisfazer um determinado objectivo. Estes agentes exibem duas características fundamentais: serem capazes de agir de forma autónoma tomando decisões que conduzam à satisfação dos seus objectivos; serem capazes de interagir com outros agentes utilizando protocolos de interacção social inspirados nos humanos e incluindo pelo menos algumas das seguintes funcionalidades: coordenação, cooperação, competição e negociação [Reis, 2003]. A interacção é fundamental numa sociedade de agentes. Para isso é necessário saber coordená-los uns com os outros. Os sistemas multi-agente computacionais contêm agentes que interagem entre si, sejam agentes homogéneos ou agentes heterogéneos, o que permite que seja possível poder transportar para um ambiente de simulação aquilo que se passa no mundo real. Cada agente é um elemento capaz de reagir e ajudar a resolver problemas cooperando com outros agentes. Para que um agente possa ser parte integrante de um sistema é necessária a existência de uma infra-estrutura que permita a comunicação e a interacção entre os vários agentes que compõem o sistema multiagentes, conforme se observa na figura 2 [Reis, 2003]. A figura 2 apresenta a estrutura de um sistema multi-agente com determinados agentes (homogéneos e/ou heterogéneos [Beaudry et al., 2006]). Cada agente tem influência em determinadas zonas do seu ambiente, sendo por vezes necessário verificar qual a interacção entre todos os agentes envolvidos. Essa interacção pode ser um conjunto de relações, de operações, aliás toda a ênfase que o paradigma da orientação por objectos já possuía. Segundo Lesser, [Lesser, 1999] a investigação em sistemas multi-agente desenvolve princípios e modelos computacionais para construir, descrever, implementar e analisar as melhores formas de interacção e coordenação de agentes, em sociedades de reduzida ou de elevada dimensão. Como foi afirmado por Reis [Reis, 2003], um dos grandes desafios nesta área de investigação é a criação de metodologias que permitam que uma equipa de agentes trabalhe harmoniosamente em conjunto, ou seja, que a coordenação entre os diversos agentes seja efectuada de modo eficiente. 24

25 Figura 2: Estrutura genérica de um Sistema Multi-Agente [Reis, 2003]. 2.3 Conclusões Neste capítulo foi apresentada uma descrição dos conceitos de agente e sistema multi-agente. No âmbito do RoboCup estes conceitos são essenciais. O ambiente de quase todas as ligas do RoboCup e em particular da Mixed-Reality é um ambiente multi-agente, dinâmico, não determinístico e contínuo, muito mais complexo que os ambientes de outros domínios tradicionais tais como o Xadrez. 25

26 Capítulo 3 A Liga "Mixed Reality" 3.1 Introdução A Liga "Mixed Reality" não é ainda considerada, no presente ano 2010, uma Liga integrante da RoboCup Soccer. Até a esta edição a Liga é considerada uma Liga de Demonstração, ou seja, uma Liga que tenta demonstrar nova ideias e conceitos para futuros torneios e áreas de pesquisa. O objectivo desta Liga é fazer a ponte entre as Ligas simuladas e as Ligas com robôs físicos [Reis, 2003], [Stapleton, 2002] e [Azuma, 1997]. Segundo o continuum real-virtual de Milgram [Milgram, 1994a] [Milgram, 1994b] [Stapleton, 2002], as realidades mistas estão divididas entre a realidade aumentada e a virtualidade aumentada. Enquanto na realidade aumentada temos a inserção de objectos virtuais no mundo real, na virtualidade aumentada temos a inserção de objectos reais no mundo virtual. A competição Mixed Reality da RoboCup é considerada virtualidade aumentada, uma vez que os robôs (objectos reais) são inseridos num ambiente virtual. 26

27 3.2 O terreno de jogo O campo é projectado num LCD de 42 polegadas. Tem uma dimensão de 80,6cm 46.0cm, tendo as balizas 15cm entre os postes, tal como pode ser observado na figura 3. Figura 3: Terreno de jogo 3.3 Regras do jogo No futebol robótico tenta-se respeitar ao máximo as regras usadas nos jogos disputados por humanos. As regras da "Mixed Reality" para 2010 são: Autonomia. Durante o jogo os robôs devem mover-se de forma autónoma. É proibido o envio de informação para os robôs que não seja enviada através do servidor oficial. Os clientes só podem comunicar com o servidor fornecido pela organização. Comunicação implícita (como um robô rodar sobre si mesmo para demonstrar que está pronto a receber a bola) é permitido. Duração do jogo. O jogo é constituído por duas partes de 10 minutos, com um intervalo de 10 minutos entre cada parte. Quando o jogo pára por ordem do árbitro, o relógio também é parado. Durante o intervalo as equipas podem fazer alterações ao seu código, mas se não se voltarem a conectar até o fim do intervalo, considera-se que a equipa desistiu. Se antes do fim do intervalo ambas as equipas estiverem prontas para recomeçar o jogo, este é recomeçado imediatamente. Máxima diferença de golos. Se a diferença de golos entre as duas equipas for maior que 10, o jogo acaba imediatamente. Escolha de campo. O árbitro irá lançar uma moeda ao ar por forma a decidir qual a equipa a escolher o seu lado do campo de jogo. No intervalo as equipas trocam de posição. 27

28 Número máximo de jogadores. Cada equipa pode ter um máximo de 5 jogadores. Este valor, assim como o tamanho do campo, pode variar antes do torneio começar. É esperado que as equipas se adaptem a estes contratempos. Bola, pontapé de baliza, pontapé de canto. A bola é virtual e encontra-se representada na superfície de jogo. A bola nunca se considera fora se passar das linhas laterais, mas o jogo irá parar se atravessar as linhas finais. Quando isto acontece, o servidor automaticamente identifica se é uma situação de pontapé de baliza ou pontapé de canto. Quando dois jogadores chutam a bola ao mesmo tempo para fora do campo, o servidor considera pontapé de baliza. Tanto no caso do pontapé de baliza, como no pontapé de canto, a bola é colocada na posição correcta automaticamente. O árbitro irá pedir à equipa atacante para colocar um robô perto da bola e a equipa que defende deve colocar os seus robôs a uma distância mínima de 15cm da bola. No caso do pontapé de baliza a equipa que defende só pode mover um robô e a equipa atacante deve colocar todos os seus robôs atrás da linha de meio campo. Desistência. Em caso de desistência considera-se que a equipa perde por 10:0. Golos. Os golos são contados pelo servidor. O árbitro pode cancelar um golo, se tiver boas e justas razões para isso. Neste caso, o árbitro deve pedir ao operador para proceder ao cancelamento do golo. Timeouts. Cada equipa pode pedir um desconto de tempo de duração máxima de dois minutos. O pedido deve ser feito ao árbitro que o irá conceder numa altura em que o jogo esteja parado (i.e., o jogo não é parado só porque uma equipa pede um timeout). Durante o intervalo de tempo, ambas as equipas podem fazer alterações ao seu código, corrigir problemas de conexão, mudar ids, etc. No entanto, a equipa deve voltar a conectar-se antes do tempo de desconto acabar. Se tal não ocorrer, considera-se que a equipa desistiu do jogo. Movimentação de jogadores. Os operadores e membros da equipa só podem mexer nos seus robôs se tiverem a autorização do árbitro. Este último pode mover manualmente os robôs, caso considere necessário para o bom desenrolar do jogo (dois robôs ficam presos um no outro, por exemplo). Pontos. Por cada jogo, uma vitória oferece 3 pontos, um empate 1 ponto e uma derrota 0 pontos. Preliminares. Nesta primeira fase, todas as equipas vão jogar umas contra as outras. As melhores equipas vão passar à fase seguinte. Comparação de equipas. As equipas são comparadas pela seguinte ordem de factores: Pontuação total, número de vitórias, diferença entre golos marcados e sofridos, golos marcados e comparação do resultado entre duas equipas. Se nesta altura as equipas continuarem empatadas, o desempate é feito por moeda ao ar. 28

29 Playoffs. O número de equipas que chegam a esta fase irá depender do número total de equipas e da quantidade de campos e tempo disponível. Nos jogos de playoff, em caso de empate, será dado um tempo adicional de 10 minutos, após um intervalo de 5 minutos. Se depois deste tempo extra o resultado continuar empatado passa-se à marcação de grandes penalidades. Cada equipa poderá rematar 5 vezes, sendo a bola colocada no centro do campo. A primeira equipa a rematar será escolhida por moeda ao ar. A equipa que vai rematar pode colocar o seu robô em qualquer ponto do campo, ao passo que a equipa que defende deve colocar o seu robô na linha de golo. O robô que defende pode mover-se livremente, mas não deve tocar na bola antes do adversário, se tal ocorrer, é considerado golo. Se ao fim dos 5 remates por equipa, o jogo continuar empatado, procede-se a mais uma ronda. A equipa que atacou primeiro, é agora a primeira a defender. Nesta segunda fase, as equipas só tem uma hipótese de recuperar o resultado, se falhar, a outra equipa é declarada vencedora. Se depois desta fase o jogo continuar empatado, são usados os mesmos critérios que na fase preliminar. Se mesmo assim o empate continuar, o vencedor será seleccionado por moeda ao ar. Faltas. Compete ao árbitro assinalar qualquer falta. Quando uma falta ocorre, o árbitro irá pedir ao operador que faça uma pausa no jogo. A bola fica no mesmo ponto onde estava quando o jogo foi parado. À equipa que sofreu a falta será dada uma posição privilegiada, isto é, poderão colocar os seus robôs mais perto da bola. Exemplos de faltas são: o Rodear a bola com jogadores de tal forma que a outra equipa não pode aceder a esta. o Segurar ou bloquear a bola contra o limite de campo. o Bloquear a passagem dos jogadores da equipa adversária. o Empurrar um jogador adversário para o tirar do jogo. Sempre que não for claro qual a equipa culpada pela falta, o árbitro irá colocar os robôs envolvidos na situação junto à linha lateral mais próxima. Esta reposição deve ser feita um robô de cada vez e alternando entre equipas. O árbitro deve colocar os robôs de forma a que nenhuma equipa fique em vantagem. Exemplos de faltas neste tipo de situação: o Falta de progresso do jogo. o Quando se forma um aglomerado de jogadores e não é claro qual a equipa responsável. 29

30 Fair Play. O objectivo do jogo é disputar uma partida de futebol de acordo com o senso comum e com as regras impostas. Tentar contornar as regras é considerado falta de desportivismo e é rigidamente proibído. Se for considerado que uma equipa se serve de métodos menos nobres, essa equipa será desqualificada. Se uma equipa estiver sobre suspeita, os organizadores têm o direito de pedir as informações necessárias de forma a determinar se existiu falta de desportivismo. Exemplos de falta de desportivismo são: o Usar os binários de outras equipas. o Enviar mais que uma mensagem por ciclo. o Uma equipa desligar os seus robôs ou tomar alguma acção de forma a beneficiar a equipa adversária. 3.4 O robô real Na figura 4 pode ser visto o robô obrigatoriamente utilizado por todas as equipas. Este robô foi criado pela CITIZEN e é apenas para uso científico, não tendo uso comercial. Este robô é constituído por duas partes. No seu topo contém uma placa com o controlador, constituído por dois microprocessadores (ARM e AVR), um conector de 80 pinos para variados usos e um receptor de infravermelhos, responsável pela recepção de comandos enviados pelo servidor. Esta placa está embutida no corpo do robô, que contém dois motores (motores de relógio), duas rodas de 10mm de raio e duas baterias de iões de lítio. Com a ajuda do conector de 80 pinos as equipas podem projectar novos equipamentos a acrescentar aos robôs (uma câmara, por exemplo). Durante a competição foi discutida a hipótese de nas competições futuras se vir a usar um novo robô, devido ao/a: Preço elevado do robô (aproximadamente 200 dólares cada). Instabilidade (muitas vezes pára a meio do jogo e tem de ser feito um reset manual no robô para voltar a funcionar). Problemas com a recepção dos comandos (muitas vezes o receptor de infravermelhos fica obstruído devido à posição de outro robô ou devido à etiqueta identificadora colocada sobre o robô). Pensa-se que a melhor solução seja procurar no mercado um robô que tenha algum fim comercial, de forma a que o seu preço seja mais reduzido, mas que mantenha uma boa performance, para que as equipas não percam jogos devido a falhas no robô, o que levaria ao desinteresse por parte dos aficionados pela modalidade. Uma última opção foi ainda tida em conta: a de que no futuro houvesse a possibilidade das equipas poderem criar os seus próprios robôs, retirando à organização a responsabilidade de possíveis falhas durante os jogos. 30

31 Figura 4: Robô utilizado na "Mixed Reality" e suas respectivas dimensões (em milímetros) Dentro do módulo de controlo do robô (descrição mais à frente), alojado no servidor, foi feita uma discretização das velocidades permitidas pelo robô. Tais valores podem ser observados na figura 5. Figura 5: Discretização das velocidades. [SourceForge, 2010b] 31

32 3.5 O sistema da Mixed Reality Na figura 6 pode ser visualizada a arquitectura usada para tornar possível o desenrolar dos jogos. A infra-estrutura da Mixed Reality consiste em: Câmara (colocada por cima do campo de jogo) e vision-tracking; Emissores de infravermelhos (localizados à volta do campo), controlados pelo Robot Control; Sistema de projecção, onde é projectado tanto o campo de jogo, como a bola e os robôs. Nesta edição da competição, e nas anteriores, foi usado um televisor LCD, mas não se descarta a possibilidade de se vir a usar uma tela e um projector, de forma a se poder realizar jogos com um maior número de robôs. No entanto, esta possibilidade não será considerada a curto prazo. Figura 6: Arquitectura da "Mixed Reality" O televisor LCD é colocado na horizontal tornando possível que os robôs se movimentem facilmente na sua superfície plana. Estes mesmos robôs interagem com os objectos que são projectados no televisor LCD, podendo por exemplo chutar a bola virtual que está representada no ecrã e não existe no mundo real. Nesta infraestrutura, o servidor (MR-SoccerServer [Silva, 2009]) é responsável pelo ambiente simulado, pelos objectos virtuais e pela supervisão do jogo (saída da bola pelas linhas finais, recolocação da bola, etc). Os robôs são controlados por agentes de software, instalados num computador remoto. Existem dois computadores, um para cada equipa, onde corre o software de cada agente. Não é permitido o uso de computadores pessoais para este efeito, pelo que nos primeiros dias da competição é necessário verificar se os agentes correm sem problemas nos computadores fornecidos. Os emissores de infravermelhos e a câmara são os actuadores e os 32

33 sensores no ambiente real. A câmara é responsável por detectar a posição dos robôs [Yanagimachi e Guerra, 2007]. A figura 7 pode ajudar a melhor perceber a estrutura do sistema da Mixed Reality, da RoboCup. Figura 7: Estrutura do sistema da Mixed Reality [Gerndt e Guerra, 2008] Este sistema tem um preço elevado, já que para se disputar um jogo 5 vs 5 é necessário [SourceForge, 2010a]: Televisor TFT (42 polegadas) ~ 1350 Euro Conjunto de robôs (pelo menos 10) ~ 2000 Euro Câmara ~ 200 Euro Estrutura metálica ~ 400 Euro Emissor de infravermelhos ~ 50 Euro Luzes de alta frequência ~ 500 Euro Somando o preço de todos os itens chega-se à conclusão que o sistema completo tem um custo aproximado de 4500 Euro, um valor que pode ser elevado para alguns interessados na competição. 33

34 3.6 Simulador Introdução Os simuladores são ferramentas muito importantes para o desenvolvimento tanto de equipas para a RoboCup, como para muitas outras aplicações. No âmbito do futebol robótico, o simulador permite às equipas testar a performance do seu conjunto de agentes, antes de o fazerem no ambiente real. Isto faz com que seja mais fácil para uma nova equipa desenvolver os seus agentes, já que fornece um meio prático, rápido e barato de teste. Como vimos, a Mixed-Reality é composta pelos robôs reais e por um ambiente virtual (simulado). Fazem parte deste ambiente simulado o campo de jogo, a bola e as bandeiras de campo. Este ambiente é simulado por um servidor, que comunica com o software dos agentes, fornecendolhes a posição de cada jogador, da bola e das bandeiras. Cada agente processa esta informação e toma uma decisão. Os comandos de acção são depois enviados para os robôs físicos via infravermelhos. No jogo puramente simulado os robôs reais são substituídos por um módulo de software chamado MR-simulator. De forma a facilitar a criação de equipas, principalmente para aqueles que não tem acesso a todo o equipamento para recriar jogos (ecrã LCD, robôs, etc.), foi criado um simulador. Mas antes de falar deste simulador, é importante conhecer o software usado na "Mixed Reality": Soccer Server. Este módulo foi criado com o objectivo de fornecer a conexão e comunicação entre os outros módulos. Por isso este módulo deve ser o primeiro a ser inicializado. Vision Tracking. Permite o reconhecimento dos robôs colocados em campo, retornando a sua posição, para que possa ser representado na imagem. Para o efeito é usada também uma câmara de filmar IEEE1394. Robot Control. Este módulo é responsável por receber os comandos XML, enviados pelos clientes, e transformá-los de forma a poderem ser enviados por um emissor IrDA, conectado por USB. Graphics. Este é o módulo que cria as imagens 2D. Quando está a correr, este módulo espera pelos ficheiros que vêm pela rede e representa os comandos gráficos, codificados em XML. Soccer Operator. Esta aplicação fornece um interface simples para interagir com o Soccer Server, usando uma consola para o efeito. É através desta aplicação que se pode reposicionar a bola, parar o jogo, dar por terminado o jogo, entre outros. Soccer Client. Este é o cérebro por trás do robot. Todo o processamento é feito durante um ciclo e no seu fim a informação deve ser enviada para o Soccer Server. 34

35 Este é o software usado em competição. No entanto, no caso de não se possuir todo o equipamento, qualquer pessoa pode desenvolver a sua equipa, usando para o efeito o simulador MR-Simulator O MR-Simulator é um simulador responsável por simular os módulos Vision Tracking e Robot Control/Infravermelhos, substituindo também os robôs reais por uns simulados. Desta forma, para alguém desenvolver uma equipa apta a participar num torneio mundial de futebol robótico, necessita apenas de um computador, podendo dispensar os robôs, os emissores de infravermelhos, a câmara e o televisor LCD. Este simulador permite às equipas testar as suas tácticas e estratégias, permitindo melhorar as capacidades defensivas e ofensivas, num ambiente que é bastante estável. Este simulador é também uma boa alternativa para quem se está a iniciar na competição, já que fornece um ambiente menos oneroso e dispendioso de tempo, pois não requer aquele decorrente da inicialização de um jogo no sistema completo - cerca de dez minutos, caso não haja problemas. O ciclo principal do MR-Simulator pode ser visto na figura 8. Figura 8: Ciclo principal do MR-Simulator, [Simões, 2010] Simulação do ambiente De forma a simular os módulos Vision Tracking e Robot Control foram criados módulos virtuais para fazer a troca de mensagens com o servidor. O módulo virtual de Vision Tracking baseia-se na posição inicial do robô e em modelos de trajectórias e colisões dos robôs. Este módulo envia mensagens para o servidor, que contém a posição e a orientação dos robôs. O servidor, por sua vez, envia os comandos originados pelos clientes para um Robot Control Simulado, que discretiza a velocidade de acordo com a figura 5 e a envia os robôs virtuais. O servidor não necessita de nenhuma alteração para funcionar com o simulador, pelo que o seu comportamento é o mesmo, se estiver a comunicar com os módulos reais. 35

36 Simulação dos Robôs O robô é simulado como sendo uma figura plana com a dimensão de 25 x 27mm. Cada robô simulado tem um nome, ID, orientação, tamanho e velocidade das rodas, de acordo com a informação que é passada pelos agentes. A simulação dos robôs é feita através do uso de modelos de trajectória e colisão. 3.7 Conclusões A Mixed Reality é uma liga da RoboCup que atravessa um período crítico. Enquanto as outras ligas da RoboCup Soccer já se estabeleceram, a Mixed Reality encontra-se ainda numa posição instável, razão pela qual ainda é considerada uma liga de demonstração. De forma a poder estabelecer-se é importante que todo o sistema de jogo seja mais estável, já que durante os jogos ocorrem inúmeras paragens, tanto por falhas mecânicas dos robôs, como por falhas do sistema de visão. Tais paragens tornam o jogo menos interessante para quem assiste, já que dez minutos de jogo podem chegar a demorar mais de meia hora. Outra consequência das consecutivas falhas é levar muitas vezes a que o jogo se torne injusto, já que se sofrem golos porque um robô teve um problema técnico ou se falham golos certos porque o sistema de visão deixa de conseguir identificar um robô, o que leva a situações de confronto. Uma forma de diminuir as paragens e a interferência humana seria utilizar o reposicionamento automático dos robôs, tal como é feito em algumas ligas de futebol do RoboCup. Ao contrário do que já acontece nas outras ligas de futebol simulado, na Mixed Reality não existe a possibilidade de comunicação, o que remove muitas possibilidades para um jogo mais interessante. Através da comunicação entre agentes seria possível criar um melhor entendimento entre eles, pois como se viu no capítulo 2, a habilidade social de um agente é uma característica importante para a performance tanto do próprio, como do sistema multi-agente. O uso da comunicação traria para a competição a possibilidade das equipas poderem criar melhores jogadas estudadas, passes em desmarcação e muitas outras funcionalidades que actualmente são pouco trabalhadas mas que trariam maior qualidade ao jogo. Existe ainda uma outra característica que leva a que a Mixed Reality não se consiga estabelecer como uma das ligas principais do RoboCup. O principal objectivo da RoboCup Soccer é conseguir derrotar a equipa campeã mundial de futebol humano. Enquanto a Liga 2D permite trabalhar a fundo as características de estratégia e táctica e a Liga 3D permite o desenvolvimento dos movimentos dos robôs humanóides, a Mixed Reality não tem nenhum objectivo principal. Foi sugerido que se introduzisse a possibilidade de se disputar jogos entre humanos e robôs reais, já que este é o principal objectivo da organização e ainda não há nenhuma liga que o faça. Outro campo a ser melhorado é o do simulador. Apesar de ser uma excelente ferramenta para testar a performance da equipa, a sua resposta é um pouco diferente do que se verifica na realidade. Tal situação ocorre porque o ambiente simulado é perfeito. Neste ambiente deveriam ser acrescentados alguns erros, ou talvez ser criado um novo modo de simulação, de forma a que os testes possam ser levados a outros níveis. Tais erros podem consistir em: 36

37 Velocidade do robô ser diferente da que foi requisitada (devido a derrapagens das rodas, por exemplo); Interferências no sistema de visão. 37

38 Capítulo 4 Desenvolvimento do Agente O agente criado conta com uma função denominada Strategy, responsável pelas decisões de alto nível. Esta função recebe a informação necessária de um ficheiro de nome WorldData e envia as acções para o ficheiro de nome BasicPlayer, responsável por as executar. Todo este processo é controlado pelo ficheiro SampleAgent Ficheiros Os principais ficheiros criados para a estrutura do agente da equipa desenvolvida foram: WorldData. Contém o software necessário para a extracção do estado do mundo, isto é, informação sobre o estado do jogo (posições de jogadores, posição da bola, velocidade de um colega de equipa, etc.). BasicPlayer. Contém todas as acções que um jogador pode desempenhar (chutar, passar, parar, driblar, etc.). Algumas acções são mais complexas e podem usar uma ou mais acções contidas no próprio ficheiro. SampleAgent. O agente propriamente dito, que usa a informação obtida pelos métodos intrínsecos a WorldData e toma acções contidas em BasicPlayer. 38

39 Existem ainda outros ficheiros importantes, muito úteis para a criação dos agentes, a destacar: BasicUtils. Descrição da classe que manipula os vectores em coordenadas polares (classe vector_t). config. Configuração de parâmetros para a conexão dos agentes. Geometry. Definição de várias ferramentas úteis, tal como funções trigonométricas, vectores cartesianos (classe Vector) mais as suas operações e ainda definições de figuras geométricas (classe Circle, classe Line, classe Rectangle). start.sh. Inicia todos os agentes. kill.sh. Remove todos os agentes Metodologia para a criação da equipa Para criar o código da equipa tentou-se que este fosse o mais genérico possível, de forma a que eventuais alterações (por exemplo modificação do tamanho do campo) não tornassem o código obsoleto, ficando a equipa inviável para a competição. Apesar disto, pouco antes da competição, o servidor de jogo foi alterado, mudando também a dinâmica da bola, fazendo com que algumas funções tivessem de ser ajustadas e outras perdessem o seu valor. Um exemplo claro foi o chuto optimizado, em que se fazia a bola rodar à volta do robô de forma a ganhar mais velocidade. Após a modificação do servidor este tipo de chuto deixou não só de funcionar, como também de ser necessário, uma vez que já era possível rematar a uma distância maior. Outro factor importante é criar um código em que seja fácil a alteração de aspectos básicos, tal como estratégias e posicionamentos Ficheiro WorldData Neste ficheiro encontra-se o código responsável por averiguar o estado do mundo. Nele podem ser encontradas as funções que permitem a obtenção dos seguintes dados por parte do agente: Vectores em coordenadas polares que unem o agente às diferentes bandeiras do campo de jogo. Vector em coordenadas polares que une o agente a um outro agente, da mesma equipa ou não. Qual o companheiro mais próximo de uma certa zona? Qual o adversário mais próximo de uma certa zona? Qual o adversário mais próximo de um dado companheiro? Qual o companheiro mais próximo de um outro companheiro? Qual o adversário mais próximo de um outro adversário? Qual o companheiro mais próximo da bola? Qual o adversário mais próximo da bola? 39

40 Qual o estado do jogo, nomeadamente se o jogo está "ON"? Quais as dimensões do campo? Qual a posição da bola? Qual a velocidade da bola? Qual a minha posição no campo? Qual a minha orientação? Quais as posições dos meus colegas? Sou o agente mais perto da bola? Qual o vector que me une ao centro da baliza adversária? Qual o vector que me une ao centro da minha baliza? Posso avançar com a bola? Algumas funções são bastante simples e não necessitam de explicação, outras no entanto, envolvem alguns cálculos matemáticos. Sobre estas será explicado mais à frente qual o raciocínio que está por trás. Na figura 9 pode ser visto o tipo de informação que é fornecida e sobre a qual é necessário manipular, de forma a obter informações de mais alto nível. Figura 9: Informação básica disponível [Lau e Reis, 2007b] GetFieldDimensions() Esta função é responsável por adquirir as dimensões do campo. Apesar de durante o jogo o campo não mudar de dimensão, pode ocorrer que pouco antes do torneio começar as medidas oficiais sejam alteradas, pelo que é necessário estar preparado para esta situação. Para isso foi criada esta função que permite averiguar quais as reais dimensões do terreno de jogo. Na figura 10 pode ser visto um esquema do método utilizado. 40

41 Figura 10: Cálculo das dimensões do campo e e fazendo a Obtendo os vectores que unem o agente aos cantos subtracção desses vectores, podemos obter um vector com o mesmo comprimento do. Um raciocínio semelhante pode ser usado para obter a outra dimensão. campo GetMyPosition() O objectivo desta função é obter a localização do agente dentro do terreno de jogo. A figura 11 pode ajudar a perceber o método usado para esta função. Figura 11: Cálculo da posição do agente 41

42 Obtendo os vectores que unem o agente às bandeiras de canto da sua própria baliza e podemos adquirir as distâncias do agente a essas mesmas bandeiras. Com estes valores podemos escrever que e ã equações podemos chegar ao resultado:, desenvolvendo este sistema de. 2., (1.1), (1.2) Sabendo os valores de h e a, basta realizar as seguintes operações, de forma a ficar com a posição do agente nas coordenadas x e y ilustradas na figura 11. ã 2, (1.3) ã 2, (1.4) GetMyOrientation() Esta função é responsável pela aquisição da orientação do agente. Foi definido que se o agente estiver no centro do campo, a olhar para o centro da equipa adversária, terá um ângulo de orientação igual a zero, sendo para a sua esquerda ângulos negativos e para a sua direita ângulos positivos. Esta forma de encarar o lado positivo e negativo dos ângulos foi feita de forma a estar de acordo com as definições do servidor, já que os vectores em coordenadas polares fornecidos pelo servidor são enviados segundo esta convenção. Com os dados da figura 12, podemos calcular a orientação do agente. Figura 12: Cálculo da orientação 42

43 Na imagem foi considerado o valor absoluto de atan2. Se chamar α ao ângulo do vector para a bandeira de canto, pode-se definir quatro situações: Se α>0 e α > atan2(a,h) α atan2 a, h, (2.1) Se α>0 e α < atan2(a,h) atan2 a, h α, (2.2) Se α<0 e -α+atan2(a,h)>π 2, α, (2.3) Se α<0 e -α+atan2(a,h)<π atan2 a, h α, (2.4) GetBallPosition() Com o uso desta função é possível adquirir a posição da bola, em coordenadas x,y. Para tal, é pedido ao servidor o vector em coordenadas polares que une o agente à bola. Na figura 13 está representado esse vector. Figura 13: Cálculo da posição absoluta da bola Sabendo a orientação do agente e o ângulo do vector em coordenadas polares que o une à bola, o ângulo absoluto da bola é facilmente calculado, sendo uma 43

44 simples soma da orientação(β) com o ângulo visto pelo agente (θ). A posição da bola em relação ao agente será: cos 1 sin 2, (3.1) Onde é o comprimento do vector que une o agente à bola, α1 e α2 são ambos o ângulo absoluto da bola. No caso da orientação ser em valor absoluto maior que π/2, deve ser feita a correcção α2= -α2 - π. A posição absoluta da bola será a soma da posição absoluta do jogador com a posição relativa da bola GetPlayerPosition() Esta função tem como objectivo dotar um agente da capacidade de adquirir a posição absoluta de um outro jogador. O método utilizado é o mesmo que na função GetBallPosition(), com a diferença que o vector considerado será o vector que une o próprio agente ao agente cuja posição se quer calcular IamClosestToBall() Através desta função é possível o agente saber se é, dentro da equipa, aquele que está mais próximo da bola. Usando a função pv_closest_teammate_to_ball() é possível, para o agente, saber quem é o colega mais próximo da bola. A função pv_teammate() permite saber qual o vector que une os dois agentes ( ). Subtraindo o vector que une os dois agentes ao vector que une o agente à bola ( ), o resultado, visível na figura 14, será o vector que une o outro jogador à bola ( ). Comparando o comprimento deste vector com o comprimento do vector que une o agente à bola, pode-se saber qual é o agente que está de facto mais próximo da bola. Figura 14: Vectores necessários para a função IamClosestToBall() 44

45 CentroBaliza() Esta função retorna o vector que une o agente ao centro da baliza. Para tal é realizado o cálculo representado na figura 15. Figura 15: Cálculo de CentroBaliza() Sabendo os vectores que unem o agente aos postes da baliza ( ), somando estes dois vectores e dividindo o comprimento do vector resultante por dois, obtemos o vector pretendido ( ) Ficheiro BasicPlayer Neste ficheiro foram definidos alguns movimentos básicos, tais como: Chutar a bola; Rodar para a direita / esquerda; Curvar para a direita / esquerda; Ir para um ponto dado um vector em coordenadas polares; Ir para um ponto dadas as coordenadas x e y; Ir para a posição estratégica; Parar; Passar a bola a um colega; Passar a bola ao colega mais próximo; Rematar à baliza; Chuto melhorado. Para além disso, neste ficheiro também estão definidas algumas funções importantes tal como: Envio de um comando para o servidor; 45

46 Verificação da capacidade do agente chutar a bola; Tomada de decisões pelos jogadores; Código do guarda-redes. Para criar todos estes movimentos apenas se dispõe de dois comandos básicos aceites pelo servidor, o comando setkick(angle, strength), para chutar a bola com uma dada força e direcção e o comando setvelocity(left,right), para definir as velocidades de cada roda do agente. Todas as outras funções têm de ser desenvolvidas a partir destas duas. Tal como foi feito para o ficheiro WorldData, vai ser dada uma explicação para as funções mais complexas GoToXY(double xx, double yy) O objectivo desta função é enviar um agente para um ponto (x f,y f ) do terreno de jogo. Junto com os ficheiros disponibilizados pela organização já vem incluída uma função para enviar um agente para um ponto definido por um vector em coordenadas polares, com origem no agente. Assim o objectivo desta função é criar esse vector, para se poder utilizar a função fornecida. Na figura 16 é possível observar o problema em causa. Figura 16: Vector em coordenadas polares para o destino Sabendo a localização do agente (X i,y i ), a sua orientação (β) e as coordenadas do ponto de destino (X f,y f ) é possível calcular o vector em coordenadas polares que une o agente ao destino. O comprimento do vector é dado por: X X Y Y, (4.1) Sendo (Xi,Yi) as coordenadas de posição do agente e (Xf,Yf) as coordenadas do ponto de destino, o ângulo do vector (α) pode ser calculado da seguinte forma: 46

47 2,, (4.2) Por fim, é necessário limitar o ângulo ao intervalo [-π,π], pelo que se deve, caso o ângulo não esteja neste intervalo, proceder à soma ou subtracção de 2π, de forma a que o ângulo se encontre no intervalo pretendido KickXY(Vector FinalPos) Com esta função é possível chutar a bola de forma a que ela pare nas coordenadas X,Y definidas pelo vector FinalPos. Para tal é necessário criar um vector em coordenadas polares que una a bola ao ponto de destino. Esta função é parecida com a anteriormente demonstrada, sendo o ponto de origem a bola e o ponto de destino o local onde se quer colocar a bola. Com este vector criado, o agente já sabe para onde deve chutar, mas necessita também de saber qual a força que deve utilizar. O método que se utilizou foi fazer uma linearização entre a força de chuto e o local onde bola irá parar. Considerando que num remate de força máxima (força=1), a bola percorre a distância Xmax, podemos dividir o comprimento do vector calculado por Xmax, obtendo assim a força de remate. No caso de a força resultante ser maior que 1, significa que o ponto de destino está muito longe, e devemos chutar com a força máxima Goalie() Nesta função está o algoritmo de movimentação do guarda-redes. Na maior parte do tempo o guarda-redes deve localizar-se entre a bola e o centro da baliza, de forma a diminuir as possibilidades de golo do adversário. Para conseguir calcular esse ponto, foi feito o cálculo representado na figura 17. Figura 17: Posição ideal para o guarda-redes 47

48 Através dos vectores em coordenadas polares que unem o guarda-redes à bola ( ) e ao centro da sua baliza ( ), o ponto onde o guarda-redes se deve colocar é: ) 2, (5.1) Em que é o vector para onde o agente se deve mover, é o vector que une o agente à bola e é o vector que une o agente ao centro da sua baliza. Uma vez que este método pode gerar pontos muito afastados da baliza, foi feito um limite para os valores de posição que o guarda-redes pode tomar. Desta forma o agente continuará a colocar-se entre a bola e o centro da baliza mas sempre nas proximidades desta. No caso de o guarda-redes ter a bola ele pode tomar três decisões: Chutar para a intersecção da linha lateral com a linha de meio campo; Deslocar-se com a bola para a bandeira de canto; Passar a um colega de equipa. O guarda-redes chuta para a intersecção da linha lateral com a do meio campo, sempre que ache que o consegue fazer sem entregar a bola ao adversário. Para tal foi desenvolvida a função CanKickToPointPass. Caso não seja possível chutar para nenhum destes dois pontos, o guarda-redes encaminha-se para a bandeira de canto mais próxima. Se por acaso não houver um adversário próximo, então o guarda-redes passa ao colega mais próximo. Existem ainda duas situações em que o guarda-redes deve tentar interceptar a bola. São elas: A bola estar muito próxima da baliza; Existir um adversário isolado em frente ao guarda-redes Ficheiro SampleAgent Este ficheiro contém o ciclo principal do agente. As principais e mais importantes instruções contidas nesse ciclo são as seguintes: gworlddata.updatews(); gplayer.fillinwsforstrategy(); gplayer.strategy.callstrategy(); gplayer.strategy.dm_actionpoint = gplayer.strategy.calculatetarget(gworlddata.ws_mypos,gworlddata.ws_ballpos); gplayer.player(); Esta sequência demonstra o funcionamento do agente. A primeira acção do agente é calcular os valores do estado do mundo, os valores adquiridos pelos seus sensores virtuais. De seguida ele actualiza esses valores e chama a função responsável por escolher a melhor estratégia. Chama ainda uma função que calcula o ponto para 48

49 onde o jogador deve chutar a bola. Por fim é chamada a função Player() contida no ficheiro BasicPlayer. Esta função toma uma de três decisões: Se tem a bola chutável: Chuta para o ponto estratégico; Se é o agente mais perto da bola: Tenta interceptar a bola; Se não é o agente mais perto da bola nem a pode chutar: Desloca-se para a posição estratégica. No caso de se tratar do guarda-redes, então a função Player() chama a função Goalie(), responsável pelos comportamentos dele. 4.6 Conclusões Neste capítulo foi realizada uma descrição resumida do agente desenvolvido para a equipa FC Portugal. Este agente inclui todas as funções de percepção, decisão e acção necessárias para participar na liga de Mixed Reality do RoboCup. 49

50 Capítulo 5 Desenvolvimento da Estratégia da Equipa A equipa de futebol robótico simulado FCPortugal, implementou uma função responsável por tomar as decisões de alto nível. Esta função tem o nome Strategy. O primeiro passo desta função é proceder à leitura de um ficheiro de configuração denominado strategy.conf.mr. Neste ficheiro de configuração está uma lista de opções que pode ser alterada, de forma a estabelecer o comportamento desejado para a equipa. No ponto 5.1 Para que esta função possa desempenhar o seu papel, é necessário fornecer-lhe a informação sobre o estado do mundo. Esta informação é fornecida pelo ficheiro WorldData (ver ponto 4.3). Após a informação estar actualizada, a função retorna o ponto para onde o jogador se deve mover, ou no caso de estar na posse da bola, o ponto para onde a deve chutar. Estas acções são então desempenhadas pela função BasicPlayer (ver ponto 4.4) Ficheiro strategy.conf.mr Neste ficheiro é possível definir toda a estratégia da equipa tal como formações, posicionamento estratégico, tendências para onde devem os agentes levar a bola e até quando devem mudar estes parâmetros, dependendo do resultado e do tempo de jogo. Este tipo de ficheiro que controla as decisões de alto nível pode ser visto em outras equipas [Lange et al., 2008]. O ficheiro tem o seguinte conteúdo: 50

51 # Common Framework Strategy Configuration File FC Portugal Luis Paulo Reis 3 # 1-2D, 2-3D, 3-MR - Strategy Type # Num_Tactics Num_Players Formations Player_Types Flux_Matrixes Sets_SetPlays 0 # Opponent Number 0 - default 2 1 # Number of Time Tactics and opponents - tactic depends on result, time and opponent # Opp Numb - Losing Bad, Losing, Drawing, Winning, Winning Bad Nesta primeira parte podemos definir: Strategy Type: podemos definir qual a estratégia a usar. Neste caso foi definido o valor 3, que corresponde à estratégia para a Mixed Reality; Na linha seguinte é definido o número de tácticas a usar (duas), o número de jogadores da equipa (cinco), o número de formações (quatro), o número de tipos de jogador (quatro) e o número de matrizes de fluxo (três); Quanto às Set Plays (jogadas estudadas), foram deixados os valores em 0, já que não foram implementadas jogadas estudadas para esta liga; Nas últimas linhas é definido quais as tácticas a usar, dependendo se a equipa se encontra na primeira ou segunda parte do jogo e do resultado actual. Podemos verificar que em ambas as partes são usadas as mesmas tácticas e que a táctica 1 só é usada caso a equipa esteja a ganhar por mais de 3 golos (Winning Bad). Numa segunda parte do ficheiro, é feita a definição das tácticas : # Tactics Definition # Tactic 1 - Tactic Description - Exp # Formation, Flux, SetPlans, WFlux, WSafe, WEasy 0 # Form used in each situation (Att/Def, KickOff(O/T), CornKickIn, FKick, GFKick, Pen 2 # Tactic 2 - Tactic Description - Exp # Formation, Flux, SetPlans, WFlux, WSafe, WEasy 0 # Form used in each situation (Att/Def, KickOff(O/T), CornKickIn, FKick, GFKick, Pen Tomando como exemplo a táctica 1, podemos definir: Formação - 4 Matriz de fluxo - 3 Movimentação devido ao fluxo Movimentação de segurança (Este valor define para onde o jogador deve chutar a bola, tendo em conta a posição do adversário, ver ponto 5.4) Os restantes valores não foram usados 51

52 Numa fase seguinte podemos definir algumas características dos jogadores: # Player Types Definition # PT Number # AttractionX # AttractionY # AreaAttrAttack (last 1/4) not used # AreaAttrDefense (last 1/4 of field) not used # BehindBall # MinX # MaxX # MinY # MaxY # Decision Algorithm 1-Goa, 2-Def, 3-Att Tomando como exemplo o jogador 1, podemos verificar que: AttractionX: Sofre uma atracção pela bola de 0.1, segundo o eixo X AttractionY: Sofre uma atracção pela bola de 1, segundo o eixo y BehindBall: 1 (deve manter-se sempre atrás da bola) MinX: ( posição mínima segundo X que pode ocupar) MaxX: ( posição máxima segundo X que pode ocupar) MinY: ( posição mínima segundo Y que pode ocupar) MaxY: ( posição máxima segundo Y que pode ocupar) Decision Algorithm: 1 (1 para guarda-redes, 2 para defesa e 3 para avançado) Podemos verificar que o jogador do tipo 1 é um guarda-redes, os jogadores do tipo 2, 3 e 6 são defesas e os jogadores 4 e 5 são avançados. No bloco seguinte são definidos os parâmetros das formações. # Formations Definition # Formation 1 - Type 1 - SBSP , #Posx , #Posy #Type PT_GOA PT_MID PT_DEF # test Formation 2 - Type 1 - SBSP , #Posx , #Posy #Type PT_GOA PT_MID PT_DEF # Formation 3 - Type 2 - Delaunay - Formation description 3 FormacaoFinal.conf # Name #Type PT_GOA PT_MID PT_DEF # Formation 4 - Type 2 - Delaunay - Formation description 4 formations-ataque-ultimo.conf # Name #Type PT_GOA PT_MID PT_DEF... Na formação 1 temos para cada um dos cinco jogadores a definição da posição base que deve ocupar e qual o tipo de jogador que ocupa essa posição (definido no bloco anterior). Enquanto a formação 2 é semelhante em termos de parâmetros à formação 1, as formações 3 e 4 usam um ficheiro externo para definir as posições base, fazendo uso da triangulação de Delaunay. Esta metodologia será mais à frente explicada, no ponto

53 O bloco seguinte define as matrizes de fluxo: # Flux Matrixes Definition # Flux 1,Type 1 (old) - Types:Norm 1, Del 2 - Flux Description - Normal # Flux 2,Type 1 - Flux Description - Test go back with ball # Flux 3,Type 2 - Delaunay - Flux Description fluxo1.conf # name 4 2 # Flux 4,Type 2 - Delaunay - Flux Description fluxo1.conf #name Neste caso podemos verificar que as matrizes de fluxo (ver mais à frente a sua importância no ponto 5.3) 1 e 2 estão claramente especificadas (sendo do tipo 1), enquanto as matrizes 3 e 4 são definidas por um ficheiro externo (neste caso o mesmo, sendo as matrizes do tipo 2). O bloco de SetPlays, ou jogadas estudadas, não foi alterado, uma vez que não foi utilizado. # SetPlays Definition ("setplay.conf") # Set Number and Type (1 - Old Setplays, 2 - New Setplays) - Set Description # Set Number and Type 2 - New Setplays - Set Description # Set Number and Type 2 - New Setplays - Set Description Por fim são fornecidos alguns parâmetros do jogo e do sistema: # General Domain Parameters # Game Time, Extra Time # Field Size TODO # Penalty Area Size and goal width TODO # max kick distance, running speed/sec, agentsize # END OF CONFIGURATION FILE

54 Esses parâmetros são: Duração total do tempo de jogo; Duração do tempo extra; Dimensões do campo; Dimensões da grande área e da baliza; Distância máxima a que um agente consegue chutar a bola; Velocidade máxima que ele consegue atingir; A dimensão do agente. Alterando este ficheiro podemos mudar rapidamente a forma de pensar e agir de uma equipa sendo por isso uma mais valia [Lau e Reis, 2002], principalmente no decorrer dos jogos em que se dispõe de pouco tempo para fazer alterações. Por outro lado, acrescentar novos tipos de jogadores e novas matrizes de fluxo, por exemplo, é uma tarefa que não demonstra dificuldades Posicionamento estratégico A formação de uma equipa é muito importante para o desempenho da mesma. Uma boa escolha da formação pode esconder algumas das falhas da equipa ou aproveitar melhor as suas mais valias. Também se deve ter em conta que a estratégia da equipa adversária pode mudar, pelo que é necessário adaptar diferentes estratégias a diferentes adversários [Almeida, 2008]. É importante garantir que os jogadores não se encaminham todos para a bola, nem que vão para posições que não são interessantes para a equipa. Por essa razão, foi decidido que os jogadores que não possuem a bola ou que não estão a tentar interceptá-la, se devem deslocar para a sua posição estratégica. Para esta tese foram usadas duas metodologias para a criação das formações e de posicionamentos estratégicos. Numa primeira fase foi utilizado um algoritmo simples, denominado "Situation Based Strategic Positioning" [Lau e Reis, 2007a], em que cada jogador ocupa uma posição base e sente depois uma atracção pela bola, sendo essa atracção definida no ficheiro Strategy.conf.MR. Este tipo de metodologia pode ser observado, por exemplo, na equipa CAMBADA de futebol robótico com robôs reais [Lau et al., 2008]. A fórmula de cálculo da posição para onde o jogador se deve deslocar, no caso de se querer deslocar para a sua posição estratégica, é: çã é = çã +( çã çã ), (6.1) Esta é uma forma simples de implementar o posicionamento estratégico. No entanto, não permite uma disposição diferente para cada zona do campo. Podemos por exemplo querer que, quando a bola se encontra no meio campo adversário, três jogadores avançados se disponham em linha e apenas um defesa fique mais recuado, ao passo que numa situação mais defensiva, possa ser mais útil ter quatro jogadores em linha na defesa. Para dar resposta a este problema, foi usado o software "matchflow", já usado para a Liga 2D e 3D. Este software permite que se definam, para certos pontos onde a bola possa estar, a localização dos agentes. Para os restantes pontos a posição estratégica 54

55 é calculada usando a triangulação de Delaunay. Podemos ver o processo em acção nas figuras que se seguem (figuras 18 à 20): Figura 18: Posição dos jogadores com a bola no ponto 1 Figura 19: Posição dos jogadores com a bola no ponto 2 Figura 20: Posição dos jogadores com a bola entre o ponto 1 e 2 55

56 Como se pode verificar pelas imagens, numa posição intermédia entre dois pontos definidos, os agentes irão ter a sua posição estratégica num local intermédio a esses mesmo pontos. À medida que nos encaminhamos do ponto 1 para o ponto 2, os jogadores afastam-se da posição definida em 1 para se aproximarem da posição definida em 2. Na equipa CAMBADA de futebol robótico com robôs reais, foi utilizado um algoritmo dinâmico que adapta a formação a uma possível variação do número de agentes activos [Lau et al., 2009]. Um algoritmo semelhante pode ser no futuro implementado nesta Liga Matrizes de fluxo A matriz de fluxo é uma matriz que divide o campo em vários sectores e os gradua de acordo com a tendência a que queremos que o agente se desloque para esse ponto, sendo que o agente tem preferência em ir na direcção dos pontos de maior fluxo. Para a Mixed Reality optou-se por usar uma matriz de fluxo criada pelo software "Matchflow", o mesmo que foi usado para criar as formações. Para criarmos esta matriz, é necessário primeiro definir os pontos do campo que vamos graduar. Para isso deve ser criada uma formação onde definimos todos os pontos. Foi criada uma malha mais densa para as zonas perto das balizas, já que nessas zonas existe a necessidade de precisar mais detalhadamente o movimento dos robôs, uma vez que se tratam de zonas críticas. Essa malha pode ser vista na figura 21. Figura 21: Malha para definição de fluxo O passo seguinte é dar valores de fluxo aos pontos definidos. Os valores de fluxo devem ter valores mais elevados à medida que se caminha para a baliza adversária, caso contrário os robôs terão mais tendência a deslocar-se noutra direcção, o que 56

57 não é desejável. Também se deve ter o cuidado de definir valores de fluxo nulos para zonas fora do campo, já que não queremos que o robô se desloque para essa zona. A única excepção é para os pontos dentro da baliza adversária, já que encaminhar a bola para esses pontos é o objectivo primordial. Na figura 22 pode ser visto um exemplo de uma matriz de fluxo, criada no "Matchflow". Figura 22: Matriz de fluxo Neste exemplo temos até bem perto da baliza adversária (do lado direito), valores mais altos junto às alas do que no centro do terreno. Desta forma os agentes terão uma maior tendência a conduzir a bola por aí. Na maioria dos casos esta é a melhor solução, já que as equipas tendem a ter os defesas mais perto do centro do terreno, de forma a melhor defender a sua baliza. É muito raro e seria até estranho uma equipa colocar os seus defesas junto às linhas laterais, deixando um corredor central livre. Por fim podemos gravar esta matriz de fluxo, num ficheiro com extensão *.flux. Este ficheiro terá no seu interior algo semelhante a: Begin Flux

58 Em que o primeiro valor identifica o ponto, os outros dois números indicam as coordenadas desse ponto e o último número identifica o valor do fluxo Segurança O factor de segurança tem influencia no ponto para onde um jogador se move com a bola. A título de exemplo, se for usado um factor de segurança demasiado elevado, um jogador com a posse de bola poderá trazer a bola para a sua defesa em vez de partir para o ataque, já que na sua defesa não existem jogadores adversários e o risco de perder aí a bola é menor. Este comportamento é fortemente indesejável, já que a equipa não progride no campo e mantém a bola numa zona que não é interessante para os objectivos globais (marcar golos e não os sofrer). Usando um valor pequeno para a segurança, e usando uma matriz de fluxo igual à da figura 22, podemos ter resultados interessantes. Uma vez que esta matriz de fluxo tem valores bastante maiores à medida que se progride no campo e o factor de segurança é pequeno, conseguimos garantir que um jogador com a posse de bola vai sempre tentar progredir no terreno. No entanto, para uma linha paralela à linha de meio campo, os valores não são assim tão díspares, pelo que apesar de o jogador ter tendência a ir para as alas (no caso da figura 22), irá também ter tendência a desviar-se dos adversários. Assim é possível que o jogador não se desloque para a ala, caso aí se encontre um jogador adversário Conclusões Neste capítulo foi descrita a estratégia da equipa que foi adaptada da estratégia utilizada pela equipa FC Portugal noutras ligas do RoboCup. Esta estratégia é composta por tácticas, formações e fluxos de jogo. Não foi utilizado nenhum modelo para os adversários, de forma a tentar prever os seus movimentos. De acordo com Lattner, [Lattner et al., 2006] tal podia ser feito retirando pequenas informações sobre a interacção entre jogadores, informações estas contidas em "game logs". No entanto, tal artefacto não existe ainda na Liga Mixed Reality. Uma outra aplicação interessante da previsão de movimentos seria a demonstrada em [Teixeira, Lau e Reis, 2004], em que a direcção do remate à baliza é influenciada pela previsão da posição do guarda-redes. No próximo capítulo serão analisadas as influências destes factores no desempenho da equipa de Mixed Reality desenvolvida. 58

59 Capítulo 6 Testes e análise de resultados obtidos 6.1 Teste das funções do WorldData Para verificar o bom funcionamento das funções criadas, foram realizados testes à medida que estas iam sendo concluídas. Para testar as funções, colocou-se a ser impressos no terminal os valores que iam sendo calculados pelos agentes, por cada uma das funções. 59

60 6.1.1 Teste da função GetFieIdDimension() Os resultados obtidos foram os presentes na tabela 1 (em pixels). Tabela 1 - Dimensões do campo Medidas Dimensão do campo eixo X Dimensão do campo eixo Y Como se pode verificar, os resultados são bastante positivos, sendo o erro relativo menor que 0,4%. Estes valores são consistentes e independentes da localização do agente. Este valor é muito importante, uma vez que é usado nos cálculos de outras funções Teste da função GetMyPosition() Para testar esta função, era necessário saber a posição real do robô, de forma a comparar com o valor calculado. Uma vez que o sistema permite a recolocação manual da bola, o que foi feito foi colocar a bola na posição em que o robô pensa que se encontra e verificar visualmente se há sobreposição. Um dos resultados obtidos e que é demonstrativo da totalidade dos testes efectuados, é o que se encontra na figura 23. O teste neste caso foi realizado para o agente 01. Figura 23: Teste da função GetMyPosition() 60

61 Como se pode verificar, há uma sobreposição quase perfeita da imagem do jogador e da bola, estando esta quase no centro do quadrado que representa o robô, o que demonstra o bom funcionamento desta função Teste da função GetBallPosition() Para esta função o teste realizado consistiu em reposicionar manualmente a bola, numa posição que é conhecida. De seguida verifica-se na consola qual a posição da bola calculada pelos agentes. Os resultados obtidos podem ser vistos na tabela 2 (em pixels). Tabela 2 - Resultados da função GetBallPosition() Posição real da bola Posição calculada X = ; Y = X = ; Y = X = ; Y = X = ; Y= X = ; Y = X = ; Y = X = ; Y = 68.5 X = ; Y = X = ; Y = X = ; Y = Como se pode verificar, o erro relativo não é elevado, independentemente da posição da bola. Esta função usa os valores calculados pelas funções GetMyPosition() e GetMyOrientation(), pelo que se espera que o erro desta função seja superior à das outras duas Teste da função GetPlayerPosition() Para testar esta função, foi realizado um teste semelhante ao usado em 6.1.2, onde se testava a função GetMyPosition(). Neste caso, a informação que era impressa na consola por parte do agente era a posição dos restantes jogadores. Colocando a bola numa posição em que o agente julga estar um jogador, é possível verificar visualmente se existe sobreposição. Por inspecção visual o resultado foi semelhante ao obtido em , podendo afirmar-se que a função foi bem sucedida. Um exemplo típico deste teste pode ser observado na figura

62 Figura 24: Teste da função GetPlayerPosition() Teste da função GetMyOrientation() Esta função foi um pouco mais difícil de testar já que não existia uma forma de obter o valor real da orientação do agente. A experiência realizada consistiu em imprimir na consola os valores da orientação dos vários agentes e por inspecção visual, verificar se estavam correctos. Uma outra forma de validar o bom funcionamento desta função é recorrer aos resultados obtidos para as funções GetPlayerPosition(), GetMyPosition() e GetBallPosition, já que estas necessitam do valor calculado pela função GetMyOrientation(), para nos seus cálculos chegarem ao valor final. Uma vez que essas funções foram bem sucedidas, podemos afirmar que a função GetMyOrientation() foi também ela um êxito. 6.2 Teste das funções do BasicPlayer Teste da função GoToXY(double xx, double yy) De forma a verificar o correcto funcionamento desta função foi pedido ao agente que imprimisse na consola as coordenadas do ponto para onde se queria deslocar e para enviar a mensagem "Cheguei a x y" assim que atingisse o objectivo. Nessa altura o jogo era parado e verificava-se por inspecção visual, recolocando a bola nas mesmas coordenadas, se de facto o agente se tinha movido para o local correcto. O resultado obtido pode ser verificado na figura 25, onde foi realizado o teste com o agente número

63 Figura 25: Teste da função GoToXY(double xx, double yy) Como se pode ver, o agente está bastante próximo do ponto pretendido. Esse valor não é mais exacto porque se considera que o agente atingiu o seu objectivo quando está a uma distância de 10 pixels do destino, pelo que nessa altura o agente pára nessa posição Teste da função KickXY(Vector FinalPos) Para proceder ao teste desta função colocaram-se os agentes a imprimir na consola, o local onde viam a bola e o local para onde tentavam chutar a bola. Para avaliar a posição da bola foi usada a função GetBallPosition(), que já tinha demonstrado ser bastante fiável. Na tabela 3 estão os resultados obtidos, em que a posição inicial é o local onde a bola estava antes de ser chutada, a posição requisitada é o local onde o agente quer colocar a bola e a posição final é o local onde a bola parou, após ser chutada. Tabela 3 - Resultados da função KickXY () Posição inicial Posição requisitada Posição final X= ; Y = X= ; Y= X= ; Y= X= ; Y = X= ; Y= X= ; Y= X= ; Y = X= ; Y= X= ; Y= X= ; Y = X= ; Y= X= ; Y= X= ; Y = X= ; Y= X= ; Y= X= ; Y= X= ; Y= X= ; Y= X= ; Y= X= ; Y= X= ; Y=

64 Tomando como referência o tamanho do robô, um quadrado com 30 pixels de lado, podemos considerar que os resultados não foram maus, apesar de poderem ser melhores. Nesta função foi feita uma linearização entre a intensidade do chuto e a distância onde se quer colocar a bola. Não foi tido em conta a velocidade da bola no momento do chuto. Considerar a velocidade da bola poderia melhorar a precisão. Outra importante alteração que poderia ser feita seria não optar pela linearização e ter em conta a função de desaceleração da bola. Estas duas alterações propostas foram de facto implementadas, no entanto, duas semanas antes do início da competição, a função de desaceleração da bola foi alterada, pelo que não houve tempo de a modificar convenientemente. Uma vez que manter esta função mais simples não demonstrou prejudicar o desempenho da equipa, ela foi mantida assim. 6.3 Análise global aos resultados obtidos Para avaliar o desempenho da equipa houve duas equipas adversárias para a testar. No entanto, uma delas era claramente de fraca qualidade, não permitindo obter o real valor do desempenho da equipa. Por essa razão, foi apenas utilizada uma equipa para testes, equipa essa que já tinha vencido torneios anteriores. A equipa em causa é a BahiaMR. Esta equipa ataca apenas com dois jogadores, deixando o guarda-redes e os defesas atrás da linha de meio campo. Em situações em que a equipa está a defender, os dois defesas recuam para muito perto da baliza e os avançados recuam até aproximadamente metade da sua zona defensiva. As figuras 26 e 27 são exemplificativas disso, onde a BahiaMR está representada pela cor amarela. Figura 26: BahiaMR ao ataque 64

65 Figura 27: BahiaMR à defesa Para os teste foram realizados jogos de 10 minutos. Foram também testadas duas matrizes de fluxo diferentes, uma que força mais a condução da bola até à baliza adversária pelo centro do terreno e uma outra, em que a condução da bola é feita tendencialmente pelas alas. Chamarei a estas matrizes de fluxo, matriz de fluxo central e de fluxo lateral, respectivamente, podendo ser vistas nas figuras 28 e 29. Figura 28: Matriz de fluxo com preferência pelo centro (fluxo central) 65

66 Figura 29: Matriz de fluxo com preferência pelas alas (fluxo lateral) Formação com dois avançados e dois defesas. Esta formação mantém constantemente todos os jogadores atrás da linha da bola. Numa situação de ataque, os dois defesas nunca avançam muito para lá da linha de meio campo. Nas imagens que se seguem pode ser visualizado o posicionamento estratégico da equipa em diversas situações (figuras 30 à 33). Figura 30: Equipa à defesa com bola no centro 66

67 Figura 31: Equipa à defesa com bola na lateral Figura 32: Equipa ao ataque com bola no centro Figura 33: Equipa ao ataque com bola pela lateral 67

68 Como se pode verificar, esta é uma formação em que a grande prioridade é a defesa. Na tabela 4 podem ser verificados os resultados obtidos em dez jogos com o fluxo central. Tabela 4 - Resultados obtidos com dois avançados e fluxo central Jogo FCPortugal BahiaMR Na tabela 5 é feita uma estatística para esta formação com o fluxo central. Tabela 5 - Estatística com dois avançados e fluxo central Valores Totais Vitórias Empates Derrotas Golos Marcados Golos Sofridos Valores Médios 0% 30% 70% Na tabela 6 estão os resultados obtidos em dez jogos com o fluxo lateral. 68

69 Tabela 6 - Resultados obtidos com dois avançados e fluxo lateral Jogo FCPortugal BahiaMR Na tabela 7 é feita uma estatística para esta formação com o fluxo lateral. Tabela 7 - Estatística com dois avançados e fluxo lateral Valores Totais Vitórias Empates Derrotas Golos Marcados Golos Sofridos Valores Médios 10% 80% 10% Formação com quatro avançados Esta é uma formação principalmente preocupada com o ataque. Enquanto a equipa opera em modo defensivo mantém três jogadores atrás da linha da bola e outros dois à frente, de forma a poder sair mais rapidamente em contra-ataque. Quando a bola se encontra no meio campo da equipa adversária, todos os jogadores, com excepção do guarda-redes, se deslocam em direcção à baliza adversária. O descrito pode ser visto nas figuras 34 a

70 Figura 34: Equipa à defesa com a bola no corredor central Figura 35: Equipa à defesa com a bola numa posição lateral Figura 36: Equipa ao ataque com bola pelo corredor central 70

71 Figura 37: Equipa ao ataque com bola numa posição lateral Os resultados obtidos em dez jogos, com o fluxo central, podem ser consultados na tabela 8. Fi Tabela 8 - Resultados obtidos com quatro avançados e fluxo central Jogo FCPortugal BahiaMR Na tabela 9 é feita uma estatística para esta formação com o fluxo central 71

72 Tabela 9 - Estatística com quatro avançados e fluxo central Valores Totais Valores Médios Vitórias Empates Derrotas Golos Marcados Golos Sofridos % 30% 70% Na tabela 10 estão os resultados obtidos em dez jogos, usando o fluxo lateral. Tabela 10 - Resultados obtidos com quatro avançados e fluxo lateral Jogo FCPortugal BahiaMR Na tabela 11 é feita uma estatística para esta formação com o fluxo lateral. Tabela 11 - Estatística com quatro avançados e fluxo lateral Valores Totais Vitórias Empates Derrotas Golos Marcados Golos Sofridos Valores Médios 90% 10% 0%

73 6.3.3 Formação com três avançados e um defesa Esta é uma formação que se inclina bastante para o ataque. No entanto, por razões de segurança, deixa sempre um jogador atrás da linha de meio campo, para além do guarda-redes. O posicionamento estratégico da equipa pode ser visto nas figuras 38 à 41. Figura 38: Equipa à defesa com a bola numa posição central Figura 39: Equipa à defesa com a bola numa posição lateral 73

74 Figura 40: Equipa ao ataque com a bola no centro Figura 41: Equipa ao ataque com a bola junto à linha lateral Os resultados obtidos com o fluxo central podem ser observados na tabela

Inteligência Artificial Aplicada a Robôs Reais

Inteligência Artificial Aplicada a Robôs Reais Inteligência Artificial Aplicada a Robôs Reais Prof. Dr. Eduardo Simões Instituto de Ciências Matemáticas e de Computação USP Cópias das Transparências: http://www.icmc.usp.br/~simoes/seminars/semi.html

Leia mais

Arquitecturas de Software Enunciado de Projecto 2007 2008

Arquitecturas de Software Enunciado de Projecto 2007 2008 UNIVERSIDADE TÉCNICA DE LISBOA INSTITUTO SUPERIOR TÉCNICO Arquitecturas de Software Enunciado de Projecto 2007 2008 1 Introdução Na primeira metade da década de 90 começaram a ser desenvolvidas as primeiras

Leia mais

Gestão Documental. Gestão Documental

Gestão Documental. Gestão Documental Alcides Marques, 2007 Actualizado por Ricardo Matos em Junho de 2009 Neste capítulo pretende-se analisar a temática da, começando por apresentar um breve resumo dos conceitos subjacentes e apresentando

Leia mais

Inteligência Artificial

Inteligência Artificial Inteligência Artificial Aula 7 Programação Genética M.e Guylerme Velasco Programação Genética De que modo computadores podem resolver problemas, sem que tenham que ser explicitamente programados para isso?

Leia mais

Programação Orientada a Objetos SANTOS, Rafael

Programação Orientada a Objetos SANTOS, Rafael Programação Orientada a Objetos SANTOS, Rafael É parte do software, e deve atender os requisitos do usuário Controla o hardware, incluindo periféricos de entrada e saída Usa um conjunto de comandos e regras:

Leia mais

ENGENHARIA DE SOFTWARE

ENGENHARIA DE SOFTWARE INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Curso Técnico em Informática : ENGENHARIA DE SOFTWARE Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Um conjunto estruturado

Leia mais

REGULAMENTO VI COPA LOC GAMES DE FUTEBOL DIGITAL

REGULAMENTO VI COPA LOC GAMES DE FUTEBOL DIGITAL 1. AGRADECIMENTOS REGULAMENTO VI COPA LOC GAMES DE FUTEBOL DIGITAL Sem parceria e muita dedicação de pessoas e empresas envolvidas, esse projeto não seria possível, por isso, nossos sinceros agradecimentos

Leia mais

Experiência 04: Comandos para testes e identificação do computador na rede.

Experiência 04: Comandos para testes e identificação do computador na rede. ( ) Prova ( ) Prova Semestral ( ) Exercícios ( ) Prova Modular ( ) Segunda Chamada ( ) Exame Final ( ) Prática de Laboratório ( ) Aproveitamento Extraordinário de Estudos Nota: Disciplina: Turma: Aluno

Leia mais

O que é o Basquetebol? O Campo Jogadores

O que é o Basquetebol? O Campo Jogadores Caraterização Educação Física Agrupamento de Escolas Martim de Freitas Francisco Pinto O que é o? A equipa e o Campo O é um jogo desportivo colectivo praticado por duas equipas, cujos objectivos são introduzir

Leia mais

Instituto Superior Técnico

Instituto Superior Técnico Introdução à Arquitectura de Computadores Instituto Superior Técnico Lisboa, Setembro de 2013 O Simulador Lógico Logisim 1 Introdução... 2 2 Exemplo de projecto... 3 2.1 Especificação do sistema... 3 2.2

Leia mais

Curso de Engenharia de Produção. Organização do Trabalho na Produção

Curso de Engenharia de Produção. Organização do Trabalho na Produção Curso de Engenharia de Produção Organização do Trabalho na Produção Estrutura Organizacional Organização da Empresa: É a ordenação e agrupamento de atividades e recursos, visando ao alcance dos objetivos

Leia mais

(72) Inventor(es): (74) Mandatário: (54) Epígrafe: APLICAÇÃO COMPUTORIZADA PARA O CONTROLO DE ROBOTS INDUSTRIAIS

(72) Inventor(es): (74) Mandatário: (54) Epígrafe: APLICAÇÃO COMPUTORIZADA PARA O CONTROLO DE ROBOTS INDUSTRIAIS (11) Número de Publicação: PT 104730 A (51) Classificação Internacional: G05B 19/18 (2006.01) (12) FASCÍCULO DE PATENTE DE INVENÇÃO (22) Data de pedido: 2009.08.31 (30) Prioridade(s): (73) Titular(es):

Leia mais

4. No caso em que seja necessário apontar um vencedor e no tempo regulamentar o jogo terminar empatado será aplicado o seguinte:

4. No caso em que seja necessário apontar um vencedor e no tempo regulamentar o jogo terminar empatado será aplicado o seguinte: Regulamento Técnico de Futsal 1. A competição será disputada na categoria masculina acima de 16 anos e feminina acima de 14 anos. Será permitida a inscrição de 6 atletas no mínimo e no máximo 8. 2. A competição

Leia mais

RELATÓRIO DEFINIÇÃO. Resumo

RELATÓRIO DEFINIÇÃO. Resumo RELATÓRIO DEFINIÇÃO Resumo Desenvolvimento em Web Services para Avaliação de Conhecimentos no Sapien flex. Desenvolver interface grafica para Integração no sistema Sapien Flex, Construção de exames auto-corrigidos

Leia mais

Dicas de Segurança sobre Virus

Dicas de Segurança sobre Virus Dicas de Segurança sobre Virus Utilize uma boa aplicação antivírus e actualizea regularmente Comprove que o seu programa antivírus possui os seguintes serviços: suporte técnico, resposta de emergência

Leia mais

EDITAL PARA INSCRIÇÃO DE TRABALHOS NO III CURSO DE EXTENSÃO SOBRE O TRABALHO DO ASSISTENTE SOCIAL NA EDUCAÇÃO DO IFMG

EDITAL PARA INSCRIÇÃO DE TRABALHOS NO III CURSO DE EXTENSÃO SOBRE O TRABALHO DO ASSISTENTE SOCIAL NA EDUCAÇÃO DO IFMG EDITAL PARA INSCRIÇÃO DE TRABALHOS NO III CURSO DE EXTENSÃO SOBRE O TRABALHO DO ASSISTENTE SOCIAL NA EDUCAÇÃO DO IFMG 1. DO OBJETIVO Promover concurso de trabalhos a serem apresentados nas formas de pôster

Leia mais

Planeamento. Avaliação

Planeamento. Avaliação Planeamento e Avaliação Planeamento e Avaliação Definição de Planeamento Fases de Planeamento Plano vs Projecto Relatório O quê? PLANEAMENTO Planear uma actividade, evento ou projecto, significa responder

Leia mais

,QVWDODomR. Dê um duplo clique para abrir o Meu Computador. Dê um duplo clique para abrir o Painel de Controle. Para Adicionar ou Remover programas

,QVWDODomR. Dê um duplo clique para abrir o Meu Computador. Dê um duplo clique para abrir o Painel de Controle. Para Adicionar ou Remover programas ,QVWDODomR 5HTXLVLWRV0tQLPRV Para a instalação do software 0RQLWXV, é necessário: - Processador 333 MHz ou superior (700 MHz Recomendado); - 128 MB ou mais de Memória RAM; - 150 MB de espaço disponível

Leia mais

Cadeira de Tecnologias de Informação. Ano lectivo 2009/2010. Sites dinâmicos. Com Expression Web TI2009/10 EWD_1. Filipa Pires da Silva (2009)

Cadeira de Tecnologias de Informação. Ano lectivo 2009/2010. Sites dinâmicos. Com Expression Web TI2009/10 EWD_1. Filipa Pires da Silva (2009) Cadeira de Tecnologias de Informação Ano lectivo 2009/2010 Sites dinâmicos Com Expression Web TI2009/10 EWD_1 .ASPX vs.html HTML: HTML é uma linguagem para descrever páginas web HTML significa Hyper Text

Leia mais

Sefaz Virtual Ambiente Nacional Projeto Nota Fiscal Eletrônica

Sefaz Virtual Ambiente Nacional Projeto Nota Fiscal Eletrônica Projeto Nota Fiscal Eletrônica Orientações de Utilização do Sefaz Virtual Ambiente Nacional para as Empresas Versão 1.0 Fevereiro 2008 1 Sumário: 1. Introdução... 3 2. O que é o Sefaz Virtual... 4 3. Benefícios

Leia mais

aplicação arquivo Condições Gerais de Utilização

aplicação arquivo Condições Gerais de Utilização aplicação arquivo Condições Gerais de Utilização Manual das condições gerais que regulam a utilização dos serviços disponibilizados pela aplicação Arquivo, plataforma de gestão de informação, do Municipio

Leia mais

MODELO SUGERIDO PARA PROJETO DE PESQUISA

MODELO SUGERIDO PARA PROJETO DE PESQUISA MODELO SUGERIDO PARA PROJETO DE PESQUISA MODELO PARA ELABORAÇÃO DE PROJETO DE PESQUISA (Hospital Regional do Mato Grosso do Sul- HRMS) Campo Grande MS MÊS /ANO TÍTULO/SUBTÍTULO DO PROJETO NOME DO (s) ALUNO

Leia mais

Software PHC com MapPoint 2007

Software PHC com MapPoint 2007 Software PHC com MapPoint 2007 Descritivo completo A integração entre o Software PHC e o Microsoft MapPoint permite a análise de informação geográfica (mapas, rotas e análise de dispersão), baseada em

Leia mais

BASQUETEBOL. www.inatel.pt

BASQUETEBOL. www.inatel.pt NORMAS ESPECIFICAS www.inatel.pt NORMAS ESPECÍFICAS As normas específicas são regras estabelecidas pela Direção Desportiva, em complemento do Código Desportivo, para as provas organizadas pela Fundação

Leia mais

GUIA PARA O PREENCHIMENTO DOS FORMULÁRIOS ENTIDADE GESTORA SOCIEDADE PONTO VERDE

GUIA PARA O PREENCHIMENTO DOS FORMULÁRIOS ENTIDADE GESTORA SOCIEDADE PONTO VERDE GUIA PARA O PREENCHIMENTO DOS FORMULÁRIOS ENTIDADE GESTORA SOCIEDADE PONTO VERDE Versão: 1.0 Data: 05-06-2009 Índice Acesso e estados dos Formulários... 3 Escolha do Formulário e submissão... 4 Bases para

Leia mais

Os passos a seguir servirão de guia para utilização da funcionalidade Acordo Financeiro do TOTVS Gestão Financeira.

Os passos a seguir servirão de guia para utilização da funcionalidade Acordo Financeiro do TOTVS Gestão Financeira. Acordo Financeiro Produto : RM - Totvs Gestão Financeira 12.1.1 Processo : Acordo Financeiro Subprocesso : Template de Acordo Controle de Alçada Negociação Online Data da publicação : 29 / 10 / 2012 Os

Leia mais

Módulo de Aprendizagem I

Módulo de Aprendizagem I Módulo de Aprendizagem I Digitalizar fotografias para a base de dados do SiFEUP Notas: No decorrer deste módulo de aprendizagem, pressupõe-se que o utilizador já tem o scanner devidamente instalado no

Leia mais

Escola Secundária de Pinheiro e Rosa. Curso Tecnológico de Desporto. Estágio 12º G

Escola Secundária de Pinheiro e Rosa. Curso Tecnológico de Desporto. Estágio 12º G 12º G Realizado por: Priscila Domingos nº 17 Professor responsável: André Ramos 2010/2011 Índice 1) Introdução... 4 2) Objectivos do... 5 2.1) Objectivos Gerais... 5 2.2) Objectivos Específicos... 5 3)

Leia mais

Decreto Regulamentar n. º 10/2009, de 29 de Maio

Decreto Regulamentar n. º 10/2009, de 29 de Maio Decreto Regulamentar n. º 10/2009, de 29 de Maio 1 Decreto Regulamentar n.º 10/2009, de 29 de Maio Fixa a cartografia a utilizar nos instrumentos de gestão territorial, bem como na representação de quaisquer

Leia mais

www.sysdevsolutions.com Driver Next Versão 1.0 de 07-03-2011 Português

www.sysdevsolutions.com Driver Next Versão 1.0 de 07-03-2011 Português Driver Next Versão 1.0 de 07-03-2011 Português Índice Configuração dos documentos no Backofficce... 3 O Driver ERP Next... 6 Configurações principais... 6 Configurações do vendedor... 7 Configurações do

Leia mais

Regulamento das Bolsas PARSUK Xperience 2014

Regulamento das Bolsas PARSUK Xperience 2014 Regulamento das Bolsas PARSUK Xperience 2014 1. Parte 1 Objectivos, valor e designação das bolsas 1.1. O programa PARSUK Xperience pretende dar a oportunidade a alunos de licenciatura ou mestrado em Portugal

Leia mais

REGIMENTO ESPECÍFICO BASQUETEBOL. Câmara Municipal de Lisboa e Juntas de Freguesia Olisipíadas 2ª edição

REGIMENTO ESPECÍFICO BASQUETEBOL. Câmara Municipal de Lisboa e Juntas de Freguesia Olisipíadas 2ª edição REGIMENTO ESPECÍFICO BASQUETEBOL Câmara Municipal de Lisboa e Juntas de Freguesia Olisipíadas 2ª edição Índice Preâmbulo 5 Artigo 1.º Escalões Etários, Dimensões do Campo, Bola, Tempo de Jogo e Variantes

Leia mais

Rentabilize a sua assistência pós-venda e, em simultâneo, surpreenda os seus clientes com o seu profissionalismo

Rentabilize a sua assistência pós-venda e, em simultâneo, surpreenda os seus clientes com o seu profissionalismo Descritivo completo Suporte 2008 Rentabilize a sua assistência pós-venda e, em simultâneo, surpreenda os seus clientes com o seu profissionalismo Benefícios Help-desk e suporte pósvenda controlados; Integrado

Leia mais

Fundamentos de Teste de Software

Fundamentos de Teste de Software Núcleo de Excelência em Testes de Sistemas Fundamentos de Teste de Software Módulo 1- Visão Geral de Testes de Software Aula 2 Estrutura para o Teste de Software SUMÁRIO 1. Introdução... 3 2. Vertentes

Leia mais

MANUAL DO PARTICIPANTE DESAFIO ABRIL DO ENSINO FUNDAMENTAL

MANUAL DO PARTICIPANTE DESAFIO ABRIL DO ENSINO FUNDAMENTAL MANUAL DO PARTICIPANTE DESAFIO ABRIL DO ENSINO FUNDAMENTAL O Desafio Abril do Ensino Fundamental é um desafio nacional, exclusivo para estudantes do 8º e 9º ano do Ensino Fundamental das escolas parceiras

Leia mais

Aula Prática 1 - Gerador Van de Graaff e interação entre corpos carregados

Aula Prática 1 - Gerador Van de Graaff e interação entre corpos carregados Aula Prática 1 - Gerador Van de Graaff e interação entre corpos carregados Disciplinas: Física III (DQF 06034) Fundamentos de Física III (DQF 10079) Departamento de Química e Física- CCA/UFES Objetivo:

Leia mais

ADAPTAÇÃO DE UM JOGO OPEN SOURCE PARA O DESENVOLVIMENTO DE UM SIMULADOR DE TRÂNSITO 1

ADAPTAÇÃO DE UM JOGO OPEN SOURCE PARA O DESENVOLVIMENTO DE UM SIMULADOR DE TRÂNSITO 1 ADAPTAÇÃO DE UM JOGO OPEN SOURCE PARA O DESENVOLVIMENTO DE UM SIMULADOR DE TRÂNSITO 1 Henrique Augusto Richter 2, Rafael H. Bandeira 3, Eldair F. Dornelles 4, Rogério S. De M. Martins 5, Nelson A. Toniazzo

Leia mais

MANUAL DO AVALIADOR O que é uma Feira de Ciência? Por que avaliar os trabalhos? Como os avaliadores devem proceder?

MANUAL DO AVALIADOR O que é uma Feira de Ciência? Por que avaliar os trabalhos? Como os avaliadores devem proceder? MANUAL DO AVALIADOR O que é uma Feira de Ciência? É uma exposição que divulga os resultados de experimentos ou de levantamentos realizados, com rigor científico, por alunos, sob a orientação de um professor.

Leia mais

10. CPU (Central Processor Unit)... 10 2 10.1 Conjunto das instruções... 10 2 10.2 Estrutura interna... 10 4 10.3 Formato das instruções...

10. CPU (Central Processor Unit)... 10 2 10.1 Conjunto das instruções... 10 2 10.2 Estrutura interna... 10 4 10.3 Formato das instruções... 10. CPU (Central Processor Unit)... 10 2 10.1 Conjunto das instruções... 10 2 10.2 Estrutura interna... 10 4 10.3 Formato das instruções... 10 4 10. CPU (CENTRAL PROCESSOR UNIT) Como vimos no capítulo

Leia mais

CAMPEONATO PAULISTA UNIVERSITÁRIO 2015 NOTA OFICIAL RUGBY

CAMPEONATO PAULISTA UNIVERSITÁRIO 2015 NOTA OFICIAL RUGBY CAMPEONATO PAULISTA UNIVERSITÁRIO 2015 NOTA OFICIAL RUGBY Informações e inscrições: Kallel Brandão (11)97118-3872 kallel@fupe.com.br www.fupe.com.br www.juesp.com.br INFORMAÇÕES BÁSICAS Local: CEPEUSP

Leia mais

I TORNEIO DE INTEGRAÇÃO CIENTÍFICA TIC

I TORNEIO DE INTEGRAÇÃO CIENTÍFICA TIC I TORNEIO DE INTEGRAÇÃO CIENTÍFICA TIC Edital do Desafio Área: Petróleo, Gás e Biocombustíveis Tema: Produção de Biocombustíveis Maceió 2012 1. INTRODUÇÃO As razões para o interesse pelos biocombustíveis

Leia mais

UNIVERSIDADE ESTADUAL DO CENTRO-OESTE - UNICENTRO CURSO DE PÓS GRADUAÇÃO EM MÍDIAS NA EDUCAÇÃO JULIANA LEME MOURÃO ORIENTADOR: PAULO GUILHERMETI

UNIVERSIDADE ESTADUAL DO CENTRO-OESTE - UNICENTRO CURSO DE PÓS GRADUAÇÃO EM MÍDIAS NA EDUCAÇÃO JULIANA LEME MOURÃO ORIENTADOR: PAULO GUILHERMETI UNIVERSIDADE ESTADUAL DO CENTRO-OESTE - UNICENTRO CURSO DE PÓS GRADUAÇÃO EM MÍDIAS NA EDUCAÇÃO JULIANA LEME MOURÃO ORIENTADOR: PAULO GUILHERMETI SIMULADORES VIRTUAIS ALIADOS AO ENSINO DE FÍSICA GOIOERÊ

Leia mais

VI FESTIVAL DE XADREZ DE GAIA. Academia de Xadrez de Gaia - Organização de Actividades (em parceria) A decorrer em Vila Nova de Gaia

VI FESTIVAL DE XADREZ DE GAIA. Academia de Xadrez de Gaia - Organização de Actividades (em parceria) A decorrer em Vila Nova de Gaia VI FESTIVAL DE XADREZ DE GAIA Academia de Xadrez de Gaia - Organização de Actividades (em parceria) A decorrer em Vila Nova de Gaia IX PROFIGAIA OPEN de 18 a 26 de Julho (GaiaHotel ****) 3º TORNEIO INTERNACIONAL

Leia mais

MBA em Gerenciamento de Projetos. Teoria Geral do Planejamento. Professora: Maria Erileuza do Nascimento de Paula

MBA em Gerenciamento de Projetos. Teoria Geral do Planejamento. Professora: Maria Erileuza do Nascimento de Paula MBA em Gerenciamento de Projetos Teoria Geral do Planejamento Professora: Maria Erileuza do Nascimento de Paula SOBRAL - CE 2014 O que é Planejamento É um processo contínuo e dinâmico que consiste em um

Leia mais

Liga CDLPC- Basquetebol - 5.º /6.º Anos

Liga CDLPC- Basquetebol - 5.º /6.º Anos Informações Gerais Os torneios disputar-se-ão em sistema de campeonato, ao longo do ano letivo. De acordo com o número de equipas participantes, poderá haver uma fase final em sistema de playoffs. A data

Leia mais

2 Workshop processamento de artigos em serviços de saúde Recolhimento de artigos esterilizados: é possível evitar?

2 Workshop processamento de artigos em serviços de saúde Recolhimento de artigos esterilizados: é possível evitar? 2 Workshop processamento de artigos em serviços de saúde Recolhimento de artigos esterilizados: é possível evitar? 3 Farm. André Cabral Contagem, 19 de Maio de 2010 Rastreabilidade É definida como a habilidade

Leia mais

1º Robô Vale ETEP Faculdades

1º Robô Vale ETEP Faculdades 1º Robô Vale ETEP Faculdades A ETEP Faculdades, seguindo a tradição de desenvolvimento de projetos pelos seus alunos, estará realizando de 21 a 28/11/15 a 1º edição da Robô Vale, com o apoio do Shopping

Leia mais

Procedimento Gestão Documental

Procedimento Gestão Documental APROVAÇÃO DO DOCUMENTO Elaborado por Função Nome e Assinatura Data André Duarte Aprovado por ADM Luis Brito REGISTO DE MODIFICAÇÕES Edição Data Página Alterada Motivo 1 25/08/2008 Todas Redacção Inicial

Leia mais

Introdução à orientação a objetos

Introdução à orientação a objetos Universidade Federal de Juiz de Fora PET Elétrica Introdução à orientação a objetos Tutor: Francisco José Gomes Aluno: João Tito Almeida Vianna 18/05/2013 1 Programação Estruturada x Orientação a objetos

Leia mais

VIII Oficinas de Formação A Escola na Sociedade da Informação e do Conhecimento praticar ao Sábado. E-learning. 3 de Março de 2007

VIII Oficinas de Formação A Escola na Sociedade da Informação e do Conhecimento praticar ao Sábado. E-learning. 3 de Março de 2007 VIII Oficinas de Formação A Escola na Sociedade da Informação e do Conhecimento praticar ao Sábado E-learning 3 de Março de 2007 Plataformas de E-learning em contexto educativo Intervenção de José Luís

Leia mais

CIÊNCIA, CIDADANIA E DESENVOLVIMENTO SUSTENTÁVEL: CONCEPÇÕES DE PROFESSORES DO 1º CICLO

CIÊNCIA, CIDADANIA E DESENVOLVIMENTO SUSTENTÁVEL: CONCEPÇÕES DE PROFESSORES DO 1º CICLO CIÊNCIA, CIDADANIA E DESENVOLVIMENTO SUSTENTÁVEL: CONCEPÇÕES DE PROFESSORES DO 1º CICLO SÁ, PATRÍCIA & MARTINS, ISABEL Departamento de Didáctica e Tecnologia Educativa. Universidade de Aveiro.

Leia mais

DIMENSÕES DE PESQUISA EM ENGENHARIA DE SOFTWARE

DIMENSÕES DE PESQUISA EM ENGENHARIA DE SOFTWARE ESPECIAL Engenharia de Software DIMENSÕES DE PESQUISA EM ENGENHARIA DE SOFTWARE por Paulo Borba DECISÕES IMPORTANTES A SEREM TOMADAS NOS PROJETOS E NA CARREIRA DE UM PESQUISADOR EM ENGENHARIA DE SOFTWARE.

Leia mais

E-Learning Uma estratégia para a qualidade do ensino/aprendizagem. Ensino a Distância

E-Learning Uma estratégia para a qualidade do ensino/aprendizagem. Ensino a Distância E-Learning Uma estratégia para a qualidade do ensino/aprendizagem (num contexto académico) Vou dividir a minha apresentação sobre... em 3 partes: Conceito de e-learning Apresentar a intranet dos alunos

Leia mais

Modelagem De Sistemas

Modelagem De Sistemas Modelagem De Sistemas UNIP Tatuapé - SP Aplicações em Linguagem de Programação Prof.Marcelo Nogueira Uma empresa de software de sucesso é aquela que consistentemente produz software de qualidade que vai

Leia mais

PLANIFICAÇÃO INTRODUÇÃO ÀS TECNOLOGIAS DE INFORMAÇÃO BLOCO I

PLANIFICAÇÃO INTRODUÇÃO ÀS TECNOLOGIAS DE INFORMAÇÃO BLOCO I PLANIFICAÇÃO INTRODUÇÃO ÀS TECNOLOGIAS DE INFORMAÇÃO BLOCO I MÉDIO PRAZO 1 TECNOLOGIAS DE INFORMAÇÃO E INFORMÁTICA OBJECTIVOS CONTEÚDOS DATA Conceitos Introdutórios Conhecer os conceitos básicos relacionados

Leia mais

MÓDULO 2 Topologias de Redes

MÓDULO 2 Topologias de Redes MÓDULO 2 Topologias de Redes As redes de computadores de modo geral estão presentes em nosso dia adia, estamos tão acostumados a utilizá las que não nos damos conta da sofisticação e complexidade da estrutura,

Leia mais

BARÓMETRO DE OPINIÃO PÚBLICA: Atitudes dos portugueses perante Leitura e o Plano Nacional de Leitura

BARÓMETRO DE OPINIÃO PÚBLICA: Atitudes dos portugueses perante Leitura e o Plano Nacional de Leitura BARÓMETRO DE OPINIÃO PÚBLICA: Atitudes dos portugueses perante Leitura e o Plano Nacional de Leitura António Firmino da Costa Elsa Pegado Patrícia Ávila CIES-ISCTE 2008 BARÓMETRO DE OPINIÃO PÚBLICA: Atitudes

Leia mais

GIL, Antonio Carlos. Como elaborar projetos de pesquisa. São Paulo, Editora Atlas, 2002....

GIL, Antonio Carlos. Como elaborar projetos de pesquisa. São Paulo, Editora Atlas, 2002.... GIL, Antonio Carlos. Como elaborar projetos de pesquisa. São Paulo, Editora Atlas, 2002.... 1 Como encaminhar uma Pesquisa? A pesquisa é um projeto racional e sistemático com objetivo de proporcionar respostas

Leia mais

INFORMAÇÕES IMPORTANTES PARA OS TIMES E TENISTAS!

INFORMAÇÕES IMPORTANTES PARA OS TIMES E TENISTAS! INFORMAÇÕES IMPORTANTES PARA OS TIMES E TENISTAS! Qualifying Dia 8 de Novembro ATENÇÃO! Os times inscritos no Futebol Masculino categoria livre e os tenistas inscritos no Tênis categoria A disputarão o

Leia mais

LEUCOTRON EQUIPAMENTOS LTDA ROTEIRO DE INTERLIGAÇÃO SIP ACTIVE IP COM REGISTRO

LEUCOTRON EQUIPAMENTOS LTDA ROTEIRO DE INTERLIGAÇÃO SIP ACTIVE IP COM REGISTRO LEUCOTRON EQUIPAMENTOS LTDA PÓS-VENDAS LEUCOTRON ROTEIRO DE INTERLIGAÇÃO SIP ACTIVE IP COM REGISTRO SANTA RITA DO SAPUCAÍ MINAS GERAIS 2012 PÓS VENDAS LEUCOTRON ROTEIRO DE INTERLIGAÇÃO SIP ACTIVE IP COM

Leia mais

Capítulo I Disposições Gerais

Capítulo I Disposições Gerais Regulamento Municipal do Banco Local de Voluntariado de Marco de Canaveses Preâmbulo A Lei n.º 71/98, de 3 de Novembro, estabelece as bases do enquadramento jurídico do voluntariado, visando promover e

Leia mais

Linux Caixa Mágica. Documentos Técnicos CM. Manual de Configuração de Ligação à Internet por placas 3G 00904/2007 28

Linux Caixa Mágica. Documentos Técnicos CM. Manual de Configuração de Ligação à Internet por placas 3G 00904/2007 28 Linux Documentos Técnicos CM Manual de Configuração de Ligação à Internet por placas 3G Date: Pages: Issue: State: Access: Reference: 00904/2007 28 Manual de Configuração de Ligação à Internet por placas

Leia mais

FACULDADE DE CIÊNCIAS E TECNOLOGIA. Redes de Telecomunicações (2006/2007)

FACULDADE DE CIÊNCIAS E TECNOLOGIA. Redes de Telecomunicações (2006/2007) FACULDADE DE CIÊNCIAS E TECNOLOGIA Redes de Telecomunicações (2006/2007) Engª de Sistemas e Informática Trabalho nº4 (1ª aula) Título: Modelação de tráfego utilizando o modelo de Poisson Fundamentos teóricos

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Informação O que é Informação? Informação: conjunto de dados relacionados entre si. Sociedade de Informação Mais e Melhor Informação Recebemos tanta informação durante o dia que perdemos

Leia mais

REGULAMENTO ESPECÍFICO JERNS JEES 2015

REGULAMENTO ESPECÍFICO JERNS JEES 2015 REGULAMENTO ESPECÍFICO BASQUETEBOL JERNS JEES 2015 1 REGULAMENTO ESPECÍFICO BASQUETEBOL JERNS JEES 2015 CATEGORIA MIRIM 1. A Competição de Basquetebol será realizada de acordo com as regras oficiais da

Leia mais

XIV COPA SMEL DE FUTSAL 2016

XIV COPA SMEL DE FUTSAL 2016 XIV COPA SMEL DE FUTSAL 2016 Regulamento Geral XIV COPA SMEL DE FUTSAL CAPÍTULO I - DOS OBJETIVOS Art. 1º - A XIV COPA SMEL DE FUTSAL tem por objetivo principal o congraçamento geral dos participantes

Leia mais

Lógica de Programação. Profas. Simone Campos Camargo e Janete Ferreira Biazotto

Lógica de Programação. Profas. Simone Campos Camargo e Janete Ferreira Biazotto Lógica de Programação Profas. Simone Campos Camargo e Janete Ferreira Biazotto O curso Técnico em Informática É o profissional que desenvolve e opera sistemas, aplicações, interfaces gráficas; monta estruturas

Leia mais

A AGRESSIVIDADE OFENSIVA

A AGRESSIVIDADE OFENSIVA TEMA: A IMPORTÂNCIA DO TRABALHO DE PÉS COMO FUNDAMENTO PARA A AGRESSIVIDADE OFENSIVA por MANUEL CAMPOS TEMA: A IMPORTÂNCIA DO TRABALHO DE PÉS COMO FUNDAMENTO PARA A AGRESSIVIDADE OFENSIVA Muitos treinadores

Leia mais

REGULAMENTO ESPECÍFICO DE BASQUETEBOL

REGULAMENTO ESPECÍFICO DE BASQUETEBOL REGULAMENTO ESPECÍFICO DE BASQUETEBOL 2009-2013 ÍNDICE 1. INTRODUÇÃO... 3 2. ESCALÕES ETÁRIOS/ BOLA DE JOGO/DURAÇÃO DE JOGO... 4 3. CONSTITUIÇÃO DA EQUIPA... 5 4.ARBITRAGEM... 6 5. CLASSIFICAÇÃO/ PONTUAÇÃO/DESEMPATE...

Leia mais

Índice. tabela das versões do documento. GPOP - Gerenciador POP 1598510_05 01 11/01/2016 1/14. título: GPOP. assunto: Manual de utilização

Índice. tabela das versões do documento. GPOP - Gerenciador POP 1598510_05 01 11/01/2016 1/14. título: GPOP. assunto: Manual de utilização título: GPOP assunto: Manual de utilização número do documento: 1598510_05 índice: 01 pag.: 1/14 cliente: geral tabela das versões do documento índice data alteração 01 11/01/2016 versão inicial 02 03

Leia mais

Comandos de Eletropneumática Exercícios Comentados para Elaboração, Montagem e Ensaios

Comandos de Eletropneumática Exercícios Comentados para Elaboração, Montagem e Ensaios Comandos de Eletropneumática Exercícios Comentados para Elaboração, Montagem e Ensaios O Método Intuitivo de elaboração de circuitos: As técnicas de elaboração de circuitos eletropneumáticos fazem parte

Leia mais

MANUAL DO INSTALADOR XD EM AMBIENTES MICROSOFT WINDOWS

MANUAL DO INSTALADOR XD EM AMBIENTES MICROSOFT WINDOWS MANUAL DO INSTALADOR XD EM AMBIENTES MICROSOFT WINDOWS Está disponível a partir da versão 2014.73 do XD Rest/Pos/Disco um novo formato no instalador em ambientes Microsoft Windows. O instalador passa a

Leia mais

Mostra de Projetos 2011. Capoeira - menino Pé no Chão

Mostra de Projetos 2011. Capoeira - menino Pé no Chão Mostra Local de: Dois Vizinhos Mostra de Projetos 2011 Capoeira - menino Pé no Chão Categoria do projeto: Projetos em implantação, com resultados parciais. Nome da Instituição/Empresa: Associação Casa

Leia mais

Acionamento de Motores: PWM e Ponte H

Acionamento de Motores: PWM e Ponte H Warthog Robotics USP São Carlos www.warthog.sc.usp.br warthog@sc.usp.br Acionamento de Motores: PWM e Ponte H Por Gustavo C. Oliveira, Membro da Divisão de Controle (2014) 1 Introdução Motores são máquinas

Leia mais

Análise de Requisitos

Análise de Requisitos Análise de Requisitos Análise de Requisitos O tratamento da informação é um requisito que fundamenta o processo de desenvolvimento de software antes da solução de tecnologia a ser aplicada. Cada projeto

Leia mais

Universidade Federal de Pernambuco Mestrado em Ciência da Computação

Universidade Federal de Pernambuco Mestrado em Ciência da Computação Universidade Federal de Pernambuco Mestrado em Ciência da Computação Lista 1 de Introdução a Agentes Inteligentes Bruno Benevides Cavalcante, Rafael Gonçalves Barreira [bbc2 rgb2]@cin.ufpe.br Agentes 1.

Leia mais

Flávia Rodrigues. Silves, 26 de Abril de 2010

Flávia Rodrigues. Silves, 26 de Abril de 2010 Flávia Rodrigues STC5 _ Redes de Informação e Comunicação Silves, 26 de Abril de 2010 Vantagens e Desvantagens da Tecnologia Acessibilidade, quer a nível pessoal quer a nível profissional; Pode-se processar

Leia mais

REGRAS DAS PROVAS RELÂMPAGO

REGRAS DAS PROVAS RELÂMPAGO REGRAS DAS PROVAS RELÂMPAGO BALÃO Cada equipe apresentará um componente para esta prova. Os participantes deverão soprar o balão até estourar. Será estabelecida a ordem de classificação pelo tempo de estouro

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS Introdução Slide 1 Nielsen C. Damasceno Introdução Tanenbaum (2007) definiu que um sistema distribuído é aquele que se apresenta aos seus usuários como um sistema centralizado, mas

Leia mais

Inteligência de negócios do laboratório DESCUBRA INFORMAÇÕES ÚTEIS DE DADOS OPERACIONAIS DO LABORATÓRIO

Inteligência de negócios do laboratório DESCUBRA INFORMAÇÕES ÚTEIS DE DADOS OPERACIONAIS DO LABORATÓRIO Inteligência de negócios do laboratório DESCUBRA INFORMAÇÕES ÚTEIS DE DADOS OPERACIONAIS DO LABORATÓRIO INTELIGÊNCIA DE NEGÓCIOS DO LABORATÓRIO AS DECISÕES SOBRE O LABORATÓRIO COMEÇAM COM A INTELIGÊNCIA

Leia mais

FS230 FS210. 30.15xx. Envolvedora Semi - Automática com joystick. Envolvedora Semi-Automática com múltiplos programas de envolvimento.

FS230 FS210. 30.15xx. Envolvedora Semi - Automática com joystick. Envolvedora Semi-Automática com múltiplos programas de envolvimento. Envolvedoras FS210 Envolvedora Semi - Automática com joystick. 1.650mm 1.100 x 1.200mm 2.000mm/ 2.500mm 400V 50/60Hz Versão Standard FS210 Travão mecânico para o filme Versão Joystick Opcionais FS210 estrutura

Leia mais

Tipos de investigação educacional diferenciados por:

Tipos de investigação educacional diferenciados por: Bento Março 09 Tipos de investigação educacional diferenciados por: Praticalidade Básica Aplicada Método Qualitativo Quantitativo Experimental Não experimental Questões Etnográfica Histórica Descritiva

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro Programação Orientada a Objetos 1.1 - Perspectiva histórica: Conceitos A evolução das linguagens de programação tem-se feito na procura de ferramentas: -cada vez mais próximas da percepção humana - e que

Leia mais

Formas de Pagamento Resumida... 34 Vendas Vendedor... 34 Vendas Vendedor Resumido... 35 Vendas Vendedor Caixa... 35 Vendas por Artigos...

Formas de Pagamento Resumida... 34 Vendas Vendedor... 34 Vendas Vendedor Resumido... 35 Vendas Vendedor Caixa... 35 Vendas por Artigos... Manual POS Conteúdo Configuração no Servidor... 3 Gestão de Stocks... 3 Manutenção de Artigos... 3 Gestão de Clientes... 4 Gestão de Fornecedores... 5 Sistema POS... 6 Manutenção de Series de Armazéns...

Leia mais

O que é o Cyberbullying?

O que é o Cyberbullying? O que é o Cyberbullying? O Cyberbullying baseia-se na prática que compreende comportamentos em diversos níveis que vão desde brincadeiras inoportunas, como colocar apelidos, discriminar, ignorar os colegas,

Leia mais

Metodologias de PETI. Prof. Marlon Marcon

Metodologias de PETI. Prof. Marlon Marcon Metodologias de PETI Prof. Marlon Marcon PETI O PETI é composto de: Planejamento Estratégico da organização, que combina os objetivos e recursos da organização com seus mercados em processo de transformação

Leia mais

Licenciatura em Gestão de Recursos Humanos (LRH)

Licenciatura em Gestão de Recursos Humanos (LRH) UNIVERSIDADE TÉCNICA DE MOÇAMBIQUE UDM DIRECÇÃO ACADÉMICA CURRÍCULO DA ÁREA DE FORMAÇÃO EM ADMINISTRAÇÃO E GESTÃO DE EMPRESAS AFAGE Licenciatura em Gestão de Recursos Humanos (LRH) Maputo, Julho de 2015

Leia mais

TESTES SOCIOMÉTRICOS

TESTES SOCIOMÉTRICOS TESTES SOCIOMÉTRICOS Docente: Mestre Mª João Marques da Silva Picão Oliveira TESTES SOCIOMÉTRICOS * O Teste Sociométrico ajuda-nos a avaliar o grau de integração duma criança/jovem no grupo; a descobrir

Leia mais

Adaptação com Base na Comunidade Lista de Controlo do Plano de Implementação do Projecto

Adaptação com Base na Comunidade Lista de Controlo do Plano de Implementação do Projecto Adaptação com Base na Comunidade Lista de Controlo do Plano de Implementação do Projecto Contexto do Projecto Contexto Ambiental Descrever as calamidades climáticas presentes (eventos e condições) afectando

Leia mais

INSTRUÇÃO CVM Nº 551, DE 25 DE SETEMBRO DE 2014

INSTRUÇÃO CVM Nº 551, DE 25 DE SETEMBRO DE 2014 Altera e acrescenta dispositivos à Instrução CVM nº 332, de 4 de abril de 2000, à Instrução CVM nº 400, de 29 de dezembro de 2003, e à Instrução CVM nº 476, de 16 de janeiro de 2009. O PRESIDENTE DA COMISSÃO

Leia mais

Comissão avalia o impacto do financiamento para as regiões e lança um debate sobre a próxima ronda da política de coesão

Comissão avalia o impacto do financiamento para as regiões e lança um debate sobre a próxima ronda da política de coesão IP/07/721 Bruxelas, 30 de Maio de 2007 Comissão avalia o impacto do financiamento para as regiões e lança um debate sobre a próxima ronda da política de coesão A política de coesão teve um efeito comprovado

Leia mais

Atividades práticas-pedagógicas desenvolvidas em espaços não formais como parte do currículo da escola formal

Atividades práticas-pedagógicas desenvolvidas em espaços não formais como parte do currículo da escola formal Atividades práticas-pedagógicas desenvolvidas em espaços não formais como parte do currículo da escola formal Linha de Pesquisa: LINHA DE PESQUISA E DE INTERVENÇÃO METODOLOGIAS DA APRENDIZAGEM E PRÁTICAS

Leia mais

Tópicos Avançados em Banco de Dados Dependências sobre regime e controle de objetos em Banco de Dados. Prof. Hugo Souza

Tópicos Avançados em Banco de Dados Dependências sobre regime e controle de objetos em Banco de Dados. Prof. Hugo Souza Tópicos Avançados em Banco de Dados Dependências sobre regime e controle de objetos em Banco de Dados Prof. Hugo Souza Após vermos uma breve contextualização sobre esquemas para bases dados e aprendermos

Leia mais

Manual SAGe Versão 1.2

Manual SAGe Versão 1.2 Manual SAGe Versão 1.2 Equipe de Pesquisadores do Projeto Conteúdo 1. Introdução... 2 2. Criação da Equipe do Projeto (Proposta Inicial)... 3 2.1. Inclusão e configuração do Pesquisador Responsável (PR)...

Leia mais