Você está na página 1de 6

Modelagem do braço KUKA Kr6 R700 sixx

utilizando a técnica decoupling


Felipe Naressi Grandinetti Lucas Xavier Toffanin Othon Neves Fernandes
RA: 28202 RA: 34361 RA: 34310
Email: felipeng@unifei.edu.br Email: lucasxavier@unifei.edu.br Email: othon@unifei.edu.br

Abstract—The advancement of technology in the industrial parâmetros DH podem ser encontrados para uma mesma
sector has increased the demand for robots and robotic ma- estrutura robótica, dificultando as comparações entre robôs.
nipulators. Therefore, there was an increased need for efficient Portanto, o método desenvolvido propõe calcular a cinemática
methods to control those equipments. For robots with 6 degrees
of freedom, such as in this article, the mathematics involved inversa de um manipulador robótico utilizando apenas 7
to control this kind of equipment is a lot complex. Thus, it parâmetros construtivos, fornecidos na maior parte dos manu-
is proposed to use the decoupling technique to perform the ais das fabricantes.
inverse kinematics of the robotic manipulator. With that, it was O método citado é uma proposta para simplificar o trabalho
possible to control the KUKA Kr6 R700 sixx manipulator within
de modelagem da cinemática inversa pelo método tradicional,
a simulation environment.
utilizando a matriz de cinemática direta, a qual é encontrada
I. I NTRODUÇ ÃO através dos parâmetros DH. Também é possı́vel, por meio
de algoritmos mais complexos, a aplicação de redes neurais
Os robôs são um setor relativamente mais recente da artificiais na cinemática inversa para robôs manipuladores,
tecnologia moderna que transpassa os limites da engenharia como demonstrado por Duarte et-al [4]; ou mesmo a utilização
tradicional, de acordo com Mark et-al [1]. Segundo ele, o das redes neurais artificiais para o mapeamento da cinemática
entendimento da complexidade dos robôs e de suas aplicações inversa do manipulador robótico, cujo feito foi realizado por
requerem conhecimentos de engenharia elétrica, ciência da Nunes [5].
computação, economia e matemática. Assim, devido à diver- Será utilizada a framework ROS (Robot Operating System),
sificada demanda de conhecimento, deu origem a diversos juntamente ao simulador GAZEBO, como base de apoio para
novos cursos de engenharia, especializados para lidar com as desenvolvimento dos códigos relacionados ao movimento do
complexidades envolvidas no ramo da robótica. manipulador em questão. Também será utilizado o software
Para Craig [2], o estudo das mecânicas e do controle dos MATLAB, por meio da toolbox de terceiros para simulação
manipuladores robóticos não é uma ciência nova, mas uma de robôs [6], a fim de dar suporte às simulações.
coletânea de tópicos dos campos mais clássicos de estudo; O presente artigo demonstrará o desenvolvimento da
a engenharia mecânica contribuindo com a metodologia de solução proposta para a problemática em questão, detalhando
estudos das máquinas estáticas e em movimento, a matemática as etapas do processo e as técnicas utilizadas, além de
oferecendo ferramentas de descrição espacial de movimentos demonstrar os resultados experimentais de tal aplicação, assim
e a teoria de controle fornecendo ferramentas para o design como um fechamento sobre a utilização da metodologia na
e elaboração de algoritmos para realizem os movimentos problemática.
desejados ou aplicação de força.
Por estas análises, é notável a necessidade de um método II. S OLUÇ ÃO P ROPOSTA
eficiente e confiável para modelar os robôs, a fim de tornar
possı́vel a realização de tarefas especı́ficas pelo mesmo. Desse 1) Cinemática direta: Com a cinemática direta é possı́vel
modo, o presente trabalho propõe a utilização da técnica definir a posição final do manipulador dadas as rotações
Decoupling para a realização da modelagem do braço KUKA de cada junta. Esta etapa é crucial para a verificação dos
Kr6 r700 sixx, técnica desenvolvida por Brandstötter et-al [3] resultados obtidos na cinemática inversa. Para isto, utilizou-
para a modelagem de manipuladores robóticos com base orto- se a notação de Denavit-Hartenberg. Tal técnica implica
paralelas e punhos esféricos, que são, segundo os autores, em atribuir um referencial para cada junta e, em seguida,
o modelo de manipulador serial mais utilizado no setor encontrar as matrizes de transformação responsáveis pela
industrial. translação e rotação entre o referencial de uma junta e a
De acordo com Brandstötter et-al [3], o método conven- seguinte, repetindo o processo da base à ponta manipuladora
cional de descrever a estrutura de um manipulador serial do robô. A multiplicação dessas matrizes retornará uma matriz
através da cinemática inversa baseada nos parâmetros de de transformação, onde é possı́vel encontrar a posição e a
Denavit-Hartenberg (Parâmetros DH) pode ser inconveniente orientação da ponta do manipulador a partir dos ângulos das
na prática, pois não são uma notação única e diferentes juntas rotativas.
O primeiro passo é definir os referenciais de cada junta. O que resulta nas matrizes de transformação parcial A1 a
Os eixos Zn apontam na direção dos eixos de rotação, sendo A6 , dispostas nas Equações 2 a 7. A fim de simplificar a
seu sentido definido pela regra da mão direita para rotações, representação, considera-se cos(θn ) = Cn e sin(θn ) = Sn .
levando em consideração para qual lado a junta gira ao  
receber um sinal positivo. Já os eixos Xn estão na direção C1 0 S1 0.025C1
 S1 0 −C1 0.025S1 
da comum normal entre Zn e Zn−1 , a qual pode ser obtida A1 =   (2)
pela multiplicação vetorial entre Zn e Zn−1 .
0 1 0 −0.4 
0 0 0 1
 
C2 −S2 0 0.35C2
 S2 C2 0 0.35S2 
A2 = 0
 (3)
0 1 0 
0 0 0 1
 
−S3 0 C3 0
 C3 0 S3 0
A3 =   0
 (4)
1 0 0
0 0 0 1
 
−C4 0 S4 0
 −S4 0 −C4 0 
A4 =   (5)
 0 −1 0 0.365
0 0 0 1
 
Fig. 1. Eixos de Denavit-Hartenberg do robô KUKA Kr6 R700 sixx −C5 0 −S5 0
 −S5 0 C5 0
A5 =   0
 (6)
Com os eixos definidos, como na figura 1é possı́vel encon- 1 0 0
trar as transformações necessárias para que eles se sobrepon- 0 0 0 1
ham. A técnica de Denavit-Hartenberg obedece ao seguinte 
C6 −S6 0 0

padrão de transformações:  S6 C6 0 0 
A6 =   (7)
• Rotação ”θ” no eixo Zn−1 até que Xn−1 e Xn se tornem 0 0 1 −0.08
paralelos 0 0 0 1
• Translação ”d” no eixo Zn−1 até que Xn−1 e Xn se De acordo com a Equação 8, é obtida a solução para
tornem colineares a cinemática direta na matriz de transformação total R TH
• Translação ”a’ no eixo Xn−1 até que a origem dos dois através a multiplicação das matrizes de transformação parcial
referenciais se encontrem no mesmo ponto (Equações 2 a 7), a qual permitirá encontrar as posições e a
• Rotação ”α” no eixo Xn−1 para alinhar Zn−1 e Zn orientações finais do manipulador.
A partir dos passos citados, foi construı́da a Tabela 1 para R
TH = A1 A2 A3 A4 A5 A6 (8)
o robô em questão.
Resultando, de forma matricial, na Equação 9.
(n-1)-n Theta d a Alpha  
0-1 θ1 -0.4 0.025 90 N x Ox Ax P x
1-2 θ2 0 0.35 0 R
N y Oy Ay P y 
TH = 
 N z Oz
 (9)
2-3 90 + θ3 0 0 90 Az P z 
3-4 180 + θ4 0.365 0 -90 0 0 0 1
4-5 180 + θ5 0 0 90 Onde cada um dos elementos da matriz da Equação 9
5-e θ6 -0.08 0 0 encontram-se dispostos nas Equações 10 a 21.
Tabela 1 - Parâmetros Denavit-Hartenberg do robô KUKA N x = C1 C2 C3 C6 S5 − C5 C6 S1 S4 − C4 S1 S6 −
Kr6 r700 sixx C1 C2 S3 S4 S6 − C1 C3 S2 S4 S6 − C1 C6 S2 S3 S5 + (10)
C1 C2 C4 C5 C6 S3 + C1 C3 C4 C5 C6 S2
Com os parâmetros organizados na Tabela 1, é possı́vel
calcular as matrizes de transformação parciais (equivalentes N y = C1 C4 S6 + C1 C5 C6 S4 + C2 C3 C6 S1 S5 −
à transformação entre cada par de juntas subsequentes) uti- C2 S1 S3 S4 S6 − C3 S1 S2 S4 S6 − C6 S1 S2 S3 S5 + (11)
lizando cada linha da tabela na Equação 1. C2 C4 C5 C6 S1 S3 + C3 C4 C5 C6 S1 S2

An+1 = R(z, θn+1 ) × T (0, 0, dn+1 ) N z = C2 C3 S4 S6 + C2 C6 S3 S5 + C3 C6 S2 S5 −


(1) (12)
×T (an+1 , 0, 0) × R(x, αn+1 ) S2 S3 S4 S6 − C2 C3 C4 C5 C6 + C4 C5 C6 S2 S3
Parâmetro Dimensão[m]
a1 0.025
Ox = C5 S1 S4 S6 − C4 C6 S1 − C1 C2 C6 S3 S4 a2 -0.035
−C1 C3 C6 S2 S4 − C1 C2 C3 S5 S6 + C1 S2 S3 S5 S6 − (13) c1 0.4
C1 C2 C4 C5 S3 S6 − C1 C3 C4 C5 S2 S6 c2 0.315
c3 0.365
c4 0.08
Oy = C1 C4 C6 − C1 C5 S4 S6 − C2 C6 S1 S3 S4 −
C3 C6 S1 S2 S4 − C2 C3 S1 S5 S6 + S1 S2 S3 S5 S6 − (14)
C2 C4 C5 S1 S3 S6 − C3 C4 C5 S1 S2 S6 Tabela 2 - Parâmetros do robô KUKA Kr6 r700 sixx para o
cálculo da cinemática inversa

Oz = C2 C3 C6 S4 − C6 S2 S3 S4 − C2 S3 S5 S6 −
(15)
C3 S2 S5 S6 + C2 C3 C4 C5 S6 − C4 C5 S2 S3 S6

Ax = C1 C5 S2 S3 − C1 C2 C3 C5 − S1 S4 S5 + C1 C2 C4 S3 S5 +
C1 C3 C4 S2 S5
(16)

Ay = C1 S4 S5 − C2 C3 C5 S1 + C5 S1 S2 S3 + C2 C4 S1 S3 S5 +
C3 C4 S1 S2 S5
(17)

Az = C4 S2 S3 S5 − C3 C5 S2 − C2 C3 C4 S5 − C2 C5 S3 (18)

P x = 0.025C1 + 0.35C1 C2 − 0.365C1 S2 S3 + 0.08S1 S4 S5 +


0.365C1 C2 C3 + 0.08C1 C2 C3 C5 − 0.08C1 C5 S2 S3 − Fig. 2. Parâmetros de Denavit-Hartenberg do robô KUKA Kr6 r700 sixx
0.08C1 C2 C4 S3 S5 − 0.08C1 C3 C4 S2 S5
(19) Considera-se as três primeiras juntas a partir da base como a
subestrutura responsável pela posição do robô e as três juntas
P y = 0.025S1 + 0.35C2 S1 − 0.08C1 S4 S5 − 0.365S1 S2 S3 + da ponta como a subestrutura responsável pela orientação.
0.365C2 C3 S1 + 0.08C2 C3 C5 S1 − 0.08C5 S1 S2 S3 − Entretanto, não se pode ignorar o comprimento das ligações
0.08C2 C4 S1 S3 S5 − 0.08C3 C4 S1 S2 S5 entre estas três últimas juntas. Logo, se o ponto a ser atingido
(20) é U(ux0 , uy0 , uz0 ), devemos obter um ponto intermediário
C(cx0 , cy0 , cz0 ) que será atingido pela ponta da subestrutura
de posição. As coordenadas do ponto C são obtidas pela
P z = 0.35S2 + 0.365C2 S3 + 0.365C3 S2 + 0.08C2 C5 S3 + translação da posição desejada da ponta do robô na direção
0.08C3 C5 S2 + 0.08C2 C3 C4 S5 − 0.08C4 S2 S3 S5 − 0.4 negativa de Z numa distância igual ao comprimento c4 do
(21)
punho esférico (Equação 22).
     
2) Cinemática inversa: Analisando o resultado da cx0 ux0 0
0
cy0  = uy0  − c4 Re 0
cinemática direta (Equação 9), pelo método de Denavit- (22)
Hartenberg, nota-se que as equações para posição e orientação cz0 uz0 1
são não-lineares e de difı́cil resolução. Caso quiséssemos
Para encontrar os ângulos θ1 , θ2 , θ3 que serão aplicados
encontrar a cinemática inversa através delas, seria necessário
as juntas, utiliza-se relações trigonométricas. No caso de θ1,
encontrar ao menos uma equação para cada ângulo de junta
é certo que sua posição será a qual fará o braço apontar
individualmente. A fim de simplificar o problema, ele será
na direção de C, pois as juntas 2 e 3 são paralelas e não
dividido em duas partes: Posição e orientação
conseguem mudar a orientação desta primeira subestrutura.
É possı́vel classificar o manipulador KUKA KR6 R700
Podemos observar o ângulo θ1 visualmente na Figura 3, que
sixx como um manipulador com juntas paralelas ortogonais e
será dado pela Equação 23.
punho esférico. As dimensões que serão usadas neste método
estão listadas na Tabela 2 e podem ser visualizadas na Figura
2 θ1 = atan2(cy0 cx0 ) (23)
π
θ2 = atan2(nx1 , cz1 ) − ψ2 − (28)
2
Para o cálculo de θ3 são necessários mais parâmetros. A
distância normal entre o ponto G2 e o ponto C é definida por
s1 (Equação 29). Além disso, a hipotenusa formada por a2 e
c3 será chamada de k (Equação 30).
q
s1 = n2x1 + c2z1 (29)
q
k= a22 + c23 (30)
Após todos os parâmetros calculados, é possı́vel encontrar
θ3 a partir da lei dos cossenos e acrescentar o ângulo de offset,
calculado anteriormente na Equação 27. O cálculo de θ3 é
demonstrado pela equação 31.
Fig. 3. Identificação do ângulo θ1 no robô KUKA Kr6 r700 sixx  2
s + c22 − k2

θ3 = acos 1 + ψ3 (31)
Estando θ1 definido, o restante do problema resume-se a 2c2 k
apenas duas juntas em duas dimensões. Define-se um ponto Utilizando os ângulos obtidos pelas Equações 23, 28 e 31,
G2 em cima da junta 2, conforme a Figura 4, cujo componente a subestrutura da base do robô é posicionada no ponto C.
na direção X1 é dado pela Equação 24. Após isso θ4 , θ5 e θ6 devem ser ajustados de forma orientar
nx1 = cx1 − a1 (24) a subestrutura de punho esférico de forma que a mão do robô
tenha a orientação desejada R0e . Ou seja, deve-se rotacionar o
referencial R0c por uma matriz de rotação, ainda desconhecida,
Rce , a qual pode ser calculada a partir da Equação 32.

Rce = R0cT R0e (32)


A matriz de rotação R0c pode ser encontrada pela cinemática
direta, utilizando as matrizes de transformação parcial. Já a
matriz R0e será uma entrada, referente à orientação desejada
para a mão do manipulador da forma expressa na Equação 33.
 
e1,1 e1,2 e1,3
R0e = e2,1 e2,2 e2,3  (33)
e3,1 e3,2 e3,3
O valor de θ5 é obtido no termo (3,3) da Equação 32. Dos
termos (1,3) e (2,3) da mesma equação é obtido o ângulo de
junta relacionado θ4 , e dos termos (3,1) e (3,2) é possı́vel
calcular θ6 [3]. O cálculo de θ4 encontra-se na Equação 34,
Fig. 4. Identificação dos ângulos θ2 e θ3 de θ5 na Equação 35 e de θ6 na Equação 36.

Onde cx1 pode ser calculado por meio da Equação 25.


q θ4 = atan2(e2,3 C1 −e1,3 S1 , e1,3 C23 C1 +e2,3 C23 S1 −e3,3 S23 )
cx1 = c2x0 + c2y0 (25) (34)
Deve-se calcular os ângulos gerados pelos offsets entre as q  π
θ5 = atan2 1 − m2p , mp + (35)
juntas, os quais são calculados pelas Equações 26 e 27. 2
 2
s1 + c22 − k2

ψ2 = acos (26) θ6 = atan2(e1,2 S23 C1 + e2,2 S23 S1 + e3,2 C23
2s1 c2 (36)
  −e1,1 S23 C1 − e2,1 S23S1 − e3,1 C23 )
a2
ψ3 = atan (27) Onde a variável mp na Equação 35 é definida pela Equação
c3 37.
Assim, torna-se possı́vel o cálculo de θ2 , dado pela Equação
28. mp = e1,3 S23 C1 + e2,3 S23 S1 + e3,3 C23 (37)
Assim, conclui-se o método decoupling, restando, ape-
nas, elaborar o algoritmo que fará os cálculos das equações
defnidas nessa seção do artigo, assim como atribuir os valores
às juntas do KUKA Kr6 r700 sixx.

III. R ESULTADOS E XPERIMENTAIS

Para avaliar o desempenho das técnicas citadas anterior-


mente, foi utilizada a framework ROS, junto à ferramenta
de simulação GAZEBO. O Robot Operating System (ROS)
é uma poderosa ferramenta que possibilita o desenvolvimento
de softwares para robôs, além de conter inúmeras bibliotecas
e ferramentas que possibilitam a simulação de um robô para
Fig. 6. Ângulos em rad/s das variáveis da junta 1
avaliar o funcionamento do software desenvolvido. O Gazebo
é um ambiente de simulação que permite a criação de diver-
sos robôs virtuais, bastando apenas codificá-los corretamente.
Logo, é possı́vel descrever o robô utilizado nesse trabalho
de forma virtual, cujo resultado é mostrado na Figura 5,
possibilitando a execução de testes dos algoritmos utilizados
para efetuar o controle do mesmo.

Fig. 7. Ângulos em rad/s das variáveis da junta 2

Fig. 5. KUKA Kr6 r700 sixx implementado no Gazebo.

Para efetuar o controle do robô é necessário controlar os


ângulos das seis juntas disponı́veis, para que, no final, a
combinação entre elas chegue no ponto desejado, caso seja
possı́vel alcançar o mesmo. Para tal, foi desenvolvido um
código em C++ para que o ROS seja capaz de calcular os
ângulos citados e publicá-los nos tópicos das juntas, criados
pelo GAZEBO.
No entanto, para o presente trabalho, o usuário necessita
fornecer a posição desejada no espaço xyz em que o robô se
encontra, pois os dados de entrada serão as três coordenadas Fig. 8. Ângulos em rad/s das variáveis da junta 3
x,y e z referidas à esse espaço.
Para o cálculo dos ângulos das juntas do robô será utilizada O controle utilizado no robo é do tipo PID e é definido
a cinemática inversa definida anteriormente, que transformará na própria implementação do modelo no Gazebo, por isso a
as coordenadas inseridas pelo usuário nos ângulos a serem resposta dos gráficos das Figuras 6, 7 e 8 apresentam dinâmica
executados pelas juntas. Utilizando uma entrada de dados com relação às referências em degrau. Para todos os gráficos
com xyz = [0.7,0,0.5], pode-se observar o comportamento do das figuras destacadas, a variável process value refere-se
modelo através das Figuras 6, 7 e 8, que representam a resposta ao valor atual do ângulo presente na junta, enquanto que
das juntas 1, 2 e 3 (process values) em relação aos ângulos set point diz respeito ao ângulo executado por ela, decorrente
impostos (set point), respectivamente. da cinemática inversa inserida no algoritmo.
IV. C ONCLUS ÃO
A aplicação do método de Denavit-Hartenberg se mostrou
como uma ferramenta eficaz para modelar a cinemática direta
de um manipulador robótico. Por ser um método padronizado,
não há grandes dificuldades em encontrar os parâmetros
necessários para sua utilização. Com estes parâmetros em
mãos, basta utilizar qualquer ferramenta computacional capaz
de realizar multiplicação das matrizes de transformações par-
ciais, para obter a matriz de transformação total.
Em manipuladores mais simples, com menos graus de liber-
dade - ou menos juntas, é comum que se calcule as equações
para cinemática inversa a partir do modelo de cinemática
direta deduzido pelas matrizes de transformação de Denavit-
Hartenberg. Entretanto, para robôs mais complexos, como, por
exemplo, o KUKA KR6 R700 sixx, esta pode ser uma tarefa
mais trabalhosa. As equações encontradas são demasiadamente
complexas para que seja possı́vel isolar os valores dos ângulos
de maneira algébrica. Seria mais viável utilizar redes neurais
artificiais ou métodos numéricos para encontrar as soluções.
Entretanto, optou-se por uma solução alternativa: considerar
partes menores do manipulador individualmente. Ao fazer isto,
o problema resumiu-se a relações trigonométricas no plano e
uma matriz de rotação final. As equações finais encontradas
para os ângulos foram facilmente resolvı́veis pelo software
responsável por controlar o robô.
Além disso, conforme as abordagens na apresentação dos re-
sultados, é possı́vel observar que o método aplicado apresentou
resultados precisos, com módulo do erro medido menor que
0.035m, o qual acumula tanto imprecisões do método aplicado
quanto do controlador PID da simulação, assim como suas
tolerâncias. É, também, importante ressaltar que, nos testes
realizados, o robô não extrapolou os limites angulares de suas
juntas, sendo capaz de atingir todos os pontos alcançáveis
respeitando as suas limitações mecânicas.
R EFERENCES
[1] Mark W. Spong and Seth Hutchinson and M. Vidyasagar, Robot Modeling
and Control, 1st ed. JOHN WILEY & SONS, INC, New York 2005.
[2] John J. Craig, Introduction to Robotics: Mechanics and Control, 3rd ed.
PEARSON® , Harlow 2014.
[3] Mathias Brandstötter and Arthur Angeres and Michael Hofbaur, An
Analytical Solution of the Inverse Kinematics Problem of Industrial
Serial Manipulators with an Ortho-parallel Basis and a Spherical Weist,
Proceegins of the Austrian Robotics Workshop, Maio de 2014.
[4] Gabriel Daltro Duarte and Claudio Pereira Mego Quinteiros and Lin-
coln Machado de Araújo, Cinemática Inversa com Redes Neurais Apli-
cadas em Robôs Manipuladores, Revista Principia, Junho de 2018.
[5] Ricardo Fernando Nunes, Mapeamento da cinemática inversa de um
manipulador robótico utilizando redes neurais artificiais configuradas
em paralelo, Universidade Estadual Paulista ”Júlio de Mesquita Filho”
- Campus de Ilha Solteira, Departamento de Engenharia Elétrica, Ilha
Solteira, 2016.
[6] Peter Corke, A Robotics Toolbox for MATLAB. IEEE Robotics & Au-
tomation Magazine, Março de 1996.

Você também pode gostar