Sunteți pe pagina 1din 8

PRCTICA II: Parmetros Denavit - Hartenberg

Gonzlez Chvez Rolando



MARCO TERICO

1. Transformaciones

Una transformacin consiste en una
aplicacin que hace corresponder a
cada punto P (x,y,z) a otro punto P
(x,y,z). Las transformaciones ms
usuales son las de traslacin,
simetra y rotacin.

1.1. Transformacin matricial de
rotacin

La trasformacin matricial de rotacin
es la siguiente:

() [


] [

] [

]

[

] [


] [

] (1)

Sin embargo, la expresin (1)
determina la rotacin en R
2
, para
obtener la expresin para R
3
, por
inspeccin, se sabe que la rotacin
es exclusiva alrededor del eje z, por
lo que las coordenadas z se
mantienen constantes, por lo tanto, la
rotacin alrededor de z es

[

] [



] [

] (2)

Semejante es la matriz de rotacin
alrededor del eje x

[

] [



] [

] (3)

Y otra para la rotacin alrededor del
eje y


[

] [



] [

] (4)

Algo importante a considerar en las
transformaciones matriciales de
rotacin es que no son conmutativas.

1.2. Transformacin matricial de
traslacin

Las traslaciones se entienden como
movimientos directos sin cambios de
orientacin (mantienen tamao y
forma); generalmente se usan
coordenadas homogneas para
representar la traslacin mediante
una matriz y poder as expresarla
como una transformacin lineal sobre
un espacio de dimensin superior.

Por lo tanto, un vector tridimensional
v = (x
i
, y
j
, z
k
) puede ser reescrito
utilizando cuatro coordenadas
homogneas como v = (x
i
, y
j
, z
k
, 1).
En dichas condiciones una traslacin
se representa de la siguiente forma:

[

] [






] [

] (5)

Al efectuar la multiplicacin puede
observarse en (6) que se genera un
vector con un resultado de
desplazamiento en el respectivo eje:

[

] [


] (6)

La inversa de una matriz de traslacin
puede obtenerse cambiando el signo
de la direccin del vector de
desplazamiento. As mismo, el
producto de dos matrices de
traslacin es:



Debido a que la suma de vectores es
conmutativa, la multiplicacin de
matrices de traslacin tambin es
conmutativa.

2. Parmetros Denavit - Hartenberg

Para un estudio analtico de la
geometra del movimiento de un
brazo robtico con respecto a un
sistema de coordenadas fijo en
funcin del tiempo sin considerar las
fuerzas que originan el movimiento.

Pare ello se utilizan los parmetros
de Denavit Hartenberg (D - H)
permite referir las coordenadas de la
herramienta o extremo del robot; para
empezar, se deben seguir las reglas
para definir los sistemas de
coordenadas en base a los cuales se
construyen las matrices de
transformacin homogneas (rotacin
y traslacin de coordenadas). La
representacin de D H emplea
cuatro parmetros que describen
completamente la geometra de cada
eslabn, estos parmetros son:

-
i
: ngulo en torno a z
i 1
de x
i 1
a x
i

usando la regla de la mano derecha.

- d
i
: Distancia a lo largo de z
i 1
desde
el origen del sistema de coordenadas
S
i - 1
hasta la interseccin de z
i 1
a x
i
.


- a
i
: Distancia a lo largo de x
i
desde la
interseccin de z
i 1
con x
i
hasta el
origen del sistema S
i
o la distancia
ms corta entre z
i 1
y z
i
.

-
i
: ngulo en torno a x
i
de z
i 1
a z
i

usando la regla de la mano derecha.

El procedimiento es el siguiente:

DH1: Numerar los eslabones i = 0, 1,
, n (0 para la base fija y 1 para el
primer eslabn mvil).

DH2: Numerar las articulaciones i =
1,2, , n (1 para el primer grado de
libertad, n para el ltimo).

DH3: Para i = 0, 1, , n 1 fijar el eje
z
i
sobre la articulacin i +1.

DH4: Sistema de coordenadas de la
base S
0
, situar el origen en cualquier
punto del eje z
0
de modo que x
0
y y
0

formen un sistema de mano derecha
con z
0
.

DH5: Para i = 1, 2, , n fijar el origen
del sistema de coordenadas del
eslabn i, S
i
, en la interseccin del eje
z
i
. Si ambos ejes se cortan, fijar el
origen en el punto de interseccin. Si
ambos ejes son paralelos, fijar el
origen en la articulacin i + 1.

DH6: Fijar x
i
en la lnea perpendicular
comn a z
i-1
y z
i
.

DH7: Fijar y
i
de modo que forme un
sistema de mano derecha con x
i
y z
i
.

DH8: Fijar el sistema de coordenadas
del extremo S
n
de modo que z
n

coincida con la direccin de z
n-1
y z
n
.
Establecer S
n
preferentemente en el
centro de la pinza o en la punta de la
herramienta que tenga el robot.
PRCTICA II: Parmetros Denavit - Hartenberg

Gonzlez Chvez Rolando

DH9: Definir
i
como el ngulo que
habra de girar en torno a z
i-1
para
que x
i-1
y x
i
queden alineados.

DH10: Definir d
i
como la distancia
medida a lo largo de z
i-1
que habra
de desplazar S
i-1
para que x
i-1
y x
i

queden alineados.

DH11: Definir a
i
como la distancia
medida a lo largo de x
i
(que ahora
coincidira con x
i-1
) que habra de
desplazar el nuevo S
i-1
para que su
origen coincida con el de S
i
.

DH12: Definir
i
como el ngulo que
gira entorno a x
i
(que coincide con
x
i-1
) para que el nuevo sistema de
referencia S
i-1
coincida con S
i
.

DH13: Construir las matrices de
transformacin empleando las
matrices de trasformacin que se
expresan en (2), (3) y (5), siguiendo
el orden correspondiente mostrado:

(7)

[




]

2.1. Aplicaciones

Los parmetros Denavit-Hartenberg
(DH) forman la parte bsica de la
robtica, ya que son un estndar a la
hora de describir la geometra de un
brazo o manipulador robtico. Se
usan para resolver de forma trivial el
problema de la cinemtica directa, y
como punto inicial para plantear hasta
el ms complejo sistema
de cinemtica inversa.
DESARROLLO

Se implementa una simulacin en
Matlab

para mostrar los parmetros


DH, para ello se emplean las
matrices de transformacin para
rotacin sobre el eje z, rotacin sobre
el eje x, traslacin sobre el eje z y
traslacin sobre el eje x rotacin.



] (8)



] (9)



] (10)



] (11)

Para mostrar la simulacin se
comienza estableciendo el rea de
trabajo, es decir, se establece una
figura de 5 X 5 X 5 unidades, en
medio se establece la coordenada
(0, 0, 0) a partir de ah se generan los
ejes de referencia que sern
mostrados en rojo.

Los ejes de referencia rojos
permanecern fijos para visualizar
mejor el movimiento de los ejes que
se grafican posteriormente sobre
estos en color verde (Ver fig. 1).













Figura 1 Inicio de la simulacin

Se establece un ciclo para realizar la
rotacin de los ejes actuales, los ejes
graficados en verde rotarn sobre
cada eje z y x y se trasladarn sobre
cada eje z y x nuevo que se genere
tras cada transformacin. En la fig. 2
se muestra el primer parmetro de
DH; rotacin de 45 sobre el eje z.

























Figura 2 Rotacin de 45 sobre el eje z.

Posteriormente se realiza el segundo
parmetro de DH, traslacin de 3
unidades positivas sobre el nuevo eje
z, se muestra el resultado en la fig. 3,
as lneas grises muestran la posicin
anterior.


















Figura 3 Traslacin sobre el nuevo eje z, la
traslacin es de 3 unidades tal y
como muestran las lneas
azules de referencia.

Despus se realiza una traslacin de
4 unidades sobre el nuevo eje x
(tercer parmetro de DH), el resultado
se muestra en la fig. 4; las lneas
grises de referencia muestran las
posiciones anteriores.




















Figura 4 Traslacin de 4 unidades sobre el nuevo
eje x.

PRCTICA II: Parmetros Denavit - Hartenberg

Gonzlez Chvez Rolando

Por ltimo se obtiene el cuarto
parmetro de DH, rotacin de 135
sobre el nuevo eje x, el resultado se
muestra en la fig, 5, los ejes de
referencia grises representa a los
ejes anteriores, los ejes verdes
representan al sistema de referencia
final y los ejes rojos muestra el
sistema de referencia inicial.




























Figura 5 Rotacin de 135 sobre el nuevo eje x.











FUENTES DE CONSULTA

Craig J. J. Rbotica. Tercera Edicin.
Pearson Education. 2010.

Barrientos A., Pen L.F., Balaguer,
R. Fundamentos de robtica.
McGraw Hill. 1997.

Kolman, B. y Hill, D. R. lgebra
Lineal. Pearson Education, Mxico,
2006.

Matrices y transformaciones.
Fascculo 21. Fundacin Polar.
Venezuela: 2006.

Traslacin. En Lnea. Consultado el
09 de Septiembre, 2013.
Disponible en:
<http://es.wikipedia.org/wiki/Traslaci%
C3%B3n_(geometr%C3%ADa) >























ANEXOS

Se muestra el cdigo empleado en
Matlab

:

function [] =
movEje3(gamma,dZ,dX,theta)

% Generacin de los ejes de
referencia iniciales.
Eje=[0;1];
Ref=zeros(2,1);

% Graficacin de los ejes de
referencia iniciales.
figure;
plot3(Eje,Ref,Ref,...
'r','LineWidth',2);
hold on;
grid on;
xlabel('X');
ylabel('Y');
zlabel('Z');
axis([-5,5,-5,5,-5,5])
plot3(Ref,Eje,Ref,...
'r','LineWidth',2);
plot3(Ref,Ref,Eje,...
'r','LineWidth',2);

A=plot3(Eje,Ref,Ref,...
'g','LineWidth',2);
B=plot3(Ref,Eje,Ref,...
'g','LineWidth',2);
C=plot3(Ref,Ref,Eje,...
'g','LineWidth',2);

X=[1;0;0;1];
Y=[0;1;0;1];
Z=[0;0;1;1];

RefX=[0;0;0;1];
RefY=[0;0;0;1];
RefZ=[0;0;0;1];

pause;

% Rotacin sobre el eje Z.

for i=0:abs(gamma)

% Matriz de rotacin sobre el
eje Z.

rZ=[cosd(i),-sind(i),0,0;...
sind(i),cosd(i),0,0;...
0,0,1,0;...
0,0,0,1];

Xplot=rZ*X;
Yplot=rZ*Y;
Zplot=rZ*Z;

delete(A)
delete(B)
delete(C)

A=plot3([0,Xplot(1)],...
[0,Xplot(2)],...
[0,Xplot(3)],...
'g','LineWidth',2);
B=plot3([0,Yplot(1)],...
[0,Yplot(2)],...
[0,Yplot(3)],...
'g','LineWidth',2);
C=plot3([0,Zplot(1)],...
[0,Zplot(2)],...
[0,Zplot(3)],...
'g','LineWidth',2);
pause(0.001);
end

pause;

% Traslacin sobre el eje Z
actual.

for i=0:0.01:dZ

% Matriz de traslacin sobre
el eje Z.

tZ=[1,0,0,0;...
0,1,0,0;...
0,0,1,i;...
0,0,0,1];

Xplot=rZ*tZ*X;
Yplot=rZ*tZ*Y;
Zplot=rZ*tZ*Z;

XplotR=rZ*tZ*RefX;
YplotR=rZ*tZ*RefY;
ZplotR=rZ*tZ*RefZ;

delete(A)
delete(B)
delete(C)

PRCTICA II: Parmetros Denavit - Hartenberg

Gonzlez Chvez Rolando


A=plot3([XplotR(1),Xplot(1)],...

[XplotR(2),Xplot(2)],...

[XplotR(3),Xplot(3)],...
'g','LineWidth',2);

B=plot3([YplotR(1),Yplot(1)],...

[YplotR(2),Yplot(2)],...

[YplotR(3),Yplot(3)],...
'g','LineWidth',2);

C=plot3([ZplotR(1),Zplot(1)],...

[ZplotR(2),Zplot(2)],...

[ZplotR(3),Zplot(3)],...
'g','LineWidth',2);
pause(0.001);
end

pause;

% Traslacin sobre el eje X
actual.

for i=0:0.01:dX

% Translacin sobre el eje X.

tX=[1,0,0,i;...
0,1,0,0;...
0,0,1,0;...
0,0,0,1];

Xplot=rZ*tZ*tX*X;
Yplot=rZ*tZ*tX*Y;
Zplot=rZ*tZ*tX*Z;

XplotR=rZ*tZ*tX*RefX;
YplotR=rZ*tZ*tX*RefY;
ZplotR=rZ*tZ*tX*RefZ;

delete(A)
delete(B)
delete(C)


A=plot3([XplotR(1),Xplot(1)],...

[XplotR(2),Xplot(2)],...

[XplotR(3),Xplot(3)],...
'g','LineWidth',2);

B=plot3([YplotR(1),Yplot(1)],...

[YplotR(2),Yplot(2)],...

[YplotR(3),Yplot(3)],...
'g','LineWidth',2);

C=plot3([ZplotR(1),Zplot(1)],...

[ZplotR(2),Zplot(2)],...

[ZplotR(3),Zplot(3)],...
'g','LineWidth',2);
pause(0.001);
end

pause;

% Rotacin de eje X actual.
for i=0:abs(theta)

% Rotacin sobre el eje X.

rX=[1,0,0,0;...
0,cosd(i),-sind(i),0;...
0,sind(i),cosd(i),0;...
0,0,0,1];

Xplot=rZ*tZ*tX*rX*X;
Yplot=rZ*tZ*tX*rX*Y;
Zplot=rZ*tZ*tX*rX*Z;

XplotR=rZ*tZ*tX*rX*RefX;
YplotR=rZ*tZ*tX*rX*RefY;
ZplotR=rZ*tZ*tX*rX*RefZ;

delete(A)
delete(B)
delete(C)


A=plot3([XplotR(1),Xplot(1)],...

[XplotR(2),Xplot(2)],...

[XplotR(3),Xplot(3)],...
'g','LineWidth',2);

B=plot3([YplotR(1),Yplot(1)],...

[YplotR(2),Yplot(2)],...

[YplotR(3),Yplot(3)],...
'g','LineWidth',2);

C=plot3([ZplotR(1),Zplot(1)],...

[ZplotR(2),Zplot(2)],...

[ZplotR(3),Zplot(3)],...
'g','LineWidth',2);
pause(0.001);
end

S-ar putea să vă placă și