You are on page 1of 0

1

RECONHECIMENTO DE TRAJETRIA COM REDES NEURAIS



Giovanni Crestan
Leonardo Enomoto Araki
Thiago Antonio Grandi De Tolosa
Wnderson de Oliveira Assis
Wilson Carlos Siqueira Lima Jnior


IMT Instituto Mau de Tecnologia Escola de Engenharia Mau


1. Introduo

As redes neurais vm sendo estudadas h alguns anos, mas ainda no
so aplicadas em larga escala, principalmente por causa da sua
complexidade e falta de profissionais capazes de criar redes confiveis,
que utilizem todos os benefcios propostos por elas.

As redes neurais so baseadas no comportamento dos neurnios e do
crebro humano, cujo funcionamento muito diferente dos computadores
atuais. Devido a isso, elas nos permitem criar aplicaes complexas, nas
quais se cria inteligncia real na mquina, que ser capaz de aprender,
tomar decises, reconhecer padres, identificar tendncias etc., ou seja,
ser capaz de criar programas aptos a aprender e depois generalizar seu
aprendizado (produzir respostas adequadas para entradas que no
estavam presentes em seu treinamento).

Este trabalho tem como finalidade a criao de uma rede neural que seja
capaz de reconhecer o trajeto percorrido por um pequeno veculo, que
enviar para a rede neural apenas os padres de acionamento de seus
sensores durante a execuo da trajetria.

O trabalho foi dividido nas seguintes etapas:
projeto e construo do veculo incluindo sensores pticos,
motores DC e mdulo para transmisso dos dados em rdio-
freqncia (RF), alm de pistas para movimentao do veculo;
circuito de recepo em rdio-freqncia e comunicao com o
computador;
rede neural;
programa de integrao que receber os dados do mdulo RF,
processar a rede neural e exibir o resultado (pista percorrida).

Esta soluo foi apresentada durante a Eureka 2005, uma feira de
apresentao dos trabalhos de concluso de curso da Escola de
Engenharia Mau.
2



2. Redes Neurais Artificiais

Existem diversas definies para as redes neurais, tambm chamadas de
neurocomputadores, redes conexionistas ou processadores paralelamente
distribudos. Podemos utilizar a definio apresentada por Haykin, S. no
livro Redes Neurais. Princpios e Prticas:

Uma rede neural um processador paralelo maciamente distribudo
sendo constitudo de unidades de processamento simples, que tm a
propenso natural para armazenar conhecimento experimental e torn-lo
disponvel para o uso .

Uma rede neural assemelha-se ao crebro humano em dois aspectos:

o conhecimento adquirido pela rede com base em seu ambiente
por meio de um processo de aprendizagem;
foras de conexo entre neurnios,, conhecidas como pesos
sinpticos, so utilizadas para armazenar o conhecimento adquirido.

As redes neurais so baseadas no crebro humano, que recebe
continuamente informao, percebe-a e toma, com base na informao,
decises apropriadas.

A entidade mais simples de uma rede neural o neurnio que, baseado
no funcionamento do neurnio biolgico, segue o modelo apresentado na
Figura 1:


















Figura 1 Modelo no linear de um neurnio.



w
k 1
w
k 2
w
k m
x
1
x
2
x
m
(.)

Funo de
Ativao
Sada
y
k
v
k
Sinais de
Entrada
Bias
b
k
Pesos
Sinpticos
3



Os elementos bsicos do neurnio so:

entradas (x
1
, x
2
, ..., x
m
);
um conjunto de sinapses, cada uma delas caracterizada por um
peso sinptico (w
k1
, w
k2 ...,
w
k m
);
um somador () utilizado para fazer a soma dos sinais de entrada
ponderados;
uma funo de ativao (.) para restringir a amplitude da sada do
neurnio; podem ser utilizadas funes de ativao de um neurnio:
funo de limiar; funo linear por partes ou funo sigmide;
um bias (b
k
) que uma espcie de peso do neurnio na rede;
sada (y
k
).

Matematicamente, um neurnio k seria descrito pelas seguintes equaes:

=
=
m
J
j kj k
x w u
1
.
(1)

) (
k k k
b u y + =
(2)

=
+ =
m
j
k j kj k
b x w v
1
.
(3)

Os principais benefcios das redes neurais so:

generalizao, que se refere ao fato de a rede neural produzir
sadas adequadas para entradas que no estavam presentes
durante o treinamento;
poder computacional, por meio de sua estrutura maciamente
paralela;
habilidade de aprender.

Essas capacidades de processamento de informao tornam possvel s
redes neurais resolver problemas complexos e/ou de grande escala que
so atualmente intratveis.


3. Desenvolvimento

3. 1 Construo do Veculo

A construo do carro baseia-se no diagrama de blocos apresentado na
Figura 2:

4




Figura 2 Diagrama de Blocos de Construo do Veculo

O microcontrolador responsvel pelo monitoramento dos sinais digitais
de entrada proveniente dos sensores e controle dos sinais de sada do
veculo. Os sensores de proximidade so monitorados continuamente para
detectar a proximidade de obstculos ou paredes laterais na pista. Os
sinais dos sensores devem passar por um circuito condicionador que
ajusta a amplitude do sinal de resposta para o padro TTL. O sinal PWM
gerado pelo microcontrolador transmitido ao driver de potncia, o qual
controla o sentido de rotao dos motores segundo bits de comando
enviados pelo algoritmo desenvolvido no microcontrolador.

A transmisso dos dados armazenados na memria interna do
microcontrolador realizada serialmente, utilizando a interface UART
(Universal Assyncronous Receiver Transmitter). A transmisso do sinal
utiliza um circuito integrado transmissor RF, o qual opera na freqncia de
433,92MHz, sendo esta a mesma freqncia de trabalho do circuito
receptor. O circuito eltrico completo utilizado no veculo apresentado na
Figura 3. O desenho do projeto mecnico do carro apresentado na
Figura 4 e as rodas so detalhadas na Figura 5.


Figura 3 Esquema Eltrico do Veculo
Sensores de
Proximidade
Condicionador
de Sinal
Micro-
controlador
Driver de
Potncia
Motores
Transmissor
Sinal PWM
Serial
5






Figura 4 Desenho da Estrutura Mecnica da Carcaa do Veculo



Figura 5 Desenho Mecnico das Rodas


A Figura 6 apresenta fotografias do veculo desenvolvido.

1



(a)

(b)
Figura 6 Fotografias do Veculo: (a) Estrutura interna (b) Design
da estrutura externa

Para a movimentao do veculo foram utilizadas duas pistas diferentes:
uma reta e outra curva. O objetivo do projeto o de identificar por meio
dos sinais dos sensores qual pista est sendo utilizada.

3. 2 Circuito de Recepo

O circuito de recepo tem a funo de receber os dados transmitidos pelo
veculo via RF e condicion-los ao padro de comunicao RS232, para
que o microcomputador possa, ento, realizar a recepo serial do sinal
conforme ilustrado na Figura 7.


Figura 7 Diagrama de Blocos do Circuito de Recepo


O circuito eltrico utilizado no receptor apresentado na Figura 8.

Figura 8 Esquema Eltrico do Circuito Receptor
Micro-
computador
Receptor Condicionador
de Sinal
2


3. 3 Utilizao de Redes Neurais para Reconhecimento da
Trajetria

O objetivo da Rede Neural no projeto o de reconhecer em que pista o
carro andou (curva ou reta) com base nos dados de acionamento dos
sensores coletados durante o trajeto. Utilizou-se uma rede neural de duas
camadas desenvolvida no software MATLAB

conforme apresentado na
Figura 9.










Figura 9 Rede Neural Utilizada no Projeto

No projeto foram utilizadas 30 entradas (10 de cada sensor), 35 neurnios
na 1. camada e 1 neurnio na 2., onde teremos a resposta desejada.
Este tipo de rede neural a chamada Multilayer Perceptron, que possui
mais que uma camada de neurnios. No caso deste projeto, esta se
mostra mais adequada, pois teremos um grande nmero de entradas e
apenas uma sada binria, o que justifica a segunda camada de neurnios
utilizada.

Aquisio de Dados dos Sensores

Toda vez que um sensor for habilitado ou que o tempo-limite para
acionamento de algum sensor for excedido - quando o carro andar muito
tempo em linha reta sem chegar perto das paredes o programa de
controle do carro dever gravar o estado dos trs sensores na seqncia:
sensor da esquerda, sensor do meio e sensor da direita. O carro deve
andar por qualquer uma das pistas, at que dez amostras sejam
gravadas, completando assim a quantidade de entradas da rede neural.
Dessa forma, o percurso do carro ser entendido como completo quando
for gravada a 10. amostra dos trs sensores.

Treinamento da RN e Levantamento dos Pesos Neurais

Antes de se utilizar a rede neural, preciso que ela passe por um
processo de aprendizagem. Como decidimos utilizar os dados de
acionamento dos sensores, a rede tem de ser treinada com os padres de
acionamento dos sensores em cada pista.

3



O modo de treinamento escolhido foi o chamado Back Propagation, o mais
apropriado, pois conhecemos exatamente as entradas (padres de
acionamento dos sensores em cada uma das pistas) e as sadas (pista em
que o carro andou). Desse modo, utilizamos o chamado aprendizado com
professor, em que se diz rede neural as entradas e as sadas, e, com
base nisso, feito o treinamento da rede para adaptao dos pesos
neurais.

Para se realizar o treinamento, criamos alguns padres tericos de
acionamento dos sensores para cada uma das pistas, segundo a figura
abaixo:














Figura 10 Tabela de Treinamento da Rede Neural

A Figura 10 mostra claramente esse processo, em que, com base no
movimento terico do carro em cada uma das pistas, criaram-se as
tabelas que seriam usadas no treinamento da rede neural. Com a tabela
de treinamento em mos, utilizou-se o software MATLAB

para criar e
treinar a rede. O processo basicamente consiste em carregar as
informaes de entrada e as sadas desejadas para cada uma delas e a
configurao de alguns parmetros bsicos. O prximo passo consiste em
fazer o treinamento da rede, que consiste na adaptao dos pesos e dos
bias de forma que o erro seja reduzido ao mximo possvel e
aumentando-se a confiabilidade da rede neural. Os pesos so
recalculados at se conseguir reduzir a taxa de erro mostrando a
convergncia dos resultados. Aps o treinamento, temos como resultado
os pesos dos neurnios e dos bias das duas camadas. Estes so os pesos
que devero ser utilizados no processamento das informaes enviadas
pelo carro para encontrar a pista percorrida.


4


3. 4 Programa de integrao

O programa de integrao desenvolvido em Delphi

receber os dados do
mdulo RF, processar a rede neural e exibir o resultado (identificao
da pista percorrida). Basicamente o processo ocorre como ilustrado na
Figura 11.






Figura 11 Diagrama de Blocos do Programa de Integrao.


4. Resultados e Concluses

O projeto foi bastante interessante j que envolveu simultaneamente
vrias reas da engenharia: robtica, eletrnica, programao de
microcontroladores, redes neurais e programao em linguagem de alto
nvel.

A eficincia da metodologia proposta foi avaliada por meio de vrios
testes, com o veculo partindo de posies aleatrias nas pistas. A rede
neural foi treinada utilizando-se amostras de acionamento dos sensores
com os valores prticos captados durante a movimentao do veculo.
Obteve-se um ndice de acerto de aproximadamente 98%, apresentando
uma certa confiabilidade no reconhecimento da trajetria. Observou-se
claramente a melhoria da eficincia medida que eram efetuados mais
ensaios prticos e efetuava-se o treinamento da rede.

Como continuidade deste trabalho pretende-se reestruturar o sistema
para se identificar um nmero considervel de pistas diferentes visando
aplicaes onde se deseja utilizar robs que se movimentem de forma
autnoma. Neste caso, o sistema deve apresentar inteligncia suficiente
para identificar a pista e, com base nessa identificao, conseguir
locomover-se de forma autnoma ao longo desta pista (mesmo se houver
a presena de obstculos em posies aleatrias). Obviamente ser ento
necessrio efetuar a comunicao RF bidirecional, ou seja, do veculo para
o computador para enviar o sinal dos sensores e do computador para o
veculo, para informar para o veculo o resultado do reconhecimento para
que este possa movimentar-se de forma autnoma conforme as
caractersticas da pista identificada.