Documentos de Académico
Documentos de Profesional
Documentos de Cultura
espaciales y
robótica
GRUPO 4IM131
Prof. Deyka García
Ejemplo 4.1
Como ya se ha comentado
anteriormente, los parámetros
que caracterizan a un perfil de
velocidad trapezoidal son:
- Velocidad máxima
- Tiempo de aceleración
- Tiempo constante
- Tiempo de deceleración.
• Para las articulaciones
rotacionales se utilizan
reductores de 500.
• Para las articulaciones
prismáticas se usarán, como
reductores, husillos de
bolas de paso 25 mm.
• Para obtener los pares máximos hay que
• Definir el movimiento de un
robot consiste en
controlarlo de manera que
siga un camino pre
planificado.
• Se divide en control
cinemático y dinámico
5.2 Esquema General de
Planificación de Trayectorias.
Clasificación de tipos de
trayectorias de robots
comerciales clásicos:
• Punto a punto
• Coordinadas
• Continuas.
5.4.Interpolación
• Se divide en tres segmentos
Restricciones:
• Posición inicial (t0)
Posición θ(t0) Vi(nula) Ai(nula)
• Posición intermedia (t1) y t(2)
Posición θ(t1) y (t2)
Cont. Pos. Cont. Vel. Cont. Acel.
• Posición final (t3)
Posición θ(t3) Vf(nula) Af (nula)
5.4.2.Polinomios 4-3-4
(5.3)
(5.4)
(5.5)
Calculo de coeficientes
De las ecuaciones (5.2),(5.6)y (5.7) Aplicando las condiciones de
se obtienen las expresiones: contorno para t=0 y t=1:
Segundo segmento de trayectoria:
Velocidad Máxima
Aplicando las condiciones de
Aplicando continuidad:
contorno para t=0 y t=1 para los
y
puntos intermedios se obtienen las
siguientes relaciones:
function[caso,A,tt] =
SINCRONIZADOR
calculocoef(elem,vel,q0,qf,tmotor)
function[velo2,tmaximo]=sincronizador(q0,qf,velo)
ti = tmotor(elem,1);
taprox = abs((qf(:,1)-q0(:,1)))./velo; tf = tmotor(elem,2);
tmaximo = max(taprox);
if vel(elem) ~= 0
velo2=(qf(:,1)-q0(:,1))/tmaximo;
return
desp = (qf(elem,1) - q0(elem,1));
ttot = abs(desp/vel(elem));
if ttot > (ti + tf)
caso = 1;
else
caso = 2;
end;
Cálculo de coeficientes
//caso 1//
function[caso,A,tt] =
calculocoef(elem,vel,q0,qf,tmotor)
if caso == 1
ti = tmotor(elem,1);
tt = [ ti ttot-(ti+tf) tf];
tf = tmotor(elem,2);
A = zeros(3,5);
if vel(elem) ~= 0
A(1,1) = q0(elem,1);
A(1,2) = q0(elem,2)*tt(1);
desp = (qf(elem,1) - q0(elem,1));
A(1,3) = q0(elem,3)*tt(1)^2/2;
ttot = abs(desp/vel(elem));
A(1,4) = tt(1)*vel(elem) - A(1,2) -
if ttot > (ti + tf)
4*A(1,3)/3;
caso = 1;
A(1,5) = -tt(1)*vel(elem)/2 + A(1,2)/2 +
else
A(1,3)/2;
caso = 2;
end;
//caso 2//
A(3,1) = qf(elem,1); elseif caso == 2
A(3,2) = qf(elem,2)*tt(3); t = (ti + tf)/2;
A(3,3) = qf(elem,3)*tt(3)^2/2; tt = [ t t ];
A(3,4) = tt(3)*vel(elem) - A(3,2) + A = zeros(2,5);
4*A(3,3)/3;
A(3,5) = (tt(3)*vel(elem) - A(3,2) + A(1,1) = q0(elem,1);
A(3,3))/2; A(1,2) = q0(elem,2)*tt(1);
A(1,3) = q0(elem,3)*tt(1)^2/2;
A(2,1) = qf(elem,1);
x1 = A(1,2) + A(1,3) + A(1,4) + A(1,5);
A(2,2) = qf(elem,2)*tt(2);
x3 = A(3,2) - A(3,3) + A(3,4) - A(3,5);
A(2,3) = qf(elem,3)*tt(2)^2/2;
x2 = qf(elem,1) - q0(elem,1) - ( x1 + x3);
B=[ 1 1 1 -1;
tt(2) = x2/vel(elem); 6/tt(1)^2 12/tt(1)^2 0 0;
3/tt(1) 4/tt(1) -3/tt(2) 4/tt(2);
A(2,1) = A(1,1) + A(1,2) + A(1,3) + A(1,4) + 0 0 -6/tt(2)^2 12/tt(2)^2 ];
A(1,5);
A(2,2) = vel(elem)*tt(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;
A(1,4) = x(1);
A(1,5) = x(2);
A(2,4) = x(3);
A(2,5) = x(4);
end;
else
caso = 2;
tt = [0 0 0];
A = zeros(2,5);
end;
return
Planificador
function[t, pos_plan, vel_plan, ace_plan] = ini=zeros(length(t),1);
ini=zeros(length(t),1);
planificador(q1,q2) pos_plan(:,1)=ini;
pos_plan(:,1)=ini;
vel_plan(:,1)=ini;
vel_plan(:,1)=ini;
tmotor= 0.1*ones(6,2); ace_plan(:,1)=ini;
ace_plan(:,1)=ini;
velmax = for ii == 1:6
for 1:6
[1.0472;1.0472;1.0472;1.0472;1.0472;1.0472]; [caso,A,tt] == calculocoef(i,velo2,q0,qf,tmotor);
[caso,A,tt] calculocoef(i,velo2,q0,qf,tmotor);
posi=evalpos(t,tt,caso,A);
posi=evalpos(t,tt,caso,A);
q = zeros(6,1); pos_plan(:,i)=posi';
pos_plan(:,i)=posi';
q0 = [q1 q q]; ve=evalvel(t,tt,caso,A);
ve=evalvel(t,tt,caso,A);
qf = [q2 q q]; vel_plan(:,i)=ve';
vel_plan(:,i)=ve';
ace=evalacel(t,tt,caso,A);
ace=evalacel(t,tt,caso,A);
[velo2,tmaximo]=sincronizador(q0,qf,velmax); ace_plan(:,i)=ace';
ace_plan(:,i)=ace';
end;
end;
t= 0:0.01:(tmaximo+0.15);
return
return
Mecanismos
espaciales y
robótica
GRUPO 4IM131
Prof. Deyka García
Ejemplo 5.1
6. Planificación
de Simulación
y Control
de Robots
6.1- Introducción
Una correcta simulación dinámica es necesaria como primer
paso para la obtención de herramientas capaces de ser
utilizadas para el análisis y diseño de robots. Además de
necesitar una metodología numéricamente correcta, es de
gran importancia el disponer de unas herramientas de
visualización que permitan comprobar los resultados
obtenidos, de manera que la detección de errores sea lo más
intuitiva posible. Se va ha realizar el ejemplo con el robot de 4
gdl.
6.2.-Sintonizado de los motores
𝑮
𝑷𝑰𝑫 ( 𝒔 )=𝟗𝟎+𝟏. 𝟔 𝒔
𝑷𝑰𝑫