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
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.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