Professional Documents
Culture Documents
Elaborado por:
Harold Favian Diaz Leonis
COD. 77.171.510
Grupo:
299011_1
Presentado al tutor:
Sandra Isabel Vargas
ROBOTICA
INGENIERIA ELECTRONICA
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
Escuela de Ciencias Básicas, Tecnología e Ingeniería
Valledupar
Colombia
2018
Introducción
Una de las tareas básicas de un robot y por lo demás habitual, consiste en la manipulación de piezas, lo
cual se hace posible, mediante el movimiento espacial de sus dispositivos extremos. La manipulación
robótica, nos indica que tanto partes como herramientas, se mueven alrededor del espacio por algún tipo
de mecanismo. Cuando estudiamos la robótica, ineludiblemente nos interesamos con los detalles de la
localización de objetos en dos y tres dimensiones. Estos objetos son los acoples del manipulador, las
partes y herramientas con las cuales él trata, y otros objetos en el entorno del manipulador.
En esta dirección, conviene mencionar, que la información de la posición, al igual que la posible
orientación de ésta con respecto a la base del robot, es factor determinante para que éste adquiera la
habilidad propia que le permita maniobrar de manera indistinta con las piezas.
Identificar qué aspectos referentes a la cinemática directa e inversa del robot, sabe y cuales se
desconocen.
Determinar el modelo cinemático directo del sistema robótico a desarrollar, de acuerdo con la
estructura seleccionada en la Fase 2.
Realizar la simulación del modelo cinemático en Matlab y comparar con los resultados
anteriores, adjuntar capturas de pantalla de esta simulación.
Desarrollo.
Concepto Definición
El problema cinemático directo consiste en determinar cuál es la posición y
orientación del extremo final del robot, con respecto a un sistema de
coordenadas que se toma como referencia, conocidos los valores de las
articulaciones y los parámetros geométricos de los elementos del robot.
Matriz de
traslación
Donde:
Es la llamada matriz de rotación que define la orientación del sistema OUV con
respecto al sistema OXY, y que transforma las coordenadas de un vector en un
sistema a las del otro. La matriz de rotación es una matriz ortonormal: R-1=RT.
Si se considera que el sistema OUV se gira un ángulo α respecto a OXY la matriz
de rotación quedará de la siguiente forma:
Una rotación del sistema OUVW (con el eje OV que coincide con el eje OY) de
Ф grados respecto a OY se representaría de la siguiente forma.
Una rotación del sistema OUVW (con el eje OW que coincide con el eje OZ) de
θ grados respecto a OZ se representaría de la siguiente forma.
X=fx(q1,q2,)
y=fy(q1,q2,)
z=fz(q1,q2)
α=fα(q1,q2)
β=fβ(q1,q2)
γ =fγ(q1,q2)
Con las relaciones anteriores se puede localizar la posición del efector final del
robot.
Para describir la relación que existe entre dos sistemas de referencia asociados a
eslabones, se utiliza la representación Denavit - Hartenberg (D-H). Denavit y
Hartenberg propusieron en 1955 un método matricial que permite establecer de
manera sistemática un sistema de coordenadas {Si} ligado a cada eslabón i de
una cadena articulada. Además, la representación D-H permite pasar de un
sistema de coordenadas a otro mediante 4 transformaciones básicas que dependen
exclusivamente de las características geométricas del eslabón.
Estas transformaciones básicas consisten en una sucesión de rotaciones y
Parámetros traslaciones que permiten relacionar el sistema de referencia del elemento i con el
Denavit sistema del elemento i − 1. Las transformaciones en cuestión son las siguientes:
Hartemberg
Rotación alrededor del eje zi−1 un ángulo i.
Traslación a lo largo de zi−1 una distancia di.
Traslación a lo largo de xi una distancia ai.
Rotación alrededor del eje xi un ángulo i.
Teniendo ya los valores de i, di, ai, i, que son los denominados parámetros
D-H del eslabón i, la matriz de transformación que relaciona los sistemas de
referencia {Si−1} y {Si} es la siguiente:
Desarrollando esta expresión en términos de los parámetros D-H, nos queda:
Considerando que los eslabones se encuentran situados en un mismo plano y utilizando el teorama del
coseno, se tendrá:
% Practica 1 Robotica
% Harold Favian Diaz Leonis
% Cod 77171510
clear all; clc; clf;
%coordenadas de la pinza
PB1= [0;3;9];
PB2= [0;3;4];
PB3= [0;13;4];
PB4= [0;13;9];
PB5= [0;11;9];
PB6= [0;11;7];
PB7= [0;5;7];
PB8= [0;5;9];
RBA= [1,0,0;0,1,0;0,0,1];%matriz de traslación
line ([PB1(1),PB2(1)],[PB1(2),PB2(2)],[PB1(3),PB2(3)]);
line ([PB2(1),PB3(1)],[PB2(2),PB3(2)],[PB2(3),PB3(3)]);
line ([PB3(1),PB4(1)],[PB3(2),PB4(2)],[PB3(3),PB4(3)]);
line ([PB4(1),PB5(1)],[PB4(2),PB5(2)],[PB4(3),PB5(3)]);
line ([PB5(1),PB6(1)],[PB5(2),PB6(2)],[PB5(3),PB6(3)]);
line ([PB6(1),PB7(1)],[PB6(2),PB7(2)],[PB6(3),PB7(3)]);
line ([PB7(1),PB8(1)],[PB7(2),PB8(2)],[PB7(3),PB8(3)]);
line ([PB8(1),PB1(1)],[PB8(2),PB1(2)],[PB8(3),PB1(3)]);
axis([0,20,0,20,0,20]);%coordenadas donde se imprimirá en el plano
text(5,0,0,'x');%coordenadas para X
text(0,5,0,'y');%coordenadas para Y
text(0,0,5,'z');%coordenadas para Z
origen=[0,0,0];%coordenadas de nuestro origen de los ejes X, Y, Z
P1=[5,0,0];%coordenadas para el eje X
P2=[0,5,0];%coordenadas para el eje Y
P3=[0,0,5];%coordenadas para el eje Z
grid on;%función que da Matlab para el enmallado.
line([origen(1),P1(1)], [origen(2),P1(2)], [origen(3),P1(3)]);
line([origen(1),P2(1)], [origen(2),P2(2)], [origen(3),P2(3)]);
line([origen(1),P3(1)], [origen(2),P3(2)], [origen(3),P3(3)]);
pause;
%donde se inicializa nuestro ciclo for para el cumplimiento
%de nuestros objetivos
for m=0:1:2,
for a=0:0.0174:pi*2%equivalencia de 1° en radianes
if m==0 %x
arb=[1,0,0; 0, cos(a),-sin(a); 0,sin(a),cos(a)];
end
if m==1 %y
arb=[cos(a),0,sin(a); 0,1,0;-sin(a),0,cos(a)];
end
if m==2 %z
arb=[cos(a),-sin(a),0;sin(a),cos(a),0;0,0,1];
end
text(5,0,0,'x');
text(0,5,0,'y');
text(0,0,5,'z');
origen=[0,0,0];
P1=[5,0,0];
P2=[0,5,0];
P3=[0,0,5];
line([origen(1),P1(1)], [origen(2),P1(2)], [origen(3),P1(3)]);
line([origen(1),P2(1)], [origen(2),P2(2)], [origen(3),P2(3)]);
line([origen(1),P3(1)], [origen(2),P3(2)], [origen(3),P3(3)]);
AQ=[8;10;1]; %realizando traslación en los ejes X Y Z
P1=arb*PB1+AQ;
P2=arb*PB2+AQ;
P3=arb*PB3+AQ;
P4=arb*PB4+AQ;
P5=arb*PB5+AQ;
P6=arb*PB6+AQ;
P7=arb*PB7+AQ;
P8=arb*PB8+AQ;
line([P1(1),P2(1)], [P1(2),P2(2)], [P1(3),P2(3)]);
line([P1(1),P8(1)], [P1(2),P8(2)], [P1(3),P8(3)]);
line([P8(1),P7(1)], [P8(2),P7(2)], [P8(3),P7(3)]);
line([P7(1),P6(1)], [P7(2),P6(2)], [P7(3),P6(3)]);
line([P6(1),P5(1)], [P6(2),P5(2)], [P6(3),P5(3)]);
line([P5(1),P4(1)], [P5(2),P4(2)], [P5(3),P4(3)]);
line([P4(1),P3(1)], [P4(2),P3(2)], [P4(3),P3(3)]);
line([P3(1),P2(1)], [P3(2),P2(2)], [P3(3),P2(3)]);
axis([-20,20,-20,20,-20,20]);
grid on;
pause(.1)
clf;
end
end
PRACTICA 1
Actividades a desarrollar:
% Archivo PUMA560 que se ejecuta necesariamente con la funcion ikine del Toolbox Robotic de MATLAB
% De acuerdo a la programacion el sistema se movera de la siguiente forma:
% Moverse 8 unidades en el eje Z
% Moverse 30 unidades en el eje Y
% Moverse 5 unidades en el eje X
% Moverse 15 unidades en el eje Y
%
% Los valores iniciales en el eje XYZ del Robot Puma son X=0.452; Y=-0.150; Z=0.432
% Los valores de variacion de cada articulacion esta de la siguiente forma:
%
% Inicio Primer Movimiento Segundo Movimiento Tercer Movimiento Cuarto Movimiento
% X=0.452 ---------------------------------------------------> 0.502
% Y=-0.15 ---------------------------> 0.15 ---------------------------------------> 0.30
% Z=0.432 -----> 0.512
clear; % Limpiamos el Workspace
clc; % Limpiamos el Command Window
close all; % Cerramos todo
puma560; % Se llama al proyecto Robot Puma creado en MATLAB
robot=p560;
N1=40; % La variable N1 es el numero de iteraciones para el eje Z
N2=70; % La variable N2 es el numero de iteraciones para el eje Y
N3=90; % La variable N3 es el numero de iteraciones para el eje X
N4=120; % La variable N4 es el numero de iteraciones para el eje Y
px=0.452; % Valor inicial en el eje X del Robot Puma
py=-0.150; % Valor inicial en el eje Y del Robot Puma
pz=0.432; % Valor inicial en el eje Z del Robot Puma
d1=0.432; % Punto inicial del primer movimiento del brazo robotico, puede ser 0.432
d2=0.512; % Punto final del primer movimiento del brazo robotico, puede ser 0.512
d3=-0.15; % Punto inicial del segundo movimiento del brazo robotico, puede ser -0.15
d4=0.15; % Punto final del segundo movimiento del brazo robotico, puede ser 0.15
d5=0.452; % Punto inicial del tercer movimiento del brazo robotico, puede ser 0.452
d6=0.502; % Punto final del tercer movimiento del brazo robotico, puede ser 0.502
d7=0.15; % Punto inicial del cuarto movimiento del brazo robotico, puede ser 0.15
d8=0.30; % Punto final del cuarto movimiento del brazo robotico, puede ser 0.30
% Lineas de programacion para el primer tramo de movimiento de N1 iteraciones en el eje Z
z=linspace(d1,d2,N1); % La variable z se distribuira desde 0.432 hasta 0.512 en N1 partes iguales (d2-d1=0.08 unidades)
x=zeros(1,N1); % La variable x estara comprendida por 1 fila de N1 Ceros
y=x; % La variable y sera igual a lo obtenido en la variable x (1 fila de N1 Ceros)
for j=1:N1; % La variable j ira desde 1 hasta N1 en valores de una unidad
y(1,j)=py; % Se formaran matrices y de 1 fila x (1 hasta N1) columnas con el valor inicial -0.15
x(1,j)=px; % Se formaran matrices x de 1 fila x (1 hasta N1) columnas con el valor inicial 0.452
end
phi=zeros(1,N1); % La variable phi estara comprendida por 1 fila de N1 Ceros
for k=1:length(z) % La variable k ira desde 1 hasta el maximo valor de la variable z en valores de una unidad
phik=phi(k);
T(:,:,k)=[cos(phik) -sin(phik) 0 x(k); % La matriz T es la matriz homogenea
sin(phik) cos(phik) 0 y(k);
0 0 1 z(k);
0 0 0 1];
end
qzz=ikine(robot,T); % ikine es una funcion de Cinematica Inversa del Toolbox de Robotica
plot(robot,qzz)
% Lineas de programacion para el segundo tramo de movimiento de N2 iteraciones en el eje Y
y=linspace(d3,d4,N2); % La variable y se distribuira desde -0.15 hasta 0.15 en N2 partes iguales (d4-d3=0.30 unidades)
x=zeros(1,N2); % La variable x estara comprendida por 1 fila de N2 Ceros
z=x; % La variable z sera igual a lo obtenido en la variable x (1 fila de N2 Ceros)
for j=1:N2; % La variable j ira desde 1 hasta N2 en valores de una unidad
x(1,j)=px; % Se formaran matrices x de 1 fila x (1 hasta N2) columnas con los valores 0.452 (X no ha sufrido cambios)
z(1,j)=pz+(d2-d1);% Se formara matrices z de 1 fila x (1 hasta N2) columnas con valores 0.512 (Punto final movimiento anterior)
end
phi=zeros(1,N2);
for k=1:length(y); % La variable k ira desde 1 hasta el maximo valor de la variable y en valores de una unidad
phik=phi(k);
T(:,:,k)=[cos(phik) -sin(phik) 0 x(k); % La matriz T es la matriz homogenea
sin(phik) cos(phik) 0 y(k);
0 0 1 z(k);
0 0 0 1];
end
qyy=ikine(robot,T); % ikine es una funcion de Cinematica Inversa del Toolbox de Robotica
plot(robot,qyy)
% Lineas de programacion para el tercer tramo de movimiento de N3 iteraciones en el eje X
x=linspace(d5,d6,N3); % La variable x se distribuira desde 0.452 hasta 0.502 en N3 partes iguales (d6-d5=0.05 unidades)
y=zeros(1,N3); % La variable y estara comprendida por 1 fila de N3 Ceros
z=y; % La variable z sera igual a lo obtenido en la variable y (1 fila de N3 Ceros)
for j=1:N3; % La variable j ira desde 1 hasta N3 en valores de una unidad
y(1,j)=py+(d4-d3); % Se formara matrices y de 1 fila x (1 hasta N3) columnas con valores 0.15 (Y=py+(d4-d3)=-0.15+0.30=0.15)
z(1,j)=pz+(d2-d1); % Se formaran matrices z de 1 fila x (1 hasta N3) columnas con los valores 0.482 (Z no ha sufrido cambios)
end
phi=zeros(1,N3); % La variable phi estara comprendida por 1 fila de N3 Ceros
for k=1:length(x); % La variable k ira desde 1 hasta el maximo valor de la variable x en valores de una unidad
phik=phi(k);
T(:,:,k)=[cos(phik) -sin(phik) 0 x(k); % La matriz T es la matriz homogenea
sin(phik) cos(phik) 0 y(k);
0 0 1 z(k);
0 0 0 1];
end
qxx=ikine(robot,T) % ikine es una funcion de Cinematica Inversa del Toolbox de Robotica
plot(robot,qxx)
% Lineas de programacion para el cuarto tramo de movimiento de N4 iteraciones en el eje Y
y=linspace(d7,d8,N4); % La variable y se distribuira desde 0.05 hasta -0.05 en N4 partes iguales (d8-d7=0.10 unidades)
x=zeros(1,N4); % La variable x estara comprendida por 1 fila de N4 Ceros
z=x; % La variable z sera igual a lo obtenido en la variable x (1 fila de N Ceros)
for j=1:N4; % La variable j ira desde 1 hasta N4 en valores de una unidad
x(1,j)=px+(d6-d5);% Se formara matrices x de 1 fila x (1 hasta N4) columnas con valores 0.702 (X=px+(d6-d5)=0.452+0.25=0.702)
z(1,j)=pz+(d2-d1);% Se formaran matrices z de 1 fila x (1 hasta N4) columnas con los valores 0.482 (Z no ha sufrido cambios)
end
phi=zeros(1,N4); % La variable phi estara comprendida por 1 fila de N4 Ceros
for k=1:length(y); % La variable k ira desde 1 hasta el maximo valor de la variable y en valores de una unidad
phik=phi(k);
T(:,:,k)=[cos(phik) -sin(phik) 0 x(k); % La matriz T es la matriz homogenea
sin(phik) cos(phik) 0 y(k);
0 0 1 z(k);
0 0 0 1];
end
qyy=ikine(robot,T) % ikine es una funcion de Cinematica Inversa del Toolbox de Robotica
plot(robot,qyy)
A través de los robots se dan beneficios en diferentes actividades del hombre, las principales son:
montaje, soldadura, pintura, entornos peligrosos, salud, vigilancia y seguridad. En La Robótica
permite una producción más eficiente, reducción del desperdicio de material, y de costos, además
de mejorar sustancialmente la calidad de los productos.
Una ventaja de un robot frente a maquinas, es que es capaz de modificar su tarea a realizar. Esto lo
convierte en una solución ideal para el mundo cambiante y exigente de la industria. El uso de robots
en las empresas se va haciendo necesario a medida que el mundo empresarial va a pasos
agigantados en lo que a la tecnología se refiere. Por otra parte, para poder ofrecer calidad y bajos
precios hay que disminuir la mayoría de costos de la empresa, en donde los robots industriales
juegan un papel importante, ya que tienen una gran capacidad de producción con un costo muy
bajo.
La robótica sintetiza algunos aspectos de las funciones que realiza el hombre a través del uso de
mecanismos, sensores y procesadores.
Se aprendió a utilizar la herramienta de software Matlab, para poder trasladar, rotar y simular un elemento en el
espacio dentro de los tres ejes (x,y,z) correspondiente a una pinza mecánica, utilizando las matrices de transformación
y traslación.
Referencias Bibliográficas.
Robótica/Grados de libertad de los robots, 2017, Wikilibros, recuperado de:
https://es.wikibooks.org/wiki/Rob%C3%B3tica/Grados_de_Libertad_de_los_Robots
Control y robótica. Curso en línea. Valladolid – España. Revisado el 02 diciembre del 2013,
Recuperado desde internet:
http://platea.pntic.mec.es/vgonzale/cyr_0708/archivos/_15/Tema_5.6.htm