You are on page 1of 12

Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Eltrica ENG04479-Robtica-A Modelo Cinemtico Inverso Prof.

Walter Fetter Lages 16 de setembro de 2007 1 Problema Cinemtico Inverso

O problema cinemtico inverso consiste em obter-se os valores das variveis de junta do manipulador a partir da posio e orientao (desejada) do efetuador nal. d Ou seja, deseja-se computar 1 , 2 , . . . , n a partir de um 0 Tn especicada. 0 d 0 Igualando-se a matriz Tn e a matriz Tn computada pelo modelo cinemtico direto pode-se obter 16 equaes envolvendo as variveis de junta. Destas equaes, 4 so triviais. Outras 9 so referentes parte de rotao da matriz de transformao homognea e portanto apenas 3 destas equaes so independentes. A parte de translao da matriz de transformao homognea fornece outras 3 equaes independentes. Tem-se portanto um sistema com 6 equaes e n incgnitas correspondentes s variveis de junta. Assim, se o manipulador tiver 6 graus de liberdade, tem-se, a princpio, um sistema de equaes que pode ser solucionado para obter-se os valores das variveis de junta para qualquer posio e orientao especicada para o efetuador nal.

Consideraes
1. Existncia de Solues 2. Multiplicidade de Solues 3. Mtodo de Soluo (a) Solues em Forma Fechada 1

i. Mtodo Algbrico ii. Mtodo Geomtrico iii. Soluo de Pieper (b) Solues em Forma Aberta i. Mtodos Numricos

Mtodo Algbrico

Figura 1: Modelo cinemtico inverso pelo mtodo algbrico.

T3 =

C123 S123 S123 C123 0 0 0 0


0 l1 C1 + l2 C12 + l3 C123 0 l1 S1 + l2 S12 + l3 S123 1 0 0 1 0 0 1 0 x y 0 1


d T3 =

C S S C 0 0 0 0

d Fazendo-se 0 T3 = 0 T3 pode-se obter as equaes

C S x y

= = = =

C123 S123 l1 C1 + l2 C12 + l3 C123 l1 S1 + l2 S12 + l3 S123

(1) (2) (3) (4)

Substituindo-se as expresses (1) e (2) em (3) e (4) e rearranjando-se de forma que os termos conhecidos estejam de um lado da igualdade e os termos dependentes das incgnitas estejam do outro, tem-se x l3 C = l1 C1 + l2 C12 y l3 S = l1 S1 + l2 S12 Elevando-se ao quadrado e somando-se as expresses (5) e (6) resulta (x l3 C )2 + (y l3 S )2 = = = = e portanto
2 2 (x l3 C )2 + (y l3 S )2 l1 l2 (7) 2l1 l2 Obviamente deve-se ter 1 C2 1. No entanto, o valor calculado atravs da expresso (7) pode eventualmente estar fora desta faixa. Isto signica que o ponto (x, y, ) est fora do espao de trabalho do manipulador. 2 2 2 2 2 2 2 2 l1 C1 + 2l1 C1 l2 C12 + l2 C12 + l1 S1 + 2l1 S1 l2 S12 + l2 S12 2 2 l1 + l2 + 2l1 l2 (C1 C12 + S1 S12 ) 2 2 l1 + l2 + 2l1 l2 cos (1 (1 + 2 )) 2 2 l1 + l2 + 2l1 l2 C2

(5) (6)

C2 =

Para obter-se o valor do ngulo 2 deve-se evitar o uso da funo acos (), pois desta forma perde-se a informao de quadrante do ngulo. O correto calcular o valor de 2 atravs da funo atan2 (, )1 Para tanto necessita-se obter o valor de S2 , atravs de
2 S2 = 1 C 2

(8)

Note-se que os dois sinais na expresso (8) indicam a existncia de duas possveis solues: Uma com o cotovelo do rob para cima e outra com o cotovelo para baixo. Pode-se portanto, calcular o valor de 2 pela expresso 2 = atan2 (S2 , C2 ) Conhecendo-se 2 , pode-se, de (5) e (6), escrever: x l3 C = l1 C1 + l2 C1 C2 l2 S 1S2 y l 3 S = l 1 S1 + l 2 S1 C 2 + l 2 C 1 S2 de onde possvel obter-se x l 3 C = K 1 C 1 K 2 S1 y l 3 S = K 1 S1 + K 2 C 1 com K1 = l 1 + l 2 C 2 K2 = l 2 S 2 Atravs das seguintes mudanas de variveis r = = tem-se K1 = r cos K2 = r sen
1

(9)

(10) (11)

(12)

2 2 K1 + K2 atan2 (K2 , K1 )

(13) (14)

Esta funo retorna o valor do ngulo no quadrante correto, entre e + .

Aplicando as transformaes (13) e (14) nas expresses (10) e (11), tem-se x l3 C = rC C1 rS S1 y l3 S = rC S1 + rS C1 que pode ser escrita de forma mais compacta como x l 3 C = cos( + 1 ) r y l 3 S = sen ( + 1 ) r de onde pode-se obter y l 3 S x l 3 C , r r

+ 1 = atan2 ou

= atan2 (y l3 S , x l3 C )

1 = atan2 (y l3 S , xl3 C ) = atan2 (y l3 S , xl3 C ) atan2 (K2 , K1 ) e nalmente 1 = atan2 (y l3 S , x l3 C ) atan2 (l2 S2 , l1 + l2 C2 ) (15)

Note-se que o sinal de 2 afeta S2 que afeta 1 . Conhecendo-se 1 e 2 pode-se determinar 3 . De (1) e (2) tem-se atan2 (S , C ) = atan2 (S123 , C123 ) ou atan2 (S , C ) = 1 + 2 + 3 de onde 3 = atan2 (S , C ) 1 2

(16)

Figura 2: Modelo cinemtico inverso pelo mtodo geomtrico.

Mtodo Geomtrico

A soluo para o problema cinemtico inverso atravs do mtodo geomtrico baseia-se na decomposio do manipulador em planos. Considerando-se a congurao com o cotovelo para cima tem-se, pela Lei dos Cossenos:
2 2 (x l3 C )2 + (y l3 S )2 = l1 + l2 2l1 l2 cos(180 + 2 )

j que nesta situao 2 < 0. E como cos(180 + 2 ) = cos 2 , chega-se a C2 =

2 2 (x l3 C )2 + (y l3 S )2 l1 + l2 2l1 l2 Neste caso, o valor de 2 pode ser calculado por

2 = acos (C2 ) pois devido hiptese de que 2 < 0, o quadrante do ngulo est bem denido. Pode-se facilmente perceber que para a congurao com o cotovelo para baixo tem-se 2 = 2 = atan2 (y l3 S , x l3 C )

Denindo-se

Tem-se que quando o cotovelo est para cima 1 = + , com 0 e quando o cotovelo est para baixo 1 = , com 0. pode ser obtido utilizando-se a Lei dos Cossenos:
2 l2 = 2 2 + l1 2l1 (x l3 C )2 + (y l3 S )2 cos

(x l3 C )2 + (y l3 S )2

Logo cos =
2 (x l3 C )2 + (y l3 S )2 + l1 l2

e novamente tem-se que pode ser calculado por = acos (cos ), j que o quadrante do ngulo conhecido. Note que = . Tem-se tambm que = 1 + 2 + 3 . Portanto 3 = 1 2 3 = 1 2

2l1 (x l3 C )2 + (y l3 S )2

Soluo de Pieper

Para manipuladores com 6 (ou 5 ou 4) graus de liberdade, quanto as 3 (ou 2 ou 1) ltimas juntas forem rotacionais e os seus eixos interceptam-se em um nico ponto, possvel obter-se uma soluo geral para o problema cinemtico inverso [3]. Neste caso, possvel desacoplar o problema cinemtico inverso em dois problemas mais simples, o problema de posicionamento inverso e o problema de orientao inverso [5]. 7

Supondo-se um manipulador com n graus de liberdade, o problema cinemtico inverso encontrar os valores de q = [ q1 . . . qn ]T tais que
0 d Tn = 0 T1 . . . n1 Tn = 0 Tn

(17)

d onde 0 Tn a matriz de transformao homognea desejada, ou seja, a matriz de transformao homognea com a posio e orientao do efetuador do rob para a qual se deseja determinar os valores das variveis de junta. A expresso (17) pode ser ser desmembrada em duas equaes, uma correspondendo as especicaes de posio e outra correspondendo as especicaes de orientao:

d Pn = 0 d Rn =

0 0

Pn Rn

(18) (19)

d 0 d onde 0 Pn e Rn representam, respectivamente, a posio e a orientao desejadas para o sistema de coordenadas n. Se os eixos das juntas n 2, n 1 e n se interceptam no ponto Q, as origens dos sistemas de coordenadas {n 1} e {n 2} (atribudos segundo as convenes de Denavit-Hartenberg) estaro neste ponto. Neste caso, o movimento das juntas n 2, n 1 e n no alterar a posio do ponto Q. Como a origem do sistema n1 a partir de Q {n} apenas uma translao por uma distncia dn ao longo de Z e Zn1 est alinhado com Zn , tem-se que 0

n1 = 0 Q + 0 Rn dn n Z n Pnorg = 0 Q + 0 Rn1 dn n1 Z

d Portanto, para posicionar o efetuador do rob no ponto 0 Pn , basta fazer 0 d d n Q = 0 Pn 0 Rn dn n Z

Por outro lado,


0

Q = 0 P(n2)org = 0 Tn3 n3 P(n2)org

que funo apenas de q1 . . . qn3 . Assim, pode-se determinar q1 . . . qn3 a partir de


0 d d n = 0 Tn3 n3 P(n2)org Pn 0 Rn dn n Z

A determinao dos valores de q1 . . . qn3 implica 0 Rn3 estar determinada e como


0 d Rn = 0 Rn3 n3 Rn

deve-se fazer
n3 1 0 d Rn = 0 Rn 3 Rn

ou ainda
n3 T 0 d Rn = 0 Rn 3 Rn

de onde pode-se determinar os valores de qn2 . . . qn .

Mtodo Numrico

Existem diversos mtodos numricos para calcular a cinemtica inversa. Vide [1, 2] para um resumo das tcnicas. Aqui sero apresentadas apenas as mais simples. Justamente por serem mais simples, estas tcnicas so pouco ecientes do ponto de vista computacional e muito suceptveis a problemas com sigularidades.

6.1 Inversa generalizada


A inversa do jacobiano tal que, dada uma pequena variao da posio dda garra, possvel calcular a variao nas coordenadas de junta[4]: q = J 1 (q )X Em geral, no existe a inversa do jacobiano, mas sim uma inversa generalizada B , que cumpre alguma das condies de Moore-Penrose: 1. JBJ = J 2. BJB = B 3. (JB )T = JB 4. (BJ )T = BJ J . Se B cumpre todas as quatro condies, dita pseudo-inversa, e nica: B =

Achar a inversa generalizada um processo lento e que no lida adequadamente com singularidades.

6.2 Transposta do Jacobiano


Em lugar de utilizar a pseudo-inversa do jacobiano, pode-se utilizar a transposta: q = J T (q )X muito mais eciente do ponto de vista computacional e evita problemas com singularidades. Esta aproximao motivada por consideraes fsicas com base no conceito de trabalho virtual. Para resolver certos problemas de escala, pode-se introduzir um fator de escala h, e iterar at atingir a convergncia: q (i+1) = hJ T (q )X (i)

Referncias
[1] S. R. Buss. Introduction to inverse kinematics with jacobian transpose, pseudoinverse and damped least squares methods. Typeset Manuscript, available from http:/math.ucsd.edu/~sbuss/ResearchWeb, Apr 2004. [2] S. R. Buss and J.-S. Kim. Selectively damped least squares for inverse kinematics. Typeset Manuscript, available from http:/math.ucsd.edu/ ~sbuss/ResearchWeb, Apr 2004. [3] J. J. Craig. Introduction to Robotics Mechanics and Control. Addison-Wesley, second edition, 1989. [4] V. F. Romano, editor. Robtica Industrial Aplicao na Indstria de Manufatura e de Processos. Edgard Blcher, So Paulo, 2002. [5] M. W. Spong and M. Vidyasagar. Robot Dynamics and Control. John Wiley & Sons, 1989.

A Relaes Trigonomtricas teis


A.1 Cosseno da Soma
cos(a b) = cos a cos b sen a sen b

10

A.2

Seno da Soma
sen (a b) = sen a cos b cos a sen b

A.3

Lei dos Cossenos

Figura 3: Denio de ngulos e vrtices para a Lei dos Senos e Lei dos Cossenos.

a2 = b2 + c2 2bc cos

A.4

Lei dos Senos


a b c = = sen sen sen

A.5

Lei das Tangentes


tan a+b = ab tan
1 ( 2 1 ( 2

+ ) )

Solues Algbricas Reduzidas a Polinmios


a cos + b sen = c

Seja uma equao trigonomtrica na forma

Esta equao pode ser resolvida para atravs das seguintes transformaes algbricas:

11

1 u2 1 + u2 2u sen = 1 + u2 tan = u 2 cos = Aplicando-se as transformaes, tem-se a 2u 1 u2 + b =c 1 + u2 1 + u2

(20) (21) (22)

a(1 u2 ) + 2bu = c(1 + u2 ) a au2 + 2bu = c + cu2 (c + a)u2 2bu + (c a) = 0 u= 2b 4b2 4(c + a)(c a)

2(c + a) b b2 c 2 + a 2 u= c+a a2 + b 2 c 2 1 b = 2 tan a+c

12