robÔ mÓvel autÔnomo para navegaÇÃo em ambiente … · 2018-11-08 · resumo castello, matheus...

71
UNIVERSIDADE JOSÉ DO ROSÁRIO VELLANO UNIFENAS MATHEUS DE BARROS CASTELLO ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE FECHADO UTILIZANDO LOCALIZAÇÃO WI-FI COM USO DE SISTEMA ARTIFICIAL DE CONVERSAÇÃO COMO UM FATOR PARA MUDANÇA DE ESTADO Alfenas - MG 2014

Upload: others

Post on 03-Aug-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

UNIVERSIDADE JOSÉ DO ROSÁRIO VELLANO

UNIFENAS

MATHEUS DE BARROS CASTELLO

ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE FECHADO UTILIZANDO LOCALIZAÇÃO WI-FI COM USO DE SISTEMA ARTIFICIAL DE CONVERSAÇÃO

COMO UM FATOR PARA MUDANÇA DE ESTADO

Alfenas - MG

2014

Page 2: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

MATHEUS DE BARROS CASTELLO

ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE FECHADO UTILIZANDO LOCALIZAÇÃO WI-FI COM USO DE SISTEMA ARTIFICIAL DE CONVERSAÇÃO

COMO UM FATOR PARA MUDANÇA DE ESTADO

Monografia apresentada à Universidade José do Rosário Vellano, como parte das exigências do Curso de Bacharelado em Ciência da Computação para conclusão do curso de graduação.

Orientador: Prof. MSc. Marcos Alberto de Carvalho

Alfenas - MG

2014

Page 3: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

Matheus de Barros Castello

ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE FECHADO UTILIZANDO LOCALIZAÇÃO WI-FI COM USO DE SISTEMA ARTIFICIAL DE

CONVERSAÇÃO COMO UM FATOR PARA MUDANÇA DE ESTADO

Monografia Apresentada como parte das Exigências para a conclusão do curso de Bacharelado em Ciência da Computação, da Universidade José do Rosário Vellano.

Aprovada em:___________________________________________

______________________________________________________ Prof. MSc. Marcos Alberto de Carvalho - Orientador

Universidade José do Rosário Vellano

______________________________________________________ Prof. MSc. José Claudio de Sousa Reis Universidade José do Rosário Vellano

______________________________________________________ Prof. Mauricio Moreira Júnior

Universidade José do Rosário Vellano

Page 4: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

Dedico ao meu avô, Almério Magalhães de Barros, que me

influenciou, direta e indiretamente, desde bem cedo a entrar

nos mundos dos circuitos eletrônicos, computadores e ficção

científica.

Page 5: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

Agradecimentos,

Agradeço aos meus pais, Carlos H. de Oliveira Castello e Simone de

Barros Castello, pelo apoio, incentivo, e por sempre investirem e se sacrificarem pelo

meu futuro. Se, cheguei a ver mais longe, foi por estar sob os ombros destes

gigantes.

Agradeço ao Prof. MSc. Marcos Alberto de Carvalho, por sempre me dizer

que era possível. Que acreditou me apoiou e compartilhou, com grande ansiedade e

curiosidade, das minhas loucuras, me mostrando o caminho correto para chegar a

concretizá-las.

Agradeço ao meu grande amigo, Lorenzo Couto, por ser meu braço direito

durante esses quatro anos. Por me acompanhar e ajudar nas aventuras acadêmicas,

sendo sempre genial. Pelos momentos alegres e tristes, por isso faço minhas as

palavras de Joseph Addison: “A amizade desenvolve a felicidade e reduz o

sofrimento, duplicando a nossa alegria e dividindo a nossa dor.”.

Agradeço ao pessoal do Núcleo de Educação a Distância UNIFENAS, por

me aguentarem enquanto estagiário, e depois como penetra utilizando a sala como

meu laboratório durante minhas pesquisas. Em especial ao Prof. Mauricio Moreira

Junior, ao qual tenho por grande amigo. Agradeço pelas preciosas trocas de

experiências, tanto profissionais como de vivência.

Agradeço aos coordenadores do curso de Bacharelado em Ciência da

Computação UNIFENAS, Prof. MSc. Alexandre Martins Dias e Profa. MSc. Marly

Moreira Dias, por serem minha fonte de inspiração e exemplo.

Agradeço aos meus familiares, que me apoiaram desde sempre. Aos

professores, e colegas de turma, que são parte da minha vida. E a todos os

funcionários e colaboradores do câmpus UNIFENAS – Alfenas, que com certeza

tiveram seu fator de contribuição para conclusão do presente projeto.

Agradeço ao Programa Institucional de Bolsas de Iniciação Científica

PROBIC/UNIFENAS, pelo fomento e incentivo à pesquisa.

Page 6: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

“Quando um cientista distinto e experiente diz que algo é

possível, é quase certeza que tem razão. Quando ele diz que

algo é impossível, ele está muito provavelmente errado.”

(Arthur C. Clarke)

Page 7: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

RESUMO

CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando Localização WI-FI com uso de Sistema Artificial de Conversação como um Fator para Mudança de Estado

Ambientes com redes sem fio tornam-se cada vez mais normais, além do acesso à

internet possibilitam também outras aplicações. O objetivo do projeto foi desenvolver

um robô móvel com navegação autônoma, com controle fuzzy e sistema de

posicionamento Wi-Fi, procurando padrões na potencia de sinais através de redes

neurais. Para entrada do destino da navegação é utilizado um sistema artificial de

conversação que utiliza síntese e reconhecimento de voz. As redes neurais

obtiveram resultados satisfatórios nos testes de localização.

Palavras-chave: Robô Móvel. Navegação Fuzzy. Localização Wi-Fi. Chatterbot.

Page 8: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

ABSTRACT

CASTELLO, Matheus de Barros. Mobile Robot Autonomous Navigation for Closed Enviroment Using Wi-Fi Localization with the use of Artificial Conversation System as a factor for Change of State

Environments with wireless networks become more and more normal, in addition to

Internet access also enable other applications. The project goal was to develop a

mobile robot with autonomous navigation, with fuzzy control and Wi-Fi positioning

system, looking for patterns in signal power through neural networks. For input

navigation destination is used an artificial conversational system that uses synthesis

and speech recognition. Neural networks have obtained satisfactory results in

localization testing.

Keywords: Mobile Robot. Fuzzy Navigation. Wi-Fi Localization. Chatterbot.

Page 9: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

SUMÁRIO

1 INTRODUÇÃO ............................................................................................... 3

1.1 Justificativa: Origem e Importância do Trabalho....................................... 3

1.2 Objetivos Gerais ........................................................................................... 3

1.3 Objetivos Específicos .................................................................................. 4

2 REFERENCIAL TEÓRICO ............................................................................. 5

2.1 Sistemas Inteligentes Chatterbots .............................................................. 5

2.1.1 Estrutura de um Chatterbot ......................................................................... 6

2.2 Representação de Conhecimento por Árvores de Predicados ................ 6

2.3 Reconhecimento e Síntese de Voz .............................................................. 7

2.4 Redes Neurais Artificiais ............................................................................. 8

2.4.1 Introdução ..................................................................................................... 8

2.4.2 Métodos para Treinamento de Redes Neurais ......................................... 10

2.4.2.1 Aprendizado Supervisionado por Correção de Erros ............................. 11

2.4.3 ENCOG: Redes Neurais em Ambiente Java ............................................. 14

2.5 Lógica Fuzzy ............................................................................................... 15

2.5.1 Controles Fuzzy .......................................................................................... 16

2.5.2 jFuzzyLogic: Biblioteca Fuzzy para Ambiente Java ................................ 18

2.6 Robótica ...................................................................................................... 19

2.6.1 Introdução ................................................................................................... 19

2.6.2 Classificação ............................................................................................... 19

2.6.3 Sensores ..................................................................................................... 20

2.6.4 Efetuadores ................................................................................................. 21

2.6.5 Percepção ................................................................................................... 21

2.6.6 Robôs Móveis: Principais Desafios .......................................................... 21

2.7 Sistemas de Localização .......................................................................... 22

2.7.1 GPS (Global Positioning System) ............................................................ 22

2.7.2 Odometria ................................................................................................... 23

2.7.3 Posicionamento Wi-Fi ............................................................................... 23

2.7.3.2 Posicionamento Wi-Fi Utilizando Controle Fuzzy ................................... 24

2.7.3.1 Posicionamento Wi-Fi Utilizando Redes Neurais .................................... 25

Page 10: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

2.8 Placa IOIO Android ..................................................................................... 25

3 MATERIAL E MÉTODOS ............................................................................. 27

3.1 Interface Rbótica ......................................................................................... 27

3.2 Aplicativo Android Controlador da Interface Robótica ........................... 28

3.3 Sistema de Localização Wi-Fi .................................................................... 31

3.3.1 Fase de Localização Utilizando Distância de Euclidiana ........................ 33

3.3.2 Fase de Localização Utilizando Distância de Manhattan ........................ 34

3.3.3 Fase de Localização Utilizando Controle Fuzzy ...................................... 34

3.3.2 Fase de Localização Utilizando Redes Neurais ....................................... 35

3.4 Navegação Fuzzy ........................................................................................ 36

3.5 Mapeamento Utilizando Grafos ................................................................. 39

3.6 Registrando de Dados Usando Mapeamento Objeto-Relacional ........... 39

3.7 Sistema Artificial de Conversação ............................................................ 41

4 RESULTADOS ............................................................................................. 42

4.1 Sistema de Localização Wi-Fi .................................................................... 42

4.1.1 Localização por Redes Neurais ................................................................. 43

4.1.2 Localização por Lógica Fuzzy ................................................................... 46

4.2 Navegação ................................................................................................... 51

4.2.1 Navegação Fuzzy ........................................................................................ 51

4.3 Aplicativo Controlador ............................................................................... 55

4.4 Sistema Artificial de Conversação ............................................................ 56

5 DISCUSSÃO ................................................................................................ 58

6 CONCLUSÃO............................................................................................... 60

REFERÊNCIAS ......................................................................................................... 61

Page 11: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

3

1 INTRODUÇÃO

1.1 Justificativa: Origem e Importância do Trabalho

O projeto Safira é o produto de anos de investigação na área de agentes

inteligentes da classe chatterbot, do Grupo de Pesquisa em Informática (GPI -

Ciência da Computação UNIFENAS). Os sistemas da classe chatterbot são agentes

inteligentes de conversação por interpretação de linguagem natural. Esses sistemas

levam em consideração formas mais intuitivas de interação entre homem e máquina,

simulando uma conversa entre pessoas aonde o usuário pode adquirir informações

do sistema utilizando dispositivos de interatividade já conhecidos, como o discurso

falado.

Uma interface robótica é composta por efetuadores, rodas, articulações e

outros dispositivos que exerçam forças físicas sobre um ambiente, e sensores que

lhe permitem perceber esse ambiente. A interface robótica, o hardware, possibilita à

um agente inteligente, o software, executar tarefas e manipular o mundo físico ao

seu redor. A junção entre interface robótica e agente inteligente constitui um robô.

Robôs podem, dentro do domínio de conhecimento desses serem aplicados em

inúmeros domínios de aplicação. Robôs serviçais são uma das aplicações, estes

podem prestar serviços e assistência a seres humanos em tarefas não conhecidas

ou repetitivas, em que haja manipulação do ambiente.

Procurando aplicar a eficiência da oferta da informação do agente

inteligente Chatterbot Safira, suas interfaces de interação homem máquina como

ferramentas de montagem de bases de conhecimento, em manipulação do mundo

físico o presente projeto propõe o estudo e implementação de uma interface robótica

que possibilite a junção dessas tecnologias em uma aplicação de robô serviçal.

1.2 Objetivos gerais

Estudar a implementação de uma interface robótica móvel, e a junção

desse mecanismo com o sistema inteligente Safira, este será incrementado para que

possa executar mudanças de estado na interface robótica, decididas por sensores

no robô e informações e ações processadas por linguagem natural oriundas de um

Page 12: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

4

usuário. Espera-se que ao final da pesquisa tenha-se desenvolvido um robô serviçal

móvel que possa auxiliar alunos na procura de salas no bloco 21 do campus

UNIFENAS Alfenas.

1.3 Objetivos específicos

Construção de uma interface robótica;

Estudo de aplicações de sensores;

Estudo de aplicações de efetuadores;

Estudo de localização em ambientes fechados;

Construção de base de conhecimento;

Implementação de módulos manipuladores do mundo físico no

projeto Safira.

Page 13: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

5

2 REFERENCIAL TEÓRICO

2.1 Sistemas Inteligentes Chatterbots

Nos dias atuais o uso de sistemas inteligentes, ou agentes inteligentes, se

torna comum de forma gradativa. Umas das áreas exploradas dentro dos sistemas

inteligentes são os agentes de conversação por interpretação de linguagem natural.

Levando em consideração uma forma mais intuitiva de relacionamento entre homem

e máquina, estes agentes são nomeados como Chatterbots (WEIZENBAUM, 1966).

Um Chatterbot é um programa de computador que tem como objetivo simular uma

conversa com pessoas, sendo que estas tenham a impressão de estarem mesmo

conversando com um humano e não um programa de computador (TEIXEIRA e

MENEZES, 2003).

O conhecimento do Chatterbot é modelado por um Botmaster, ou

Engenheiro de Conhecimento, que interage com um especialista dentro de

determinada área (TEIXEIRA e MENEZES, 2003). O Engenheiro de Conhecimento é

o responsável por transformar o conhecimento repassado pelo Especialista ou outra

fonte de estudo em uma representação computacional formal pela qual o

computador poderá trabalhar. A aquisição do conhecimento em um sistema

inteligente é o problema principal do desenvolvimento de um agente completo e útil

(REZENDE 2003).

Essa classe de sistema inteligente nasceu quando foi criado o primeiro

Chatterbot por Joseph Weizenbaum. Desde então, foram criados outros sistemas

inteligentes de conversação; alguns foram desenvolvidos para utilização no meio

empresarial nos Estados Unidos e no Brasil (ALVES e ARAUJO, 2011).

São inúmeras as aplicações de um sistema inteligente de conversação, das quais

podem se destacar:

Atendentes virtuais;

Tutores para educação à distância;

Agregadores de conhecimento de fácil recuperação;

Page 14: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

6

2.1.1 Estrutura de um Chatterbot

As estruturas básicas de um Chatterbot são a interação com o usuário e a

manipulação de dados.

A interação do usuário acontece quando este faz uma pergunta que será

processada pelo motor de inferência.

Considere-se “motor de inferência”, neste caso, o sistema que, baseado em uma frase digitada pelo usuário é capaz de encontrar uma resposta

coerente em sua base de conhecimento (ESPINDOLA, 2005, p.3).

A resposta do motor de inferência é então enviada para a interface com usuário para

visualização da mesma.

A manipulação dos dados referente ao assunto abordado pelo Chatterbot

consiste em inserções e manutenção das informações na base de conhecimento. A

manipulação dos dados atualiza em tempo real o conhecimento do sistema

inteligente (ALVES e ARAUJO, 2011).

2.2 Representações do conhecimento por árvores de predicados

Segundo Espindola (2005), uma base de conhecimento precisa ser

representada e estruturada com cuidado, com o objetivo de facilitar o seu acesso.

Espindola (2005) analisou diálogos de salas de bate papos, e optou utilizar árvores

para o armazenamento da representação do conhecimento, sendo que está

estrutura possibilitaria a classificação dos predicados dentro do contexto da

resposta. Por exemplo, ao se perguntar “onde fica a cidade X” as palavras “onde” e

“fica” são características de quando se quer saber a localização da cidade X. Assim

sendo sua representação em árvore ficaria como o da Figura 1.

Figura 1 – Árvore de conhecimento.

Fonte: Elaborada pelo Autor.

Page 15: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

7

Cada nó da árvore contém um grupo de palavras, sinônimas ou palavras

usadas com a mesma característica, que determinam o contexto, caminho a se

percorrer para chegar a uma folha, sendo esta a saída do sistema ou resposta.

Com essa nova forma de representação do conhecimento foi possível

implementar, em um trabalho anterior, inferência sobre respostas e construir

mecanismos de diálogo, como mudanças de assuntos por escolhas e treplicas.

Como mostra a representação de conhecimento da Figura 2, se o usuário fizer a

pergunta “Tem y em x?”, o motor de inferência retornara a resposta “Sim x tem y.

Mas eu gosto mesmo de z, você quer saber sobre z?”. Agora o usuário pode

responder a pergunta realizada pelo Chatterbot (CASTELLO, NASCIMENTO e

CARVALHO, 2013).

Figura 2 – Representação de inferência na resposta

Fonte: Elaborada pelo Autor.

Também foi possível implementar funções em respostas. Pode-se mandar

uma ação ao Chatterbot, esse ao inferir a pergunta chega a um nó que efetue uma

ação programada, um módulo ou programa de computador (CASTELLO,

NASCIMENTO e CARVALHO, 2013).

2.3 Reconhecimento e Síntese de Voz

O homem, de forma nativa, tem maneiras de interagir com o ambiente

com seus sensores: audição, olfato, paladar, tato e visão. É através das informações

oriundas desses sensores que o cérebro interpreta e toma ações para modificar o

ambiente. Nessa interação, podem-se tomar decisões bem como adquirir

conhecimento. Um agente inteligente, munido com dispositivos de realidade virtual

Page 16: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

8

que agucem no usuário seus sistemas sensoriais, torna um sistema ou interface

computacional, de fácil aprendizado e de alta acessibilidade. Destaca-se o uso de

ferramentas para reconhecimento de voz, onde o usuário pode usar sua linguagem

natural na forma falada para interagir com o sistema (DAMASCENO, PEREIRA e

BREGA 2004).

Para uma maior emersão do usuário no sistema de conversação, uma

ação falada, sendo processada pela ferramenta de reconhecimento de voz, pode ser

respondida pelo agente por síntese de voz, no qual um texto que seria a resposta do

sistema é assim convertido para uma virtualização de voz. Realizando então um

processo de realidade virtual bem aproximada do meio de comunicação mais

utilizado pelos humanos (CASTRO 2004).

2.4 Redes Neurais Artificiais

2.4.1 Introdução

Segundo Rezende (2003) redes neurais artificiais são:

Modelos matemáticos que se assemelham às estruturas neurais biológicas e quem têm capacidade computacional adquirida por meio de aprendizado e

generalização. (REZENDE, 2003, p.142).

RNAs (Redes Neurais Artificiais) possuem a capacidade de aprendizado adaptativo

em consequência da interação com o meio externo. O aprendizado da rede ocorre

por meio de exemplos. Certo conjunto de dados sobre um problema é apresentado à

rede, e um algoritmo de aprendizado adapta as características da rede para a

solução do problema (REZENDE, 2003).

Depois de treinadas as RNAs possuem informações contidas em sua

arquitetura. O processamento e armazenamento destas informações ocorrem de

forma paralela e distribuída nos chamados elementos processadores. Cada um

desses elementos processadores é um neurônio artificial (Figura 3), aonde se possui

entradas e uma saída (REZENDE, 2003).

Page 17: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

9

Figura 3 – Neurônio Biológico e Neurônio Artificial.

Fonte: DIN1.

O diagrama da Figura 3 apresenta o modelo de neurônio artificial apresentado por

McCulloch e Pitts, também conhecido como modelo MCP. Nesse modelo as

entradas são representadas pelo vetor de entradas. Cada

entrada do vetor possui seu correspondente peso . A resposta do neurônio

artificial, a saída , é calculada através da aplicação de uma função de ativação

sobre o resultado de , onde ∑ (REZENDE, 2003).

Um elemento processador tem o poder de executar uma simples função.

O grupamento de elementos processadores, que formam a rede neural, tem a

capacidade de solucionar problemas complexos. Redes neurais do tipo feed-forward

possuem elementos processadores de entradas (1), elementos processadores em

camadas intermediarias (2), que recebem como entradas as saídas de cada um dos

elementos de 1, e elementos processadores de saída da rede que recebem como

entrada as saídas de cada elemento de 2 (Figura 4) (REZENDE, 2003).

1

Departamento de Informática da Universidade Estadual de Maringá. Disponível em: <http://www.din.uem.br/ia/neurais/> Acesso 12 maio de 2014.

Page 18: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

10

Figura 4 – Representação esquemática de uma rede neural do tipo feed-forward.

Fonte: ICMC USP2.

RNAs são utilizadas em inúmeras aplicações. A característica mais

importante segundo Rezende (2003) de RNAs está na capacidade de aproximação

universal de funções multivariáveis continuas. Os problemas que uma RNA pode

resolver são classificados nos seguintes:

Aproximação de Funções;

Predição;

Classificação;

Categorização;

Otimização.

2.4.2 Métodos para Treinamento de Redes Neurais

Para que uma RNA resolva certo problema os pesos correspondentes a

cada entrada dos elementos processadores devem estar devidamente ajustados

para o contexto do problema. O método aplicado para o ajuste dos pesos da rede

define o processo de aprendizado da mesma. Os métodos se classificam em:

supervisionados, não supervisionados e por reforço. O treinamento supervisionado

ocorre onde o algoritmo de treinamento, ou supervisor, recebe dados de exemplos

2Disponível em: <http://www.icmc.usp.br/pessoas/andre/research/neural/> Acesso 12 maio 2014.

Page 19: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

11

com entradas e saídas desejadas para cada uma das entradas, assim sendo o

supervisor ajusta os pesos para que a saída da rede seja a mais próxima, dentro

de limites de erro aceitáveis, da saída desejada. No treinamento não supervisionado

o algoritmo recebe dados de exemplo apenas com entradas, sem as saídas

desejadas, e cabe ao treinamento ajustar os pesos para que a saída da rede possa

classificar os dados de entrada. O treinamento por reforço é um treinamento que une

definições das duas anteriores, os dados de exemplos contem as entradas e não

definem as saídas desejadas, porém durante os ajustes dos pesos o desempenho

da rede é verificado, e se ocorrer um decaimento do desempenho um sistema

crítico, ao invés de um supervisor, retorna uma penalidade, ou um reforço em caso

de ganho de desempenho, para que no decorrer do treinamento a ação que realizou

o decaimento ou ganho possa ocorrer com menor ou maior probabilidade

(REZENDE, 2003).

2.4.2.1 Aprendizado Supervisionado por Correção de Erros

O algoritmo largamente utilizado para treinar redes de múltiplas camadas

é o Backpropagation, aprendizado por retropropagação dos erros. Utilizando-se da

técnica do gradiente descendente, das derivadas parciais do erro de saída da rede,

o Backpropagation atualiza os pesos em direção contrária ao gradiente do erro. De

forma genérica o método do gradiente utilizado para ajuste dos pesos é

demonstrado na equação abaixo:

Equação 1.

Onde é a taxa de aprendizagem e

é a derivada parcial do erro em relação ao

peso do neurônio ao neurônio (RIEDMILLER e BRAUN, 1993).

Rezende (2003) destaca dificuldades no treinamento utilizando gradiente

descendente, causados por não linearidades das funções de ativação. Mínimos

locais e regiões planas, onde o gradiente é zero, podem ocorrer diante das

irregularidades das superfícies de erro. Procurando evitar regiões de gradiente nulo

Page 20: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

12

acrescenta-se um termo chamado de momentum à equação de ajuste de pesos,

como descrito na equação abaixo:

Equação 2.

O termo de momentum é constituído por uma constante de momentum,

representada por , que multiplica pelo ajuste anterior, , acumulando

assim uma memória residual sobre o sentido dos ajustes anteriores. Mesmo que o

gradiente resulte em zero, o termo de momentum conterá ainda resíduos dos ajustes

anteriores, o que fará que o treinamento continue ajustando os pesos na mesma

direção anterior ao gradiente nulo, até que o gradiente passe a ser maior que o

momentum (REZENDE, 2003).

Com base no algoritmo de Backpropagation foram propostas variações

com o objetivo de se acelerar a velocidade de convergência no aprendizado. O

algoritmo Resilient Propagation ou propagação elástica, mais conhecida por

RPROB, foi uma dessas variações. O RPROB segundo Riedmiller e Braun (1993) é

um método de aprendizado supervisionado eficiente que atualiza os pesos da RNA

diretamente, onde cada peso tem seu próprio valor de atualização e não mais

depende do tamanho do gradiente para a atualização do peso. O algoritmo de

RPROP é dividido em duas partes, primeiramente adapta-se o valor de atualização

dos pesos, como mostra a equação abaixo:

{

Equação 3.

Page 21: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

13

Onde . Para cada iteração as derivadas parciais do peso

podem trocar de sinal. Quando a troca de sinal ocorre indica que a atualização

anterior foi grande demais e o algoritmo pulou um mínimo local, então o valor

de atualização é decrementado pelo fator . Se o sinal da derivada parcial

continua o mesmo então o valor de atualização é incrementado pelo fator o que

acelera a convergência para regiões mínimas. A segunda parte do RPROB é a

atualização do valor dos pesos utilizando os valores ( ) calculados anteriormente,

que seguem a regra abaixo:

{

Equação 4.

Equação 5.

Colocando em palavras as regras, se a derivada parcial é positiva, onde se indica

aumento do erro, então se aplica subtração do valor de atualização ao peso, se a

derivada parcial for negativa então o valor de atualização é adicionado no peso.

Quando ocorre a troca de sinal da derivada parcial, que indica a perca do mínimo

por um passo grande demais, a regra sofre uma exceção e a atualização do peso

anterior precisa ser revertida:

Equação 6.

Prevenindo ainda que haja trocas sucessivas de sinal na derivada, devido ao valor

revertido, é atribuído zero ao gradiente da iteração anterior para que não haja

atualização do peso na próxima iteração Equação 7.

Page 22: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

14

Equação 7.

Riedmiller e Braun (1993) concluem que o algoritmo de aprendizado

RPROP é de fácil implementação e menor custo computacional. Ainda destacam

que no aprendizado por Backpropagation, que utiliza o gradiente descendente, o

valor da derivada parcial diminui exponencialmente com a distância entre peso e a

camada de saída, causando aprendizado mais lento nas camadas mais longes da

de saída. O RPROP utiliza apenas a informação de troca de sinal da derivada, para

adaptação e aprendizado, e não utiliza do valor da mesma para a mudança dos

pesos. Por esta causa o aprendizado ocorre homogêneo entre todas as camadas da

RNA resultando em convergência mais rápida.

2.4.3 ENCOG: Redes Neurais em Ambiente Java

Heaton (2008) em seu livro, Introduction to Neural Networks with Java,

apresenta uma poderosa interface de programação para implementação de soluções

utilizando redes neurais em ambientes Java, desenvolvida por ele próprio com ajuda

de colaboradores. A biblioteca de código livre ENCOG fornece várias arquiteturas de

redes neurais, entre elas:

ADALINE;

Hopfield;

Jordan Recurrent;

Radial Basis Function;

Boltzman Machine;

Feedforward.

A biblioteca também fornece vários métodos de treinamento de redes neurais, como:

Page 23: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

15

ADALINE Training;

Backpropation;

Resilient Propagation;

Genetic Algorithm Training.

2.5 Lógica Fuzzy

No mundo real existem características imprecisas ou vagas que não

podem ser classificadas nem como verdadeiras nem como falsas. Quando um

problema requer a avaliação de uma característica vaga, ou fuzzy do inglês

nebuloso, incerto, utiliza-se a teoria dos conjuntos fuzzy. Um conjunto fuzzy nada

mais é que uma extensão da teoria dos conjuntos clássica, e é utilizada para

caracterizar um elemento dentro de um grau de pertinência, entre pertinência total e

não pertinência, em relação a certo conjunto (REZENDE, 2003).

Para uma melhor compreensão da utilização de conjuntos fuzzy o

exemplo do universo da temperatura é recorrente. Normalmente a mente humana

trata a temperatura em graus de pertinência vagos, quando perguntando sob a

temperatura não se responde um número, mas sim uma classe: frio, muito frio,

agradável, quente ou muito quente. E esta capacidade de representar uma variável

não como algo quantitativo mais sim qualitativo apresenta a ideia das variáveis

linguísticas. No caso da temperatura a variável linguística seria “Temperatura”, e as

características de “Temperatura”, também variáveis linguísticas porem chamadas de

expressões linguísticas, seriam: frio, muito frio, agradável, quente ou muito quente.

Na Figura 5 é apresentada uma partição fuzzy para o universo da temperatura, de 0

a 50 graus, utilizando as variáveis linguísticas descritas acima:

Page 24: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

16

Figura 5 – Partição fuzzy para o universo da temperatura.

Fonte: Elaborada pelo autor.

Com a representação gráfica acima é notável os graus de pertinência, e as

ambiguidades presentes, para cada expressão linguística, na partição. Por exemplo,

quando a temperatura estiver em 8 graus, eixo , haverá pertinência no conjunto do

muito frio, projeção no eixo , e pertinência no conjunto do frio, projeção no

eixo . Ou seja, ao invés do tratamento da lógica clássica computacional,

aonde haveria verdadeiro para “Muito frio” e falso para “Frio”, há 30% de frio e 60%

de muito frio quando a temperatura esta em 8 graus. Isso possibilita a tomada de

decisão eficiente a partir de informações ambíguas (REZENDE, 2003).

2.5.1 Controles Fuzzy

Rezende (2003) descreve o modelo de inferência fuzzy de Mandami

(1974) em três blocos principais: conversação escalar ou fuzzificação, máquina de

inferência e conversão escalar ou defuzzificação.

A etapa de fuzzificação é onde valores numéricos escalares de entrada

do problema são particionados, construídos os conjuntos fuzzy e suas respectivas

expressões linguísticas (REZENDE, 2003).

Na máquina de inferência são utilizadas regras de produção que formam

a base de conhecimento do controle fuzzy. As regras de produção utilizam-se das

Page 25: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

17

variáveis linguísticas para tratar condições referentes às pertinências do conjunto da

variável. Segue um exemplo de regra de produção:

A máquina de inferência então a partir de informações qualitativas,

e , gera um resultado

também qualitativo (REZENDE, 2003).

A regra semântica para inferência utilizada no modelo de Mandami é a do

Máx-Min. Para exemplificação são descritas as partições fuzzy da figura 6, utilizadas

em um controle fuzzy hipotético, que atua sobre o ar condicionado de uma sala com

computadores, onde a temperatura deve ser resfriada de acordo com a quantidade

de computadores ligados. No exemplo há 30 computadores ligados e a temperatura

da sala no momento é de 30 graus.

Figura 6 – Partições fuzzy de exemplo.

Fonte: Elaborada pelo autor.

Aplicando o método dos mínimos para o operador , e dos máximos para a

acumulação, na regra de produção descrita no parágrafo anterior, para

com grau de pertinência de aproximadamente e

com pertinência de aproximadamente 0.3, então

. Assim o resultado da inferência é o valor de no plano

cartesiano para o conjunto do consequente, , como mostra a

Figura 7.

Page 26: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

18

Figura 7 – Partição fuzzy para a saída ArCondicionado.

Fonte: Elaborada pelo autor.

Na última etapa acontece a defuzzificação, aonde é calculado um valor

numérico escalar com referência aos valores qualitativos resultantes da máquina de

inferência. Continuando o exemplo do controle da sala com o ar condicionado,

aonde depois do processamento do conhecimento, pode-se notar a pertinência de

aproximadamente no conjunto do frio na partição do ar condicionado. A partir

dessa pertinência nota-se na figura 7 aonde há uma área preenchida para o

conjunto frio. O resultado da defuzzificação é calculado por intermédio de métodos

referentes à área de pertinências dos conjuntos ativados na inferência. O método

comumente utilizado é o de centro das massas, aonde o resultado será o valor da

abscissa do ponto central de massa correspondente a um dado conjunto. Na figura 7

o resultado do centro de massas é representado pela linha, o que decide aonde a

posição do termostato do ar condicionado deverá estar (REZENDE, 2003).

2.5.2 jFuzzyLogic: Biblioteca Fuzzy para Ambiente Java

Cingolani e Jesus (2012) desenvolveram a biblioteca jFuzzyLogic, que

implementa as especificações do padrão para a Fuzzy Control Language (FLC),

publicadas pela International Electrotechnical Commission (IEC 61131-7).

O objetivo da jFuzzyLogic segundo Cingolani e Jesus (2012), é levar os

benefícios das padronizações e código livre para a comunidade usuária de sistemas

Page 27: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

19

fuzzy. Ainda ressaltam as vantagens da biblioteca como: interface de programação

extensível orientada a objetos, padronizada aplicando toda a IEC 61131-7, e

portável por ser baseada em ambiente Java.

2.6 Robótica

2.6.1 Introdução

Segundo Russell e Norving (2004) robôs são agentes físicos que

possuam a habilidade de executar tarefas pela manipulação do ambiente físico ao

seu redor. Para a percepção e manipulação do ambiente esses agentes contam com

sensores e efetuadores. Rich e Knight (1994) mencionam que é importante

diferenciar entre agentes virtuais, programas de IA, e robôs, agentes físicos.

Agentes virtuais operam em ambientes, mundos, simulados enquanto agentes

físicos precisam obter a percepção de um ambiente real, com incertezas reais, esses

ainda devem tomar decisões em tempo real, e trabalhar com planos incertos e

percepções incompletas do ambiente. A importância de se conhecer os processos

do mundo real, ao que se refere o contexto do ambiente onde o agente físico estará

trabalhando, é fundamental no projeto de um robô autônomo.

2.6.2 Classificação

Na robótica atual grande parte dos robôs está classificada em três

categorias principais. Manipuladores, onde se encontram os agentes fixos, não

possuem a habilidade de deslocamento pelo ambiente, braços robôs, garras,

ferramentas articuladas e etc. Estes são o tipo comum de robôs industriais.

Robôs móveis são os agentes físicos que se deslocam pelo ambiente

utilizando-se de efetuadores como rodas, pernas ou qualquer mecanismo que possa

transmitir ou transformar forças e movimentos para sua locomoção. Entre os robôs

dessa classe estão os veículos terrestres não tripulados, que realizam navegação

autônoma sem condutor.

Page 28: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

20

A última classe os robôs híbridos são os agentes que possuem

características tanto de móveis quanto de manipuladores. Nessa classe o agente

pode se locomover pelo ambiente e interagir com objetos desse com o uso de seus

manipuladores, um robô humanoide tem pernas, efetuadores para mobilidade, e

braços, manipuladores, e se enquadra nessa classe (RUSSELL e NORVING 2004).

2.6.3 Sensores

A percepção do ambiente, ou mundo, do qual o agente físico está incluído

depende de sensores. Os sensores funcionam como observadores e transmitem ao

robô informações, sinais gerados do ambiente. Em robôs móveis é recorrente o uso

de sensores ativos como telêmetros, esse tipo de sensor mede a distância entre

objetos próximos. Um exemplo é o sonar que envia energia ao ambiente, ondas

sonoras direcionais, e espera que essa energia seja refletida quando um objeto

estiver próximo. Assim com cálculos sobre a intensidade de sinal refletido e tempo,

pode-se saber a distância do agente até um objeto (RUSSELL e NORVING 2004).

Segundo Rich e Knight (1994) nos seres humanos as capacidades

sensoriais que são encarregadas da maior agregação de conhecimento, aonde se

baseiam nosso comportamento e solução e problemas, são a visão e a linguagem

oral. A visão de máquina possibilita séries de aplicações em computadores, aonde

imagens são processadas para reconhecimento de padrões, objetos e navegação

em agentes físicos móveis. E a linguagem oral e falada possibilita a forma natural de

interação entre os agentes físicos e o homem.

Segue uma lista de sensores utilizados para interfaces perceptivas em

robótica segundo Russell e Norving (2004):

Telêmetros para calculo de distância entre objetos e obstáculos. Exemplo:

sonar;

Sensores táteis para reconhecimento de batidas e limites de ambientes.

Exemplo: painéis de choque e peles sensíveis ao toque;

GPS para posicionamento absoluto do agente;

Sensores de tratamentos de imagens para reconhecimento de padrões,

objetos e ambientes utilizando visão computacional. Exemplo: câmeras;

Page 29: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

21

Sensores proprioceptivos informam ao agente dados sobre o próprio

agente. Exemplo: decodificadores de eixos para odometria;

Sensores inerciais para informações sobre forças externas. Exemplo:

giroscópio.

2.6.4 Efetuadores

Para que agentes físicos possam se locomover ou mudar a forma de seus

corpos, este precisa de meios que efetuem essas mudanças. Mecanismos populares

para a mudança de estado, tanto de manipuladores quanto para locomoção, de

robôs móveis são os motores elétricos. Outros efetuadores ainda são utilizados

como atuação pneumática, por gás comprimido, e atuação hidráulica que utiliza

fluidos pressurizados (RUSSELL e NORVING 2004).

Russell e Norving (2004) ainda chamam a atenção para a estrutura

corporal e a comunicação digital do agente físico, como efetuadores, que unidos aos

sensores e outros efetuadores formam a totalidade de um robô.

2.6.5 Percepção

Os resultados do sensoriamento do ambiente geram informações que

devem posteriormente ser processadas e interpretadas pelo agente. A percepção é

uma tarefa difícil, pois em alguns casos a incerteza agrega informações incompletas

do ambiente, parcialmente observável, ruído dos sensores e sinais parecidos para

diferentes estados. Para uma tomada de decisão correta por parte do agente físico

as representações do ambiente e bases de conhecimentos devem ter informações

suficientes para a decisão final, e devem estar estruturadas de forma que seja fácil a

atualização (RUSSELL e NORVING 2004).

2.6.6 Robôs Móveis: Principais Desafios

Segundo Sales, Osorio e Wolf (2011) robôs móveis executam três tarefas

principais: localização, mapeamento e navegação. São esses os principais desafios

do projeto de um agente dessa classe. A localização consiste na tarefa de estimar o

Page 30: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

22

local aonde se encontra o robô, dentro de um ambiente conhecido, utilizando as

leituras dos sensores. O mapeamento se encarrega da representação do ambiente

baseado nos sensores e a localização do robô. A navegação une dados dos

sensores, mapeamento e localização para tomada de decisão sobre movimentação

segura do robô no ambiente.

Para a implementação de um robô móvel com a habilidade de navegar no

ambiente autonomamente, seja esse ambiente variável com salas, paredes, mesas

e prateleiras, o robô necessita saber sua localização aproximada, o mapa do

ambiente, caminhos e rotas, origem e destino da movimentação (SALES, OSORIO e

WOLF 2011).

2.7 Sistemas de Localização

2.7.1 GPS (Global Positioning System)

Segundo Fagundes (2008) o sistema de localização para ambiente aberto

largamente empregado, e que se transforma em sinônimo de localização em

sistemas computacionais, é o GPS (Global Positioning System). Criado em 1970

pelo Departamento de Defesa Norte-Americano o GPS, nos dias atuais, é uma

ferramenta usual e de grande valor na sociedade moderna. Utilizando-se de 24

satélites na orbita da terra que emitem rádio frequências codificadas, aparelhos com

a tecnologia de recepção destas, e com acesso a pelo menos três satélites, podem

calcular, através de técnicas de trilateração, a localização absoluta do dispositivo

com alto nível de precisão (BORENSTEIN et al, 1997).

Gothard (apud, BORENSTEIN et al, 1997) relata que com o temor de que

mal intencionados pudessem se utilizar da tecnologia do GPS para fins de

bombardeios e ataques militares, o governo dos Estados Unidos resolveu aplicar um

erro no sinal que diminuísse a precisão da localização para 100 metros, esse

dispositivo é conhecido como SA (Selective Availability). Gothard (apud,

BORENSTEIN et al, 1997) realizou testes de precisão do GPS quando o SA fora

desligado durante um período de testes da forças áreas americanas, os resultados

demonstraram que a precisão do GPS teria um erro de 4 a 60 metros. Em 2000 o

governo dos Estados Unidos descontinuou o uso do Selective Availability tornando o

GPS mais preciso para uso civil e comercial (OFFICIAL U.S., 2014).

Page 31: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

23

Fagundes (2008) aponta ainda a dificuldade do funcionamento satisfatório

dos sistemas GPS em ambientes fechados, onde o erro é atenuado por

interferências e refrações do sinal dos satélites nas construções.

2.7.2 Odometria

A odometria é uma das técnicas mais utilizadas para localização e

navegação de robôs móveis. A técnica conta as revoluções das rodas do robô,

assim utilizando equações simples pode-se obter o deslocamento linear do robô no

espaço (BORENSTEIN et al, 1997).

A principal desvantagem da odometria é o acumulo de erros durante a

trajetória percorrida, sendo o desafio da utilização da técnica o emprego de cálculos,

ou outros métodos, para correção dos erros. As causas dos erros estão estritamente

ligadas às revoluções das rodas e são classificados em dois tipos: erros sistemáticos

e erros não sistemáticos. Erros sistemáticos são aqueles que têm sua causa

principal em imperfeições no sistema, o sistema se refere ao equipamento físico do

robô, por exemplo, rodas com diâmetros diferentes e incertezas sobre os valores

reais de distância entre eixos. Erros não sistemáticos são aqueles causados pelo

ambiente em que o robô está se locomovendo, imperfeições no solo e perda de

atrito resultam em calculo de revoluções que não obtiveram resultados na

locomoção, levando ao erro na trajetória real (BORENSTEIN et al, 1997).

2.7.3 Posicionamento Wi-Fi

Redes sem fio Wireless Fidelity foram lançadas em 1999 em conjunto

com a especificação 802.11 pela IEEE (Institute of Electrical and Electronic

Engineers). Hoje essa especificação e seus complementos são conhecidos pelo

termo Wi-Fi (CARVALHO 2007).

Ambientes com instalações de pontos de acesso a redes sem fio tornam-

se cada vez mais normais nos dias atuais, estas redes sem fio possibilitam a

dispositivos móveis acesso a internet e serviços de redes de computadores. A

massiva instalação dessas redes sem fio possibilitam também outras aplicações

como técnicas de localização dos dispositivos que as usam (CARVALHO 2007).

Page 32: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

24

O modo mais utilizado para localização em redes Wi-Fi é o método de

Fingerprint, que consiste em duas etapas: treinamento e localização. Na etapa de

treinamento são armazenadas as diferentes potências de sinais de cada ponto de

acesso em diferentes localizações, através de leituras das potencias por um

dispositivo móvel. O resultado desse treinamento será a impressão digital, ou as

características, dos locais treinados referentes às potencias dos pontos de acesso.

Após a etapa de treinamento o dispositivo móvel realiza leituras das potencias e

estas podem ser comparadas com as armazenadas, determinando a localização do

dispositivo através de técnicas determinísticas ou probabilísticas. As técnicas

determinísticas tratam os pontos de acesso Wi-Fi como pontos conhecidos no

espaço e então os valores lidos são aplicados em regras de triangulação e

trilateração, calculando a aproximação da localização do dispositivo. As técnicas

probabilísticas são genéricas, e encontram a posição mais provável para a

localização do dispositivo em relação às leituras das potencias com as obtidas na

fase de treinamento. Técnicas probabilísticas são mais utilizadas por obterem

melhores resultados em ambientes variados e com pouco conhecimento sobre os

pontos com métricas reais (CARVALHO 2007).

2.7.3.1 Posicionamento Wi-Fi Utilizando Controles Fuzzy

Alonso et al. (2009) descreve a utilização do Fingerprinting Wi-Fi obtendo

as aproximações das posições por controles fuzzy. A etapa de treinamento segue o

mesmo princípio descrito no tópico anterior.

Após a obtenção dos dados das variações de sinais para cada local ao

que se procura inferir a localização, Alonso et al. (2009) utiliza o sistema KBCT

(Knowledge Base Configuration Tool), para tratar estes dados. O KBCT objetiva a

construção de classificadores fuzzy, aplicando técnicas de aprendizado de máquina

na extração de conhecimento, lógico útil, de conjuntos de dados.

Através da ferramenta, o conjunto de dados referentes às variações dos

sinais é submetido a um algoritmo de árvore de decisão fuzzy, uma variação fuzzy

das árvores de decisão clássicas, que generaliza e gera as regras de produção para

a aproximação da posição com base em partições previamente definidas.

Page 33: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

25

Os resultados do trabalho de Alonso et al. (2009) demonstram que a

utilização de controles fuzzy, com regras obtidas através de aprendizado de

máquina, possuem uma taxa de acertos maior que a dos métodos normalmente

utilizados. Ainda destacam que com o método aplicado não houve diferenças

consideráveis no desempenho da aproximação com diferentes quantidades de

amostras coletadas.

2.7.3.2 Posicionamento Wi-Fi Utilizando Redes Neurais

Battiti, Le e Villani (2002) descrevem a utilização do Fingerprinting Wi-Fi

obtendo as aproximações das posições através de redes neurais. No trabalho

desenvolvido utilizaram apenas três pontos de acesso para a amostragem das

variações de sinal em cada localização.

Após a obtenção das amostras estas foram classificadas, com suas

respectivas saídas desejadas, e submetidas para o treinamento com uma rede

neural de múltipla camada com a seguinte arquitetura: três neurônios de entrada,

uma para cada sinal de Wi-Fi, oito neurônios na camada escondida e duas na

camada de saída, paras as coordenadas x e y. O algoritmo de treinamento utilizado

foi a das secantes de um passo, com funções sigmoides de ativação do neurônio.

Battiti, Le e Villani (2002) concluem o trabalho demonstrando um erro de

aproximadamente 2.3 metros tanto para x quanto para y nas aproximações da

localização para cada local treinado. Ainda destacam que a abordagem empregada

com redes neurais, obteve melhores resultados que as comparadas na bibliografia

com outras metodologias.

2.8 Placa IOIO Android

O IOIO é uma plataforma de protótipos de código aberto, um tipo de

sistema digital de prototipação, que tem como objetivo facilitar a integração entre

software e hardware, Figura 3. A plataforma foi desenvolvida especialmente para

que dispositivos eletrônicos fossem construídos utilizando-os em conjunto com

celulares e tablets Android (MONK, 2012). A plataforma pode se conectar a

Page 34: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

26

componentes eletrônicos de diversos tipos, como sensores para sentir o ambiente

ao seu redor, e ao mesmo tempo controlar luzes, motores e outros atuadores

(GÖBEL, Stephan et al, 2011).

Figura 8 – Placa de prototipação IOIO e suas pinagens.

Fonte: Amphan ChiangMai3.

O microprocessador do IOIO, um PIC (Programmable Interface

Controller), possui um software fixo, de fábrica, que retém a lógica necessária para

comunicação e execução de comandos genéricos. A facilidade de uso do IOIO está

diretamente ligada a está ideia, o dispositivo Android por meio de um aplicativo

escrito com uso da API Java fornecida para a placa, acessa diretamente por

comunicação ADB (Android Debug Bridge) ou TCP (Transmission Control Protocol)

virtual, utilizando USB ou Bluetooth, pinos de entrada e saída (GÖBEL, Stephan et

al, 2011).

3 Disponível em: <http://3.bp.blogspot.com/-jnaTUc7CD-U/T83-

PHH0M6I/AAAAAAAAArs/e2NBf3lrF8Y/s640/ioio+board.jpg> Acesso em 13 maio 2014.

Page 35: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

27

3 Material e Métodos

3.1 Interface Robótica

Na construção da interface robótica foi utilizado o Kit Robô RC-FLS. Esse

kit contém dois servos motores de rotação continua, com respectivas rodas a serem

acopladas a eles, um chassi de metal para a base do robô móvel, e sensores de

linha. O kit Robô serviu como base para a interface e foi modificado com sensores

de ultrassom, para localização de obstáculos, rodas dianteiras para melhor

locomoção e um suporte de celular, utilizado em carros, acoplado em cima de uma

lixeira, simulando uma carapaça para esconder o sistema eletrônico do robô. Na

base do robô estará localizada a placa de prototipagem IOIO que realizará o controle

do mesmo.

Um celular modelo RAZR-i da Motorola, com sistema operacional Android,

foi colocado no suporte de celular e fara a comunicação entre o software, sistema

inteligente do robô, e o IOIO através de conexão Bluetooth.

Figura 9 – Kit Robô RC-FLS modificado.

Fonte: Elaborada pelo Autor.

Page 36: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

28

3.2 Aplicativo Android Controlador da Interface Robótica

Para o controle do robô de forma autônoma foi desenvolvido um aplicativo

Android, projetado seguindo o diagrama de atividades da Figura 10. O aplicativo

processa paralelamente cinco atividades principais que serão descritas nesse tópico.

A atividade da interface do usuário, que será a partir daqui chamada pela

sigla AIU, é a atividade inicial do aplicativo. Essa atividade tem a responsabilidade

de: iniciar os componentes do avatar virtual do agente artificial de conversação

Safira, e inicializar mais três atividades para controle do robô. Ainda é responsável

por captar sinais das outras atividades que mudem o estado da interface de usuário.

A atividade que trata do sistema artificial de conversação, que inicializa o

sistema Safira, o serviço de reconhecimento de voz e síntese de voz, é inicializada

pela AIU. Para o funcionamento dessa atividade um fluxo de processos ocorre de

forma ordenada. Primeiramente o reconhecimento de voz é ativado, e fica ouvindo

por reconhecimentos de voz no microfone do dispositivo (1). Caso uma palavra ou

frase seja reconhecida, o sistema de reconhecimento de voz dispara um sinal, que a

atividade recebe e transmite o resultado para o processamento de linguagem natural

do sistema Safira (2). O resultado do processamento de (2) pode ser uma resposta

em forma escrita, oriunda da base de conhecimento, ou uma resposta em forma

escrita e uma ação a ser executada pelo robô (3). Caso a resposta seja em forma

escrita e uma ação o sistema Safira dispara um sinal (4). A resposta escrita é então

submetida à síntese de voz que quando completa a transformação do escrito para a

forma de áudio começa a transmitir o som no dispositivo, disparando um sinal

referente ao inicio da fala, e quando o som já foi todo transmitido dispara o sinal de

fim de fala (5). A AIU quando inicializa a atividade do sistema de conversação,

adiciona ouvintes para os sinais descritos em (5). Estes sinais são importantes para

as animações da boca do avatar virtual. A atividade segue os fluxos descritos acima

em repetição continua até que a aplicação seja encerrada.

A atividade de detecção movimento objetiva uma maior imersão do avatar

virtual sob o ambiente. Subtrações de imagens, capturadas pela câmera frontal do

dispositivo em tempo real, possibilitam a localização de movimento dentro dos

Page 37: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

29

limites de visão da câmera do dispositivo. Caso ocorra movimento o sistema de

detecção de movimento dispara um sinal de detecção. A AIU contém ouvintes para

esse sinal, e quando captados mudam a localização dos olhos no avatar virtual,

como se o avatar estivesse acompanhando o movimento do ambiente. Essa

atividade continua seu fluxo em repetição até que a aplicação seja encerrada.

Para a conexão do dispositivo com a placa IOIO, a qual controla os

efetuadores e sensores, a interface de programação da placa necessita por padrão

estar em outra atividade. Essa atividade é inicializada pela AIU, mas fica hibernada

até que uma conexão seja efetuada com sucesso com a placa, através de

comunicação bluetooth. Após a conexão a atividade chama métodos de inicialização

dos pinos do circuito, nessa etapa é instanciado o objeto “Robot” que tem agregado

a ele os objetos “ServoMotor”, “UltrasonicSensor” e “Navigation” (1). Em seguida

inicia a repetição central do fluxo de rotinas a serem executadas pelo circuito (2). No

caso o método “run”, do objeto “Robot,” é chamado a cada iteração de (2), esse

método executa a tomada de decisão pela navegação fuzzy dependendo do

mapeamento, origem e destino requeridos de navegação, e localização do robô, que

será descrita com mais detalhes adiante. Essa atividade ainda adiciona um ouvinte

ao sinal disparado descrito em (4) do paragrafo anterior. Sendo esse sinal a forma

de entrada para troca de estados do robô, como entrada do destino pelo qual o robô

deve alcançar.

Por fim a atividade de localização é a última a ser inicializada, pelo objeto

de localização agregado ao objeto de mapeamento. Essa atividade tem a

responsabilidade de processar o escaneamento de potência dos rádios Wi-Fi e

estimar a localização do dispositivo, em repetição continua a cada 100

milissegundos. Essa atividade ao ser inicializada recebe um atributo do tipo de

algoritmo a ser utilizado para estimativa. Os algoritmos que podem ser utilizados

serão descritos no próximo tópico. Quando o algoritmo em uso termina o processo

de uma estimativa, a atividade dispara um sinal, que o objeto de localização capta e

por sua vez transmite a localização para o objeto de mapeamento, tornando a

localização atual do dispositivo, já mapeada, acessível ao objeto de navegação para

o processamento e inferência de tomada de decisão.

Page 38: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

30

Figura 10 – Diagrama de atividades do aplicativo controlador do robô.

Page 39: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

31

3.3 Sistema de Localização Wi-Fi

Para a localização do robô em ambiente real, foram utilizado valores de

potência de rádios Wi-Fi já instalados pra uso de estudantes nos blocos 20 e 21 do

campus da UNIFENAS Alfenas MG. Foi utilizado nesse trabalho o uso de

localização baseada em padrões de potências pelo método de Fingerprinting,

descrito no tópico 2.7.3.

Foram utilizados quatro rádios para o estudo dos padrões de potência em

certos pontos de referência, importantes para tomada de decisão de navegação do

robô. Os pontos de referência são portas de salas e bifurcações. As posições dos

elementos participantes da localização são mostradas na Figura 11.

Figura 11 – Ambiente de atuação do robô.

Fonte: Elaborada pelo Autor.

Após a escolha dos pontos de referência foi desenvolvido um pequeno

aplicativo Android para a fase de treinamento do Fingerprint. Utilizando a interfaces

340

70

160

250

Page 40: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

32

de programação que tem acesso a todos os aspectos de gerenciamento de

conexões Wi-Fi do dispositivo Android como:

Listas de redes configuradas;

A rede Wi-Fi ativa do momento;

Resultados de escaneamento de rádios Wi-Fi próximos;

O aplicativo desenvolvido acessa os dados dos escaneamentos Wi-Fi, a cada 100

milissegundos, e registra em banco as informações descritas no diagrama de classe

abaixo:

Figura 12 – Diagrama da classe Sample.

Fonte: Elaborada pelo Autor

Para obtenção das potências dos rádios, registrados nos atributos AccesPoint

(Figura 12), a interface robótica foi colocada parada nos pontos de referência com o

aplicativo em execução. Foram obtidas 400 amostras de cada ponto cardeal, sul,

norte, leste e oeste, registrado no atributo Bussola (Figura 7), para cada ponto de

referência (Figura 6), registrado no atributo Lugar (Figura 7). Para estudo do

fenômeno da reflexão no sinal Wi-Fi, descrito por CARVALHO (2007), foram obtidas

amostragens no local sem nenhum movimento e com movimento de pessoas.

Na fase de localização do Fingerprint foram utilizadas quatro abordagens

para o estudo e testes da eficiência de cada um:

Distância Euclidiana;

Page 41: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

33

Distância de Manhattan;

Controle Fuzzy;

Redes Neurais.

3.3.1 Fase de Localização Utilizando Distância Euclidiana

Com as amostras obtidas na fase de treinamento foram montados vetores

com os atributos registrados: , onde leia-

se AccesPoint. Para a localização é obtida uma amostra na atual posição do robô

durante seu funcionamento. Essa amostra é então transformada em um vetor:

. Pode-se notar que na posição do lugar no vetor

da amostra não é atribuído valor à posição do atributo Lugar.

O próximo passo é comparar o vetor atual lido com cada vetor dos de

treinamento armazenados em uma lista, aplicando o algoritmo da distância

Euclidiana, que segue a seguinte equação:

√∑

Equação 7.

Onde é a posição do atributo do vetor lido em funcionamento, e é a posição do

atributo do vetor de treinamento, o calculo ocorre para todos os atributos menos o

atributo Lugar , por isso a iteração vai até , que é apenas uma classificação do

lugar ao qual o vetor corresponde. O calculo da distância retorna o valor que na

primeira iteração, primeira comparação dos vetores de treinamento, é armazenada

conjuntamente com o índice da iteração, que corresponde à posição do vetor de

treinamento na lista. A partir da segunda iteração o valor armazenado só é

permutado quando o resultado da distância Euclidiana é menor que o armazenado,

e então se armazena também o índice da iteração onde foi feita a permuta. Em

outras palavras esse processo procurará o vetor de atributos mais próximo daquele

que foi lido pelo robô em funcionamento. Ao termino das comparações o índice

armazenado é a referencia para a posição do vetor mais próximo do lido na lista de

Page 42: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

34

vetores de treinamento. Com acesso ao vetor mais próximo pode-se verificar o

atributo Lugar do mesmo e inferir a localização atual do robô no ambiente.

3.3.2 Fase de Localização Utilizando Distância de Manhattan

O método de Distância de Manhattan utiliza os mesmos passos descritos

no tópico 3.3.1. A única mudança ocorre na equação utilizada para comparação dos

atributos dos vetores. Segue abaixo a equação:

∑| |

Equação 8.

3.3.3 Fase de Localização Utilizando Controle Fuzzy

Para a construção do controle fuzzy para localização, foi utilizado o

Knowledge Base Configuration Tool (KBCT), descrito por Alonso et al. (2009). A

última atualização do sistema KBCT passou a ser chamada GUAJE (Generating

Understandable and Accurate Fuzzy Models in a Java Environment), e está sob

licença de código aberto.

As amostras da fase de treinamento foram colocadas em um arquivo

texto, aonde a primeira linha representava os nomes de cada variável, descritas na

Figura 12, separadas por vírgulas limitando assim as colunas. Os dados foram

colocados nas linhas seguintes, uma amostra por linha, separados por vírgulas,

cada uma na sua coluna respectiva a variável à qual pertence e foi descrita na

primeira linha. Os dados do atributo “Lugar” foram transformados em números

correspondentes aos lugares, para que a coluna fosse utilizada como saída

desejada. Esse é o formato de arquivo de entrada para conjuntos de dados no

sistema GUAJE.

Após a formatação o conjunto de dados foi submetido ao sistema GUAJE

aonde foram aplicadas as funções de indução de partições e regras de produção,

Page 43: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

35

utilizando árvores de decisão fuzzy. As regras e partições geradas pelo GUAJE

foram convertidas para a Fuzzy Control Language assim possibilitando a submissão

destas para serem usadas no programa do robô, com a biblioteca jFuzzyLogic.

3.3.4 Fase de Localização Utilizando Redes Neurais

Na localização por intermédio de redes neurais utilizou-se uma rede do

tipo Feedforward com a seguinte arquitetura (Figura 13): cinco neurônios de entrada,

quatro para cada rádio Wi-Fi e uma para o ângulo da bússola, doze neurônios na

camada intermediária, e cinco saídas, uma para cada ponto de referência a ser

localizado (Figura 11). Foram utilizados neurônios de bias na camada de entrada e

intermediária. Todos os neurônios utilizam funções de ativação sigmoides.

Figura 13 – Arquitetura da rede neural.

Fonte: Elaborada pelo Autor.

Assim como realizada no controle fuzzy, as amostras foram tratadas em

um arquivo texto de formato compatível com a biblioteca de redes neurais para

ambiente Java, Encog, para treinamento da rede. Onde as amostras foram

distribuídas em linhas, uma amostra por linha no seguinte formato: os quatros

primeiros números são as potências dos rádios Wi-Fi, em seguida o ângulo da

bússola, essas são as entradas. As entradas foram normalizadas nos limites de zero

e um, utilizando o método do máx-min:

Page 44: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

36

Equação 9.

Onde o valor normalizado é , e a entrada a ser normalizada. Por fim cinco

números que representam cada um uma localização desejada. A saída ativada com

o número um será a da localização a ser aprendida pela rede.

3.4 Navegação Fuzzy

Como descrito por Borenstein et al, (1997) imperfeições no solo ou perda

de atrito podem ocorrer durante o movimento do robô, e acarretar erros na

navegação. Ainda podem existir obstruções no caminho a ser percorrido, que

necessita de decisões de mudança de rota. A função de manter o robô na rota e

direção correta, além de tomar decisões acerca de obstáculos, durante sua

navegação entre um destino e origem, foi delegada a um controle fuzzy.

O controle fuzzy infere sob informações do ângulo do robô no momento

de inferência, uma taxa de positivos sobre a localização atual, origem, destino e

distância de objetos próximos, obstáculos, oriundos de quatro sensores de

ultrassom. As partições fuzzy para cada uma dessas entradas estão representadas

nas figuras: 14, 15, 16, 17 e 18.

O resultado da defuzzificação é aplicado nas partições “Motor Esquerdo”

e “Motor Direito” (Figura 19). Atuando na frenagem, velocidade e direção do robô

pelo valor de rotação do motor.

Page 45: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

37

Figura 14 – Partição fuzzy ângulo.

Fonte: Elaborada pelo Autor.

Figura 15 – Partição fuzzy taxa de positivos.

Fonte: Elaborada pelo Autor.

Page 46: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

38

Figura 17 – Partição fuzzy origem e destino.

Fonte: Elaborada pelo Autor.

Figura 18 – Partição fuzzy ultrassom.

Fonte: Elaborada pelo Autor.

Page 47: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

39

Figura 19 – Partição fuzzy servo motor.

Fonte: Elaborada pelo Autor.

3.5 Mapeamento Utilizando Grafos

Para que o ambiente de atuação do robô fosse representado

computacionalmente, utilizou-se teoria dos grafos. Onde os pontos de referência são

os vértices, e os caminhos as arestas do grafo (Figura 11).

Quando o robô recebe o comando para que caminhe até um novo local, o

algoritmo de menor caminho de Dijkstra é executado levando em consideração a

posição atual do robô e o ponto de referência ao qual se deseja chegar. O resultado,

os vértices que o robô tem de passar pra chegar ao destino, é armazenado em uma

fila. A cada ponto de referência localizado com sucesso, retira-se o próximo vértice

da fila que será o destino do robô, até que chegue ao último vértice, o destino final.

3.6 Registro de Dados Usando Mapeamento Objeto-Relacional

Para persistência de dados da aplicação, como amostras colidas das

potências Wi-Fi e dados de “Caixa Preta” sobre os sensores e navegação do robô,

foi desenvolvida uma classe abstrata que implementa um mapeamento objeto-

Page 48: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

40

relacional para Android 4 . Utilizando as interfaces de programação nativas para

persistência do Android, que utiliza o Sistema de Gerenciamento de Banco de

Dados (SGBD) SQLite versão 3.

O funcionamento do mapeamento segue o diagrama de classes da Figura

20.

Figura 20 – Diagrama de Classes do ORM.

Fonte: Elaborada pelo Autor.

Quando uma instância de classe filha de “MproEntity” chama o método herdado

“Save”, ocorre o mapeamento através de reflexão. Criam-se as instruções

necessárias para que a tabela com o nome da classe filha seja criada, usando os

campos públicos destas como colunas, caso ainda não tenha sido criada. Os

campos da instância são registrados em uma nova inserção seguindo as colunas

respectivas. Depois das instruções criadas estas são enviadas para a classe de

4 MproEntity para Android disponível em: https://github.com/Mpro3Developer/MproEntity

Page 49: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

41

abstração dos mecanismos de persistência “LauDB”, que ira executa-las no SQLite.

O contrário ocorre quando se resgata os dados do banco para as instâncias.

Instruções de selecionamento são executadas por “LauDB” que envia os dados para

“MproEntity” que por sua vez designa estes aos campos da instância respectivos às

colunas da tabela. Uma instância resgatada quando invoca o método “Save” não

realiza uma inserção, mas sim a atualização desta instância, linha, no banco

possibilitado pelo código que a classe pai abstrai. O código é também importante

quando o método “Delete” é invocado, assim possibilitando a deleção da instância

correspondente do banco.

3.7 Sistema Artificial de Conversação

Para que o robô possa responder a tarefas passadas a ele através de

linguagem natural, foi utilizado o agente inteligente de interação com o usuário por

reconhecimento de voz, desenvolvido em trabalhos anteriores, Safira. Para

construção do conhecimento, foi utilizado o Sistema Gestor de Conhecimento para

Safira (SGCS) (CASTELLO, NASCIMENTO e CARVALHO, 2013). A interface de

programação para utilização desse sistema foi incrementado, para que pontes entre

o conhecimento e as resultantes ações do robô sejam efetuadas. Assim

possibilitando escrever funções de ativação para certas respostas oriundas do

sistema artificial de conversação.

As interfaces gráficas e interfaces de programação, para o agente de

conversação Safira, criadas por Castello, Nascimento e Carvalho (2013), baseadas

em tecnologias web, foram inseridas no aplicativo controlador através de um

componente que carrega um navegador de internet na atividade de interface gráfica

do usuário. Esse componente possibilita que métodos escritos em Java, no código

do aplicativo, possam ser invocados pelo código javascript rodando na página

carregada do navegador.

Para reconhecimento e síntese de voz foram usadas as interfaces de

programação disponíveis no Android. O serviço de reconhecimento de voz e síntese

de voz necessita de conexão com a internet.

Page 50: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

42

4 Resultados

4.1 Sistema de Localização Wi-Fi

O resultado da fase de amostragem das potências para cada rádio Wi-Fi,

durante um domingo sem nenhum movimento no bloco 21 do câmpus UNIFENAS-

Alfenas, é mostrado no gráfico da Figura 21.

Figura 21 – Gráfico de amostragens Wi-Fi.

Fonte: Elaborada pelo Autor.

O gráfico da Figura 22 mostra o resultado das amostragens com movimento em uma

segunda feira durante dia de aula no bloco 22 do câmpus UNIFENAS-Alfenas.

Page 51: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

43

Figura 22 – Gráfico de amostragens Wi-Fi.

Fonte: Elaborada pelo Autor.

4.1.1 Localização por Redes Neurais

O treinamento da rede neural com os algoritmos de aprendizado por

Backpropagation e Resilientpropagation, com condição de parada para erro igual a

0.01, obtiveram os seguintes resultados:

Tabela 1 – Resultados treinamento redes neurais para erro de 0.01.

Backpropagation Resilientpropagation

Erro: 0.00992188 0.00948174

Total de Iterações: 14113 908

Fonte: Elaborada pelo Autor.

Page 52: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

44

Os gráficos das figuras 23 e 24 representam o decaimento do erro para o

treinamento, resultando nos dados apresentados na Tabela 1. Onde no eixo está o

valor do erro para a iteração do eixo .

Figura 23 – Decaimento do erro por Backpropagation.

Fonte: Elaborada pelo Autor.

Figura 24 – Decaimento do erro por Resilientpropagation.

Fonte: Elaborada pelo Autor.

Page 53: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

45

Nas figuras 25 e 26 estão os gráficos de aproximação da rede neural em

comparação com as saídas desejadas do conjunto de treinamento, para os dois

algoritmos de aprendizado utilizados. As linhas descritas pela letra “E” são as saídas

desejadas, e as linhas descritas por “R” são as aproximações da rede neural.

Figura 25 – Aproximação por Backpropagation.

Fonte: Elaborada pelo Autor.

Figura 26 – Aproximação por Resilientpropagation.

Fonte: Elaborada pelo Autor.

Page 54: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

46

Obteve-se ainda um treinamento para utilização com o aplicativo

procurando um maior decaimento do erro, utilizando Resilientpropagation. Onde se

alcançou o erro de em 22764 iterações. O gráfico da Figura 27 apresenta a

aproximação desse treinamento, seguindo a lógica das figuras 25 e 26.

Figura 27 – Aproximação por Resilientpropagation com menor erro.

Fonte: Elaborada pelo Autor.

4.1.2 Localização por Lógica Fuzzy

O método descrito no tópico 3.3.3 foi aplicado obtendo as partições fuzzy

(Figura 28, 29, 30, 31 e 32) para as entradas. E a partição da Figura 33 como saída

classificando o lugar de localização.

Page 55: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

47

Figura 28 – Partição wifi1 gerada.

Fonte: Elaborada pelo Autor.

Figura 29 – Partição wifi2 gerada.

Fonte: Elaborada pelo Autor.

Page 56: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

48

Figura 30 – Partição wifi3 gerada.

Fonte: Elaborada pelo Autor.

Figura 31 – Partição wifi4 gerada.

Fonte: Elaborada pelo Autor.

Page 57: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

49

Figura 32 – Partição compass (Bússola) gerada.

Fonte: Elaborada pelo Autor.

Figura 33 – Partição place (Lugar) gerada.

Fonte: Elaborada pelo Autor.

Page 58: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

50

Partindo das partições a ferramenta GUAJE (Generating Understandable

and Accurate Fuzzy Models in a Java Environment) ainda induziu 113 regras de

produção para as amostragens submetidas. Segundo a ferramenta o erro das regras

foi de 0.04. A Tabela 2 foi gerada pela ferramenta e mostra os resultados das

inferências, utilizando as regras induzidas, para amostras que foram observadas e

que contém a classe correta.

Tabela 2 – Inferência em relação ao observado para cada lugar.

Observado/Inferência 1 2 3 4 5

1 693 0 0 0 0

2 50 500 13 0 0

3 0 7 577 0 0

4 0 0 0 682 0

5 0 0 39 0 600

Fonte: Elaborada pelo Autor.

O gráfico da Figura 34 mostra a aproximação da localização utilizando as regras de

produção e partições geradas. As linhas descritas pela letra “E” são as saídas

desejadas, e as linhas descritas por “R” são as aproximações da inferência fuzzy.

Figura 34 – Partição place (Lugar) gerada.

Fonte: Elaborada pelo Autor.

Page 59: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

51

4.2 Navegação

Os sistemas de navegação do robô foram testados e durante os testes

dados de “caixa preta” foram registrados. Dados sobre origem e destino, valores das

distâncias dos sensores de ultrassom e gasto de memória, como mostra o diagrama

de classe de “BlackBox” (Figura 20). Resultando nos gráficos apresentados nesse

tópico.

4.2.1 Navegação Fuzzy

O gráfico das figuras 34, 35 e 36 mostram o ângulo registrado pela

bússola do dispositivo em relação à distância obtida pelos sensores de ultrassom,

para uma navegação normal, sem obstáculos. Partindo do vértice 1, banheiro, até a

lanchonete vértice 5 (Figura 11), utilizando redes neurais para localização.

Figura 34 – Gráfico da bússola em relação com ultrassom esquerdo.

Fonte: Elaborada pelo Autor.

0

100

200

300

400

500

600

1 8

15

22

29

36

43

50

57

64

71

78

85

92

99

10

6

11

3

12

0

12

7

13

4

14

1

14

8

15

5

16

2

16

9

Bússola

UE

Page 60: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

52

Figura 35 – Gráfico da bússola em relação com ultrassom direito.

Fonte: Elaborada pelo Autor.

Figura 36 – Gráfico da bússola em relação com ultrassom frontal.

Fonte: Elaborada pelo Autor.

0

100

200

300

400

500

600

1 8

15

22

29

36

43

50

57

64

71

78

85

92

99

10

6

11

3

12

0

12

7

13

4

14

1

14

8

15

5

16

2

16

9

Bússola

UD

0

100

200

300

400

500

600

1 8

15

22

29

36

43

50

57

64

71

78

85

92

99

10

6

11

3

12

0

12

7

13

4

14

1

14

8

15

5

16

2

16

9

Bússola

UF

Page 61: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

53

O gráfico das figuras 37, 38 e 39 mostram o mesmo percurso percorrido das figuras

anteriores, mas com uma interação externa tirando o robô da rota prevista,

procurando testar o mecanismo fuzzy de retorno de rota correta.

Figura 37 – Gráfico da bússola em relação com ultrassom esquerdo com interação externa.

Fonte: Elaborada pelo Autor.

Figura 38 – Gráfico da bússola em relação com ultrassom direito com interação externa.

Fonte: Elaborada pelo Autor.

0

100

200

300

400

500

600

1

10

19

28

37

46

55

64

73

82

91

10

0

10

9

11

8

12

7

13

6

14

5

15

4

16

3

17

2

18

1

19

0

19

9

20

8

21

7

22

6

Bússola

UE

0

100

200

300

400

500

600

1

10

19

28

37

46

55

64

73

82

91

10

0

10

9

11

8

12

7

13

6

14

5

15

4

16

3

17

2

18

1

19

0

19

9

20

8

21

7

22

6

Bússola

UD

Page 62: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

54

Figura 39 – Gráfico da bússola em relação com ultrassom frontal com interação externa.

Fonte: Elaborada pelo Autor.

Por fim foi feito um pequeno teste, partindo do vértice 1, banheiro até a

porta do Núcleo de Educação a Distância, vértice 2, testando a inferência para

condições de obstáculos (Figuras 40, 41 e 42).

Figura 40 – Gráfico da bússola em relação com ultrassom esquerdo com obstáculo.

Fonte: Elaborada pelo Autor.

0

100

200

300

400

500

6001

10

19

28

37

46

55

64

73

82

91

10

0

10

9

11

8

12

7

13

6

14

5

15

4

16

3

17

2

18

1

19

0

19

9

20

8

21

7

22

6

Bússola

UF

0

100

200

300

400

500

600

1 5 9

13

17

21

25

29

33

37

41

45

49

53

57

61

65

69

73

77

81

85

89

93

97

10

1

Bússola

UE

Page 63: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

55

Figura 41 – Gráfico da bússola em relação com ultrassom direito com obstáculo.

Fonte: Elaborada pelo Autor.

Figura 42 – Gráfico da bússola em relação com ultrassom frontal com obstáculo.

Fonte: Elaborada pelo Autor.

4.3 Aplicativo Controlador

Os registros de “caixa preta” durante os testes obtiveram a quantidade de

memória gasta em bytes pelo aplicativo que é mostrado na Figura 43.

0

100

200

300

400

500

6001 5 9

13

17

21

25

29

33

37

41

45

49

53

57

61

65

69

73

77

81

85

89

93

97

10

1

Bússola

UD

0

100

200

300

400

500

600

1 5 9

13

17

21

25

29

33

37

41

45

49

53

57

61

65

69

73

77

81

85

89

93

97

10

1

Bússola

UF

Page 64: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

56

Figura 43 – Gráfico do uso de memória pelo aplicativo controlador.

Fonte: Elaborada pelo Autor.

4.4 Sistema Artificial de Conversação

Para as entradas do robô através de linguagem natural foi desenvolvida a

seguinte árvore de conhecimento Figura 44:

Figura 44 – Trecho de árvore de conhecimento

Fonte: Elaborada pelo Autor.

0

5000000

10000000

15000000

20000000

25000000

300000001 9

17

25

33

41

49

57

65

73

81

89

97

10

5

11

3

12

1

12

9

13

7

14

5

15

3

16

1

16

9

17

7

Memória

Memória

Page 65: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

57

Assim se o sistema artificial de conversação receber a entrada de reconhecimento

de voz “Vá para a lanchonete”, por exemplo, o motor de inferência chega à folha

com a resposta “Vamos lá”. Nessa folha foi adicionada uma ação, aonde é assinado

um nome de função que deverá ser executado no dispositivo Android Figura 45, que

por sua vez enviará comandos para a placa IOIO movimentando o robô até a

lanchonete.

Figura 45 – Função de ação assinada à folha da árvore.

Fonte: Elaborada pelo Autor.

Page 66: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

58

5 DISCUSSÃO

O presente projeto teve o objetivo de projetar um robô capaz de se

locomover no ambiente de forma autônoma através de localização Wi-Fi e por

entradas através de linguagem natural. A localização, à qual dependem as etapas

de mapeamento e navegação, foi sem dúvida a tarefa mais desafiadora. Sem uma

localização razoavelmente precisa não há movimentação segura. Pode-se verificar,

concordando com a bibliografia utilizada como referência, que a utilização de leituras

de potências Wi-Fi para localização em ambientes fechados é uma abordagem

funcional, mas que sofrem de erros pelas características naturais de ondas

eletromagnéticas. Foi possível verificar a diferença de variação dos gráficos das

potências, para dias sem movimento e com movimentação normal, onde ocorre

refração e reflexão. A grande vantagem do método, para soluções de localização em

ambiente fechado, são os gastos com sensoriamento que podem ser reduzidos

drasticamente, pois geralmente, como relatado na bibliografia, escritórios,

faculdades e prédios comerciais já possuem uma arquitetura de rádios Wi-Fi

instaladas. No presente projeto não foi necessária nenhuma configuração ou

instalação de rádios, o ambiente foi percebido como ele já se encontrava.

Sobre as abordagens de estudo das assinaturas das potências Wi-Fi,

para locais específicos no ambiente, pode-se verificar que a utilização de técnicas

de aprendizado de máquina foram melhores que as abordagens comumente

utilizadas. No futuro do presente projeto espera-se testar as várias técnicas

propostas. Ate o momento à procura de assinaturas nas amostragens por redes

neurais se mostraram satisfatórias.

Abordando os resultados sobre o treinamento das redes neurais utilizadas

no aplicativo, o método do Resilientpropagation se mostrou realmente muito mais

rápido, como conclui a bibliografia. Sendo uma técnica de certa forma derivada da

do Backpropagation, pode-se chegar aos mesmos resultados, mas em número

reduzido de iterações, e tempo.

O controle fuzzy utilizado pelo robô se mostrou funcional dentro do seu

objetivo principal, manter o robô na rota do destino à origem, como mostras os

resultados. As Figuras 37, 38, e 39 mostram os resultados da navegação e

descrevem a navegação com erros na trajetória. Esses erros foram realizados

Page 67: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

59

trocando deliberadamente o ângulo do robô em movimento, fora do seu caminho

normal, para verificar se este tornaria a voltar à rota correta. Retornando a Figura 11,

ondes estão os ângulos de referencia, pode-se observar pelos gráficos de

navegação que o robô fora colocado a direita da sua rota. A inferência fuzzy começa

a controlar a rotação das rodas, reduzindo a rotação da roda esquerda e

aumentando a da roda direita, para que haja movimento para a esquerda e o robô

retorne gradualmente ao ângulo de aproximadamente 340 graus, da rota normal

(Figura 37 5 ). Pode-se observar também que ocorreram duas trocas, pois são

notadas duas anomalias na trajetória, e sem que os sensores de ultrassom

acusassem obstáculos. Na Figura 40, observa-se que o sensor de ultrassom da

esquerda acusa um obstáculo. A inferência fuzzy então reduz a rotação da roda

direita e aumenta a da esquerda, movimento para a direita, tentando se esquivar do

obstáculo. Na Figura 41 ocorre o contrário, pois a partir da iteração 35, eixo x, o

ultrassom da direita detecta um obstáculo bem próximo, então a inferência fuzzy

reduz a rotação da roda esquerda e aumenta a da direita, movimento para a

esquerda. No teste descrito pela Figura 40 é notável que a navegação fuzzy, assim

que se vê livre do obstáculo retorna novamente para a rota correta.

A aplicação controladora mesmo com cinco atividades funcionando em

paralelo se mostrou fluida e com gasto de memória controlada (Figura 43). Não

chegando a utilizar todo o heap disponibilizado pela máquina virtual, de 30

megabytes, mantendo uma média de 20 megabytes durante sua execução.

Pretende-se no futuro realizar o mesmo estudo para o uso da CPU.

A utilização de bibliotecas com interfaces de programação para criação de

sistemas inteligentes, já testadas, consistentes, e fornecidas gratuitamente pela

comunidade científica, foram pontos cruciais da pesquisa. Pois de fronte aos

problemas pode-se rapidamente projetar e implementar a solução, sem a

necessidade de se preocupar em escrever e projetar a ferramenta.

5 O vídeo do teste onde os dados foram registrados pode ser conferido nesse link:

http://migre.me/kFiYZ

Page 68: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

60

6 CONCLUSÃO

No presente projeto foi apresentado um robô com navegação autônoma

no ambiente. A utilização de localização através de potências de pontos de acesso

Wi-Fi se apresentou uma forma barata, para ambientes com redes Wi-Fi já

instaladas. Os resultados utilizando a fase de localização do Fingerprinting com

redes neurais se mostrou aceitável. Em trabalhos futuros podem-se realizar mais

testes e comparar as redes neurais com outras abordagens, como o controle Fuzzy

com regras induzidas por aprendizado de máquina, realizando testes de métricas no

ambiente.

A navegação fuzzy se mostrou capaz de controlar a navegação

objetivando manter o robô sempre na rota correta entre origem e destino, sendo os

erros de trajetória obstáculos ou rotação em falso.

Testes mostraram ser funcional a agregação do sistema artificial de

conversação em conjunto com sistemas de reconhecimento e síntese de voz, para

entradas de comandos para uma interface robótica. Em trabalhos futuros pode-se

testar a abordagem de entrada através de sistema artificial de conversação com

métodos convencionais,

Page 69: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

61

REFERÊNCIAS

ALONSO, José M. et al. WiFi localization system using fuzzy rule-based classification. In: Computer Aided Systems Theory-EUROCAST 2009. Springer Berlin Heidelberg, 2009. p. 383-390.

ARAUJO, Jefferson Luiz da Silva; ALVES, João Antonio De Oliveira, Desenvolvimento Chatterbot em Cloud Computing. Trabalho de Conclusão de Curso (Graduação em Ciência da Computação) - Universidade José do Rosário Vellano, Alfenas - MG, 2011.

BATTITI, Roberto; LE, Nhat Thang; VILLANI, Alessandro. Location-aware computing: a neural network model for determining location in wireless LANs. University of Trento – Department of Information and Communication Technology, 2002.

BOREINSTEIN, J., EVERETT, HR., FENG L., e WEHE D.. Mobile Robot Positioning - Sensors and Techniques . Journal of Robotic Systems, Special Issue on Mobile Robots. Vol 14 No. 4, pp. 231 – 249. 1997.

BYRNE, RH., Global Positioning System Receiver Evaluation Results. Sandia Report SAND92-0457, Sandia National Laboratories, Alburquerque, NM, March 1993.

CARVALHO, Joel Filipe Machado. Localização de Dispositivos Móveis em Redes Wi-Fi. Departamento de Engenharias Universidade de Trás-os-Montes e Alto Douro Vila Real, 2007.

CASTELLO, Matheus de Barros; NASCIMENTO, Lorenzo Couto; CARVALHO, Marcos Alberto. Sistema Artificial de Conversação Utilizando Tecnologias de Reconhecimento e Síntese de Voz. 21º Simpósio Internacional de Iniciação Científica da USP - SIICUSP, 2013. Disponível em: <https://uspdigital.usp.br/siicusp/cdOnlineTrabalhoVisualizarResumo?numeroInscricaoTrabalho=3190&numeroEdicao=21>. Acesso em: 2 de maio de 2014.

CASTRO, Allan Jones B. de et al. Sintetizador Texto-Voz com Autômatos Adaptativos. Projeto de Formatura (PCS 2050) - Escola Politécnica, Universidade de São Paulo, São Paulo – SP, 2004. Disponível em: <http://www.coop4.eng.br/shibata/files/voicer.pdf>. Acesso em: 28 maio 2012.

Page 70: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

62

CINGOLANI, Pablo, JESUS, Alcalá-Fdez. jFuzzyLogic: a robust and flexible Fuzzy-Logic inference system language implementation. Fuzzy Systems (FUZZ-IEEE), 2012 IEEE International Conference on. IEEE, 2012.

DAMASCENO, Eduardo Figueiras; PEREIRA, Tatiane Valau; BREGA, José Remo. Implementação de Serviços de Voz em Ambientes Virtuais. INFOCOMP Journal of Computer Science, Lavras, v.4 n.3, Article 09, September. 2005. Disponível em: <

http://www.dcc.ufla.br/infocomp/artigos/v4.3/art09.pdf>. Acesso em: 28 maio 2012.

ESPINDOLA, Duany Cesar Souza, Chatterbot: um sistema de inferência para agentes de conversação utilizando Lógica de Predicados. Trabalho de Conclusão de Curso (Graduação em Ciência da Computação) - Universidade José do Rosário Vellano, Alfenas - MG, 2005.

FAGUNDES, Leonardo Peres, Técnicas de Localização de Dispositivos Móveis em Redes Wifi – TDOA. Trabalho de Conclusão apresentado como requisito parcial para obtenção do grau de Especialista – UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL, Porto Alegre – RS, 2008.

GÖBEL, Stephan et al. Using the Android Platform to control Robots. Kassel University Germany. Disponível em: <http://vejdani7.persiangig.com/Android/robot.pdf/download>. Acesso em 12 maio 2014.

GOTHARD, B.M., ETERSKY, R.D., e EWING, R.E., Lessons Learned on a Low-Cost Global Navigation System for the Surrogate Semi-Autonomous Vehicle. SPIE Proceedings, Vol. 2058, Mobile Robots VIII, pp 258 – 269, 1993.

HEATON, Jeff. Introduction to neural networks with Java. Heaton Research, Inc.,

2008.

OFFICIAL U.S., Government information about the Global Positioning System (GPS) and related topics. Disponível em: <http://www.gps.gov/systems/gps/modernization/sa/>. Acesso em: 11 março 2014.

MONK, Simon. Making Android Accessories with IOIO. O'Reilly Media, Inc., 2012.

REZENDE, Solange O., Sistemas Inteligentes Fundamentos e Aplicações, Editora Manole Ltda, Barueri-SP, 2003

RIEDMILLER, Martin; BRAUN, Heinrich. A direct adaptive method for faster backpropagation learning: The RPROP algorithm. In: Neural Networks, 1993., IEEE International Conference on. IEEE, 1993. p. 586-591.

Page 71: ROBÔ MÓVEL AUTÔNOMO PARA NAVEGAÇÃO EM AMBIENTE … · 2018-11-08 · RESUMO CASTELLO, Matheus de Barros. Robô Móvel Autônomo para Navegação em Ambiente Fechado Utilizando

63

Rich, Elaine, Knight Kevin, Inteligência Artificial. 2 ed. Makron Books, São Paulo, 1994.

RUSSEL, S; NORVIG, P. Inteligência Artificial. 2 ed. Rio de Janeiro: Elsevier, 2004. SALES, Daniel Oliva, OSORIO, Fernando Santos e WOLF, Denis Fernando. Topological Autonomous Navigation for Mobile Robots in Indoor Environments using ANN and FSM. I Conferência Brasileira em Sistemas Embarcados Críticos. São Carlos-SP, 2011.

TEIXEIRA, Sérgio e MENEZES, Crediné Silva. 2003. Facilitando o uso de Ambientes Virtuais através de Agentes de Conversação. Artigo apresentado no XIV Simpósio Brasileiro de Informática na Educação - SBIE - NCE/UFRJ 2003.

WEIZENBAUM, J. ELIZA - A Computer Program For the Study of Natural Language Communication Between Man and Machine. Communications of the ACM Volume 9, Number 1 (January 1966).