Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Informe de Laboratorio 7 - Modelamiento Dinámico Del Robot PDF
Informe de Laboratorio 7 - Modelamiento Dinámico Del Robot PDF
Facultad de Ingeniería
Escuela Profesional de Ingeniería Mecatrónica
Informe de Laboratorio N° 7
Robótica
CICLO : Noveno
Trujillo - Perú
Junio de 2019
UNIVERSIDAD NACIONAL DE TRUJILLO
Resumen
Palabras clave:
Abstract
This report is based on reinforcement and practice. What takes place The theory about robot
dynamics. To achieve this, the MATLAB 2018 software can be used for the implementation
of the algorithm that must be followed to obtain the equations that govern the dynamics of the
robot in a script that condense the solution of each one of the exercises proposed in this
laboratory.
Keywords:
INGENIERÍA MECATRÓNICA 1
UNIVERSIDAD NACIONAL DE TRUJILLO
Tabla de contenido
Resumen ..................................................................................................................................... 1
Abstract ...................................................................................................................................... 1
Capítulo1 .................................................................................................................................... 4
Introducción ............................................................................................................................... 4
Objetivos ................................................................................................................................ 4
Objetivos Específicos......................................................................................................... 4
Materiales ............................................................................................................................... 4
Capítulo 2 ................................................................................................................................... 5
Capítulo 3 ................................................................................................................................... 7
Metodología ............................................................................................................................... 7
Capítulo 4 ................................................................................................................................. 27
Conclusiones ............................................................................................................................ 27
INGENIERÍA MECATRÓNICA 2
UNIVERSIDAD NACIONAL DE TRUJILLO
Tabla de Figuras
Lista de tablas
Tabla 1. Parámetros de Denavit Hartenberg. ........................................................................... 11
Tabla 2. Parámetros de Denavit Hartenberg. ........................................................................... 15
Tabla 3. Parámetros de Denavit Hartenberg. ........................................................................... 19
INGENIERÍA MECATRÓNICA 3
UNIVERSIDAD NACIONAL DE TRUJILLO
Capítulo1
Introducción
Objetivos
Objetivo General.
Objetivos Específicos.
Materiales
- Computadora personal
- Software MATLAB R2018a
INGENIERÍA MECATRÓNICA 4
UNIVERSIDAD NACIONAL DE TRUJILLO
Capítulo 2
Marco Teórico
Para el desarrollo de este laboratorio es necesario definir las matrices que conforman
las ecuaciones de la dinámica del robot de Lagrange – Euler junto con su respectiva función en
Matlab.
Donde
𝑛 𝑚11 ⋯ 𝑚1𝑛
𝑇 𝑇
𝑀(𝑞) = ∑ 𝑚𝑖 (𝐽𝑣𝑖 ) 𝐽𝑣𝑖 + (𝐽𝜔𝑖 ) 0𝑅𝑖 𝑖𝐼 ( 0𝑅𝑖 )𝑇 𝐽𝜔𝑖 =[ ⋮ ⋱ ⋮ ]
𝑖=1 𝑚𝑛1 ⋯ 𝑚𝑛𝑛
% Matriz Masa
function [output] = matrizMasa(m,I,R0,Jv,Jw)
sumD = 0;
for i = 1:2
Di = m(i)*(Jv(3*i-2:3*i,1:n).')*Jv(3*i-2:3*i,1:n) + (Jw(3*i-
2:3*i,1:n).')*R0(3*i-2:3*i,1:3)*I(3*i-2:3*i,1:3)*(R0(3*i-
2:3*i,1:3).')*Jw(3*i-2:3*i,1:n);
sumD = sumD + Di;
D = sumD;
end
output = D;
end
𝑐11 ⋯ 𝑐1𝑛 𝑛
INGENIERÍA MECATRÓNICA 5
UNIVERSIDAD NACIONAL DE TRUJILLO
end
𝑔1
𝑇
𝐺(𝑞) = − ∑(𝐽𝑣𝑖 ) 𝑚𝑖 ⃗ =[ ⋮ ]
𝐠0
𝑖=1 𝑔𝑛
% Matriz de gravedad
function [output] = matrizGravedad(m,g0,Jv)
sumG = 0;
for i = 1:2
Gi = (Jv(3*i-2:3*i,1:n).')*m(i)*g0;
sumG = sumG + Gi;
G = sumG;
end
output = G;
end
INGENIERÍA MECATRÓNICA 6
UNIVERSIDAD NACIONAL DE TRUJILLO
Capítulo 3
Metodología
Con el fin de estudiar y comprender el modelo dinámico del robot, nos valemos de
ejercicios que se presentan a continuación. Para este estudio se hace uso de una herramienta de
software MATLAB para lograr resolverlos.
Ejercicios
1. La figura 1 muestra un péndulo esférico. Dicho péndulo está formado por una masa puntual
m, unida a una articulación esférica a través de una barra de longitud “ℓ” la cual posee una
masa despreciable. La configuración de la masa puntual estará parametrizada por 𝑞 = (𝜃,𝜙),
dónde 𝜃 mide la distancia angular del eje z, y 𝜙 mide la distancia angular del eje x.
y
x
θ
ℓ
ϕ m
mg
Figura 1. Péndulo esférico.
a) Determinar las ecuaciones que representan la dinámica del péndulo, suponiendo que no
existe actuación externa, usando el método de Euler – Lagrange.
b) Usando el resultado anterior, encontrar la matriz 𝑀(𝑞), 𝐶(𝑞,𝑞̇) y el vector g(q) para que
la dinámica del péndulo quede expresada de forma compacta como 𝑀(𝑞)𝑞̈+
𝐶(𝑞,𝑞̇)𝑞̇+𝑔(𝑞)=0.
INGENIERÍA MECATRÓNICA 7
UNIVERSIDAD NACIONAL DE TRUJILLO
Solución:
Para dar solución al sistema dinámico mediante el método de Euler – Lagrange primero se
debe de identificar las variables independientes del sistema y expresar los sistemas de
coordenadas en función a ellos. En este caso estas variables son 𝜃 y 𝜙.
𝑥 = ℓ sin 𝜃 cos 𝜙
𝑦 = ℓ sin 𝜃 sin 𝜙
𝑧 = −ℓ cos 𝜃
Luego es necesario realizar operaciones previas. Primero derivamos cada ecuación respecto
al tiempo
𝑧̇ = ℓ sin 𝜃 𝜃̇
Y elevamos al cuadrado
𝑧̇ 2 = ℓ2 sin2 𝜃 𝜃̇ 2
1 1
𝐾 = 𝑚‖𝑥̇ 2 + 𝑦̇ 2 + 𝑧̇ 2 ‖ = 𝑚ℓ2 (cos 2 𝜃 𝜃̇ 2 + sin2 𝜃 𝜙̇ 2 + sin2 𝜃 𝜃̇ 2 )
2 2
1
𝐾 = 𝑚ℓ2 (𝜃̇ 2 + sin2 𝜃 𝜙̇ 2 )
2
Y también la energía potencial del sistema, en este caso solo existe energía potencial
gravitatoria.
𝑈 = −𝑚𝑔ℓ cos 𝜃
INGENIERÍA MECATRÓNICA 8
UNIVERSIDAD NACIONAL DE TRUJILLO
Y obtenemos el Lagrangiano
1
𝐿{𝜃, 𝜃̇ , 𝜙, 𝜙̇} = 𝑚ℓ2 (𝜃̇ 2 + sin2 𝜃 𝜙̇ 2 ) + 𝑚𝑔ℓ cos 𝜃
2
Finalmente se halla las ecuaciones de Euler – Lagrange para las cuales tendrán como
fuerzas generalizadas los momentos que se ejercen en el sistema para hacer girar el péndulo,
en este caso no existen fuerzas generalizadas por lo que ambas ecuaciones se igualan a cero.
𝜕 𝜕𝐿 𝜕𝐿
( )− = 𝜏𝑖
𝜕𝑡 𝜕𝑞̇ 𝑖 𝜕𝑞𝑖
𝜕
(𝑚ℓ2 𝜃̇ ) + 𝑚𝑔ℓ sin 𝜃 − 𝑚ℓ2 sin 𝜃 cos 𝜃 𝜙̇ 2 = 0
𝜕𝑡
1
ℓ𝜃̈ − ℓ𝜙̇ 2 sin 2𝜃 + 𝑔 sin 𝜃 = 0
2
𝜕
(𝑚ℓ2 sin2 𝜃 𝜙̇) = 0
𝜕𝑡
𝜙̈ sin2 𝜃 + 𝜃̇ 𝜙̇ sin 2𝜃 = 0
b) Forma compacta.
INGENIERÍA MECATRÓNICA 9
UNIVERSIDAD NACIONAL DE TRUJILLO
1
ℓ 0 𝜃̈ 0 − ℓ𝜙̇ sin 2𝜃 𝜃̇ 𝑔 sin 𝜃 ⃗
[ 2 ] [ ̈] + [ 2 ] [ ̇] + [ ]=𝟎
0 sin 𝜃 𝜙 𝜙 0
𝜙̇ sin 2𝜃 0
𝐼𝑥𝑥1 0 0 𝐼𝑥𝑥2 0 0
𝐼1 = [ 0 𝐼𝑦𝑦1 0 ], 𝐼2 = [ 0 𝐼𝑦𝑦2 0 ]
0 0 𝐼𝑧𝑧1 0 0 𝐼𝑧𝑧2
m2
ℓ
m1
θ1 d2
Solución:
Para poder determinar el modelo dinámico del robot es necesario primero realizar la
cinemática directa del robot con el fin de obtener las matrices de transformación
homogénea y con de ellas extraer los elementos necesarios para el cálculo, por ejemplo, las
matrices de rotación respecto a base.
INGENIERÍA MECATRÓNICA 10
UNIVERSIDAD NACIONAL DE TRUJILLO
Además, por inspección en el dibujo consideramos que la posición del efector final y del
centro de masa del segundo eslabón no son iguales, para ello creamos dos variables, q2 que
vendría a ser el segundo grado de libertad y d1 que viene a ser una distancia desde el efector
final al centro de masa, pudiéndose así definir la posición del efector final en función de q1
y q2. Pero para mayor practicidad hacemos d1 = 0.
q2
g
m2
ℓ
y0 d1 =0
m1
x0
q1 d2
z0, y1
Art. 𝑑𝑖 𝜃𝑖 𝑎𝑖 𝛼𝑖
1 q1+90° 0 0 90°
2 0 q2 0 0
Con ayuda del software Matlab hallamos las matrices de rotación de cada eslabón respecto
a base con el siguiente código. Además, considerando 𝑞1 = 𝜃1 y 𝑞2 = 𝑑2
INGENIERÍA MECATRÓNICA 11
UNIVERSIDAD NACIONAL DE TRUJILLO
Luego de ello se calcula la posición de los centros de masa de cada eslabón respecto a masa
para determinar el jacobiano de velocidad lineal. Y también se halla el jacobiano de
velocidad angular a partir de los vectores de la tercera columna de las matrices de rotación.
Esto se realiza con ayuda de Matlab.
INGENIERÍA MECATRÓNICA 12
UNIVERSIDAD NACIONAL DE TRUJILLO
𝐿 cos 𝑞1 𝑞2 cos 𝑞1
𝑃𝑐𝑚1 = [ 𝐿 sin 𝑞1 ], 𝑃𝑐𝑚2 = [ 𝑞2 sin 𝑞1 ]
0 0
0 0 0 0
𝐽𝜔1 = [0 0], 𝐽𝜔2 = [0 0]
1 0 1 0
Ahora haciendo uso de las funciones ya creada en Matlab para las matrices M, C y G,
hallamos el modelo dinámico del robot RP.
% Tensores
I1 = [Ixx1 0 0;
0 Iyy1 0;
0 0 Izz1];
I2 = [Ixx2 0 0;
0 Iyy2 0;
0 0 Izz2];
% Matrices necesarias para calculo
R0 = [R01;R02];
Jv = [Jv1;Jv2];
Jw = [Jw1;Jw2];
I = [I1;I2];
% Matriz Euler-Lagrange
M = matrizMasa(m,I,R0,Jv,Jw)
C = matrizCoriolis(q,dq,M)
G = matrizGravedad(m,g0,Jv)
% Ecuacion Euler-Lagrange
tau = M*ddq+C*dq+G
Obteniendo
−𝑔 cos 𝑞1 (ℓ𝑚1 + 𝑑2 𝑚2 )
𝐺=[ ]
−𝑔𝑚2 sin 𝑞1
INGENIERÍA MECATRÓNICA 13
UNIVERSIDAD NACIONAL DE TRUJILLO
3. Determinar las ecuaciones que describen la dinámica del robot manipulador RR, mostrado
en la figura 4. Considerar que masa de cada eslabón se encuentra concentrada al final del
mismo con valores 𝑚1 𝑦 𝑚2. Las longitudes de los eslabones son ℓ1 𝑦 ℓ2. Asumir que existe
fricción viscosa actuando sobre cada articulación con coeficientes 𝑓𝑣1 𝑦 𝑓𝑣2. El sistema de
la base se encuentra sobre la primera articulación, con el eje z apuntado hacia arriba, “Y” y
el eje “X” en la horizontal (hacia la derecha). Los tensores de inercia tienen la misma forma
que el problema anterior.
m2
ℓ2
θ1
θ2
m1
ℓ1
Solución:
Para poder determinar el modelo dinámico del robot es necesario primero realizar la
cinemática directa del robot con el fin de obtener las matrices de transformación
homogénea y con de ellas extraer los elementos necesarios para el cálculo, por ejemplo, las
matrices de rotación respecto a base.
INGENIERÍA MECATRÓNICA 14
UNIVERSIDAD NACIONAL DE TRUJILLO
m2
ℓ2
z0 y1
θ1
y0 θ2
x0 m1 x1
z1
ℓ1
Art. 𝑑𝑖 𝜃𝑖 𝑎𝑖 𝛼𝑖
1 q1 0 ℓ1 90°
2 q2 0 ℓ2 0
Con ayuda del software Matlab hallamos las matrices de rotación de cada eslabón respecto
a base con el siguiente código. Además, considerando 𝑞1 = 𝜃1 y 𝑞2 = 𝜃2
INGENIERÍA MECATRÓNICA 15
UNIVERSIDAD NACIONAL DE TRUJILLO
1 0 0 cos 𝑞1 0 − sin 𝑞1
0 0
𝑅0 = [0 1 0] , 𝑅1 = [ sin 𝑞1 0 cos 𝑞1 ],
0 0 1 0 1 0
Luego de ello se calcula la posición de los centros de masa de cada eslabón respecto a masa
para determinar el jacobiano de velocidad lineal. Y también se halla el jacobiano de
velocidad angular a partir de los vectores de la tercera columna de las matrices de rotación
para luego hallar las matrices M, C y G, que forman el modelo dinámico del robot. Esto se
realiza con ayuda de Matlab.
INGENIERÍA MECATRÓNICA 16
UNIVERSIDAD NACIONAL DE TRUJILLO
M =
[ Ixx2 + Iyy1 + L1^2*m1 + L1^2*m2 - Ixx2*cos(q2)^2 + Iyy2*cos(q2)^2 +
L2^2*m2*cos(q2)^2 + 2*L1*L2*m2*cos(q2), 0]
[
0, m2*L2^2 + Izz2]
C =
[ -dq2*((m2*sin(2*q2)*L2^2)/2 + L1*m2*sin(q2)*L2 - (Ixx2*sin(2*q2))/2
+ (Iyy2*sin(2*q2))/2), -dq1*((m2*sin(2*q2)*L2^2)/2 + L1*m2*sin(q2)*L2
- (Ixx2*sin(2*q2))/2 + (Iyy2*sin(2*q2))/2)]
[ dq1*((m2*sin(2*q2)*L2^2)/2 + L1*m2*sin(q2)*L2 - (Ixx2*sin(2*q2))/2
+ (Iyy2*sin(2*q2))/2),
0]
G =
q1 q2
ℓ3
ℓ2
q3
ℓ4
ℓ1
q4
INGENIERÍA MECATRÓNICA 17
UNIVERSIDAD NACIONAL DE TRUJILLO
b) Hacer una función numérica para evaluar los pares que se producen para las siguientes
entradas. 𝑞1=30°; 𝑞2=−15°; 𝑞3=30𝑚𝑚; 𝑞4=20°, 𝑞1̇=10°𝑠; 𝑞2̇=−5°𝑠;𝑞3̇=−8𝑚𝑚/𝑠;
𝑞4̇=2°/𝑠; 𝑞1̈=1.5°/𝑠2; 𝑞2̈=-1.5°/𝑠2; 𝑞3̈=1mm/𝑠2; 𝑞1̈=1°/𝑠2.
Solución a):
Para poder determinar el modelo dinámico del robot es necesario primero realizar la
cinemática directa del robot con el fin de obtener las matrices de transformación
homogénea y con de ellas extraer los elementos necesarios para el cálculo, por ejemplo, las
matrices de rotación respecto a base.
INGENIERÍA MECATRÓNICA 18
UNIVERSIDAD NACIONAL DE TRUJILLO
z3
q1 q2 y3
x3
y1 ℓ3
z1
ℓ2
z2 q3
y2
x1 x
y2 ℓ4
ℓ1 x2
z0 z2
q4
y0
x0
Figura 7. Sistemas de coordenadas orientados de la cinemática directa.
Art. 𝑑𝑖 𝜃𝑖 𝑎𝑖 𝛼𝑖
1 𝑞1 L1 L2 0°
2 𝑞2 0 L3 0°
3 0 -q3 0 0°
4 𝑞4 -L4 0 0°
Con ayuda del software Matlab hallamos las matrices de rotación de cada eslabón respecto
a base con el siguiente código. Luego de ello se calcula la posición de los centros de masa
de cada eslabón respecto a masa para determinar el jacobiano de velocidad lineal. Y
también se halla el jacobiano de velocidad angular a partir de los vectores de la tercera
columna de las matrices de rotación para luego hallar las matrices M, C y G, que forman
el modelo dinámico del robot. Esto se realiza con ayuda de Matlab.
Código:
INGENIERÍA MECATRÓNICA 19
UNIVERSIDAD NACIONAL DE TRUJILLO
dq = [q1p;q2p;q3p;q4p];
ddq = [q1pp;q2pp;q3pp;q4pp];
%----------------------------------------------------------------------
---
% Parámetros de Denavit Hartenberg
theta = [q1;q2;0;q4];
d = [L1;0;-q3;-L4];
a = [L2;L3;0;0];
alpha = [0;0;0;0];
MDH = [theta d a alpha] % Tabla de parámetros de DH.
%----------------------------------------------------------------------
---
% Matriz de Transformación Homogénea entre sistemas de coordenadas
T01 = denavit(theta(1),d(1),a(1),alpha(1));
T12 = denavit(theta(2),d(2),a(2),alpha(2));
T23 = denavit(theta(3),d(3),a(3),alpha(3));
T34 = denavit(theta(4),d(4),a(4),alpha(4));
T02 = T01*T12;
T03 = T01*T12*T23;
T04 = T01*T12*T23*T34;
% Matrices de Rotación
R00 = eye(3)
R01 = T01(1:3,1:3);
R12 = T12(1:3,1:3);
R23 = T23(1:3,1:3);
R34 = T34(1:3,1:3);
R02 = T02(1:3,1:3);
R03 = T03(1:3,1:3);
R04 = T04(1:3,1:3);
R30 = R03.';
R20 = R02.';
R10 = R01.';
% MTH del centro de masa de la barra 1 respecto a base
Tcm01 = simplify(denavit(q1,L1/2,L2/2,0));
Pcm1 = Tcm01(1:3,4)
% MTH del centro de masa de la barra 2 respecto a base
Tcm12 = simplify(denavit(q2,0,L3/2,0));
Tcm02 = simplify(T01*Tcm12);
Pcm2 = Tcm02(1:3,4)
% MTH del centro de masa de la barra 3 respecto a base
Tcm23 = simplify(denavit(0,-q3/2,0,0));
Tcm03 = simplify(T01*T12*Tcm23);
Pcm3 = Tcm03(1:3,4)
% MTH del centro de masa de la barra 4 respecto a base
Tcm34 = simplify(denavit(q4,-L4/2,0,0));
Tcm04 = simplify(T01*T12*T23*Tcm34);
Pcm4 = Tcm04(1:3,4)
%----------------------------------------------------------------------
---
% Jacobianos de Velocidad lineal
Jv1 = [diff(Pcm1(1),q1) 0 0 0; % Jacobiano eslabon 1
diff(Pcm1(2),q1) 0 0 0;
diff(Pcm1(3),q1) 0 0 0]
Jv2 = [diff(Pcm2(1),q1) diff(Pcm2(1),q2) 0 0; % Jacobiano eslabon 2
diff(Pcm2(2),q1) diff(Pcm2(2),q2) 0 0;
diff(Pcm2(3),q1) diff(Pcm2(3),q2) 0 0]
Jv3 = [diff(Pcm3(1),q1) diff(Pcm3(1),q2) diff(Pcm3(1),q3) 0; %
Jacobiano eslabon 3
diff(Pcm3(2),q1) diff(Pcm3(2),q2) diff(Pcm3(2),q3) 0;
diff(Pcm3(3),q1) diff(Pcm3(3),q2) diff(Pcm3(3),q3) 0]
INGENIERÍA MECATRÓNICA 20
UNIVERSIDAD NACIONAL DE TRUJILLO
M =
[ Izz1 + Izz2 + Izz3 + Izz4 + (L2^2*m1)/4 + L2^2*m2 + L2^2*m3 +
(L3^2*m2)/4 + L2^2*m4 + L3^2*m3 + L3^2*m4 + L2*L3*m2*cos(q2) +
2*L2*L3*m3*cos(q2) + 2*L2*L3*m4*cos(q2), Izz2 + Izz3 + Izz4 +
(L3^2*m2)/4 + L3^2*m3 + L3^2*m4 + (L2*L3*m2*cos(q2))/2 +
L2*L3*m3*cos(q2) + L2*L3*m4*cos(q2), 0, Izz4]
[ Izz2 + Izz3 +
Izz4 + (L3^2*m2)/4 + L3^2*m3 + L3^2*m4 + (L2*L3*m2*cos(q2))/2 +
L2*L3*m3*cos(q2) + L2*L3*m4*cos(q2),
Izz2 + Izz3 + Izz4 + (L3^2*m2)/4 + L3^2*m3 + L3^2*m4, 0,
Izz4]
INGENIERÍA MECATRÓNICA 21
UNIVERSIDAD NACIONAL DE TRUJILLO
[
0,
0, m3/4 + m4, 0]
[
Izz4,
Izz4, 0, Izz4]
C =
[ -(L2*L3*q2p*sin(q2)*(m2 + 2*m3 + 2*m4))/2, -
(L2*L3*sin(q2)*(q1p + q2p)*(m2 + 2*m3 + 2*m4))/2, 0, 0]
[ (L2*L3*q1p*sin(q2)*(m2 + 2*m3 + 2*m4))/2,
0, 0, 0]
[ 0,
0, 0, 0]
[ 0,
0, 0, 0]
G =
g*m3*(L3*cos(q1 + q2) + L2*cos(q1)) + g*m4*(L3*cos(q1 + q2) +
L2*cos(q1)) + g*m2*((L3*cos(q1 + q2))/2 + L2*cos(q1)) +
(L2*g*m1*cos(q1))/2
Solución b):
El procedimiento para hallar esto reemplazar valores numéricos en los simbólicos usados
en el código de Matab. Sin embargo, no se nos proporciona valores para los tensores y las
masas, por lo que se asume 𝐼1 = 𝐼2 = 𝐼3 = 𝐼4 = ⃗𝟏, y 𝑚1 = 𝑚2 = 𝑚3 = 𝑚4 = 1.
Jv1 =
[ -(L2*sin(q1))/2, 0, 0, 0]
[ (L2*cos(q1))/2, 0, 0, 0]
[ 0, 0, 0, 0]
INGENIERÍA MECATRÓNICA 22
UNIVERSIDAD NACIONAL DE TRUJILLO
Jv2 =
[ - (L3*sin(q1 + q2))/2 - L2*sin(q1), -(L3*sin(q1 + q2))/2, 0, 0]
[ (L3*cos(q1 + q2))/2 + L2*cos(q1), (L3*cos(q1 + q2))/2, 0, 0]
[ 0, 0, 0, 0]
Jv3 =
[ - L3*sin(q1 + q2) - L2*sin(q1), -L3*sin(q1 + q2), 0, 0]
[ L3*cos(q1 + q2) + L2*cos(q1), L3*cos(q1 + q2), 0, 0]
[ 0, 0, -1/2, 0]
Jv4 =
[ - L3*sin(q1 + q2) - L2*sin(q1), -L3*sin(q1 + q2), 0, 0]
[ L3*cos(q1 + q2) + L2*cos(q1), L3*cos(q1 + q2), 0, 0]
[ 0, 0, -1, 0]
Jw1 =
0 0 0 0
0 0 0 0
1 0 0 0
Jw2 =
[ 0, 0, 0, 0]
[ 0, 0, 0, 0]
[ 1, 1, 0, 0]
Jw3 =
[ 0, 0, 0, 0]
[ 0, 0, 0, 0]
[ 1, 1, 0, 0]
Jw4 =
[ 0, 0, 0, 0]
[ 0, 0, 0, 0]
[ 1, 1, 0, 1]
Además, se toma en cuenta que la matriz Masa requiere de derivadas, por lo que también
en la matriz C colocamos la ecuación simbólica del script de la parte a.
C =
[ -(L2*L3*q2p*sin(q2)*(m2 + 2*m3 + 2*m4))/2, -(L2*L3*sin(q2)*(q1p +
q2p)*(m2 + 2*m3 + 2*m4))/2, 0, 0]
[ (L2*L3*q1p*sin(q2)*(m2 + 2*m3 + 2*m4))/2,
0, 0, 0]
[ 0,
0, 0, 0]
[ 0,
0, 0, 0]
Código:
% Datos
L1 = 400/1000;
L2 = 400/1000;
L3 = 300/1000;
L4 = 30/1000;
q1 = deg2rad(30);
q2 = deg2rad(-15);
q3 = 30/1000;
q4 = deg2rad(20);
q1p = deg2rad(10);
q2p = deg2rad(-5);
INGENIERÍA MECATRÓNICA 23
UNIVERSIDAD NACIONAL DE TRUJILLO
q3p = -8/1000;
q4p = deg2rad(2);
q1pp = deg2rad(1.5);
q2pp = deg2rad(-1.5);
q3pp = 1/1000;
q4pp = deg2rad(1);
m1 = 1;
m2 = 1;
m3 = 1;
m4 = 1;
g = 9.81;
Ixx1 = 1; Ixx2 = 1; Ixx3 = 1; Ixx4 = 1;
Iyy1 = 1; Iyy2 = 1; Iyy3 = 1; Iyy4 = 1;
Izz1 = 1; Izz2 = 1; Izz3 = 1; Izz4 = 1;
Ixy1 = 1; Ixy2 = 1; Ixy3 = 1; Ixy4 = 1;
Ixz1 = 1; Ixz2 = 1; Ixz3 = 1; Ixz4 = 1;
Iyz1 = 1; Iyz2 = 1; Iyz3 = 1; Iyz4 = 1;
% Matrices
g0 = [0;-g;0];
m = [m1;m2;m3;m4];
q = [q1;q2;q3;q4];
dq = [q1p;q2p;q3p;q4p];
ddq = [q1pp;q2pp;q3pp;q4pp];
%----------------------------------------------------------------------
---
% Parámetros de Denavit Hartenberg
theta = [q1;q2;0;q4];
d = [L1;0;-q3;-L4];
a = [L2;L3;0;0];
alpha = [0;0;0;0];
MDH = [theta d a alpha] % Tabla de parámetros de DH.
%----------------------------------------------------------------------
---
% Matriz de Transformación Homogénea entre sistemas de coordenadas
T01 = denavit(theta(1),d(1),a(1),alpha(1));
T12 = denavit(theta(2),d(2),a(2),alpha(2));
T23 = denavit(theta(3),d(3),a(3),alpha(3));
T34 = denavit(theta(4),d(4),a(4),alpha(4));
T02 = T01*T12;
T03 = T01*T12*T23;
T04 = T01*T12*T23*T34;
% Matrices de Rotación
R00 = eye(3)
R01 = T01(1:3,1:3);
R12 = T12(1:3,1:3);
R23 = T23(1:3,1:3);
R34 = T34(1:3,1:3);
R02 = T02(1:3,1:3);
R03 = T03(1:3,1:3);
R04 = T04(1:3,1:3);
R30 = R03.';
R20 = R02.';
R10 = R01.';
% MTH del centro de masa de la barra 1 respecto a base
Tcm01 = denavit(q1,L1/2,L2/2,0);
Pcm1 = Tcm01(1:3,4)
% MTH del centro de masa de la barra 2 respecto a base
Tcm12 = denavit(q2,0,L3/2,0);
Tcm02 = T01*Tcm12;
Pcm2 = Tcm02(1:3,4)
INGENIERÍA MECATRÓNICA 24
UNIVERSIDAD NACIONAL DE TRUJILLO
INGENIERÍA MECATRÓNICA 25
UNIVERSIDAD NACIONAL DE TRUJILLO
0
0 0 0;
0
0 0 0]
G = matrizGravedad(m,g0,Jv)
% Ecuacion Euler-Lagrange
tau = M*ddq+C*dq+G
19.0639
7.1295
𝜏=[ ]𝑁 ∙ 𝑚
0.0013
0.0175
INGENIERÍA MECATRÓNICA 26
UNIVERSIDAD NACIONAL DE TRUJILLO
Capítulo 4
Conclusiones
Referencias Bibliográficas
[2] Reyes, F. (1era Edición). (2011). Robótica, control de robots manipuladores. C. V.,
México: Alfaomega Grupo Editor.
[3] Corke, P. (2da Edición). (2017). Robotics, Vision and Control. Berlín, Alemania: Springer
INGENIERÍA MECATRÓNICA 27