Beruflich Dokumente
Kultur Dokumente
Prctica 2
Cinemtica de Robots
2.1.- Introduccin
Prctica 2 .- Pg. 1
Prcticas de Robtica utilizando Matlab
Un aspecto importante que refleja las relaciones dinmicas del robot respecto de la
carga til que pueden manipular, puede estudiarse en la siguiente tabla.
Las siguientes son algunas recomendaciones que deben tenerse en cuenta al definir
la cinemtica de un robot, la cual debe hacerse en consideracin de la dinmica que
imponen las dimensiones de las barras que lo forman:
El espacio de trabajo del robot debe ser cuidadosamente estudiado para definir el
volumen justo de trabajo del robot
En un robot de seis grados de libertad rotacional, las primeras tres barras son las que
aportan la mayor dinmica debido a su peso. A menudo es posible localizar los
primeros tres accionamientos de potencia en la base del robot, pero para lograr esto
se debe ser cuidadoso en el uso de mecanismos de cuatro barras que mueven el
brazo mas alejado (robot ABB IRB2400).
En un robot de seis grados de libertad, las tres primeras articulaciones del robot
deben dar las condiciones de posicin y las tres ltimas articulaciones del extremo
del robot deben concentrar en un punto de la mano, los tres grados de libertad de
orientacin.
En esta prctica se van a presentar las herramientas necesarias para resolver los dos
problemas fundamentales en el estudio de la cinemtica del robot. El primero de ellos,
consiste en determinar la posicin y orientacin del extremo final de la cadena
cinemtica conocidos los valores de las coordenadas articulares y las caractersticas
geomtricas del robot, y es conocido como problema cinemtico directo. La solucin
del problema inverso permite hallar las variables articulares conocida la posicin y
orientacin del extremo de la cadena cinemtica. Para la resolucin de estos problemas
se utiliza la representacin de Denavit-Hartenberg y las matrices de transformacin
homognea.
Prctica 2 .- Pg. 2
Prcticas de Robtica utilizando Matlab
del movimiento de un robot con respecto a un sistema de referencia fijo como una
funcin del tiempo sin considerar la dinmica.
n x sx ax p x
p y
matriz de rotacin vector de posicin n y sy ay
T = = n
f1x3 escalado z sz az p z
0 0 0 1
n s a p
T =
0 0 0 1
Prctica 2 .- Pg. 3
Prcticas de Robtica utilizando Matlab
i
Tj
Sistema-j
z
p=(10, 4, 3)
y
z
x
y
Sistema-i x
0 0 1 10
0 1 0 4
i
Tj =
1 0 0 3
0 0 0 1
Prctica 2 .- Pg. 4
i i+1
Eslabn i-1
Articulacin i Articulacin i+1 utilizando Matlab
Eslabn i Prcticas de Robtica
Eslabn i+1
Al colocar el sistemaai de referenciaidel zeslabn-i,
i
se deben seguir las siguientes
reglas:
- El eje zi del sistema de referencia debe xi quedar alineado a lo largo de la
articulacin
- di El eje xi debe colocarse con orientacin normal al plano formado por los ejes zi-1
y zi zi-1
Al establecer los sistemas de coordenadas de la mano se debe tener en cuenta el
principio de Piepers en el cual se establece que los tres ltimos sistemas de
referencia se intercepten en un punto, lo cual permite obtener una solucin para el
problema cinemtico inverso de forma cerrada para estas articulaciones.
i
xi-1
Adems de las reglas anteriores la convencin de D-H establece las siguientes
condiciones para los dems parmetros geomtricos, de acuerdo a la figura-2.2.
Prctica 2 .- Pg. 5
Prcticas de Robtica utilizando Matlab
1 0 0 0 c i s i 0 0 1 0 0 a i 1 0 0 0
0 1 0 0 s i c i 0 0 0 1 0 0 0 c i s i 0
i 1
A i =
0 0 1 d i 0 0 1 0 0 0 1 0 0 s i c i 0
0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0
c i c i s i s i s i a i c i
s c i c i s i c i a i s i
i 1
A i = i
0 s i c i d i
0 0 0 1
Prctica 2 .- Pg. 6
d3 Prcticas de Robtica utilizando Matlab
3
2 z2
d2 x2
2.2.3 Representacin
y2 de la cinemtica directa de robots manipuladores
l4
z1 a2
En esta seccin
1 se explican algunas arquitecturas de robots y como construir la
tabla de los parmetros de D-H. Para una informacin
z3 ms detallada sobre este tema, se
recomienda estudiar las referencias [1] xy3 [2].
4 4
l1 x1 y1
1 y3
Ejemplo 2.1
z0
z4
0 x4
y0
y4
x0
Eslabn i di ai i
1 1 l1 0 0
2 0 d2 - a2 -/2
3 0 d3 0 0
4 4 l4 0 0
Note el lector el signo negativo del parmetro a2 as como la localizacin del origen
del sistema de coordenadas (x2, y2, z2)
Las variables articulares son en este caso 1, d2, d3, 4
Prctica 2 .- Pg. 7
y3
z3 4 y4
Prcticas de Robtica utilizando Matlab
x2 z4
z2 x3
Ejemplo 2.2 3 l4
3 y2 4 x4
5
y5
l6
6
z5
5
s
x5
2 6
a
a2
z1 n
2
x1
y1
z0 1
1
l1 0
x0 y0
Eslabn i di ai i
1 1+/2 l1 0 -/2
2 2-/2 0 a2 0
3 3+ 0 0 /2
4 4 l4 0 /2
5 5 0 0 /2
6 6 l6 0 0
Note el lector que en este caso todas las variables articulares corresponden a los
giros en las articulaciones.
Obsrvese la rotacin en 4 entre los eslabones 3 y 4.
Obsrvese que el sistema de referencia (x3, y3, z3) se ha trasladado al principio del
eslabn 3 cumpliendo con la representacin de D-H.
Prctica 2 .- Pg. 8
Prcticas de Robtica utilizando Matlab
robots de cadena abierta. Para utilizarla debe invocarse junto con el vector de
coordenadas articulares Q de n componentes siendo n el nmero de eslabones del robot.
A continuacin se muestra el cdigo fuente utilizado para cada uno de los robots
que se estn utilizando como ejemplos. El lector debe notar las modificaciones
realizadas en el cdigo, debido al diferente nmero de eslabones de cada robot y a los
parmetros D-H de cada robot. Se recomienda que se realicen estos ejemplos como
prctica de los conocimientos adquiridos.
Ejemplo 2.3
Las dimensiones del robot, introducidas en los parmetros de D-H, son las
indicadas en el captulo 1.
Prctica 2 .- Pg. 9
Prcticas de Robtica utilizando Matlab
q=zeros(4,1)
q =
0
0
0
0
T=directkinematic4(q)
T =
1.0000 0 0 -0.1000
0 0.0000 1.0000 0.2000
0 -1.0000 0.0000 0.4000
0 0 0 1.0000
Ejemplo 2.4
Las dimensiones del robot, introducidas en los parmetros de D-H, son las
indicadas en la prctica 1.
Prctica 2 .- Pg. 10
Prcticas de Robtica utilizando Matlab
A continuacin se presenta la matriz obtenida para una configuracin en la que todas las
coordenadas articulares tienen valor nulo:
q=zeros(6,1)
q =
0
0
0
0
0
0
T=directkinematic6(q)
T =
1.0000 0 0 0.4500
0 1.0000 0 0
0 0 1.0000 0.8950
0 0 0 1.0000
Prctica 2 .- Pg. 11
Prcticas de Robtica utilizando Matlab
Ejemplo 2.5
Articulacin 1
punto del extremo del robot (px, py, pz) sobre el plano (x0, y0, z0) obteniendo una
sencilla relacin angular. Sabiendo que 1 es el ngulo entre x0 y x1, se obtienen las
siguientes grficas.
Prctica 2 .- Pg. 12
y0
d3+l4
R
r
Prcticas de Robtica utilizando Matlab
px,py,pz
1
orientacin a2
x0
z0
y0
x0
R= p x2 + p 2y
r = R 2 a22 = d 3 + l4
py px
sin = cos =
R R
a r
sin = 2 cos =
R R
Articulacin 2
l1 + d 2 = pz d 2 = pz l1
Articulacin 3
De la figura 2.5:
r = R 2 a22 = d 3 + l4
Prctica 2 .- Pg. 13
y3
donde n y s son vectores de orientacin del extremo
x4 del robot.
Prcticas de Robtica utilizando Matlab
x3
Articulacin 4
sin 4 = ny3
4 = atan2(sin 4 , cos 4 )
cos 4 = sy3
del robot cilndrico de 4 gdl. Para ello toma como parmetros la matriz homognea T,
que representa la orientacin y posicin del extremo del robot y devuelve el vector de
coordenadas articulares.
function q = inversekinematic4(T)
sphi = -p(1)/R;
cphi = p(2)/R;
phi = atan2(sphi, cphi);
Prctica 2 .- Pg. 14
Prcticas de Robtica utilizando Matlab
sbeta = -a(2)/R;
cbeta = r/R;
beta = atan2(sbeta, cbeta);
q1 = phi - beta;
y3 = A03(1:3,2);
Prctica 2 .- Pg. 15
Prcticas de Robtica utilizando Matlab
q=rand(4,1)
q =
0.8913
0.7621
0.4565
0.0185
T=directkinematic4(q)
T =
inversekinematic4(T)
ans =
0.8913
0.7621
0.4565
0.0185
Ejemplo 2.6
En primer lugar se calcula la posicin del punto de interseccin de los 3 ltimos grados
de libertad, que se conoce como MUECA del robot. Con las coordenadas (px, py, pz)
de la mueca se resuelve el problema de la posicin, de manera similar al ejemplo
anterior.
Como se observa en la figura 2.6, la articulacin 3 (3), en adelante CODO del robot,
puede tener dos valores distintos, conocidos como configuracin CODO ARRIBA y
CODO ABAJO, y que representan los casos en que la articulacin 3 est situada por
Prctica 2 .- Pg. 16
MUECA
R CODO p x, p y, p z
1
c
Prcticas de Robtica utilizando Matlab
px,py s
debajo o por encima de la articulacin 2, para lograr una misma posicin de la mueca.
a
Asimismo, la MUECA puede tomar tambin dos configuraciones distintas, MUECA
ARRIBA y MUECA ABAJO, para obtener n una misma orientacin del efector final.
Articulacin 1
R= p x2 + p 2y
py px
sin 1 = cos 1 =
R R
1 = atan2(sin1 , cos1 )
Prctica 2 .- Pg. 17
x2 p x ,p y , p z
l3 p x ,p y , p z r l3
Prcticas de Robtica utilizando Matlab
r x2
l2
2 l2
2
l1
x1 Articulacin 2 l1
x1
r= p x2 + p y2 + ( p z l1 ) 2
l32 = r 2 + l 22 2rl 2 cos
l32 r 2 + l 22
= cos
2rl2
sin = 1 cos 2
l pz
sin = 1
r
R
cos =
r
2 = + 2 =
Prctica 2 .- Pg. 18
x2 l3
l3
l2 3 Prcticas de Robtica utilizando Matlab
x2
3
l2
l1 Articulacin 3
x3 l1 x3
3
3 = 3 =
2 2
(z 3 xa )
1. z 4 =
z 3 xa
2. a = z5
3. s = y6
Prctica 2 .- Pg. 19
s
z4 y4
6
4 n de Robtica utilizando Matlab
Prcticas
5 y3y5
a
x4
6
4 n Articulacin 4
x4
x5 (z 3 xa )
x3 Para conocer el signo de la ecuacin z 4 = se determina conociendo la
z 3 xa
orientacin y la configuracin de MUECA. se calcula segn su definicin, y
MUECA es un parmetro del robot. Se parte de la suposicin de que el signo es
positivo, y esta hiptesis se corrige con el parmetro M que se calcula como
combinacin de la configuracin de la mueca y la orientacin requeridas.
que permite obtener M como parmetro para calcular la rotacin 4 en cualquiera de las
configuraciones posibles.
sin 4 = M ( z 4 x3 )
cos 4 = M ( z 4 y3 )
4 = atan2(sin 4 , cos 4 )
Articulacin 5
cos 5 = (a y 4 )
Articulacin 6
sin 6 = n y 5
cos 6 = s y 5
Prctica 2 .- Pg. 20
Prcticas de Robtica utilizando Matlab
del robot rotacional de 6 gdl. Para ello toma como parmetros la matriz homognea T,
y los parmetros CODO y MUECA para definir las posibles configuraciones. Ha de
tenerse en consideracin que determinados puntos y orientaciones que pertenezcan al
espacio de trabajo del robot, no podrn alcanzarse con algunas configuraciones. Por
ello se recomienda al lector que trate de experimentar con estos puntos extremos con la
herramienta que a continuacin se presenta, y analice los resultados.
function q = inversekinematic6(T,codo,muneca)
cbeta = (r^2+a(2)^2-d(4)^2)/(2*r*a(2));
sbeta = sqrt(1-cbeta^2);
q2 = atan2(sq2,cq2);
Prctica 2 .- Pg. 21
Prcticas de Robtica utilizando Matlab
M = muneca*sign(omega);
sq4 = -M*dot(z4,x3);
cq4 = M*dot(z4,y3);
q4 = atan2(sq4,cq4);
Prctica 2 .- Pg. 22
Prcticas de Robtica utilizando Matlab
q=rand(6,1)
q =
0.6721
0.8381
0.0196
0.6813
0.3795
0.8318
T=directkinematic6(q)
T =
inversekinematic6(T,-1,1)
ans =
0.6721
0.8381
0.0196
0.6813
0.3795
0.8318
Prctica 2 .- Pg. 23
Prcticas de Robtica utilizando Matlab
Ejemplo 2.7
function drawrobot3d4(q)
% Se dibuja el robot
x = [x0 x1 xi x2 x3 x4];
y = [y0 y1 yi y2 y3 y4];
z = [z0 z1 zi z2 z3 z4];
plot3(x,y,z);
% Se coloca una rejilla a los ejes
grid;
% Se establecen los lmites de los ejes
axis([-1.5 1.5 -1.5 1.5 0 1.5]);
Prctica 2 .- Pg. 24
Prcticas de Robtica utilizando Matlab
Ejemplo 2.8
function drawrobot3d6(q)
Prctica 2 .- Pg. 25
Prcticas de Robtica utilizando Matlab
% Se dibuja el robot
x = [x0 x1 x2 x3 x4 x5 x6];
y = [y0 y1 y2 y3 y4 y5 y6];
z = [z0 z1 z2 z3 z4 z5 z6];
plot3(x,y,z);
% Se coloca una rejilla a los ejes
grid;
% Se establecen los lmites de los ejes
axis([-1 1 -1 1 0 1.5]);
Prctica 2 .- Pg. 26
Prcticas de Robtica utilizando Matlab
Ejemplo 2.9
En este ejemplo se utiliza la cinemtica inversa del robot rotacional de 6 gdl para
trazar una lnea recta entre un punto p1 inicial y un punto p2 final. El nmero de puntos
intermedios es variable.
Prctica 2 .- Pg. 27
Prcticas de Robtica utilizando Matlab
for i=0:(npuntos+1)
% Clculo de la posicin cartesiana actual de la mano del
manipulador
p = p1+(i*d)*u;
T = [n s a p];
% Clculo de las coordenadas articulares
q = inversekinematic6(T,codo,muneca);
mat_q(:,i+1) = q;
end
function animacion6(mat_q)
Prctica 2 .- Pg. 28
Prcticas de Robtica utilizando Matlab
% Se dibuja el robot
x = [x0 x1 x2 x3 x4 x5 x6];
y = [y0 y1 y2 y3 y4 y5 y6];
z = [z0 z1 z2 z3 z4 z5 z6];
set(p,'XData',x,'YData',y,'ZData',z);
% Se fuerza a MATLAB a actualizar la pantalla
drawnow;
end
Prctica 2 .- Pg. 29
Prcticas de Robtica utilizando Matlab
EJERCICIOS PROPUESTOS
Prctica 2 .- Pg. 30