O documento apresenta o modelo cinemático direto e inverso de um robô RR utilizando os parâmetros de Denavit-Hartenberg. É construída a matriz de transformações para diferentes configurações de ângulos de junta e são obtidas as coordenadas cartesianas correspondentes. O modelo cinemático inverso é obtido através da função atan2 para determinar os ângulos de junta a partir das coordenadas no espaço de trabalho. Geradores de trajetórias são elaborados tanto no espaço de juntas quanto no espaço cartesiano
EB1 Cumeada Co(n)Vida à Leitura - Livros à Solta_Serta.pptx
Lista 1 - Robótica (Jim & Ronie)
1. Prominp – Unicamp – 2007
Disciplina: Robótica; Professor: João Maurício Rosário.
Aluno: Jim Silva Naturesa e Ronie Von Oliveira.
Primeira lista de exercícios.
a) Modelo Cinemático direto a partir da obtenção dos parâmetros de Denavit Hartenberg.
O modelo escolhido é o robô com a configuração RR mostrado a seguir (figura 1).
Figura 1 – Robô com a configuração RR.
A figura 2 apresenta o modelo cinemático direto a partir da obtenção dos parâmetros de
Denavit Hartenberg.
Figura 2 – Parâmetros Denavit Hartenberg.
1
2. Como o software WinRob está com alguns defeitos utilizei o Scilab para a construção da
matriz. O código do programa está indicado a seguir.
**************************************************************************
// Programa para construção da matriz Denavit-Hartenberg
// Autor: Jim S. Naturesa e Ronie Von Oliveira
clear
// Variáveis
// Aqui você entra com os valores de teta1, teta2, l1 e l2 (comprimento do braço)
teta1=30;
teta2=60;
l1=2;
l2=1;
// Construção da matriz HD (Denavit-Hartenberg)
h(1,1)=cos(3.141592*(teta1)/180+3.141592*(teta2)/180);
h(1,2)=-sin(3.141592*(teta1)/180+3.141592*(teta2)/180);
h(1,3)=0;
h(1,4)=l2*cos(3.141592*(teta1)/180+3.141592*(teta2)/180)+l1*cos(3.141592*(teta1)/180);
h(2,1)=sin(3.141592*(teta1)/180+3.141592*(teta2)/180);
h(2,2)=cos(3.141592*(teta1)/180+3.141592*(teta2)/180);
h(2,3)=0;
h(2,4)= l2*sin(3.141592*(teta1)/180+3.141592*(teta2)/180)+l1*sin(3.141592*(teta1)/180);
h(3,1)=0
h(3,2)=0
h(3,3)=1
h(3,4)=0
h(4,1)=0
h(4,2)=0
h(4,3)=0
h(4,4)=1
// Resposta
x1=h(1,4)
y1=h(2,4)
**************************************************************************
b) Obter a Matriz de Transformação de Coordenadas final.
A matriz de transformações de coordenadas final é dada pelas seguintes matrizes:
A1 = [C1 -S1 0 l1C1
S1 C1 0 l1S1
0 0 1 0
0 0 0 1]
2
3. A2 = [C2 -S2 0 l2C2
S2 C2 0 l2S2
0 0 1 0
0 0 0 1]
Logo a matriz T é igual a:
T = A1A2 = [C12 -S12 0 l1C1+l2C2
S12 C12 0 l1S1+l2S2
0 0 1 0
0 0 0 1]
Sendo que:
X = l1C1+l2C2
Y = l1S1+l2S2
Lembrando que C1 = cos(θ1) e C12 = cos(θ1- θ2) etc.
c) Obter X,Y, considerando a1= 0.2m e a2= 0,1m, para diferentes configurações dos ângulos de
junta do robô (30, 45, 60) no caso do robô RR ou (0,5m, 1,0m e 1,5m) no caso do robô PP ou RP.
Os valores para l1 e l2 foram 2 e 1 respectivamente. Para a obtenção da matriz a das
coordenadas X eY utilizei o programa em Scilab.
Para teta1 = 30; teta2 = 60, temos:
Matriz Denavit-Hartenberg:
h =
0.0000003 - 1. 0. 1.7320512
1. 0.0000003 0. 1.9999998
0. 0. 1. 0.
0. 0. 0. 1.
Ou
x1 =
1.7320512
y1 =
1.9999998
Para teta1 = 60 e teta2 = 30, temos:
h =
0.0000003 - 1. 0. 1.0000007
1. 0.0000003 0. 2.7320506
0. 0. 1. 0.
0. 0. 0. 1.
3
4. Ou
x1 =
1.0000007
y1 =
2.7320506
Para teta1 = 45 e teta2 = 30, temos:
h =
0.2588193 - 0.9659258 0. 1.6730331
0.9659258 0.2588193 0. 2.3801391
0. 0. 1. 0.
0. 0. 0. 1.
Ou
x1 =
1.6730331
y1 =
2.3801391
d) Obter o modelo cinemático inverso utilizando a função matemática ATAN2
Para a obtenção do modelo cinemático inverso desenvolvi uma segunda parte no Scilab. O
código do programa está indicado abaixo. O procedimento de cálculo está descrito em Craig (1989)
páginas 110 e 111.
*****************************************************************************
// Segunda parte
// Todo esse procedimento está descrito no livro do Craig, páginas 110 e 111 da terceira edição.
// Observação: teta=atan2(s2,c2) é igual a teta=atan(s2/c2)
// Valores de x e y
// Estou entrando com esses valores - não são os valores anteriores
x=1.9908;
y=1.9659;
// cálculo de c2
c2=(x^2+y^2-l1^2-l2^2)/(2*l1*l2)
// Cálcluo de s2
s2=(1-c2^2)^(1/2)
// ângulo teta20
teta20=(atan(s2/c2))*(180/3.141592)
// ângulo teta10
// Cálculo de k1 e k2
4
5. k1=l1+l2*c2;
k2=l2*c2;
// Cálculo de r
r=(k1^2+k2^2)^(1/2)
// Cálculo de gama
gama=(atan(k2/k1))
//Cálculo
teta10=(atan(y/x)-atan(k2/k1))*(180/3.141592)
********************************************************************************
e) A partir de x = 0,1m e y = 0.5m, encontrar os valores dos ângulos das juntas para esta posição.
Utilizando o programa acima obtive os seguintes valores:
Para X = 1,73 e Y = 2,0; os ângulos teta1 e teta2 foram:
teta10 =
37.861588
teta20 =
60.117376
Para X = 1,0 e Y = 2,73; os ângulos teta1 e teta2 foram:
teta10 =
53.104836
teta20 =
30.319369
Para X = 1,67 e Y = 2,38; os ângulos teta1 e teta2 foram:
teta10 =
38.164756
teta20 =
30.308017
Perceba que os valores dos ângulos diferem um pouco dos encontrados anteriormente. Isso
ocorre pois utilizei o valor de π igual a 3,141592 e os valores de X e Y foram inseridos com apenas
duas casas após a vírgula. Por exemplo, se utilizarmos X = 1,6730331 e Y= 2,3801391 os valores
serão:
teta10 =
38.082872
teta20 =
29.999998
Os ângulos originais são teta1 = 45 e teta2 = 30.
5
6. f) Elaborar gerador de trajetórias no espaço de juntas.
Para X = 1.73 e Y = 2.0, temos (figura 2):
Figura 2 – Trajetórias no espaço de juntas para X = 1,73 e Y = 2,0.
Para X = 1,0 e Y = 2,73, temos (figura 3);
Figura 3 - Trajetórias no espaço de juntas para X = 1,0 e Y = 2,73.
6
7. Para X = 1,67 e Y = 2,38, temos (figura 4)
Figura 4 - Trajetórias no espaço de juntas para X = 1,67 e Y = 2,38.
g) Elaborar gerador de trajetórias no espaço cartesiano.
Para X = 1.73 e Y = 2.0, temos (figura 5 e 6):
Figura 5 – Trajetória no espaço cartesiano para X = 1,73 e Y = 2,0.
7
8. Figura 6 – Posições inicial e final.
Para X = 1,0 e Y = 2,73, temos (figuras 7 e 8):
Figura 7 - Trajetória no espaço cartesiano para X = 1,0 e Y = 2,73.
8
9. Figura 8 – Posições inicial e final.
Para X = 1,67 e Y = 2,38 temos (figuras 9 e 10):
Figura 9 - Trajetória no espaço cartesiano para X = 1,67 e Y = 2,38.
9
10. Figura 10 - – Posições inicial e final.
Referências
Craig, J. Introduction to Robotics – Mechanics and Control. Pearson - Prentice Hall. 1989.
Rosário, J. Princípios de Mecatrônica. Editora Pearson. 2005.
Spong, M. & Vidyasagar, M. Robot Dynamics and Control. John Wiley & Sons. 1989.
10