Índices de manipulabilidad de un manipulador 3R
-
Upload
ludwig-beethoven -
Category
Documents
-
view
12 -
download
0
description
Transcript of Índices de manipulabilidad de un manipulador 3R
Instituto Tecnológico de La Laguna
Robótica Aplicada I
Tarea #4
Programa para graficar las velocidades operacionales y
articulares de un manipulador 3R
Nombre: Osvaldo Muñoz Muñoz
Número de Control: 11130605
Dr. José Alfonso Pámanes García
Torreón, Coah. A 13 de Marzo del 2015
INDICES DE DESEMPEÑO DE MANIPULADORES El modelo directo de velocidad de un manipulador está dado por:
�̇� = 𝐽�̇� (1)
Por otra parte, se sabe que la matriz jacobiana se puede factorizar de la siguiente manera:
𝐽 = 𝑈Σ𝑉𝑇 (2) Sustituyendo la ec. (2) en la (1):
�̇� = 𝑈Σ𝑉𝑇�̇�
Donde
𝑈 ∈ 𝑅𝑚𝑥𝑚; 𝑉𝑇 ∈ 𝑅𝑛𝑥𝑛
Multiplicando la ecuación anterior por 𝑈𝑇 por la izquierda
𝑈𝑇�̇� = 𝑈𝑇𝑈Σ𝑉𝑇�̇�
Y definiendo
�̇�∗ ≡ 𝑈𝑇�̇� (3)
𝑞∗̇ ≡ 𝑉𝑇�̇� (4)
Entonces
�̇�∗ = Σ�̇�∗ (5)
Si tomamos como referencia un manipulador 3R
Con ángulos iniciales:
𝜃1 = 135° 𝜃2 = −45° 𝜃3 = −45°
Donde tenemos que:
�̇� = [�̇��̇�
] ; �̇� = [
�̇�1
�̇�2
�̇�3
]
Puesto que 𝑈 𝑦 𝑉 son matrices ortogonales. Entonces, 𝑞∗ ̇ y �̇�∗ son los mismos vectores �̇� y �̇�
expresados en términos de sus componentes (los marcos "�̇�1 − �̇�2 − �̇�3" 𝑦 "�̇� − �̇�")
Por lo cual tenemos que:
Σ = [𝜎1 0 00 𝜎2 0
]
[𝑥 ∗̇
�̇�∗] = [𝜎1 0 00 𝜎2 0
] ∗ [
�̇�1∗
�̇�2∗
�̇�3∗
]
�̇� = 𝜎1�̇�1∗
�̇� = 𝜎2�̇�2∗
�̇�1∗ =
�̇�
𝜎1 (6)
�̇�2∗ =
�̇�
𝜎2 (7)
Si consideramos todas las combinaciones de �̇�1∗, �̇�2
∗ y tales que ||�̇�|| = 1, es decir:
(�̇�1∗)2 + (�̇�2
∗)2 = 1 (8) Sustituyendo (6) y (7) en (8)
(�̇�∗
𝜎1)
2
+ (�̇�∗
𝜎2)
2
= 1 (9)
Si 𝜎1 ≠ 𝜎2 obtenemos una elipsoide en �̇�, �̇� 𝑦 �̇�
CÓDIGO DE MATLAB PARA LA GRAFICACIÓN DEL ÍNDICE DE MANIPULABILIDAD DEL MANIPULADOR 3R:
%Parámetros geométricos del robot: L=50; r=1;
%Ángulos iniciales de la postura:
th1ini = deg2rad(135); th2ini = deg2rad(-45); th3ini = deg2rad(-45); th12ini = th1ini+th2ini; th123ini = th12ini+th3ini;
%Valores de los ángulos Beta y Alfa iniciales:
beta= -90;
alfa= 0;
%Funciones trigonométricas:
s1 = sin(th1ini); c1 = cos(th1ini); s12 = sin(th12ini); c12 = cos(th12ini); s123 = sin(th123ini); c123 = cos(th123ini);
%Jacobiana:
J11 = -L*(s1+s12+s123); J12 = -L*(s12+s123); J13 = -L*s123; J21 = L*(c1+c12+c123); J22 = L*(c12+c123); J23 = L*c123;
J = [J11 J12 J13; J21 J22 J23];
%Obtención de las matrices U, S y V:
[U,S,V]=svd(J);
%Primer ciclo (ciclo BETA):
for B = beta: 10 : 90 %Segundo ciclo (ciclo ALFA): for A=alfa: 10 : 360
%Conversión de los ángulos beta y alfa a radianes:
Br = deg2rad(B); Ar = deg2rad(A);
%Cálculo de los ángulos theta': th1p = r*cos(Br)*cos(Ar); th2p = r*cos(Br)*sin(Ar); th3p = r*sin(Br);
%Vector q': qp = [th1p th2p th3p]';
%Componentes de q': qp1 = th1p; qp2 = th2p; qp3 = th3p;
%Cálculo del vector q'*:
qpa = V'*qp;
%Componentes del vector q'*:
qpa1 = qpa(1); qpa2 = qpa(2); qpa3 = qpa(3);
%Cálculo del vector S'*:
Spa = S*qpa;
%Componentes del vector S'*:
xpa = Spa(1); ypa = Spa(2); zpa = 0;
%Cálculo del vector S':
Sp = J*qp;
%Componentes del vector S':
xp = Sp(1); yp = Sp(2); zp = 0;
%Gráficas de las variables q',q'*,S' y S'*:
figure(1)
subplot(2,2,1) plot3(xp,yp,zp,'.g') xlabel('xp') ylabel('yp') hold on grid on
subplot(2,2,2) plot3(qp1,qp2,qp3,'*b') xlabel('\theta1p') ylabel('\theta2p') zlabel('\theta3p') hold on grid on
subplot(2,2,3) plot3(xpa,ypa,zpa,'.g') xlabel('xp*') ylabel('yp*') hold on grid on
subplot(2,2,4) plot3(qpa1,qpa2,qpa3,'*y') xlabel('\theta1p*') ylabel('\theta2p*') zlabel('\theta3p*') hold on grid on
end
end
Gráficas obtenidas por el programa: