• Nenhum resultado encontrado

2007.2Monografia TiagoCalmondeJesus 031111890 2007 2

N/A
N/A
Protected

Academic year: 2021

Share "2007.2Monografia TiagoCalmondeJesus 031111890 2007 2"

Copied!
47
0
0

Texto

(1)

Desenvolvimento de um sistema de controle de robˆo

de sumˆo autˆonomo baseado em sistemas

classificadores

Feira de Santana – BA Setembro / 2008

(2)

Desenvolvimento de um sistema de controle de robˆo

de sumˆo autˆonomo baseado em sistemas

classificadores

Monografia apresentada `a Coordenac¸˜ao do Curso de Engenharia de Computac¸˜ao da Uni-versidade Estadual de Feira de Santana como requisito para obtenc¸˜ao do t´ıtulo de Engenheiro de Computac¸˜ao.

Orientador:

Prof. Msc. Angelo Conrado Loula

CURSO DE ENGENHARIA DECOMPUTAC¸ ˜AO

DEPARTAMENTO DE TECNOLOGIA

UNIVERSIDADEESTADUAL DEFEIRA DESANTANA

Feira de Santana – BA Setembro / 2008

(3)

tado por Tiago Calmon de Jesus em 02 de Setembro de 2008, em Feira de Santana, Bahia:

Tiago Calmon de Jesus Engenharia de Computac¸˜ao

Universidade Estadual de Feira de Santana - UEFS Aluno

Prof. Msc. Angelo Conrado Loula Departamento de Tecnologia - UEFS

Orientador

Coordenador(a) de TCC Engenharia de Computac¸˜ao

(4)

e s˜ao sem d´uvidas os maiores exemplos de valores morais e de VIDA para mim .

(5)

Dedico meus sinceros agradecimentos:

– ao Professor Msc Angelo Conrado Loula, pela orientac¸˜ao e incentivo;

– aos meus colegas de Trabalho, em especial ao meu chefe, pelo apoio e incentivo. – aos colegas de graduac¸˜ao em Engenharia de Computac¸˜ao da UEFS.

(6)

Este trabalho prop˜oe o desenvolvimento de um sistema de controle de robˆo de sumˆo autˆonomo baseado em sistemas classificadores. Um sistema classificador ´e uma metodologia de aprendi-zagem adaptativa de prop´osito geral baseada em regras do tipo SE (Condic¸˜ao) ENT ˜AO (Ac¸˜ao) e capaz de operar em ambientes ruidosos. O sistema classificador consegue adaptar seu con-junto de regras atrav´es de um mecanismo de atribuic¸˜ao de cr´edito e da ac¸˜ao de um algoritmo gen´etico que permite a recomposic¸˜ao do conjunto com a inserc¸˜ao de novas regras. Apresenta-mos a implementac¸˜ao de um simulador 2D para sumo de robˆo e do sistema de controle de robˆo de sumˆo.

(7)

This work proposes the development of a control system for autonomous robot sumo ba-sed on classifier systems. A classifier system is a methodology for adaptive learning, baba-sed on general purpose rules of the type IF (condition) THEN (Action) and able to operate in noisy environments. The classifier system can adapt its rule set through a mechanism of credit as-signment and using a genetic algorithm to rebuild of the rule set with the insertion of new rules. The implementation of a 2D simulator for robot sumo and the control system of the robot are presented.

(8)

1 Apresentac¸˜ao p. 10

2 Robˆos e suas categorias p. 13

3 Sumˆo de Robˆos p. 15

4 Sistemas classificadores p. 17 4.1 Subsistema de Tratamento de Mensagem . . . p. 19 4.2 Subsistema de apropriac¸˜ao de cr´edito . . . p. 20 4.3 Subsistema de descoberta de novas regras . . . p. 23

5 Algoritmos Gen´eticos p. 25

6 Simulac¸˜ao em Rob´otica p. 29 6.1 Microsoft Robotics Studio . . . p. 30 6.2 Implementac¸˜ao do Simulador . . . p. 31

7 Sistemas classificadores aplicados ao sumo de Robˆo p. 34

8 Experimentos e Resultados p. 39

9 Conclus˜ao p. 43

(9)

1.1 Exemplos de projetos em rob´otica . . . p. 10 3.1 Arena do sumˆo de robˆo. . . p. 15 3.2 Exemplos de robˆos de sumˆo. . . p. 16 4.1 Diagrama do sistema classificador de aprendizagem de Holland. . . p. 18 4.2 Subsistemas de um sistema classificador de aprendizagem de Holland. . . p. 19 5.1 Ciclo de execuc¸˜ao de um algoritmo Gen´etico. . . p. 25 5.2 Cromossomo na representac¸˜ao bin´aria. . . p. 26 5.3 M´etodo da Roleta (Roullete Wheel). . . p. 27 5.4 Crossover. . . p. 28 6.1 Diagrama de uma aplicac¸˜ao no MRS. . . p. 31 6.2 Interface do simulador. . . p. 32 7.1 Angulo de localizac¸˜ao da faixa.ˆ . . . p. 34 7.2 Informac¸˜oes sobre a localizac¸˜ao do oponente. . . p. 35 7.3 Configurac¸˜ao do antecessor do classificador implementado. . . p. 35 7.4 Codificac¸˜ao do ˆangulo (c´odigo Gray). . . p. 36 8.1 Resultado do Experimento 1. . . p. 40 8.2 Comportamento do robˆo - Experimento 1. . . p. 41 8.3 Resultado do Experimento 2. . . p. 42 8.4 Resultado do Experimento 3. . . p. 42

(10)

4.1 Exemplos de Classificadores. . . p. 18 7.1 Codificac¸˜ao da distˆancia do oponente. . . p. 37 7.2 Intensidade da acelerac¸˜ao. . . p. 37 7.3 direc¸˜ao da acelerac¸˜ao. . . p. 37

(11)

1

Apresentac¸˜ao

O inicio do s´eculo XXI aproximou muito o homem de um futuro no qual seres artificiais ir˜ao andar, conviver e executar tarefas com os seres humanos. O entusiasmo em torno do tema ”rob´otica”aumenta `a medida que novos lanc¸amentos s˜ao anunciados, a exemplo do lanc¸amento do c˜aozinho Aibo no final de 1999 pela Sony, do ASIMO (um robˆo human´oide com movimen-tos muito realistas desenvolvido pela Honda) e de eletrodom´esticos inteligentes como o robˆo aspirador desenvolvido pela iRobot, a Figura 1.1 ilustra alguns desses projetos

Figura 1.1: Alguns projetos na ´area de rob´otica. Na parte superior da esquerda para a direita, o AIBO(Fonte SONY), o ASIMO(Fonte HONDA) e o robˆo aspirador(Fonte Irobot). Na parte inferior temos os robˆos m´usicos da TOYOTA.

(12)

comuns que passaram a ver nos robˆos uma fonte de divertimento, lazer e um acess´orio ”inteli-gente”para realizar pequenas tarefas dom´esticas.

Com o crescente interesse pela ´area, aumentaram tamb´em os valores movimentados pelo mercado de rob´otica. A Japan Robot Association estima que hoje este mercado movimente algo em torno de 11 bilh˜oes de d´olares com estimativas de movimentar o dobro em 2010 e alcanc¸ar 66 bilh˜oes em 2025 (CHERRY, 2007). Grandes empresas na ´area de tecnologia pos-suem projetos em rob´otica, como a Honda (respons´avel pelo ASIMO), a Mitsubishi e a Toyota, que lanc¸aram modelos de robˆos capazes de tocar instrumentos musicais como trombone e vi-olino, al´em de outro capaz de carregar um ser humano, atuando como uma cadeira de rodas inteligente.

Recentemente a Microsoft tamb´em entrou no mercado da rob´otica lanc¸ando um software denominado Robotics Studio, o qual ´e um ambiente para programac¸˜ao e simulac¸˜ao de robˆos, compat´ıvel com v´arios modelos de robˆos dom´esticos dispon´ıveis no mercado norte-americano. Uma das ´areas de atuac¸˜ao da Microsoft ´e o mercado de robˆos de pequeno porte e robˆos dom´esticos, um segmento que n˜ao p´ara de crescer e movimentar cifras cada vez maiores.

As competic¸˜oes de robˆos tamb´em tˆem crescido nos ´ultimos anos. Est˜ao cada vez mais organizadas e competitivas, e deixaram de ser atividades meramente l´udicas para se tornarem importantes laborat´orios de novas t´ecnicas e tecnologias em rob´otica. Entidades como a Ro-boCup deram seriedade e organizac¸˜ao `as competic¸˜oes e possibilitaram a definic¸˜ao de metas ambiciosas como a de at´e 2050 construir um time de robˆos completamente autˆonomos para jogar futebol e capazes de ganhar de um time de humanos campe˜oes da copa do mundo (RO-BOCUP, 2008). Dentre as diversas modalidades, o sumˆo de robˆos e o futebol de robˆos est˜ao se consolidado como as principais categorias de competic¸˜oes de robˆos, principalmente pelo fato de seus robˆos serem autˆonomos, o que atrai o interesse de pesquisadores e estudantes da ´area de inteligˆencia artificial, automac¸˜ao e controle, e mecatrˆonica.

De forma geral h´a um crescente interesse na ´area de competic¸˜oes de robˆos, principalmente por se tratar de uma maneira l´udica de aplicac¸˜ao e aprendizagem de importantes conceitos de rob´otica. Os investimentos nessa ´area s˜ao cada vez maiores e ainda h´a uma escassez de pesquisas cient´ıficas aplicadas ao sumˆo de robˆos. Dentro desse contexto, este trabalho prop˜oe o desenvolvimento de um sistema de controle de robˆo para o sumˆo de robˆos, baseado em uma t´ecnica de sistemas inteligentes, os sistemas classificadores.

(13)

1.1

Objetivos

O objetivo principal deste projeto foi o desenvolvimento de um sistema de controle de robˆo para o sumˆo de robˆos, baseado em sistemas classificadores. para tanto alguns objetivos secund´arios precisaram ser cumpridos:

• Propor metodologia para avaliac¸˜ao de software de simulac¸˜ao de robˆos;

• Implementar um ambiente simulado, compat´ıvel com as regras oficiais do sumo de robˆo para treinamento de prot´otipos;

• Treinar o sistema de controle do robˆo em um ambiente simulado;

• Avaliar os resultados obtidos com o uso do sistema desenvolvido e a metodologia empre-gada.

1.2

Organizac¸˜ao da Monografia

Esta monografia est´a organizada da seguinte maneira: No cap´ıtulo 2, s˜ao apresentados conceitos sobre rob´otica, categorizac¸˜ao e autonomia de robˆos. No cap´ıtulo 3 s˜ao apresentados conceitos sobre sistemas classificadores, seus componentes e funcionamento. No cap´ıtulo 4 s˜ao conceituados os algoritmos gen´eticos e tamb´em ´e explicada a relac¸˜ao dos mesmos com sistemas classificadores. O cap´ıtulo 5 aborda o processo de simulac¸˜ao em rob´otica e discute alguns simuladores de robˆos.

O cap´ıtulo 6 trata do processo de construc¸˜ao de um sistema classificador para controle de um robˆo de sumˆo autˆonomo. O cap´ıtulo 6 apresenta os resultados obtidos e discute os mesmos. O cap´ıtulo 7 apresenta uma conclus˜ao do documento com sugest˜oes de melhorias e futuros trabalhos. Por fim seguem-se as referˆencias bibliogr´aficas.

(14)

2

Robˆos e suas categorias

Robˆos s˜ao agentes f´ısicos que executam tarefas atrav´es da manipulac¸˜ao do mundo f´ısico (RUSSELL; NORVIG, 2004). Os robˆos atuam sobre o mundo f´ısico atrav´es de efetuadores ou atuadores, que de forma geral s˜ao elementos capazes de exercer forc¸as f´ısicas sobre o ambiente, a exemplo das pernas, rodas e garras, ou mesmo auto-falantes e luzes. Outro componente im-portante na estrutura de um robˆo s˜ao os sensores, que d˜ao ao mesmo a capacidade de perceber o ambiente a sua volta. Atrav´es da convers˜ao de energias diversas em energia el´etrica, os sen-sores possibilitam ao robˆo adquirir informac¸˜oes como temperatura, velocidade, press˜ao, sons, imagens, proximidade de outros objetos dentre outras.

Os robˆos podem ser classificados em trˆes categorias principais: manipuladores, m´oveis e human´oides (RUSSELL; NORVIG, 2004). Os manipuladores s˜ao robˆos fisicamente fixos, providos de articulac¸˜oes control´aveis, atrav´es das quais o robˆo pode posicionar seus atuadores em qualquer posic¸˜ao do seu espac¸o de trabalho. O principal exemplo dessa categoria s˜ao os brac¸os mecˆanicos, principais elementos rob´oticos presentes na ind´ustria. A segunda categoria de robˆos s˜ao os m´oveis, capazes de se deslocar pelo ambiente utilizando-se de pernas, rodas ou similares. E por fim, na terceira categoria est˜ao os robˆos human´oides, um misto das duas categorias anteriores, mas cuja principal caracter´ıstica ´e imitarem a forma f´ısica humana.

Os robˆos podem ainda ser classificados quanto a sua autonomia. Um agente autˆonomo pode ser definido como um sistema situado dentro de um ambiente, que pode perceber o ambiente e agir sobre o mesmo e exerce controle sobre suas pr´oprias ac¸˜oes (adaptado de Franklin e Graesser (1997)). Entidades autˆonomas s˜ao, portanto, aquelas, que uma vez iniciadas e postas em ac¸˜ao no ambiente, s˜ao capazes de executar suas tarefas e tomar decis˜oes por si s´o. Os sistemas n˜ao autˆonomos, por sua vez, s˜ao controlados externamente de forma parcial ou total, a exemplo dos automodelos e aeromodelos radio-controlados.

A abordagem mais simples no projeto de um sistema de controle para robˆos autˆonomos ´e representar todos os estados poss´ıveis que um robˆo pode estar em um ambiente qualquer e os eventos que disparam transic¸˜oes de um estado para ou outro. O problema dessa abordagem ´e que

(15)

nem sempre ´e poss´ıvel conhecer de antem˜ao todos os poss´ıveis estados, e mesmo quando isso ´e poss´ıvel existiria uma grande dependˆencia do robˆo com seu ambiente. Caso seja necess´ario inserir o robˆo em outro ambiente, ou caso o ambiente tenha componentes vari´aveis no tempo, ou ainda na presenc¸a de ru´ıdo no ambiente, este modelo apresenta grande ineficiˆencia, exigindo do projetista todo um reajuste do sistema de controle, ou at´e mesmo inviabilizando seu uso. A utilizac¸˜ao de procedimentos de aprendizagem libera o projetista da responsabilidade de ter que inserir no seu projeto conhecimentos detalhados do ambiente, e d˜ao ao robˆo a possibilidade de se comportar adequadamente em ambientes diferentes. ´E claro que a inserc¸˜ao de algum conhecimento pode ser desej´avel e pode facilitar o aprendizado.

Um sistema classificador, sendo um sistema de aprendizagem adaptativo e de prop´osito geral, capaz de operar em ambientes ruidosos (GEYER-SCHULZ, 1995), ´e uma boa opc¸˜ao para sistema de controle de robˆos m´oveis. Sua capacidade de evoluc¸˜ao permite que o robˆo seja colocado em ambientes distintos com pouca ou nenhuma alterac¸˜ao em sua programac¸˜ao.

(16)

3

Sumˆo de Robˆos

O sumˆo de robˆo foi inventado no Jap˜ao no final da d´ecada de 80 por Hiroshi Nozawa, Presidente da Fuji Software. A primeira exposic¸˜ao aconteceu em agosto de 1989, com 33 robˆos e em 1990 aconteceu o primeiro torneio oficial com 147 robˆos (Fujisoft, 2007). Desde ent˜ao ele vem se popularizando, e atualmente as competic¸˜oes ocorrem em diversas partes do mundo. No Brasil o robˆo de sumo tamb´em vem ganhado adeptos e algumas competic¸˜oes j´a se destacam, a exemplo do Desafio da UFRGS de Robˆos (REGRAS, 2007) e da Competic¸˜ao brasileira de Rob´otica (CBR, 2007) evento apoiado pela Sociedade Brasileira de Computac¸˜ao (SBC), pelo IEEE ( Institute of Electrical and Electronics Engineers), pela SBA (Sociedade Brasileira de Automac¸˜ao) e pela Robocup.

Figura 3.1:Arena do sumˆo de robˆo.

O sumˆo de robˆo assim como sua variante para humanos ´e uma competic¸˜ao entre dois in-div´ıduos cujo objetivo ´e empurrar o oponente para fora dos limites da arena, se mantendo dentro dela. A arena consiste de uma ´area circular cujo tamanho varia de acordo com as regras esta-belecidas para a competic¸˜ao. Essa ´area ´e pintada numa cor escura n˜ao reflexiva, e na borda

(17)

dessa ´area existe uma faixa branca cujas dimens˜oes s˜ao proporcionais `a ´area interna, e serve para indicar o limite da arena. A Figura 3.1 ilustra a arena do sumˆo de robˆo.

A competic¸˜ao de sumˆo de robˆo normalmente ´e categorizada de acordo com duas carac-ter´ısticas dos robˆos: peso e autonomia. Na primeira, os robˆos s˜ao agrupados com base na suas dimens˜oes e peso; existem v´arias categorias como microsumˆo, minisumˆo, sumˆo at´e 2, 3 e 9 kg entre outras, cujos limites variam de acordo as regras da competic¸˜ao. No quesito autonomia, os robˆos s˜ao classificados em radio-controlados ou autˆonomos, sendo estes ´ultimos o foco deste projeto. A Figura 3.2 ilustra alguns modelos de robˆos.

Figura 3.2: Exemplos de robˆos de sumˆo.

Maiores detalhes sobre o sumo de robˆos, suas regras e categorias podem ser vistas em (FUJISOFT, 2007; REGRAS, 2007; COOK, 2005; CBR, 2007)

(18)

4

Sistemas classificadores

Os sistemas classificadores (SC) ou LCS (Learning Classifier System), descritos original-mente por Holland (1976), podem ser definidos como um tipo de sistema baseado em regras com mecanismos para processamento paralelo, para avaliac¸˜ao da efetividade das regras existentes e gerac¸˜ao adapt´avel de novas regras. Trata-se de uma metodologia para criac¸˜ao e atualizac¸˜ao evolutiva de regras (classificadores) em um sistema de tomada de decis˜ao, que codifica alter-nativas de ac¸˜oes espec´ıficas para as caracter´ısticas de um ambiente em determinado instante (BOOKER; GOLDBERG; HOLLAND, 1989).

Um sistema classificador funciona interagindo com um ambiente, recebendo informac¸˜oes deste e, dado um conjunto de regras, atua sobre o mesmo utilizando-se da regra que melhor se adapte a informac¸˜ao recebida. Moussi (2002) destaca como principal caracter´ıstica dos SC, sua habilidade de aprender em ambientes n˜ao estacion´arios e em tempo real, inclusive com a presenc¸a de ru´ıdo.

As regras, ou classificadores, que comp˜oem um SC s˜ao do tipo SE (condic¸˜ao) ENT ˜AO (ac¸˜ao), onde a condic¸˜ao (tamb´em chamada de antecedente) reflete uma informac¸˜ao coletada do ambiente pelo sistema atrav´es de sensores, e a ac¸˜ao (conseq¨uente) representa a capacidade do sistema atuar sobre o ambiente a partir de seus atuadores. No caso espec´ıfico de um robˆo de sumˆo, um sensor pode ser um foto transistor que permita detectar os limites da arena ou mesmo um mecanismo de ultra-som que indique a localizac¸˜ao do oponente. J´a os motores que acionam as rodas seriam um exemplo de atuadores.

Um classificador, na implementac¸˜ao original (HOLLAND, 1976), ´e uma cadeia de caracte-res do seguinte alfabeto tern´ario {0,1,#} no qual o caractere # repcaracte-resenta um coringa, ou “don’t care”na literatura em inglˆes, que representa uma posic¸˜ao na cadeia cujo valor do caractere, se ´e 1 ou 0, n˜ao importa. Cada classificador tem associado um valor denominado energia ou forc¸a que indica o grau de sucesso ou adaptac¸˜ao de um classificador.

Al´em dessa abordagem bin´aria para codificac¸˜ao das mensagens vindas do ambiente, ´e poss´ıvel tamb´em representar um classificador de outras maneiras, como por exemplo, um n´umero

(19)

Tabela 4.1: Exemplos de Classificadores.

Item Classificadores ou Regras(Condic¸˜ao:Ac¸˜ao) Energia

A 1#1#:11 8

B 110#:01 5

C 1111:11 15

D #0##:10 19

real ou qualquer outro tipo de representac¸˜ao de dados.

A Tabela 4.1 apresenta um conjunto de classificadores, cujo condicional representa o es-tado de quatro sensores de limite de arena (edge line sensor, ELS). Na parte da ac¸˜ao, cada bit representa o estado de um dos motores, 1- ligado e 0 - desligado.

A Figura 4.1 ilustra os componentes de um sistema classificador de Holland:

Figura 4.1:Diagrama do sistema classificador de aprendizagem.

O funcionamento ocorre da seguinte maneira: as informac¸˜oes adquiridas dos sensores, ap´os serem codificadas e convertidas no formato do classificador, s˜ao armazenadas numa lista de mensagens (Message List), o sistema ent˜ao compara as mensagens com as condic¸˜oes das regras conhecidas (o conjunto [N]). As regras cujas condic¸˜oes sejam compat´ıveis com a mensagem s˜ao selecionadas (passam a fazer parte de um conjunto [M]) e passam a disputar o direito de atuar sobre o ambiente.

Internamente, os Sistemas Classificadores dividem-se em trˆes subsistemas distintos e inte-rativos : o Subsistema de Tratamento de Regras e Mensagens , o Subsistema de Apropriac¸˜ao de

(20)

Cr´edito e o Subsistema de Descoberta de Novas Regras. A Figura 4.2 ilustra os subsistemas de um sistema classificador.

Figura 4.2: Subsistemas de um sistema classificador de aprendizagem de Holland.

4.1

Subsistema de Tratamento de Mensagem

O Subsistema de Tratamento de Mensagem ´e respons´avel pela recepc¸˜ao e codificac¸˜ao das mensagens vindas do ambiente(informac¸˜ao dos sensores), al´em de selecionar as regras que mais se assemelhem a mensagem, as colocam no conjunto [M] (figura 4.1). Em um est´agio seguinte, estas regras disputar˜ao entre si o direito de atuar sobre o ambiente.

Os crit´erios utilizados para escolha das regras que disputar˜ao o direito de atuar sobre o sis-tema ´e a semelhanc¸a do seu antecedente com a mensagem vinda do ambiente. Duas abordagens foram encontradas na literatura para determinar o grau de similaridade de um classificador com a mensagem. A primeira proposta em Booker, Goldberg e Holland (1989) utiliza-se do c´alculo de uma variante da distˆancia de Hamming atrav´es da equac¸˜ao

M= (l − n)

(21)

onde:

l: corresponde ao comprimento do vetor de bits; n: ´e o numero de 0’s e 1’s que n˜ao se combinar˜ao.

A principal vantagem da utilizac¸˜ao dessa abordagem, ´e que a mesma permite que indiv´ıduos mais espec´ıficos em classificadores muito longos tenham chance de competir com indiv´ıduos menos espec´ıficos (BOOKER; GOLDBERG; HOLLAND, 1989)

Outra abordagem bastante comum e simples ´e a avaliac¸˜ao do grau de especificidade do classificador. O grau de especificidade indica a quantidade de caracteres do tipo # presentes na regra, ou seja, quanto menos caracteres coringas uma regra possuir mais espec´ıfica ela ser´a. A equac¸˜ao 4.2 exibe o c´alculo da especificidade.

E= (na − nt)

na (4.2)

onde:

na: comprimento do antecedente; nt: o node # do antecedente.

No exemplo da Tabela 4.1, o classificador D possui o menor grau de especificidade e o C o maior.

4.2

Subsistema de apropriac¸˜ao de cr´edito

No subsistema de apropriac¸˜ao de cr´edito ocorre um processo de competic¸˜ao entre os clas-sificadores que se identificaram com a mensagem vinda do ambiente e codificada pelo sistema de tratamento de mensagens. Cada um deles faz uma oferta (ou “bid”na literatura em l´ıngua inglesa) proporcional a sua energia.

Ao ”bid”´e acrescido ou diminu´ıdo um ru´ıdo gaussiano, o qual permite que regras com menor energia tenham chance de competir, possibilitando ao sistema classificador percorrer uma regi˜ao maior do espac¸o de busca na tentativa de encontrar regras mais adequadas mesmo que suas energias sejam menores. A soma do bid com o ru´ıdo gaussiano ´e chamada de bid efetivo ou ebid.

(22)

O bid ´e dado pela equac¸˜ao:

Bid(t) = k0 ∗ (k1 + k2 ∗ Espow) ∗ S(t) (4.3) onde:

Bid(t): ”Bid” no instante t;

k0: coeficiente de bid 0, referente `a energia do classificador (constante positiva menor que 1); k1: constante de bid 1, referente `a parte n˜ao espec´ıfica do classificador (constante positiva

menor que 1);

k2: constante de bid 2, referente `a parte espec´ıfica do classificador (constante positiva menor que 1);

E: especificidade do classificador associada `a proporc¸˜ao de s´ımbolos “#”no classificador. SPow: parˆametro de controle da influˆencia da especificidade no valor do bid (normalmente

igual a 1);

S(t): energia do classificador no instante t. O ebid ´e calculado pela equac¸˜ao:

eBid= Bid(t) + s bid ∗ N (4.4) onde:

eBid: Bid efetivo no instante t; Bid(t): Bid no instante t;

N: modulac¸˜ao caracterizada por um ru´ıdo com distribuic¸˜ao gaussiana de m´edia 0 e variˆancia 1; s bid: um parˆametro espec´ıfico do sistema, utilizado durante a competic¸˜ao, para determinar o

n´ıvel de perturbac¸˜ao desejado durante a aplicac¸˜ao do ru´ıdo gaussiano sobre o Bid(t).

A competic¸˜ao se passa da seguinte maneira, cada classificador do conjunto [M], Figura 4.1, apresenta seu lance efetivo, eBid, e o classificador que apresentar o maior valor se torna o vencedor do leil˜ao e ganha o direito de atuar sobre o ambiente.

(23)

O subsistema de apropriac¸˜ao de cr´edito tamb´em ´e respons´avel pelos ajustes que afetar˜ao a energia dos classificadores, da´ı vem seu nome. Tais ajustes podem ser classificados em dois tipos, taxac¸˜oes e recompensa.

Taxac¸˜oes s˜ao valores descontados da energia do classificador por sua participac¸˜ao em algum evento. A primeira ´e a taxa de vida, cobrada de todos os classificadores `a cada n interac¸˜oes, cujo objetivo ´e permitir que classificadores que nunca s˜ao utilizados tenham sua energia diminu´ıda e fiquem pass´ıveis de substituic¸˜ao por novos classificadores. A taxa de vida ´e calculada pela equac¸˜ao 4.5:

Taxa v= 1 − (1/2)1/n (4.5) onde:

n: ´e a meia-vida do classificador, definida em n´umeros de iterac¸˜oes, pelo programador.

Outra taxa cobrada dos classificadores ´e pela disputa do direito de atuar sobre ambiente. O objetivo ´e evitar que os classificadores participem constantemente do leil˜ao sem nunca ganh´a-lo. A taxa de participac¸˜ao ´e cobrada apenas dos classificadores selecionados pelo sistema de tratamento de mensagens, conjunto [M], e seu c´alculo ´e dado pela equac¸˜ao 4.6:

Taxa bid= Bid tax ∗ Bidt (4.6)

onde:

Taxa bid: taxa de participac¸˜ao na competic¸˜ao;

Bid tax: constante aplicada sobre o Bid do classificador; Bidt: Bid do classificador no instante t.

A ´ultima taxa ´e cobrada apenas do classificador vencedor do leil˜ao que sofre um decr´escimo de energia equivalente ao bid dado pelo mesmo. Essa taxa ser´a utilizada como recompensa para o classificador vencedor da iterac¸˜ao anterior, esse mecanismo ser´a explicado adiante.

Todos os classificadores que participam do leil˜ao tˆem uma parcela de sua energia diminu´ıda como prec¸o pela disputa do direito de atuar sobre o ambiente. Ap´os o classificador vence-dor aplicar sua ac¸˜ao sobre o ambiente entra em ac¸˜ao um mecanismo de recompensa (Reward)

(24)

que de acordo com resultado da ac¸˜ao do classificador sobre o ambiente, ir´a recompensar, com acr´escimo da energia do classificador caso o resultado seja positivo, e o decr´escimo da mesma para um resultado negativo.

Licpins et al. (1989) discute v´arias abordagens para o processo de atribuic¸˜ao de cr´edito, das quais duas se destacam. A abordagem ”est´ımulo-resposta”prevˆe uma atribuic¸˜ao de cr´edito (punic¸˜ao ou recompensa) para toda mensagem apresentada ao sistema classificador. Essa abor-dagem ´e interessante quando o resultado esperado do sistema depende da ac¸˜ao isolada de cada classificador.

A outra abordagem ´e conhecida como “bucket-brigade”e consiste em busca criar uma seq¨uˆencia de classificadores que levem a um resultado positivo. O procedimento consiste em atribuir o lance do classificador vencedor atual ao vencedor da interac¸˜ao anterior e assim suces-sivamente at´e o final do per´ıodo desejado, sendo que o ´ultimo vencedor recebe a recompensa definida pelo programador. A id´eia ´e que a punic¸˜ao, ou a recompensa, seja distribu´ıda ao longo de uma cadeia de classificadores, beneficiando as cadeias que levem a resultados positivos ou punindo as cadeias que levem a resultados negativos. Essa abordagem ´e mais aplic´avel quando uma seq¨uˆencia de classificadores representa o resultado esperado do sistema.

A energia de cada classificador ao final de uma iterac¸˜ao t ´e dada pela equac¸˜ao 4.7

S(t + 1) = (1 − Taxa v) ∗ S(t) + R(t) − Bid(t) − Taxa bid (4.7) onde:

Taxa v: taxa de vida do classificador; S(t): energia do classificador no instante t.

R(t): valor baseado na retroalimentac¸˜ao do sistema, punic¸˜ao ou recompensa (R(t) =0 caso o classificador n˜ao tenha sido vitorioso no instante t);

Bid(t): Bid do classificado no instante t (Bid(t) =0 caso o classificador n˜ao tenha sido vitorioso no instante t);

Taxa bid: taxa de participac¸˜ao na competic¸˜ao (Taxa bid =0 caso o classificador n˜ao tenha competido no instante t);

(25)

4.3

Subsistema de descoberta de novas regras

A cada n interac¸˜oes, sendo “n”um valor inteiro definido pelo programador, um algoritmo gen´etico atua sobre a populac¸˜ao de classificadores de forma a otimiz´a-la e criar uma nova gerac¸˜ao mais apta `as condic¸˜oes ambientais naquele instante. Os Algoritmos Gen´eticos s˜ao discutidos no Cap´ıtulo 5.

A id´eia central no processo de descoberta de novas regras ´e gerar novos classificadores baseando-se nos classificadores mais aptos do conjunto de regra. O processo ocorre em trˆes fa-ses: na primeira fase, os indiv´ıduos s˜ao selecionados para reproduc¸˜ao (o n´umero de indiv´ıduos depende da taxa de cruzamento, definida pelo programador). No processo de escolha ´e inse-rido um fator aleat´orio para permitir indiv´ıduos menos aptos tenham alguma chance, ainda que pequena, de serem selecionados.

A segunda fase do processo ´e a reproduc¸˜ao dos classificadores selecionados na fase anterior e a aplicac¸˜ao do operador de mutac¸˜ao sobre a populac¸˜ao. Como as implementac¸˜oes cl´assicas de sistemas classificadores trabalham com tamanho constante da populac¸˜ao, a terceira fase ´e a reestruturac¸˜ao da populac¸˜ao, que consiste em escolher os indiv´ıduos da populac¸˜ao original que ser˜ao substitu´ıdos pelos novos.

Os crit´erios de selec¸˜ao de classificadores a serem substitu´ıdos se baseiam no valor da ener-gia do classificador. Uma das abordagens poss´ıveis ´e selecionar um grupo de classificadores da populac¸˜ao de forma aleat´oria e substituir o classificador com menor energia nesse grupo por um dos novos classificadores gerados. Outra abordagem ´e substituir os classificadores com me-nor energia em toda a populac¸˜ao. O percentual de classificadores substitu´ıdos ´e definido pelo programador.

O subsistema de descoberta de novas regras, mais especificamente o algoritmo gen´etico, ´e respons´avel pelo car´ater adaptativo do sistema classificador e o seu ajuste de forma correta ´e fundamental para o bom funcionamento do sistema classificador.

(26)

5

Algoritmos Gen´eticos

Os Algoritmos Gen´eticos (AG), propostos por Holland (1976), pertencem a uma classe de algoritmos que se baseiam nos conceitos de selec¸˜ao natural e evoluc¸˜ao presentes na na-tureza e descritos por (DARWIN, 1859;1993), propondo soluc¸˜oes adaptativas para problemas em pesquisas num´ericas, otimizac¸˜ao de func¸˜oes e aprendizagem de m´aquina. Esse ramo da computac¸˜ao ´e chamado de Computac¸˜ao Evolutiva (FILHO; VARGAS; ZUBEN, 2003).

Atmar (1994) define um algoritmo gen´etico como um conjunto predeterminado e bem defi-nido de regras e processos com operac¸˜oes finitas destinados `a busca estoc´astica polarizada. Vale salientar que apesar do car´ater estoc´astico ou aleat´orio dos algoritmos gen´eticos, eles s˜ao capa-zes de explorar com eficiˆencia a mem´oria passada, no sentido de polarizar a busca por regi˜oes promissoras no espac¸o de candidatos `a soluc¸˜ao (GOLDBERG, 1989). Os algoritmos gen´eticos permitem uma explorac¸˜ao muito mais ampla do universo de poss´ıveis soluc¸˜oes para um pro-blema do que os algoritmos convencionais. A Figura 5.1 ilustra o processo de funcionamento de um AG.

O ciclo de execuc¸˜ao de um algoritmo gen´etico ocorre da seguinte maneira. Para cada clas-sificador da populac¸˜ao ´e efetuada uma medic¸˜ao do grau de adaptac¸˜ao (fitness) do indiv´ıduo ao problema em an´alise, no caso dos sistemas classificadores o fitness ´e seu pr´oprio valor de Energia.

Um crit´erio de parada (n´umero de ciclos, um valor limite de fitness ou algum outro crit´erio peculiar ao problema) ´e analisado para indicar o fim da execuc¸˜ao do AG. Caso este crit´erio ainda n˜ao tenha sido contemplado, o AG prossegue aplicando os operadores de selec¸˜ao, cruzamento (crossover) e mutac¸˜ao sobre a populac¸˜ao, de forma a encontrar novos indiv´ıduos e buscar novas soluc¸˜oes. Todo o ciclo se repete at´e que o crit´erio de parada seja satisfeito.

Os elementos que comp˜oe um algoritmo gen´etico s˜ao explicados a seguir.

Populac¸˜ao: Conjunto de indiv´ıduos sobre o qual o algoritmo gen´etico atua. ´E inicializada com valores aleat´orios ou n˜ao (quando se tem algum conhecimento pr´evio sobre o processo

(27)

Figura 5.1:Ciclo de execuc¸˜ao de um algoritmo Gen´etico.

em an´alise, a escolha da populac¸˜ao inicial pode acelerar o processo de busca dos melhores resultados.)

Indiv´ıduo: Cada integrante da populac¸˜ao, especificamente nos sistemas classificadores, um individuo ´e um classificador.

Cromossomo: Representac¸˜ao de um indiv´ıduo. A figura 5.2, ilustra um cromossomo represen-tado no formato bin´ario. ´E poss´ıvel tamb´em representar um cromossomo sob qualquer forma de representac¸˜ao de dados, como n´umero real, entre outras. Baeck, Fogel e Micha-lewicz (2000) apresentam maiores detalhes sobre representac¸˜oes.

Figura 5.2: Cromossomo na representac¸˜ao bin´aria.

Gerac¸˜ao: Conjunto de indiv´ıduos resultante de cada iterac¸˜ao do algoritmo gen´etico.

Func¸˜ao de avaliac¸˜ao(fitness): Medida do grau de adaptac¸˜ao ou de sucesso de um indiv´ıduo ao ambiente.

(28)

Selec¸˜ao: Mecanismo de escolha dos indiv´ıduos para criar uma nova gerac¸˜ao de indiv´ıduos. Um dos mecanismos utilizados ´e denominado ”Roulette wheel”, ou m´etodo da roleta (GOLDBERG, 1983). Este m´etodo consiste em normalizar os valores de energia dos cromossomos numa escala de 0o a 360o(n´umero de graus numa circunferˆencia). Posteri-ormente, ´e feito um sorteio de um valor nessa mesma faixa, e os indiv´ıduos que possu´ırem os valores de energia sorteados s˜ao selecionados. A Figura 5.3 ilustra este processo:

Figura 5.3:M´etodo da Roleta (Roullete Wheel).

Observe que mesmo um individuo menos adapto (menor energia) tem uma probabili-dade, ainda que pequena, de ser selecionado. Isso serve para garantir a diversidade na populac¸˜ao, permitindo que o AG explore uma parcela maior do universo de soluc¸˜oes e n˜ao sofra uma convergˆencia precoce para uma pequena regi˜ao de explorac¸˜ao. O operador de mutac¸˜ao tamb´em ajuda neste processo.

Outra forma de selec¸˜ao de indiv´ıduos ´e o elitismo, que consiste em selecionar sempre os indiv´ıduos mais aptos(maior energia). Essa abordagem ´e interessante quando se deseja preservar os melhores indiv´ıduos e ´e geralmente empregada em conjunto com outros m´etodos de selec¸˜ao. Outras formas de Selec¸˜ao podem ser encontradas em Baeck, Fogel e Michalewicz (2000).

Operadores Gen´eticos: Aqui os indiv´ıduos selecionados anteriormente tˆem a chance de per-petuar seu material gen´etico, ou ao menos parte deste material, atrav´es da aplicac¸˜ao dos operadores gen´eticos de cruzamento e mutac¸˜ao.

Crossover(Cruzamento): o operador de crossover, ou cruzamento, permite que dois indiv´ıduos fac¸am a permuta de informac¸˜oes gen´eticas. Uma das formas de realizar o cru-zamento ´e escolher um ponto de corte (definido pelo programador, baseado em crit´erios emp´ıricos) e toda informac¸˜ao contida a partir desse ponto num cromossomo ´e transferida

(29)

para o outro e vice-versa, ao final tˆem-se dois novos indiv´ıduos que podem substituir os menos adaptados da populac¸˜ao inicial. A Figura 5.4 ilustra esse processo. Essa forma de crossover ´e chamada de n-crossover, onde o n representa um ponto de corte, a partir do qual o conte´udo cromossomos ser˜ao trocados. Maiores detalhes sobre o operador e tipos de crossover podem ser vistos em Baeck, Fogel e Michalewicz (2000).

Figura 5.4:Crossover.

Mutac¸˜ao: este operador, como j´a foi citado, ajuda a evitar que o algoritmo tenha uma convergˆencia muito r´apida para pequenas regi˜oes , forc¸ando o algoritmo a percorrer uma parcela maior do universo de soluc¸˜oes poss´ıveis para o problema. A mutac¸˜ao ´e feita, esco-lhendo, um bit aleat´orio em um cromossomo (na representac¸˜ao bin´aria) e invertendo seu valor. A taxa de mutac¸˜ao ´e definida pelo programador baseando-se tamb´em em crit´erios emp´ıricos.

Crit´erio de parada Caracterizado pela obtenc¸˜ao de uma soluc¸˜ao satisfat´oria ou pelo t´ermino do tempo computacional pre-estabelecido (FOGEL, 1999). A escolha do crit´erio de pa-rada est´a condicionada a natureza do problema a ser resolvido. No caso de otimizac¸˜ao de func¸˜oes, por exemplo, o crit´erio de parada ´e normalmente a menor diferenc¸a entre o valor obtido e um valor considerado ´otimo.

No caso dos sistemas classificadores o crit´erio de parada ´e a obtenc¸˜ao de um valor m´ınimo (definido pelo programador) da diferenc¸a entre as energias m´edias da populac¸˜ao de clas-sificadores entre rodadas consecutivas. A energia m´edia da populac¸˜ao de clasclas-sificadores ´e um crit´erio que serve como parˆametro de indicac¸˜ao de sucesso do sistema classificador e ser´a melhor detalhada no Cap´ıtulo 8.

Nos sistemas classificadores, o algoritmo gen´etico ´e utilizado para gerac¸˜ao de novas regras. Os cromossomos s˜ao os pr´oprios classificadores e o fitness ´e a energia do classificador. O

(30)

algoritmo gen´etico ´e aplicado de tempos em tempos sobre a populac¸˜ao de classificadores e aqueles com menores valores de energia s˜ao substitu´ıdos pelos novos classificadores.

(31)

6

Simulac¸˜ao em Rob´otica

A simulac¸˜ao consiste na representac¸˜ao, atrav´es de equac¸˜oes matem´aticas, de processos ou operac¸˜oes reais em computadores. A simulac¸˜ao ´e bastante utilizada em rob´otica com o objetivo de acelerar o processo de desenvolvimento e reduzir os custos com a prototipagem, isso porque mudanc¸as e ajustes no ˆambito da simulac¸˜ao s˜ao muito mais f´aceis e muito menos dispendiosas para serem executados.

Um simulador na rob´otica faz a representac¸˜ao de duas coisas, primeiro do robˆo (forma, comportamento, sensores, movimento) e segundo do ambiente no qual esse robˆo est´a inserido. Um simulador de sumˆo de robˆos deve modelar a arena e os robˆos, com seus conjuntos de sensores e atuadores.

Foi feita uma an´alise de alguns simuladores com objetivo de definir um ambiente para implementac¸˜ao do sistema de controle. Nessa an´alise foram consideradas, de forma subjetiva, algumas caracter´ısticas:

1. N´ıvel de f´ısica simulada: o n´ıvel da f´ısica simulada caracteriza o grau de realismo do simulador, quanto mais pr´oximo da realidade, maiores as chances de sucesso do prot´otipo no mundo real. Em contrapartida, o aumento da complexidade da f´ısica simulada, h´a um aumento dos requisitos de processamento, e tamb´em nas dificuldades no processo de desenvolvimento.

2. Visualizac¸˜ao: representa a sa´ıda do simulador, a maneira como o usu´ario vˆe o processo si-mulado. Pode ser textual (onde s˜ao exibidos os resultados obtidos da sa´ıda das equac¸˜oes) ou possuir visualizac¸˜ao 2D ou 3D. Quanto mais elementos na visualizac¸˜ao mais f´acil ´e o processo de desenvolvimento e depurac¸˜ao de erros.

3. Linguagens de programac¸˜ao utilizadas para a implementac¸˜ao do prot´otipo: ´E interessante que o simulador oferec¸a suporte a linguagens conhecidas, como C, C++, Java entre outras, facilitando o processo de aprendizagem e operac¸˜ao do mesmo.

(32)

4. Algumas outras caracter´ısticas como a existˆencia de modelos para o sumˆo de robˆos foram consideradas tamb´em.

Simuladores como o Player, o Webots, o Khepera Simulator, foram analisados, mas o des-taque ficou por conta de um ambiente voltado para a prototipagem e simulac¸˜ao de robˆos desen-volvido pela Microsoft, o Robotics Studio, o qual possui um ambiente para implementac¸˜ao de robˆos de sumˆo, sendo esse o principal motivo que inicialmente levou `a sua escolha.

6.1

Microsoft Robotics Studio

O Microsoft Robotics Studio (MRS) ´e um ambiente que permite a criac¸˜ao de aplicac¸˜oes em rob´otica oferecendo suporte a plataformas de hardware de diversos fornecedores, al´em de permitir ao desenvolvedor a confecc¸˜ao de sua pr´opria plataforma. O MRS possui, al´em do am-biente de design e programac¸˜ao, um amam-biente de simulac¸˜ao (Microsoft Robotics Simulation) que permite a avaliac¸˜ao do prot´otipo antes de sua implementac¸˜ao, poupando tempo no desen-volvimento de novas aplicac¸˜oes e reduzindo custos.

O Microsoft Robotics Studio possui uma arquitetura orientada `a servic¸os. Um servic¸o ´e uma unidade de software independente que em conjunto com outras unidades representam uma aplicac¸˜ao (ERL, 2004). `A primeira vista o conceito de servic¸o pode se assemelhar ao conceito de componente , pois assim como este, um servic¸o tamb´em ´e um contrato, um conjunto de ac¸˜oes a serem realizadas.

A principal diferenc¸a servic¸os e componentes ´e que os servic¸os s˜ao por natureza dis-tribu´ıdos. Assim construir uma aplicac¸˜ao no MRS significa desenvolver unidades menores e independentes e coordenar estas unidades de forma a ter o resultado esperado. O principal foco desse tipo de arquitetura ´e a simplicidade, interoperabilidade e o baixo acoplamento dos servic¸os, permitindo o reuso de servic¸os e reduzindo conseq¨uentemente o retrabalho.

A Figura 6.1 ilustra um digrama de uma aplicac¸˜ao orientada a servic¸os. Os blocos sensor 1, sensor 2 e sensor 3 s˜ao servic¸os que representam sensores (sensor de infravermelho, sensor de contato etc.). Os blocos motor s˜ao servic¸os que representam motores que acionam rodas. O servic¸o orquestrator simplesmente consome as entradas geradas pelos sensores tomando as ac¸˜oes correspondentes `as mesmas atrav´es do acionamento ou n˜ao dos servic¸os motores.

As principais vantagens do MRS s˜ao:

(33)

Figura 6.1:Diagrama de uma aplicac¸˜ao no MRS.

mercado, program´a-los e efetuar simulac¸˜oes com os mesmos.

• Suporte a diversas linguagens de programac¸˜ao: C# , Visual Basic, J#, Phyton e qualquer outra compat´ıvel com a CLS (Common Language Specification) do Ambiente .NET. • Uma biblioteca dos servic¸os comumente utilizados em aplicac¸˜oes rob´oticas, como cˆameras,

sensores de toque, motores, fontes de energia, diferenciais, entre outros. • Visualizac¸˜ao gr´afica 3D e uma f´ısica simulada bastante realista.

O principal ponto negativo do MRS ´e a pouca disponibilidade de material para aprendiza-gem, isso ocorre pelo fato de ainda ser uma novidade no mercado. Al´em da documentac¸˜ao dis-ponibilizada pelos desenvolvedores sobre o MRS, foram encontradas apenas duas publicac¸˜oes, que ainda n˜ao est˜ao dispon´ıveis no mercado nacional. Por esse motivo, alguns problemas n˜ao puderam ser solucionados em tempo h´abil o que impossibilitou o t´ermino da implementac¸˜ao do sistema de controle no Robotics Studio.

6.2

Implementac¸˜ao do Simulador

Devido aos problemas encontrados no Robotics Studio e diante da impossibilidade de resolve-los, optou-se pela implementac¸˜ao de um simulador em linguagem Java. O objetivo esperado com o simulador era a obtenc¸˜ao de um ambiente que possibilitasse a avaliac¸˜ao e treinamento do sistema de controle desenvolvido

(34)

O simulador possui visualizac¸˜ao 2D e uma f´ısica simulada bastante simples.O simulador ve-rifica colis˜oes e toma ac¸˜oes baseado em equac¸˜oes f´ısicas da mecˆanica cl´assica. A implementac¸˜ao do processo de tratamento de colis˜ao baseou-se na implementac¸˜ao dispon´ıvel em (COLLI-SION, 2004). Os robˆos s˜ao representados por c´ırculos, as colis˜oes s˜ao detectadas calculando a distˆancia entre o centro das circunferˆencias, pela equac¸˜ao 6.1:

d= ((x2 − x1)2+ (y2 − y1)2)1/2 (6.1) Onde: (x1,y1) representam as coordenadas da primeira circunferˆencia e (x2,y2) as coorde-nada da segunda.

Se o valor da distˆancia for inferior ou igual a soma dos raios das circunferˆencias considera-se que houve colis˜ao. A figura 6.2 ilustra o simulador:

Figura 6.2:Interface do simulador.

A interface do simulador ´e bem simples e intuitiva, havendo um bot˜ao para iniciar a simulac¸˜ao, outro para interromper e outro para reiniciar o processo de simulac¸˜ao, al´em de duas caixas de selec¸˜ao que permitem desabilitar a interface gr´afica e a execuc¸˜ao da simulac¸˜ao de forma cont´ınua (a simulac¸˜ao ir´a parar ao final da execuc¸˜ao da rodada).

(35)

ˆangulo entre sua direc¸˜ao de movimento e a localizac¸˜ao do oponente. O simulador tamb´em informa ao robˆo quando ele est´a sobre o limite da arena e passa tamb´em o ˆangulo formado entre a direc¸˜ao de movimento do robˆo e o centro da arena. Essa informac¸˜ao permite ao robˆo inferir sua localizac¸˜ao na arena e tomar as ac¸˜oes apropriadas.

Apesar das simplificac¸˜oes, o simulador atende as necessidades de avaliac¸˜ao do sistema de controle implementado, principalmente em avaliar a viabilidade dos sistemas classificadores como mecanismo de controle de um robˆo de sumˆo.

(36)

7

Sistemas classificadores aplicados ao

sumo de Robˆo

O primeiro passo no processo de construc¸˜ao de um sistema classificador ´e a escolha da forma de representac¸˜ao da regra. Como citado no Cap´ıtulo 4,sobre sistemas classificadores, ´e poss´ıvel utilizar qualquer representac¸˜ao de dados. Nesse trabalho a representac¸˜ao bin´aria se justifica pela pr´opria natureza da informac¸˜ao, ou seja, a maioria dos sensores de um robˆo j´a apresenta sa´ıdas neste formato evitando assim uma convers˜ao que poderia levar a perda de informac¸˜oes e ao aumento do tempo de execuc¸˜ao do sistema de controle.

Decidida a forma de representac¸˜ao, o passo seguinte ´e a determinac¸˜ao das informac¸˜oes a serem codificadas. Isso est´a diretamente relacionado com o modelo de robˆo implementado. O modelo escolhido para ser desenvolvido possui as seguintes caracter´ısticas:

Sensores de faixas: permite ao robˆo detectar os limites da arena. Na simulac¸˜ao o robˆo re-cebe a informac¸˜ao que est´a sobre a faixa limite da arena e tamb´em um ˆangulo α entre a direc¸˜ao do centro da arena e a direc¸˜ao do movimento do robˆo(ver Figura 7.1). Com estas informac¸˜oes ´e poss´ıvel ao robˆo inferir qual parte do seu corpo esta sobre a borda. Assim o robˆo simulado consegue reproduzir um comportamento parecido com um robˆo real com sensores de faixa em cada uma de suas arestas.

Figura 7.1: Angulo de localizac¸˜ao da faixa. α : ˆangulo entre o vetor V (direc¸˜ao deˆ deslocamento do robˆo) e a reta L (distˆancia do centro do robˆo ao centro da arena).

(37)

Sensores de presenc¸a: na simulac¸˜ao considerou-se que o robˆo tem uma vis˜ao de 360◦ a sua volta, e o simulador passa ao robˆo informac¸˜oes sobre a distˆancia do oponente e o ˆangulo formado entre sua direc¸˜ao de movimentac¸˜ao e a direc¸˜ao da posic¸˜ao do oponente(ver Fi-gura 7.2).

Figura 7.2: Informac¸˜oes sobre a localizac¸˜ao do oponente. β : ˆangulo formado entre a distˆancia d do oponente e direc¸˜ao V de deslocamento do robˆo

Movimentac¸˜ao: a movimentac¸˜ao do robˆo ´e alterada variando as componentes x e y da sua acelerac¸˜ao, chamadas de ax e ay. A acelerac¸˜ao ´e relativa ao plano de movimentac¸˜ao do robˆo. Assim variando os valores de ax e ay ´e poss´ıvel imprimir uma acelerac¸˜ao ao robˆo em qualquer direc¸˜ao.

Definidas as informac¸˜oes que o robˆo disp˜oe (ˆangulo e distˆancia do oponente, estar ou n˜ao sobre o limite da arena e o ˆangulo do centro da arena) e as ac¸˜oes que ele pode tomar (controle da intensidade e direc¸˜ao da acelerac¸˜ao), o pr´oximo passo foi definir a composic¸˜ao e a estrutura do classificador.

Figura 7.3: Configurac¸˜ao do antecessor do classificador implementado, 1- sensor de faixa, 2- ˆangulo formado entre a direc¸˜ao de deslocamento do robˆo e o centro arena, 3-presenc¸a do oponente, 4-distˆancia do oponente e 5- ˆangulo da localizac¸˜ao do oponente.

A estrutura do classificador foi definida da seguinte forma: o antecessor possui compri-mento de 11 bits, sendo 1 bit para indicar se o robˆo est´a sobre o limite da arena, 3 bits para indicar a posic¸˜ao do robˆo em relac¸˜ao ao centro da arena, os quais bits s˜ao setados com valor zero quando o robˆo n˜ao est´a sobre o limite da arena.

(38)

Ainda tem 1 bit para indicar a presenc¸a do oponente, 3 bits indicam a distˆancia do oponente e mais 3 bits indicam a direc¸˜ao do mesmo. A Figura 7.3 ilustra a estrutura do antecedente do classificador.

O processo de codificac¸˜ao dos valores recebidos dos sensores em valores bin´arios segue o seguinte esquema.

1. Se o robˆo est´a sobre a faixa o valor do primeiro bit ´e 1, caso contr´ario o valor ´e 0.

2. Se o robˆo est´a sobre a linha, os trˆes bits seguintes representam o ˆangulo α entre o robˆo e o centro da arena codificado conforme a figura, valores entres 0 e 45◦ s˜ao codificados com ”000”, entre 45◦ e 90◦ como 001 e assim sucessivamente utilizando a codificac¸˜ao Gray (Figura 7.4), para evitar que entre faixas adjacentes exista mudanc¸a em mais de um bit. Se o 1◦bit for zero, os trˆes bits dessa seq¨uˆencia tamb´em ser˜ao

Figura 7.4:Codificac¸˜ao do ˆangulo (c´odigo Gray).

3. O quinto bit representa presenc¸a do oponente e vale 1 se o oponente est´a vis´ıvel e zero caso contr´ario.

4. O sexto, o s´etimo e o oitavo bit representam o ˆangulo β entre a direc¸˜ao de movimento do robˆo e a posic¸˜ao do oponente figura, a codificac¸˜ao ´e feita da mesma forma que o ˆangulo do item 2.

5. O nono, o d´ecimo e o d´ecimo primeiro bit representam a distˆancia do oponente norma-lizada entre 0 e 100, onde 0 representa a menor distancia, quando os robˆos se tocam e 100 representa a distˆancia m´axima em que o oponente ainda aciona o bit 5. A tabela 7.1 mostra a codificac¸˜ao do valores.

O conseq¨uente do classificador ´e composto por seis bits, sendo que trˆes representa a inten-sidade da acelerac¸˜ao distribu´ıda na faixa de 0 a 21 pixels/iterac¸˜ao conforme a Tabela 7.2.

(39)

Distˆancia(normalizada) Valor bin´ario 0-20 000 20-40 001 40-60 010 60-80 011 80-100 100

Tabela 7.1: Codificac¸˜ao da distˆancia do oponente.

Acelerac¸˜ao (intensidade) Valor bin´ario

0 000 3 001 6 010 9 011 12 100 15 101 18 110 21 111

Tabela 7.2: Intensidade da acelerac¸˜ao.

Ax Ay Valor bin´ario 0 0 000 0 -1 001 1 0 011 1 1 010 0 1 110 -1 1 111 -1 0 100

(40)

Os trˆes bits restantes indicam a direc¸˜ao da acelerac¸˜ao, a tabela 7.3 ilustra a codificac¸˜ao: Na primeira vez que o sistema ´e executado os classificadores s˜ao inicializados aleatoria-mente com energia igual a oitenta unidades. A cada ciclo do sistema classificador, ´e descontada a taxa de vida de cada classificador, conforme a Equac¸˜ao 4.5. A meia vida foi definida em 5000 interac¸˜oes.

O mecanismo de recompensa/punic¸˜ao possui duas atuac¸˜oes: a primeira age no final de cada rodada, aumentando a energia do ´ultimo classificador em trinta unidades (valor emp´ırico) em caso de comportamento vitorioso (conseguir retirar o oponente da arena at´e o final da rodada) e retirando trinta unidades em caso de derrota (ser retirado da arena pelas suas pr´oprias ac¸˜oes ou pelas ac¸˜oes do oponente).

Durante a execuc¸˜ao da rodada, o bid do classificador vencedor no instante t ´e transferido para o vencedor do instante t-1 conforme o mecanismo de atribuic¸˜ao de cr´edito bucket brigade descrito na cap´ıtulo 4, sobre sistemas classificadores.

Um outro mecanismo de recompensa age durante a rodada, incrementando a energia do classificador em uma unidade se ele aproxima-se do oponente ou se afasta das bordas da arena, e decrementando uma unidade se ele afasta-se do oponente ou se aproxima da borda.

A cada n-rodadas o algoritmo gen´etico atua sobre a populac¸˜ao de classificadores. Esse algoritmo emprega o elitismo com taxa de 80% de forma a preservar a maior parte da populac¸˜ao. Os cromossomos s˜ao selecionados pelo m´etodo roulette wheel e cruzados com taxa de 70%.

A energia inicial dos novos classificadores gerados na reproduc¸˜ao ´e a m´edia das energias dos classificadores selecionados como pais. Os indiv´ıduos gerados poder˜ao, dependendo do seu valor inicial ( de energia, ocupar o lugar dos 20 % restante do elitismo.

Sobre a populac¸˜ao final ainda age um operador de mutac¸˜ao com taxa de 5%, os classificado-res classificado-resultantes deste processo s˜ao inseridos na populac¸˜ao no lugar dos classificadoclassificado-res originais. Sempre que a energia de uma classificador chega a um valor menor que zero, ele ´e subs-titu´ıdo por um novo classificador, gerado de forma aleat´oria e com energia igual a m´edia da populac¸˜ao.

(41)

8

Experimentos e Resultados

Os primeiros testes realizados tinham como objetivo apenas o ajuste dos parˆametros do sistema classificador. Para tanto, foi desenvolvido um experimento n˜ao gr´afico, onde o objetivo era manter um ponto, que representava o robˆo, dentro dos limites de uma ´area quadrada de tamanho vari´avel. N˜ao havia interesse em avaliar o desempenho e sim, se havia convergˆencia, ou seja, se o sistema era capaz de manter o ponto dentro dos limites da ´area.

Foram efetuados testes com v´arios tamanhos da populac¸˜ao de classificadores, a qual era inicializada com indiv´ıduos aleat´orios. Para esse experimento foi poss´ıvel verificar que o sis-tema era capaz de manter o ponto dentro da ´area, e continuar a repetir esse comportamento ap´os algumas poucas rodadas permitindo concluir que havia convergˆencia no processo e que o sistema classificador estava operando dentro do esperado.

Os experimentos seguintes foram realizados no simulador desenvolvido e o objetivo era a verificac¸˜ao do funcionamento do sistema implementado, a partir da an´alise do comportamento apresentado pelo robˆo (observac¸˜ao da distˆancia do robˆo oponente, da aproximac¸˜ao dos limites da arena, da quantidade de vezes que o robˆo retirava o oponente da arena e tamb´em da quanti-dade de vezes que ele mesmo sa´ıa) e da an´alise da populac¸˜ao de classificadores, especificamente da an´alise da energia m´edia da populac¸˜ao em cada rodada.

A soluc¸˜ao esperada para o problema do sumˆo de robˆo ´e representada pela ativac¸˜ao de uma seq¨uˆencia correta de classificadores, que ser˜ao recompensados com o aumento de suas respec-tivas energias e possivelmente ser˜ao selecionados para gerarem novos classificadores, elevando assim o valor da energia m´edia da populac¸˜ao de classificadores. Assim a energia m´edia da populac¸˜ao de classificadores ´e um bom indicativo do desempenho do sistema classificador.

Foram realizados v´arios experimentos com objetivos distintos: verificar o funcionamento, avaliar o impacto do tamanho da populac¸˜ao e da freq¨uˆencia de aplicac¸˜ao do algoritmo gen´etico na variac¸˜ao da energia m´edia, entre outros objetivos. A seguir s˜ao discutidos os principais experimentos realizados.

(42)

Experimento 1 Condic¸˜oes gerais do experimento: populac¸˜ao iniciada aleatoriamente, com ta-manho de 10 e 25 classificadores, rodadas com durac¸˜ao de 50s e com a aplicac¸˜ao do algoritmo gen´etico a cada cinco rodadas. A posic¸˜ao de inicio de cada robˆo ´e constante ao longo das rodadas e o oponente esta em repouso. O objetivo desse experimento ´e avaliar a influˆencia do tamanho da populac¸˜ao de classificadores no comportamento do sistema classificador. O gr´afico da figura 8.1 ilustra o comportamento da energia m´edia da populac¸˜ao de classificadores.

Figura 8.1:Resultado do Experimento 1 - O gr´afico `a esquerda representa a variac¸˜ao da energia m´edia de uma populac¸˜ao de 10 classificadores. O gr´afico `a direita mostra a variac¸˜ao para uma populac¸˜ao de 25 classificadores

´

E poss´ıvel verificar que nas rodadas iniciais h´a uma grande oscilac¸˜ao da energia m´edia, isso ´e esperado pelo fato dos classificadores haverem sido inicializados de forma aleat´oria e a esco-lha dos mesmo para execuc¸˜ao tamb´em n˜ao segue padr˜ao algum. `A medida que os mecanismos de recompensa e punic¸˜ao entram em ac¸˜ao, comec¸a a ser estabelecida uma relac¸˜ao entre a men-sagem apresentada e a sa´ıda do sistema, tornando a sa´ıda mais coerente com objetivo proposto, e provocando o aumento da energia m´edia da populac¸˜ao de classificadores.

´

E poss´ıvel observar na Figura 8.1 que o per´ıodo de ajuste para uma populac¸˜ao de 10 clas-sificadores ´e bem maior que para uma populac¸˜ao de 25. Esse comportamento tamb´em foi ob-servado para tamanhos maiores de populac¸˜ao, ou seja a medida que a populac¸˜ao era aumentada o per´ıodo de ajuste ficava menor, s´o que a partir do tamanho de 25 classificadores n˜ao havia uma diferenc¸a t˜ao grande nos per´ıodos de ajustes, como o foco desse sistema ´e trabalhar em-barcado, buscou-se um tamanho de populac¸˜ao m´ınimo que apresentasse bons resultados, assim o tamanho de 25 classificadores foi escolhido como padr˜ao.

A figura 8.2 mostra o comportamento do robˆo em dois momentos, a imagem `a esquerda mostra a trajet´oria do robˆo durante uma das primeiras rodadas, logo ap´os a inicializac¸˜ao do sistema classificador. A imagem `a direita exibe a trajet´oria do robˆo em uma rodada perto do

(43)

final do treinamento. ´E poss´ıvel observar a evoluc¸˜ao do sistema de um resultado aleat´orio e incerto para um comportamento que leva o robˆo a localizar o oponente, deslocar-se em sua direc¸˜ao e retira-lo da arena.

Figura 8.2: Comportamento do robˆo para uma populac¸˜ao de 25 classificadores -Experimento 1.

Experimento 2 Condic¸˜oes gerais do experimento: populac¸˜ao iniciada aleatoriamente, com ta-manho de 25 indiv´ıduos, rodadas com durac¸˜ao de 50s e com a aplicac¸˜ao do algoritmo gen´etico a cada 5 e 10 rodadas. A posic¸˜ao de inicio de cada robˆo ´e constante ao longo das rodadas e o oponente estar em repouso. O objetivo desse experimento foi avaliar a influˆencia da freq¨uˆencia de aplicac¸˜ao do algoritmo gen´etico no comportamento do sis-tema classificador. O gr´afico da figura 8.1 ilustra o comportamento da energia m´edia da populac¸˜ao de classificadores.

A variac¸˜ao da freq¨uˆencia de aplicac¸˜ao do algoritmo gen´etico afetou muito pouco o com-portamento da energia m´edia, como o objetivo do sistema ´e trabalhar embarcado, optou-se por utilizar a freq¨uˆencia de aplicac¸˜ao de 10 rodadas sobre a populac¸˜ao de classificadores, reduzindo assim a demanda por processamento.

Experimento 3 Condic¸˜oes gerais do experimento: populac¸˜ao iniciada aleatoriamente, com ta-manho de 25 indiv´ıduos, rodadas com durac¸˜ao de 50s e com a aplicac¸˜ao do algoritmo gen´etico a cada 5 rodadas. Dois robˆos controlados por sistemas classificados foram postos para duelar. O objetivo desse experimento era avaliar a efic´acia do sistema classificador num combate com um oponente em constante movimentac¸˜ao.

(44)

Figura 8.3:Resultado do Experimento 2 - O gr´afico `a esquerda representa a variac¸˜ao da energia m´edia de uma populac¸˜ao de classificadores com freq¨uˆencia de aplicac¸˜ao do Algoritmo gen´etico de 10 rodadas. O gr´afico `a direita mostra a variac¸˜ao para uma populac¸˜ao de classificadores com freq¨uˆencia de aplicac¸˜ao do Algoritmo gen´etico de 5 rodadas.

O gr´afico da figura 8.4 ilustra o comportamento da energia m´edia da populac¸˜ao de classi-ficadores.

Figura 8.4: Resultado do Experimento 3 - variac¸˜ao da energia m´edia do sistema classificador frente a oponente em movimento.

Na avaliac¸˜ao da variac¸˜ao da energia m´edia da populac¸˜ao de classificadores ´e poss´ıvel ob-servar um comportamento similar aos demais experimentos, ap´os um per´ıodo de ajuste, o valor da energia m´edia tende ao crescimento mostrando que existe convergˆencia.

A analise do comportamento e da trajet´oria seguida pelo robˆo controlado pelo sistema classificador mostra que ap´os algumas rodadas( per´ıodo de ajuste) ele ´e capaz de localizar o oponente e deslocar-se em sua direc¸˜ao, confirmando a tendˆencia de convergˆencia do sistema classificador.

(45)

9

Conclus˜ao

Esse trabalho propˆos a construc¸˜ao de um sistema de controle de robˆo de sumˆo baseado em sistemas classificadores, com objetivo de projetar um robˆo m´ovel capaz de explorar e adaptar-se melhor ao ambiente de sumˆo e as caracter´ısticas dos oponentes. Todo projeto foi implementado em ambiente simulado, por raz˜oes de custo, tempo de projeto e pelas facilidades oferecidas pela simulac¸˜ao conforme explicado em sec¸˜ao especifica.

Inicialmente desejava-se utilizar o ambiente de sumˆo de robˆos dispon´ıvel para o Robotics Studio, ambiente de projeto e simulac¸˜ao de robˆos com arquitetura orientada a servic¸o desenvol-vido pela Microsoft e compat´ıvel com a plataforma .net. Devido as dificuldades t´ecnicas emR

operar o Robotics Studio, ocasionadas principalmente pela pouca bibliografia dispon´ıvel sobre mesmo, optou-se pela implementac¸˜ao de um simulador em linguagem Java.

Os resultados obtidos com os testes no sistema implementado ainda n˜ao permitem concluir pela eficiˆencia do sistema classificador como mecanismo de controle de um robˆo de sumo, mas indicam ser poss´ıvel sua aplicac¸˜ao com sucesso.

Dentre os objetivos propostos nenhum deixou de ser alcanc¸ado por´em ainda ´e necess´ario ainda refatorar o c´odigo do simulador, com a correc¸˜ao de todos as falhas para que seja poss´ıvel o ajuste e a avaliac¸˜ao completa do sistema de controle implementado.

Em termos de trabalhos futuros seria interessante fazer um estudo comparativo com outras metodologias de controle como sistemas fuzzy e redes neurais, al´em da implantac¸˜ao e avaliac¸˜ao do sistema implementado em robˆos reais, uma outra possibilidade seria o desenvolvimento de uma metodologia que possibilitasse o ajustes autom´atico dos parˆametros do sistema classifica-dor.

(46)

Referˆencias Bibliogr´aficas

CHERRY, S. Robots, incorporated. IEEE Spectrum online, IEEE, August 2007.

ROBOCUP. Robocup. In: . Robocup, 2008. Dispon´ıvel em: <http://www.robocup.org/>. Acesso em: 20 jul. 2008.

RUSSELL, S. J.; NORVIG, P. Inteligˆencia artificial. 2. ed. [S.l.]: Elsevier, 2004.

FRANKLIN, S.; GRAESSER, A. Is It an agent, or just a program?: A taxonomy for autonomous agents. [S.l.]: Springer Berlin / Heidelberg, 1997. (Lecture Notes in Computer Science, v. 1193).

GEYER-SCHULZ, A. Holland classifier systems. SIGAPL APL Quote Quad, ACM, New York, NY, USA, v. 25, n. 4, p. 43–55, 1995. ISSN 0163-6006.

REGRAS. In: . III Desafio UFRGS de Robˆos, 2007. Dispon´ıvel em: <http://www6.ufrgs.br/desafio robos/? op=regras>. Acesso em: 20 jul. 2008. CBR. In: . Competic¸˜ao Brasileira de Rob´otica, 2007. Dispon´ıvel em: <http://www.cbr2007.furg.br/>. Acesso em: 20 jul. 2008.

FUJISOFT. Fsi-all japan robot-sumo tournament. In: . Fujisoft, 2007. Dispon´ıvel em: <http://www.fsi.co.jp/sumo-e/>. Acesso em: 20 jul. 2008.

COOK, D. An illustrated guide to american robot sumo. In: . [s.n.], 2005. Dispon´ıvel em: <http://www.robotroom.com/SumoRules.html />. Acesso em: 20 jul. 2008.

HOLLAND, J. Adaptation,Progress in theoretical biology. [S.l.]: Academic Press, 1976. BOOKER, L. B.; GOLDBERG, D. E.; HOLLAND, J. H. Classifier systems and genetic algorithms. Artif. Intell., v. 40, n. 1-3, p. 235–282, 1989.

MOUSSI, L. N. Aplicac¸˜oes de Sistemas Classificadores para Rob´otica Autˆonoma M´ovel com Aprendizado. Dissertac¸˜ao (Mestrado) — Unicamp, Novembro 2002.

LICPINS, G. E. et al. Alternatives for classifier system credit assignment. Proce-edings of the Eleventh International Joint Conference, v. 1, 1989. Dispon´ıvel em: <http://dli.iiit.ac.in/ijcai/IJCAI-89-VOL1/PDF/121.pdf>. Acesso em: 20 jul. 2008.

DARWIN, C. The Origin of Species by Means of Natural Selection Or The Preservation of Favored Races in The Struggle for Life. [S.l.]: The Modern Library, 1859;1993.

FILHO, C. L.; VARGAS, P. A.; ZUBEN, F. J. V. Reduc¸˜ao de perdas em redes de distribuic¸˜ao de energia el´etrica atrav´es de sistemas classificadores. Sba: Controle & Automac¸˜ao Sociedade Brasileira de Automatica, scielo, v. 14, p. 298 – 308, 09 2003. ISSN 0103-1759. Dispon´ıvel em: <http://www.scielo.br/scielo.php?script=sci arttext&pid=S0103-17592003000300009&lng=es&nrm=iso>.

(47)

ATMAR, W. Notes on simulation of evolution. IEEE TRANSACTIONS ON NEURAL NETWORKS, v. 5, n. 1, p. 130–147, Janeiro 1994.

GOLDBERG, D. E. Genetic Algorithms in Search, Optimization, and Machine Learning. 1. ed. [S.l.]: Addison-Wesley Professional, 1989.

BAECK, T.; FOGEL, D.; MICHALEWICZ, Z. Evolutionary Computation 1: Basic Algorithms and Operators. 1a. ed. [S.l.]: Taylor & Francis, 2000.

GOLDBERG, D. E. Computer-aided Gas Pipeline Operation Using Genetic Algorithms and Rule Learning. Tese (Doutorado) — University of Michigan, 1983.

FOGEL, D. B. Evolutionary Computation: Toward a New Philosophy of Machine Intelligence. 2. ed. [S.l.]: Wiley-IEEE Press, 1999.

ERL, T. Service Oriented Architecture. [S.l.]: Prentice Hall, 2004. ISBN 0-13-142898-5. COLLISION. In: . NTNUJAVA Virtual Physics Laboratory, 2004. Dispon´ıvel em: <http://www.phy.ntnu.edu.tw/ntnujava/index.php?topic=4>. Acesso em: 25 jul. 2008.

Referências

Documentos relacionados

titular ou seu suplente Centro Tecnológico, de Ciências Exatas e. Educação

Notamos, portanto, que desde cedo Eça de Queirós já desenvolvia suas aptidões jornalísticas (apenas com 21 anos, no Distrito de Évora). Em maio de 1870 iniciou a

Starting out from my reflection on the words cor, preto, negro and branco (colour, black, negro, white), highlighting their basic meanings and some of their

Quanto às suas desvantagens, com este modelo, não é possível o aluno rever perguntas ou imagens sendo o tempo de visualização e de resposta fixo e limitado;

Estudos sobre privação de sono sugerem que neurônios da área pré-óptica lateral e do núcleo pré-óptico lateral se- jam também responsáveis pelos mecanismos que regulam o

A democratização do acesso às tecnologias digitais permitiu uma significativa expansão na educação no Brasil, acontecimento decisivo no percurso de uma nação em

A ideia da pesquisa, de início, era montar um site para a 54ª região da Raça Rubro Negra (Paraíba), mas em conversa com o professor de Projeto de Pesquisa,

Fluminense, UFF; Alberto Efendy Maldonado de la Torre, Universidade do Vale do Rio dos Sinos, UNISINOS; Alexandre Almeida Barbalho, Universidade Estadual do Ceará, UEC; Amparo