Está en la página 1de 48

Mecanismos

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
  

considerar que el robot tiene en su


extremo la máxima carga permitida.
• Para nuestro robot hemos considerado
que la carga máxima es de 10 Kg y que
su matriz de inercia es:

• Luego se simula el modelo en Simulink.


• Para obtener el par equivalente a una
  

fuerza se utiliza la siguiente fórmula:

Suponiendo que la eficiencia del husillo


es de 0.85, los pares pico y nominal de
las articulaciones 2 y 3 son:
- Art. 2: Par pico: 1.0716 Nm; Par
nominal: 0.5311 Nm.
- Art.3: Par pico: |-0.4371| Nm; Par
nominal: |–0.0564| Nm.
Obtención de los datos de los
motores
El par pico y nominal obtenido
para cada actuador se debe
multiplicarlo por un factor de
seguridad de 1.5 antes de
proceder a buscar los datos de
los motores en catálogos
comerciales.
Obtención de los datos de los
motores del robot de 4gdl
• Se ha considerado que los
actuadores del robot
corresponden a motores
brushless DC.
• Los valores seleccionados de
los parámetros del modelo
dinámico del motor se
muestran en la tabla.
4.3 Practica. Robot de
3GDL
Servoaccionamientos en robot de 3 gdl.
• El robot de 3 gdl corresponde al
robot Mitsubishi PA-10 tomando solo
sus tres primeras articulaciones.
• Cinemática: Los parámetros Denavit-
Hartenberg se encuentran la tabla
• Dinámica: Método de NewtonEuler
Dinámica directa: método de Walker
Orin.
• Cálculo de los pares máximos
requeridos: Para seleccionar los
motores adecuados a la
aplicación se coloca al robot en
su peor configuración y se aplica
un movimiento a las velocidades
y aceleraciones máximas
permitidas.
En este caso se ha utilizado un
reductor de 500, basándonos en
que la velocidad
máxima permitida para un
accionamiento es de π/3 rad/seg, y
suponiendo que vamos a
5. Planificación
de Trayectorias
Introducción

• 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.

• Se deben considerar tener


en consideración las
prestaciones reales de los
actuadores.
• Es necesario obtener un
planificador de trayectorias
5.2.1.Espacio cartesiano
y Espacio articular.

• Ejemplo de robot de 2 gdl


Se quiere que el robot se
mueva en línea recta desde la
posición cartesiana j1 hasta j4
5.3Tipos 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:

Se obtienen las igualdades


siguientes:
Tercer segmento de trayectoria: Frenado
 
Para aplicar las condiciones de contorno
conviene sustituiro = t -1 por t en la
ecuación (5.4), t = 0 corresponde al
Aplicando continuidad:
instante final del segmento y = -1 al
instante inicial:
Otras relaciones
El ángulo recorrido por la articulación en
cada segmento puede escribirse como:

Rescribiendo en notación matricial las


ecuaciones (5.22), (5.23), (5.31), (5.32),
(5.33), (5.34), (5.35) se obtiene: y=Cx

Resolviendo las ecuaciones anteriores


se calculan todos los coeficientes de los
tres polinomios 4-3-4 que definen la
trayectoria.
5.4.3.- Código en MatLab

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

• Para realizar la sintonización en primer lugar se debe especificar cuál


es la estructura de control a utilizar, detallando los controladores a
utilizar.
A continuación, mediante una determinada técnica de control, se
realizará el sintonizado de los motores ajustando los valores de los
controladores especificados. Para efectuar el sintonizado de los
motores haremos uso del modelo dinámico directo del robot.
6.2.1. Estructuras de
control de robots
• Control desacoplado: En el control
desacoplado se considera que las
articulaciones del robot están desacopladas,
de modo que un par en un determinado
actuador únicamente tendrá efecto sobre el
movimiento de la articulación
correspondiente.

• Control acoplado: En ocasiones, la suposición de que el


robot es una serie de eslabones dinámicamente
desacoplados, de forma que el movimiento de uno de ellos
no afecta a los demás, no es siempre aceptable.
6.2.2. Técnicas de sintonizado.

• El sintonizado de un robot consiste en ajustar cada uno de los


controladores para que el robot satisfaga un comportamiento
especificado. Para ello, en un esquema de control desacoplado,
se deberá sintonizar de manera independiente cada articulación
del robot. 
• Método manual (prueba y error)
1- En primer lugar se aumenta la constante proporcional P hasta obtener el
tiempo de cruce deseado.
2- A continuación se procede a aumentar la constante derivativa D para
disminuir la sobre oscilación.
3- Por último se aumenta la constante integral I para eliminar el error que
exista en régimen permanente.
• Método de Ziegler-Nichols
El método de Ziegler-Nichols proporciona los valores del regulador que
aseguran una respuesta aceptable. Los valores que proporciona este
método se muestran en la tabla 6.1.
Ejemplo 6.1
• Sintonizado del robot de cuatro grados de libertad.
• Vamos a suponer que el esquema de control de este robot es
desacoplado, por lo que cada articulación dispondrá de un regulador PID y
durante el proceso de sintonizado de una articulación concreta, los
actuadores del resto de articulaciones permanecerán apagados.
• Para efectuar el sintonizado del robot hay que situarlo en la peor posición,
introducir a la articulación que se desea ajustar un escalón y comprobar
que la respuesta de la articulación cumple las especificaciones deseadas.
• La peor posición en la que se puede encontrar el robot viene dada por: q
= (0 1 1.2 0)
Motor 1
Para obtener la aceleración de
cada articulación

Para realizar el sintonizado


del motor 1
• En la función dindir4gdl.m el par proporcionado por los motores
2 y 3 se convierte a fuerza, ya que las articulaciones 2 y 3 son
prismáticas, utilizando la siguiente ecuación:    2𝜋 𝑛𝜏
𝐹=
𝑝

Las entradas al esquema de control son:


• El escalón de posición que se aplica a la primera articulación.
• Los pares del resto de motores.
• La posición del resto de articulaciones en su peor configuración.
• La velocidad de las restantes articulaciones.
• El bloque PID
   𝑰
𝑮𝑷𝑰𝑫
𝑷𝑰𝑫 ( 𝒔 ) =𝑷+ + 𝑫𝒔
𝒔
• En el bloque correspondiente al motor de la articulación 1
se deben colocar los datos de los parámetros del motor.
Estos datos se muestran en la tabla 6.2.

• Antes de realizar la simulación del


modelo para determinar si la
respuesta del sistema es la
adecuada, es necesario configurar
los parámetros de la simulación con
los valores que se muestran en la
figura 6.3.
• En el caso de esta articulación, no ha sido posible realizar el sintonizado
que cumpla las especificaciones establecidas. Esto se debe a que el motor
elegido responde más lento de lo esperado. Para solucionar este problema
se va a seleccionar un motor que proporciona un par mayor. Las
características de este motor se muestran en la tabla 6.3

 𝑮
 
𝑷𝑰𝑫 ( 𝒔 )=𝟗𝟎+𝟏. 𝟔 𝒔
𝑷𝑰𝑫

• Un posible regulador que proporciona que la respuesta de la primera


articulación se ajuste a las especificaciones establecidas es el siguiente:
• En la figura 6.4 se muestra como varía la posición de la articulación 1
ante el escalón introducido. Como se puede apreciar en la gráfica, con
el regulador escogido se satisfacen los requerimientos impuestos.
Motor 2
Este modelo contiene el esquema de control en bucle cerrado de la segunda articulación
que permite ajustar su regulador PID para que la respuesta satisfaga las especificaciones.

Las entradas al esquema de control son:


•El escalón de posición que se aplica a la segunda articulación.
•Los pares del resto de motores.
•La posición del resto de articulaciones en su peor configuración.
•La velocidad de las restantes articulaciones.

En el bloque correspondiente al motor de la articulación 2 se deben colocar los datos de


los parámetros del motor.
•En  el bloque Integrador Aceleración
especificamos que la condición inicial
es cero, ya que la velocidad inicial de
esta articulación es de 0 m/s. En el
bloque Integrador Velocidad se indica
que la condición inicial es 1, puesto
que la posición inicial de la articulación
es 1 m.

Un posible regulador que proporciona


que la respuesta de la segunda
articulación se ajuste a las Posición de
Posición de la
la articulación
articulación 22 ante
ante entrada
entrada en
en escalón
escalón
especificaciones establecidas es el
siguiente:
Motor 3
Este modelo contiene el esquema de control en bucle cerrado de la tercera
articulación que permite ajustar su regulador PID para que la respuesta
satisfaga las especificaciones.
Las entradas al esquema de control son:
• El escalón de posición que se aplica a la tercera articulación.
• Los pares del resto de motores.
• La posición del resto de articulaciones en su peor configuración.
• La velocidad de las restantes articulaciones.

En el bloque correspondiente al motor de la articulación 3 se deben colocar


los datos de los parámetros del motor.
•En  el bloque Integrador Aceleración
especificamos que la condición inicial
es cero, ya que la velocidad inicial de
esta articulación es de 0 m/s. En el
bloque Integrador Velocidad se indica
que la condición inicial es 1.2, puesto
que la posición inicial de la articulación
es 1.2 m.

Un posible regulador que proporciona


que la respuesta de la tercera
articulación se ajuste a las Posición de
Posición de la
la articulación
articulación 33 ante
ante entrada
entrada en
en escalón.
escalón.
especificaciones establecidas es el
siguiente:
Motor 4
Las entradas al esquema de control son:
• El escalón de posición que se aplica a la cuarta articulación. El valor de la
posición de esta articulación en la peor configuración del robot es 0 rad.
Consideraremos que el escalón es de 0 rad a 0.08 rad.
• Los pares del resto de motores. Al igual que en los casos anteriores, los
pares del resto de motores son nulos.
• La posición del resto de articulaciones en su peor configuración.
• La velocidad de las restantes articulaciones.
• En el bloque correspondiente al motor de la articulación 4 corresponden
a los datos en la práctica 4 para esa articulación.
En los bloques Ordena Pares, Ordena
Posiciones y Ordena Velocidades se indica
el orden del vector de pares, posiciones y
velocidades del robot: [2 3 4 1].
Un posible regulador que proporciona que
la respuesta de la cuarta articulación se
ajuste a las especificaciones establecidas
es el siguiente:
GPID(s) =100
En la simulación del modelo se obtiene la
gráfica que muestra como varía la posición
de la articulación 4 ante el escalón
introducido.

También podría gustarte