You are on page 1of 22

1

ROBOTICA 299011-1

Fase 3. Realizar el modelamiento cinemático de un sistema robótico.

Presentado por.

YOOLFRAN ARRIETA RADA COD. 12436687

HAROLD FAVIAN DIAZ LEONIS COD. 77171510

ZARINA ESTHER GONZALEZ COD. 1065647463

HEIGLER ENRIQUE OSPINO COD. 1129569265

JHONY MANUEL LUNA COD

Tutor.

SANDRA ISABEL VARGAS

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA (UNAD)

ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIAS

PROGRAMA DE INGENIERIA ELECTRONICA

VALLEDUPAR

2018
2

INTRODUCCION
3

Actividades a desarrollar.

Individuales.

1) Descargar la guía para el desarrollo del componente práctico que encuentra en


el entorno de aprendizaje práctico y desarrollar la práctica 1 descrita allí.
2) Instalar Matlab y el toolbox de robótica.
3) Crear y publicar un video (en su cuenta de youtube), donde se evidencia que
tiene instalado Matlab y a la vez demuestre el funcionamiento del programa
desarrollado para dar solución a la actividad práctica 1.
4

Colaborativas.

El estudiante debe estudiar las temáticas correspondientes a la Unidad 2, y realizar las


siguientes actividades.

1) Identificar qué aspectos referentes a la cinemática directa e inversa del robot,


sabe y cuales se desconocen. Seleccionar de los siguientes términos, los
desconocidos y buscar su significado en las referencias del entorno de
conocimiento.

CONCEPTOS DEFINICION

Cinemática directa. Las posiciones de las articulaciones ya están determinadas y el problema radica
en encontrar la configuración del efector final. En la cinemática directa para
posición, las posiciones de las articulaciones, es decir, los ángulos de las
articulaciones de revoluta y el desplazamiento de las articulaciones prismáticas
se conocen. La tarea es encontrar la configuración del efector final, es decir, su
posición y orientación.

Cinemática inversa. Se resuelve inverso, es decir, la posición del efector final está determinada y el
problema radica en encontrar los ángulos de las articulaciones. El problema de la
cinemática inversa consiste en la determinación de las variables de articulaciones
correspondientes a una orientación y posición específicas del efector final. La
solución de este problema es de fundamental importancia con el fi n de
transformar las especificaciones de movimiento asignadas al efector final en el
espacio operacional en los correspondientes movimientos de espacio de las
articulaciones. En la cinemática inversa es mucho más complejo debido a las
siguientes razones.
Por lo general, las ecuaciones por resolver son no lineales en las variables de
articulaciones; de este modo, no siempre es posible encontrar una solución
explícita. Pueden existir múltiples soluciones.
También pueden existir soluciones infinitas, por ejemplo, en el caso de
manipuladores robóticos cinemáticamente redundantes.
Posiblemente no hay soluciones admisibles debido a la arquitectura del
manipulador.
5

Matriz de traslación. Las traslaciones se conocen como movimientos directos sin cambios de
orientación, es decir, mantienen la forma y el tamaño de las figuras u objetos
trasladados, a las cuales deslizan según el vector.

Matriz de rotación. Las matrices de rotación son el método más extendido para la descripción de
orientaciones, debido principalmente a la comodidad que proporciona el uso del
álgebra matricial.

Matriz de transformación Sus principales ventajas residen en su capacidad de representación conjunta de


homogénea. posición y orientación y en la comodidad con la que se puede realizar la
composición de transformaciones. Para ello bastará únicamente multiplicar, en el
orden adecuado, las matrices de transformación correspondientes. Es posible,
además, la aplicación de una transformación sobre un vector referido a un
sistema fijo únicamente multiplicando la matriz de transformación correspondiente
por el vector. Como principal inconveniente presenta su alto nivel de redundancia
(necesita definir 12 componentes para sólo seis grados de libertad). Debe
considerarse, además, que por los inevitables errores de redondeo, la
multiplicación sucesiva de varias matrices de transformación homogénea, puede
resultar en un matiz que no lo sea (su caja de rotación no sea ortonormales). Esto
dificulta su implementación en computador. Se trata del método más popular,
pues al trabajar con matrices permite el uso de su álgebra que es extensamente
conocida.
6

Parámetros Denavit- Los parámetros DH aparecieron por vez primera en 1955 (Denavit y Hartenberg,
Hartenberg. (1955) para representar una línea dirigida que no es otra cosa que el eje de una
articulación de par inferior. Para describir la relación que existe entre dos
elementos contiguos se puede hacer uso de cualquier sistema de referencia
ligado a cada elemento, la forma habitual que se suele utilizar en robótica es la
representación de Denavit-Hartenberg (D-H). Denavit y Hartenberg [DENAVIT-55]
propusieron en 1955 un método matricial que establece la localización que debe
tomar cada sistema de coordenadas {Si} ligado a cada eslabón i de una cadena
articulada, para poder sistematizar la obtención de las ecuaciones cinemáticas de
la cadena completa. Escogiendo los sistemas de coordenadas asociados a cada
eslabón según la representación propuesta por D-H, será posible pasar de uno al
siguiente mediante 4 transformaciones básicas que dependen exclusivamente de
las características geométricas del eslabón. Hay que hacer notar que si bien en
general una matriz de transformación homogénea queda definida por 6 grados de
libertad, el método de Denavit-Hartenberg, permite, en eslabones rígidos, reducir
éste a 4 con la correcta elección de los sistemas de coordenadas. Estas 4
transformaciones básicas consisten en una sucesión de rotaciones y traslaciones
que permiten relacionar el sistema de referencia del elemento i–1 con el sistema
del elemento i. Las transformaciones en cuestión son las siguientes (es
importante recordar que el paso del sistema {Si-1} al {Si} mediante estas 4
transformaciones está garantizado sólo si los sistemas {Si–1} y {Si} han sido
definidos de acuerdo a unas normas determinadas que se expondrán
posteriormente).
1. Rotación alrededor del eje Zi-1 un ángulo 𝜃𝑖 .
2. Traslación a lo largo de Zi-1 una distancia di; vector di (0, 0, di).
3. Traslación a lo largo de xi una distancia ai; vector ai (ai, 0, 0).
4. Rotación alrededor del eje xi un ángulo αi.
Donde las transformaciones se refieren al sistema móvil. Dado que el producto de
matrices no es conmutativo, las transformaciones se han de realizar en el orden
indicado. Junto con la definición de los 4 parámetros de Denavit Hartenberg,
conforman el siguiente algoritmo para la resolución del problema cinemático
directo.
DH 1. Numerar los eslabones comenzando con 1 (primer eslabón móvil de la
cadena) y acabando con n (último eslabón móvil). Se numerará como eslabón 0 a
la base fija del robot.
DH 2. Numerar cada articulación comenzando por 1 (la correspondiente al primer
grado de libertad) y acabando en n.
DH 3. Localizar el eje de cada articulación. Si ésta es rotativa, el eje será su
propio eje de giro. Si es prismática, será el eje a lo largo del cual se produce el
desplazamiento.
DH 4. Para i de 0 a n - 1 situar el eje Zi sobre el eje de la articulación i +1.
7

DH 5. Situar el origen del sistema de la base {S0} en cualquier punto del eje z0.
Los ejes x0 e y0 se situarán de modo que formen un sistema dextrógiro con z0.
DH 6. Para i de 1 a n - 1, situar el origen del sistema {Si} (solidario al eslabón i)
en la intersección del eje Zi con la línea normal común a Zi-1 y Zi. Si ambos ejes
se cortasen se situaría {Si} en el punto de corte. Si fuesen paralelos {Si} se
situaría en la articulación i + 1.

DH 7. Situar xi en la línea normal común a Zi-1 y Zi.


DH 8. Situar yi de modo que forme un sistema dextrógiro con xi y Zi.
DH 9. Situar el sistema {Sn} en el extremo del robot de modo que Zn coincida con
la dirección de Zn-1 y xn sea normal a Zn-1 y Zn.
DH 10. Obtener 𝜃𝑖 como el ángulo que hay que girar en torno a Zi-1 para que xi–1
y xi queden
paralelos.
DH 11. Obtener di como la distancia, medida a lo largo de Zi-1, que habría que
desplazar {Si–1} para que xi y xi–1 quedasen alineados.
DH 12. Obtener ai como la distancia medida a lo largo de xi (que ahora coincidiría
con xi–1) que habría que desplazar el nuevo {Si–1} para que su origen
coincidiese con {Si}.
DH 13. Obtener αi como el ángulo que habría que girar en torno a xi, para que el
nuevo {Si–1} coincidiese totalmente con {Si}.
DH 14. Obtener las matrices de transformación i–1Ai definidas en [4.10].
DH 15. Obtener la matriz de transformación que relaciona el sistema de la base
con el del extremo del robot T = 0A1 * 1A2 * n–1An.
DH 16. La matriz T define la orientación (sub matriz de rotación) y posición (sub
matriz de traslación) del extremo referido a la base, en función de la n
coordenada articulares.
8

De acuerdo a los conceptos revisados en el paso anterior establezca y lleve a cabo un


plan de aprendizaje para.

2) Determinar el modelo cinemático directo del sistema robótico a desarrollar, de


acuerdo con la estructura seleccionada en la Fase 2.
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.

En general, un robot de n grados de libertad está formado por n eslabones unidos por n
articulaciones, de forma que cada par articulación - eslabón constituye un grado de
libertad. A cada eslabón se le puede asociar un sistema de referencia solidario a él y,
utilizando las transformaciones homogéneas, es posible representar las rotaciones y
traslaciones relativas entre los distintos eslabones que componen el robot. La matriz de
transformación homogénea que representa la posición y orientación relativa entre los
distintos sistemas asociados a dos eslabones consecutivos del robot se denomina
i−1Ai. Del mismo modo, la matriz 0Ak, resultante del producto de las matrices i−1Ai con
i desde 1 hasta k, es la que representa de forma total o parcial la cadena cinemática
9

que forma el robot con respecto al sistema de referencia inercial asociado a la base.
Cuando se consideran todos los grados de libertad, a la matriz 0An se le denomina T,
matriz de transformación que relaciona la posición y orientación del extremo final del
robot respecto del sistema fijo situado en la base del mismo. Así, dado un robot de 6gdl,
se tiene que la posición y orientación del eslabón final vendrá dado por la matriz T.

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 traslaciones


que permiten relacionar el sistema de referencia del elemento i con el sistema del
elemento i − 1. Las transformaciones en cuestión son las siguientes.

 Rotación alrededor del eje zi−1 un ángulo 𝜃𝑖.


 Traslación a lo largo de zi−1 una distancia 𝑑𝑖.
 Traslación a lo largo de xi una distancia 𝑎𝑖.
 Rotación alrededor del eje xi un ángulo αi.
Teniendo ya los valores de 𝜃𝑖, 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.
10

Desarrollando esta expresión en términos de los parámetros D-H, resulta esta matriz.

Revisar el desarrollo de esta fase del proyecto a la luz del aprendizaje adquirido y
volver a identificar nuevos aprendizajes necesarios, para ello.

3) Realizar la simulación del modelo cinemático en Matlab y comparar con los


resultados anteriores, adjuntar capturas de pantalla de esta simulación.

% Despliega en 3D el brazo robotico segun parametros a, b, phi, alp, w, Mp.


% Universidad Nacional Abierta y A Distancia (UNAD)
%function M = DisplayBrazoRobotico(a,b,phi,alp,w,Mp)
clear,clc
disp('Brazo robotico')
disp('Cambiar valor de Alfa (1)')
disp('Variacion de phi (2)')
disp('Cambiar eje w (3)')
n = input('Digite el numero correspondiente:')
switch n
case 1
alfa = input('Digite el valor de alfa:')
for alp = 0:0.01:alfa;
11

figure(1)
%Ejemplo:
a = 10;
b = 15;
phi = pi/4;
%alp = pi/2;
w = pi/10;
Mp = [0 1 1 1]';
%p -> q
%[ Xq ] [ Xp ]
%[ Yq ] = Sqp [ Yp ]
%[ Zq ] [ Zp ]
%[ 1 ] [1 ]
bet = pi - alp;
Sqp = [1 0 0 0
0 cos(bet) -sin(bet) -b*cos(alp)
0 sin(bet) cos(bet) b*sin(alp)
0 0 0 1];

% 2) q -> r
% [ Xr ] [ Xq ]
% [ Yr ] = Srq [ Yq ]
% [ Zr ] [ Zq ]
%[1 ] [1 ]
Srq = [1 0 0 0
0 cos(phi) -sin(phi) a*cos(phi)
0 sin(phi) cos(phi) a*sin(phi)
12

0 0 0 1];
% 3) r -> o
%[X] [ Xr ]
% [ Y ] = Sor [ Yr ]
%[Z] [ Zr ]
%[1] [1 ]
Sor = [cos(w) -sin(w) 0 0
sin(w) cos(w) 0 0
0 0 1 0
0 0 0 1];
% 4) Transformacion total p->o
Sop = Sor*Srq*Sqp;
M = Sop*Mp;
% Grafica del modelo
clf
Sro = inv(Sor);
Sqr = inv(Srq);
Spq = inv(Sqp);
% definicion de los ejes
E = [1 0 0 0 0
00100
00001
1 1 1 1 1];
% Ejes del sistema de coordenadas o
Eo = E;
plot3(Eo(1,:),Eo(2,:),Eo(3,:),'r')
hold on
13

text(Eo(1,1),Eo(2,1),Eo(3,1),'X')
text(Eo(1,3),Eo(2,3),Eo(3,3),'Y')
text(Eo(1,5),Eo(2,5),Eo(3,5),'Z')
% Ejes del sistema de coordenadas r
Er = Sor*E;
plot3(Er(1,:),Er(2,:),Er(3,:),'r')
text(Er(1,1),Er(2,1),Er(3,1),'Xr')
text(Er(1,3),Er(2,3),Er(3,3),'Yr')
%text(Er(1,5),Er(2,5),Er(3,5),'Zr')
% Eje del sistema de coordenadas q
Eq = Sor*Srq*E;
plot3(Eq(1,:),Eq(2,:),Eq(3,:),'r')
text(Eq(1,1),Eq(2,1),Eq(3,1),'Xq')
text(Eq(1,3),Eq(2,3),Eq(3,3),'Yq')
text(Eq(1,5),Eq(2,5),Eq(3,5),'Zq')
% Eje del sistema de coordenadas p
Ep = Sor*Srq*Sqp*E;
plot3(Ep(1,:),Ep(2,:),Ep(3,:),'r')
text(Ep(1,1),Ep(2,1),Ep(3,1),'Xp')
text(Ep(1,3),Ep(2,3),Ep(3,3),'Yp')
text(Ep(1,5),Ep(2,5),Ep(3,5),'Zp')
% Diagrama del Brazo
B = [Eo(:,2) Eq(:,2) Ep(:,2)];
plot3(B(1,:),B(2,:),B(3,:),'b')
text(B(1,1),B(2,1),B(3,1),'o')
text(B(1,2),B(2,2),B(3,2),'q')
text(B(1,3),B(2,3),B(3,3),'p')
14

% Ubicacion del punto Mp


plot3(M(1),M(2),M(3),'*')
axis([-20 20 -20 20 0 40])
xlabel('X');
ylabel('Y');
zlabel('Z');
view(98,11)
grid on
title(sprintf('phi=%4.0f, alpha=%4.0f, w=%4.0f, a=%4.1f,
b=%4.1f.',phi*180/pi,alp*180/pi,w*180/pi,a,b))
pause(0.05)
end
case 2
for phi=0:0.01:1.4;
figure(1)
%Ejemplo:
a = 10;
b = 15;
%phi = pi/4;
alp = pi/2;
w = pi/10;
Mp = [0 1 1 1]';
%p -> q
%[ Xq ] [ Xp ]
%[ Yq ] = Sqp [ Yp ]
%[ Zq ] [ Zp ]
15

%[ 1 ] [1 ]
bet = pi - alp;
Sqp = [1 0 0 0
0 cos(bet) -sin(bet) -b*cos(alp)
0 sin(bet) cos(bet) b*sin(alp)
0 0 0 1];
% 2) q -> r
% [ Xr ] [ Xq ]
% [ Yr ] = Srq [ Yq ]
% [ Zr ] [ Zq ]
%[1 ] [1 ]
Srq = [1 0 0 0
0 cos(phi) -sin(phi) a*cos(phi)
0 sin(phi) cos(phi) a*sin(phi)
0 0 0 1];

% 3) r -> o
%[X] [ Xr ]
% [ Y ] = Sor [ Yr ]
%[Z] [ Zr ]
%[1] [1 ]
Sor = [cos(w) -sin(w) 0 0
sin(w) cos(w) 0 0
0 0 1 0
0 0 0 1];
% 4) Transformacion total p->o
Sop = Sor*Srq*Sqp;
16

M = Sop*Mp;
% Grafica del modelo
clf
Sro = inv(Sor);
Sqr = inv(Srq);
Spq = inv(Sqp);
% definicion de los ejes
E = [1 0 0 0 0
00100
00001
1 1 1 1 1];
% Ejes del sistema de coordenadas o
Eo = E;
plot3(Eo(1,:),Eo(2,:),Eo(3,:),'r')
hold on
text(Eo(1,1),Eo(2,1),Eo(3,1),'X')
text(Eo(1,3),Eo(2,3),Eo(3,3),'Y')
text(Eo(1,5),Eo(2,5),Eo(3,5),'Z')
% Ejes del sistema de coordenadas r
Er = Sor*E;
plot3(Er(1,:),Er(2,:),Er(3,:),'r')
text(Er(1,1),Er(2,1),Er(3,1),'Xr')
text(Er(1,3),Er(2,3),Er(3,3),'Yr')
%text(Er(1,5),Er(2,5),Er(3,5),'Zr')
% Eje del sistema de coordenadas q
Eq = Sor*Srq*E;
plot3(Eq(1,:),Eq(2,:),Eq(3,:),'r')
17

text(Eq(1,1),Eq(2,1),Eq(3,1),'Xq')
text(Eq(1,3),Eq(2,3),Eq(3,3),'Yq')
text(Eq(1,5),Eq(2,5),Eq(3,5),'Zq')

% Eje del sistema de coordenadas p


Ep = Sor*Srq*Sqp*E;
plot3(Ep(1,:),Ep(2,:),Ep(3,:),'r')
text(Ep(1,1),Ep(2,1),Ep(3,1),'Xp')
text(Ep(1,3),Ep(2,3),Ep(3,3),'Yp')
text(Ep(1,5),Ep(2,5),Ep(3,5),'Zp')
% Diagrama del Brazo
B = [Eo(:,2) Eq(:,2) Ep(:,2)];
plot3(B(1,:),B(2,:),B(3,:),'b')
text(B(1,1),B(2,1),B(3,1),'o')
text(B(1,2),B(2,2),B(3,2),'q')
text(B(1,3),B(2,3),B(3,3),'p')
% Ubicacion del punto Mp
plot3(M(1),M(2),M(3),'*')
axis([-20 20 -20 20 0 40])
xlabel('X');
ylabel('Y');
zlabel('Z');
view(98,11)
grid on
title(sprintf('phi=%4.0f, alpha=%4.0f, w=%4.0f, a=%4.1f,
b=%4.1f.',phi*180/pi,alp*180/pi,w*180/pi,a,b))
pause(0.05)
18

end
case 3
for w = 0:0.01:1.4;
figure(1)
%Ejemplo:
a = 10;
b = 15;
phi = pi/4;
alp = pi/2;
%w = pi/10;
Mp = [0 1 1 1]';
%p -> q
%[ Xq ] [ Xp ]
%[ Yq ] = Sqp [ Yp ]
%[ Zq ] [ Zp ]
%[ 1 ] [1 ]
bet = pi - alp;

Sqp = [1 0 0 0
0 cos(bet) -sin(bet) -b*cos(alp)
0 sin(bet) cos(bet) b*sin(alp)
0 0 0 1];
% 2) q -> r
% [ Xr ] [ Xq ]
% [ Yr ] = Srq [ Yq ]
% [ Zr ] [ Zq ]
%[1 ] [1 ]
19

Srq = [1 0 0 0
0 cos(phi) -sin(phi) a*cos(phi)
0 sin(phi) cos(phi) a*sin(phi)
0 0 0 1];
% 3) r -> o
%[X] [ Xr ]
% [ Y ] = Sor [ Yr ]
%[Z] [ Zr ]
%[1] [1 ]
Sor = [cos(w) -sin(w) 0 0
sin(w) cos(w) 0 0
0 0 1 0
0 0 0 1];
% 4) Transformacion total p->o
Sop = Sor*Srq*Sqp;
M = Sop*Mp;
% Grafica del modelo
clf
Sro = inv(Sor);
Sqr = inv(Srq);
Spq = inv(Sqp);
% definicion de los ejes
E = [1 0 0 0 0
00100
00001
1 1 1 1 1];
% Ejes del sistema de coordenadas o
20

Eo = E;
plot3(Eo(1,:),Eo(2,:),Eo(3,:),'r')
hold on
text(Eo(1,1),Eo(2,1),Eo(3,1),'X')
text(Eo(1,3),Eo(2,3),Eo(3,3),'Y')
text(Eo(1,5),Eo(2,5),Eo(3,5),'Z')
% Ejes del sistema de coordenadas r
Er = Sor*E;
plot3(Er(1,:),Er(2,:),Er(3,:),'r')
text(Er(1,1),Er(2,1),Er(3,1),'Xr')
text(Er(1,3),Er(2,3),Er(3,3),'Yr')
%text(Er(1,5),Er(2,5),Er(3,5),'Zr')
% Eje del sistema de coordenadas q
Eq = Sor*Srq*E;
plot3(Eq(1,:),Eq(2,:),Eq(3,:),'r')
text(Eq(1,1),Eq(2,1),Eq(3,1),'Xq')
text(Eq(1,3),Eq(2,3),Eq(3,3),'Yq')
text(Eq(1,5),Eq(2,5),Eq(3,5),'Zq')
% Eje del sistema de coordenadas p
Ep = Sor*Srq*Sqp*E;
plot3(Ep(1,:),Ep(2,:),Ep(3,:),'r')
text(Ep(1,1),Ep(2,1),Ep(3,1),'Xp')
text(Ep(1,3),Ep(2,3),Ep(3,3),'Yp')
text(Ep(1,5),Ep(2,5),Ep(3,5),'Zp')
% Diagrama del Brazo
B = [Eo(:,2) Eq(:,2) Ep(:,2)];
plot3(B(1,:),B(2,:),B(3,:),'b')
21

text(B(1,1),B(2,1),B(3,1),'o')
text(B(1,2),B(2,2),B(3,2),'q')
text(B(1,3),B(2,3),B(3,3),'p')
% Ubicacion del punto Mp
plot3(M(1),M(2),M(3),'*')
axis([-20 20 -20 20 0 40])
xlabel('X');
ylabel('Y');
zlabel('Z');
view(98,11)
grid on
title(sprintf('phi=%4.0f, alpha=%4.0f, w=%4.0f, a=%4.1f,
b=%4.1f.',phi*180/pi,alp*180/pi,w*180/pi,a,b))
pause(0.05)
end
end
22

You might also like