Você está na página 1de 4

Rede Neural Artificial Embarcada em

Robótica Móvel
Kássio L. Machado1, Dionísio R. Ribeiro2, Levi A. Pereira3, Otavio A. Chase4, Marcos. K. Sampaio5, J. Felipe
Almeida6
1-4
IESAM - Instituto de Estudos Superiores da Amazônia
Avenida Gov. José Malcher, 1148 - Belém – Pará - Brasil
1
kassio.comp@gmail.com
2
dionisio.ribeiro@gmail.com
3
levi.azevedo@gmail.com
4-5
UFPA - Universidade Federal do Pará
Rua Augusto Corrêa, 01 – Belém – Pará – Brasil
4
chase@neoradix.com.br
5-6
Instituto Ciber Espacial – Universidade Federal Rural da Amazônia
Avenida Presidente Tancredo Neves, 2501- Belém – Pará – Brasil
5
marcos@neoradix.com.br
6
felipe.almeida@ufra.edu.br

Abstract— This paper presents an Artificial Intelligence móvel: alcance e mobilidade, o que a difere de outras áreas da
system capable of help the control and guide a mobile robot robótica [3]-[5].
by mapping and selection from alternate routes to a target A utilização do algoritmo de RNA na robótica móvel tem
destination. A prototype system using sensors to gather sido muito difundida na literatura e em equipamentos atuais
information on the test site field of surroundings feeds data [6]-[8]. Esta técnica parte basicamente de duas fases:
into a Neural Network through an algorithm to interpret and treinamento e aprendizado. Equipados com sensores e
evaluate the data collected to execute instructions to the robot- atuadores permitem, portanto, interagir com o ambiente [9].
vehicle directing it in the system calculated route, avoiding Esta interação estabelece um treinamento da rede, através de
possible obstacles in its path. ciclos de percepção-ação que consistem em três passos
fundamentais: (i) obtenção de informação através de sensores;
Keywords Robot, Artificial Intelligence, Neural Network. (ii) processamento das informações para seleção de ação; e,
(iii) execução da ação através do acionamento dos atuadores.
Resumo Este trabalho apresenta um sistema de Inteligência Entre as utilizações deste tipo de sistema estão desde as
Artificial (IA) capaz de auxiliar o controle de um robô móvel em simples aplicações em identificação de trajetórias até nos mais
tomada de decisões e mapeamento. O sistema foi testado em um complexos robôs de exploração planetária[10].
protótipo, onde a leitura do ambiente é feita através de sensores Este trabalho apresenta um algoritmo de escolha booleana
cujas variáveis são normalizadas e tratadas por uma Rede e um modelo de RNA perceptron embarcados em um
Neural Artificial (RNA). Desta forma, pode-se avaliar seu
microcontrolador para auxiliar a tomada de decisão de um
desempenho e o controle de sua posição, evitando possíveis
obstáculos. agente. Este sistema embarcado permite mapear o ambiente
que está inserido, realizando inferências em relação ao
Palavras-chave Robô, Inteligência Artificial, Rede Neural. ambiente estático e controlável que está inserido. No
desenvolvimento do trabalho são apresentados
I. INTRODUÇÃO detalhadamente o software e o hardware desenvolvido. Ainda,
A robótica é uma área da tecnologia que visa à automação de forma didática, procurou-se dar evidência aos conceitos e
e otimização de processos a fim de garantir eficiência em fundamentos da modelagem da RNA desenvolvida.
determinadas situações. Entre as técnicas de controle Considera-se que esta última parte pode ser utilizada em
utilizadas nesta área está a Inteligência Artificial com os pequenos projetos de ensino sobre sistemas de Inteligência
métodos das Redes Neurais Artificiais (RNA) e os Algoritmos Artificial.
Genéticos (AG) [1], [2]. Desta forma, associado à estas
técnicas computacionais, envolvem-se processos de II. FUNDAMENTOS DE UMA RNA
eletrônica, computação e mecânica. Tendo, portanto, diversas O projeto de uma RNA procura gerar um algoritmo
linhas de pesquisa e entre elas a robótica móvel que se dedica matemático com características análogas ao de uma rede de
à construção de veículos autônomos ou semi-autônomos. Duas neurônios reais. Assim, uma RNA possui neurônios aos quais
características são especialmente marcantes na robótica se comunicam por artifícios matemáticos para simular
sinapses nervosas. Desta forma, cada neurônio real recebe B. Robô Móvel
informações (sinais elétricos) através de inúmeros dendritos, O processamento do algoritmo de IA é feito no próprio
estes sinais podem ser amplificados ou atenuados, dependendo robô, sem requerer a ação de um agente externo. A rede neural
de seu dendrito de origem. Isto acontece devido a cada é treinada por um computador e inserida no microcontrolador
dendrito estar associado a um peso sináptico. Esses pesos do robô. Desta forma, um circuito elétrico com um
sinápticos são o que se chama de memória e sua atualização é microcontrolador auxiliado por sensores é o responsável por
o que se entende por aprendizado. todas as interações e percepções do ambiente onde o robô está
Por outro lado, uma RNA é organizada em camadas, inserido.
sendo uma camada de entrada, várias ou nenhuma camada O microcontrolador Microchip PIC16F877A é
oculta e uma de saída. Vale ressaltar que possuem neurônios responsável por todo controle do robô. Através de sensores de
apenas as camadas ocultas e a de saída. Este neurônio fim-de-curso - sensores táteis capazes de detectar um
matemático é considerado o conjunto de duas funções: a obstáculo através de contato físico - o robô pode detectar
função de ativação V e a função de transferência Phi. A quando está diante de uma obstrução no caminho a qual
função de ativação efetua a somatória de todas as entradas do deverá contornar. Possui um sonar MaxSonar EZ1 - periférico
neurônio multiplicadas pelos seus respectivos pesos. Esta capaz de medir distâncias do seu alvo à partir de 13cm até
primeira função alimenta a função de transferência que 3mts, ou dependendo da reflexão do objeto chegar à 6mts.
transforma o resultado em um valor aceitável para o próximo O robô móvel tem tração de movimento do tipo
passo da rede. diferencial e seu sistema é não-holonômico, devido sua
Os pesos representam o conhecimento da rede. Da mesma limitação física gerada pela forma em que as rodas estão fixas
forma, cada intercessão entre camadas da rede possui uma a estrutura. A equação (1) mostra o modelo cinemático
matriz de pesos sinápticos, a qual é formada por elementos simples do robô móvel diferencial não-holonômico [11].
Wij, ou seja, o peso sináptico W para a i-ésima entrada do j-
ésimo neurônio (Fig. 1). Assim, os neurônios conectados em
 x  cos 0
várias camadas arquitetam uma RNA.     V 
 y    sen 0   (1)
  0
   1   

A sua cinemática representa a configuração ( x, y,  )


posição e orientação no ambiente onde atua. A limitação física
define o robô como um sistema sub atuado, que é uma classe
de restrição não-holonômica [12]. Isto ocorre devido o vetor
de controle ter dimensão menor que o número de graus de
liberdade do robô, conforme visto na equação (2).

x sen( )  y cos( )  0 (2)

A componente de velocidade perpendicular do robô


Fig. 1 Modelo da RNA embarcada. móvel é nula, e a conseqüência disso é a dependência entre as
velocidades x e y . O robô só se move na direção em que suas
A. Simulação do Projeto rodas estão apontadas, e possui velocidade zero na direção
Ferramentas de simulação são especialmente necessárias perpendicular a esta. Isto exige que o robô faça balizas quando
ao desenvolvimento de projetos robóticos, possibilitam a realizar movimentos laterais.
redução de gastos, maior confiabilidade antes da construção Os atuadores do robô são dois motores designados para
real e aumento da agilidade no ciclo de desenvolvimento sua locomoção, que estão fixos com rodas em sua parte
desses sistemas robóticos. A simulação dos circuitos elétricos traseira. Na parte dianteira central é fixa uma roda móvel
feita usando o software Proteus Isis (www.labcenter.co.uk) passível, com propósito de sustentação da estrutura do robô
possibilita testes e aprimoramentos de todos os circuitos sem qualquer tipo de atuação.
digitais e analógicos do projeto, enquanto a modelagem O motor escolhido no projeto é do tipo motor-de-passo
mecânica realizada com o software Google SkecthUp elétrico, devido à obtenção do posicionamento angular exato
(sketchup.google.com) permite viabilização da construção da sem auxílio de outros periféricos como encoders, o que facilita
base móvel do robô. O desenvolvimento para a tarefa de odometria. Este motor é composto de quatro
microcontroladores conta com uma ferramenta específica bobinas, as quais possuem três algoritmos de combinação na
denominada MPLAB (ww.microchip.com), uma IDE comutação de sua alimentação. Isto proporciona maior torque,
(Integrated Development Environment) com recursos de maior velocidade ou menor angulação, normalmente 1.8° por
depuração específica para microcontroladores. passo.
A comunicação do robô com um computador pessoal é ambiente. O treinamento da rede é efetuado com a atualização
feita usando módulos unidirecionais de comunicação por rádio dos pesos sinápticos até que o erro alcance valores toleráveis
freqüência UHF (Ultra High Frequency) Linx (www.tato.ind), durante o número de iterações seguidas. Então, a matriz de
operando na freqüência de 433,92MHz com modulação ASK pesos sinápticos foi alimentada no microcontrolador. Dando
(Amplitude Shift Keying). Desta maneira, estabelece a início a segunda etapa do aprendizado, a segunda etapa
comunicação através do protocolo RS232, utilizado pelas (embarcada) ocorre assim que pelo menos um sensor de fim-
portas seriais, este link provê o mapeamento simultâneo do de-curso é acionado em conjunto com o sonar. Esta etapa é
ambiente explorado pelo robô e seu controle manual no modo caracterizada pelo aprendizado da utilização do sonar, ou seja,
tele-operado (Rover) através do software SiberiaBot, o robô aprende a relacionar a ativação do sonar a um
desenvolvido utilizando a API (Application Programming obstáculo reconhecido. A partir deste momento, passa a evitar
Interface) Microsoft Directx (www.microsoft.com) que colisões realizando a rotina de evasão assim que o sonar for
também permite o controle da movimentação do robô através acionado.
de um joystick e a aquisição de imagens de uma câmera A tomada de decisões é a mesma para o RNA e o
embarcada (Fig. 2). algoritmo de Escolha Booleana. Desta forma, o robô relaciona
a ativação de um sensor de fim-de-curso, focado em uma
lateral, a uma rotina de evasão que prioriza o desvio para o
lado oposto. De tal forma que os sensores do robô são
análogos ao sistema nervoso periférico e a rede neural análoga
ao sistema nervoso central, onde são definidas as tomadas de
decisão. O robô proposto possui ambos os algoritmos
implementados no sistema embarcado, os quais podem ser
alternados pela comutação de um circuito elétrico encontrado
em seu painel ou por rádio freqüência.

III. RESULTADOS E DISCUSSÕES


O protótipo desenvolvido representa uma linha de robôs
de mapeamento de atributos e caracterização de um ambiente.
Fig. 2 Imagem do protótipo desenvolvido. Em sua configuração atual, este sistema possui diferentes
formas de controle: controlado remotamente por rádio
C. Software frequência (Rover) e um agente humano ou autônomo no qual
O software que controla a tomada de decisões do robô no embarca duas alternativas de tomada de decisão, autônoma
seu modo autônomo foi modulado em dois algoritmos com Rede Neural Artificial e Algoritmo de Escolha Booleana.
independentes: RNA e Algoritmo de Escolha Booleana – este A implementação da Inteligência Artificial em um robô do
segundo usado no sistema de forma alternativa. A RNA foi tipo veículo mostrou-se bem sucedida, demonstrando que o
estruturada para haver duas camadas: entrada e saída. Na RNA apresentou uma curva de aprendizado para a
primeira camada foram utilizadas quatro entradas, três implementação em questão. Além do que, em uma próxima
relacionadas aos dados recebidos (e tratados) dos sensores, e edição do trabalho será usado o dsPIC que tem ULA (Unidade
um parâmetro constante denominado bias, relevante à Lógica Aritmética) com ponto flutuante e ponto fixo de
estabilidade numérica do cálculo. Na segunda camada foram precisão de -1 a 1, para o processamento digital de sinais [13],
necessários dois neurônios com saídas binárias que geram e esta característica possibilitará o cálculo embarcado dos
quatro possíveis inferências a respeito do ambiente: (i) pesos sinápticos da RNA, sem a necessidade do treinamento
obstáculo à frente, (ii) obstáculo à direita, (iii) obstáculo à ser realizado em um computador remoto e que variáveis do
esquerda, (iv) obstáculo impedindo a locomoção do veículo. tipo flutuantes sejam emuladas por software.
Tais saídas representam as informações inferidas do ambiente. O algoritmo Booleano mostrou-se simples e intuitivo, no
A RNA usada possui duas etapas de aprendizado. A entanto não apresentou um grau de evolução ou uma curva de
primeira é realizada fora do sistema embarcado, devido a aprendizado, devido a sua característica estática. Portanto, não
pouca memória do microcontrolador. Para a primeira etapa representa uma técnica ineficaz, em comparação com o RNA,
que é o treinamento da rede, é necessário definir quais dados apenas um método simples e acessível de se resolver o
seriam utilizados, sendo assim uma tabela com as possíveis problema, mas com limitações.
combinações de ativação dos sensores. Então, após uma O algoritmo RNA implementado no projeto, embora
normalização para evitar redundâncias de dados, a tabela relativamente mais complexo, permite comprovar que há uma
obtida continha em suas linhas situações diferentes entre si, curva de aprendizado. Com o uso desta técnica, o sistema
que exigiam tomadas de decisão direcionadas para cada apresenta evolução no nível de conhecimento e diferenciação
diferente situação nela representada. Após a escolha dos dados no comportamento dos atuadores.
para o treinamento, a rede foi alimentada com os vetores: de A primeira abordagem, mal sucedida, foi embarcar o
entrada com dados referentes às possíveis combinações de treinamento completo do perceptron, porém a memória
ativação dos sensores e os vetores de saída com as leituras do (RAM) do microcontrolador não comportava todas as
variáveis necessárias ao algoritmo. Uma alternativa de sensores; energia embarcada; e, limitações computacionais
desenvolvida foi acrescentar um segundo microcontrolador que tornam a criação de um conjunto de regras uma tarefa
Microchip PIC18F4550 responsável apenas pelo algoritmo da árdua e suscetível a erros. Observou-se que com a técnica
RNA e estabelecer um barramento de comunicação entre os RNA pode-se controlar satisfatoriamente um agente de
microcontroladores usando o padrão RS-485 - essa abordagem robótica móvel. Assim, partindo desta metodologia, com
também se demonstrou mal sucedida devido à extrema implementação de hardware e software utilizados, este
limitação de espaço, consumo de energia, entre outras trabalho tem a finalidade futura de abrir dois importantes
barreiras impostas ao desenvolvimento de um sistema seguimentos de pesquisa em sistemas embarcados usando
embarcado. RNA: primeiro, desenvolver um robô para monitoramento
A solução para o problema é realizar o treinamento do ambiental relacionado ao ambiente Amazônico, o que não é
perceptron em um computador, e alimentar os pesos uma tarefa fácil; e, incentivar o estudo dos procedimentos
sinápticos, que apresentaram melhor desempenho, no desta construção nas escolas da rede pública, em séries que
microcontrolador. Para obter tais pesos, é necessário avaliar o antecedem a vinda de um aluno à universidade e os quais
erro gerado a partir do treinamento supervisionado em função visam cursos de Engenharia.
do número de iterações. Isto é feito usando-se o Erro Médio,
dado pela equação (3):
AGRADECIMENTOS
k
Erro médio  [( saída K 1  phi1)  ( saída 2  phi2)] / 2
K
(3) Um agradecimento especial a equipe de desenvolvimento
do Neoradix (www.neoradix.com.br) e a todos os
Com a análise do treinamento da rede (Fig. 3) é possível participantes do Laboratório de Pesquisa em Sistemas de
observar que a partir da décima quarta iteração a rede Engenharia-LAPSE/IESAM.
apresenta estabilidade constante. Logo, o próximo passo é REFERÊNCIAS
alimentar a rede neural.
[1] O. Ludwig e E. Montgomery. Redes Neurais Fundamentos e
Aplicações em Programas em C, Rio de Janeiro, RJ, Brasil: Ciência
Moderna, 2007.
[2] S. Haykin. Redes Neurais: Princípios e Práticas. São Paulo: Bookman,
2000.
[3] S. Arimoto, S. Kawamura, and F. Miyazaki. "Iterative learning control
for robot systems", Tokyo, Japan, Proc. IECON, 1984.
[4] R. M. Murray, Z. Li, and S. S. Sastry, A Mathematical Introduction to
Robotic Manipulation, Florida, USA: CRC Press, 1994.
[5] R. Johansson , A. Robertsson, K. Nilsson, T. Brogardh, P. Cederberg,
M. Olsson, T. Olsson, and G. Bolmsjo, Sensor Integration in Tasklevel
Programming and Industrial Robotic Task Execution Control,
Industrial Robot: An International Journal, Vol. 31, No. 3, pp. 284-296,
2004.
[6] H. Cui, Z. Zhu, Z. Gan, and T. Brogardh, “Kinematic Analysis and
Error Modeling of TAU Parallel Robot”, Robotics and Computer-
Integrated Manufacturing, vol.21, No. 6, pp. 497-505, 2005.
[7] G. A. Bekey, Autonomous Robots: From Biological Inspiration to
Implementation and Control, Cambridge, USA: The MIT Press, 577 p.,
2005.
[8] G. Dudek, M. Jenkin, Computational Principles of Mobile Robotics
Cambridge, London, UK: The MIT Press, 280 p., 2000.
N ú m ero d e Iteraçõ es (K ) [9] J. Marchi, “Navegação de Robôs Móveis Autônomos: estudo e
implementação de abordagens”, Dissertação de Mestrado,
Fig. 3 – Gráfico de análise de erro do treinamento da RNA. Universidade Federal de Santa Catarina, Brasil, 2001.
[10] JPL/NASA, Jet Propulsion Laboratory/NASA, disponível em:
Após o treinamento de sua rede neural, quando um robô www.jpl.nasa.gov.
recebe a informação de uma determinada coordenada de [11] G. Campion, G. Bastin, B. D'Andrea-Novel "Structural properties and
posição, passa a se deslocar de sua posição atual (aleatória) classification of kinematic and dynamic models of wheeled mobile
até a posição de atuação. Para realizar esta navegação, robots ", A paraître dans IEEE Trans. on Robotics and Automation,
vol.12, N°1, February 1996.
desviando de obstáculos, as entradas da RNA são obtidas [12] O. Chase, J.R. Brito-de-Souza, J. F. Almeida. “Robô de Inspeção para
pelos sensores presentes no robô e as saídas são inferências do Aquisição de Dados Ambientais na Região Amazônica com o uso da
ambiente. Norma IEEE1451”. Brasília-DF, SBAI 2009.
[13] A. Oliveira e F. Andrade. Sistemas Embarcados – Hardware e
Firmware na Prática. São Paulo: Editora Érica, 2006.
IV. CONCLUSÃO
Este conjunto de operações, em uma análise superficial,
pode parecer simples, porém o controle robusto de um sistema
robótico tem complicações físicas e mecânicas, tais como,
cinemática e dinâmica; eletrônicas, como a falta de precisão

Você também pode gostar