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.