Você está na página 1de 20

UNIVERSIDADE ESTADUAL DE LONDRINA

CENTRO DE TECNOLOGIA E URBANISMO


DEPARTAMENTO DE ENGENHARIA ELÉTRICA

LUCCA RODRIGUES PINTO

LABORATÓRIO 2 DE ROBÓTICA E AUTOMAÇÃO


INDUSTRIAL

LONDRINA
2023
2

LUCCA RODRIGUES PINTO

LABORATÓRIO 2 DE ROBÓTICA E AUTOMAÇÃO


INDUSTRIAL

Trabalho apresentado à disciplina


1ELE901 - Robótica e Automação In-
dustrial, na graduação em Engenharia
Elétrica - UEL.
Prof. Ruberlei Gaino

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) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.3 Letra (c) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

5 Resultados e Discussões 13
5.1 Letra (a) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5.2 Letra (b) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5.3 Letra (c) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

6 Conclusões 19
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, a transformação homo-
gênea foi encontrada utilizando computação simbólica. Foi preciso trabalhar com Matlab, seguindo
a formulação da transformação homogênea com matrizes de rotação e translação. Em sequência, o
Robotics ToolBox foi empregado a fim de encontrar a mesma transformação homogênea para então
podermos avaliar os resultados e comparar com a matriz obtida na primeira etapa. Ao final, utilizando
os recursos do ToolBox, foi possível gerar o gráfico do modelo RR planar 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).

3.2 C INEMÁTICA DIRETA E INVERSA

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.

3.3 N OTAÇÃO DE D ENAVIT-H ARTENBERG

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

Figura 3.1: parâmetros de Denavit-Hartenberg

3.4 P OSIÇÃO E ORIENTAÇÃO DO EFETUADOR

Com a notação de Denavit-Hartenberg definida, pode-se obter a posição e orientação do efetuador em


relação ao sistema da base em função dos deslocamentos de todas as articulações. O deslocamento
de cada articulação é dada por di para articulações prismáticas ou θi para articulações de revolução.
Para facilitar a nomenclatura, a posição das articulações pode ser denotada por qi .
Dessa forma, a posição e orientação do ligamento i relativo ao ligamento i-1 é descrita em função
de qi , através da matriz homogênea Ai−1i (qi ). Um manipulador consiste de n + 1 ligamentos, com
a base sendo o ligamento e o efetuador o ligamento n. Portanto, do efetuador à base existem n
transformações homogêneas consecutivas, assim, a posição e orientação do efetuador é dada por:

A0n = A01 (q1 )A12 (q2 )...An−1


n (qn ) (3.1)

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

Dado o modelo RR planar da Figura 4.1, podemos encontrar os parâmetros D-H, conforme a Tabela
4.1.

Figura 4.1: Modelo RR planar

Tabela 4.1: Parâmetros D-H

# θ d a α
0-1 θ1 0 a1 0
1-H θ2 0 a2 0

Logo mais, podemos definir a matriz de transformação homogênea como:

A0H = A01 · A1H (4.1)

Ai−1
i = Rz (θi ) · Tz (di ) · Tx (ai ) · Rx (αi ) (4.2)

4.1 L ETRA ( A )

Encontre a transformação homogênea utilizando computação simbólica, Scilab e ou compatí-


veis.

Como d e α são 0 para este caso, Tx (ai ) e Rx (αi ) serão identidades e podem ser omitidas da equação.
O que nos resta é:

A01 = Rz (θ1 ) · Tx (a1 ) (4.3)


10

A1H = Rz (θ2 ) · Tx (a2 ) (4.4)

Dessa forma, podemos encontrar a matriz de transformação homogênea utilizando computação sim-
bólica:

clc, clear all, close all

% simbolicos
syms q1 q2 real
syms a1 a2 real

% matrizes de rotacao e translacao

Rz_q1 = [cos(q1) -sin(q1) 0 0; ...


sin(q1) cos(q1) 0 0; ...
0 0 1 0;
0 0 0 1]

Tx_a1 = [1 0 0 a1; ...


0 1 0 0; ...
0 0 1 0; ...
0 0 0 1]

Rz_q2 = [cos(q2) -sin(q2) 0 0; ...


sin(q2) cos(q2) 0 0; ...
0 0 1 0;
0 0 0 1]

Tx_a2 = [1 0 0 a2; ...


0 1 0 0; ...
0 0 1 0; ...
0 0 0 1]

A01 = Rz_q1 * Tx_a1


A1H = Rz_q2 * Tx_a2

% matriz de transformacao homogenea


A0H = A01 * A1H;
11

A0H = simplify(A0H)

Os resultados serão apresentados no capítulo Resultados e Discussões.

4.2 L ETRA ( B )

Utilizando os conceitos de Peter Corke, determine a mesma transformada de a).

Para essa etapa, foi necessário instalar o Robotics ToolBox de (3) 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(). Cada objeto de junta possui um campo reservado para a matriz de
transformação, sendo assim, temos:

clc, clear all, close all


import ETS2.*

% simbolicos
syms q1 q2 real
syms a1 a2 real

% juntas
L01 = Revolute('a', a1)
L1H = Revolute('a', a2)

% conectando as juntas em um robo


RR = SerialLink([L01 L1H], 'name', 'robot')

% matriz de transformacao homogenea


A0H = L01.A(q1) * L1H.A(q2);
A0H = simplify(A0H)

Os resultados serão apresentados no capítulo Resultados e Discussões.

4.3 L ETRA ( C )

Utilize o gráfico e verifique se seu programa responde adequadamente.

Para essa etapa, é possível utilizar a função DHFactor() que retorna um objeto que contém a estrutura
cinemática do robô. Seu argumento é uma string contendo a sequência de translações e rotações.
12

clc, clear all, close all


import ETS2.*

% comprimentos
L1 = 1;
L2 = 1;

% sequencia de translacoes e rotacoes


s = 'Rz(q1) Tx(L1) Rz(q2) Tx(L2)'

% funcao de algebra simbolica


dh = DHFactor(s)

% comando do ToolBox para criar o robo


cmd = dh.command('puma')

RR = eval(cmd)
RR.teach

Ainda, é possível avaliar outros casos de teste mudando os parâmetros D-H, conforme sugere o labo-
ratório:

% testando para outro caso


figure(2)
dh = [0, 1, 1, -pi/2, 0; 0, 0, 1, 0, 0; 0, 0, 1, 0, 0]
RR = SerialLink(dh, 'name', 'robot')
RR.teach

Os resultados serão apresentados no capítulo Resultados e Discussões.


13

5 RESULTADOS E DISCUSSÕES

5.1 L ETRA ( A )

Encontre a transformação homogênea utilizando computação simbólica, Scilab e ou compatí-


veis.

Para este modelo RR planar, as matrizes de rotação, translação e transformação homogênea são apre-
sentadas a seguir como resultado do código proposto:

Rz_q1 =

[ cos(q1), -sin(q1), 0, 0]
[ sin(q1), cos(q1), 0, 0]
[ 0, 0, 1, 0]
[ 0, 0, 0, 1]

Tx_a1 =

[ 1, 0, 0, a1]
[ 0, 1, 0, 0]
[ 0, 0, 1, 0]
[ 0, 0, 0, 1]

Rz_q2 =

[ cos(q2), -sin(q2), 0, 0]
[ sin(q2), cos(q2), 0, 0]
[ 0, 0, 1, 0]
[ 0, 0, 0, 1]

Tx_a2 =

[ 1, 0, 0, a2]
[ 0, 1, 0, 0]
14

[ 0, 0, 1, 0]
[ 0, 0, 0, 1]

A01 =

[ cos(q1), -sin(q1), 0, a1*cos(q1)]


[ sin(q1), cos(q1), 0, a1*sin(q1)]
[ 0, 0, 1, 0]
[ 0, 0, 0, 1]

A1H =

[ cos(q2), -sin(q2), 0, a2*cos(q2)]


[ sin(q2), cos(q2), 0, a2*sin(q2)]
[ 0, 0, 1, 0]
[ 0, 0, 0, 1]

A0H =

[ cos(q1 + q2), -sin(q1 + q2), 0, a2*cos(q1 + q2) + a1*cos(q1)]


[ sin(q1 + q2), cos(q1 + q2), 0, a2*sin(q1 + q2) + a1*sin(q1)]
[ 0, 0, 1, 0]
[ 0, 0, 0, 1]

5.2 L ETRA ( B )

Utilizando os conceitos de Peter Corke, determine a mesma transformada de a).

Para essa etapa, os parâmetros das juntas de revolução, o serial-link e a matriz de transformação
são apresentadas a seguir como resultado do código proposto:

L01 =
Revolute(std): theta=q, d=0, a=a1, alpha=0, offset=0

L1H =
Revolute(std): theta=q, d=0, a=a2, alpha=0, offset=0
15

RR =

robot:: 2 axis, RR, stdDH, slowRNE, Symbolic


+---+-----------+-----------+-----------+-----------+-----------+
| j | theta | d | a | alpha | offset |
+---+-----------+-----------+-----------+-----------+-----------+
| 1| q1| 0| a1| 0| 0|
| 2| q2| 0| a2| 0| 0|
+---+-----------+-----------+-----------+-----------+-----------+

[ cos(q1 + q2), -sin(q1 + q2), 0, a2*cos(q1 + q2) + a1*cos(q1)]


[ sin(q1 + q2), cos(q1 + q2), 0, a2*sin(q1 + q2) + a1*sin(q1)]
[ 0, 0, 1, 0]
[ 0, 0, 0, 1]

5.3 L ETRA ( C )

Utilize o gráfico e verifique se seu programa responde adequadamente.

Por fim, utilizando o objeto DHFactor que contém a estrutura cinemática do robô, foi possível visuali-
zar o processo interativo do ToolBox. Ainda, modificando os parâmetros D-H, foi possível visualizar
outras configurações para o robô.

s =

'Rz(q1) Tx(L1) Rz(q2) Tx(L2)'

INIT: Rz(q1) Tx(L1) Rz(q2) Tx(L2)


PARSED: Rz(q1).Tx(L1).Rz(q2).Tx(L2)
Rz(q1).Tx(L1).Rz(q2).Tx(L2)
initial merge + swap
Rz(q1).Tx(L1).Rz(q2).Tx(L2)
joint vars to Z
Rz(q1).Tx(L1).Rz(q2).Tx(L2)
0---------------------------------------
Rz(q1).Tx(L1).Rz(q2).Tx(L2)
1---------------------------------------
16

** deal with Ry/Ty


Rz(q1).Tx(L1).Rz(q2).Tx(L2)
adding: DH(null, 0, 0, 0) += Rz(q1)
adding: DH(q1, 0, 0, 0) += Tx(L1)
adding: DH(null, 0, 0, 0) += Rz(q2)
adding: DH(q2, 0, 0, 0) += Tx(L2)
DH(q1, 0, L1, 0).DH(q2, 0, L2, 0)
In DHFactor, parseString is done

dh =

DH(q1, 0, L1, 0).DH(q2, 0, L2, 0)

cmd =

SerialLink([0, 0, L1, 0, 0; 0, 0, L2, 0, 0; ], 'name', 'puma',


,→ 'base', eye(4,4), 'tool', eye(4,4), 'offset', [0 0 ])

RR =

puma:: 2 axis, RR, stdDH, slowRNE


+---+-----------+-----------+-----------+-----------+-----------+
| j | theta | d | a | alpha | offset |
+---+-----------+-----------+-----------+-----------+-----------+
| 1| q1| 0| 1| 0| 0|
| 2| q2| 0| 1| 0| 0|
+---+-----------+-----------+-----------+-----------+-----------+

dh =

0 1.0000 1.0000 -1.5708 0


0 0 1.0000 0 0
0 0 1.0000 0 0

RR =
17

robot:: 3 axis, RRR, stdDH, slowRNE


+---+-----------+-----------+-----------+-----------+-----------+
| j | theta | d | a | alpha | offset |
+---+-----------+-----------+-----------+-----------+-----------+
| 1| q1| 1| 1| -1.5708| 0|
| 2| q2| 0| 1| 0| 0|
| 3| q3| 0| 1| 0| 0|
+---+-----------+-----------+-----------+-----------+-----------+

Figura 5.1: Modelo RR planar para o caso 1


18

Figura 5.2: Modelo RR planar para o caso 2


19

6 CONCLUSÕES

Observamos e documentamos a teoria necessária de cinemática e da notação de Denavit-Hartenberg


para desenvolver o relatório. O mesmo foi realizado tendo como base as aulas ministradas pelo do-
cente e os livros teóricos denotados na Bibliografia.
Em um primeiro momento, conforme a proposta do laboratório, a transformação homogênea deveria
ser encontrada utilizando computação simbólica, e para tal, foi necessário trabalhar com Matlab, se-
guindo a formulação da transformação homogênea com matrizes de rotação e translação.
Em seguida, utilizando o Robotics ToolBox, foi necessário encontrar a mesma transformação homo-
gênea de acordo com os conceitos de Peter Corke, a fim de avaliar os resultados e comparar com
a matriz obtida na primeira etapa. Foi possível constatar que as matrizes obtidas com computação
simbólica e com os conceitos de Peter Corke se apresentaram idênticas.
Por fim, utilizando os métodos do ToolBox, foi possível gerar o gráfico do modelo RR planar e verifi-
car que o programa responde adequadamente. Modificando os parâmetros D-H, foi possível observar
outras configurações do modelo.
20

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.

[3] Peter Corke. ROBOTICS ToolBox. 2022. Disponível em:


<https://petercorke.com/ToolBoxes/robotics-ToolBox/>.

Você também pode gostar