Beruflich Dokumente
Kultur Dokumente
Prctica
Planificacin de Trayectorias
5.1.-Introduccin
Una vez obtenidos los modelos cinemticos y dinmicos del robot se puede
abordar el problema del control de los mismos. Definir el movimiento de un robot
implica controlar dicho robot de manera que siga un camino preplanificado. El objetivo
es por tanto establecer cuales son las trayectorias que debe seguir cada articulacin del
robot a lo largo del tiempo para conseguir los objetivos fijados, a la vez que se exige
cumplir una serie de restricciones fsicas impuestas por los actuadores y de calidad de la
trayectoria, como son suavidad, precisin, etc.
Para un estudio ms estructurado del problema de control del robot, ste suele
dividirse en dos bloques:
Esta prctica aborda el control cinemtico del robot, revisando los conceptos de
planificacin de trayectorias y las herramientas necesarias para la interpolacin
polinomial entre los puntos de inicio y final del camino. En primer lugar se presenta un
esquema general del problema de la planificacin, ms tarde se distingue entre el
espacio cartesiano y el espacio de las articulaciones del robot para poder abordar en
Prctica 5 .- Pg. 1
Restricciones de los
actuadores.
Modelo cinemtico.
GENERADOR DE
TRAYECTORIAS
Trayectorias articulares
q i (t ), q i (t ), qi (t )
Figura 5.1. Esquema general del control cinemtico.
Prctica 5 .- Pg. 3
5.3.-Tipos de Trayectorias.
La mejora tecnolgica ha permitido que los robots puedan realizar trayectorias
cada vez ms complejas, al poder ser stas calculadas previamente. A continuacin se
cita brevemente una clasificacin de tipos de trayectorias de robots comerciales
clsicos.
Trayectorias punto a punto.
En este tipo de trayectorias cada articulacin se mueve independientemente, sin
considerar el efecto del resto de las articulaciones. Dentro de esta tipo se engloban
las trayectorias con movimiento eje a eje y las de movimiento simultneo de ejes.
En las trayectorias con movimiento eje a eje en primer lugar se acta sobre un
motor, y cuando este ha finalizado su recorrido, se activa el siguiente motor. Este
tipo de movimiento tiene como nica ventaja el ahorro energtico.
Trayectorias coordinadas o isocronas.
En este tipo de trayectorias se procura que el movimiento de todos los actuadores
sea coordinado e isocrona. Esto quiere decir que el actuador que tarda ms tiempo
en alcanzar la posicin requerida ralentiza al resto, de manera que ningn
movimiento acaba antes que el de otra articulacin. El tiempo total invertido en el
movimiento es el menor posible, y los requerimientos de velocidad y aceleracin de
los motores son menores que en otro tipo de movimiento. El inconveniente de este
tipo de planificadores es que la trayectoria que describe el extremo del robot es
desconocida a priori. El esquema de planificador que se explica en el siguiente
apartado corresponde a este tipo de planificadores.
Prctica 5 .- Pg. 4
Trayectorias continuas.
En este tipo de trayectorias se pretende que el camino seguido por el extremo del
robot sea conocido. Para ello las trayectorias articulares deben acomodarse
conjuntamente. Cada articulacin por separado parece tener un movimiento
desordenado, sin embargo el resultado es que el extremo se mueve siguiendo el
camino previsto.
Prctica 5 .- Pg. 5
Posicin
(t3)
(t0)
t0
Frenado
(t1)
Vel. Mx.
Aceleracin
(t2)
t1
t2
t3
Tiempo
Las restricciones en los puntos de control que se utilizan para resolver el clculo de los
polinomios interpoladores son las siguientes:
Posicin inicial (t0)
Posicin (t0)
Velocidad inicial (normalmente nula)
Aceleracin inicial (normalmente nula)
Posicin intermedia (t1)
Posicin (t1)
Continuidad en posicin
Continuidad en velocidad
Continuidad en aceleracin
Posicin intermedia (t2)
Posicin (t2)
Continuidad en posicin
Continuidad en velocidad
Continuidad en aceleracin
Posicin final (t3)
Posicin (t3)
Velocidad final (normalmente nula)
Aceleracin final (normalmente nula)
Se pueden encontrar en la literatura especfica muchos polinomios que permiten
cumplir con las anteriores restricciones. Una de estas soluciones es la combinacin 4-34 [1] que se explica brevemente a continuacin.
Prctica 5 .- Pg. 6
h2 (t ) = a 23 t 3 + a 22 t 2 + a 21t + a 20
(5.2)
(5.3)
h3 (t ) = a 34 t 4 + a 33 t 3 + a 32 t 2 + a 31t + a 30
(5.4)
En primer lugar hay que considerar que al estar hallando las trayectorias
articulares para las N articulaciones del manipulador, es conveniente introducir una
variable de tiempo normalizada t[0,1], que permita simplificar los clculos al evitar
tener que contabilizar los desfases temporales, de tal manera que t=0 corresponda al
inicio de cualquiera de los tres segmentos en que se ha dividido el camino y t=1
corresponda al final del segmento de trayectoria.
Matemticamente, este cambio de variable queda expresado como:
t=
i 1
i 1
(5.5)
Donde:
t
1
hi (t )
ti
1
ai = 2 hi (t )
ti
vi =
Prctica 5 .- Pg. 7
(5.6)
(5.7)
(5.8)
(5.9)
a10 = h1 (0) = 0
h (0) a11
v0 = 1
=
t1
t1
h (0) 2a
a0 = 1 2 = 212
t1
t1
a0t12 2
t + (v0t1 )t + 0
h1 (t ) = a14t + a13t +
2
4a + 3a13 + a0t12 + v0t1
v1 (1) = 14
t1
4
a1 (1) =
(5.10)
(5.11)
(5.12)
(5.13)
(5.14)
(5.15)
Prctica 5 .- Pg. 8
(5.16)
(5.17)
(5.18)
(5.19)
(5.20)
h2 (0) h1 (1)
=
t2
t1
h2 (0) h1 (1)
= 2
t 22
t1
(5.21)
(5.22)
(5.23)
a30 = h3 (0) = f
h (0) a31
vf = 3
=
t3
t3
h (0) 2a
a f = 3 2 = 232
t3
t3
2
h3 (1) 4a34 + 3a33 a f t3 + v f t n
=
t3
t3
2
h3 (1) 12 a34 6a33 + a f t3
=
t32
t32
(5.25)
(5.26)
(5.27)
(5.28)
(5.29)
y aplicando continuidad:
h2 (1) h3 (1)
=
t2
t3
h2 (1) h3 (1)
=
t 22
t32
2
3
6a23 6a22
+ 2 =0
t 22
t2
Prctica 5 .- Pg. 9
(5.30)
(5.31)
(5.32)
Otras relaciones
El ngulo recorrido por la articulacin en cada segmento puede escribirse como:
a0t12
+ v0t1
2
2 = 2 1 = h2 (1) h2 (0) = a23 + a22 + a21
(5.33)
a f t32
2
(5.34)
(5.35)
+ v f t3
Rescribiendo en notacin matricial las ecuaciones (5.22), (5.23), (5.31), (5.32), (5.33),
(5.34), (5.35) se obtiene:
y = Cx
(5.36)
donde:
2
a f t32
a
t
0
1
y = 1
v0t1 ,a0t1 v0 ,a0 , 2 ,a f t3 + v f , a f , 3
v f t3
2
2
T
x = (a13 , a14 , a21 , a22 , a23 , a33 , a34 )
1
0
0
0
0
0
1
3 t
0
0
0
0
1 4 t1 1 t 2
6 t12 12 t12
0
2 t 22
0
0
0
C = 0
0
1
1
1
0
0
0
0
1 t2
2 t2
3 t 2 3 t3
4 t3
0
0
2 t 22 6 t 22 6 t32 12 t32
0
0
0
0
0
0
1
1
function [velo2,tmaximo]=sincronizador(q0,qf,velo)
%--Calculo de tiempos aproximados.
taprox = abs((qf(:,1)-q0(:,1)))./velo;
tmaximo = max(taprox);
%--Nueva velocidad maxima de cada motor.
velo2=(qf(:,1)-q0(:,1))/tmaximo;
return
Prctica 5 .- Pg. 11
if vel(elem) ~= 0
%-Determinacion del caso
desp = (qf(elem,1) - q0(elem,1));
ttot = abs(desp/vel(elem));
if ttot > (ti + tf)
caso = 1;
else
caso = 2;
end;
%****************************** CASO 1********************************
if caso == 1
%vector de tiempo: Arranque - Velocidad Max - Desaceleracion
tt = [ ti ttot-(ti+tf) tf ];
%Determinacion de los coeficientes polinomiales
A = zeros(3,5);
%Coeficientes del polinomio de posicion
A(1,1) = q0(elem,1);
A(1,2) = q0(elem,2)*tt(1);
A(1,3) = q0(elem,3)*tt(1)^2/2;
A(1,4) = tt(1)*vel(elem) - A(1,2) - 4*A(1,3)/3;
A(1,5) = -tt(1)*vel(elem)/2 + A(1,2)/2 + A(1,3)/2;
Prctica 5 .- Pg. 12
A(2,2) = qf(elem,2)*tt(2);
A(2,3) = qf(elem,3)*tt(2)^2/2;
% Los polinomios para este caso son de quinto orden.
B = [
1
1
1
-1;
6/tt(1)^2
12/tt(1)^2
0
0;
3/tt(1)
4/tt(1)
-3/tt(2)
4/tt(2);
0
0
-6/tt(2)^2 12/tt(2)^2 ];
b = [ -A(1,1) + A(1,2) + A(1,3) + A(2,1) - A(2,2) + A(2,3);
-2*A(1,3)/tt(1)^2;
-(A(1,2) + 2*A(1,3))/tt(1) + (A(2,2) - 2*A(2,3))/tt(2);
-2*A(2,3)/tt(2)^2
];
x = inv(B)*b;
% Coeficientes 4 y 5 de cada segmento.
A(1,4) = x(1);
A(1,5) = x(2);
A(2,4) = x(3);
A(2,5) = x(4);
end;
% Para cuando el motor no se mueve.
else
caso = 2;
tt = [0 0 0];
A = zeros(2,5);
end;
return
El lector debe notar la redefinicin del segundo elemento del vector TT que
define los intervalos de tiempo de aceleracin, velocidad mxima y frenado en el caso 1,
ajustando la aproximacin que se haba realizado con la variable TTOT.
La funcin PLANIFICADOR hace uso de las funciones definidas anteriormente,
y permite obtener los polinomios q i (t ), q i (t ), qi (t ) . Debe observarse que en el interior
de esta funcin se encuentran los parmetros de los actuadores del robot. Se han
introducido valores estndar para articulaciones robotizadas como son velocidades
mximas de /3 radianes/seg. (1.0472 rad/seg.) y tiempos de aceleracin y frenado de
0.1 seg.
Prctica 5 .- Pg. 13
Prctica 5 .- Pg. 14
Prctica 5 .- Pg. 15
elseif (t(i)>0)&(t(i)<=tt(1))
ti = t(i)/tt(1);
p = A(1,1)+ A(1,2)*ti+ A(1,3)*ti^2+A(1,4)*ti^3+A(1,5)*ti^4;
elseif (t(i)>tt(1))&(t(i)<=tt(2)+tt(1))
ti = (t(i)-tt(1))/tt(2);
p = A(2,1)+A(2,2)*(ti-1)+A(2,3)*(ti-1).^2+A(2,4)*(ti1).^3+A(2,5)*(ti-1).^4;
elseif (t(i)>tt(2)+tt(1))
p = A(2,1);
end;
end;
pos(i)=p;
end;
return
Prctica 5 .- Pg. 16
Prctica 5 .- Pg. 17
Prctica 5 .- Pg. 18
Prctica 5 .- Pg. 19
s
Prcticas de Robtica utilizando Matlab
a
n
Prctica 5 .- Pg. 20
ace] 0= 0planificador(q1,q2);
[t,pos,
T1=[0 1 vel,
0 -0.3;1
-0.2;0 0 1 0.6; 0 0 0 1]
T1 =
0
1.0000
0
0
1.0000
0
-0.3000
0
0
-0.2000
El
siguiente
0
1.0000 ejemplo
0.6000 muestra
0
0
1.0000
INVERSEKINEMATIC6
para obtener los
0
0
1.0000
0
0
1.0000
0
0
1.0000
0
0
0
-0.3000
0.4000
0.5000
1.0000
q1=inversekinematic6(T1,-1,1)
q1 =
-2.5536
0.7137
-0.6729
0.0000
-0.0408
-0.9828
q2=inversekinematic6(T2,-1,1)
q2 =
2.3306
0.6579
-0.2558
-2.2892
1.8437
-0.2990
Prctica 5 .- Pg. 21
plot(t,pos)
plot(t,vel)
plot(t,ace)
Prcticas de Robtica utilizando Matlab
Prctica 5 .- Pg. 22
animacion6(pos')
Prcticas de Robtica utilizando Matlab
Prctica 5 .- Pg. 23