montagem de um robo aut^ onomo^ utilizando logica...

47
UNIVERSIDADE TECNOL ´ OGICA FEDERAL DO PARAN ´ A ENGENHARIA DE COMPUTAC ¸ ˜ AO CIBELE ALVES DA SILVA REIS HENRIQUE REINALDO SARMENTO VINICIUS ZARAMELLA MONTAGEM DE UM ROB ˆ O AUT ˆ ONOMO UTILIZANDO L ´ OGICA FUZZY MONOGRAFIA CURITIBA 2010

Upload: tranthuy

Post on 15-Dec-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

UNIVERSIDADE TECNOLOGICA FEDERAL DO PARANAENGENHARIA DE COMPUTACAO

CIBELE ALVES DA SILVA REISHENRIQUE REINALDO SARMENTO

VINICIUS ZARAMELLA

MONTAGEM DE UM ROBO AUTONOMOUTILIZANDO LOGICA FUZZY

MONOGRAFIA

CURITIBA2010

CIBELE ALVES DA SILVA REISHENRIQUE REINALDO SARMENTO

VINICIUS ZARAMELLA

MONTAGEM DE UM ROBO AUTONOMO UTILIZANDO LOGICAFUZZY

Monografia apresentada na disciplina de Oficinade Integracao II, do curso de Engenharia deComputacao da Universidade Tecnologica Federaldo Parana.

Orientador:Prof. Joao Alberto Fabro

Curitiba2010

Agradecimentos

Agradecemos ao Leonardo Schneider, que disponibilizou seu tempo e a fresade corte a lazer da UFPR para fazer o corte do acrılico utilizado no projeto.Agradecemos tambem ao aluno Paulo Renaux, pela ajuda com a pesquisabibliografica e exposicao de algumas ideias perante a equipe.

Resumo

Este trabalho consiste na montagem e programacao de um robo quetenha comportamentos sobrepostos, agindo de diferentes maneiras, de acordocom o ambiente ao seu redor. Tal projeto sera fracionado em duas partes:hardware e software. O hardware e composto por uma placa Axon, umaponte H, dois motores, sensores de distancia por infravermelho e sensoresde luz. Atraves dos dois ultimos, o robo ira obter informacoes de modo aevidenciar o meio em que ele se encontra, ja os outros farao a parte do pro-cessamento dos dados, controle dos motores e movimentos, respectivamente.A parte do software controla as informacoes enviadas pela placa Axon, de-terminando o comportamento do robo atraves da logica de inferencias Fuzzy,determinando consequentemente a velocidade dos motores, e a intensidadedos movimentos. Os objetivos do projeto sao: a construcao de um roboautonomo com comportamentos que possam ser sobrepostos, bem como ummelhor entendimento por parte da equipe do funcionamento dos equipamen-tos utilizados e da logica Fuzzy.

Palavras-chave: Logica Fuzzy. Inteligencia Artificial. Sistema Reativo.

Abstract

This work consists in assembling and programming a robot that hasconcurrent behaviors, acting in different manners, according to the environ-ment around it. The project is divided in two parts: hardware and software.The first one consists in an Axon board, one H bridge, two DC motors andinfrared distance and light sensors. Through the two last ones, the robotwill get data from the environment that it is inserted. The other ones willbe part of data processing, control of motors and movements, respectively.The software part controls information sent by the Axon board, determiningthe robots behavior through the Fuzzy logic inference, consequently settingthe speed of the motors and the intensity of its movements. The aims of thisproject are: the assembly of an autonomous robot with behaviors that canbe concurrent and, moreover, a better understanding about the way that theequipments and Fuzzy logic work.

Keywords: Fuzzy Logic. Artificial Intelligence. Reactive System.

Lista de Figuras

1 Exemplo de uma variavel Fuzzy (altura de uma pessoa) comseus conjuntos (baixo, mediano e alto). . . . . . . . . . . . . . 11

2 Diagrama do Sistema de inferencia Fuzzy . . . . . . . . . . . 123 Relacoes entre objetos que constituem o PON . . . . . . . . . 134 Micro-controlador Axon . . . . . . . . . . . . . . . . . . . . . 155 Dimensoes e especificacoes das trilhas da placa Axon . . . . . 166 Sensor LDR . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 Esquema de triangulacao no Sharp . . . . . . . . . . . . . . . 188 Foto do sensor Sharp . . . . . . . . . . . . . . . . . . . . . . . 189 Motor DC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1910 Esquema das chaves da ponte h . . . . . . . . . . . . . . . . . 1911 Pulsos de PWM . . . . . . . . . . . . . . . . . . . . . . . . . . 2012 Diagrama de blocos do sistema . . . . . . . . . . . . . . . . . 2113 Foto do robo no fim do projeto . . . . . . . . . . . . . . . . . 2214 Desenho em CorelDraw para o corte das pecas . . . . . . . . . 2315 Esquema de conexoes da placa axon . . . . . . . . . . . . . . . 2416 Esquema para a conexao dos sensores LDR . . . . . . . . . . . 2517 Esquema para a conexao dos sensores infravermelhos . . . . . 2618 Diagrama geral das camadas fuzzy . . . . . . . . . . . . . . . 2919 Temperamento anterior . . . . . . . . . . . . . . . . . . . . . . 3020 Variacao de Luminosidade . . . . . . . . . . . . . . . . . . . . 3021 Variacao de Distancia . . . . . . . . . . . . . . . . . . . . . . 3122 Temperamento . . . . . . . . . . . . . . . . . . . . . . . . . . 3123 Luminosidade . . . . . . . . . . . . . . . . . . . . . . . . . . . 3324 Distancia De Objeto . . . . . . . . . . . . . . . . . . . . . . . 3325 Comportamento em relacao a luminosidade . . . . . . . . . . 3426 Comportamento em relacao a um objeto . . . . . . . . . . . . 3427 Diferenca de Luminosidades entre os LDRs . . . . . . . . . . 3628 Diferenca de Distancia entre os Sharps . . . . . . . . . . . . . 3629 Variavel Velocidade . . . . . . . . . . . . . . . . . . . . . . . 3730 Variavel Rotacao do robo . . . . . . . . . . . . . . . . . . . . 3731 Interdependencia entre as etapas do projeto . . . . . . . . . . 4532 Diagrama de Gantt . . . . . . . . . . . . . . . . . . . . . . . . 46

Sumario

1 Introducao 81.1 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2 Fundamentacao teorica 102.1 WebbotLib . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.2 Logica Fuzzy . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.2.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . 102.2.2 Sistema de Inferencias Fuzzy . . . . . . . . . . . . . . . 11

2.3 Paradigma Orientado a Notificacoes (PON) . . . . . . . . . . 122.3.1 Integracao do PON a um sistema de inferencias Fuzzy . 14

2.4 Axon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.5 Sensores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.5.1 Light Dependent Resistor (LDR) . . . . . . . . . . . . 162.5.2 Sensor de distancia por Infravermelho . . . . . . . . . . 17

2.6 Motor de corrente contınua . . . . . . . . . . . . . . . . . . . . 172.7 Ponte H . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.8 Modulacao por Largura de Pulso (PWM) . . . . . . . . . . . . 20

3 Desenvolvimento 213.1 Montagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.1.1 Parte mecanica . . . . . . . . . . . . . . . . . . . . . . 223.1.2 Parte eletronica . . . . . . . . . . . . . . . . . . . . . . 24

3.2 Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.2.1 Interpretacao dos dados pela WebBotLib . . . . . . . . 263.2.2 Faixa de dados usados, Medianas . . . . . . . . . . . . 263.2.3 Comunicacao do micro-controlador com o computador 263.2.4 Estrutura dos comportamentos em logica fuzzy . . . . 273.2.5 Conjuntos fuzzy . . . . . . . . . . . . . . . . . . . . . . 293.2.6 Algoritmo para velocidade . . . . . . . . . . . . . . . . 38

4 Resultados e Discussoes 40

5 Consideracoes Finais 41

6 Referencias Bibliograficas 42

7 Apendice 447.1 Gerenciamento do Grupo . . . . . . . . . . . . . . . . . . . . . 44

7.1.1 Listagem e duracao das etapas . . . . . . . . . . . . . . 447.1.2 Interdependencia entre as etapas . . . . . . . . . . . . 45

6

7.1.3 Diagrama de Gantt . . . . . . . . . . . . . . . . . . . . 46

7

1 Introducao

De acordo com Heinen (1999), existem duas linhas de pesquisa na areade controle robotico: sistemas planificados e sistemas reativos. Os primeirospossuem um modelo de mundo armazenado em sua memoria, e baseiam seuscomportamentos nele. O robo abordado neste trabalho pertence ao segundotipo, que, como o proprio nome sugere, somente reage aos estımulos do meiorecebidos pelos sensores.

O sistema reativo foi proposto por Rodney Brooks em 1985 [BROOKS,1985], sendo uma arquitetura inovadora, em que varias tarefas independentesoperam em paralelo; retirando a ideia de um sistema planejado, e inserindoentao a de um comportamento processado a partir de informacoes sensoriais.Brooks ainda propos a arquitetura subsumption, em que os comportamentosse anulam, fazendo assim com que o robo tenha mudancas de comporta-mentos bruscas dependendo das variacoes do ambiente. Para que o robodeste projeto tenha comportamentos mais suaves, essa interacao robo/meioira acontecer por meio da logica Fuzzy.

Ainda de acordo com Heinen (1999), robos autonomos agem sem nen-hum controle humano, atuando somente entre seus sensores e seu software,recebendo os dados do ambiente e interpretando-os, respectivamente.

Quando o robo e autonomo, age para cumprir certas metas, que podem serescolhidas, determinadas, ou ate mesmo aleatorias, gerando comportamentosimprevisıveis.

O objetivo principal deste projeto foi a construcao de um robo autonomoque captasse os dados do meio em que ele se encontra a partir de sensoresde luz e distancia, e interpretasse estes dados atraves de uma maquina deinferencia Fuzzy, sendo que esta foi utilizada para a modelagem das regras ecomportamentos que definem o sistema.

Os objetivos especıficos foram: lidar com materiais e planejar a estruturade um chassi; lidar com ruıdos e trabalhar com sensores e micro-controladores;e lidar com logica fuzzy e programacao.

A justificativa deste trabalho e poder analisar a existencia de uma so-breposicao de comportamentos e suas respectivas consequencias, sendo estasconclusoes abordadas no fim do projeto.

A motivacao da equipe foi o aprendizado no planejamento, montagem eprogramacao de um projeto que envolve dificuldades nas areas de mecanica,eletronica e computacao. Na primeira parte, aprendemos a lidar com materi-ais, alem de planejar uma estrutura de um chassi. Na eletronica, aprendemosa lidar com ruıdo e trabalhar com sensores e micro-controladores, alem doacionamento de motores. Ja na ultima parte, a equipe pode lidar com logicaFuzzy, com a programacao orientada a notificacoes, e comunicacao serial

entre o micro-controlador e o computador.

1.1 Metodologia

Para que o projeto de montagem e desenvolvimento do robo autonomoutilizando logica fuzzy fosse bem fundamentado, foi dividido em modulos.

Primeiramente todos os requisitos do projeto foram analisados, comohardware utilizado, linguagem de programacao, materiais para a construcaodo robo, entre outros. Alem disso, foi planejado um tempo de pesquisa sobreos componentes e seus respectivos funcionamentos, bem como a programacaocom a logica fuzzy.

Apos essa nocao previa do projeto, a equipe fez um planejamento comuma estimativa do tempo que seria gasto, estimando tambem as tarefas indi-viduais e coletivas (que ja poderiam ser previstas) que deveriam ser feitas eate quando deveriam ser cumpridas. Feito isso, os componentes de hardwareforam encomendados e a monografia comecou a ser escrita, para que antesde um artefato, a equipe tivesse uma boa base.

Foram quatorze semanas de trabalho, sendo destas, aproximadamentetrezentas horas de desenvolvimento propriamente dito. Para que resulta-dos semelhantes aos desse projeto sejam alcancados, sao necessarios algunscomponentes eletronicos, conhecimento em programacao e dedicacao.

9

2 Fundamentacao teorica

Esta secao aborda alguns quesitos importantes para o funcionamentodo projeto.

2.1 WebbotLib

WebbotLib e uma biblioteca em linguagem C para dar suporte a con-strucao de robos com os seguintes micro-controladores: ATMega168, AT-Mega32, ATMega328P, ATMega640, ATMega644, ATMega1280, ATMega2560e ATMega2561.

A biblioteca suporta uma grande variedade de diferentes controladores demotor, sensores e outros dispositivos, deixando o programador se concentrarapenas em escrever seu proprio software sem ter preocupacoes sobre as rotinasde baixo nıvel necessarias para comunicacao com os dispositivos.

Sempre que possıvel a biblioteca tenta padronizar os valores que chegamas maos do programador. Por exemplo, todos os sensores de distancia retor-nam um valor em cm. As conversoes de unidade podem ser facilmente feitasem alto nıvel.

Esta biblioteca da bom suporte para algumas placas do mercado como aAxon e a Axon 2, por isso decidimos utiliza-la neste projeto.

2.2 Logica Fuzzy

2.2.1 Introducao

Conceitos como nıveis de velocidade (lento, rapido), de temperatura(quente, morno, frio), de distancia (perto, longe), podem parecer de facilclassificacao para nos humanos, porem dentro dessa classificacao existem in-certezas, como por exemplo, a temperatura classificada como quente parauma pessoa de Curitiba, pode ser uma temperatura normal para uma pes-soa que mora em Salvador. Uma das solucoes para padronizar essas classi-ficacoes seria estabelecer valores fixos para esses nıveis: a partir de 19o C econsiderado como um estado quente, porem ate mesmo esse tipo de solucaoapresenta variacoes bruscas. Por exemplo, a temperatura de 20o C terıamosuma temperatura quente e a 19o C terıamos uma temperatura nao quente,esse metodo e a base da logica classica que impoe um valor binario para umavariavel, no caso quente. Um sistema que trata os problemas citados sao osSistemas Fuzzy propostos por Lotfi Zadeh [ZADEH, 1965]. Este sistema uti-liza princıpios da logica classica e das logicas multivaloradas, tratando valoresno intervalo [0,1] para uma variavel, podendo-se obter assim diversos graus

10

de pertinencia. Esses graus sao gerados a partir de funcoes que associam acada dado de entrada um grau de pertinencia. Este grau de pertinencia estasempre situado no intervalo [0,1]. Logo, a logica fuzzy e capaz de capturarinformacoes nebulosas, e converte-las em um formato numerico

Para demonstrarmos a aplicacao da logica fuzzy e dado como exemplo aclassificacao de altura de uma pessoa. A partir da figura 1 podemos observara relacao de altura com o grau de pertinencia (eixo vertical).

Figura 1: Exemplo de uma variavel Fuzzy (altura de uma pessoa) com seusconjuntos (baixo, mediano e alto).

[Fonte: COSTA,2010]

Observando este exemplo podemos concluir que uma pessoa com 1,70m eclassificada como de altura media com grau de pertinencia 1, e uma pessoacom 1,65 aproximadamente seria classificada como altura media com grau depertinencia de 0,5.

2.2.2 Sistema de Inferencias Fuzzy

Na figura 2 e mostrado um Sistema de Inferencia Fuzzy, mostrando asetapas que ocorrem no mesmo.

O mecanismo da figura 2 e composto com entradas precisas que sao dadoscoletados atraves de medicoes ou observacoes. Esses dados sao transforma-dos em conjuntos fuzzy de entrada atraves do processo de fuzzyficacao. Essaetapa permite que as entradas precisas, agora transformadas em dados fuzzy,possam ser avaliadas por Sistemas Especialistas Fuzzy, que sao compostospor regras fuzzy e geram dados atraves da inferencia. Esses dados sao de-nominados conjunto fuzzy de saıda. Na defuzzificacao ocorre a transformacaode dados fuzzy em uma saıda precisa (crisp).

11

Figura 2: Diagrama do Sistema de inferencia Fuzzy[Fonte: TANSCHEIT]

Como exemplo de regras fuzzy: Se distancia ao objeto e pequena e a ve-locidade e grande entao freie. Observe que nesse exemplo utilizamos variaveislinguısticas e as entradas: velocidade e distancia; e saıda: frear sao dadosfuzzy. Os dados precisos poderiam ser: entrada: distancia de objeto = 10metros, velocidade = 10m/s, saıda: aceleracao = -7m/s2(para que o robomovelpare antes de colidir com objeto a sua frente).

Na etapa de inferencia ocorrem as operacoes logicas com os dados fuzzy,atraves da combinacao das regras, implicacao e modus ponens generalizado,gerando assim um conjunto fuzzy de saıda. A diferenca entre a inferenciaclassica e a nebulosa e que uma regra fuzzy contribui apenas com uma parteda conclusao ou variavel de saıda, pois outras regras que possuam a mesmavariavel podem contribuir com a conclusao.

2.3 Paradigma Orientado a Notificacoes (PON)

Um Sistema Inteligente Fuzzy pode ser composto por muitas regras ecomo citado na secao anterior uma conclusao de variavel pode depender demais de uma regra. Portanto e necessario que todas as regras que contribuempara uma conclusao sejam verificadas a fim de se obter uma resposta coerente.O Paradigma Orientado a Notificacoes (PON) possui um metodo eficaz de

12

verificacao dentro desse contexto.O PON foi desenvolvido por Jean M.Simao (2008, 2009). Este utiliza os

princıpios de varios paradigmas ja conhecidos, como: abstracao em formade classes e objetos do Paradigma Orientado a Objetos e reatividade daProgramacao Dirigida a Eventos. Utiliza tambem, os principais conceitosde Sistemas Baseados em Regras, como a representacao do conhecimentoem termos de regras. Este tambem faz uso das faz uso das facilidades daprogramacao declarativa.[BANASZEWSKI, 2008].

Na figura 3 e apresentado o diagrama UML mostrando o mecanismo erelacoes entre os objetos que constituem o PON.

Figura 3: Relacoes entre objetos que constituem o PON[Fonte: BANASZEWSKI, 2009]

A regra e composta por uma condicao e uma acao. A primeira estabeleceum requisito para o qual a regra deve ser ativada, a segunda aciona uma re-sposta dessa regra. Cada condicao referencia uma ou mais premissas, e estasreferenciam um ou dois atributos. A vantagem destas relacoes e que quandoum atributo e alterado o sistema permite que seja notificada somente as re-gras relacionadas a este. Portanto com essa relacao entre os objetos o atrib-uto ativa somente as premissas que podem alterar uma conclusao. Do mesmomodo como cada premissa e referenciada por uma ou mais condicoes ela no-

13

tifica essas condicoes somente quando seu estado muda.[BANASZEWSKI,2008].

Estas notificacoes ocorrem em tempo de execucao e partem do atributomodificado, este notifica as premissas que estao relacionadas a ele, entaoocorre um calculo logico (cada alteracao de um atributo) que define se essapremissa foi alterada ou nao, caso ela seja entao ela contribui a avaliacaologica das condicoes relacionadas e estas sao verificadas atraves de um oper-ador logico (disjuncao ou conjuncao) e no caso da conjuncao, a condicao esatisfeita se e somente se as premissas relacionadas sao verdadeiras, e entaoela ativa a sua regra.[BANASZEWSKI, 2008].

Logo apos, a regra ativa a sua acao, que e relacionada a uma ou variasinstigacoes, e essas sao relacionadas a um ou mais metodos. Desse modo,as notificacoes ocorrem apos a regra ser ativada. Os metodos geralmentemudam o estado das variaveis, iniciando novamente o processo de noti-ficacao.[BANASZEWSKI, 2008].

O objeto FBE (Fact Base Element) e acionado pelos metodos e descreveos estados das variaveis. Observamos entao que ocorre um fluxo nas relacoesda figura 3, sendo o FBE passivo em relacao a regra, e ativo em relacao a simesmo.

Notamos que a grande diferenca do PON com os paradigmas atuais eque o mesmo apresenta objetos desacoplados ou acoplados minimamente de-vido as relacoes entre os mesmos, que colaboram de forma que o mecanismode notificacoes (seguido do calculo causal) pode ser estabelecido para ambi-entes multiprocessados, pois so e necessario que o objeto que notificara umaativacao conheca o endereco do objeto notificado, e essa so ocorre a partir deum atributo modificado, portanto a verificacao do Sistema Inteligente Fuzzy eotimizada utilizando o PON como paradigma de programacao.[BANASZEWSKI,2008].

2.3.1 Integracao do PON a um sistema de inferencias Fuzzy

Como observamos no inıcio desta secao, o PON faz uma verificacaodas regras em forma de notificacao de objetos, obtendo assim um alto de-sempenho quando aplicado em sistemas que possuem uma base de regrascomplexa e extensa. Assim, e vantajosa a utilizacao do PON na fase de in-ferencia de um Sistema de Inferencia Fuzzy, e essa integracao foi desenvolvidapor [SOUZA, 2009].

Nesse sistema podemos criar os conjuntos e variaveis fuzzy e tambemregras, como por exemplo: “Se distancia do objeto e pequena e velocidade egrande entao freie muito”.

Para a obtencao dessa integracao foi adaptado por [SOUZA, 2009] o

14

framework do PON para o tratamento de Sistemas Fuzzy, alem disso, asclasses Atribute, Premise, Condition, Rule, Instigation e Method (ver figura3) sao estendidas no mesmo e foi criada a classe FuzzyAttribute que realizaas inferencias.

2.4 Axon

Axon e uma placa com um micro-controlador projetada pelo autor dosite Society of Robots (SoR), com o intuito de servir como unidade de cont-role principal para robos. Como mostra a figura 4, a placa possui 55 portasde entrada e saıda, sendo que 16 delas servem para sensores analogicos, 6sao temporizadores de 16 ou 8 bits, 9 possuem canais de Modulacao emLargura de Pulso (PWM), e 18 sao entradas de interrupcoes. Possui tambem4 interfaces seriais assıncronas (UART), sendo a quarta delas utilizada paraa conexao USB com o computador. Nao e necessario programadores adi-cionais para transmitir o programa para o micro-controlador, este trabalhoe realizado atraves de um bootloader que e disponibilizado com o Axon.

A placa Axon utiliza o poderoso ATmega640 como processador. Esta foidesenhada de modo a nao precisar de soldas; sendo assim todos os sensorese atuadores podem ser conectados diretamente na placa, deixando entao otrabalho de montagem e desmontagem dos robos mais facil. O suporte aproblemas com a Axon e feita diretamente pelo criador dele, pelo forumSoR.

Figura 4: Micro-controlador Axon[Fonte: Society of Robots]

A figura 5 mostra as dimensoes da placa.

15

Figura 5: Dimensoes e especificacoes das trilhas da placa Axon[Fonte: Society of Robots]

A placa Axon possui uma protecao de polaridade, ou seja, foi desen-hada para se proteger se alguem acidentalmente colocar a bateria invertida.Contudo, isto nao protege qualquer componente externo conectado irregular-mente. Os pinos individuais podem oferecer aproximadamente 20mA, cada.Excedendo este numero a porta podera ser danificada.

Para trabalhar com a Placa Axon foi adotada uma biblioteca que dessesuporte em alto-nıvel para todas as funcionalidades dela, e que comportassebem o escopo do projeto. Apos pesquisar, encontramos a Webbotlib, queatendia bem os requisitos impostos pela equipe.

2.5 Sensores

Aqui serao tratados os sensores utilizados no robo

2.5.1 Light Dependent Resistor (LDR)

Como o proprio nome sugere, Resistor Dependente de Luz(LDR) e umtipo de resistor, feito geralmente de sulfeto ou seleneto de cadmio, que temsua resistencia alterada de acordo com a luz incidente nele. Tal resistenciae inversamente proporcional a quantidade de luz incidente, ou seja, quantomais luz, menos resistencia, sendo que a situacao contraria tambem e valida[SILVA, 2006]. O interfaceamento entre o sensor e a placa Axon sera abor-dado posteriormente.

16

Figura 6: Sensor LDR[Fonte: BANZI, 2009]

2.5.2 Sensor de distancia por Infravermelho

Segundo Farlei J. Heinen [HEINEN, 1999], sensores de distancia porinfravermelho possuem um funcionamento relativamente simples e possuemum custo reduzido, entretanto seu raio de acao e relativamente pequeno.

O sensor de distancia utilizado neste projeto foi o Sharp modelo GP2Y0A710K0Fmostrado na figura 8. Este utiliza triangulacao e uma matriz linear de dis-positivos de carga acoplada (CCD) para calcular a distancia a objetos. Aideia basica e esta: um pulso de luz infravermelha e emitido pelo emissor.Esta luz viaja pelo lugar ate bater em algum objeto. Se este objeto se en-contrar dentro do alcance do sensor, entre 20cm a 150cm, a luz e refletida nodetector (CDD), formando entao um triangulo. Com a informacao da matrizde CCD e calculado entao o angulo evidenciado na figura 7, a partir desteobtem-se a distancia do objeto. [Acroname Robotics, 2010]

2.6 Motor de corrente contınua

Os motores de corrente contınua, tambem conhecidos como motoresDC, sao constituıdos basicamente por um estator (parte fixa, onde se en-contra o circuito indutor) e por um rotor (parte movel, onde se encontra ocircuito induzido).

Em grande parte dos motores de corrente contınua, o rotor e um eletroımaque gira entre os polos de imas permanentes estacionarios (no estator). Orotor gira desde que a corrente que flui no motor inverta seu sentido depercurso toda vez que seus polos alcancam os polos opostos do estator, comoindica a figura 9.[FORESTI, 2006]

Para que o motor inicie seu giro, e necessario um torque, que normalmentee produzido por forcas magneticas entre os polos do rotor e do estator. Estasforcas de atracao ou repulsao entre parte fixa e movel puxam ou empurram

17

Figura 7: Esquema de triangulacao no Sharp[Fonte: Acroname Robotics, 2010]

Figura 8: Foto do sensor Sharp[Fonte: Acroname Robotics, 2010]

os polos moveis do rotor, fazendo com que este gire cada vez mais rapido ateobter uma velocidade angular constante.

2.7 Ponte H

Ponte H e um circuito eletronico feito por componentes discretos, ouentao disponıvel em circuitos integrados. Ela permite o controle do sentido(horario ou anti-horario) e da velocidade de rotacao de motores de correntecontınua.

A ponte H recebe tal nome devido a forma com que e apresentada esque-maticamente (ver figura 10). Ela e feita por quatro chaves que sao abertasou fechadas com a finalidade de alterar o sentido da corrente, e consequente-mente o sentido de rotacao do motor [FORESTI,2006]. Seguindo o esquemada figura 10, sera aplicada uma tensao positiva no motor quando as chaves

18

Figura 9: Motor DC[Fonte: FILHO, 2010]

s1 e s4 estiverem fechadas e s2 e s3 abertas. Ja quando ocorrer o inverso, ouseja, s2 e s3 fechadas e s1 e s4 abertas, sera aplicada uma tensao negativa,fazendo com que o motor funcione no sentido contrario. Deve-se tomar umcuidado para que as chaves s1 e s2 ou s3 e s4 nunca sejam fechadas ao mesmotempo, pois tal acontecimento pode danificar o circuito e circuitar a fonte dealimentacao.

Figura 10: Esquema das chaves da ponte h[Fonte: COSTASILVA, 2010]

Neste projeto, sera utilizado o circuito integrado (CI) L298, que possuiduas pontes H em sua constituicao. Este CI e projetado para aceitar unidadesde cargas indutivas como reles, solenoides, motores DC e de passo.

A equipe escolheu a utilizacao de um kit que contivesse este circuitointegrado, pois das opcoes viaveis para o grupo, esta e a que trabalha emuma faixa de tensao e corrente maior, alem de vir em com placa que contemperifericos para o controle da tensao e possuir dispositivos para a protecaodo circuito integrado. A L298 ainda permite a utilizacao da Modulacao porLargura de Pulso (PWM), que serve para o controle de velocidade do motor.

19

2.8 Modulacao por Largura de Pulso (PWM)

O sinal do PWM e digital, ou seja, em um dado momento assume valormaximo ou mınimo. O valor maximo acontece quando a fonte de tensao DCfornece energia para o circuito, e o mınimo, quanto nao ha fornecimento deenergia. Sendo o sinal digital desde o processador ate o sistema controlado,nao ha necessidade de conversoes analogico/digitais.

Supondo um interruptor, quando este esta aberto, nao ha passagem decorrente para a carga, logo, nao ha tensao; e quando esta fechado, a tensaotransmitida e a mesma da fonte, sendo assim, a potencia aplicada e maxima.O PWM funciona da seguinte maneira: para que haja uma potencia de 50%aplicada a carga a ideia e que este interruptor passe metade do tempo abertoe metade fechado, havendo sempre uma intercalacao entre os dois estados.

Sendo assim, um circuito recebendo um sinal PWM sempre recebera amaxima tensao, entretanto, o intervalo de tempo que ela sera aplicada iramudar, fazendo entao com que a tensao resultante seja proporcional ao tempoque sera aplicada.

No caso de motores, o importante do PWM e que ele abrange todas asfaixas de velocidade aplicando sempre a tensao maxima, logo sempre haveratorque nestes componentes [BRAGA, 2009].

Figura 11: Pulsos de PWM

Na figura 11 e possıvel visualizar pulsos de 0, 25, 50, 75 e 100% de tempoem maxima tensao e 100, 75, 50, 25 e 0% de mınima, respectivamente. Logo,

20

a tensao media aplicada aos motores e de 0, 25, 50, 75 e 100% da tensaoabsoluta aplicada, respectivamente.

3 Desenvolvimento

Inicialmente foi proposto pela equipe o desenvolvimento de um roboautonomo, capaz de interagir com o ambiente em que esta imerso atraves desensores de distancia e luz. Para a inteligencia artificial foi arquitetado umsistema inteligente baseado em logica fuzzy.

O hardware foi projetado para comportar todas as necessidades do robo,como mostra a figura 12. A principal peca do hardware e a placa micro-controla Axon. Ela recebe as informacoes dos sensores pelas portas analogicas,estas informacoes serao enviadas para o computador, onde estara a maquinade inferencia fuzzy, que por sua vez retornara para o micro-controlador umvalor de velocidade a ser aplicado nos motores. O Axon interpreta estasinformacoes, enviando entao um sinal de PWM para o L298, que ira serretransmitido para os motores.

Figura 12: Diagrama de blocos do sistema

3.1 Montagem

Aqui o leitor ira encontrar todo o procedimento para o desenvolvimentoda parte fısica do projeto.

21

3.1.1 Parte mecanica

Chegando ao fim do projeto, o robo apresentou o aspecto que pode servisto na figura 13.

Figura 13: Foto do robo no fim do projeto

Para a obtencao dessa estrutura, a equipe utilizou:

• Acrılico

• Parafusos

• Roda omnidirecional

• Eixo para a roda omidirecional (prego)

• Capa de cabo de rede

• Cola quente

• Ferro de solda

• Serra tico-tico

• Furadeira

22

O chassi foi planejado em CorelDraw e cortado em uma fresa a laser,da Universidade Federal do Parana, para materiais como acrılico, plastico,madeira e metais. O desenho em Corel possuıa o os dois andares do robo,com furos para que estes pudessem ser anexados e ainda para que o micro-controlador e a ponte H tivessem locais para serem parafusados. Possuıaainda as rodas laterais e encaixes para os motores. Para uma melhor visual-izacao, segue a figura 14.

Figura 14: Desenho em CorelDraw para o corte das pecas

Apos possuir o esqueleto da estrutura, a equipe comecou a montagemencapando as rodas com a capa de cabo de rede, depois fixando os motoresa partir de seus encaixes de acrılico, e entao parafusando as placas em seusdevidos lugares. Todas as colagens de acrılico foram feitas com cola quente.

Para que a roda omnidirecional ficasse em seu devido lugar, foi presa aestrutura com a solda de seu eixo ao acrılico, com ferro de solda. Foi tomadoum cuidado maior nesta etapa, pois o acrılico e um material que cede atecerto ponto, e quando um pedaco se solta, nao se junta mais a estrutura.Entao o eixo deve ser fixo no momento em que o material comeca a ceder.

23

Apos estes procedimentos, os andares deveriam ser fixados, entao a equipeutilizou um conjunto de parafuso que permitiu rigidez e estabilidade a estru-tura (ver figura 13).

Apos todos estes procedimentos, a equipe percebeu que precisaria de umlocal para fixar os sensores, entao cortou mais tres pedacos de acrılico comuma serra tico-tico, sendo estes um retangulo e dois triangulos. O retangulofoi furado com uma furadeira e variados tamanhos de broca para que ossensores por infravermelho fossem parafusados e os LDRS encaixados. Estaestrutura pode ser vista na figura 11 apresentada no inıcio do topico.

3.1.2 Parte eletronica

A figura 15 representa as conexoes da placa axon com os outros com-ponentes.

Figura 15: Esquema de conexoes da placa axon

Os pinos da ponte H que foram ligados aos pinos A4, A5, C4 e C5 daplaca Axon sao entradas de tensao e determinam o sentido que o motor iragirar. Ja onde os pinos H3 e E3 foram ligados correspondem ao ”enable”quee o PWM, neste caso. Os motores estao ligados ao VCC da ponte H, quesera cortado ou mantido conforme o sinal de PWM enviado a ela.

24

Tabela 1: Tabela da verdade para pinos da L298

Os sensores foram todos conectados com 5V regulados, terra e um pinoADC (Conversor Analogico/Digital), sendo estes mostrados no diagrama es-quematico da figura 15.

Para os LDRs, foi escolhida a seguinte configuracao de circuito que podeser vista na figura 16.

Figura 16: Esquema para a conexao dos sensores LDR

Desta maneira, Quanto menor a luminosidade , maior a resistencia doLDR e maior a tensao no pino ADC. Esta mudanca segue a seguinte equacao:

VADC = RLDR∗5V10KΩ+RLDR

(1)

Na conexao dos sensores por distancia infravermelho, que pode ser vistana figura 17, foi colocado um capacitor da ordem de 10nF entre o terra eo pino ADC. Esta configuracao foi escolhida para que o sensor apresentasseuma maior estabilidade em seus dados.

25

Figura 17: Esquema para a conexao dos sensores infravermelhos

3.2 Software

Nesta secao, maiores detalhes sobre o sistema de controle autonomobaseado em logica fuzzy do robo sera abordado.

3.2.1 Interpretacao dos dados pela WebBotLib

A tensao que os sensores mandam para os terminais da placa e conver-tida para um dado digital por um conversor ADC. A biblioteca Webbot con-verte estes dados digitais, retornando um byte de informacao correspondentea cada sensor. Esse byte no Sharp e diretamente proporcional a distancia, epara o LDR e inversamente proporcional a luminosidade, isso ocorre devidoa resistencia do LDR diminuir com o aumento da luminosidade do ambientee a tensao da saıda ADC ser aplicada no LDR.

3.2.2 Faixa de dados usados, Medianas

Para um controle adequado de dados dos sensores Sharp, utilizamosuma faixa de dados que envolvem distancias entre 30 cm e 120 cm, poisfora desse espectro a sensibilidade do Sharp implica em dados muitas vezesnao condizentes com distancias reais [SHARP,2006]. Tambem foi utilizada amediana de cinco dados obtidos, para obtermos dados mais coerentes, essemetodo foi aplicado tanto no Sharp quanto no LDR.

3.2.3 Comunicacao do micro-controlador com o computador

A comunicacao estabelecida entre o computador e a placa axon e real-izada atraves de um cabo USB. Na placa Axon ha um conversor UART/USB(CP210X, da SiliconLabs), portanto, a conexao estabelecida na porta USB evista como feita por uma porta COM no computador.

26

A equipe utilizou como ambiente de programacao a ferramenta VisualStudio, utilizando a linguagem de programacao C++. Essa ferramenta ap-resenta recursos suficientes para a criacao de uma comunicacao serial.

A ordem dos fatos nessa comunicacao e a seguinte: atraves da conversaoA/D da tensao nos pinos ADC da placa Axon a biblioteca Webbot retornaum byte de informacao para cada sensor, portanto no microcontrolador saoobtidos quatro bytes de informacao (dois Sharps e dois LDRs), esses bytes saoenviados atraves do cabo USB para o computador, que processa esses dadosatraves da maquina de inferencia fuzzy, e retorna um byte para a placa Axon.Esse byte contem informacoes sobre as velocidades das rodas. No primeirobit (MSB) informamos se o movimento da roda esquerda e para frente oupara tras, no proximo bit acontece o mesmo para a roda direita, nos proximos3 bits informamos para a roda esquerda um valor de modulo da velocidadeque pode variar de 0 a 7 sendo 7 a velocidade maxima, e nos ultimos 3 bitso mesmo ocorre para a roda direita. Portanto, por exemplo o byte 10110010(178 em decimal) informa para a roda esquerda ir para frente com modulode velocidade “6”, roda direita ir para tras com modulo de velocidade “2”.

O controle da velocidade dos motores e obtido atraves da biblioteca Web-bot, por exemplo, quando as velocidades forem iguais a zero, os motores naosao ativados e quando a velocidade de um motor e 7, utilizamos 85% da ve-locidade maxima do motor. A equipe procurou utilizar todos os 8 valores develocidade do motor atraves das saıdas que o fuzzy retorna, para a obtencaode movimentos variados. A velocidade maxima do motor foi limitada a 85%para facilitar os testes.

3.2.4 Estrutura dos comportamentos em logica fuzzy

Os comportamentos que definem o estado do robo propostos pela equipesao: calmo, com medo e curioso. As caracterısticas desses comportamen-tos sao unicas e seguem este raciocınio: quando o robo estiver calmo, elefica parado; caso esteja com medo, foge de uma fonte de luz, e de objetosproximos; caso esteja curioso, segue um objeto proximo ou uma fonte de luz.Porem como trabalhamos com a logica fuzzy, os comportamentos podem sesobrepor, como por exemplo, quando o robo esta mais curioso que calmo,ele segue a luz, porem com menos intensidade que quando estiver somentecurioso e assim por diante.

Outra etapa foi como decidir a transicao desses comportamentos, a logicaestabelecida foi que, do estado calmo caso haja uma variacao brusca dos da-dos obtidos pelos sensores, o robo fique com medo; caso haja uma variacaomediana dos dados obtidos fique curioso; sem variacao ele mantem o es-tado. Do estado curioso, caso haja uma variacao brusca dos dados ele fique

27

com medo e mantenha o estado com poucas e medias variacoes. Do estadomedroso, caso haja pouca e media variacao dos dados ele mantenha o estadoe caso haja muita variacao ele fique calmo. Essa ultima transicao pode naofazer sentido a primeira vista, mas imagine a situacao de o robo estar calmo,e nesse estado ser apontada uma fonte de luz forte em seus sensores LDRs,logo o robo ficaria com medo, e comecaria a fugir da luz. Agora imagine queapos certo tempo o robo chega longe suficiente dessa fonte de luz, logo hauma variacao grande no seu dado obtido pelo LDR (estava muito iluminadoagora esta pouco iluminado), e ele estaria em um local longe daquela fonte deluz, e poderia voltar a ficar calmo. Vale ressaltar que se houver uma variacaogrande, porem em um grande espaco de tempo, o robo ira interpretar comouma pequena variacao.

A maneira de seguir a luz (objeto) e feita atraves de uma comparacaoentre os sensores, indicando qual o sensor que obtem maior luminosidade(menor distancia), por exemplo, caso o LDR (Sharp) direito indique maisluminosidade (menor distancia) que o esquerdo entao o robo deve virar paraa direita.

A maneira de fugir da luz (objeto) tambem e feita atraves de uma com-paracao entre os sensores, e segue o mesmo raciocınio de rotacao do queseguir a luz, entretanto, faz com que o robo sempre ande para tras. Ou seja,ele procura manter distancia, mas mantem seu foco no objeto (luz).

Esta rotacao do robo para fugir ou seguir a luz pode ocorrer em variosintervalos, ou seja, quando a diferenca de luz incidente entre um LDR e outroe muito grande, esta rotacao se torna maior; ja quando e media, se torna maissuave, e quando se torna pequena, e nula.

Outro ponto importante observado que somente com variacoes e diferencastalvez nao fosse obtido o robo da maneira como querıamos, pois como o robopoderia saber que ha uma fonte de luz na sua frente somente com umadiferenca e variacao de dados? Por exemplo, em um ambiente a luminosi-dade clara ou escura nao faria diferenca para o robo ele precisaria saber oque e claro e o que e escuro. Logo, para o robo seguir a luz deveria existirinicialmente um ponto de luz para ser seguido. O mesmo metodo foi adotadopara as distancias. Portanto utilizamos os sensores de tres formas diferentes(variacao, diferenca, e o proprio dado do sensor) para estabelecer a estruturalogica do robo, e do mesmo modo foram estabelecidas as tres camadas queserao discutidas a seguir. A variacao e a derivada dos sensores no tempo e adiferenca e a derivada espacial dos sensores em seu eixo.

28

3.2.5 Conjuntos fuzzy

Para o desenvolvimento do sistema fuzzy neste projeto a equipe utili-zou uma estrutura baseada em camadas. Essas camadas representam umacolecao de regras que englobam variaveis de entrada e de saıda, sendo quecada variavel contem uma quantidade de conjuntos fuzzy. As variaveis uti-lizadas nesse projeto possuem tres ou cinco conjuntos.

Figura 18: Diagrama geral das camadas fuzzy

O diagrama geral da figura 18 representa as relacoes entre as camadasque utilizamos. As flechas indicam as entradas de cada camada, e na saıdado diagrama obtemos o comando de velocidade e rotacao que sera enviadopara a placa Axon.

Na terceira camada ha regras que envolvem as variaveis de entrada “tem-peramento anterior”, “variacao de luz”e “variacao de distancia”e variavelde saıda “temperamento”do robo. Esse “temperamento”possui os conjuntosmedo calmo e curioso, que sao afetados atraves das regras da terceira camada.Esta relaciona os conjuntos de entrada com os conjuntos de saıda descritosacima. Seguindo esse modelo, se o robo estava “calmo”anteriormente e hou-ver uma grande variacao dos dados, entao fique com “medo”. Esse novo dadoatualizado e saıda da terceira camada e entrada para a segunda camada, etambem e armazenado na “memoria”que define o comportamento anterior

29

do robo para a proxima rotina de regras.A figura 19 representa a variavel que armazena os temperamentos das

rotinas anteriores.

Figura 19: Temperamento anterior

As figuras 20 e 21 mostram as variaveis de variacao dos sensores, essasvariacoes sao obtidas atraves da diferenca dos dados atuais recebidos dossensores com os dados que foram recebidos e armazenados na rotina anterior.

Figura 20: Variacao de LuminosidadeOnde PVL = Pouca Variacao de Luminosidade, MeVL = Media

Variacao de Luminosidade e MuVL = Muita Variacao de Luminosidade.

30

Figura 21: Variacao de DistanciaOnde PVD = Pouca Variacao de Distancia, MeVD = Media Variacao

de Distancia e MuVD = Muita Variacao de Distancia.

A figura 22 mostra o temperamento atual do robo que vai afetar em todoseu comportamento. Esse temperamento atual e premissa para as regras queconstituem a segunda camada.

Figura 22: Temperamento

A tabela 2 mostra todas as regras que foram produzidas no projeto para aterceira camada e temos regras do tipo “Se robo estava calmo e houve muitavariacao de luz, entao fique com medo”.

31

Tabela 2: Regras Terceira CamadaOnde PVL = Pouca Variacao de Luminosidade, MeVL = Media

Variacao de Luminosidade , MuVL = Muita Variacao de Luminosidade,PVD = Pouca Variacao de Distancia, MeVL = Media Variacao de

Distancia e MuVL = Muita Variacao de Distancia.

Na segunda camada ha regras que envolvem as variaveis de entrada “tem-peramento”, “luminosidade”e “distancia”, sendo a primeira saıda da 3a ca-mada, e as variaveis de saıda “comportamentos em relacao a luminosidade”e“comportamentos em relacao a objeto”. Os conjuntos da primeira variavelsao afetados atraves dos conjuntos de “luminosidade”e da segunda variavelsao afetados pelos conjuntos de “distancia”, sendo que ambas as variaveis saoafetadas tambem pelos conjuntos de “temperamento”atual do robo. Estesconjuntos de entrada e saıda se relacionam atraves das regras da 2a camadadescritas mais a frente.

As figuras 23 e 24 mostram as variaveis “luminosidade”e “distancia deobjeto”. A primeira e obtida atraves dos dados dos LDRs. No nosso caso,quanto menor esse dado, maior a quantidade de luminosidade. A segundae obtida atraves das distancias obtidas pelo Sharp que retorna valores emcentımetros, logo quanto menor esse dado, menor a distancia de um objeto.

32

Figura 23: LuminosidadeOnde MuL = Muita Luminosidade, MeL = Media Luminosidade e PL

= Pouca Luminosidade.

Figura 24: Distancia De ObjetoOnde PD = Pouca Distancia, MeD = Media distancia e MuD =

Muita Distancia.

As figuras 25 e 26 mostram os conjuntos das variaveis “Comportamentosem relacao a luminosidade”e “Comportamentos em relacao a objeto”.

33

Figura 25: Comportamento em relacao a luminosidadeOnde SL = Seguir Luz , NL = Nulo Luz e FL = Fugir Luz.

Figura 26: Comportamento em relacao a um objetoOnde SO = Seguir Objeto, NO = Nulo Objeto e FO = Fugir Objeto.

A tabela 3 mostra todas as regras que foram produzidas no projeto paraa segunda camada e temos regras do tipo “Se robo esta curioso e ha muitaluminosidade, entao siga a luz”.

34

Tabela 3: Regras Segunda CamadaOnde PL = Pouca Luminosidade, MeL = Media Luminosidade , MuL

= Muita Luminosidade, PD = Pouca Distancia, MeD = Media Distancia eMuD = Muita Distancia.

Na primeira camada ha regras que envolvem as variaveis de entrada“Diferenca de distancia”, “Diferenca de luminosidade”, “Comportamento emrelacao a luz”e “Comportamento em relacao a um objeto”, sendo as ultimasduas saıdas da 2o camada, e as variaveis de saıda “Velocidade”e “Rotacao”.Os conjuntos da primeira e segunda variavel de saıda sao afetados pelos con-juntos de “diferenca de luminosidade”que obtem seus valores com a diferencade medida entre o LDR esquerdo com o direito e tambem pelos conjuntos“diferenca de distancia”que obtem seus valores pela diferenca dos sensorespor infra-vermelho direito e esquerdo. As duas variaveis de saıda tambemsao afetadas pelos comportamentos obtidos na segunda camada, em relacaoao objeto e a luminosidade. Os conjuntos das variaveis de saıda e de entradasao relacionados pelas regras da 1a camada descritas adiante.

As figuras 27 e 28 mostram as variaveis “Diferenca de Luminosidade entreLDRs”e “Diferenca de Distancia entre os Sharps”. A diferenca de luminosi-dades entre os LDRs e muito positiva (MPL) quando o LDR da direita estacom mais luminosidade que o LDR da direita. A diferenca de distancias emuito positiva (MPD) e obtida quando o objeto esta mais proximo do Sharpesquerdo.

35

Figura 27: Diferenca de Luminosidades entre os LDRsOnde MNL = Muito Negativa Luminosidade, PNL = Pouco NegativaLuminosidade, NL = Nulo Luminosidade, PPL = Pouco Positiva

Luminosidade e MPL = Muito Positiva Luminosidade.

Figura 28: Diferenca de Distancia entre os SharpsOnde MND = Muito Negativa Distancia, PND = Pouco Negativa

Distancia, ND = Nulo Distancia, PPD = Pouco Positiva Distancia e MPD= Muito Positiva Distancia.

As figuras 29 e 30 mostram os conjuntos das variaveis “Velocidade”e“Rotacao”. Essas variaveis serao defuzzificadas e vao enviar um comando develocidade para as duas rodas do robo.

36

Figura 29: Variavel VelocidadeOnde MVT = Muita Velocidade para Tras, PVT = Pouca Velocidade

Para Tras, SV = Sem Velocidade, PVF = Pouca Velocidade para Frente eMVF = Muita Velocidade para Frente.

Figura 30: Variavel Rotacao do roboOnde ME = Muito Esquerda, PE = Pouco Esquerda, SR = Sem

Rotacao, PD = Pouco Direita e MD = Muito Direita.

A tabela 4 mostra todas as regras que foram produzidas no projeto paraa primeira camada e temos regras do tipo “Se robo deve seguir a luz, e adiferenca entre luminosidade dos LDRs e muito positiva (LDR da direitacom mais luminosidade), entao rotacione muito para a direita com poucavelocidade para frente”.

37

Tabela 4: Regras Primeira CamadaOnde MNL = Muito Negativa Luminosidade, PNL = Pouco NegativaLuminosidade, NL = Nulo Luminosidade, PPL = Pouco Positiva

Luminosidade, MPL = Muito Positiva Luminosidade, MND = MuitoNegativa Distancia, PND = Pouco Negativa Distancia, ND = Nulo

Distancia, PPD = Pouco Positiva Distancia, MPD = Muito PositivaDistancia, MVT = Muita Velocidade para Tras, PVT = Pouca VelocidadePara Tras, SV = Sem Velocidade, PVF = Pouca Velocidade para Frente,

MVF = Muita Velocidade para Frente, ME = Muito Esquerda, PE = PoucoEsquerda, SR = Sem Rotacao, PD = Pouco Direita e MD = Muito Direita.

Para a observacao das sobreposicoes dos temperamentos: medo, calmo ecurioso com suas respectivas caracterısticas, foi decidido que o robo alterassede temperamento somente apos dez rotinas de regras (aproximadamente 2,5segundos). Entretanto, as regras da primeira e da segunda camada ainda fi-cavam ativas, fazendo com que ocorresse o armazenamento da maior variacaoencontrada nessas dez rotinas. Na decima rotina, o temperamento era alter-ado de acordo com a variacao obtida durante as nove anteriores. Ou seja,a terceira camada e executada apenas uma vez a cada dez execucoes daprimeira e da segunda.

3.2.6 Algoritmo para velocidade

O sistema de inferencia fuzzy projetado tem como saıda um valor paravelocidade, que varia de -400 a +400( valores sem unidade ), e outro valorpara rotacao, que abrange de -100% a +100%, para cada laco de inferencia.Como o robo possui duas rodas paralelas de tracao e as informacoes passadaspara o robo sao apenas velocidade e direcao de cada uma delas, tivemosque arquitetar uma logica que convertesse a velocidade e rotacao dados pelo

38

sistema fuzzy em uma velocidade e uma direcao para cada roda. A logicasegue este raciocınio: primeiramente armazenamos o valor da velocidade emmodulo, entao analisamos qual e o valor da rotacao. Se a rotacao for entre-10% e +10%, as equacoes validas sao:

velrodaEsquerda = (100−2∗rotacao)∗velocidade100

(2)

velrodaDireita = (100−2∗rotacao)∗velocidade100

(3)

direcaorodaEsquerda = frente (4)

direcaorodaDireita = frente (5)

Neste caso o robo se movimenta reto para frente com a velocidade depen-dendo do valor da rotacao.

Se a rotacao esta entre +10% e +50%, temos que:

velrodaEsquerda = velocidade (6)

velrodaDireita = (100−2∗rotacao)∗velocidade100

(7)

direcaorodaEsquerda = frente (8)

direcaorodaDireita = frente (9)

Fazendo entao um movimento curvilıneo para a direita, pois a velocidadeda roda esquerda e menor que a velocidade da roda direita.

Se a rotacao esta entre +50% +100%, as equacoes sao:

velrodaEsquerda = velocidade (10)

velrodaDireita = rotacao∗velocidade100

(11)

direcaorodaEsquerda = frente (12)

direcaorodaDireita = tras (13)

Neste caso o robo rotaciona com a velocidade da roda direita dependendodo valor da rotacao.

39

Para rotacoes em porcentagem negativa as equacoes sao simetricas.Por ultimo e feita uma analise do valor da velocidade inicial. Se esta for

positiva, nada acontece, no caso de ser negativa, os valores dos modulos edirecao das rodas direita e esquerda sao trocados.

4 Resultados e Discussoes

Chegando perto do prazo final do projeto, mesmo com certas com-plicacoes, a equipe concluiu o que foi proposto. Na parte mecanica, a es-trutura de acrılico ficou firme e permitiu que os sensores tambem ficassemfirmes. Entretanto, as rodas que eram somente de encaixe nos eixos dos mo-tores acabaram cedendo e ficando um pouco frouxas, mas isto nao impediua movimentacao do robo de forma geral.

Na parte eletronica a equipe teve alguns problemas com os sensores dedistancia por infravermelho e LDRs. Os do primeiro tipo geravam dadosmuito aleatorios quando apontavam para objetos que estavam fora da suafaixa de medicao, isso foi resolvido com uma limitacao dos dados, alem decalculos de medianas de valores adquiridos em um determinado perıodo detempo; alem disso, os sensores infravermelhos puxavam muita corrente daplaca, impedindo o boot de programas na mesma, para isso, foram colocadoscapacitores da ordem de micro e nano farads na alimentacao. Ja os LDRspossuıam uma variacao de dados coletados entre si, e tambem estavam muitosensıveis a luz; para diminuir esta variacao e sensibilidade, esses sensorestiveram sua area sensıvel a luz diminuıda com fita isolante, alem disso, foicalculada a mediana entre cinco valores dos dados obtidos.

A equipe tambem encontrou certos problemas para definir a velocidade ea rotacao de cada motor, visto que era necessario permitir ao robo umamovimentacao que abrangesse certa continuidade. Este problema foi re-solvido com um calculo em porcentagem da rotacao multiplicando a veloci-dade dos motores de tal forma que fossem aproveitadas diversas intensidadesde rotacao. Logo, fazendo com que o robo se virasse para a esquerda oudireita de acordo com a porcentagem de rotacao.

Embora o grupo tenha encontrado estes problemas na parte eletronica,os resultados adquiridos foram de acordo com os esperados. Os dados dossensores ficaram coerentes, a comunicacao serial nao apresentou problemas, ocontrole do motor via PWM e ponte H respondeu bem e o micro-controladorembora nao tivesse memoria suficiente para rodar a maquina de inferenciafuzzy, atendeu bem as expectativas.

No sistema fuzzy , os resultados para comportamentos separados (de luze objeto) puderam ser bem visualizados. Ja quando foram unidos, a analise

40

da sobreposicao ficou um pouco confusa, sendo que a percepcao das camadassuperiores era facil, mas as inferiores ficaram muito vulneraveis e geravamum comportamento inesperado.

O maior problema do sistema fuzzy foi definir quando cada comporta-mento de luz deve influenciar o de objeto e vice-versa, a equipe nao con-seguia prever como essa interacao ia ocorrer. Para que esta previsao fossefeita, o ideal seria utilizar um simulador para testes. Outro fator que acabouatrasando um pouco a equipe foram pequenos erros no codigo que so forampossıveis ser encontrados atraves de varias “depuracoes”.

5 Consideracoes Finais

O decorrer do semestre mostrou a equipe o quao importante e passarmais tempo estruturando e planejando do que de fato executando um projeto.Esta atitude acaba fazendo com que muito tempo seja ganho quando astarefas vao chegando ao fim.

Outro fato importante e que a divisao de tarefas deve ocorrer de acordocom as prioridades do projeto, analisando o que poderia atrasar ou ate mesmointerromper um bom desenvolvimento.

Com um trabalho na area de robotica, a equipe percebeu quanto cuidadodeveria tomar em relacao as incertezas e imprecisoes e aprendeu a lidar comisso. Embora deva haver alguns cuidados e preocupacoes, e um projeto muitogratificante de ser feito, pois alem de montagem e programacao, ha ainda aparte de testes, em que ha uma interacao maior com o artefato.

O robo abordado neste projeto cumpre a proposta inicial, entretanto aequipe percebeu que ainda ha muito a ser implementado no robo. A movi-mentacao dele terminou um pouco limitada, devido aos fios de comunicacaoe alimentacao, entao deveria ser feita uma comunicacao sem fio e uma ali-mentacao por baterias.

A intercalacao dos comportamentos de luz e objeto poderia ser melhorada,alem disso, a sensibilidade do robo poderia ser aumentada, colocando som,por exemplo, ou ate mesmo colocando sensores mais precisos para distancia,como o sonar. Alem disso, seria possıvel fazer um sistema de mapeamento apartir da logica fuzzy, entre outros.

Assim como Paulo Fracasso e Anna Costa [FRACASSOCOSTA, 2005]tambem concluıram, um robo de sistema reativo pode ter uma grande veloci-dade de processamento de dados com uma pequena base de regras, fazendoentao com que este possua respostas rapidas em reacao ao meio que estainserido.

41

6 Referencias Bibliograficas

ZADEH, L. A. Fuzzy sets. Information and Control, v. 8, n. 3, p.338 - 353.1965.

SIMAO, J. M. Proposta de uma Arquitetura de Controle paraSistemas Flexıveis de Manufatura Baseada em Regras eAgentes..2001. Dissertacao de Mestrado. Universidade TecnologicaFederal do Parana.

BANASZEWSKI, R. F. Paradigma orientado a notificacoes: avancose comparacoes..2009. Dissertacao de Mestrado. Universidade TecnologicaFederal do Parana.

SOUZA, J. T. S. Proposta de uma Maquina de Inferencia Fuzzyutilizando o Paradigma Orientado a Notificacoes..2009.UniversidadeTecnologica Federal do Parana.

TANSCHEIT, R. Sistemas Fuzzy. Disponıvel em:http : //www.inf.ufsc.br/ mauro/ine5377/leituras/ICA−Sistemas%20Fuzzy.pdf Acesso em 15 de setembro de 2010.

SILVA, D; AVALOS,D.Light Dependent Resistance as a Sensor inSpectroscopy Setups Using Pulsed Light and Compared withElectret Microphones.2006. Universidade do Vale do Paraıba.

FORESTI,H. Desenvolvimento de um robo bıpede autonomo.2006.Dissertacao de Mestrado. Universidade Federal de Pernambuco.

COSTA,D; SILVA,T. Ponte H. Disponıvel em:http : //www.dppg.cba.ifmt.edu.br/blogs/2010/grupo6/?p = 35 Acesso em15 de novembro de 2010.

BRAGA,N. Controles PWM de Potencia.2009. Instituto Newton C.Braga.

BROOKS,R. A Robust Layered Control System for a MobileRobot.1985. Massachusetts Institute of Technology.

HEINEN,F. Robotica Autonoma: Integracao entre planificacao ecomportamento reativo.1999. Universidade do Vale do Rio dos Sinos.

JONES, J; FLYNN,A; SEIGER,B. Mobile Robots: Inspiration toImplementation.1999.

SOCIETYOFROBOTS Pagina principal. Disponıvel em:www.societyofrobots.com Acesso em 16 de novembro de 2010.

42

SHARP Datasheet: Distance Measuring Sensor Unit Measuringdistance: 20 to 150 cm Analog output type (GP2Y0A02YK0F).Eletronic Publication, 2006.

Acroname Robotics Demystifying the Sharp IR Rangers.2010.

FRACASSO, P; COSTA, A. Navegacao Reativa de Robos MoveisAutonomos Utilizando Logica Nebulosa com RegrasPonderadas.2005. Escola Politecnica da Universidade de Sao Paulo.

FILHO, A. Disponıvel em:http : //portaldoprofessor.mec.gov.br/fichaTecnicaAula.html?aula = 795Acesso em 07 de dezembro de 2010.

COSTA, A. Logica Fuzzy: Conceitos e Aplicacoes. Ultimo acesso15/9/2010. Disponıvel em:http : //www.inf.unisinos.br/ cazella/dss/fuzzyrelatorio.pdf

43

7 Apendice

7.1 Gerenciamento do Grupo

7.1.1 Listagem e duracao das etapas

• Definir tema 3h

• Pesquisar tema 50h

• Pesquisar materiais 30h

• Pesquisar logica fuzzy 20h

• Comprar materiais 1h

• Escrever monografia 50h

• Planejar robo 50h

• Montar robo 15h

• Programar robo 70h

• Planejar e fazer relatorio de qualificacao 8h

• Fazer APS 10h

• Planejar apresentacao 15h

44

7.1.2 Interdependencia entre as etapas

Figura 31: Interdependencia entre as etapas do projeto

45

7.1.3 Diagrama de Gantt

Figura 32: Diagrama de Gantt

46