UNIVERSIDAD NACIONAL DE INGENIERÍA
-1-
Analisis y Control de Robots
CONTROL DE TRAYECTORIA DE UN ROBOT ESFERICO DE
TRES GRADOS DE LIBERTAD
Integrantes:
Renato Masias Galarza
Alex Ramón Castillo
Rony Rivas Quispe
Leonel Orco Castillo
Felipe Gómez Fernandez
Javier Morales Cabello
Profesor: Ing. Anchayhua Arestegui, Nilton Cesar
Facultad de Ingeniería Mecánica
ABSTRACT
Este artículo describe el seguimiento de trayectoria y respuesta ante perturbaciones mediante el control monoarticular
y multiarticular de un Robot Esférico de tres grados de libertad, así como el cálculo de su cinemática y dinámica. Se
usa la herramientas de Simulink y MatLab como software de simulación del motor, el robot y el controlador.
ESQUEMA DEL ROBOT
Sus parámetros son:
L1 = 0.8m
L2 = 0.6m
L3= 0.6m
m1 =10kg
m2 = 2kg
m3 = 0.2kg
Los Centros de Masa están ubicados en el centro
de cada eslabón.
MARCO TEORICO
1) Cálculo de la Dinámica Directa
Los parámetros DH son:
Con esta información se procede a calcular los
parámetros necesarios para obtener la dinámica
directa, es decir obtener T1, T2 , y F 3.
Las matrices de transformación serán:
%matrices DH
T10=[cos(q1) 0 sin(q1) 0
sin(q1) 0 -cos(q1) 0
0 1 0 L1
0 0 0 1]
T21=[-sin(q2) 0 cos(q2) 0
cos(q2) 0 sin(q2) 0
0 10 0
0 0 0 1]
T32=[1 0 0 0
0100
001r
0 0 0 1]
T20=T10*T21
T30=T10*T21*T32
T10 =
0, sin(q1),
0, -cos(q1),
1, 0,
0, 0,
0]
0]
L1]
1]
[ cos(q1),
[ sin(q1),
[ 0,
[ 0,
T21 =
.
dt ?qi
?
Analisis y Control de Robots
0, cos(q2),
0, sin(q2),
1, 0,
0, 0,
0]
0]
0]
1]
[ -sin(q2),
[ cos(q2),
[ 0,
[ 0,
T32 =
[ 1, 0, 0, 0]
[ 0, 1, 0, 0]
[ 0, 0, 1, r]
[ 0, 0, 0, 1]
T20 =
[ -cos(q1)*sin(q2), sin(q1), cos(q1)*cos(q2),
[ -sin(q1)*sin(q2), -cos(q1), sin(q1)*cos(q2),
0]
0]
[ cos(q2), 0,
sin(q2), L1]
[ 0, 0, 0, 1]
T30 =
[-cos(q1)*sin(q2),, sin(q1), cos(q1)*cos(q2), cos(q1)*cos(q2)*r]
[-sin(q1)*sin(q2), -cos(q1), sin(q1)*cos(q2), sin(q1)*cos(q2)*r]
[ cos(q2), 0, sin(q2), sin(q2)*r+L1]
[ 0, 0,
0,
1]
Posición de los CMk respecto a su propio sistema
XkYkZk
c1=[0; -L1/2; 0]
c2=[0; 0; L2/2]
c3=[0; 0; -L3/2]
Momentos de Inercia, se considera a los eslabones
coo cilindros huecos:
I1=m1*L1^2/12*[1 0 0; 0 0 0; 0 0 1]
I2=m2*L2^2/12*[1 0 0; 0 1 0; 0 0 0]
I3=m3*L3^2/12*[1 0 0; 0 1 0; 0 0 0]
Tensores inerceiales 3×3 del eslabón k respecto a
XoYoZo y trasladado a su Centro de Masa
R10=[T10(1:3,1:3)];
R20=[T20(1:3,1:3)];
R30=[T30(1:3,1:3)];
D1=simple(R10*I1*transpose(R10))
D2=simple(R20*I2*transpose(R20))
D3=simple(R30*I3*transpose(R30))
Posición de los CM respecto a XoYoZo
C1=T10(1:3,4)+R10*c1
C2=T20(1:3,4)+R20*c2
C3=T30(1:3,4)+R30*c3
C1 =
0
0
1/2*L1
C2 =
1/2*cos(q1)*cos(q2)*L2
1/2*sin(q1)*cos(q2)*L2
L1+1/2*sin(q2)*L2
C3 =
cos(q1)*cos(q2)*r-1/2*cos(q1)*cos(q2)*L3
sin(q1)*cos(q2)*r-1/2*sin(q1)*cos(q2)*L3
sin(q2)*r+L1-1/2*sin(q2)*L3
UNIVERSIDAD NACIONAL DE INGENIERÍA
Jacobianas de velocidad lineal y angular respecto a
los Centros de Masa CM.
Jv=[diff(T30(1:3,4),q1) diff(T30(1:3,4),q2) diff(T30(1:3,4),r)]
Jinv=simple(inv(Jv))
Jv1=[diff(C1,q1) diff(C1,q2) diff(C1,r)]
Jv2=[diff(C2,q1) diff(C2,q2) diff(C2,r)]
Jv3=[diff(C3,q1) diff(C3,q2) diff(C3,r)]
Jw1=[0 0 0; 0 0 0; 1 0 0]
Jw2=[0 sin(q1) 0; 0 -cos(q1) 0; 1 0 0]
Jw3=[0 sin(q1) 0; 0 -cos(q1) 0; 1 0 0]
Tensores inerciales k, describe el movimiento
trasnacional y rotacional del elemento k
d1=transpose(Jv1)*m1*Jv1+transpose(Jw1)*D1*Jw1
d2=simple(transpose(Jv2)*m2*Jv2+transpose(Jw2)*D2*Jw2)
d3=simple(transpose(Jv3)*m3*Jv3+transpose(Jw3)*D3*Jw3)
d=simple(d1+d2+d3)
Energía cinética total y energía potencia total
dq=[dq1; dq2; dr];
Ec=1/2*transpose(dq)*d*dq
Ep=-[0 0 -g]*(m1*C1+m2*C2+m3*C3)
Ec = 1/6*dq1^2*cos(q2)^2*(m2*L2^2+3*m3*r^2-
3*m3*r*L3+m3*L3^2)+1/2*dq2^2*(1/3*m2*L2^2+m3*r^2-
m3*r*L3+1/3*m3*L3^2)+1/2*dr^2*m3
Ep = g*(1/2*m1*L1+m2*(L1+1/2*sin(q2)*L2)+m3*(sin(q2)*r+
L1-1/2*sin(q2)*L3))
El Lagrangiano será entonces la resta de la energía
cinética y la potencial, dando entonces:
L=1/6*dq1^2*cos(q2)^2*(m2*L2^2+3*m3*r^2-
3*m3*r*L3+m3*L3^2)+1/2*dq2^2*(1/3*m2*L2^2+m3*r^2-
m3*r*L3+1/3*m3*L3^2)+1/2*dr^2*m3-
g*(1/2*m1*L1+m2*(L1+1/2*sin(q2)*L2)+m3*(sin(q2)*r+L1-
1/2*sin(q2)*L3))
Los torques y la fuerza se calculan usando el
Lagrangiano mediante la formulación de Lagrange,
esto es:
'
Fi
Ti
L '
?qi (q(t),q (t))
L(q(t),q'(t)) –
d ?
=
Pero en MatLab se usa el método computacional
donde no se deriva respecto al tiempo, el
procedimiento para los dos torques y la fuerza es el
siguiente:
%TOrques y fuerzas
%—————–
q=[q1; q2; r];
ddq=[ddq1; ddq2; ddr];
m=[m1; m2; m3];
C=[C1 C2 C3];
%Torque 1
%——–
DD1=d(1,1:3)
cor1=0; h1=0;
for k=1:3
-6 –
= -0.020833m/s
VX =
= 0.066666m/s
VY =
= 0.025m/s
VZ =
for j=1:3
cor1=simple(cor1+(diff(d(1,j),q(k))-
1/2*diff(d(k,j),q(1)))*dq(k)*dq(j));
end
end
cor1
h1=simple(-[0 0 –
g]*(m1*diff(C1,q(1))+m2*diff(C2,q(1))+m3*diff(C3,q(1))))
T1=simple(DD1*ddq+cor1+h1)
%Torque 2
%——–
DD2=d(2,1:3)
cor2=0; h2=0;
for k=1:3
for j=1:3
cor2=simple(cor2+(diff(d(2,j),q(k))-
1/2*diff(d(k,j),q(2)))*dq(k)*dq(j));
end
end
cor2
h2=simple(-[0 0 –
g]*(m1*diff(C1,q(2))+m2*diff(C2,q(2))+m3*dif
Página siguiente |