Escolar Documentos
Profissional Documentos
Cultura Documentos
LONDRINA
2023
2
LONDRINA
2023
3
Conteúdo
1 Licença 4
2 Resumo 5
3 Introdução 6
3.1 Cinemática . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.2 Cinemática direta e inversa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.3 Notação de Denavit-Hartenberg . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.4 Posição e orientação do efetuador . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4 Metodologia 9
4.1 Letra (a) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4.2 Letra (b) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5 Resultados e Discussões 12
5.1 Letra (a) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
5.2 Letra (b) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
6 Conclusões 16
4
1 LICENÇA
5
2 RESUMO
A princípio, este laboratório tem como finalidade tratar do tema de cinemática e da notação de
Denavit-Hartenberg, bem como durante a realização das etapas, aplicar os conceitos vistos em aula,
averiguar e constatar os resultados experimentais e teóricos obtidos ao realizar o experimento para
um modelo RR planar. Inicialmente, conforme a proposta do laboratório, o modelo de um manipula-
dor não planar a 2 DOF foi criado utilizando os parâmetros D-H. Foi preciso trabalhar com Matlab,
seguindo os comandos do Peter Corke. Em sequência, o método de conversão para uma sequência de
transformações elementares realizado por trchain foi compreendido a fim de aplicá-lo no robô criado
e em modelos definidos pelo ToolBox. Ao final, utilizando os recursos do ToolBox, foi possível gerar
o gráfico do modelo não planar a 2 DOF e verificar que o programa responde adequadamente.
6
3 INTRODUÇÃO
3.1 C INEMÁTICA
A cinemática é uma área da mecânica que estuda o movimento de corpos sem considerar massas ou
forças. Um braço robótico é composto por elos rígidos e juntas que podem ser de natureza transla-
cional (permitindo movimento linear) ou rotacional (permitindo movimento angular). O movimento
dessas juntas influencia a posição dos elos conectados e, consequentemente, do efetuador final. Este
último é a parte do robô que executa tarefas úteis e pode se mover livremente no espaço. Ao longo
deste processo, há a necessidade de calcular tanto a posição do efetuador final com base nas juntas,
o que é chamado de cinemática direta, quanto a posição das juntas com base na posição do efetuador
final, conhecido como o problema inverso (1).
A cinemática direta é um conceito fundamental na robótica que envolve mapear as coordenadas das
juntas de um robô para a posição final de seu efetuador. Este processo é explorado no contexto de
braços robóticos, começando com exemplos simples de movimento bidimensional e evoluindo para
braços mais complexos com movimento tridimensional (1).
Ao contrário da cinemática direta, na qual desejamos calcular a posição do órgão terminal do ma-
nipulador em função das variáveis de junta, na cinemática inversa se deseja calcular os valores das
variáveis de junta que produzirão a posição e orientação desejadas para o órgão terminal.
Uma série de abordagens foram desenvolvidas para descrever de forma mais concisa um braço robó-
tico serial-link: a notação de Denavit-Hartenberg (D-H) é uma convenção amplamente utilizada na
robótica para descrever a cinemática de robôs manipuladores. Foi desenvolvida por Jacques Denavit
e Richard Hartenberg na década de 1950 e é fundamental para representar a geometria e as transfor-
mações entre os elos de um robô manipulador. Essa notação é particularmente útil para modelar a
cinemática direta e inversa de robôs (1).
A Figura 3.1 apresenta os parâmetros de Denavit-Hartenberg, seu significado físico, símbolo e defi-
nição formal.
7
Onde A0n é a matriz homogênea que representa a posição e orientação do efetuador em relação ao
sistema da base, em função das posições de todas as articulações. Como A0n é uma matriz homogênea
ela tem a seguinte forma:
" #
Rn0 (q1 , ..., qn ) Tn0 (q1 , ..., qn )
A0n (q1 , ..., qn ) = (3.2)
0 1
Rn0 (q1 , ..., qn ) é a matriz de rotação que representa a orientação do efetuador em relação ao sistema da
base. O vetor Tn0 (q1 , ..., qn ) fornece a posição do efetuador em relação ao sistema da base.
A transformação correspondente às rotações em torno dos eixos x, y ou z por um ângulo é:
1 0 0 0
0 cosθ −sinθ 0
R(x, θ) = (3.3)
0 sinθ cosθ 0
0 0 0 1
8
cosθ
0 sinθ 0
01 0 0
R(y, θ) = (3.4)
−sinθ
0 cosθ 0
00 0 1
cosθ −sinθ 0 0
sinθ cosθ 0 0
R(z, θ) =
(3.5)
0 0 1 0
0 0 0 1
No mais, a transformação T correspondente a uma translação por um vetor ai + bj + ck é (2):
1 0 0 a
0 1 0 b
T (a, b, c) = (3.6)
0 0 1 c
0 0 0 1
9
4 METODOLOGIA
# θ d a α
0-1 θ1 L1 0 +90
1-2 θ2 0 L2 0
4.1 L ETRA ( A )
Para essa etapa, foi necessário instalar o Robotics ToolBox de (4) para que fosse possível utilizar
os conceitos de Peter Corke.
Dentro do ToolBox, uma junta de revolução do robô pode ser criada com Revolute() e conectada com
outras juntas com SerialLink(). Sendo assim, temos:
10
L1 = 1;
L2 = 1;
d2r = pi/180;
% juntas
J1 = Revolute('d', L1, 'a', 0, 'alpha', 90*d2r, 'qlim', [-180*d2r 180*d2r])
J2 = Revolute('d', 0, 'a', L2, 'alpha', 0, 'qlim', [-90*d2r 270*d2r])
4.2 L ETRA ( B )
Compreenda https://github.com/petercorke/robotics-toolbox-matlab/blob/master/%40SerialLi
nk/trchain.m.
Possível criar um mdl e usar o trchain para obter a cinemática direta?
Crie seu programa e obtenha os resultados.
trchain realiza uma conversão para uma sequência de transformações elementares que descreve a
cinemática do braço do robô de link serial. Isto é feito link a link, utilizando append para adicionar a
transformação elementar a ums string S.
A string S compreende um número de transformações elementares no formato X(ARG), onde X é
Tx, Ty, Tz, Rx, Ry ou Rz, e ARG é uma variável de junta, um ângulo constante ou uma dimensão de
comprimento.
Sendo assim, utilizando o Toolbox, é possível criar um modelo usando a função SerialLink(). O To-
olbox também contém um grande número de modelos de braços robóticos definidos, como o Puma
560. Um teste do uso de trchain pode ser feito utilizando o robô do item (a) criado com SerialLink():
L1 = 1;
L2 = 1;
d2r = pi/180;
11
% juntas
J1 = Revolute('d', L1, 'a', 0, 'alpha', 90*d2r, 'qlim', [-180*d2r 180*d2r]);
J2 = Revolute('d', 0, 'a', L2, 'alpha', 0, 'qlim', [-90*d2r 270*d2r]);
No mais, o teste que o autor sugere pode ser realizado com o Puma 560:
mdl_puma560
p560
p560.teach
p560.trchain
5 RESULTADOS E DISCUSSÕES
5.1 L ETRA ( A )
Para este manipulador não planar a 2 DOF, o modelo foi criado com os comandos do Peter Corke. A
seguir, são apresentados os resultados com os parâmetros D-H:
J1 =
Revolute(std): theta=q, d=1, a=0, alpha=1.5708, offset=0
J2 =
Revolute(std): theta=q, d=0, a=1, alpha=0, offset=0
robot =
5.2 L ETRA ( B )
Compreenda https://github.com/petercorke/robotics-toolbox-matlab/blob/master/%40SerialLi
nk/trchain.m.
Possível criar um mdl e usar o trchain para obter a cinemática direta?
Crie seu programa e obtenha os resultados.
Para essa etapa, o primeiro teste do trchain compreende o uso do robô criado no item (a). Os re-
sultados deste teste são apresentados a seguir:
robot =
ans =
'Rz(q1)Tz(1)Rx(90)Rz(q2)Tx(1)'
O segundo teste compreende o uso de modelos de braços robóticos definidos, como o Puma 560. Os
resultados deste teste são apresentados a seguir:
p560 =
ans =
'Rz(q1)Rx(90)Rz(q2)Tx(0.4318)Rz(q3)Tz(0.15005)Tx(0.0203)Rx(-90)
,→ Rz(q4)Tz(0.4318)Rx(90)Rz(q5)Rx(-90)Rz(q6)'
15
6 CONCLUSÕES
Bibliografia
[1] Corke, P. Robotics, Vision and Control: Fundamental Algorithms in MATLAB. [S.l.]: Springer,
2017.
[2] Paul R. P. Mathematics, Programming, and Control : the Computer Control of Robot Manipula-
tors. [S.l.]: The MIT Press, 1981.