Artigo completo

Transcrição

Artigo completo
IDENTIFICAÇÃO DO MODELO DINÂMICO DE UMA CABEÇA DE VISÃO
ROBÓTICA
Diego Caberlon Santini∗, Walter Fetter Lages∗
∗
Universidade Federal do Rio Grande do Sul - Departamento de Engenharia Elétrica
Emails: [email protected], [email protected]
Abstract— This paper presents the dynamic modelling and parameter identification for a robot vision head.
The dynamic model is derived by using the Lagrange-Euler formalism. Then, the model is extended to include
the dynamic model of the robot actuators as well. Althought the resulting model is a non-linear one, by using a
convenient parametrization it is possible to write it in a form that is linear in the unknown parameters. Since
the model was made linear in the unknown parameters it is possible to use the least-squares method to estimate
the unkowns. Some real-time experiments are shown to validade the estimated model.
Robot modelling, Robot dynamics, Parametric identification, Least squares, Vision head
Keywords—
Resumo— Este artigo apresenta a modelagem dinâmica e a identificação dos parâmetros de uma cabeça de
visão robótica. O modelo dinâmico do sistema é obtido através do formalismo de Lagrange-Euler. A seguir,
o modelo é estendido para incluir também o modelo dinâmico dos atuadores. Embora o modelo resultante
seja não linear, a partir de uma parametrização adequada escreve-se o modelo de forma que seja linear nos
parâmetros desconhecidos. Essa parametrização permite utilizar o método dos mı́nimos quadrados para estimar
os parâmetros do modelo. São apresentados vários experimentos realizados em tempo real para validar o modelo
obtido.
Palavras-chave—
Cabeça de visão
1
Modelagem de robôs, Dinâmica de robôs, Identificação paramétrica, Mı́nimos quadrados,
Introdução
O modelo dinâmico de um robô articulado ou,
em particular, de uma cabeça de visão robótica
pode ser obtido de forma analı́tica utilizandose métodos amplamente difundidos na literatura,
como os métodos de Newton-Euler ou LagrangeEuler (Craig, 1989; Fu et al., 1987).
No entanto, para utilização efetiva de tais modelos, parâmetros como massa e momento de inércia dos elos devem ser conhecidos. Porém, raramente tais informações são disponibilizadas pelos fabricantes de robôs (Radkhah et al., 2007).
Por outro lado, a obtenção desses parâmetros a
partir das caracterı́sticas geométricas e mecânicas
do robô é viável apenas utilizando-se de inúmeras
simplificações e aproximações, como aproximar as
formas geométricas dos elos por formas geométricas regulares e considerar a sua distribuição de
massa uniforme. Essas simplificações são geralmente irreais, pois os elos dos robôs tipicamente
são ocos e têm em seu interior atuadores, sensores e cabeamento, de forma que a sua distribuição
de massa usualmente está longe de ser uniforme.
Assim, para a obtenção de um modelo suficientemente preciso, que reflita o sistema real, torna-se
necessário a identificação dos parâmetros do robô.
Este trabalho trata da identificação do modelo
dinâmico da cabeça de visão robótica, e está organizado da seguinte forma: A seção 2 apresenta
o robô e em particular a sua cabeça de visão. A
seção 3 apresenta a modelagem do sistema e a parametrização do modelo de forma a possibilitar a
identificação que é detalhada na seção 4. Por fim,
a seção 5 apresenta os resultados experimentais e
a seção 6 conclui este trabalho.
2
Robô Janus
Neste artigo será utilizado o robô articulado Janus
(figura 1). Este robô possui dois braços com 8
graus de liberdade cada e uma cabeça de visão
estéreo com 2 graus de liberdade.
Figura 1: Manipulador Janus.
A cabeça de visão do robô Janus é composta
por três elos interligados por duas juntas rotacionais, possuindo na sua extremidades duas câmeras
de vı́deo, como mostra a figura 2.
A atuação de cada uma das juntas é feita por
um motor DC, acionado via PWM, e o sensoriamento é feito através de encoders incrementais,
que retornam o deslocamento da junta. Cada
junta também possui um sensor de fim de curso
um modelo não linear na forma
ẋ
y
= f (x, u)
= h(x)
onde x é o estado do sistema, u é a entrada do
sistema (aqui será considerada a tensão aplicada
nos motores), y é a saı́da do sistema (tipicamente
posição das juntas, no caso de robôs) e f (·, ·) e
h(·) são funções não lineares.
Para se modelar um robô, é necessário, inicialmente, atribuir sistemas de coordenadas associados a cada junta do robô. Isto é feito de forma
sistemática, seguindo a convenção de DenavitHartenberg (Denavit and Hartenberg, 1955; Fu
et al., 1987) obtendo-se o resultado mostrado na
figura 4.
l2
Figura 2: Cabeça de visão do robô Janus.
y1
y2
utilizado para referenciar o encoder. Cada junta é
x2
comandada por uma placa de acionamento (denominada AIC) que gera os sinais de PWM para acionamento do motor correspondente e faz a decodificação em quadratura dos sinais do encoder, forPSfrag replacements
mando um sistema de controle distribuı́do, como
mostrado na figura 3.
z2
z1
x1
q2
l1
Freio
Interruptor
Encoder
Motor
Freio
Interruptor
Encoder
Motor
Freio
Interruptor
Encoder
Motor
Freio
Interruptor
Encoder
Motor
Freio
Interruptor
Encoder
Motor
q1
y0
AIC
AIC
AIC
AIC
...
AIC
x0
Barramento CAN
z0
Host PC
Figura 4: Sistemas de coordenadas segundo as
convenções de Denavi-Hartenberg.
Figura 3: Sistema de controle distribuı́do.
Um barramento CAN é utilizado para transferência dos dados de tempo real, tais como as medidas dos sensores e os comandos para os atuadores,
para cada AIC a partir de um computador PC hospedeiro. O computador hospedeiro possui um processador AMD Athlon 64 4000+ e 1GB de RAM,
executado o sistema operacional Linux-2.6.22 com
o patch de tempo real RTAI-3.6. Maiores detalhes
sobre o hardware e software do sistema podem ser
obtidos em (Santini and Lages, 2008).
3
Modelagem
O modelo dinâmico de um robô é definido pela
a relação entre o movimento do robô e o torque
aplicado as suas juntas. O movimento do robô é
descrito pela posição, velocidade e aceleração das
suas juntas. Mas especificamente, deseja-se obter
A cada junta i está associada a um elo i que
tem um conjunto de parâmetros mecânicos como
os momentos de inércia: Iixx , Iiyy e Iizz ; os produtos de inércia: Iixy , Iixz e Iiyz ; e a posição do
seu centro de massa: xi , yi e zi ; todos em referência ao sistema de coordenadas {xi , yi , zi }. Além
disso de sofrer a ação da gravidade g e possuir
uma massa mi .
O modelo dinâmico do robô, considerando
como entrada o torque aplicado nas juntas, pode
ser obtido a partir da equação de LagrangeEuler (Fu et al., 1987):
µ
¶
∂L
d ∂L
−
= τi para i = 1, 2
(1)
dt ∂ q̇i
∂qi
onde L é a função de Lagrange (K − P ); sendo
K a energia cinética total do robô, P a energia
potencial total do robô, qi a posição angular da
junta i e τi o torque generalizado aplicado à junta
i.
Sabe-se que para robôs, (1) pode ser escrita
na forma
linear é escrita como a soma dos termos do atrito
viscoso e do atrito seco e dada por (7).
τ = D(q)q̈ + H(q, q̇) + G(q)
τf i = ri1 q̇i + ri2 sign(q̇i )
(2)
onde D(q) é a matriz de inércia generalizada,
H(q, q̇) é o vetor de forças centrı́fugas e de Coriolis e G(q) é o vetor de forças gravitacionais.
Aplicando-se (1) com os parâmetros geométricos da cabeça de visão do Janus pode-se escrever (2) na forma (3).
¤ £ q̇ ¤
¤ £ q̈ ¤ £ H
£ τ ¤ £ D
H
D
1
τ2
11
D21
=
1
q̈2
12
D22
+
11
H21
12
0
A expressão (3) pode então ser reescrita
como (8)
¤ £ q̇ ¤
¤ £ q̈ ¤ £ H
£ V ¤ £ D
H
D
u =
1
V2
onde:
D11
D12
D22
H11
H12
H21
C21
£
0
C21
11
D21
1
q̈2
12
D22
+
11
H21
1
q̇2
12
0
(8)
onde:
1
q̇2
¤
= θ̄1 cos(q2 )2 + θ̄2 sin(q2 )2 + θ̄3 sin(q2 )cos(q2 ) + θ̄4
= D21 = θ̄5 sin(q2 ) + θ̄6 cos(q2 )
= θ̄1 + θ̄2
= 2(θ̄2 − θ̄1 )sin(q2 )cos(q2 )q̇2
= (θ̄5 cos(q2 ) − θ̄6 sin(q2 ))q̇2
= ((θ̄1 − θ̄2 )sin(q2 )cos(q2 ) − θ̄3 (cos(q2 )2 − sin(q2 )2 )q̇1 /2
= θ̄7 cos(q2 ) + θ̄8 sin(q2 )
=
+
(3)
+
(7)
£
0
C21
¤ £
+
θ9 q̇i + θ10 sign(q̇1 )
θ11 q̇2 + θ12 sign(q̇2 )
¤
Rai
θi =
θ̄ para i = 1 . . . 8
KT i i
Ra1
θ9 = Ka1 +
r
KT 1 11
Ra1
r12
θ10 =
KT 1
Ra2
r
θ11 = Ka2 +
KT 2 21
Ra2
r
θ12 =
KT 2 22
que representa o modelo da cabeça de visão do
robô Janus.
4
Identificação
com as constantes a serem identificadas:
θ̄1
θ̄2
θ̄3
θ̄4
θ̄5
θ̄6
θ̄7
θ̄8
=
=
=
=
=
=
=
=
Para identificar os parâmetros dinâmicos do robô,
é necessário reescrever (8) na forma (9).
(−I2xx + I2yy + I2zz )/2 + 2l2 m2 x2 + l2 m2
2
(I2xx − I2yy + I2zz )/2
−2l2 m2 y2 − 2I2xy
(I2xx + I2yy − I2zz )/2 + I1yy
I2xz + l2 m2 z2
I2yz
m2 g(x2 + l2 )
−m2 gy2
u = φ(q, q̇, q̈)θ
onde:
Este modelo ainda não é suficiente para que
se possa identificar os parâmetros desconhecidos,
uma vez que o acionamento das juntas do robô é
feito por tensão, e não se tem disponı́veis sensores
que permitam medir o torque aplicado em cada
junta. Desta forma é necessário relacionar essas
duas grandezas.
O modelo de um motor D.C. com ı́mã permanente pode ser representado por
V
τi
dia
+ ia Rai + k q̇i
dt
= K T i ia
= La
(4)
(5)
onde a La é a indutância de armadura, Ra é a
resistência de armadura, V é a tensão aplicada,
Ka é a constante de força contra-eletromotriz e
KT é a constante de torque.
Segundo (Fitzgerald, 2002) a constante La é
geralmente pequena e pode ser desprezada. Desta
forma pode-se escrever o torque aplicado ao sistema em função da tensão em (6).
τi =
KT
(Vi − Ka q̇i )
Rai
(6)
Por fim, para tornar o modelo mais realista,
deve-se incluir o efeito das perdas devido ao atrito
nos mancais e na transmissão, uma vez que o modelo obtido de (1) não o leva em consideração.
Essas perdas são normalmente modeladas como
um torque que é apenas função da velocidade da
junta q̇i (Grotjahn et al., 2004). Esta função não
φ=
·
φ11
φ21
...
...
φ1(12)
φ2(12)
(9)
¸
φ11 = cos(q2 )2 q̈1 − 2sin(q2 )cos(q2 )q̇1 q̇2
φ12 = sin(q2 )2 q̈1 + 2sin(q2 )cos(q2 )q̇1 q̇2
φ13 = sin(q2 )cos(q2 )q̈1 − (sin(q2 )2 − cos(q2 )2 )q̇1 q̇2
φ14 = q̈1
φ15 = sin(q2 )q̈2 + cos(q2 )q̇ 2
2
φ16 = cos(q2 )q̈2 − sin(q2 )q̇ 2
2
φ17 = φ18 = φ1(11) = φ1(12) = φ24 = φ29 = φ2(10) 0
φ19 = q̇1
φ1(10) = sign(q̇1 )
φ21 = q̈2 + sin(q2 )cos(q2 )q̇ 2
1
φ22 = q̈2 − sin(q2 )cos(q2 )q̇ 2
1
2
2
φ23 = (sin(q2 ) − cos(q2 ) )q̇ 2 /2
1
φ25 = sin(q2 )q̈1
φ26 = cos(q2 )q̈1
φ27 = cos(q2 )
φ28 = sin(q2 )
φ2(11) = q̇2
φ2(12) = sign(q̇2 )
Assim, os coeficientes desconhecidos θi são lineares com os regressores de dados φ, que dependem das posições, velocidades e acelerações das
juntas. Deste modo é possı́vel aplicar um método
de identificação através da aplicação de uma tensão no robô e da medida do seu deslocamento.
Os encoders do robô Janus fornecem uma medida de deslocamento relativo entre um instante
de amostragem e outro. Deste modo, dividindose pelo perı́odo de amostragem é possı́vel obter
a velocidade angular média (no perı́odo de amostragem) de cada junta q̇i . A posição qi é obtida
através do somatório do deslocamento e a aceleração q̈i através da diferença da velocidade média
entre as medidas.
Qualquer medida possui intrinsecamente
ruı́do, que se assume ser um ruı́do gaussiano, com
média zero. A figura 5 mostra sete medidas da
velocidade da junta 1 para o mesmo ensaio.
As figuras 6 e 7 mostram uma comparação
entre a posição obtida através do modelo com os
parâmetros estimados e os dados reais. O modelo
é escrito na forma (12), utiliza-se o método de integração numérico Runge-Kutta de terceira ordem
com um passo de 1ms para simular o modelo estimado e obter o comportamento do sistema ao
longo do tempo para a mesma entrada utilizada
nos ensaios.
¤ £ q̇ ¤
¤−1 £ V ¤ £ H
£ q̈ ¤ £ D
H
D
0.015
Velocidade Angular (rad/s)
0.01
0.005
0
−0.005
1
q̈2
−0.01
11
D21
=
−
−0.015
0
100
200
300
400
500
600
Amostras
700
800
900
1000
1
V2
12
D22
£
0
C21
¤ £
−
−
11
H21
1
q̇2
(12)
12
0
θ9 q̇i + θ10 sign(q̇1 )
θ11 q̇2 + θ12 sign(q̇2 )
¤
2.5
Figura 5: Medidas de velocidade da junta 1 para
o mesmo ensaio.
Modelo
Média dos Ensaios
Sabe-se que a diferenciação numérica feita
para se estimar a aceleração das juntas amplifica
o ruı́do presente nas medidas e isso pode inviabilizar a obtenção dos parâmetros. Para eliminar esse ruı́do através de filtragem, alguns trabalhos (Swevers et al., 1997) utilizam entradas que
forçam trajetórias periódicas com uma banda de
frequência limitada. Desta forma é possı́vel eliminar o ruı́do de medida fora da banda de frequência
da trajetória, além de que o cálculo das derivadas
(aceleração e velocidade) pode ser feito utilizando
a Transformada de Fourier, ao invés de utilizar
uma diferenciação numérica.
Neste trabalho, tal técnica não é utilizada pois
o robô opera em malha aberta, onde não é possı́vel
estabelecer uma trajetória com estas caracterı́sticas. Para eliminar o ruı́do, são realizados diversos
ensaios com uma mesma entrada nominal e condições iniciais, e a média das medidas é utilizada
na estimação dos parâmetros. Desta forma, a média do ruı́do tenderá para zero, uma vez que ele é
considerado gaussiano com média zero.
No robô Janus, a tensão é aplicada a cada
junta via PWM, e desta forma a sua precisão dependerá da precisão do PWM, que é igual para
todas as juntas. Assim o estimador de máxima
verosimilhança é reduzido para um estimador de
mı́nimos quadrados linear (Swevers et al., 1997)
cuja solução é (10).
¡
¢−1 T
θ = φT φ
φ u
(10)
Aplicando tal método obtém-se os valores expressos em (11). Vale ressaltar que tais valores
não correspondem diretamente os parâmetros das
juntas e sim as combinações deles conforme definidos na seção 3.
θ1 = 0.0897
θ2 = 0.0532
θ3 = −0.0278
θ4 = 0.0070
θ5 = 0.0394
θ6 = 0.0304
θ7 = 1.8451
θ8 = −0.3051
θ9 = 3.7646
θ10 = 7.7043
θ11 = 1.8013
θ12 = 1.2415
(11)
Posição (rad)
2
1.5
1
0.5
0
0
1000
2000
3000
4000
5000 6000
Amostras
7000
8000
9000 10000
Figura 6: Posição Angular da junta q1 .
5
Resultados Experimentais
Comparar a simulação do modelo obtido com
os dados medidos é provavelmente a forma mais
usual de se validar um modelo (Aguirre, 2004),
com o cuidado de não usar os dados utilizados
na obtenção do modelo. Dessa forma, aplicou-se
uma nova entrada de tensão, mostrada na figura 8,
para adquirir um novo conjunto de dados para a
validação do modelo.
Assim, simulou-se o comportamento do modelo (12) de forma semelhante ao experimento da
seção 4 para diversas janelas de tempo. As posições e as velocidades iniciais das juntas na simulação foram inicializadas com o valor dessas variáveis no robô real no inı́cio da janela de simulação.
As figuras 9, 10, 11 e 12 mostram o resultado obtido na simulação do modelo e o resultado do experimento com o robô real, a partir de 21 segundos
com uma janela temporal de 14 segundos.
As figuras 9 e 10 mostram que o modelo identificado tem um comportamento similar ao robô
durante os três primeiros segundos da simulação.
Isso corresponde a certa de 3000 amostras. A partir deste tempo, o modelo até consegue imitar o as
variações do robô, porém com um drift. Esse drift
possivelmente ocorre devido à integração de pequenos erros no modelo identificado, que são acumulados ao longo do tempo. Este erro pode ser
3.5
3.5
Modelo
Média dos Ensaios
3
3
2.5
2.5
Posição (rad)
2
Posição (Rad)
1.5
1
2
1.5
0.5
0
1
−0.5
0.5
−1
0
1000
2000
3000
4000
5000 6000
Amostras
7000
8000
9000 10000
Posição Simulada
Posição Medida
0
22
24
26
28
Tempo (s)
30
32
34
Figura 7: Posição Angular da junta q2 .
Figura 9: Posição Angular da junta q1 .
12
Junta 1
Junta 2
10
2.5
8
2
6
4
Posição (Rad)
Tensão (V)
1.5
2
0
−2
1
0.5
−4
0
−6
−8
−0.5
−10
0
5
10
15
20
Tempo (s)
25
30
35
Posição Simulada
Posição Medida
−1
22
24
26
Figura 8: Tensão aplicada as juntas.
28
Tempo (s)
30
32
34
Figura 10: Posição Angular da junta q2 .
relevado, uma vez que está identificação tem como
objetivo a aplicação de uma estratégia de controle,
onde o modelo deve ser válido apenas para pequenos espaços temporais, onde o erro, neste caso, é
praticamente nulo.
As figuras 11 e 12 apresentam resultados melhores e mais próximos do robô. Isto ocorre pelo
fato que as figuras 9 e 10 representam posição, assim elas vão acumulando os erros na velocidade ao
longo do tempo.
Outro método de validação, consiste em a partir os dados gerados pelo o ensaio calcular a tensão
aplicada na junta utilizando (8). Esta aplicação é
útil em estratégias de controle tais como o torque calculado. As figuras 13 e 14 apresentam tal
comparação. Nota-se que no inı́cio do ensaio da
junta 2, a tensão calculada apresenta um offset
em relação a medida. Este offset ocorre porque a
junta está localizada no seu fim de curso (−π/4).
Desta forma, existe uma sustentação mecânica segurando ela parada nessa posição que não foi considerada no modelo.
Nos outros casos, a diferença é devido ao ruı́do
de medida. Ao utilizar dados de apenas um ensaio, as estimativas de aceleração angular ampli-
ficam o ruı́do de medida aumentando a diferença
entre o modelo e o robô.
6
Conclusão
A comparação da resposta do sistema obtida experimentalmente com a resposta obtida do modelo permite concluir que o modelo estimado representa bastante bem o sistema real. Para longos perı́odos de tempo (acima de 2000 vezes o perı́odo de amostragem), os resultados obtidos através de simulação do modelo identificado derivam
com relação os resultados obtidos experimentalmente, embora a forma da curva mantenha-se essencialmente a mesma. Esse comportamento pode
ser atribuı́do a três fatores: a) a pequenos erros
no modelo que são acumulados ao longo do tempo,
b) ao ruı́do, pois como tanto a simulação do modelo quanto os experimentos foram realizados sem
uma trajetória periódica e c) erros de integração
numérica ao simular o modelo.
8
Velocidade Simulada
Velocidade Medida
1
Tensão Aplicada
Tensão Simulada
0.8
6
0.6
4
0.2
Tensão (V)
Velocidae (Rad/s)
0.4
0
2
0
−0.2
−0.4
−2
−0.6
−4
−0.8
−1
22
24
26
28
Tempo (s)
30
32
−6
34
0
5
10
15
20
25
30
35
Tempo (s)
Figura 11: Velocidade Angular da junta q1 .
Figura 13: Tensão aplicada na junta q1 .
15
Velocidade Simulada
Velocidade Medida
0.8
Tensão Aplicada
Tensão Simulada
0.6
10
0.4
5
Tensão (V)
Velocidae (Rad/s)
0.2
0
−0.2
0
−5
−0.4
−0.6
−10
−0.8
−1
22
24
26
28
Tempo (s)
30
32
34
−15
0
5
10
15
20
25
30
35
Tempo (s)
Figura 12: Velocidade Angular da junta q2 .
Figura 14: Tensão aplicada na junta q2 .
Referências
Radkhah, K., Kulic, D. and Croft, E. (2007).
Dynamic parameter identification for the crs
a460 robot, Intelligent Robots and Systems,
2007. IROS 2007. IEEE/RSJ International
Conference on, pp. 3842–3847.
Aguirre, L. A. (2004). Introdução à Identificação
de Sistemas, Editora UFMG.
Craig, J. J. (1989). Introduction to Robotics Mechanics and Control, second edn, AddisonWesley.
Electric machinery,
Santini, D. C. and Lages, W. F. (2008).
A distributed robot control architecture
using RTAI, Proccedings of the Tenth RealTime Linux Workshop, Centro Universitario del Norte, Universidad de Guadalajara, Colotlán, Mexico, pp. 1–5. Available at <http://www.osadl.org/fileadmin/
events/rtlws-2008/p19.pdf>.
Fu, K. S., Gonzales, R. C. and Lee, C. S. G.
(1987). Robotics Control, Sensing, Vision
and Intelligence, Industrial Engineering Series, McGraw-Hill, New York.
Swevers, J., Ganseman, C., Tukel, D., de Schutter, J. and Van Brussel, H. (1997). Optimal robot excitation and identification, Robotics and Automation, IEEE Transactions
on 13(5): 730–740.
Denavit, J. and Hartenberg, R. S. (1955). A kinematic notation for lower-pair mechanisms based on matrices, Trans ASME J. Appl. Mech
23: 215–221.
Fitzgerald, A. E. (2002).
McGraw-Hill.
Grotjahn, M., Heimann, B. and Abdellatif, H.
(2004). Identification of friction and rigidbody dynamics of parallel kinematic structures for model-based control, Multibody System Dynamics 11 pp. 273–294.