Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ROBÓTICA
30 DE NOVIEMBRE DE 2016
Objetivo
“Obtención de las coordenadas (x,y,z) del efector final del robot, por medio de lectura de
potenciómetros, tarjeta de adquisición de datos (arduino) y el software Matlab.”
Objetivos específicos.
Introducción
El presente reporte presenta los resultados del proyecto final, la medición de las posiciones angulares
de un brazo robótico y el cálculo de los sistemas de referencia, vector D y posición del efector final en
el espacio.
El método utilizado consiste en realizar un análisis de la posición, en base a una relación entre las
coordenadas cartesianas, es decir, la posición de un punto en el efector final y su orientación con los
ángulos de las articulaciones
Desarrollo
Diseño del brazo robótico.
El brazo robótico fue realizado con material sintra, se hizo de manera que cumpliera
con los los requisitos en cuanto al número de eslabones y de articulaciones.
Figura 1. Material
Los sistemas de referencia se asignaron siguiendo los puntos vistos en clase para el método DH, con
los ejes Z, apuntando hacía la dirección a la que sale el vástago de cada uno de los potenciómetros.
Eje y
Eje z
Eje x
Eje z
Eje y
Eje z
Eje x
B1=7.5cm
B3= 4cm
B4=3.5cm
Figura 4. Medidas
B2=1.5cm
Matrices.
𝑇𝑇 = 𝑇𝑇 𝑇 𝑇 𝑇𝑇 𝑇𝑇
Cuya multiplicación, queda de la siguiente manera:
b1 = 7.5;
b2 = 1.5;
b3 = 4;
b4 = 3.5;
A1 = pi/2;
A2 = 0 ;
A3 = 0;
A4 = 0;
Tt= Tt1*Tt2*Tt3*Tt4;
ans =
[ cos(T4)*(cos(T3)*(cos(T1)*cos(T2) -
(4967757600021511*sin(T1)*sin(T2))/81129638414606681695789005144064) -
sin(T3)*(cos(T1)*sin(T2) +
(4967757600021511*cos(T2)*sin(T1))/81129638414606681695789005144064)) -
sin(T4)*(cos(T3)*(cos(T1)*sin(T2) +
(4967757600021511*cos(T2)*sin(T1))/81129638414606681695789005144064) +
sin(T3)*(cos(T1)*cos(T2) -
(4967757600021511*sin(T1)*sin(T2))/81129638414606681695789005144064)), -
cos(T4)*(cos(T3)*(cos(T1)*sin(T2) +
(4967757600021511*cos(T2)*sin(T1))/81129638414606681695789005144064) +
sin(T3)*(cos(T1)*cos(T2) -
(4967757600021511*sin(T1)*sin(T2))/81129638414606681695789005144064)) -
sin(T4)*(cos(T3)*(cos(T1)*cos(T2) -
(4967757600021511*sin(T1)*sin(T2))/81129638414606681695789005144064) -
sin(T3)*(cos(T1)*sin(T2) +
(4967757600021511*cos(T2)*sin(T1))/81129638414606681695789005144064)),
sin(T1), 9*sin(T1) + 5*cos(T1)*cos(T2) -
(6209697000026889*sin(T1)*sin(T2))/20282409603651670423947251286016]
[ cos(T4)*(cos(T3)*((4967757600021511*cos(T1)*sin(T2))/81129638414606681695789005144064 +
cos(T2)*sin(T1)) +
sin(T3)*((4967757600021511*cos(T1)*cos(T2))/81129638414606681695789005144064 -
sin(T1)*sin(T2))) +
sin(T4)*(cos(T3)*((4967757600021511*cos(T1)*cos(T2))/81129638414606681695789005144064 -
sin(T1)*sin(T2)) -
sin(T3)*((4967757600021511*cos(T1)*sin(T2))/81129638414606681695789005144064 +
cos(T2)*sin(T1))),
cos(T4)*(cos(T3)*((4967757600021511*cos(T1)*cos(T2))/81129638414606681695789005144064 -
sin(T1)*sin(T2)) -
sin(T3)*((4967757600021511*cos(T1)*sin(T2))/81129638414606681695789005144064 +
cos(T2)*sin(T1))) -
sin(T4)*(cos(T3)*((4967757600021511*cos(T1)*sin(T2))/81129638414606681695789005144064 +
cos(T2)*sin(T1)) +
sin(T3)*((4967757600021511*cos(T1)*cos(T2))/81129638414606681695789005144064 -
sin(T1)*sin(T2))), -cos(T1),
(6209697000026889*cos(T1)*sin(T2))/20282409603651670423947251286016 - 9*cos(T1) +
5*cos(T2)*sin(T1)]
[
cos(T4)*(cos(T2)*sin(T3) + cos(T3)*sin(T2)) + sin(T4)*(cos(T2)*cos(T3) - sin(T2)*sin(T3)),
cos(T4)*(cos(T2)*cos(T3) - sin(T2)*sin(T3)) - sin(T4)*(cos(T2)*sin(T3) + cos(T3)*sin(T2)),
4967757600021511/81129638414606681695789005144064,
5*sin(T2) + 15/2]
[
0,
0, 0, 1]
>>
SIMPLIFICACION DE Tt
Usando el comando simplify de matlab
sim= eval(Tt);
ans =
[ (81129638414606686663546605165575*cos(T1 + T2 + T3 +
T4))/162259276829213363391578010288128 + (81129638414606676728031405122553*cos(T1 -
T2 - T3 - T4))/162259276829213363391578010288128,
(81129638414606676728031405122553*sin(T1 - T2 - T3 -
T4))/162259276829213363391578010288128 - (81129638414606686663546605165575*sin(T1 +
T2 + T3 + T4))/162259276829213363391578010288128, sin(T1),
9*sin(T1) + 5*cos(T1)*cos(T2) -
(6209697000026889*sin(T1)*sin(T2))/20282409603651670423947251286016]
[ (81129638414606686663546605165575*sin(T1 + T2 + T3 +
T4))/162259276829213363391578010288128 + (81129638414606676728031405122553*sin(T1 -
T2 - T3 - T4))/162259276829213363391578010288128,
(81129638414606686663546605165575*cos(T1 + T2 + T3 +
T4))/162259276829213363391578010288128 - (81129638414606676728031405122553*cos(T1 -
T2 - T3 - T4))/162259276829213363391578010288128, -cos(T1),
(6209697000026889*cos(T1)*sin(T2))/20282409603651670423947251286016 - 9*cos(T1) +
5*cos(T2)*sin(T1)]
[
sin(T2 + T3 + T4),
cos(T2 + T3 + T4), 4967757600021511/81129638414606681695789005144064,
5*sin(T2) + 15/2]
[
0,
0, 0, 1]
>>
El vector D.
Se obtiene a partir de la matriz Tt en las posiciones dx=Tt(1,4) , dy=Tt(2,4) y dz=Tt(3,4).
dx =
9*sin(T1) + 5*cos(T1)*cos(T2) -
(24838788000107555*sin(T1)*sin(T2))/81129638414606681695789005144064
>>
Dy=
(24838788000107555*cos(T1)*sin(T2))/81129638414606681695789005144064 - 9*cos(T1) +
5*cos(T2)*sin(T1)
>> Dz=
5*sin(T2) + 608472288109550157428235938774079/81129638414606681695789005144064
>>
Figura 5.Espacio de trabajo
2. T1 = T2 = T3 = T4 = 90°
El punto del efector final en el espacio, es:
P= (b2+b3, 0, b1+a2+a4) = (5.5cm, 0, 5cm)
Figura 7. Vector D y dibujos del brazo
T1=T1*(2*pi/360);
T2=T2*(2*pi/360);
T3=T3*(2*pi/360);
T4=T4*(2*pi/360);
x = 9*sin(T1) + 5*cos(T1)*cos(T2) -
(24838788000107555*sin(T1)*sin(T2))/81129638414606681695789005144064;
y = (24838788000107555*cos(T1)*sin(T2))/81129638414606681695789005144064
- 9*cos(T1) + 5*cos(T2)*sin(T1);
z= 5*sin(T2) +
608472288109550157428235938774079/81129638414606681695789005144064;
b1 = 7.5;
b2 = 1.5;
b3 = 4;
b4 = 3.5;
A1 = pi/2;
A2 = 0 ;
A3 = 0;
A4 = 0;
Tt1 = [cos(T1),-sin(T1)*cos(A1),sin(T1)*sin(A1),(a1)*cos(T1);
sin(T1),cos(T1)*cos(A1) ,-cos(T1)*sin(A1) ,a1*sin(T1); 0 ,sin(A1),
cos(A1), b1; 0, 0, 0, 1];
Tt2 = [cos(T2),-sin(T2)*cos(A2),sin(T2)*sin(A2),(a2)*cos(T2);
sin(T2),cos(T2)*cos(A2) ,-cos(T2)*sin(A2) ,a2*sin(T2); 0 ,sin(A2),
cos(A2), b2; 0, 0, 0, 1];
Tt3 = [cos(T3),-sin(T3)*cos(A3),sin(T3)*sin(A3),(a3)*cos(T3);
sin(T3),cos(T3)*cos(A3) ,-cos(T3)*sin(A3) ,a3*sin(T3); 0 ,sin(A3),
cos(A3), b3; 0, 0, 0, 1];
Tt4 = [cos(T4),-sin(T4)*cos(A4),sin(T4)*sin(A4),(a4)*cos(T4);
sin(T4),cos(T4)*cos(A4) ,-cos(T4)*sin(A4) ,a4*sin(T4); 0 ,sin(A4),
cos(A4), b4; 0, 0, 0, 1];
Tt= Tt1*Tt2*Tt3*Tt4;
delete(instrfind('Port','COM5'));
s = serial('COM5','BaudRate',9600,'Terminator','CR/LF');
warning('off','MATLAB:serial:fscanf:unsuccessfulRead');
%Se abre el puerto serial
fopen(s);
i=1;
l1 = line(nan,nan,nan,'Color','g','LineWidth',2);
title('Vector D')
ew=150;
while 1>0 %Inicializa el cronómetro
flushinput(s)
x=[zeros(1,ew)];
y=[zeros(1,ew)];
z=[zeros(1,ew)];
a=zeros(1,4);
for i=1:ew
axis([-20 20 -20 20 -2 20])
while ~strcmp(fscanf(s,'%c',1),'/');
end
a = fscanf(s,'%f,%f,%f,%f')'
[x(i),y(i),z(i)] = wTt(a(1),a(2),a(3),a(4));
PosicionXYZ=[x(i),y(i),z(i)]
set(l1,'YData',y,'XData',x,'ZData',z);
xlabel('x')
ylabel('y')
zlabel('z')
drawnow;
grid on;
end
end
int p1 = 0;
int p2 = 0;
int p3 = 0;
int p4 = 0;
void setup() {
Serial.begin(9600);
void loop() {
s2 = analogRead(pot2);
s3 = analogRead(pot3);
s4 = analogRead(pot4);
p4 = map(s4, 0, 1023, 0, 310);
Serial.print("/");
Serial.print(p1);
Serial.print(",");
Serial.print(p2);
Serial.print(",");
Serial.print(p3);
Serial.print(",");
Serial.println(p4);