ROBOTICA 299011-1
Presentado por.
Tutor.
VALLEDUPAR
2018
2
INTRODUCCION
3
Actividades a desarrollar.
Individuales.
Colaborativas.
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.
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.
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.
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.
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
%[ 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')
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