Índices de manipulabilidad de un manipulador 3R

6
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

description

Programa en MatLab para graficar las velocidades operacionales y articulares de un manipulador 3R

Transcript of Índices de manipulabilidad de un manipulador 3R

Page 1: Í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

Page 2: Índices de manipulabilidad de un manipulador 3R

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

]

Page 3: Índices de manipulabilidad de un manipulador 3R

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 �̇�, �̇� 𝑦 �̇�

Page 4: Índices de manipulabilidad de un manipulador 3R

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);

Page 5: Índices de manipulabilidad de un manipulador 3R

%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

Page 6: Índices de manipulabilidad de un manipulador 3R

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: