Escolar Documentos
Profissional Documentos
Cultura Documentos
Escola de Engenharia
Departamento de Sistemas Elétricos de Automação e Energia
ENG04479-Robótica-A
2 Considerações
1. Existência de Soluções
2. Multiplicidade de Soluções
3. Método de Solução
1
iii. Solução de Pieper
(b) Soluções em Forma Aberta
i. Métodos Numéricos
3 Método Algébrico
C123 −S123 0 l1 C1 + l2 C12 + l3 C123
0
S123 C123 0 l1 S1 + l2 S12 + l3 S123
T3 =
0
0 1 0
0 0 0 1
2
Cφ −Sφ 0 x
0 d
Sφ C φ 0 y
T3 =
0
0 1 0
0 0 0 1
Fazendo-se 0 T3d = 0 T3 pode-se obter as equações
Cφ = C123 (1)
Sφ = S123 (2)
x = l1 C1 + l2 C12 + l3 C123 (3)
y = l1 S1 + l2 S12 + l3 S123 (4)
x − l3 Cφ = l1 C1 + l2 C12 (5)
y − l3 Sφ = l1 S1 + l2 S12 (6)
e portanto
(x − l3 Cφ )2 + (y − l3 Sφ )2 − l12 − l22
C2 = (7)
2l1 l2
Obviamente deve-se ter −1 ≤ C2 ≤ 1. No entanto, o valor calculado através
da expressão (7) pode eventualmente estar fora desta faixa. Isto significa que o
ponto (x, y, φ) está fora do espaço de trabalho do manipulador.
Para obter-se o valor do ângulo θ2 deve-se evitar o uso da função acos( · ), pois
desta forma perde-se a informação de quadrante do ângulo. O correto é calcular
o valor de θ2 através da função atan2( · , · )1 Para tanto necessita-se obter o valor
de S2 , através de
1
Esta função retorna o valor do ângulo no quadrante correto, entre −π e +π.
3
q
S2 = ± 1 − C22 (8)
Note-se que os dois sinais na expressão (8) indicam a existência de duas pos-
síveis soluções: Uma com o cotovelo do robô para cima e outra com o cotovelo
para baixo. Pode-se portanto, calcular o valor de θ2 pela expressão
θ2 = atan2(S2 , C2 ) (9)
Conhecendo-se θ2 , pode-se, de (5) e (6), escrever:
x − l3 Cφ = l1 C1 + l2 C1 C2 − l2 S1S2
y − l3 Sφ = l1 S1 + l2 S1 C2 + l2 C1 S2
x − l3 Cφ = K1 C1 − K2 S1 (10)
y − l3 Sφ = K1 S1 + K2 C1 (11)
com
K1 = l1 + l2 C2
K2 = l2 S2 (12)
q
r = K12 + K22
γ = atan2(K2 , K1 )
tem-se
K1 = r cos γ (13)
K2 = r sen γ (14)
x − l3 Cφ = rCγ C1 − rSγ S1
y − l3 Sφ = rCγ S1 + rSγ C1
4
que pode ser escrita de forma mais compacta como
x − l3 Cφ
= cos(γ + θ1 )
r
y − l3 Sφ
= sen(γ + θ1 )
r
de onde pode-se obter
y − l3 Sφ x − l3 Cφ
γ + θ1 = atan2 , = atan2(y − l3 Sφ , x − l3 Cφ )
r r
ou
e finalmente
atan2(Sφ , Cφ ) = θ1 + θ2 + θ3
de onde
θ3 = atan2(Sφ , Cφ ) − θ1 − θ2 (16)
4 Método Geométrico
A solução para o problema cinemático inverso através do método geométrico
baseia-se na decomposição do manipulador em planos.
Considerando-se a configuração com o cotovelo para cima tem-se, pela Lei
dos Cossenos:
5
Figura 2: Modelo cinemático inverso pelo método geométrico.
(x − l3 Cφ )2 + (y − l3 Sφ )2 − l12 + l22
C2 =
2l1 l2
Neste caso, o valor de θ2 pode ser calculado por
θ2 = acos(C2 )
pois devido à hipótese de que θ2 < 0, o quadrante do ângulo está bem definido.
Pode-se facilmente perceber que para a configuração com o cotovelo para
baixo tem-se
θ2′ = −θ2
Definindo-se
6
β = atan2(y − l3 Sφ , x − l3 Cφ )
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:
q 2 q
l22 = (x − l3 Cφ )2 + (y − l3 Sφ )2 +l12 −2l1 (x − l3 Cφ )2 + (y − l3 Sφ )2 cos α
Logo
(x − l3 Cφ )2 + (y − l3 Sφ )2 + l12 − l2
cos α = p
2l1 (x − l3 Cφ )2 + (y − l3 Sφ )2
e novamente tem-se que α pode ser calculado por α = acos(cos α), já que o
quadrante do ângulo é conhecido. Note que α′ = −α.
Tem-se também que φ = θ1 + θ2 + θ3 . Portanto
θ3 = φ − θ1 − θ2
e
5 Solução 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, é possível obter-se uma solução geral para o problema cinemático
inverso [4]. Neste caso, é possível desacoplar o problema cinemático inverso em
dois problemas mais simples, o problema de posicionamento inverso e o problema
de orientação inverso [8].
Supondo-se um manipulador com n graus de liberdade, o problema cinemático
inverso é encontrar os valores de q = [ q1 . . . qn ]T tais que
0
Tnd = 0 T1 . . . n−1 Tn = 0 Tn (17)
onde 0 Tnd é a matriz de transformação homogênea desejada, ou seja, a matriz de
transformação homogênea com a posição e orientação do efetuador do robô para
a qual se deseja determinar os valores das variáveis de junta.
7
A expressão (17) pode ser ser desmembrada em duas equações, uma corres-
pondendo as especificações de posição e outra correspondendo as especificações
de orientação:
0 0
Pnd = Pn (18)
0 d 0
Rn = Rn (19)
onde 0 Pnd e 0 Rnd representam, respectivamente, a posição e a orientação 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} (atribuídos segundo as convenções
de Denavit-Hartenberg) estarão neste ponto. Neste caso, o movimento das juntas
n − 2, n − 1 e n não alterará a posição do ponto Q. Como a origem do sistema
{n} é apenas uma translação por uma distância dn ao longo de Ẑn−1 a partir de Q
e Ẑn−1 está alinhado com Ẑn , tem-se que
0
Pnorg = 0 Q + 0 Rn−1 dn n−1 Ẑn−1 = 0 Q + 0 Rn dn n Ẑn
Portanto, para posicionar o efetuador do robô no ponto 0 Pnd , basta fazer
0
Q = 0 Pnd − 0 Rnd dn n Ẑn
Por outro lado,
0
Q = 0 P(n−2)org = 0 Tn−3 n−3 P(n−2)org
que é função apenas de q1 . . . qn−3 . Assim, pode-se determinar q1 . . . qn−3 a partir
de
0
Pnd − 0 Rnd dn n Ẑn = 0 Tn−3 n−3 P(n−2)org
A determinação dos valores de q1 . . . qn−3 implica 0 Rn−3 estar determinada e
como
0
Rnd = 0 Rn−3 n−3 Rn
deve-se fazer
n−3
Rn = 0 Rn−3
−1 0 d
Rn
ou ainda
n−3
Rn = 0 Rn−3
T 0 d
Rn
de onde pode-se determinar os valores de qn−2 . . . qn .
8
6 Método Numérico
Existem diversos métodos numéricos para calcular a cinemática inversa. Vide [2,
3] para um resumo das técnicas. Aqui serão apresentadas apenas as mais simples.
Justamente por serem mais simples, estas técnicas são pouco eficientes do ponto
de vista computacional e muito suceptíveis a problemas com sigularidades.
∆q = J −1 (q)∆X
Em geral, não existe a inversa do jacobiano, mas sim uma inversa generalizada
B, que cumpre alguma das condições de Moore-Penrose:
1. JBJ = J
2. BJB = B
3. (JB)T = JB
4. (BJ)T = BJ
Se B cumpre todas as quatro condições, é dita pseudo-inversa, e é única: B =
J †.
Achar a inversa generalizada é um processo lento e que não lida adequada-
mente com singularidades.
∆q = J T (q)∆X
É muito mais eficiente do ponto de vista computacional e evita problemas com
singularidades.
Esta aproximação é motivada por considerações físicas 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 convergência:
9
7 Modelo Cinemático Inverso do Manipulador Bar-
rett WAM
O modelo Cinemático Inverso do manipulador Barrett WAM apresentado nesta
seção segue a aborgadem de [7], onde o modelo é desenvolvido utilizando método
geométrico, mas procura-se fazer os cálculos através de uma aborgadem algébrica
e não apenas geométrica.
Utilizando-se a idéia do método de Piper de desacoplar posição e orientação,
tem-se que a posição desejada do punho do robô pode ser obtida por:
base
P5dorg = base Pgarra
d
− base Rgarra
d
dgarra garra Ẑgarra (20)
A análise das possíveis posições do manipulador é realizada tendo como base
o esquema representado na Figura 3. Nesta análise geométrica, considera-se que
as partes inferior e superior do manipulador geram um volume de trabalho cor-
respondente a uma casca esférica, sendo que a intersecção destas, pode gerar uma
circunferência, um ponto ou um conjunto nulo (neste caso a posição desejada para
o punho do robô não é atingível). A parte inferior do manipulador corresponde aos
elementos compreendidos da base até a junta 4, e a parte superior do manipulador
compreende os elementos da junta 4 até a ferramenta. Todas as possíveis soluções
são calculadas considerando-se a posição normalizada do punho do manipulador
posicionado verticalmente acima da junta da base.
O pontos O e B representados na Figura 3 estão localizados na origem do
sistema 1 e na origem do sistema 5 respectivamente, ainda, o ponto A é a origem
do sistema 3, que coincide com a origem do sistema 4.
Se os segmentos L1 e L2 pudessem girar livremente em torno dos pontos O
e B respectivamente, a ponta de cada segmento geraria uma casca esférica com
centros em O e B. Mas uma vez que os segmentos estão conectados no ponto A, a
única solução possível é a intersecção das cascas esféricas geradas, sendo que esta
intersecção pode resultar em uma circunferência, um ponto (que é equivalente a
uma circunferência com raio zero) ou nula, sendo que interpreta-se a intersecção
nula como um caso onde não há solução para o problema cinemático inverso.
Ou seja, as possíveis posições do ponto A descrevem um circulo de raio RC
em torno do ponto C que está a uma distância dC do ponto O.
10
B
γ2 L2
RC
C A
d
L1
dC
γ1
11
1
P3 = 1 T2 2 T3 3 P3org =
org
cos(θ2 ) 0 sen(θ2 ) 0 cos(θ3 ) 0 − sen θ3 ) a3 cos θ3 ) 0
sen(θ2 ) 0 − cos(θ2 ) 0 sen(θ3 ) 0 cos(θ3 ) a3 sen(θ3 0
)
0
=
1 0 0 0 −1 0 d3 0
0 0 0 1 0 0 0 1 1
cos(θ2 )a3 cos(θ3 ) + sen(θ2 )d3
sen(θ2 )a3 cos(θ3 ) − cos(θ2 )d3
(27)
a3 sen(θ3 )
1
portanto:
q
L1 = a23 + d23 (28)
e o comprimento do segmento L2 é calculado em relação aos sistemas de coorde-
nadas 3, sendo que da mesma forma que para o segmento L1 , o resultado é uma
constante que portanto não depende das variáveis de junta:
3
P5 = 3 T4 4 T5 5 P5org =
org
cos(θ4 ) 0 sen(θ4 ) a4 cos(θ4 ) cos(θ5 ) 0 − sen(θ5 ) 0 0
sen(θ4 ) 0 − cos(θ4 ) a4 sen(θ4 ) sen(θ5 ) 0 cos(θ ) 0
5 0 =
0 1 0 0 0 −1 0 d5 0
0 0 0 1 0 0 0 1 1
d5 sen(θ4 ) + a4 cos(θ4 )
−d5 cos(θ4 ) + a4 sen(θ4 )
(31)
0
0
q
L2 = a24 + d25 (32)
12
Ainda, para calcular o valor do comprimento do segmento d utilizam-se as
coordenadas dos pontos B e O, sendo que o mesmo é independente das variáveis
de juntas, dependendo apenas de 0 P5org
d
, que pode ser calculado de (20).
d = |B − O| (33)
1
B = 1 P5org
d
= 1 T0 0 P5org
d
(34)
0 0 d 0 d
T
E considerando que 0 P5org
d
vai ter a forma xd5org y5org z5org 1 pode-
se escrever:
"cos(θ1 ) sen(θ1 ) 0 0
# 0 xd d
cos(θ1 )0 xd5org + sen(θ1 )0 y5org
5org
0 d 0 d
1 0 0 −1 0 0y5org − z5org
B= − sen(θ1 ) cos(θ1 ) 0 0 d
z5org
=
− sen(θ1 )0 xd5org + cos(θ1 )0 y5org
d
(35)
0 0 0 1 1 1
E com:
0
1
0
O = 1 P1org =
0
(36)
1
tem-se para d:
q
d= (0 xd5org )2 + (0 y5org
d d
)2 + (0 z5org )2 (37)
13
B
γ2
L2
γ4 UJ
d RC θU
A θ
C L
RLJ γ3
LJ
L1
dC γ1
dLJ
γ2 L2
d RLJ LJ
RC γ 3
θU
C γ4 A θL
γ1 UJ
dC dLJ L1
14
RLJ = Rc + lL cos(θL ) (39)
15
não está na vertical, as circunferências normalizadas precisam ser rotacionadas
para a sua posição real.
Sendo Rn a matriz de rotação que move a posição desejada do punho do ma-
nipulador para a posição normalizada equivalente (Figura 3), tem-se:
0
0 = Rn 0 P5org
d
(47)
d
A matriz Rn é a matriz de rotação que rotaciona um ponto em torno de um
eixo arbitrário, transformando-o em outro, cujo cálculo é mostrado no apêndice
C. Assim, as possíveis posições para o ponto A são dadas por:
xA
0
A = RnT Cn (Rc , dc , φ) = yA (48)
zA
e as possíveis posições para o ponto LJ são dadas por:
xLJ
0
LJ = RnT Cn (RLJ , dLJ , φ) = yLJ (49)
zLJ
Uma vez que γ3 , γ4 , θL e θU foram calculados, pode-se seguir:
cos(θ1 ) cos(θ2 ) − sen(θ1 ) xLJ xA
sen(θ1 ) cos(θ2 ) cos(θ1 ) cos(θ3 ) = yLJ − yA 1 (53)
sen(θ3 ) a3
− sen(θ2 ) 0 zLJ zA
16
Os ângulos θ5 e θ6 podem ser calculados a partir do deslocamento da posi-
ção desejada da garra em relação a posição desejada do punho, representada no
sistema de coordenadas 4, ou seja:
4 5 4
Dgarra = Tbase base Pgarra
d
− 4 Tbase base P5d
xD
4 base d
yD
Pgarra − base P5d =
= Rbase
zD (56)
1
E:
π
q
2 2
θ6 = atan2 zD , xD + yD − , cotovelo para fora (59)
2
q
θ6 = π − atan2 zD , x2D + yD
2
, cotovelo para dentro (60)
T
Observando que xD yD zD pode ser calculado de (56). Para proceder
com o cálculo de θ7 , tem-se:
base d
Rgarra = base R0 0 R6d 6 R7d 7 Rgarra (61)
E deve-se observar que base d
Rgarra é especificado e conhecido, base R0 e 7 Rgarra
são constantes e conhecidos e 0 R6d pode ser calculado a partir de θ1 · · · θ6 que já
foram determinados. E de (61) pode-se obter:
6
R7d = 6 R0d 0 Rbase base d
Rgarra garra
R7 (62)
Por outro lado, dado que a7 = α7 = 0 tem-se:
cos(θ7 ) − sen(θ7 ) 0 0 r11 r12 0 0
6 d
sen(θ7 ) cos(θ7 ) 0 0 r21 r22
0 0
R7 = 0 = (63)
0 1 d7 0 0 1 d7
0 0 0 1 0 0 0 1
e portanto
17
Referências
[1] Barrett Technology, Inc., Cambridge, MA. WAM User Manual, 2011.
[3] S. R. Buss and J.-S. Kim. Selectively damped least squares for inverse ki-
nematics. Typeset Manuscript, available from http:/math.ucsd.edu/
~sbuss/ResearchWeb, Apr 2004.
[7] G. K. Singh and J. Claassens. An analytical solution for the inverse kine-
matics of a redundant 7dof manipulator with link offsets. In Proceedings
of IEEE/RSJ International Conference on Intelligent Robots and Systems
(IROS), pages 2976–2982, Taipei, Taiwan, 2010. IEEE Press.
[8] M. W. Spong and M. Vidyasagar. Robot Dynamics and Control. John Wiley
& Sons, 1989.
18
Figura 6: Definição de ângulos e vértices para a Lei dos Senos e Lei dos Cossenos.
a cos θ + b sen θ = c
Esta equação pode ser resolvida para θ através das seguintes transformações
algébricas:
1 − u2
cos θ = (65)
1 + u2
2u
sen θ = (66)
1 + u2
θ
tan = u (67)
2
Aplicando-se as transformações, tem-se
1 − u2 2u
a 2
+b =c
1+u 1 + u2
19
a(1 − u2 ) + 2bu = c(1 + u2 )
(c + a)u2 − 2bu + (c − a) = 0
p
2b ± 4b2 − 4(c + a)(c − a)
u=
2(c + a)
√
b ± b2 − c2 + a2
u=
c+a
√
a2 + b2 − c2
−1 b ±
θ = 2 tan
a+c
Pn = Rn P (68)
Inicialmente, nota-se que Rn não altera o módulo dos vetores que represen-
tam os pontos, portanto é conveniente continuar o desenvolvimento com vetores
unitários:
P
P1 = (69)
|P |
Pn
P2 = (70)
|Pn |
A partir dos vetores unitários, o cosseno e o seno do ângulo de rotação entre
eles pode ser obtido por:
20
onde · e × representam respectivamente os produtos escalar e vetorial entre os
dois vetores. Por outro lado, o eixo em torno do qual é feita a rotação pode ser
obtido por:
rx
1
r= (P1 × P2 ) = ry
(73)
sen(φ)
rz
A partir do seno e cosseno do ângulo de rotação e do eixo de rotação é possível
obter a matriz de rotação, que tem a forma [5]:
21