% Programa de Top. Rob.
Examen
clc % Borrar memoria
clear % Borrar pantalla
close all % Cerrar ventanas
L1 = 0; % Longitud del eslabón 1
L2 = 0.4; % Longitud del eslabón 2
L3 = 0.3; % Longitud del eslabón 3
d1 = 0.5
n = 15;
tet1 = linspace(0, 180, n); % ang. del eslabón 1 con respecto a x0
tet2 = linspace(0, 90, n); % ang. del eslabón 2 con respecto al eslabón 1 (x1)
tet3 = linspace(0, -90, n); % ang. del eslabón 3 con respecto al eslabón 2 (x2)
E1 = [0 0 0]'; % Coordenada del extremo del eslabón 1 con respecto a {1}
E2 = [0 0 0]'; % Coordenada del extremo del eslabón 2 con respecto a {2}
E3 = [0 0 0]'; % Coordenada del extremo del eslabón 3 con respecto a {3}
% ---------------------------------------------------------------------- %
% En esta rutina calculan las puntas de cada eslabón con respecto
% al marco de referencia ( {0} )
% ---------------------------------------------------------------------- %
for c = 1:n % Ciclo for para calcular los 14 puntos
T10 = [cosd(tet1(c)) 0 sind(tet1(c)) L1*cosd(tet1(c)) ;... % Matriz de trans
de {1} con respecto a {0}
sind(tet1(c)) 0 -cosd(tet1(c)) L1*sind(tet1(c)) ;...
0 1 0 d1 ;...
0 0 0 1 ];
T21 = [cosd(tet2(c)) -sind(tet2(c)) 0 L2*cosd(tet2(c)) ;... % Matriz de trans
de {2} con respecto a {1}
sind(tet2(c)) cosd(tet2(c)) 0 L2*sind(tet2(c)) ;...
0 0 1 0 ;...
0 0 0 1 ];
T32 = [cosd(tet3(c)) -sind(tet3(c)) 0 L3*cosd(tet3(c)) ;... % Matriz de trans
de {3} con respecto a {2}
sind(tet3(c)) cosd(tet3(c)) 0 L3*sind(tet3(c)) ;...
0 0 1 0 ;...
0 0 0 1 ];
E1_0(:,c) = T10*[E1;1]; % Punta del eslabón 1 con respecto a {0}
E2_0(:,c) = T10*T21*[E2;1]; % Punta del eslabón 2 con respecto a {0}
E3_0(:,c) = T10*T21*T32*[E3;1]; % Punta del eslabón 3 con respecto a {0}
end
% ---------------------------------------------------------------------- %
% En esta rutina se gráfica el movimiento del maniupaldor en 3D
% ---------------------------------------------------------------------- %
figure
plot3([-100 100],[0 0],[0 0],'k','LineWidth',1)
hold on
plot3([0 0],[-100 100],[0 0],'k','LineWidth',1)
plot3([0 0],[0 0],[-100 100],'k','LineWidth',1)
xlabel('Eje x')
ylabel('Eje y')
zlabel('Eje z')
for c = 1:n
plot3([ 0 E1_0(1,c)],[ 0 E1_0(2,c)],[ 0 E1_0(3,c)],'o-
b','LineWidth',3)
plot3([E1_0(1,c) E2_0(1,c)],[E1_0(2,c) E2_0(2,c)],[E1_0(3,c) E2_0(3,c)],'o-
r','LineWidth',3)
plot3([E2_0(1,c) E3_0(1,c)],[E2_0(2,c) E3_0(2,c)],[E2_0(3,c) E3_0(3,c)],'o-
g','LineWidth',3)
axis([-1 1 -1 1 -1 1])
pause(0.5)
end
grid