Download PDF
ads:
UNIVERSIDADE DE TAUBATÉ
Cassius Adriano Craveiro Grillo
DESENVOLVIMENTO E APLICAÇÃO DE UM CONTROLADOR
NEBULOSO PARA NAVEGAÇÃO DE ROBÔS MÓVEIS
AUTÔNOMOS
Taubaté - SP
2006
ads:
Livros Grátis
http://www.livrosgratis.com.br
Milhares de livros grátis para download.
1
UNIVERSIDADE DE TAUBATÉ
Cassius Adriano Craveiro Grillo
DESENVOLVIMENTO E APLICAÇÃO DE UM CONTROLADOR
NEBULOSO PARA NAVEGAÇÃO DE ROBÔS MÓVEIS
AUTÔNOMOS
Dissertação para obtenção do Título de
Mestre pelo Curso de Mestrado do
Departamento de Engenharia Mecânica da
Universidade de Taubaté.
Área de Concentração: Automação
Industrial e Robótica
Orientador: Prof. Dr João Sinohara da Silva
Sousa
Taubaté - SP
2006
ads:
2
CASSIUS ADRIANO CRAVEIRO GRILLO
DESENVOLVIMENTO E APLICAÇÃO DE UM CONTROLADOR NEBULOSO PARA
NAVEGAÇÃO DE ROBÔS MÓVEIS AUTÔNOMOS
Dissertação para obtenção do Título de
Mestre pelo Curso de Mestrado do
Departamento de Engenharia Mecânica da
Universidade de Taubaté.
Área de Concentração: Automação
Industrial e Robótica
Orientador: Prof. Dr João Sinohara da Silva
Sousa
Data: ___________________
Resultado: _______________
BANCA EXAMINADORA
Prof .Dr. João Sinohara da Silva Sousa Universidade de Taubaté
Assinatura____________________________________
Prof. Dr. Luiz Octávio Mattos dos Reis Universidade de Taubaté
Assinatura____________________________________
Prof. Dr. Antônio Carlos de Souza CEFET – MG UNED Leopoldina
Assinatura____________________________________
3
Dedico este trabalho à minha mãe, Leonor
pelo incentivo e perseverança e a minha
esposa Libania pela paciência e apoio.
4
AGRADECIMENTOS
Ao professor Dr. João Sinohara da Silva Sousa, meu orientador, pela habilidade na
condução deste trabalho ao longo desses anos.
Aos professores Dr. Luiz Octávio Mattos dos Reis e Dr. Antonio Carlos de Souza,
membros da banca examinadora, pelas suas observações e sugestões, as quais vieram a consolidar
e enriquecer a conclusão deste trabalho.
A Universidade de Taubaté (UNITAU) através de todos os professores, mestres e
doutores do programa de mestrado em engenharia mecânica, que com paciência e dedicação nos
possibilitaram novos conhecimentos.
Ao professor José Fabio Rodrigues Silva da ETEP Faculdades, pelo apoio técnico nos
assuntos de eletrônica.
5
RESUMO
Este trabalho apresenta o desenvolvimento de um sistema de controle de robôs móveis
autônomos em ambientes desestruturados e as vantagens da utilização de lógica nebulosa para
realizar o seu controle. O desenvolvimento e implementação foi auxiliado pelo grupo de estudos
em robótica (GERA) para realização de atividades extracurriculares dos alunos com a finalidade
de projetar e montar anualmente um robô móvel. O projeto também permite aos estudantes
ampliarem seus conhecimentos técnico-científicos e proporciona também a vivência de trabalho
em equipe. Normalmente a estratégia utilizada no navegador do robô móvel é compatibilizar de
alguma forma os diferentes comportamentos utilizados para tomada de ação no planejamento da
trajetória. O principal desafio deste trabalho é apresentar um método de como utilizar raciocínio
por lógica nebulosa para conduzir a navegação autônoma do robô. Assim, a ação do robô a cada
instante é definida por um conjunto nebuloso com base na posição do robô, nos valores dos seus
sensores, na distância e no ângulo em relação ao objetivo. As únicas informações necessárias a
priori para o robô são a sua posição e orientação inicial e final. Os demais dados para o
planejamento são obtidos pelo próprio robô através dos sensores: encoders, giroscópio, ultra-som
e fins-de-curso. A teoria de sistemas baseados em lógica nebulosa proporciona a possibilidade de
supervisão inteligente.
Palavras chave: Lógica Nebulosa, Robô Móvel, Navegação Autônoma.
6
ABSTRACT
The aim of this work is to present the development of a control system for an autonomous mobile
robot and the advantages of the use of fuzzy logic in its implementation. Students from GERA
(Group of Studies Robotics) have helped the development of this project as part of their
extracurricular activities. Usually the logic used in similar systems attempts to organize different
behaviors necessary to trajectory planning. In this work the decisions are made based on fuzzy
logic in order to execute the autonomous navigation of the robot. The actions are taken constantly
based on its position, output signals from its sensors, distance and angle to its positional
objective; all the needed information at the beginning of its operation are its initial and final
position and orientation. The used sensors are encoders, gyrometers, ultra-sound receiver-emitter
and limit switches. The theory on systems based on fuzzy logic makes the intelligent supervision
possible.
Keywords: Fuzzy Logic, Mobile Robot, Autonomous Navigation.
7
SUMÁRIO
Capítulo - 1 – Introdução.........................................................................................................12
1.1 Apresentação ............................................................................................................12
2.1 Objetivo ....................................................................................................................13
2.2 Organização do trabalho...........................................................................................13
Capítulo - 2 – Revisão bibliográfica........................................................................................15
2.1 Histórico ...................................................................................................................15
2.2 Robô móvel autônomo (RMA).................................................................................15
2.3 Robôs inteligentes ....................................................................................................16
2.4 Tipos de robôs móveis..............................................................................................16
2.5 Sensores utilizados em robótica ...............................................................................17
2.5.1 Sensores de colisão...................................................................................................17
2.5.2 Sensores de contato ..................................................................................................19
2.5.3 Sensores de posicionamento.....................................................................................20
2.6 Fusão de sensores .....................................................................................................21
2.7 Navegação de robôs móveis .....................................................................................22
2.8 Sistemas de controle.................................................................................................23
2.9 Estratégia de controle ...............................................................................................23
2.10 Arquiteturas de controle ...........................................................................................24
2.10.1 Arquitetura horizontal ..............................................................................................24
2.10.2 Arquitetura vertical...................................................................................................25
2.10.3 Arquitetura híbrida ...................................................................................................26
2.11 Lógica nebulosa........................................................................................................27
2.11.1 Conjuntos nebulosos.................................................................................................29
2.11.2 União de dois conjuntos nebulosos ..........................................................................30
2.11.3 Intersecção de dois conjuntos nebulosos..................................................................31
2.11.4 Complementação de um conjunto nebuloso.............................................................31
2.11.5 Conjunto de níveis....................................................................................................33
2.11.6 Suporte......................................................................................................................33
2.11.7 Altura........................................................................................................................33
2.11.8 Normalização............................................................................................................33
2.11.9 Implicação lógica da regra........................................................................................34
2.11.10 Número de regras .....................................................................................................34
2.11.11 Base de regras...........................................................................................................35
2.11.12 Fuzzificação e defuzzificação natural ......................................................................35
2.11.13 Arquitetura dos sistemas nebulosos..........................................................................36
2.11.14 Interface de fuzzificação...........................................................................................37
2.11.15 Grau de pertinência...................................................................................................38
2.11.16 Base de regras ou conhecimento ..............................................................................39
2.11.17 Lógica de tomada de decisão....................................................................................41
2.11.18 Defuzzificação..........................................................................................................42
2.11.19 Máquina de inferência ..............................................................................................44
Capítulo - 3 – Desenvolvimento de um grupo de estudo em robótica (GERA)......................46
3.1 Pedagogia de projetos...............................................................................................46
8
3.2 Robótica educacional................................................................................................47
3.3 FIRST .......................................................................................................................49
3.3.1 Objetivos do FIRST..................................................................................................49
3.3.2 A competição............................................................................................................50
3.4 Grupo de estudo em robótica (GERA) .....................................................................50
3.5 Equipe de trabalho....................................................................................................51
Capítulo - 4 – Desenvolvimento do Robô e do Controlador nebulosos..................................53
4.1 Desenvolvimento do robô.........................................................................................53
4.2 Componentes do robô...............................................................................................54
4.3 Navegação do robô...................................................................................................56
4.4 Autonomous Control (AC).......................................................................................57
4.5 Controle de um robô móvel autônomo.....................................................................58
4.6 Variáveis utilizadas ..................................................................................................59
4.7 Sistema de inferência nebuloso ................................................................................59
4.8 Definição das regras .................................................................................................62
4.9 Implementação do sistema........................................................................................65
Capítulo – 5 – Aplicação do Controlador Nebuloso ...............................................................67
5.1 Testando o sistema nebuloso....................................................................................67
5.2 Fuzzificação..............................................................................................................70
5.3 Avaliando as regras ..................................................................................................70
5.4 Defuzzificação..........................................................................................................70
5.5 Resultados.................................................................................................................71
5.6 Problemas na implementação do sistema.................................................................74
Capítulo – 6 – Conclusão ........................................................................................................75
Referências.......................................................................................................................76
9
LISTA DE TABELAS
Tabela 4.1 Valores de entrada dos conjuntos nebulosos para variável ângulo ....................63
Tabela 4.2 Valores de entrada dos conjuntos nebulosos para variável distância.................64
Tabela 4.3 Valores de entrada dos conjuntos nebulosos para variável saída.......................64
10
LISTA DE FIGURAS
Figura 2.1 Robô móvel.........................................................................................................16
Figura 2.2 Sensor infravermelho..........................................................................................18
Figura 2.3 Sonar...................................................................................................................18
Figura 2.4 Sensor lazer ........................................................................................................19
Figura 2.5 Câmera de vídeo.................................................................................................20
Figura 2.6 Arquitetura horizontal ........................................................................................25
Figura 2.7 Arquitetura vertical.............................................................................................26
Figura 2.8 Função de pertinência e união dos conjuntos nebulosos A e B..........................30
Figura 2.9 Função de pertinência e intersecção dos conjuntos nebulosos A e B ................31
Figura 2.10 Função de pertinência e complemento dos conjuntos nebulosos A e B.............32
Figura 2.11 Conjuntos nebulosos para variável velocidade ..................................................32
Figura 2.12 Desenho de uma base de regras..........................................................................35
Figura 2.13 Arquitetura básica de um controlador nebuloso.................................................36
Figura 2.14 Conjuntos nebulosos da variável temperatura....................................................37
Figura 2.15 Função de pertinência trapezoidal......................................................................38
Figura 2.16 Sistema nebuloso para mercado de ações...........................................................40
Figura 2.17 Avaliação de regras computadas ........................................................................41
Figura 2.18 Defuzzificação utilizando o método do centro da área (COA) ..........................43
Figura 2.19 Defuzzificação utilizando o método da média dos máximos (MOM)................44
Figura 2.20 Diagrama típico de um sistema de processamento.............................................45
Figura 4.1 Sistema eletrônico do robô .................................................................................53
Figura 4.2 Engrenagens feitas de politecnil.........................................................................55
Figura 4.3 Montagens de engrenagens de aço .....................................................................55
Figura 4.4 Diagrama em blocos do robô..............................................................................56
Figura 4.5 Tela do usuário que controla o robô pelo teclado ..............................................57
Figura 4.6 Código criado pelo software...............................................................................58
Figura 4.7 Tela onde o usuário digita em valores numéricos para que o robô execute.......58
Figura 4.8 Controlador de orientação do robô.....................................................................59
Figura 4.9 Entrada do controlador nebuloso de orientação .................................................60
11
Figura 4.10 Saída do controlador nebuloso de orientação.....................................................60
Figura 4.11 Controlador de desvio de obstáculo ...................................................................61
Figura 4.12 Entrada da variável ângulo do controlador de desvio de obstáculo ...................61
Figura 4.13 Entrada da variável distância do controlador de desvio de obstáculo................62
Figura 4.14 Saída do controlador de desvio de obstáculo .....................................................62
Figura 4.15 Conversão para formato de dois pontos em duas inclinações............................64
Figura 4.16 Exemplo de arranjo para dados de entrada.........................................................65
Figura 4.17 Detalhe da estrutura de dados utilizada..............................................................65
Figura 4.18 Exemplo de estrutura para base de regras ..........................................................66
Figura 4.19 Exemplo para dados de saída .............................................................................66
Figura 5.1 Tela do programa do controlador nebuloso para robô móvel.............................68
Figura 5.2 Termos nebulosos das variáveis de entrada do sistema......................................69
Figura 5.3 Tela do controlador nebuloso com valores de entrada e as saídas calculadas ...69
Figura 5.4 Fuzzificação das variáveis distância e ângulo....................................................70
Figura 5.5 Regras disparadas ...............................................................................................70
Figura 5.6 Resultados dos cálculos para defuzzificação da variável saída..........................71
Figura 5.7 Representação gráfica da defuzzificação da variável saída................................71
Figura 5.8 Simulação da navegação do robô com poucos obstáculos .................................72
Figura 5.9 Simulação da navegação do robô com muitos obstáculos..................................73
Figura 5.10 Simulação da navegação do robô em uma situação que ele não fica preso .......73
Figura 5.11 Robô móvel utilizado no teste do controlador nebuloso ....................................74
12
CAPÍTULO 1 - INTRODUÇÃO
1.1 APRESENTAÇÃO
A robótica é um dos principais negócios do futuro, como demonstra o maciço empenho
em pesquisa e desenvolvimento dos países mais industrializados. Depois da difusão do robô na
indústria, hoje se começa a ver os primeiros produtos para o consumidor, mais diretamente no
setor de entretenimento, possibilitando a abertura do mercado das inovações dos robôs de
serviços, Heinen (2002). Trata-se de uma ciência multidisciplinar sendo importante não somente
para o desenvolvimento e utilização dos robôs, mas também propiciando estudo dos métodos de
raciocínio e experimentação do mundo. Reúne todas as competências necessárias da construção
de uma máquina, dos computadores, programação e sistemas de comunicação. O perfil particular
desta ciência promove no estudante a atitude criativa, melhora a capacidade de comunicação,
visão sistêmica, cooperação e trabalho em equipe, além de favorecer o aumento do interesse e
motivação para as disciplinas tradicionais, Chella (2002).
A robótica autônoma é uma área de pesquisa que vem crescendo bastante nos últimos
anos. Os robôs têm auxiliado o homem em diversas tarefas, tais como a exploração espacial,
trabalhos em áreas de risco e o auxílio a pessoas com deficiências físicas entre outras. Com o
grande avanço da eletrônica e da informática, computadores mais potentes são criados, podendo
ser usados para desenvolver novas técnicas de controle robótico. Estas técnicas estão permitindo
que esses robôs executem tarefas complexas, que até então só eram executadas por seres-
humanos, tais como: aprender com a experiência, Sousa (1997), navegar por ambientes
desconhecidos, desviar de obstáculos imprevistos e reagir de forma inteligente a estímulos do
ambiente, Heinen (2002). Os robôs industriais são muito limitados e não integram todas as novas
tecnologias, de maneira que as mesmas resultem em aplicações confiáveis.
O presente trabalho apresenta o desenvolvimento do grupo de estudos em robótica
(GERA) na Escola Técnica “Professor Everardo Passos”. Realizado como atividade
extracurricular dos alunos onde são desenvolvidos estudos e discussões com a finalidade de
projetar e montar anualmente um robô móvel autônomo (RMA). Esta atividade permite aos
estudantes ampliarem seus conhecimentos técnico-científicos e proporciona também a vivência
de trabalho em equipe. A movimentação autônoma do robô é feita para um ambiente conhecido e
13
este realizará tarefas conforme a estratégia definida pela equipe. Normalmente a estratégia
utilizada no navegador do robô móvel consiste em compatibilizar de alguma forma os diferentes
comportamentos necessários para tomada de ação no planejamento da trajetória. E também é
apresentado um método de como utilizar raciocínio por lógica nebulosa para fazer a navegação
do RMA integrando estes comportamentos.
1.2 OBJETIVO
Este trabalho tem como objetivo o desenvolvimento de um sistema de controle de robôs
móveis autônomos em ambientes desestruturados com as vantagens da utilização de lógica
nebulosa para realizar o seu controle. O desenvolvimento ocorre através da criação de um grupo
de estudos em robótica (GERA) para realização de atividades extracurriculares dos alunos com a
finalidade de projetar e montar anualmente um robô móvel. O projeto permite aprimoramento no
processo de ensino, desenvolvendo competências e habilidades, baseados em
multidisciplinaridade, empreendedorismo, visão sistêmica, trabalho em equipe e pedagogia de
projetos.
Com o desenvolvimento do trabalho procura-se atingir os objetivos específicos:
Aplicar lógica nebulosa como instrumento de decisão e controle no software de
navegação do robô utilizando a máquina de inferência de Mandani.
Integrar sistemas de software e hardware para construção de um robô móvel
autônomo.
Estimular o hábito de pesquisa e a troca de experiências e o trabalho em equipe.
Promover integração, visão sistêmica e interdisciplinaridade através da construção
de um robô móvel autônomo.
1.3 ORGANIZAÇÃO DO TRABALHO
O capítulo 2 consiste de uma revisão bibliográfica, onde é apresentado o histórico sobre o
termo robô, um resumo apresentando os tipos de robôs e sensores utilizados em robótica, fusão
de sinais de sensores, arquiteturas de controle de robôs e navegação de robôs móveis. No
14
Capítulo 3, é mostrada a importância da pedagogia de projetos e da robótica como instrumento
pedagógico, o desenvolvimento de grupo de estudos em robótica . No Capítulo 4 é apresentado o
desenvolvimento do robô e um método de como utilizar raciocínio por lógica nebulosa para fazer
a navegação autônoma do robô. No Capítulo 5 é mostrada como se realizou a implementação do
controlador nebuloso, relata-se os resultados obtidos e alguns problemas encontrados durante a
execução do trabalho. O Capítulo 6 apresenta as conclusões do trabalho.
15
CAPITULO 2 – REVISÃO BIBLIOGRÁFICA
2.1 - HISTÓRICO
Por definição, robô são máquinas controladas por computador que são programadas para
mover, manipular objetos, e efetuar trabalhos enquanto interage com seu ambiente. Robôs são
capazes de executar tarefas repetitivas mais rapidamente, de modo barato e mais perfeitamente
que humanos. O termo robô se origina da palavra Tcheca "robota", que significa "trabalho
compulsório". Ela foi usada pela primeira vez em 1921 na peça teatral R.U.R (Rossum's
Universal Robots) pelo novelista e escritor Tcheco Karel Capek. A palavra robô vem sendo usada
desde então para se referir a máquinas que executam trabalhos para ajudar pessoas, ou trabalhos
que humanos acham difíceis ou indesejáveis.
2.2 - ROBÔ MÓVEL AUTÔNOMO (RMA)
Conforme Heinen (2002), os RMA são robôs que operam sem nenhum controle humano,
exceto aquele que é requerido para construí-lo, programá-lo no inicio e reabastecê-lo ao longo de
sua vida útil. Ao contrário dos robôs e veículos controlados remotamente, robôs autônomos
operam unicamente através da interação entre seu software e seu hardware. Os sensores
alimentam o robô com informações a respeito do ambiente. O software tem a capacidade de
interpretar os sensores e gerar os comandos necessários para atingir as metas estabelecidas.
Heinen (2002) comenta que pode-se classificar os robôs de acordo com as suas
propriedades:
Móvel: o sistema inteiro se move no ambiente;
Autônomo: sua interação com os seres humanos é reduzida;
As metas podem estar incorporadas no software ou o mesmo pode permitir que o robô
escolha ou estabeleça as suas próprias metas, a partir de um número limitado de opções, ou então
pode operar de modo aleatório, resultando em opções imprevisíveis. A figura 2.1 mostra um robô
móvel que pode trabalhar autonomamente ou telecontrolado.
16
Figura 2.1 Robô Móvel
2.3 - ROBÔS INTELIGENTES
Heinen (2002) comenta que alguns robôs podem funcionar sobre circunstâncias menos
controladas do que outros robôs. Eles possuem diversos sensores que lhes permitem captar
informações do ambiente. Estes sensores podem ser: sonares, que emitem e recebem ondas de
som; infravermelhos, medindo a temperatura e a luminosidade do ambiente; câmeras coletando
informações visuais; lasers medindo a luz; etc. Robôs inteligentes usam estas informações para
decidir como vão agir, podendo se adaptar melhor ao ambiente no qual estão inseridos. Por
exemplo: um robô entregador de cartas inteligente pode percorrer seu caminho em um prédio sem
precisar seguir uma linha no chão. Ele poderia desviar de obstáculos e pessoas no seu caminho.
Ele poderia sentir se uma certa pessoa esta na sala e perguntar se ela gostaria de enviar alguma
correspondência. Ele poderia também sentir quando está com pouca energia e se conectar em
uma estação de recarregamento de energia.
2.4 - TIPOS DE ROBÔS MÓVEIS
Os robôs móveis podem ser classificados como industriais, serviço ou de campo,
dependendo do tipo de tarefa que executa.
Industriais: São geralmente plataformas móveis que executam tarefas pesadas, como por
exemplo carregar grande quantidade de materiais, pintar grandes aviões, etc;
17
Serviço: Sistemas de robótica móvel autônoma que executam tarefas de serviço podem ser
utilizados por todos os tipos de aplicação ( transporte, manipulação, exploração, vigilância, etc..),
em ambientes estruturados e com um mínimo de conhecimento prévio destes;
Campo: Este tipo de robô realiza tarefas em ambientes desestruturados, pouco
conhecidos, e geralmente perigosos.
2.5 - SENSORES UTILIZADOS EM ROBÓTICA
Conforme Everrett (1995) robôs precisam ser dotados de sensores com a finalidade de
deduzir o que está acontecendo em seu mundo, e também para estarem aptos a reagir a situações
variáveis. Os sensores têm como função nos robôs a mesma função que tem nos humanos, sentir
o ambiente para comandar suas reações. Os robôs móveis se utilizam principalmente de dois
grupos de sensores, os sensores de colisão e os de posicionamento.
Segundo Everrett (1995), para um melhor desempenho, um robô deve utilizar vários
destes sensores ao mesmo tempo, e seu software deve ter a capacidade de processar e analisar os
dados destes sensores, fazendo com que seus atuadores se comportem de forma correta.
2.5.1 - SENSORES DE COLISÃO
Estes tipos de sensores são utilizados pelos robôs para detectar possíveis obstáculos que
estejam no seu caminho. Os sensores de colisão também podem ser utilizados para se obter um
mapa do ambiente.
SENSORES INFRA-VERMELHO
Heinen (2002) apresenta este tipo de sensor é muito utilizado, principalmente por ter um
baixo custo e funcionamento relativamente simples, apesar de ter a desvantagem de seu raio de
ação ser bem reduzido.
Na figura 2.2, um diodo infravermelho emite um raio modulado; o raio atinge um objeto e
uma porção da luz é refletida, sendo captada de volta através do receptor ótico e atingindo um
conjunto de fotodiodos. Dependendo da posição do objeto, o ângulo de incidência da luz refletida
é diferente, com isso pode-se calcular a distância deste objeto por triangulação.
18
Figura 2.2 Sensor Infravermelho
SONAR
A principal vantagem do sonar é seu baixo custo e a necessidade de poucos recursos
computacionais. Mas a informação retornada pelo sonar é limitada por causa de raio de atuação
muito largo, o que causa leituras imprecisas do ambiente, conforme relata Carvalho (1998). O
sonar é um dos sensores mais utilizados pela robótica móvel, justamente pelo seu baixo custo e
também por ser um dos mais simples de operar. Everrett (1995) comenta que o seu
funcionamento é relativamente simples, um transdutor emite uma pequena onda de som em alta
freqüência; quando esta onda atinge um objeto ela se reflete e é novamente captada pelo
transdutor, figura 2.3. A distância pode ser calculada usando o tempo entre a emissão e o
recebimento de uma onda de som. A distância é calculada dividindo-se o tempo decorrido por 2,
e multiplicando o resultado pela velocidade do som.
Figura 2.3 Sonar
LASER
Heinen (2002) relata que existem vários tipos de sensores que utilizam o laser para
detectar obstáculos. O mais simples deles utiliza o mesmo princípio utilizado nos sensores
infravermelhos, um feixe laser é emitido e um fotosensor capta a sua reflexão e calcula o tempo
que foi preciso para o laser retornar. Uma desvantagem deste sistema é que os circuitos precisam
ser muito precisos, pois a velocidade do laser é muito alta.
19
Existem outros tipos de sensores laser que utilizam espelhos para detectar o obstáculo.
Um motor controla o ângulo do espelho até que o feixe laser atinja o fotosensor, figura 2.4,
quando isto acontece pode-se calcular a distância usando o ângulo do espelho por triangulação.
Figura 2.4 Sensor Laser
CÂMERAS DE VÍDEO
Conforme Heinen (2002) as imagens do ambiente obtidas através de uma câmera de
vídeo, figura 2.5, são processadas pelo computador, que analisa e então “decide” o que fazer. A
câmera pode ser colorida ou preto e branco. O processamento de imagens coloridas é mais difícil
e necessita de mais tempo de processamento. Como o robô pode “entender” o que a câmera vê?
Existem alguns métodos para fazer o computador “entender” as imagens, eles são chamados de
métodos de reconhecimento de padrões. O computador analisa cada imagem que ele obtêm da
câmera para identificar certos objetos. Por exemplo, o brilho ou a cor dos objetos normalmente é
diferente do brilho de fundo, e comparando cada dois pixels vizinhos o computador pode achar as
bordas dos objetos, depois de processada, a imagem contém somente as bordas externas dos
objetos. Este é o primeiro passo do reconhecimento de objetos, ou seja, a detecção de bordas. A
partir destas informações é necessário saber então o que são estes objetos, seu formato,
propriedades e localização.
Então o computador compara os objetos com padrões guardados na memória e obtêm os
resultados.
Em alguns casos são utilizadas duas câmeras ao mesmo tempo, isso permite que o robô
possa processar as imagens de forma a gerar padrões em 3 dimensões, e ainda possibilita que se
possa calcular a distância desses objetos.
20
Figura 2.5 Câmera de vídeo
2.5.2 - SENSORES DE CONTATO
São compostos basicamente de chaves que são acionadas quando o robô entra em contato
com algum obstáculo. Este tipo de sensor é utilizado como último recurso, no caso de um robô
estar se movendo a velocidade máxima e não conseguir detectar um obstáculo, por exemplo, isto
pode acontecer quando um obstáculo não é reflexivo a luz infravermelha e/ ou absorve os pulsos
de alta freqüência do sonar, ou quando o obstáculo se encontra em uma posição onde o sensor
não é capaz de detectá-lo. Sensores do tipo fim-de-curso também podem ser utilizados.
2.5.3 - SENSORES DE POSICIONAMENTO
Borentain (1996) comenta que tão importante quanto detectar um obstáculo, é a
capacidade de um robô saber exatamente onde ele esta em relação ao seu ambiente, para isso ele
utiliza os sensores de posicionamento que medem de forma absoluta ou relativa a posição atual.
Borentain (1996) apresenta alguns tipos de sensores de posicionamento: Odômetros,
Bússolas, GPS, Beacon (Faróis).
21
BÚSSO
m a vantagem de retornarem um valor
absoluto, que não depende de um estado anterior do robô.
ODÔM
uito baixa, necessitando que seu valores sejam
validados de tempos em tempos.
GPS (G
eficiente em ambientes
ltamente urbanizados e de sua precisão ser muito baixa para o uso civil.
BEAC
s erros de posicionamento causados por odômetros e outros sensores posicionais
relativos.
2.6 - FUSÃO DE SENSORES
LA
As bússolas utilizadas em robótica têm a finalidade de informar ao robô o ângulo em que
ele se encontra em determinado momento. Estes sensores tê
ETROS
Este tipo de sensor também é muito utilizado na robótica móvel, ele tem a finalidade de
medir a distância percorrida pelo robô, com isso, pode-se calcular sua posição relativa no
ambiente. Este sensor tem uma precisão m
LOBAL POSITIONING SYSTEM)
Utilizado principalmente em robôs de campo, o GPS se utiliza uma rede de satélites em
órbita da terra para determinar a longitude, latitude e altitude do robô. Esse sensor também
retorna um valor absoluto, mas tem a desvantagem de não ser muito
a
ON (FARÓIS)
Os “Beacon
” ou faróis, são dispositivos que são instalados em pontos estratégicos do
ambiente, estes dispositivos emitem sinais luminosos ou de rádio, o robô detecta esses sinais e a
partir deles pode calcular a sua posição. Este tipo de sensor é utilizado principalmente para
eliminar o
Heinen (2002) descreve que, o funcionamento correto de robôs tem uma forte
dependência nas informações obtidas do ambiente pelos sensores. A navegação autônoma
baseada em sensores ultra-sônicos tem a grande vantagem de se aplicar em vários tipos de
ambientes, devido ao baixo custo deste tipo de sensor. Contudo, sensores ultra-sônicos fornecem
22
informações imprecisas do ambiente, tornado a navegação autônoma uma tarefa difícil,
especialmente em ambientes pouco estruturados, e que contenham um grande número de
obstáculos desconhecidos. Além disso, existem problemas de ruí
do, e baixa confiança devido a
ângulo
rma de lidar com esse tipo de problema é utilizar algumas das técnicas de
fusão de sensores.
2.7 - AVEGAÇÃO DE ROBÔS MÓVEIS
uina, pare na frente do posto
de gaso
percepções mais apuradas, muito
ainda p
ode-se dividir a navegação robótica em 3 aspectos:
NAVE
tiva a um mapa
previam nte modelado do ambiente, e então se mover para o destino desejado.
NAVE
etos é evitada na medida que o robô se move através das
inform
s maiores que 15 graus em conjunto com superfícies lisas.
Quando existe um grande número de sensores do mesmo tipo (ou até mesmo de tipos
diferentes), uma fo
N
“Vá até o final da rua, vire a esquerda, ande até a segunda esq
lina, vire a direita, ande mais 5 metros, pronto, você achou.“
Muitos avanços tecnológicos vão ser necessários para que seja possível que um robô siga
as instruções de navegação descritas acima. Conforme Borentain (1996), a diferença chave entre
navegação robótica e humana é a quantidade de desigualdades nas capacidades de percepção.
Humanos podem detectar, classificar e identificar características do ambiente em um grande
número de diferentes condições ambientais, independentes da orientação relativa e da distância.
Os robôs atuais são capazes de detectar obstáculos imóveis antes de colidirem, mas tem uma
capacidade limitada de percepção e de decisão. Embora muitas pesquisas sejam feitas para
aprimorar o desempenho da navegação robótica através de
recisa ser feito para que um sistema ideal seja criado.
P
GAÇÃO GLOBAL:
Quando a posição pode ser determinada de forma absoluta, ou rela
e
GAÇÃO LOCAL:
Na navegação local, a posição é sempre relativa a objetos (parados ou em movimento) do
ambiente, e a colisão com esses obj
ações recebidas dos sensores.
23
NAVE
po a capacidade de planejar tarefas e detectar e desviar de obstáculos dinâmicos do
mbiente.
.8 - SISTEMA DE CONTROLE
e
tiliza este conhecimento para que o sistema funcione dentro de parâmetros pré-estabelecidos.
2.9 - STRATÉGIAS DE CONTROLE
trole utilize
sensore
o estado do ambiente e do
sistema
deve ser fornecida aos motores do robô para que ele
atinja a
e ser utilizada para recalcular a força
necessária para que o robô atinja a velocidade desejada.
GAÇÃO HÍBRIDA:
Neste tipo de navegação, as duas primeiras técnicas são integradas, para se obter ao
mesmo tem
a
2
A tarefa do sistema de controle é fazer com que todo o sistema alcance um determinado
estado que pode envolver ou depender de mudanças que ocorrem no ambiente, no sistema
controlado ou devido à interação entre os dois. Logo um sistema de controle é um processo que
utiliza seus sensores para obter informações sobre o sistema controlado e sobre o ambiente
u
E
Junior (2002) cita que um sistema de controle pode utilizar sensores inseridos no sistema
controlado ou no ambiente, mas isso é opcional. É possível que o sistema de con
s somente no sistema controlado, somente no ambiente, ou em lugar nenhum.
Existem diferentes maneiras de se obter informações sobre
controlado. A seguir três técnicas são brevemente descritas:
Sistemas de controle “Open loopnão utilizam nenhum sensor. Por exemplo, considere
um sistema de controle que deve fazer um robô se mover a uma velocidade de 6 quilômetros por
hora. Cálculos baseados no modelo físico do sistema podem ser utilizados para construir um
modelo que pode prever quanto de energia
velocidade e a distância desejada.
Sistemas de controle “Feedforward utilizam sensores somente para perceber o ambiente.
Neste tipo de sistema de controle, medições do ambiente são utilizadas para atualizar variáveis no
modelo do sistema. Utilizando como base o exemplo anterior, podemos adicionar um sensor que
informa a inclinação do terreno. Esta informação pod
24
As técnicas anteriores podem ser utilizadas somente quando o ambiente é praticamente
estático e previsível. Isso não ocorre na maioria dos casos de controle robótico. Em robótica o
sistema de controle mais utilizado é o "feedback".
Um sistema de controle “feedback” ou malha fechada, monitora continuamente a situação
dos sensores e ajusta seus atuadores de acordo. Retornando ao exemplo anterior, um velocímetro
pode ser utilizado ao invés de um sensor de inclinação. Utilizando o velocímetro a diferença entre
a velocidade atual e a velocidade desejada é utilizada para ajustar continuamente a força enviada
para os motores do robô.
2.10 - ARQUITETURAS DE CONTROLE
Heinen (2002) descreve algumas definições tradicionais de arquitetura de software são
descritas a seguir:
“A arquitetura de um sistema de software define este sistema em termos de componentes
computacionais e as interações entre estes componentes.”
“A arquitetura de um robô define como é organizada a tarefa de gerar ações através da
percepção.“
A arquitetura é uma abstração do sistema de controle, enquanto o sistema de controle é a
realização da arquitetura. A seguir são apresentadas as principais arquiteturas utilizadas no
projeto de sistemas de controle para robôs móveis autônomos.
2.10.1 ARQUITETURA HORIZONTAL
A arquitetura tradicional da Inteligência Artificial que é utilizada no controle de sistemas
robóticos é a arquitetura horizontal. Neste tipo de arquitetura as tarefas do sistema de controle são
divididas em várias sub-tarefas baseadas em suas funcionalidades. Uma abordagem comum é
dividir as tarefas como mostra a Fig. 3.2.
25
Fig. 2.6 Arquitetura Horizontal
Conforme Heinen (2002), sistemas de controle baseados nesta arquitetura resolvem suas
tarefas em várias etapas. Primeiro, as entradas sensoriais são utilizadas para modificar a
representação interna do ambiente. O segundo, baseado nesta representação um plano em longo
prazo é elaborado. Isto resulta em uma série de ações que o robô deve executar para alcançar o
seu objetivo. Terceiro esta série de ações é utilizada para comandar os atuadores do robô. Isto
completa o ciclo de controle e o sistema é reiniciado para atingir novos objetivos.
A idéia geral é extrair as informações relevantes do ambiente e construir um modelo o
mais completo possível. Com este modelo estático do mundo real os algoritmos podem planejar
eficientemente as ações necessárias para alcançar os objetivos. Esta abordagem possui diversos
problemas. O que resulta, no mínimo, em um plano defasado em relação à realidade atual, mas
possivelmente em um plano que será extremamente perigoso para o robô e para o ambiente.
2.10.2 ARQUITETURA VERTICAL
Brooks (1986) descreve a arquitetura “subsumption", esta foi a primeira vez que uma
arquitetura vertical foi utilizada. A idéia proposta por Brooks, é que ao invés de as tarefas serem
divididas em função da funcionalidade, a divisão deveria ser feita baseando-se em
comportamentos que executam tarefas, organizados em camadas (layers) como mostra a Fig. 3.3.
26
Fig. 2.7 Arquitetura Vertical
Um sistema de controle de robô móvel baseado em comportamentos é constituído de
diversos comportamentos executados em paralelo. Cada comportamento calcula suas saídas
diretamente para os atuadores utilizando as entradas sensoriais. As saídas sugeridas pelo
comportamento com a mais alta prioridade são então utilizadas para controlar os atuadores do
robô.
A mudança mais significativa que esta nova arquitetura introduziu segundo Heinen
(2002), foi que uma entrada sensorial não precisa mais passar por uma série de camadas de
processamento antes de se transformar em uma saída para os atuadores. Em uma abordagem
baseada em comportamentos, cada um destes é autocontido. Somente as entradas sensoriais
relevantes para a tarefa executada por aquele determinado comportamento são utilizadas, não
para atualizar uma representação interna, mas para gerar diretamente as saídas para os atuadores.
Isto torna a ligação entre os sensores e os atuadores mais forte.
Comportamentos de baixo nível, como os que evitam obstáculos, têm um tempo de
resposta rápido. Isto reduz o tempo que os sensores do robô ficam cegos, possibilitando um
desempenho em tempo real. Apesar desta arquitetura ter demonstrado com muito sucesso a
execução de comportamentos autônomos, é difícil coordenar os comportamentos para executar
tarefas muito complexas, como por exemplo, a navegação global.
2.10.3 ARQUITETURA HÍBRIDA
Heinen (2002) relata que as arquiteturas híbridas integram um componente com
arquitetura horizontal para o planejamento em longo prazo e resolução de problemas com um
27
componente com arquitetura vertical para o controle em tempo real. Uma arquitetura híbrida
pode ser enquadrada entre a vertical e a horizontal por combinar aspectos de ambas. No entanto,
as arquiteturas híbridas também podem ser vistas como o oposto das arquiteturas vertical e
horizontal. De acordo com a abordagem híbrida nenhuma estratégia isolada seria adequada para a
execução de todas as tarefas relevantes para um sistema de controle robótico.
2.11 - LÓGICA NEBULOSA
Conforme Kosko (1992) a teoria nebulosa foi apresentada em 1964 por Lotfi A. Zadeh,
professor no departamento de engenharia elétrica e ciências da computação da Universidade da
Califórnia, em Berkeley, quando ele trabalhava com problemas de classificações de conjuntos
que não possuíam fronteiras bem definidas (ou seja, a transição entre os conjuntos é suave e não
abrupta). É importante, porém, ressaltar que no decurso da ciência outros pesquisadores
demonstraram seu desconforto com relação à lógica binária, relatando sua fragilidade para lidar
com situações mais realistas.
Em muitos problemas em física e em matemática nós não temos dificuldade em classificar
elementos como pertencentes ou não a um dado conjunto clássico.
Por exemplo, pode-se afirmar sem receio que o número cinco pertence ao conjunto dos
números naturais e que o número menos cinco não pertence a este mesmo conjunto. Este é um
caso sobre o qual não se tem duvidas, sendo a lógica booleana devidamente aplicada. No entanto,
pode-se discordar quanto ao fato de o número quatro e cinco pertencer ou não ao conjunto dos
números aproximadamente iguais a cinco. Neste caso a resposta não é única e objetiva, pertencer
ou não poderá depender do tipo de problema que está sendo analisado. Por exemplo, o número
quatro e meio foi à média de provas de um aluno extremamente aplicado que esta passando por
sérios problemas de saúde e que, em razão disso, apresentou dificuldades para realizar as últimas
provas. O professor nesta situação poderá ponderar sobre a capacidade do aluno, sua dedicação
durante o curso e sua realidade optando por aprová-lo, ainda que a media necessária seja cinco.
Neste caso o número quatro e meio pode ser visto como pertencendo ao conjunto dos números
aproximadamente iguais a cinco. De fato, mesmo a aplicação numérica de notas pode não ser um
método totalmente objetivo de avaliação.
28
Cruz (2004) comenta que embora conjuntos clássicos sejam à base de toda teoria
matemática moderna, eles apresentam dificuldades quando aplicados a uma enorme classe de
problemas do mundo real, entre eles estão os problemas nebulosos. A utilidade da lógica e da
teoria dos conjuntos para modelagem de sistemas é indiscutível. No entanto, há sistemas
complexos, onde não é possível conseguir equações que descrevam completamente ou casos onde
a dicotomia da teoria dos conjuntos não consegue descrever a situação.
Cox (1995) relata que a intenção de Zadeh foi flexibilizar a pertinência de elementos aos
conjuntos criando a idéia de grau de pertinência. Dessa forma, um elemento poderia pertencer
parcialmente a um dado conjunto. Esta sua idéia foi publicada em 1965, sendo este artigo
considerado o marco do nascimento da teoria de conjuntos nebulosos.
Cruz (2004) cita que o termo “fuzzy” significa, vago, impreciso, nebuloso, difuso, e se
refere ao fato de, em muitos casos, não conhecermos completamente os sistemas que estamos
analisando, ou seja, seus limites são nebulosos, pouco definidos. Se se deseja construir, por
exemplo, o conjunto dos números aproximadamente iguais a cinco, citado acima, como se deve
proceder? Será que os números dois e 10 pertenceriam a este conjunto? Claramente, esta resposta
dependerá do contexto. O que Zadeh propõe, comenta Cox (1995), é considerar uma função de
pertinência que forneça o grau de pertinência dos diversos números ao conjunto considerado.
Cox (1995) relata que a teoria da lógica nebulosa enfrentou forte resistência por parte da
comunidade científica no seu início, principalmente por parte dos estatísticos norte americanos.
Entretanto, a despeito de todo preconceito muitos pesquisadores vislumbraram as possibilidades
que esta teoria oferecia e trabalhos surgiram em todo o mundo, particularmente no Japão onde a
lógica nebulosa conseguiu desenvolver-se.
Em 1972 formou-se no Japão o primeiro grupo de pesquisas em sistemas nebulosos,
coordenado pelo professor Toshiro Terano, e em 1974 iniciou-se um importante capítulo no
desenvolvimento desta teoria com a apresentação do primeiro controlador nebuloso criado por E.
Mamdani, no Reino Unido. A partir de então vários foram os pesquisadores que buscaram aplicar
a teoria da lógica nebulosa para controlar sistemas em engenharia. Em 1976 aconteceu a primeira
aplicação industrial da lógica nebulosa, desenvolvida pelo Circle Cement e SIRA, na Dinamarca,
que consistiu de um controlador nebuloso que incorporava o conhecimento e a experiência dos
operários para controlar os fornos das fábricas. Em 1977, Didie Dubois aplicou os conjuntos
29
nebulosos em um estudo sobre condições de tráfego e neste mesmo ano surgiu o primeiro sistema
especialista.
Em 1985 foi desenvolvido o primeiro “chip fuzzy” por Masaki Togai e
HiroyukeWatanabe, no laboratório Bell (EUA). Em 1987 foi inaugurado com sucesso o primeiro
trem controlado com lógica nebulosa, no sistema do metrô de Sendai, no Japão. Foi também
neste ano que a Yamaha desenvolveu seu helicóptero não-tripulado, Yamaha-50, totalmente
controlado por um controlador nebuloso, dando origem a era do desenvolvimento tecnológico
proporcionado por esta teoria. Em 1988 começou a operar no Yamaichi Fuzzy Fund o primeiro
sistema de comércio financeiro nebuloso. Mas foi em 1990 que esta teoria atingiu a popularidade
com o lançamento no mercado da primeira máquina de lavar roupas, da Matsushita Electric
Industrial Co. marcando o início do desenvolvimento de produtos de consumo. Hoje é possível
encontrar, principalmente no Japão, muitos eletrodomésticos cujo sistema é baseado em controles
nebulosos (televisão, câmera fotográfica, panela para cozimento de arroz, vídeos, etc.) e existem
atualmente várias empresas (Siemens, Daimler-Benz, Klockner-Moeller, SGS-Thomson, General
Motors, Motorola, Hewlett-Packard, etc.) que possuem laboratórios de pesquisa em lógica
nebulosa para desenvolvimento de seus produtos.
2.11.1 CONJUNTOS NEBULOSOS
Kartalopoulus (1996) descreve que na teoria clássica dos conjuntos, os conjuntos são ditos
"crisp", de tal forma que um dado elemento do universo em discurso (domínio) pertence ou não
pertence ao referido conjunto
. Na teoria dos conjuntos nebulosos existe um grau de pertinência de
cada elemento a um determinado conjunto.
Conforme Sandri (1999) um conjunto nebuloso A, definido no universo de discurso U, é
caracterizado por uma função de pertinência µA, a qual mapeia os elementos de U para o
intervalo [0 , 1].
µA:U => [0 , 1]
Desta forma, a função de pertinência associa com cada elemento x pertencente a U
um número real µA(x) no intervalo [0, 1], que representa o grau de possibilidade de que o
elemento x venha a pertencer ao conjunto A, isto é, o quanto é possível para o elemento x
pertencer ao conjunto A.
µA (x) = 1 indica que x é completamente compatível com A;
30
µA (x) = 0 indica que x é completamente incompatível com A;
0 < µA (x) < 1 indica que x é parcialmente compatível com A, com grau µA (x).
Um conjunto A da teoria dos conjuntos clássica pode ser visto como um conjunto
nebuloso específico, ou seja, a pertinência é do tipo “tudo ou nada”, “sim ou não”, e não gradual
como para os conjuntos nebulosos.
A cardinalidade de um conjunto nebuloso A é expressa como:
Para um universo de
discurso discreto tem-se:
xi
xiA
A
Xxi
)(
= (1)
Para um universo de
discurso continuo:
xi
xiA
A
X
)(
= (2)
2.11.2 UNIÃO DE DOIS CONJUNTOS NEBULOSOS
Sejam A e B dois conjuntos nebulosos no universo U com funções de pertinência µA(x) e
µB(x), respectivamente. A
união dos conjuntos A e B se define por:
U} x | µB(x)}/x) ),{(max{µA(x
= BA
A
função de pertinência de x ao conjunto união de A e B é:
µB(x)} max{µA(x),=
BA
na qual a função max{} seleciona o valor máximo dos graus de pertinência. Na figura 2.8
podemos ver um exemplo da união de dois conjuntos nebulosos.
Figura 2.8: Função de pertinência e união dos conjuntos nebulosos A e B
31
2.11.3 INTERSECÇÃO DE DOIS CONJUNTOS NEBULOSOS
Sejam A e B dois conjuntos nebulosos no universo U com funções de pertinência µA(x) e
µB(x) respectivamente, a
intersecção dos conjuntos A e B se define por:
U} x | µB(x)}/x) ),{(min{µA(x
= BA
A
função de pertinência de x ao conjunto intersecção de A e B é:
µB(x)} min{µA(x),=
BA
em que a função min
{} seleciona o valor mínimo dos graus de pertinência. A figura 2.9
mostra o gráfico da função de pertinência da intersecção de dois conjuntos nebulosos.
Figura 2.9: Função de pertinência e intersecção dos conjuntos nebulosos A e B
2.11.4 COMPLEMENTO DE UM CONJUNTO NEBULOSO
Seja A um conjunto nebuloso no universo U com uma função de pertinência µA(x), o
complemento do conjunto A é o conjunto A definido por:
U} x | µA(x)/x)1{( =A
A
função de pertinência de x ao conjunto A é:
µA(x)1µA(x) =
A figura 2.10 mostra os gráficos da função de pertinência de dois conjuntos nebulosos e
seus conjuntos complementares.
32
Figura 2.10: Função de pertinência e complemento dos conjuntos nebulosos A e B
Shaw (1999) comenta que um conceito relacionado com conjuntos nebulosos é o de
variável lingüística. Entende-se por variável um identificador (conjunto de termos), que pode
assumir um dentre vários valores, chamados de valores nebulosos.
Formalmente, uma
variável lingüística é caracterizada pela quíntupla {X, T(X), U,
G, M}, onde X é o nome do conjunto de termos, U o universo de discurso, G uma gramática para
gerar os termos T(X), e M o significado dos termos lingüísticos, representado através de
conjuntos nebulosos. Por exemplo, se X for velocidade, então seu conjunto de termos T(X)
poderia ser:
T(velocidade)={baixa, média, rápida}
Sobre o universo de discurso U=[0,100], onde baixa, média e rápida são termos, ou
variáveis lingüísticas da grandeza velocidade.
Figura. 2.11 Conjuntos nebulosos para velocidade
33
2.11.5 CONJUNTO DE NÍVEIS
O Conjunto de Níveis (Λ) de um conjunto nebuloso A corresponde a um conjunto que
contém todos os valores α [0,1] e que representam Cortes α de A distintos. O Conjunto de
Níveis do conjunto nebuloso A é representado formalmente por:
ΛA = {
α
| A(x) = α para algum x X
2.11.6 SUPORTE
O Suporte de um conjunto nebuloso A, em um conjunto universo X, é o Conjunto
Tradicional que contém todos os elementos de X que possuem grau de pertinência diferente de
zero em A. Claramente, o Suporte de A é exatamente o mesmo que o Corte α forte de A para α =
0. Vários símbolos especiais costumam ser usados para representar o Suporte de um conjunto,
tais como: S(A) ou supp(A). Este trabalho usará a simbologia de
0+
A para esta representação.
0+
A = {x X | A(x) > 0}
2.11.7 ALTURA
A Altura (h) de um conjunto nebuloso A corresponde ao seu maior grau de pertinência,
entre todos os elementos do conjunto.
h(A) = sup
xX
A(x)
2.11.8 NORMALIZAÇÃO
Um conjunto nebuloso A é chamado de Normal quando a sua Altura é igual a 1, ou seja,
pelo menos um grau de pertinência, dos elementos do conjunto, possui valor máximo, enquanto
que os conjuntos que não possuem Altura igual a um são chamados de subnormal. Portanto:
A é dito
normal se h(A) = 1
A é dito
subnormal se h(A) < 1
34
Caso um conjunto nebuloso possua apenas um elemento com grau de pertinência igual a
um, este elemento é denominado
protótipo do conjunto. Um conjunto nebuloso não normalizado
pode ser normalizado por meio da divisão dos graus de pertinência de cada elemento, pelo maior
grau de pertinência encontrado no conjunto.
Definidas as características especiais dos conjuntos nebulosos se faz necessário apresentar
as Proposições Nebuloso.
2.11.9 IMPLICAÇÃO LÓGICA E REGRAS DE INFERÊNCIA
Segundo Shaw (1999), a implicação lógica consiste na formulação de uma conexão entre
causa e efeito, ou uma condição e sua conseqüência, que é um aspecto da forma de pensar dos
seres humanos. Consciente ou inconscientemente certas regras de inferência segue da seguinte
forma:
SE causa1=A e causa2=B ENTÃO efeito=C
onde A, B e C são conjuntos. Na lógica nebulosa há um raciocínio com números e
conjuntos nebulosos, e as afirmações podem ser consideradas como regras práticas, como nas
seguintes situações:
SE T = quente ENTÃO P = esfriar;
SE T = normal ENTÃO P = zero;
SE T = frio ENTÃO P = esquentar;
SE Temperatura é fria E Pressão é baixa ENTÃO Ação da válvula é positiva grande.
onde os termos QUENTE e ESFRIAR representam conjuntos nebulosos. O fato de se
implantar inteligência no controlador consiste então em associar termos nebulosos através de
inferências nebulosas, expressa na estrutura SE......ENTÃO.
2.11.10 NÚMERO DE REGRAS
O número de regras que requer um controlador difuso é encontrado, multiplicando-se o
número de termos nebulosos das variáveis de entrada. Deste modo, as regras cobrirão todas as
possíveis combinações provenientes, das distintas entradas. Por exemplo, para um sistema com
duas variáveis de entrada, cada uma com 5 termos nebulosos, existem 5×5=25 combinações de
entrada e, portanto, 25 regras de controle possíveis.
35
2.11.11 BASE DE REGRAS
Para desenhar uma base de regras, utiliza-se uma matriz que cubra todas as possíveis
combinações das entradas. Para um sistema com duas entradas, atribui-se uma para cada eixo da
matriz. Em cada célula da matriz, escreve-se a ação de controle sugerida pela regra que possua
essa combinação de entradas como premissa. Da matriz pode derivar-se todas as regras que
formarão uma base completa. Se o sistema conta com três entradas utiliza-se uma matriz para
cada termo lingüístico da terceira variável. Para o exemplo do pêndulo invertido, tem-se a
seguinte matriz dada na figura 2.12.
Figura 2.12: Desenho de uma base de regras.
Em alguns casos, é possível utilizar menos quantidade de regras, mas não é recomendável
fazê-lo, pois elas representam conhecimento. Se alguma for eliminada, remove-se conhecimento
do sistema, o qual pode tornar-se importante se o sistema for modificado posteriormente.
2.11.12 FUZZIFICAÇÃO E DEFUZZIFICAÇÃO NATURAL
Conforme Kartalopoulos (1996) as operações das atividades humanas de tomar decisão,
pensar, processar uma informação e em particular nossa linguagem requer uma aproximação de
dados, através de termos vagos ou imprecisos. Quando dizemos “Até mais”, “Um pouco mais” ou
36
“Não me sinto muito bem” estamos utilizando expressões nebulosas, imprecisas. Uma pessoa que
esteja numa função de operador de processos não precisa de um valor exato e definido para um
variável, por exemplo, velocidade. Ele consegue classificar a informação de velocidade em
conjuntos, tipo BAIXA, MÉDIA OU RÁPIDA. Esses conjuntos representam valores
“fuzzificados” dos valores exatos de velocidade. O ser humano trabalha naturalmente com
características incertas, mas máquinas, equipamentos e controles industriais precisam de um
número real que represente o valor de referencia necessário. Então faz-se necessário a conversão
do valor nebuloso, resultante da saída de inferência, para um número real. Esse processo é
chamado de defuzzificação.
Shaw (1999) relata que há uma característica que em sistemas complexos a precisão
matemática perde seu significado. Em Princípios da Incompatibilidade, Zadeh afirma que
“Conforme a complexidade de um sistema aumenta, nossa habilidade de fazer afirmações
precisas e significativas sobre seu comportamento diminui, até um limiar em que imprecisão e
relevância tornam-se praticamente características mutuamente exclusivas”.
2.11.13 ARQUITETURA DE UM SISTEMA NEBULOSO
A configuração básica de um controlador nebuloso é composta pelos blocos funcionais
como apresenta-se na figura 2.13.
Figura 2.13: Arquitetura básica de um controlador nebuloso
37
2.11.14 INTERFACE DE FUZZIFICAÇÃO
Kosko (1992) comenta que valores discretos “crisp” das variáveis de entrada geralmente
são provenientes de sensores das grandezas físicas ou de dispositivos de entrada
computadorizados. Um fator de escala pode ser usado para converter valores reais de entrada para
outros que sejam cobertos pelos universos de discurso pré-definidos para cada variável de
entrada. Além disso, a interface de fuzzificação utiliza as funções de pertinência contidas na base
de conhecimento, convertendo os sinais de entrada em um intervalo
[0, 1] que pode estar
associado a um conjunto nebuloso, grupos qualitativos.
A figura 2.14 ilustra conjuntos nebulosos de temperatura, fria, fresca, morna e quente.
Para cada valor de temperatura existe um grau de pertinência correspondente para cada um desses
conjuntos, indicando o quanto cada valor pertence a um determinado conjunto. O grau de
pertinência é determinado por uma função de pertinência, que é definida baseando-se na
experiência ou intuição.
Figura 2.14: Conjuntos nebulosos da variável temperatura
Oliveira (2003) cita que o número de funções de pertinência de conjuntos nebulosos e a
forma escolhida dependem de alguns fatores, tais como: precisão requerida, a capacidade de dar a
resposta desejada e a estabilidade do sistema, facilidade de implementação, manipulação,
manutenção, e assim por diante. As funções de pertinência trapezoidal e triangular são as mais
comumente utilizadas.
Para uma entrada do sistema, o conjunto nebuloso deve cobrir o eixo inteiro dos X’s, ou
universo de discurso. O mapeamento para o eixo dos Y’s varia de 0 a 1 e representa o grau com
38
que um valor de entrada é um membro daquele, particular, conjunto nebuloso. A sobreposição
dos limites é desejável e também fundamental para o funcionamento harmonioso do sistema. Esta
sobreposição permite a pertinência em múltiplos conjuntos, mesmo que aparentemente
contraditórios. Na figura 2.14, o grau 63 da Temperatura pode ser ambos, fresco e morno, mas
com um maior grau de pertinência para fresco. Uma sobreposição de 25% entre conjuntos
nebulosos adjacentes é uma boa regra prática.
O processo de fuzzificação permite que uma forte ligação ocorra entre os termos
lingüísticos (frio, aproximadamente, ativo, grande) e suas funções de pertinência fazendo os
termos significativos para um computador.
Uma vez que o sistema esteja em operação, às funções de pertinência não mudam. Formas
simples como de trapézios e triângulos são freqüentemente usadas para definir pertinência em
conjuntos nebulosos, mas qualquer função adequada pode ser usada.
A figura 2.15 ilustra os termos necessários para o cálculo do grau de pertinência para o
caso trapezoidal.
Figura 2.15: Função de pertinência trapezoidal
2.11.15 GRAU DE PERTINÊNCIA
Miranda, Junior & Kronbauer (2003) descreve que para calcular o grau de pertinência,
conforme figura 2.15, primeiro calculam-se os termos delta1 e delta2, cálculo este que permite
verificar se uma entrada dada pertence ou não ao conjunto nebuloso, para então, realizar ou não
proceder ao cálculo do grau de pertinência.
delta1 = (x ponto1) (3)
delta2 = (ponto2 x) (4)
39
SE delta1 0ou delta2 0 ENTÃO
grau de pertinência = 0
SENÃO
grau de pertinência = min{delta1*inclinação1, delta2*inclinação2, limite superior} (5)
Este processamento transformou informações quantitativas em informações qualitativas, e
é considerado um processo de generalização. Em inglês ele é chamado de “fuzzification”.
2.11.16 BASE DE REGRAS OU DE CONHECIMENTO
Shaw (1999) descreve que a base de conhecimento representa o modelo do sistema a ser
controlado. Consistindo em uma base de dados (funções de pertinência lingüísticas) e uma base
de regras nebulosas lingüísticas que têm a forma de declarações SE-ENTÃO.
A base de dados fornece as definições numéricas às funções de pertinência usadas no
conjunto de regras nebulosas. A base de regras caracteriza os objetivos de controle e a estratégia
de controle utilizada por especialistas na área, por meio de um conjunto de regras de controle em
geral lingüísticas.
A lógica de tomada de decisões, incorporada na estrutura de inferência da base de regras,
usa implicações nebulosas para simular decisões humanas. Ela gera ações de controle.
Conforme Miranda, Junior & Kronbauer (2003) a parte SE, contém uma ou mais
condições chamadas antecedentes e a parte ENTÃO, contém uma ou mais ações chamadas
conseqüentes. Os antecedentes das regras correspondem, diretamente, aos graus de pertinência
calculados durante o processo de fuzzificação.
Para exemplificar a utilização da base de regras, utilizar-se-á o controle de uma caldeira,
na qual se estabelece uma relação entre temperatura interna da unidade e a vazão de água
necessária para o seu resfriamento, o que produz as seguintes regras:
Se Temperatura é alta Então Vazão é alta;
Se Temperatura é baixa Então Vazão é baixa;
Se Temperatura é estável Então Vazão é normal.
O exemplo dado é capaz de manter estável a temperatura em uma caldeira, desde que os
conjuntos nebulosos, nele envolvidos, tenham uma definição condizente com a realidade.
40
Este conjunto demonstra que a base de regras nebulosas é bastante intuitiva, sob o ponto
de vista humano, é como, por exemplo, estacionar um veículo em uma vaga. Neste caso, não
existe uma formulação matemática explícita envolvida na solução do problema, mas sim, a
representação de um conhecimento adquirido pelo operador.
Figura 2.16: Sistema nebuloso do mercado de ações
Cox (1995) cita que o projeto da base de conhecimentos deve-se levar em conta, quais
conjuntos de variáveis lingüísticas será escolhido, de forma que descrevam muito bem os
parâmetros, tanto os parâmetros de entrada quanto os de saída, de controle do processo,
empregando-se uma terminologia adequada.
A seleção do intervalo de valores, para cada termo das variáveis de entrada/ saída, é muito
importante para proporcionar a “suavidade” do controle. E a base de conhecimentos deverá ser
elaborada considerando a descrição lingüística dos parâmetros.
41
2.11.17 LÓGICA DE TOMADA DE DECISÃO
Conforme Oliveira (2003), a lógica de tomada de decisão, incorporada na estrutura de
inferência da base de regras, usa implicações nebulosas para simular tomadas de decisões
humanas. Enquanto as regras são avaliadas, calculam-se os coeficientes de disparo que estas terão
para determinar as saídas nebulosas. Uma forma é usar a função mínimo, de tal modo que a força
de uma regra é determinada com o seu antecedente com menor grau de pertinência.
Freqüentemente, mais do que uma regra se aplica à mesma ação específica, neste caso, a
prática comum é usar ou a mais forte ou a mais verdadeira, conforme mostrado na figura 2.17.
Figura 2.17: Avaliação de regras computadas
O valor de disparo das regras 1 e 2 pode calcular-se por:
)0()0(
111
yx
BA
α
=
)0()0(
222
yx
BA
α
=
Ou seja,
)}0(),0(min{
111
yx
BA
α
=
)}0(),0(min{
222
yx
BA
α
=
Os valores de
1
α
e
2
α
são denominados graus de pertinência de disparo ou coeficientes
de disparo para as regras. Todas as regras, para as quais o coeficiente de disparo for maior que
zero, são ditas regras que disparam para as entradas atuais, isto é, no caso x0, y0. Isto quer dizer
que elas vão contribuir para o cálculo da saída correspondente do sistema difuso.
42
Os valores de controle para as regras são calculados utilizando-se os coeficientes de
disparo e os valores do grau de pertinência dos conseqüentes das regras, ou seja:
µ*C1(z) = min{
1
α
, µC1(z)}
µ*C2(z) = min{
2
α
, µC2(z)}
para todo z, em que z é elemento do universo de discurso da variável z do conseqüente.
Uma operação global de união vai compor um conjunto nebuloso para cada variável de
saída, contendo informações sobre todas as regras disparadas para as entradas atuais, x0 e y0. No
exemplo, com as duas regras, só existe a variável z de saída.
Portanto, o processo de solução de conflito produz:
µC(z) = max{µ*C1(z), µ*C2(z)} = max{min{
1
α
, µC1(z)}, min{
2
α
, µC2(z)}}
em que µC(z) é o melhor ponto da função de pertinência para as duas conclusões. O
resultado desta operação é uma função de pertinência que sofrerá a defuzzificação.
De acordo com Miranda e Kronbauer (2003) este processo de solução de conflito
corresponde ao modelo de inferência nebuloso proposto por Mamdani. Transforma uma
informação qualitativa em outra informação qualitativa, por meio de uma conversão. O conjunto
nebuloso gerado durante o processo de inferência pode então ser utilizado diretamente em um
diagnóstico qualitativo de tomada de decisão, ou será convertido em um valor escalar por meio
de atuadores convencionais, no caso de um sistema de controle.
2.11.18 DEFUZZIFICAÇÃO
Shaw (1999) descreve que defuzzificação consiste em obter um único valor discreto,
utilizável numa ação de controle concreto no mundo real.
Esta função é necessária apenas quando a saída do controlador tiver que ser interpretada
como uma função de controle discreta. Alguns sistemas possuem saídas qualitativas não
necessitando de defuzzificação.
Os métodos mais utilizados são: o do centro de área, a média dos máximos.
MÉTODO DO CENTRO DA ÁREA - COA
O método do centro da área é freqüentemente chamado de método do centro de gravidade,
ou centróide. Inicialmente, um ponto centróide sobre o eixo dos X’s é determinado para cada
43
função de pertinência de saída. Então, as funções de pertinência são limitadas em altura pela
força da regra aplicada, e as áreas das funções de pertinência são calculadas. Finalmente, a saída
sofre a defuzzificação, derivada por uma média ponderada dos pontos centróides do eixo dos X’s
e as áreas calculadas, com as áreas servindo como pesos.
O método do centro da área calcula para um dado conjunto nebuloso de saída, proveniente
de uma base de conhecimento processada, a abscissa (no universo de discurso definido para a
variável em questão) do ponto de centro de área correspondente, e a utiliza como valor escalar de
saída.
O método do centro da área calcula o centro de gravidade para a ação de controle,
utilizando a seguinte expressão:
(6)
O termo
q corresponde ao número de níveis de quantização de saída, ou seja; é o número
de regras cujo o valor da função de pertinência é maior do que zero,
zj é a soma das saídas de
controle no nível de quantização
j, e µC(zj) representa o valor da função de pertinência em C O
método do centro de gravidade é ilustrado na Figura 2.18.
44
Figura 2.18: Defuzzificação utilizando o método do centro da área (COA)
MÉTODO DA MÉDIA DOS MÁXIMOS - MOM
Neste método os picos das funções de pertinência representados no universo de discurso
da variável de saída são usados, enquanto ignoram-se as áreas das funções de pertinência. Neste
caso, o valor para realizar a ação de controle é obtido tomando-se o ponto médio dos valores de
pertinência máximos.
Para este caso, calcula-se:
(7)
Em que
l é o número de valores quantizados, cuja função de pertinência é máxima.
Conforme Oliveira (2003), no método da média dos máximos, o valor numérico da saída
corresponde ao ponto do universo de discurso que corresponde à média dos pontos de máximo
locais da função de pertinência do conjunto de saída, produzida pelo processo de inferência.
Figura 2.19: Defuzzificação utilizando o método da média dos máximos (MOM)
2.11.19 MÁQUINA DE INFERÊNCIA
Oliveira (2003) também descreve o modelo de inferência de Mamdani, que simplifica o
modelo de arquitetura visto na Figura 2.13. Como a maioria das aplicações de interesse possui
45
sistemas convencionais de aquisição e atuação baseados em grandezas numéricas, o modelo de
Mamdani inclui módulos de interface que transformam as variáveis de entrada em conjuntos
nebulosos equivalentes e, posteriormente, as variáveis nebulosas geradas em variáveis numéricas
proporcionais, adequadas para os sistemas de atuação existentes.
Na figura 2.20 é mostrado um diagrama típico de um sistema de processamento de
conhecimento nebulosa que utiliza o método de inferência de Mamdani.
Figura 2.20: Diagrama típico de um sistema de processamento
Miranda, Junior & Kronbauer (2003) comenta que é na máquina de inferência que cada
proposição nebulosa é traduzida matematicamente por meio das técnicas de raciocínio
aproximado. Os operadores matemáticos serão selecionados para definir a relação nebulosa que
modela a base de regras. Desta forma, a máquina de inferência nebulosa é de fundamental
importância para o sucesso do sistema nebulosa, já que fornece a saída a partir de cada entrada
nebulosa e da relação definida pela base de regras. Apresentaremos aqui um dos métodos
particulares de Inferência nebulosa: o Método de Mamdani.
MÉTODO DE MAMDANI
Uma regra SE (antecedente) ENTÃO (conseqüente) é definida pelo produto cartesiano
nebuloso dos conjuntos nebulosos que compõem o antecedente e o conseqüente da regra. O
método de Mamdani agrega as regras através do operador lógico OU, que é modelado pelo
operador máximo e, em cada regra, o operador lógico E é modelado pelo operador mínimo (regra
de composição max-min).
46
CAPITULO 3 – CRIAÇÃO DE UM GRUPO DE ESTUDOS EM ROBÓTICA
3.1 - PEDAGOGIA DE PROJETOS
Giacaglia & Abud (2003) comenta que os recursos tradicionais utilizados em sala de aula
são muito limitados para abordar os conceitos gerais de todas as disciplinas e não favorecem a
integração entre elas.
Chella (2002) cita que os princípios derivados da teoria de Piaget sobre o
desenvolvimento cognitivo, e revisados por Seymour Papert, sugerem que o centro do processo
relacionado ao aprendizado é a participação ativa do aprendiz, que amplia seus conhecimentos
por meio da construção e manipulação de objetos significativos para o próprio aprendiz e a
comunidade que o cerca..
Giacaglia & Abud (2003) enfatizam que uma das formas hoje consideradas importantes
para a sedimentação dos conceitos essenciais para a participação na sociedade é a organização
das atividades diferenciadas dentro e fora da sala de aula, tais como a participação em pesquisa
de toda natureza, congressos, em reuniões cientificas, culturais tecnológicas e, enfim, em tudo
que possa contribuir para uma compreensão significativa dos fenômenos naturais e artificiais,
essencialmente inter e multidisciplinares.
Dentre essas atividades estimulantes um trabalho que destaca a importância de
desenvolver tarefas coletivas dos alunos, orientados por professores, tarefas essas que
denominada de projetos.
A lei de diretrizes e bases da educação nacional, LDB, (Lei Darcy Ribeiro, 1996), lançou
bases oficiais para que a contextualização, a participação e a multidisciplinaridade venham a
construir um processo normal no sistema escolar. Na dinamização de seus conhecimentos
específicos, estabelece relações com o curso e com as demais disciplinas de sustentação e/ ou de
continuidade, tornando claros e objetivos os componentes dessa multidisciplinaridade. O
individuo deve ter uma sólida formação sendo capaz de fazer pleno uso daquilo que aprendeu
para atividade de seu trabalho.
A utilização de atividade de robótica no ambiente educacional possibilita a abordagem
concreta e de forma contextualizada dos diversos conceitos utilizados em sala de aula,
estabelecendo ligação entre os conteúdos, promovendo, desta maneira, a interdisciplinaridade e
47
motivando a participação ativa do estudante e ampliando seus conhecimentos através da
construção e manipulação de objetos que tenham significado para o aluno.
Eles aprendem a conduzir um projeto, desde a concepção, pesquisa, crítica, reformulação,
implementação, avaliação e apresentação aos colegas, procurando atender prazos estabelecidos e
sempre contemplando trabalho em equipe.
3.2 - ROBÓTICA EDUCACIONAL
A robótica educacional é uma disciplina que tem por objetivo a geração de ambientes de
aprendizagem baseado na atividade escolar, dando oportunidade ao aluno de manusear
concretamente idéias e conceitos, dentro de um contexto que estimule a interdisciplinaridade.
Tendo como referencial teórico à abordagem construtivista que considera a aprendizagem como
resultado da relação sujeito/ objeto, onde os dois termos não se opõem, mas se solidarizam
formando um todo único.
Chella (2002) relata que estudos realizados por vários pesquisadores têm demonstrado
que atividades com robótica educacional propiciam meios para que o aprendiz formule hipóteses
relacionadas ao seu objeto de investigação, explore idéias que o levem a discutir e colocar em
prática a sua própria maneira de pensar, a validar resultados e construir argumentos que possam
ser aplicados.
Para que um dispositivo, criado pelo aprendiz, funcione corretamente, é preciso que certos
princípios sejam conhecidos e respeitados. Por exemplo, na construção de um “carrinho”,
princípios da física como atrito e lei da gravidade, devem ser aplicados.
Os motores usados na tração do carrinho podem girar numa velocidade alta. Neste caso, o
carro se deslocará rapidamente, mas terá conseqüentemente um torque menor, onde uma pequena
inclinação fará com que ele pare. A solução para este problema é a utilização de engrenagens ou
polias. Contudo, para usá-las eficazmente é preciso conhecer os conceitos sobre relações de
engrenagens.
Conceitos que não estão relacionados às ciências exatas também têm sido explorados a
partir de atividades com robótica. No programa de pesquisa “Con-science” desenvolvido no MIT
(Massachussetts Institute of Technology), a construção e automação de dispositivos robóticos
48
têm sido utilizadas para desenvolver temas como a representação de símbolos e valores, e evocar
a reflexão e cooperação entre grupos de aprendizes.
Chella (2002) também comenta que oficinas de robótica educacional, com professores de
ensino fundamental, resultaram no desenvolvimento de alguns projetos onde a construção de
maquetes automatizadas representando, por exemplo, um parque de diversões, um ambiente rural
com roda d´água e monjolo, ou o sistema solar, criaram condições para que conceitos
relacionados a história, geografia, ecologia e astronomia pudessem ser abordados.
Assim, pode-se desenvolver e explorar o potencial criativo de cada aluno à medida que se
tem a oportunidade de trabalhar com diferentes materiais, não ficando restrito a modelos
previamente fabricados.
Através de material alternativo como sucatas, há possibilidade e oportunidade, através da
robótica, criar situações que estimulem:
O raciocínio e a lógica na construção de protótipos que imitam a realidade;
A interdisciplinaridade, promovendo a integração de conceitos de diversas áreas,
tais como: matemática, física, português, eletricidade, eletrônica, mecânica,
biologia, entre outras.
O desenvolvimento de aspectos ligados ao planejamento e organização de
projetos.
A criatividade tanto na concepção de robôs, como no aproveitamento de materiais
de desperdício (recicláveis);
Os alunos a se depararem com problemas sistêmicos onde várias partes interagem
e várias soluções são possíveis.
A autonomia;
Incentivando o trabalho em equipe;
Motivar o estudo e análise de máquinas e mecanismos existentes no cotidiano do
aluno de modo a reproduzir o seu funcionamento.
Alunos do curso de ciência da computação têm utilizado a robótica para estudar de
maneira concreta algoritmos de inteligência artificial, trabalho que envolve a aplicação de
diferentes heurísticas para resolver problemas relacionados à montagem de protótipos, e
identificar soluções para o programa.
49
3.3 - FIRST
A organização FIRST (For Inspiration and Recognition of Science and
Technology) foi fundada em 1989 por Dean Kamen, inventor do Segway Human Transporter.
Idealizada de maneira que os Estados Unidos mantivessem sua ligação tecnológica, e isso serviu
de inspiração para estudantes de ensino médio seguissem suas carreiras na ciência e tecnologia. A
idéia fundamental era que os estudantes competissem com regras de desenvolvimento utilizadas
na indústria em um tipo de esporte, uma competição de robótica com atmosfera de “final de
campeonato de futebol".
A FIRST opera o FIRST Robotics Competition, um dos maiores torneios de
robótica para adolescentes, além de operar o FIRST LEGO League, um programa para crianças
do ensino fundamental, e o FIRST Place, um centro de ciência inovadora e tecnológica.
O programa expandiu através de parcerias com instituições educacionais e governos.
Muitas companhias fornecem financiamento, doações e voluntários para suportar o programa.
Faculdades, universidades, corporações, comércios, e indivíduos foram atraídos pela filosofia do
programa e contribuíram fornecendo bolsas de estudo para os participantes do programa FIRST.
3.3.1 - O OBJETIVO DO FIRST
FIRST é uma organização sem fins lucrativos fundada para a inspiração e reconhecimento
da ciência e tecnologia entre os jovens, trazendo uma idéia de time, ou melhor "família First",
que envolve mentores, estudantes, engenheiros e família. A experiência dos profissionais
envolvidos é, outra vez, muita das razões da escolha da engenharia como uma profissão, nas
companhias que trabalham para contribuir à comunidade enquanto prepararam e criam sua mão-
de-obra do futuro. Os programas inovadores da organização FIRST mostram aos estudantes que
os campos tecnológicos abrangem muitas oportunidades e que os conceitos básicos de robótica
são emocionantes.
A idéia do programa é criar o ambiente propício para idéias inovadoras,
autoconhecimento, descobrimento de novas habilidades e assim motivar os jovens para o estudo
da ciência e tecnologia prática. Portanto, objetivo principal do FIRST é despertar entre as escolas
50
e comunidades um interesse e compreensão maior em relação à ciência e tecnologia que
dominamos, e o quanto isso pode enriquecer as suas vidas.
3.3.2 - A COMPETIÇÃO
FIRST Robotics Competition é uma competição internacional excitante, onde equipes
compostas de profissionais e jovens resolvem um problema de design de engenharia de um modo
intenso e competitivo. O programa é uma mudança de vida, uma experiência de molde de carreira
e muita diversão. Em 2005 a competição contou com mais de 20.000 estudantes nas 900 equipes
em mais de 30 eventos. As equipes vêm do Canadá, Brasil, Equador, México, Grâ Bretanha,
Israel e quase todos os 50 estados americanos. As competições são eventos de esportes de
auditório que usa tecnologia como ferramenta, o resultado de muito do “brainstorming”
focalizado, trabalho de equipe mundial realístico, mentores dedicados, linhas de tempo do
projeto, e fins de prazo.
Em janeiro é realizado um evento denominado “Kickoff”, conhecido como a “ponta-pé”
inicial do FIRST Robotics Competition. Esta cerimônia é transmitida ao vivo mundialmente, e é
durante esta reunião que as regras do jogo do ano são reveladas para as equipes pela primeira vez.
Todos os times receberão então um kit de partes básico para a construção do robô. A partir deste
dia cada equipe terá 6 semanas para ler as regras, traçar estratégias, fabricar peças, projetar
mecanismos, e testar seus robôs, que serão embarcados para um único local dos EUA no final
deste período (durante o mês de fevereiro).
As competições em si ocorrem durante os meses de março e abril. Os 30 eventos
regionais, que são distribuídos geograficamente por vários estados americanos e países
estrangeiros, compõem a primeira etapa do torneio. O “Championship” é a competição final que
reúne 200 dos melhores times e encerra a temporada FRC do ano letivo.
3.4 - GRUPO DE ESTUDOS EM ROBÓTICA (GERA)
Tendo em vista um aprimoramento no processo de ensino, baseado em
multidisciplinaridade, empreendedorismo, visão sistêmica, trabalho em grupo e pedagogia de
projetos, a ETEP (Escola Técnica Professor Everardo Passos) iniciou em 2003 o projeto GERA e
51
em parceria com empresas criou a primeira equipe de São Paulo (e a terceira do Brasil) a
participar do FIRST (For Inspiration and Recognition of Science and Technology) Robotics
Competition.
Os alunos que participaram do FIRST tinham que trabalhar com novas tecnologias,
prazos, responsabilidades e de maneira colaborativa. No GERA eles foram convidados a
desenvolver estudos para empregar tecnologias e idéias que não foram exploradas anteriormente
e depois aplicá-las. Com o desenvolvimento dos estudos e os alunos contando com a orientação
de professores da escola, engenheiros e técnicos, projetaram e montaram um sistema robótico
móvel, que se movimenta autonomamente ou telecontrolado.
O GERA possui os seguintes objetivos:
Expandir conhecimentos na área de robótica.
Promover a integração dos cursos da ETEP (informática, eletrônica, mecatrônica e
mecânica) em torno de um objetivo comum: a elaboração de um robô;
Realizar a interdisciplinaridade no Ensino Técnico;
Desenvolver o trabalho em equipe;
Estimular o hábito de pesquisa e a troca de experiências;
3.5 - EQUIPE DE TRABALHO
A equipe é basicamente formada por 25 estudantes dos cursos técnicos em mecânica,
eletrônica e informática. São realizados vários “brainstorms” e definidos quais serão os assuntos
estudados por cada grupo. A equipe é dividida em três grandes grupos.
Grupo de Mecânica. Este grupo de mecânica tem a função de elaborar como será a
estrutura do robô; projetar e fabricar dispositivos ou suportes onde serão fixados os componentes
eletrônicos. Além disso, os integrantes devem pensar em meios de locomoção do robô (rodas,
esteiras) e formas de transmissão de movimento (por engrenagens, por atrito, correia e polias).
Grupo de Programação. Este grupo é responsável pelo desenvolvimento do programa de
controle do sistema e de vários componentes da "inteligência" do robô. Além disso, também são
efetuadas interfaces para comunicação entre os dispositivos externos e o núcleo lógico do
computador do robô. Da mesma forma, são desenvolvidas interfaces de controle entre o núcleo
do sistema e seus componentes motrizes (motores, por exemplo).
52
Grupo de Eletrônica. Este grupo tem a responsabilidade de elaborar o esquema elétrico/
eletrônico do robô, pesquisando sensores, motores e controlador possíveis de serem
implementados no robô e suas características para que seja possível a comunicação destes com o
software.
Cada grupo é responsável pelo estudo e desenvolvimento de determinadas partes ou
sistemas do robô. Os assuntos estudados por cada grupo são documentados e apresentados aos
demais, para que a equipe decida qual será a melhor opção de construção do robô e a interligação
de todo o sistema trabalhando conjuntamente.
53
CAPITULO 4 – DESENVOLVIMENTO DO ROBÔ E DO CONTROLADOR NEBULOSO
4.1 - DESENVOLVIMENTO DO ROBÔ
O robô, para o ano de 2005, foi construído a partir da integração do sistema mecânico
com o sistema eletrônico definido anteriormente pela equipe durante os estudos nos grupos. A
parte mecânica é composta pela estrutura móvel e um braço manipulador. Toda a estrutura é
montada sobre um chassi de alumínio, com um sistema de locomoção onde o par de rodas de
cada lado é tracionado independentemente por quatro motores elétricos de corrente contínua e
caixa de redução com duas marchas. A caixa de redução foi projetada e montada pela equipe, e a
novidade para este robô, a utilização de duas marchas com mudança por sistema pneumático
(usando elementos padronizados pela organização do FIRST). O sistema manipulador do robô é
composto de uma estrutura trapezoidal para sustentação do antebraço, braço e órgão terminal. O
acionamento do braço é realizado por um motor DC acoplado a um cabo de aço, sendo que a
articulação é feita com auxílio de correntes.
No sistema eletroeletrônico os dispositivos utilizados são padronizados para todas as
equipes participantes do FIRST, tais como: o controlador eletrônico, rádio modem, baterias,
motores, controladores de velocidade, painel de proteção e fusível. A equipe tem a
responsabilidade de escolher dentre os componentes quais serão necessários para a montagem do
robô, avaliando as características técnicas e econômicas para a aquisição do material.
Figura 4.1: Sistema eletrônico do robô
54
4.2 - COMPONENTES DO ROBÔ
Na Figura 4.4 é apresentado o diagrama em blocos do robô onde as principais partes
constituintes do mesmo são mostradas. O detalhamento de cada parte é apresentado a seguir.
Controladores de Velocidade. A saída de Controle proveniente do Sistema Eletrônico de
Controle (RC) informa aos controladores de velocidade qual deve ser a velocidade dos motores a
ele ligados. Aplicando uma tensão nos motores de acordo com a saída de controle do RC, que
passarão a ter a velocidade desejada pelo programa ou piloto.
Spyke (Relé). O Spyke recebe um sinal proveniente do RC, indicando se ele deve ligar,
desligar ou inverter o sentido (no caso de um motor) que estiver ligado em sua saída. Neste
encontra-se um solenóide que é ativado ou desativado de acordo com a tensão recebida.
Solenóide. A válvula solenóide recebe em sua entrada uma tensão do spyke de acordo
com o sinal gerado pelo RC. A tensão na entrada do solenóide faz com que ela proporcione ou
não a ativação dos cilindros pneumáticos ligados a ela para mudança de marcha.
Motor CIM. Os quatros motores DC recebem valores de tensão fornecidos pelos
controladores de velocidade e giram com velocidade proporcional a este sinal. Os eixos de saída
dos dois motores estão montados nas caixas de redução, fazendo-as girar seu conjunto de
engrenagens.
Cilindros pneumáticos. A saída recebida do solenóide determina o movimento a ser
realizado pelo cilindro. Como resultado deste movimento tem-se a alteração da relação de
engrenagem presente na caixa de redução.
Caixas de redução. Os motores CIM estão com seus eixos acoplados nas caixas de
redução, fazendo com que seu conjuntos de engrenagens gire. Com os cilindros atuando define-se
a velocidade e torque de saída da caixa de redução, ou seja, altera a marcha da tração do robô, a
caixa é composta por uma marcha mais rápida, de 2,9 metros por segundos, que permite uma
maior velocidade com um baixo torque, e uma outra marcha mais baixa, de aproximadamente 1,5
metros por segundo, que nos proporciona um maior torque, ou seja, uma maior força.
Os eixos de saída das caixas de redução são acoplados nas rodas do robô, produzindo o
movimento de tração. Ao eixo de rotação do CIM da caixa de redução tem-se ligado um sensor
de posição, que percebe a movimentação do eixo através do seu parafuso de fixação que, por sua
vez, altera o campo magnético do sensor.
55
Figura 4.2:
engrenagens feitas de politecnil Figura 4.3: Montagem das engrenagem de aço.
Motor DC (braço). O Motor DC recebe uma tensão de um controlador de velocidade de
acordo com o sinal gerado pelo RC, indicando para qual sentido deve girar a articulação e com
qual velocidade. O eixo de rotação está ligado a uma relação de engrenagens que recolhe/ afrouxa
um cabo de aço que, por sua vez, é responsável pela subida/ descida do braço mecânico.
Sensor de posição. Iniciou-se com a utilização de dois sensores de posição (“encoders”)
para medição do deslocamento linear do robô e durante os testes foram substituídos porque não
eram adequados para utilização em marcha rápida. O sensor de efeito Hall foi a opção que
apresentou–se mais viável para o desenvolvimento do sistema autônomo de navegação, levando-
se em consideração o custo do projeto e o material disponível. Como uma espécie de imã, o
sensor tem nível lógico inicial “1” (devido a uma resistência de “pull-up” externa) e tende para
“0” quando algum metal aproxima–se de seu campo magnético.
Giroscópio. O giroscópio é um sensor usado para medir o deslocamento angular do robô.
Com a utilização deste sensor existe a possibilidade de se efetuar as trajetórias com maior
precisão, obtendo com isso melhor navegação do robô.
Sensor Óptico. está posicionado de tal forma a detectar a rotação do conjunto de
engrenagens responsável pelo recolhimento/ afrouxamento do cabo de aço de subida/ descida do
Braço Mecânico. De acordo com o movimento das engrenagens o sensor óptico envia ao RC um
sinal de acordo coma posição atual do conjunto do braço mecânico, bastante útil para o software
do período autônomo.
56
Figura 4.4: Diagrama em blocos do robô
4.3 - NAVEGAÇÃO DO ROBÔ
O estudo de planejamento de trajetórias de robôs móveis pode ser dividido em duas
categorias: global e local. No primeiro caso, o modelo do ambiente é definido com precisão,
sendo que a navegação é baseada na informação completa conhecida a priori. Já na local é
baseada nas informações obtidas dos sensores instalados no robô, os quais fornecem dados sobre
o ambiente desconhecido, Carvalho (1998). O posicionamento do robô no ambiente de navegação
é realizado com auxílio de um giroscópio eletrônico (para medir o deslocamento angular) e
encoders (deslocamento linear) instalados no robô, os quais fornecem dados sobre o ambiente,
além das informações do ambiente conhecidas previamente e inseridas através do programa,
conforme Sousa, J. S. S., Carvalho, J. A. D. e Grillo, C. A. C. (2005). Além disso, um sensor
óptico é utilizado para posicionar o braço na posição desejada. Os programas são desenvolvidos
em linguagem C e tem a função de ler o sinal dos sensores e controlar os motores de acordo com
a estratégia implementada pela equipe. O resultado conseguido é um software sólido e versátil,
57
por mais que a competição varie anualmente, este software foi criado para dar a base sólida de
navegação válida para qualquer que seja a tarefa, e permite também que seja adicionada a ele
funcionalidade extra para mecanismos mais específicos.
4.4 - AUTONOMOUS CONTROL (AC)
O Autonomous Control é um programa que foi desenvolvido pela equipe de programação
em linguagem C para auxiliar na criação do código de programação do modo autônomo do robô.
Consiste em uma interface gráfica com uma representação da arena onde será feita a
movimentação do robô. O usuário pode movimentar o robô usando o teclado, conforme figura
4.5, e também pode informar ao programa “software”, através de valores numéricos, conforme
figura 4.7, o quanto ele deseja que o robô execute o comando selecionado. Os comandos são
“Andar” (define o quanto deve seguir em linha reta), “Girar” (define quantos graus o robô deve
rotacionar) e “Esperar” (define o tempo em segundos que o robô deverá permanecer parado).
Depois de planejada a trajetória desejada, o programa cria automaticamente o módulo do
“software” que faz com que o robô execute a trajetória, desta forma torna-se possível programar
o robô com extrema flexibilidade, pois algumas medidas que seriam demoradas e complicadas de
serem feitas tornam-se simples e rápidas pelo fato do “software” possuir uma escala com relação
ao tamanho real da arena e do robô.
Figura 4.5 - Tela que o usuário controla o robô pelo teclado.
58
Figura 4.6 - Código criado pelo software
Figura 4.7 - Tela onde o usuário digita em valores numéricos para que o robô execute.
4.5 - CONTROLE DE UM ROBÔ MÓVEL AUTÔNOMO
O controlador de um robô móvel deve ser capaz de receber os dados do robô e a descrição
do ambiente, planejar um trajeto entre a posição inicial e uma outra posição final, que seja livre
de colisão e satisfaça determinados critérios de otimização. A atitude a ser examinada a cada
instante é definida por um conjunto de regras nebulosas baseadas na posição do robô e valores de
seus sensores, na distância e no ângulo relativo ao alvo.
59
4.6 - VARIÁVEIS UTILIZADAS
Para o controle fazer com que o robô navegue no ambiente foram desenvolvido dois
comportamentos: desviar de obstáculo e atingir a meta. Para isso foram desenvolvidos dois
controladores nebulosos, de tal maneira que o robô faça sua trajetória completa evitando
possíveis colisões com os obstáculos.
Reis e Chamovitz (2003) comenta que uma vez definida as variáveis de entrada e de
saída, define-se para cada variável seu “universo de discurso”, ou seja, cria-se para cada variável
os conjuntos nebulosos que esta representa.
4.7 - SISTEMA DE INFERÊNCIA NEBULOSO
No controlador de orientação, representado na figura 4.8, utilizado para atingir a meta,
definiu-se uma variável de entrada chamada de orientação, que indica a posição do robô em
relação à meta e a variável saída faz uma correção da posição do robô de forma que ele esteja
sempre de frente para a meta.
Figura 4.8: Controlador de orientação do Robô
A figura 4.9 apresenta a variável Orientação utilizada como entrada no sistema. Está
divido em três conjuntos nebulosos: E (esquerda), C (centralizado) e D (direita).
60
Figura 4.9: Entrada do controlador nebuloso de orientação
A figura 4.10 apresenta a variável Saída está divido em três conjuntos nebulosos: EE
(guiar para esquerda), CC (guiar na mesma posição), DD (guiar para direita).
Figura 4.10: Saída do controlador de orientação
Na figura 4.11 é apresentado o controlador de desvio de obstáculo com duas variáveis de
entrada. Uma chamada ângulo, medida fornecida pela posição do robô em relação ao obstáculo e
outra chamada distância, cujo valor é a diferença entre o robô e o obstáculo. A variável Saída,
que deverá ser aplicada ao robô irá corrigir o ângulo de navegação do robô para que este não
colida com nenhum obstáculo.
61
Figura 4.11: Controlador de desvio de obstáculo
A figura 4.12 apresenta a variável Ângulo está divido em cinco conjuntos nebulosos: MD
(muito para direita), PD (pouco para direita), C (centralizado), PE (pouco para esquerda), ME
(muito para esquerda).
Figura 4.12: Entrada da variável ângulo no controlador de desvio de obstáculo
A figura 4.13 apresenta a variável Distância está divido em três conjuntos nebulosos:
Perto (perto do obstáculo), Médio (a uma distância média) e Longe (longe do obstáculo).
62
Figura 4.13: Entrada da variável distância no controlador de desvio de obstáculo
A figura 4.14 apresenta a variável Saída que está divido em cinco conjuntos nebulosos:
GME (guiar muito para esquerda), GPE (guiar pouco para esquerda), GP (guiar na mesma
posição), GPD (guiar pouco para direita) e GMD (guiar muito para direita).
Figura 4.14: Saída do controlador de desvio de obstáculo
4.8 - DEFINIÇÃO DE REGRAS
A seguir será descrita a relação entre as variáveis e as regras de inferência para os
conjuntos nebulosos.
As variáveis, tanto de entrada como de saída, têm de estar intimamente relacionadas para
que seja tomada a decisão, já que para Ângulo e Distância (variáveis de entrada) tem de existir
uma ação de controle (variável de saída).
63
Partindo destas propriedades, cria-se a relação entre as variáveis. Portanto, a maneira de
relacioná-las é por meio das regras de inferência, as quais, neste problema, são 15.
O conjunto exato de regras depende da dinâmica dos componentes físicos, da robustez
requerida, e dos limites das condições de operação.
Formalmente, a base de regras abaixo é suficiente para controlar o robô, porém existem
outras soluções. Uma máquina de inferência nebulosa, de propósito geral pode ser utilizada em
muitas aplicações. Nas Figuras 4.16 e 4.17 estão apresentadas as informações necessárias à
implementação de um controlador para o robô móvel.
Base de regras para o controlador do robô:
1.
SE Distância=Perto E Ângulo=MD ENTÃO Saída=GPD
2.
SE Distância=Perto E Ângulo=PD ENTÃO Saída=GMD
3.
SE Distância=Perto E Ângulo=C ENTÃO Saída=GP
4.
SE Distância=Perto E Ângulo=PE ENTÃO Saída=GME
5.
SE Distância=Perto E Ângulo=ME ENTÃO Saída=GPE
6.
SE Distância=Médio E Ângulo=MD ENTÃO Saída=GPD
7.
SE Distância= Médio E Ângulo=PD ENTÃO Saída=GPD
8.
SE Distância= Médio E Ângulo=C ENTÃO Saída=GP
9.
SE Distância= Médio E Ângulo=PE ENTÃO Saída=GPE
10.
SE Distância= Médio E Ângulo=ME ENTÃO Saída=GPE
11.
SE Distância=Longe E Ângulo=MD ENTÃO Saída=GMD
12.
SE Distância= Longe E Ângulo=PD ENTÃO Saída=GMD
13.
SE Distância= Longe E Ângulo=C ENTÃO Saída=GP
14.
SE Distância= Longe E Ângulo=PE ENTÃO Saída=GP
15.
SE Distância= Longe E Ângulo=ME ENTÃO Saída=GPE
As tabelas 4.1, 4.2 e 4.3, mostram os valores de entrada das funções de pertinência para
que o robô realize a inferência e execute a ação de desvio dos obstáculos. Nesse formato podem
ser facilmente analisadas por uma rotina de inicialização.
Tabela 4.1: Valores de entrada dos conjuntos nebulosos para variável ângulo [graus]
A B C D
MD
-130 -95 -10 -5
PD
-10 -5 -5 0
C
-5 0 0 5
PE
0 5 5 10
ME
5 10 95 130
64
Tabela 4.2: Valores de entrada dos conjuntos nebulosos para variável distância [cm]
A B C D
PERTO
-5 0 10 12,5
MÉDIO
10 12,5 12,5 15
LONGE
12,5 15 30 40
Tabela 4.3: Valores de entrada dos conjuntos nebulosos para variável saída [graus]
A B C D
GME
-40 -30 -10 -5
GPE
-10 -5 -5 0
GP
-5 0 0 5
GPD
0 5 5 10
GMD
5 10 30 40
Tal rotina deverá obedecer à estrutura de dados exigida, convertendo os quatro pontos que
descreve a função de pertinência em dois pontos e duas inclinações, conforme mostrado na figura
4.15.
Figura 4.15: Conversão para o formato de dois pontos e duas inclinações
As funções de pertinência no formato de trapézios e triângulos são armazenadas, em
registros de entradas, como quatro pontos a, b, c, d, mas são convertidos para dois pontos e duas
inclinações no momento da leitura por uma rotina de inicialização. Nota-se que um triângulo
pode ser tratado como um caso especial de trapézio, em que a largura do topo é igual a zero e os
pontos centrais b e c são considerados idênticos.
65
4.9 - IMPLEMENTAÇÃO DO SISTEMA
Conforme mostrado na figura 4.16 o processamento inicial é realizado a partir da entrada
dos dados no controlador nebuloso e a avaliação de quais funções-de-pertinência possuem aquele
valor. Os detalhes dessas estruturas são mostrados na figura 4.17. O registro de entrada é muito
simples e contêm um nome para a entrada, uma variável para cada um dos conjuntos nebulosos
da função-de-pertinência e uma variável próxima-entrada. Mais interessante, é a estrutura função-
de-pertinência que contém dois pontos no eixo dos X’s e dois valores de inclinações que
descrevem a função de pertinência trapezoidal. Esta informação é usada para calcular valores
antecedentes (graus de pertinência) como mostrado na figura 4.15.
Figura 4.16: Exemplo de arranjo para dados das entradas
Figura 4.17: Detalhe da estrutura de dados utilizada
66
As análises das regras podem ser representadas como mostra a Figura 4.18. Uma vez que
o primeiro conjunto indica que valores antecedentes são usados para determinar as forças das
regras, e o segundo conjunto aponta para a localização das saídas na qual a força deverá ser
aplicada. É dada para os dados de saídas e suas funções de pertinência.
Figura 4.18: Exemplo de estrutura para a base de regras
Finalmente, uma função efetua os cálculos para executar defuzzificação das saídas
nebulosas utilizando o método do centro da área.
Figura 4.19: Exemplo para dados das saídas
67
CAPITULO 5 – APLICAÇÃO DO CONTROLADOR NEBULOSO
Neste capítulo será apresentado como foram realizados os testes e o resultado obtido com
a aplicação do sistema de controle nebuloso no robô móvel.
Implementou-se o controlador nebuloso deste trabalho em um robô móvel de pequeno
porte que possui um controlador do tipo EDU R/C (Robot Controller), produzido pela
InnovationFirst. A este está conectado um girômetro, que gera uma tensão de saída de acordo
com a velocidade angular instantânea que o robô está descrevendo, bastando que este sinal seja
integrado para se monitorar o ângulo do robô em relação a uma dada referência pré-definida e um
sensor de efeito hall, sendo que este detecta a proximidade de um parafuso localizado no eixo de
saída do motor de tração robô, de tal forma a gerar um pulso digital a cada 7,85 cm de
deslocamento linear. A partir das leituras destes dois sensores o programa monitorará o
posicionamento do robô, considerando sua área de movimentação como um plano cartesiano. Um
sensor ultrassônico do tipo sonar, situado na parte frontal do robô, gera uma onda quadrada cuja
largura do semi-ciclo positivo é igual ao tempo que a onda sonora (emitida por ele) leva para ir
do robô até o obstáculo e retornar, que o controlador utiliza para determinar sua distância até ele.
Quando esta é inferior a 20 cm inicia-se a rotina de desvio, que se baseia nos dados dos demais
sensores.
O controlador nebuloso desenvolvido é responsável por administrar os sensores, lê-los e a
partir de seus dados e direcionar o robô ao “alvo” (definido previamente). Com isso o sistema
permite compatibilizar os dois comportamentos, o de desviar dos obstáculos e atingir o destino.
Porém não são todos os casos que o robô consegue atingir o destino. Inicialmente o robô foi
programado para chegar até o destino sem a presença de obstáculos o que foi executado com
sucesso. Quando foram colocados os obstáculos no trajeto e programado para desviar dos
mesmos, o robô detectava e desviava dos obstáculos, porém perdia a posição destino, o que foi
melhorado com a implementação do controlador nebuloso como estratégia de raciocínio.
5.1 - TESTANDO O SISTEMA NEBULOSO
Para verificação da funcionalidade do controlador foram criados os conjuntos nebulosos
utilizando a ferramenta para desenvolvimento de controladores nebulosos do Matlab, conforme
MathWorks (2005). Depois de criado pode-se simular a navegação do robô, visualizando a
68
trajetória escolhida pelo sistema de inferência nebulosa e com isso verificar o comportamento do
robô em um ambiente desestruturado.
Após os testes com o MatLab, foi criado um programa para testar as equações que seriam
posteriormente aplicadas no programa do robô. A figura 5.1 tem-se uma tela do programa do
controlador nebuloso para desvio de obstáculo recebendo as entradas: Ângulo e Distância que são
fornecidas no robô pelos sensores. A partir destes dados será efetuada a verificação para saber em
quais conjuntos o valor de entrada está contido e depois serão realizados os cálculos para
estabelecer o grau de pertinência em cada conjunto. Em seguida as regras nebulosas são ativadas
definindo as ações a serem tomadas pelo controlador e o grau de pertinência de cada ação. Por
fim, realiza-se o cálculo do valor de saída através do método do centróide.
Figura 5.1: Tela do programa do controlador nebuloso para robô móvel
Após os valores de ângulo e distancia serem fornecidos ao controlador é feita à avaliação
nos registros de quais funções possuem aquele valor. Após isso, convertem-se os pontos
intermediários de todas as funções de pertinência das variáveis de entrada em inclinações,
69
conforme cálculo mostrado na figura 4.9. Neste teste são apresentados os cálculos referentes aos
termos nebulosos, realmente utilizados, conforme figura 5.2.
Figura 5.2: Termos nebulosos das variáveis de entrada do sistema
Apresenta-se a seguir, a tela do software com as variáveis de entrada, seus termos
nebulosos e os respectivos pontos.
Figura 5.3: Tela do controlador nebuloso com os valores de entrada e as saídas calculadas
70
5.2 - FUZZIFICAÇÃO
Este cálculo serve para verificar se as entradas do sistema pertencem ou não à função.
Para que as entradas passem por este processo, necessita-se, primeiramente, calcular os valores
de delta1 e delta2.
delta1 = entrada a (3)
delta2 = d entrada (4)
Grau de pertinência GP = min{delta1*inclinação1, delta2*inclinação2, 1}; (5)
Figura 5.4: Fuzzificação das variáveis ângulo e distância
5.3 - AVALIANDO AS REGRAS:
Figura 5.5: Regras disparadas
5.4 - DEFUZZIFICAÇÃO
Base Maior: BM = d - a (8)
71
base menor: bm = BM - (GP/inclinação1) - (GP/inclinação2) (9)
Área do Trapézio: A = GP * (bm + BM)/2 (10)
Centróide: C = a + (d - a)/2 (11)
Produto: P = A * C (12)
Estes dados são necessários para a defuzzificação da variável de saída. Na tela do
software os resultados dos cálculos efetuados são mostrados, conforme figura 5.6.
Figura 5.6: Resultados dos cálculos para a defuzzificação da variável Saída
Valor da Saída Resultante: Saída = Produto
total
/Area
total
(7)
Figura 5.7: Representação gráfica da defuzzificação da variável Saída
5.5 - RESULTADOS
Os resultados obtidos demonstram uma melhoria no sistema de navegação do robô
permitindo uma interação maior com o ambiente, pois a lógica nebulosa permite que a natureza
72
intuitiva da navegação livre de colisão possa ser facilmente implementada usando terminologia
lingüística e sem a necessidade de um modelamento matemático do sistema.
Mesmo não realizando seu objetivo em todos os casos os resultados são satisfatórios
considerando que com o método tradicional só era realizado um dos comportamentos.
Poderia ainda ser melhorado com implementação de técnicas que permita mapear melhor
o ambiente e assim evitando as situações em que robô não encontra a saída.
A otimização das regras nebulosas, eliminando aquelas que causam efeito similar na
movimentação do robô e a implementação de mais sensores para detecção dos obstáculos podem
tornar o controlador mais eficiente.
Nas figuras 5.8 e 5.9 apresenta a simulação feita no Matlab. O robô parte e inicia o
comportamento de ir em direção ao alvo, durante este processo um obstáculo é percebido fazendo
com que o comportamento de desvio de obstáculo seja acionado e o robô muda de trajetória para
que não haja colisão com o mesmo e assim que passa pelo obstáculo volta a buscar o seu destino.
Figura 5.8: Simulação da navegação do robô com poucos obstáculos.
73
Figura 5.9: Simulação da navegação do robô com muitos obstáculos.
Na figura 5.10 o robô parte e inicia o comportamento de ir em direção ao alvo, quando um
obstáculo é percebido e o comportamento de desvio de obstáculo é acionado e a mudança de
trajetória faz com que o robô siga para um ponto onde não há saída. Uma das soluções prováveis
para este problema seria memorizar o caminho de forma que o robô retornasse e seguisse um
caminho diferente do primeiro.
Figura 5.10: Simulação da navegação do robô em uma situação na o robô não consegue sair.
74
5.6 - PROBLEMAS NA IMPLEMENTAÇÃO DO SISTEMA
O robô para o qual foi desenvolvido o sistema estava sendo utilizado constantemente para
competições e apresentações, então houve a necessidade de desenvolver um novo robô móvel
para os testes do controlador nebuloso. Este fato causou alguns problemas de implementação mas
permitiu a observação da eficácia do controlador.
Figura 5.11: Robô móvel utilizado no teste do controlador nebuloso.
Foi utilizado um sensor de ultrasom para a medição da distancia entre o robô e o
obstáculo. Este sensor fornece um sinal elétrico que possui uma variação na largura do pulso de
nível alto de acordo com distância que o mesmo está em relação ao obstáculo.
Não foi possível efetuar a leitura deste sinal ligando o sensor diretamente na entrada do
controlador do robô, pois o mesmo sempre retornava a distância correspondente a zero.
Como solução para este problema foi colocado um microcontrolador para efetuar a leitura
do sensor e enviar um valor binário correspondente a distância para a entrada digital do
controlador do robô e assim efetuar o processamento de controle do robô.
Devido à precisão do sensor ultrasônico utilizado, mesmo com controlador efetuando o
algoritmo de desvio de obstáculo, ocorreram algumas colisões.
75
CAPITULO 6 - CONCLUSÃO
O projeto atingiu os objetivos esperados mesmo não chegando a posição destino em todas
as situações. O robô desvia dos obstáculos em grande parte dos casos utilizando os controladores
implementados. Durante os estudos realizados sobre os conjuntos e lógica nebulosa, constatamos
o quanto é importante aprender novas técnicas para modelar problemas que são difíceis de
resolver utilizando métodos convencionais.
A lógica nebulosa propõe-se a auxiliar no desenvolvimento de sistemas de controles,
ajudando nas tomadas de decisões e controle de processos, os quais são amplamente aplicados
nas áreas de engenharia, finanças e outras. O sistema implementado para o controle do robô
apresentou bons resultados nos testes realizados no software e simulações demonstrando a grande
possibilidade de êxito na implementação nos robôs reais desenvolvidos pela equipe, que foi
observado com os testes práticos a boa interação entre os comportamentos de atingir a meta e
desviar de obstáculos.
Este sistema, da maneira como está atualmente, pode ser aplicado a outros
domínios de conhecimento, desde que sejam modelados com duas entradas e uma saída.
Implementar um sistema nebuloso, melhora a habilidade para compreender, otimizar e
customizar a máquina de inferência nebulosa. Isto motiva a experimentação de novos
paradigmas.
A realização do projeto permitiu a prática da multidisciplinaridade, o desenvolvimento do
hábito de pesquisa nos alunos, ampliou os conhecimentos técnicos e científicos, desenvolveu a
capacidade de trabalhar em equipe e expandiu os conhecimentos em robótica e a possibilidade de
aplicação destas tecnologias em vários segmentos.
76
REFERÊNCIAS
Borentain, J., Everett, B. And Feng, L. Navigation Mobile Robots:System and Techniques. A. K.
Peters, Ltda. Welleslay, MA, 1996.
Brooks, R. A. "A robust layered control system for a mobile robot", IEEE J. of Robotics
an Automation , RA- 2,
pp. 14-23, Abril 1986.
Carvalho, J. A. D. e Sousa, J.S.S. Sistema Inteligente de navegação para robôs móveis
autônomos. In: XII Congresso Brasileiro de Automática, Uberlândia. Proceedings of XII
Brazilian Automatic Control Conference. v. II. p. 575-580, 1998.
Chella, M. T. Ambiente de robótica para aplicações educacionais com SuperLogo: Dissertação de
mestrado, Universidade Estadual de Campinas/ Faculdade de Engenharia Elétrica e de
Computação, 2002.
Cox, Earl. The nebuloso systems handbook: a practitioner’s guide to building, using, and
maintaining nebuloso systems, New York. AP professional, 1995.
Cruz, J. A. de O. Lógica Nebulosa. Núcleo de Computação Eletrônica, Universidade Federal do
Rio de Janeiro. Disponível em: <http://equipe.nce.ufrj.br/adriano/nebuloso/apostila.pdf> .
Acesso em 08/03/2005.
Everrett, H. R. Sensors for Mobile Robots: Theory and Application. Wellesley, MA. A K Peters
Ltda, 1995.
Giacaglia, G. E. O. and Abud, M. J. M. Desenvolvimento de Projetos Educacionais na Sala de
Aula, Taubaté. Cabral Editora e Livraria Universitária, 2003.
Heinen, F. Controle Híbrido Inteligente de Robôs Autônomos: Dissertação de mestrado,
Mestrado em Computação Aplicada / Unisinos, 2002.
Kartalopoulus, S. V., Undertanding Neural Networks and Nebuloso Logic: Basics concepts and
applications, New York. IEEE Neural Networks Council, Sponsor.
77
Kosko, Bart. Neural networksand nebuloso system: a dynamical system approach to machine
intelligent, New York. Prentice-Hall, Inc, 1992.
Junior, P. R., C. Sistemas Inteligentes de Navegação Autônoma: Uma Abordagem Modular e
Hierárquica Com Novos Mecanismos de Memória e Aprendizagem: Dissertação de mestrado,
Universidade Estadual de Campinas/ Faculdade de Engenharia Elétrica e de Computação,
2002.
Miranda, P., Junior, V. B. M. e Kronbauer, D. Sistema de Controle Difuso de Mamdani:
Aplicações do Pendulo Invertido e outras: Monografia de Graduação em Análise de Sistemas,
Departamento de Computação e Estatística, Universidade Federal do Mato Grosso do Sul,
2003.
Oliveira, S.R. Sistemas Inteligentes - Fundamentos e Aplicações. Editora Manole Ltda, 2003.
Reis, M. C. e Chamovitz, I. Inteligência Computacional: Mestrado em Informática, Universidade
Federal do Rio de Janeiro/ Instituto de Matemática, 2003.
Shaw, Ian S. e Simões, M. G. Controle e Modelagem Nebuloso, São Paulo: Edgard Blücher,
1999.
Sandri, S. e Corrêa, C. Lógica Nebulosa. INPE, 1999. Disponível em:
http://www.ele.ita.br/cnrn/minicursos-5ern/log-neb.pdf. Acesso em: 08/03/2005.
Sousa, J. S. S. e Brun-Picard, D.. Design of Machines and Robots endowed with permanent
Learning Ability for Integrated Production System. IFAC-MCPL: International Conference on
Management, Control and Logistics, 1997.
Sousa, J. S. S., Carvalho, J. A. D. e Grillo, C. A. C.. Desenvolvimento De Um Grupo De
Estudos Em Robótica Para Construção De Robôs Móveis Autônomos. 1nd International
Congress University-Industry Cooperation, Ubatuba, 2005.
The MathWorks - Fuzzy Toolbox - Disponivel em
http://www.mathworks.com/access/helpdesk/help/toolbox/fuzzy/fuzzy.shtml . Vistado em
12/8/2005.
Livros Grátis
( http://www.livrosgratis.com.br )
Milhares de Livros para Download:
Baixar livros de Administração
Baixar livros de Agronomia
Baixar livros de Arquitetura
Baixar livros de Artes
Baixar livros de Astronomia
Baixar livros de Biologia Geral
Baixar livros de Ciência da Computação
Baixar livros de Ciência da Informação
Baixar livros de Ciência Política
Baixar livros de Ciências da Saúde
Baixar livros de Comunicação
Baixar livros do Conselho Nacional de Educação - CNE
Baixar livros de Defesa civil
Baixar livros de Direito
Baixar livros de Direitos humanos
Baixar livros de Economia
Baixar livros de Economia Doméstica
Baixar livros de Educação
Baixar livros de Educação - Trânsito
Baixar livros de Educação Física
Baixar livros de Engenharia Aeroespacial
Baixar livros de Farmácia
Baixar livros de Filosofia
Baixar livros de Física
Baixar livros de Geociências
Baixar livros de Geografia
Baixar livros de História
Baixar livros de Línguas
Baixar livros de Literatura
Baixar livros de Literatura de Cordel
Baixar livros de Literatura Infantil
Baixar livros de Matemática
Baixar livros de Medicina
Baixar livros de Medicina Veterinária
Baixar livros de Meio Ambiente
Baixar livros de Meteorologia
Baixar Monografias e TCC
Baixar livros Multidisciplinar
Baixar livros de Música
Baixar livros de Psicologia
Baixar livros de Química
Baixar livros de Saúde Coletiva
Baixar livros de Serviço Social
Baixar livros de Sociologia
Baixar livros de Teologia
Baixar livros de Trabalho
Baixar livros de Turismo