You are on page 1of 6

Proceedings of theofIVIVBrazilian

Proceedings BrazilianConference
Conferenceon
onNeural
Neural Networks
Networks -- IV
IV Congresso Brasileirode
Congresso Brasileiro deRedes
RedesNeurais
Neurais
pp.pp.
350-355,
000-000,July
july20-22, 1999 --ITA,
20-22,1999 ITA, So
So Jos
Jos dos
dos Campos
Campos --SP
SP--Brazil
Brazil

IMPLEMENTAO EM HARDWARE DE UM CONTROLADOR


NEURAL PARA ROB

GHILSON R. CORRA, EDILBERTO P. TEIXEIRA, ELMO B. FARIA


Universidade Federal de Uberlndia - D.E.E. - 38.400-902 - Uberlndia-MG - Brasil
Universidade Federal de Uberlndia - D.E.E. - 38.400-902 - Uberlndia-MG - Brasil
Centro Universitrio do Tringulo - D.C.C. - 38.402-310 - Uberlndia-MG - Brasil
Emails: ghilson@ufu.br, edilbert@ufu.br, ebfaria@ufu.br

Abstract projeto, e ferramentas de suporte para utilizao do


dispositivo.
This paper presents the implementation of a neural Procurou-se detalhar o treinamento da rede neural
controller applied for controlling a six joint robot. The quando aplicada para processos MIMO no-lineares. Sendo
Neural network is used as a nonlinear compensator for the assim, na seo 2, esto ilustrados o modelo da rede neural,
dinamic system. A new control scheme was developed a expresso matemtica representativa e a forma de
using the neural network to estimate the computed torque treinamento empregada. Na seo 3, detalham-se a estrutura
functions. The system was implemented using three PIC da planta no-linear e as equaes diferenciais que a regem.
microcontrollers and a pentium computer. The details of O hardware implementado em laboratrio mostrado na
the hardware and software design are presented including seo 4. Os resultados obtidos pela rede neural bem como
the laboratory results. as concluses e os comentrios finais esto dispostos na
seo 5 e 6.

1. Introduo. 2. Modelo para a rede neural.

Muitos processos prticos envolvem comportamentos Uma rede neural feedforward multicamadas consiste de
no-lineares. Todavia, os robs, sistemas altamente no um determinado nmero de neurnios interconectados e
lineares e acoplados, so exemplos particularmente organizados em sucessivas camadas. Cada neurnio da rede
adequados para teste de estratgias de controle baseadas em tem habilidade independente de processamento e no tem
redes neurais artificiais. Dentre as diversas tentativas de qualquer interconexo com outros neurnios da mesma
controle atravs de redes neurais, destacam-se aquelas onde camada. A descrio matemtica genrica da rede neural
se procura compensar as no linearidades inerentes com q camadas :
dinmica dos robs [10],[11],[12],[13] e [14]. Neste
trabalho, usa-se o principio do controle atravs do torque
y (t%1) ' j wi s j wik s ...s j wsj
Hq Hq&1 n
computado efetuando-se a compensao atravs de uma q q&1 1
rede neural de alimentao direta. i'1 k'1 i'1
(1)
y (t&j%1)% j
Ao contrrio de alguns trabalhos onde a compensao m
parcial, efetua-se a compensao completa da equao ws,1 n%j u(t&j%1) ... ,
j'1
dinmica. Isto foi possvel atravs do treinamento off-line de
uma rede neural com 20 neurnios na sua camada
intermediria. Os detalhes do treinamento da rede, o projeto
onde ^y(t+1) a sada estimada pela rede neural, y(t) e u(t)
de hardware e os resultados obtidos em laboratrio com um
so, respectivamente, as sadas e as entradas do processo,
rob de seis juntas rotacionais so apresentados neste artigo.
Wsj k so os pesos sinpticos na camada k. A funo de
O hardware implementado em laboratrio foi
desenvolvido atendendo as exigncias do projeto. ativao : s(.) = {1 + exp [-(.)]}-1.
Entretanto, alguns fatores importantes foram levados em A rede neural utilizada no projeto tem a estrutura de 3
considerao uma vez que, optou-se por usar camadas: uma de entrada, uma intermediria e uma de sada
microcontroladores com arquitetura RISC, de modo a [8, 11, 12], conforme ilustrao da figura 1.
facilitar sua aplicao tanto em hardware como em software. A entrada para a rede neural um vetor, contendo as
Dentre estes, pode-se citar: facilidade de aquisio no posies, velocidades e aceleraes de comando das juntas
mercado, custo reduzido, de forma a no inviabilizar o do rob. Os valores de entrada e sada da rede neural so

001
350
normalizados entre -1 e 1. A sada composta de trs
vetores contendo respectivamente os torques no tempo (t) 1
uj '
desenvolvidos em cada uma das juntas do rob. A camada &j k Wkj h k (3)
de entrada formada por 18 elementos, os quais esto 1 %e
conectados a um conjunto de 20 neurnios na camada
intermediria, que por sua vez esto conectados a outros
Onde:
seis na unidade de sada. A camada intermediria e a
Wkj = Elemento da matriz de pesos situada entre a
camada de sada usam funo de ativao do tipo sigmoidal.
camada intermediria e a sada.
hk = Sada da camada intermediria.
b
y(t) W1 d) Calcula-se o valor de )Wkj a ser adicionado matriz de
G1 X1
S pesos Wkj.
b
y(t-1)
W2
G2 X2
S
! b )Wkj ' 0 *j hk % " )Wkj (n&1) (4)
y(t-n) b
Ym(t)
G3 X3
S '
G
b
u(t) Onde:
u(t-1)

!
! ! ! b
b
0 = Taxa de aprendizagem.
*j = Erro entre o valor desejado e o obtido na sada da
rede.
u(t-m) Yn(t) " = Fator de amortecimento.
G
XN
S '
)Wkj (n-1) = ltimo valor adicionado matriz de pesos
Figura 1. Estrutura da Rede Neural com uma camada Wkj.
intermediria. No trabalho, o fator de amortecimento " (expresso na
eq. 4), que determina o efeito da variao do peso anterior
para o clculo do prximo, na direo do mapeamento
desejado, usado no treinamento da rede neural, foi de 0,001.
O treinamento da rede neural realizado aps a coleta No sentido de reduzir o tempo de aprendizagem, variou-se
de 3600 dados provenientes do acionamento aleatrio das a taxa de aprendizagem 0 que determina o ganho, a cada
seis juntas do rob. Geraram-se, ento, doze vetores iterao do algoritmo, na faixa compreendida entre (0,65 a
contendo as informaes de entrada e sada da planta. O 0,018).
algoritmo utilizado para treinamento da rede neural foi o de e) Atualizam-se as matrizes de pesos )Wkj e )Vik , respecti-
propagao retroativa de erro [7]. Os dados relativos s vamente.
entradas e sadas foram medidos em tempos fixos de f) Repetem-se os passos de a a e at que o erro quadrtico
amostragem. A entrada para a rede neural um vetor, mnimo estabelecido, seja atingido.
contendo as posies, velocidades e aceleraes de Este procedimento faz com que, durante o processo de
comando das juntas do rob. Este esquema, permite que a aprendizagem, as conexes dos pesos sejam ajustadas para
rede neural seja treinada off-line. minimizar a soma quadrtica de erro entre as sadas
desejadas e as sadas da rede neural. Os sinais de erro so
A seguir, so apresentados os seguintes passos
ento propagados retroativamente para ajustar os pesos das
essenciais para treinamento da rede neural.
conexes.
a) Apresentam-se os vetores de posio, velocidade e
acelerao entrada da rede neural.
b) Calcula-se a sada da camada intermediria utilizando-se 3. Estrutura da planta.
a seguinte equao:
Como os robs se caracterizam por terem
1 comportamentos no lineares e efeitos de acoplamentos
hk '
&j i V ik S i (2) entre juntas, tais fatores dificultam o controle em
1% e velocidades altas, principalmente quando so empregados
mtodos de controle convencionais. Na tentativa de superar
estas dificuldades, vrios algoritmos de controle usando as
Onde: caractersticas dinmicas do rob manipulador tm sido
V ik = Elementos da matriz de pesos situada entre a propostos [1],[4],[5],[6],[9].
camada de entrada e a intermediria. Como as redes neurais so apropriadas para se
Si = Vetor de entrada. aproximar mapeamentos no lineares, elas se tornaram uma
c) Calcula-se a sada da rede com a seguinte equao: poderosa ferramenta de controle. Surgiu, ento, um novo e

002
351
amplo campo de pesquisas denominado neurocontrole, que
pode ser definido como: o uso de redes neurais como
controladores. Diversas maneiras de incluir redes neurais
q d
+
q r
k ++
J Rob
q

no controle de sistemas dinmicos foram propostas, seja ++


$
para identificao, seja associadas a controladores .
E E
Rede Neural
.
convencionais, ou mesmo desempenhando a funo de KD KP

f(q,q,q)
controladores. Por conseqncia, neste ltimo caso, as redes . q .
dq
qd dt .
neurais so tambm chamadas mais apropriadamente de + -
q dq
dt
Neurocontroladores. qd
+ -

A equao dinmica de um rob manipulador descreve


a relao entre a taxa de variao da configurao e os
torques exercidos pelos atuadores em cada junta (motores Figura 2- Diagrama de blocos do controlador neural usando
eltricos, pneumticos, etc.). Para um rob manipulador o mtodo torque computado.
com n graus de liberdade a equao dinmica baseada na
formulao Lagrangeana pode ser descrita como:
4. Hardware implementado.
J ' M(q). qu % H( q,q@ ) % G (q) % F(q@ ) (5)
Descreve-se, nesta seo, o sistema de hardware
implementado em laboratrio e que foi utilizado no
processo. O hardware digital implementado baseado em
Onde:
trs microcontroladores da famlia PIC da Microchip. Trata-
J Vetor nx1 de esforos de acionamento no tempo t
se de uma famlia de microcontroladores com arquitetura
(entrada generalizada foras/torques).
RISC de 14-bits e custo bastante reduzido. Oferece uma
q, q0 e q Vetores nx1 representando, respectivamente ampla faixa de opes, desde manejamento de interrupes
posio, velocidade e acelerao das variveis de juntas. at gerao de sinais PWM com processamentos
M(q) Matriz nxn simtrica e no-singular que independentes da CPU. H um conjunto de instrues
representa a inrcia. simples, mas extremamente poderoso que enfatiza as
H(q, q0 ) Vetor nx1 especificando termos de reaes operaes byte, bit e de registradores [15].
coriolis e foras centrfugas. A figura 3 ilustra o diagrama de blocos da arquitetura
G(q) Vetor nx1 especificando os efeitos devido a geral do sistema desenvolvido para o rob MA2000.
gravidade e foras externas. Basicamente, ele est dividido em dois nveis de hierarquia.
F(q0 ) Matriz diagonal nxn especificando coeficientes de O primeiro nvel, o mais alto, composto por um
atrito viscoso. computador IBM-Pentium servindo como computador
Cada elemento de M(q) e G(q) uma funo que depende mestre de controle, passando os comandos para serem
da posio de cada junta do rob. J o termo H(q, q0 ) que interpretados por trs microcontroladores PIC16C73A que
especifica reaes coriolis e foras centrfugas uma funo representam o segundo nvel.
tanto da posio (q) quanto da velocidade (q0 ) [2],[3] e [5].
O controlador neural usando o mtodo torque
computado, mostrado na figura 2, implementado em dois Amplificador de
Corrente da Junta 1

estgios: realimentao de posio e velocidade e PIC16C73A


Amplificador de
Corrente da Junta 2
R
compensador no linear, proporcionado pela rede neural. Computador Amplificador de
O
Interface Corrente da Junta 3
B
Neste mtodo, a rede neural treinada para aprender a IBM-PC
Pentium 200Mhz
de PIC16C73A
Amplificador de
Dados Corrente da Junta 4
estrutura completa da equao dinmica do rob. Desse Amplificador de
Corrente da Junta 5 MA2000
modo, a aprendizagem passa a ser generalizada de maneira PIC16C73A
Amplificador de
Corrente da Junta 6
que todos os termos da equao dinmica do rob sejam
inseridos no processo de aprendizagem da rede neural. Figura 3- Diagrama de blocos simplificado da arquitetura
Contudo, para que este procedimento seja completado com geral do sistema.
sucesso, a rede neural precisa assimilar toda a dinmica do
rob.
Posteriormente, a rede neural colocada no modo de Cada um destes microcontroladores controlam duas juntas
operao, atuando como controlador. Neste caso, pode-se individualmente. As juntas do rob MA2000 foram
verificar pelo diagrama da figura 2 que a rede neural
equipadas com sensores de posio e sensores de efeito hall,
aprende o mapeamento dos torques a partir da posio,
trabalhando em conjunto com circuitos auxiliares, para
velocidade e acelerao desenvolvida em cada uma das
medio dos torques.
juntas do rob. Ento, fornecendo-se as posies,
O bloco interface foi desenvolvido para permitir a
velocidades e aceleraes desejadas pode-se gerar os
torques desejados, capazes de levar o efetuador at a integrao do microcomputador com o meio ambiente, cuja
posio desejada. funo : aquisio e monitoramento de sinais em tempo

003
352
real, superviso e controle. A figura 4 ilustra o diagrama de gerar dois sinais PWM, independentes do processamento da
blocos da interface de dados. CPU, gerar interrupes pelo hardware interno de modo que
um dos registradores de 16 bits possa ser usado como
registrador de perodo programvel, nmero de
temporizadores e ou /contadores. Alm do mais, enquanto
uma instruo estiver sendo executada e valores estiverem
sendo lidos ou escritos na memria ou em I/O pela via
apropriada, outra instruo j estar sendo carregada pela
via de memria de programa.
Os circuitos amplificadores, usados para acionamento
das juntas, convertem os sinais PWM provenientes dos
microcontroladores em tenses de sada proporcionais s
respectivas razes cclicas dos sinais PWM. Estes circuitos
so implementados usando uma ponte em H com
transistores darlington.

5. Resultados experimentais.
Usando dados reais obtidos atravs de medies de
posio, velocidade, acelerao e de torque do rob, aps
Figura 4- Diagrama de blocos da interface de dados. o trmino de cada seo de treinamento da rede neural,
verificou-se o tempo gasto e a taxa de caimento do erro
quadrtico. Em seguida, alterou-se a taxa de aprendizagem
e realizou-se novo treinamento, sempre verificando o tempo
O hardware foi desenvolvido de forma que trs blocos gasto e a taxa de erro. Posteriormente, o mesmo
idnticos pudessem controlar o sistema. Sendo assim, a procedimento foi realizado com o nmero de neurnios na
figura 5 ilustra a arquitetura interna de um nico chip. camada intermediria e por ltimo, combinando os dois
Observa-se que ela baseada em registradores com o procedimentos. Observou-se que durante o treinamento da
barramento de memria de dados separado do barramento rede neural, o ajuste do fator de amortecimento exerceu
de memria de programa (caracterstica da arquitetura pouca influncia na convergncia da curva de
RISC). aprendizagem.
Os resultados obtidos ao final do processo de
treinamento de uma nica rede neural capaz de aprender o
comportamento dinmico do rob manipulador com seis
graus de liberdade, so mostrados nas figuras 6, 7, 8, 9,10
e 11.

Figura 6- Resposta da Rede neural - Junta 1.

Figura 5- Diagrama de blocos do microcontrolador As figuras 12(a), (b) e (c) ilustram os resultados
PIC16C73A. provenientes do rastreamento de trajetria obtidos da juntas
1, 2 e 3 pelo controlador neural implementado. O tempo
para completar a trajetria foi estabelecido em 8,0s. A
Alguns processos considerados atrativos na escolha do trajetria de referncia foi gerada dentro do espao de
microcontrolador PIC16C73A foram: sua habilidade de trabalho do rob MA2000, entre (0 - 270).

004
353
Figura 7- Resposta da rede neural - Junta 2. Figura 11- Resposta da rede neural - Junta 6.

Figura 12(a)- Resposta do neurocontrolador no


rastreamento de trajetria da junta 1.
Figura 8- Resposta da Rede neural - Junta 3.

Figura 12(b)- Resposta do neurocontrolador no


Figura 9- Resposta da rede neural - Junta 4. rastreamento de trajetria da junta 2.

Figura 12(c)- Resposta do neurocontrolador no


Figura 10 - Resposta da rede neural - Junta 5. rastreamento de trajetria da junta 3.

005
354
6. Concluso. [4] Liu, C. H. A comparison controller design and simulation
for an industrial manipulator. IEEE Trans. Ind.
Electron.,vol. IE-33, n 1, pp. 58-65, Feb, 1986.
Quando no se necessita de preciso elevada no
[5] Luh, J. Y. S., Walker, M. W. & Paul, R. P. C. On-line
posicionamento, com uma boa sintonia, os controladores computacional scheme for mechanical manipulators. J.
convencionais podem apresentar resultados excelentes. Este Dyn. Syst., Meas. Contr., vol. 102, pp. 69-76, june, 1980..
o motivo pelo qual eles so usados na maioria do robs [6] Luh, J. Y. S. Conventional controller design for industrial
comerciais existentes. Entretanto, quando preciso um robots - A tutorial. IEEE Trans. Syst. Man. Cyber.,vol.
fator fundamental, mesmo em velocidades no to altas os SMC-13, n 3, Mai, 1983.
mtodos convencionais se tornam inadequados. [7] Rumelhart, D. McClelland, J., 1986. Parallel Distributed
O mtodo mostrado neste trabalho apresentou resultados Processing. Vol. 1 and 2, MIT Press, Cambridge, MA, 4th
bastante promissores quando empregado no controle de um Edition.
rob de seis juntas. A sintonia foi facilmente obtida, ou seja, [8] Narenda, K. S. & Parthasarathy, K., Identification and
Control of Dynamical Systems Using Neural Networks.
os parmetros KD e KP so escolhidos por tentativa e erro de
IEEE Transactions on Neural Networks, Vol.1N1, pp.4-26,
forma que o erro de controle atinja assintticamente o valor march, 1990.
zero, bem como o seguimento de trajetrias dinmicas. Vale [9] Psaltis, D., Sideris, A. and Yamamura, A.A., A Multilayered
lembrar que todos os termos dinmicos, do sistema, foram Neural Network Controller. IEEE Control Systems Mag.,
considerados ( exceo da carga no efetuador). Para vol. 8, pp. 17-21, April, 1988.
obteno dos resultados aqui apresentados, o tempo [10] Kawato, M., Furukawa, K. and Suzuki, R., A hierarchical
necessrio para treinamento da rede em uma mquina neural network model for control and learning of voluntary
Pentium 200 Mhz foi de 298.26 segundos. Outro ponto movement. Biol. Cybern., Vol. 57, pp. 169-185, 1987.
interessante a se notar que as respostas ao degrau das [11] Alsina, P. J. & Gehlot, N. S., Setembro 1994. Identificao
juntas, ficaram praticamente idnticas, o que leva Modular de Parmetros Dinmicos de Manipuladores
concluso de que todas atingiram um grau de aprendizagem Robticos. Anais do 10 CBA, Rio de Janeiro, Brasil, Vol.
2, pp. 1004-1009.
praticamente no mesmo instante. O controle pode ser
[12] Oliveira, S. R. J. & Teixeira, E. P. Identificao da
implementado na prtica com o mnimo de hardware e Dinmica Inversa de Sistemas No-Lineares Atravs de
software. O estudo mostra tambm que possvel controlar Redes Neurais Artificiais. I SBAI - UNESP, Rio Claro,
com preciso um rob no rastreamento de trajetrias. setembro, 1993.
[13] Corra, G. R., Teixeira, E. P. e Oliveira S. R. J.,
Referncias. implementacion de un control neural de multiples
propositos. Revista internacional Informacion Tecnologica
[1] Craig, J. J., Adaptative Control of Mechanical - CIT, Vol. 9, N 03, pp. 81-87, 1998.
Manipulators. Reading MA: Addison-Wesley, 1988. [14] Tanomaru J. & Omatu, S., Process Control by On-Line
[2] Craig, J. J., Introduction to Robotics: Mechanics and Trained Neural Controllers. IEEE Transactions on
Control. Reading MA: Addison-Wesley, 1986 Industrial Eletronics, Vol. 39, N.6, Dec. 1992.
[3] Paul, R. P., Robot Manipulators: Mathematics, [15] Microchip Techonology Incorporated, PIC16C7X Data
Programming and Control. Cambridge, MA: M.I.T. Pres, Sheet, DS30390E, USA, 1997.
1987.

006
355