Alumnos:
INDICE
1. CINEMÁTICA DIFERENCIAL ................................................................................................. 3
A. PARAMETROS DENAVIT – HATENBERG ......................................................................... 3
B. JACOBIANOS DEL EFECTOR FINAL................................................................................. 6
C. JACOBIANOS CENTRO DE MASA DE ESLABONES ...................................................... 10
D. JACOBIANOS CENTRO DE MASA MOTORES .............................................................. 17
2. DINÁMICA........................................................................................................................... 23
A. DINÁMICA SIN CONSIDERAR MOTORES .........................Error! Bookmark not defined.
B. DINÁMICA CONSIDERANDO MOTORES..........................Error! Bookmark not defined.
C. SIMULACIÓN SIN CONSIDERAR MOTORES .....................Error! Bookmark not defined.
D. SIMULACIÓN CONSIDERANDO MOTORES .....................Error! Bookmark not defined.
~2~
Análisis y Control de Robots
1ER INFORME
1. CINEMÁTICA DIFERENCIAL
A. PARAMETROS DENAVIT – HATENBERG
Link 𝜽𝒊 𝒅𝒊 𝒂𝟏 𝜶𝟏
1 𝜃1 𝑑1 0 𝜋/2
2 𝜃2 𝑑2 𝑎2 0
Reemplazando. -
Link 𝜽𝒊 𝒅𝒊 𝒂𝟏 𝜶𝟏
1 𝜃1 14.4 cm 0 𝜋/2
2 𝜃2 6.8 𝑐𝑚 3.6 cm 0
~3~
Análisis y Control de Robots
1ER INFORME
cos(𝜃1 ) 0 sin(𝜃1 ) 0
sin(𝜃1 ) 0 −cos(𝜃1 ) 0]
𝐴10 = [
0 1 1 𝑑1
0 0 0 1
cos(𝜃1 ) 0 sin(𝜃1 )
𝑅10 = [ sin(𝜃1 ) 0 −cos(𝜃1 )]
0 1 1
0 0
𝑂10 = [ 0 ] = [ 0 ]
𝑑1 14.4
sin(𝜃1 )
𝑍10 = [−cos(𝜃1 )]
1
sin(𝜃1 )
𝑍20 = [−cos(𝜃1 )]
1
~4~
Análisis y Control de Robots
1ER INFORME
~5~
Análisis y Control de Robots
1ER INFORME
𝑱𝒗 = [𝑱𝒗𝟏 , 𝑱𝒗𝟐 ]
0
𝑱𝒘𝟏 = 𝒁𝟎𝟎 = [0]
1
sin(𝜃1 )
𝑱𝒘𝟐 = 𝒁𝟎𝟏 = [− cos(𝜃1 )]
1
𝑱𝑤 = [𝑱𝒘𝟏 , 𝑱𝒘𝟐 ]
~6~
Análisis y Control de Robots
1ER INFORME
0 sin(𝜃1 )
𝑱𝒘 = [0 − cos(𝜃1 )]
1 1
CM2
CM1
~7~
Análisis y Control de Robots
1ER INFORME
~8~
Análisis y Control de Robots
1ER INFORME
SIMULACIÓN EN MATLAB
% Tema: Jacobiano de un manipulador de 2GDL en el espacio
clc; clear all; close all
%----------------------------------------------------------------------%
% 1. DEFINICION DE VARIABLES SIMBOLICAS
%----------------------------------------------------------------------%
syms th1 d1 a1 alpha1
syms th2 d2 a2 alpha2
syms q1 q2
syms dq1 dq2
dq = [dq1;dq2];
%----------------------------------------------------------------------%
% 2. CINEMATICA DIRECTA
%----------------------------------------------------------------------%
% 2.1. SISTEMA COORDENADO 1
% -> Parametros D-H
th1 = q1;
a1 = 0;
alpha1 = pi/2;
% -> Matriz A
A1 = matriz_homogenea_DH(th1, d1,a1,alpha1);
% -> Matriz T
T01 = A1;
% 2.2. SISTEMA COORDENADO 2
% -> Parametros D-H
th2 = q2;
d2 = 0;
alpha2 = 0;
% -> Matriz A
A2 = matriz_homogenea_DH(th2, d2,a2,alpha2);
% -> Matriz T
T02 = T01*A2;
T02 = simplify(T02);
%----------------------------------------------------------------------%
% 3. CALCULO DEL JACOBIANO
%----------------------------------------------------------------------%
% 3.1. DEFINICION DE LOS PARAMETROS
% -> Origenes de coordenadas
p0 = [0;0;0];
p1 = T01(1:3,4);
p2 = T02(1:3,4);
% -> Vectores unitarios
z0 = [0;0;1];
z1 = T01(1:3,3);
z2 = T02(1:3,3);
% 3.2. CALCULO DEL TERMINO 'Jv'
Jv = [ cross(z0, (p2-p0)) cross(z1,(p2-p1)) ];
Jv = simplify(Jv);
disp('Jv')
disp(Jv)
% 3.3. CALCULO DEL TERMINO 'Jw'
Jw = [z0 z1];
disp('Jw')
disp(Jw)
% 3.4. HALLANDO LAS VELOCIDADES
v = Jv*dq;
v = simplify(v);
w = Jw*dq;
w = simplify(w);
disp('velocidad lineal')
disp(v)
disp('velocidad angular')
~9~
Análisis y Control de Robots
1ER INFORME
CM1
0 0
𝑪𝑴𝒆𝒔𝒍𝒂𝒃𝒐𝒏 𝟏 = [𝐿𝑦1] = [−(𝑑1 − 𝑍1)]
𝐿𝑧1 𝑌1
0
𝑪𝑴𝒆𝒔𝒍𝒂𝒃𝒐𝒏 𝟏 = [ 5.05 ]
−0.486
𝐿𝑧1 ∗ sin(𝜃1 )
𝑝𝑪𝑴𝒆𝒔𝒍𝒂𝒃𝒐𝒏 𝟏 = [−𝐿𝑧1 ∗ cos(𝜃1 )]
𝐿𝑦1 + 𝑑1
Reemplazando
−0.486 ∗ sin(𝜃1 )
𝑝𝑪𝑴𝒆𝒔𝒍𝒂𝒃𝒐𝒏 𝟏 = [ 0.486 ∗ cos(𝜃1 ) ]
19.45
𝐿𝑧1 ∗ cos(𝜃2 )
𝑱𝒗𝒄𝟏_𝟏 = [ 𝐿𝑧1 ∗ sin(𝜃1 ) ]
0
~ 10 ~
Análisis y Control de Robots
1ER INFORME
−0.486 ∗ cos(𝜃2 )
𝑱𝒗𝒄𝟏_𝟏 = [ −0.486 ∗ sin(𝜃1 ) ]
0
0
𝑱𝒗𝒄𝟏_𝟐 = [ 0]
0
𝐿𝑧1 ∗ cos(𝜃2 ) 0
𝑱𝒗𝒄𝟏 = [ 𝐿𝑧1 ∗ sin(𝜃1 ) 0]
0 0
Reemplazando
−0.486 ∗ cos(𝜃2 ) 0
𝑱𝒗𝒄𝟏 = [ −0.486 ∗ sin(𝜃1 ) 0]
0 0
0
𝑱𝒘𝒄𝟏_𝟏 = 𝒁𝟎𝟎 = [0]
1
0
𝑱𝒘𝒄𝟏_𝟐 = 𝒁𝟎𝟏 = [0]
0
θ̇ 1 ∗ (−0.486 ∗ cos(𝜃2 ))
𝑽𝒄𝟏 = [ θ̇ 1 ∗ (−0.486 ∗ sin(𝜃1 )) ]
0
~ 11 ~
Análisis y Control de Robots
1ER INFORME
0
𝒘𝒄𝟏 = [0]
𝜃̇1
~ 12 ~
Análisis y Control de Robots
1ER INFORME
Eslabón 2
CM2
𝐿𝑥2 −𝑋2
𝑪𝑴𝒆𝒔𝒍𝒂𝒃𝒐𝒏 𝟐 = [ 0 ] = [ 0 ]
0 0
−2.69
𝑪𝑴𝒆𝒔𝒍𝒂𝒃𝒐𝒏 𝟐 = [ 0 ]
0
Reemplazando
~ 13 ~
Análisis y Control de Robots
1ER INFORME
𝑑2 ∗ cos(𝜃1 ) − 𝐿𝑥2 ∗ cos(𝜃2 ) ∗ sin(𝜃1 ) − 𝑎2 ∗ cos(𝜃2 ) ∗ sin(𝜃1 ) − cos(𝜃1 ) ∗ sin(𝜃2 ) ∗ (𝐿𝑥2 + 𝑎2)
[𝑑2 ∗ sin(𝜃1 ) + 𝐿𝑥2 ∗ cos(𝜃1 ) ∗ cos(𝜃2 ) + 𝑎2 ∗ cos(𝜃2 ) ∗ cos(𝜃1 ) − sin(𝜃1 ) ∗ sin(𝜃2 ) ∗ (𝐿𝑥2 + 𝑎2) ]
0 cos(𝜃2 ) ∗ (𝐿𝑥2 + 𝑎2)
0
𝑱𝒘𝒄𝟐_𝟏 = 𝒁𝟎𝟎 = [0]
1
sin(𝜃1 )
𝑱𝒘𝒄𝟐_𝟐 = 𝒁𝟎𝟏 = [−cos(𝜃1 )]
0
Reemplazando
0 sin(𝜃1 )
𝑱𝒘𝒄𝟐 = [0 −cos(𝜃1 )]
1 0
~ 14 ~
Análisis y Control de Robots
1ER INFORME
SIMULACIÓN EN MATLAB
% Demo_04
% Jacobiano de los C.M del manipulador 2GDL en el espacio
clc; clear all; close all
%---------------------------------------------------------------------
-%
% 1. DEFINICION DE VARIABLES SIMBOLICAS
%---------------------------------------------------------------------
-%
syms th1 d1 a1 alpha1
syms th2 d2 a2 alpha2
syms q1 q2
syms dq1 dq2
syms Lz1 Ly1 Lx2 %Respecto al eje1 y eje2 respectivamente
%Lz2=Ly2=0
q = [q1; q2];
dq = [dq1; dq2];
%---------------------------------------------------------------------
-%
% 2. CINEMATICA DIRECTA
%---------------------------------------------------------------------
-%
% 2.1. SISTEMA COORDENADO 1
% -> Parametros D-H
th1 = q1;
a1 = 0;
d1 = d1;
alpha1 = pi/2;
% -> Matriz A
A1 = matriz_homogenea_DH(th1,d1,a1,alpha1);
% -> Matriz T
T01 = A1;
% 2.2. SISTEMA COORDENADO 2
% -> Parametros D-H
th2 = q2;
d2 = d2;
a2 = a2;
alpha2 = 0;
% -> Matriz A
A2 = matriz_homogenea_DH(th2,d2,a2,alpha2);
% -> Matriz T
T02 = T01*A2;
T02 = simplify(T02);
%---------------------------------------------------------------------
-%
% 3. CALCULO DE LOS JACOBIANOS PARA CADA
% CENTRO DE MASA DE LOS ESLABONES
%---------------------------------------------------------------------
-%
% 3.1. DEFINICION DE LOS PARAMETROS
% -> Origenes de coordenadas
p0 = [0;0;0];
p1 = T01(1:3,4);
p2 = T02(1:3,4);
% -> Vectores unitarios
z0 = [0;0;1];
z1 = T01(1:3,3);
z2 = T02(1:3,3);
~ 15 ~
Análisis y Control de Robots
1ER INFORME
pCM1 = T01*pCM1;
pCM1 = simplify( pCM1(1:3) );
disp('pCM1')
disp(pCM1)
% -> Del eslabon 2
pCM2 = [Lx2;0;0;1];
pCM2 = T02*pCM2;
pCM2 = simplify( pCM2(1:3) );
disp('pCM2')
disp(pCM2)
~ 16 ~
Análisis y Control de Robots
1ER INFORME
CM1
0 0
𝑪𝑴𝒎𝒐𝒕𝒐𝒓 𝟏 = [𝐿𝑦𝑚1] = [−𝑍]
𝐿𝑧𝑚1 𝑌
0
𝑪𝑴𝒎𝒐𝒕𝒐𝒓 𝟏 = [ 0 ]
−5.561
0
𝑱𝒗𝒎𝟏_𝟏 = [0]
0
0
𝑱𝒗𝒎𝟏_𝟐 = [ 0]
0
~ 17 ~
Análisis y Control de Robots
1ER INFORME
0
𝑱𝒘𝒄𝟏_𝟏 = 𝒁𝟎𝟎 = [ 0 ]
𝐾𝑟1
0
𝑱𝒘𝒄𝟏_𝟐 = 𝒁𝟎𝟏 = [0]
0
0
𝑽𝒄𝟏 = [0]
0
𝒘𝒄𝟏 = 𝐉𝐰𝐜𝟏 ∗ [θ̇ 1 θ2̇ ]
0
𝒘𝒄𝟏 =[ 0 ]
𝜃̇1 ∗ 𝐾𝑟1
~ 18 ~
Análisis y Control de Robots
1ER INFORME
Motor 2
CM2
0 0
𝑪𝑴𝒎𝒐𝒕𝒐𝒓 𝟐 = [𝐿𝑦𝑚2] = [ −𝑍 ]
𝐿𝑧𝑚2 𝑑2 + 𝑌
0
𝑪𝑴𝒎𝒐𝒕𝒐𝒓 𝟐 = [ 0 ]
1.239
𝐿𝑚𝑧2 ∗ sin(𝜃1 )
𝑝𝑪𝑴𝒎𝒐𝒕𝒐𝒓 𝟐 = [−𝐿𝑚𝑧2 ∗ cos(𝜃1 )]
𝑑1
Reemplazando
1.239 ∗ sin(𝜃1 )
𝑝𝑪𝑴𝒆𝒔𝒍𝒂𝒃𝒐𝒏 𝟏 = [−1.239 ∗ cos(𝜃1 )]
14.4
𝐿𝑚𝑧2 ∗ cos(𝜃1 )
𝑱𝒗𝒎𝟐_𝟏 = [ 𝐿𝑚𝑧2 ∗ sin(𝜃1 ) ]
0
~ 19 ~
Análisis y Control de Robots
1ER INFORME
0
𝑱𝒗𝒎𝟐_𝟐 = [0]
0
𝐿𝑚𝑧2 ∗ cos(𝜃1 ) 0
𝑱𝒗𝒎𝟐 = [ 𝐿𝑚𝑧2 ∗ sin(𝜃1 ) 0]
0 0
0
𝑱𝒘𝒎𝟐_𝟏 = 𝒁𝟎𝟎 = [0]
1
𝐾𝑟2 ∗ sin(𝜃1 )
𝑱𝒘𝒎𝟐_𝟐 = 𝒁𝟎𝟏 = [−𝐾𝑟2 ∗ sin(𝜃1 )]
0
0 𝐾𝑟2 ∗ sin(𝜃1 )
𝑱𝒘𝒎𝟐 = [0 −𝐾𝑟2 ∗ sin(𝜃1 )]
1 0
~ 20 ~
Análisis y Control de Robots
1ER INFORME
SIMULACIÓN EN MATLAB
% Demo_06
% Jacobiano de los C.M del manipulador 2GDL en el espacio
% Se asume que:
% - Los motores tienen su CM en el eje z de los sistemas
% de coordenadas
% - Los zm del motor son iguales a los z de las juntas
clc; clear all; close all
%----------------------------------------------------------------------
%
% 1. DEFINICION DE VARIABLES SIMBOLICAS
%----------------------------------------------------------------------
%
syms th1 d1 a1 alpha1
syms th2 d2 a2 alpha2
syms q1 q2
syms dq1 dq2
syms Lmz1 Lmz2
syms kr1 kr2 % Factores de reduccion de los motores
q = [q1; q2];
dq = [dq1; dq2];
%----------------------------------------------------------------------
%
% 2. CINEMATICA DIRECTA
%----------------------------------------------------------------------
%
% 2.1. SISTEMA COORDENADO 1
% -> Parametros D-H
th1 = q1;
a1 = 0;
d1 = d1;
alpha1 = pi/2;
% -> Matriz A
A1 = matriz_homogenea_DH(th1,d1,a1,alpha1);
% -> Matriz T
T01 = A1;
% 2.2. SISTEMA COORDENADO 2
% -> Parametros D-H
th2 = q2;
d2 = d2;
a2 = a2;
alpha2 = 0;
% -> Matriz A
A2 = matriz_homogenea_DH(th2,d2,a2,alpha2);
% -> Matriz T
T02 = T01*A2;
T02 = simplify(T02);
%----------------------------------------------------------------------
%
% 3. CALCULO DE LOS JACOBIANOS PARA CADA
% CENTRO DE MASA DE LOS ESLABONES
%----------------------------------------------------------------------
%
% 3.1. DEFINICION DE LOS PARAMETROS
% -> Origenes de coordenadas
p0 = [0;0;0];
p1 = T01(1:3,4);
p2 = T02(1:3,4);
% -> Vectores unitarios
z0 = [0;0;1];
z1 = T01(1:3,3);
~ 21 ~
Análisis y Control de Robots
1ER INFORME
z2 = T02(1:3,3);
% 3.2. COORDENADAS DE LOS C.M
% -> Del motor1 (mueve a la junta 1)
pCM_m1 = [0;0;Lmz1];
zm1 = z0;
disp('pCM_m1')
disp(pCM_m1)
~ 22 ~
Análisis y Control de Robots
1ER INFORME
2. DINÁMICA
MODELO DINÁMICO
Modelo de Lagrange:
𝐷(𝑞)𝑞̈ + 𝐶(𝑞, 𝑞̇ )𝑞̈ + 𝑔𝑘 (𝑞) = 𝜏
2
𝐷1𝑉 = [𝐿𝑧1 ∗ 𝑚1 0]
0 0
~ 23 ~
Análisis y Control de Robots
1ER INFORME
m2=0.00353 kg
~ 24 ~
Análisis y Control de Robots
1ER INFORME
Motor1
𝐷𝑚1𝑉 = 𝑚𝑚1 ∗ 𝐽𝑉𝑚1 𝑇 ∗ 𝐽𝑉𝑚1
Motor1
𝐷𝑚2𝑉 = 𝑚𝑚2 ∗ 𝐽𝑉𝑚2 𝑇 ∗ 𝐽𝑉𝑚2
~ 25 ~
Análisis y Control de Robots
1ER INFORME
𝐼𝑙1 = 𝑅1 ∗ 𝐼1 ∗ 𝑅1 𝑇
R1:
Cálculo de 𝐼1 :
~ 26 ~
Análisis y Control de Robots
1ER INFORME
Eslabón 2
Cálculo de 𝐼2 :
𝐼𝑙2 = 𝑅2 ∗ 𝐼2 ∗ 𝑅2 𝑇
cos 𝜃1 0 sin 𝜃1
𝑅2 = [ sin 𝜃1 0 cos 𝜃1 ]
0 1 0
~ 27 ~
Análisis y Control de Robots
1ER INFORME
%--------------------------------------------------------
--------------%
% 5.1. ESLABON "1"
% -> Tensor de inercia en el centro de masa
I1 = [0 0 0;0 I1 0; 0 0 I1];
% -> Tensor de inercia en el sistema inercial
R1 = T01(1:3, 1:3);
II1 = R1*I1*transpose(R1);
II1 = simplify(II1);
% -> Componente "D"
D1w = transpose(Jw1)*II1*Jw1;
D1w = simplify(D1w)
% 5.2. ESLABON "2"
% -> Tensor de inercia en el centro de masa
I2 = [0 0 0;0 I2 0; 0 0 I2];
% -> Tensor de inercia en el sistema inercial
R2 = T02(1:3, 1:3);
II2 = R2*I2*transpose(R2);
% -> Componente "D"
D2w = transpose(Jw2)*II2*Jw2;
D2w = simplify(D2w)
Motor 1
𝐼𝑙𝑚1 = 𝑅𝑚1 ∗ 𝐼𝑚1 ∗ 𝑅𝑚1 𝑇
Símbolos de Christoffel
1 𝜕𝐷𝑘𝑗 𝜕𝐷𝑘𝑖 𝜕𝐷𝑖𝑗
𝑐𝑖𝑗𝑘 = [ + − ]
2 𝜕𝑞𝑖 𝜕𝑞𝑗 𝜕𝑞𝑘
~ 28 ~
Análisis y Control de Robots
1ER INFORME
cijk = cell(n,n,n);
for i=1:n
for j=1:n
for k=1:n
% Terminos individuales
term_01 = diff(D(k,j), q(i));
term_02 = diff(D(k,i), q(j));
term_03 = diff(D(i,j), q(k));
% Suma total
cijk{i,j,k} = 1/2*( term_01 + term_02
- term_03);
end
end
end
𝜕𝑃(𝑞)
𝐺(𝑞) =
𝜕𝑞𝑘
~ 29 ~