You are on page 1of 29

Mecánica de Maquinaria II

Proyecto #2

“Análisis
Análisis Dinámico de un Brazo
Robótico Plano de 2 GDL”

Agosto 08/2010
Introducción
• Un brazo robótico es un manipulador multifuncional
reprogramable diseñado para mover materiales,
componentes,
t h
herramientas,
i t o di
dispositivos
iti
especializados, a través de movimientos programados
variables p
para desempeñar
p diferentes tareas.
• Los manipuladores robóticos están compuestos por
eslabones unidos por juntas rotacionales (R) o
prismáticas (P) para formar una cadena cinemática en
2D o 3D.
• Las pprincipales
p aplicaciones
p industriales de los robots
son en operaciones de ensamblaje de componentes y
otras operaciones tales como soldadura de partes,
pintura con soplete,
soplete manipulación de materiales,
materiales carga y
descarga de máquinas.
Ing. Eduardo Orcés P. 2010-I
• Una aplicación típica de un manipulador industrial se
muestra en la figura a continuación. El manipulador se
muestra con una herramienta de corte que debe usar
para remover cierta cantidad de metal de una superficie.
superficie

Ing. Eduardo Orcés P. 2010-I


• Supongamos que deseamos mover el manipulador
desde su posición de reposo ((‘home’)
home ) a una posición A,A
a partir de la cual el robot debe seguir el contorno de la
superficie S hasta el punto B, a una velocidad constante,
mientras
i t mantiene
ti un fuerza
f prescrita
it F normall a lal
superficie. Al hacer ésto, el robot cortará o pulirá la
superficie
p de acuerdo a cierta especificación
p dada.

Ing. Eduardo Orcés P. 2010-I


• El primer problema que se encuentra es poder describir
la posición de la herramienta y las posiciones A y B (y tal
vez, también la superficie S) con respecto a un sistema
de coordenadas común (absoluto o relativo). Este es el
problema
bl cinemático
i áti di t
directo. Tí i
Típicamente,
t ell
manipulador puede medir su posición usando sensores
internos ((‘encoders’)) localizados en las jjuntas 1 y 2, los
cuales miden directamente los ángulos θ1 y θ2 . Es
necesario expresar entonces las coordenadas de los
puntos A y B en términos de estos ángulos.
ángulos

Ing. Eduardo Orcés P. 2010-I


• Para hacer que el robot vaya al punto B, necesitamos la
relación inversa,
inversa es decir , los ángulos θ1 y θ2 en
términos de las coordenadas x-y de B. Este es el
problema de cinemática inversa. Puesto que el problema
es no-lineal,
li l la
l solución
l ió no es fácil
fá il de
d hallar
h ll y no hay
h
una solución única general. Puede no haber solución si
el ppunto B se encuentra fuera del alcance del
manipulador, o puede haber varias soluciones (‘ramas’)
como en el caso mostrado en la figura .

Ing. Eduardo Orcés P. 2010-I


• Finalmente, si deseamos que recorra un contorno a
velocidad constante,
constante debemos hallar la relación entre la
velocidad de la herramienta y las velocidades angulares
de las juntas. Esta relación de la halla derivando las
ecuaciones
i anteriores.
t i

• La matriz J se llama la matriz Jacobiana, y su inversa


permite determinar la velocidad de la herramienta en
función de las velocidades angulares de las juntas.

• Notar que hay configuraciones singulares (θ2 = 0, π) que


h que evitar.
hay it

Ing. Eduardo Orcés P. 2010-I


El Problema:
• Usted debe simular en la computadora el
comportamiento dinámico de un manipulador plano de 2
GDL Para
GDL. P h
hacer esto,
t deberá
d b á crear un modelo d l en
Simulink siguiendo las indicaciones que se dan en las
diapositivas
p a continuación.
• Una vez creado el modelo dinámico, deberá hacer una
corrida de prueba sin torques aplicados a las dos juntas
del mecanismo y en la que el robot cae desde una
posición inicial bajo la acción de la gravedad.
p
• Para comprobar la p
precisión de la simulación deberá
hacer una prueba de consistencia entre los resultados
obtenidos para la posición de la herramienta a partir de
los integradores y los obtenidos por el cálculo directo.
directo

Ing. Eduardo Orcés P. 2010-I


• Finalmente, deberá añadir dos motores en las juntas
para que estos generen los torques necesarios para
llevar la herramienta desde la posición de reposo
(‘home’) en las coordenadas x = -0.8, y = 1, hasta el
punto A situado en x = 1, y = 0.8. Asuma que el torque
de cada motor es la suma de una señal que es
proporcional a la diferencia entre el valor deseado y el
valor real de los ángulos de las juntas, y otra que es
proporcional a la derivada de esta diferencia. Las
constantes de proporcionalidad (conocidas como
‘ganancias’), influyen mucho en el comportamiento del
sistema y deben ser afinadas para obtener el
desempeño adecuado. Obtenga las ganancias para que
el robot vaya desde la posición de reposo al punto A sin
mayores oscilaciones.

Ing. Eduardo Orcés P. 2010-I


Simulación dinámica de un Brazo Robótico
Pl
Plano de
d 2 GDL

• Simularemos un mecanismo de cadena abierta con dos


eslabones articulados. El mecanismo tendrá dos
motores que generarán los torques de entrada.

Ing. Eduardo Orcés P. 2010-I


• Ecuaciones Vectoriales: La ecuación vectorial para el
robot de dos eslabones es:

R carga = R 1 + R 2 ((1))
• Tomando componentes xy, y luego derivando con
respecto al tiempo,
tiempo se obtiene:

xcarga = r1 cos θ1 + r2 cos(θ1 + θ 2 ) (2)


ycarga = r1senθ1 + r2sen (θ1 + θ 2 ) (3)
x&carga = −r1ω1senθ1 − r2 (ω1 + ω2 )sen(
) (θ1 + θ 2 ) (4)
y& carga = r1ω1cosθ1 + r2 (ω1 + ω2 )cos(θ1 + θ 2 ) (5)

Ing. Eduardo Orcés P. 2010-I


• Las últimas dos ecuaciones pueden ser expresadas en
forma matricial:

⎧⎪ x&carga ⎫⎪ ⎡− r1S1 − r2 S12 − r2 S12 ⎤ ⎧ω1 ⎫


⎨ ⎬=⎢ ⎥ ⎨ω ⎬ (6)
⎪⎩ y& carga ⎪⎭ ⎣ r1C1 + r2C12 r2C12 ⎦⎩ 2 ⎭
• Las derivadas de estas ecuaciones dan las siguientes
ecuaciones para la aceleraciones:
[
&x&carga + (r1S1 + r2 S12 )α1 + r2 S12α 2 = − (r1C1 + r2C12 )ω1 + r2C12ω2 + 2r2ω1ω2C12
2 2
] (7)
&y&carga − (r1C1 + r2C12 )α1 − r2C12α 2 = −[(r S
1 1 + r2 S12 )ω12 + r2 S12ω22 + 2r2ω1ω2 S12 ] (8)

• También es necesario encontrar la relación entre las


aceleraciones de los CG y las velocidades y
aceleraciones angulares.
Ing. Eduardo Orcés P. 2010-I
• Estas relaciones se las obtiene a continuación:

Ac1, x + rc1S1α1 = −rc1C1ω12 (9)


Ac1, y − rc1C1α1 = −rc1S1ω12 (10)
A c2,x + (r1S1 + rc 2 S12 )α1 + rc 2 S12α 2 = −[(r1C1 + rc 2C12 )ω12 + rc 2C12ω22 + 2rc 2ω1ω2C12 ] (11)
A c2, y − (r1C1 + rc 2C12 )α1 − rc 2C12α 2 = −[(r1S1 + rc 2 S12 )ω12 + rc 2 S12ω22 + 2rc 2ω1ω2 S12 ] (12)

• Ecuaciones Dinámicas:
Escribimos las ecuaciones del movimiento de
Newton a partir de los DCL de los dos
eslabones del mecanismo.

Ing. Eduardo Orcés P. 2010-I


• Eslabón 1:

F01x + F21x = M 1 Ac1, x (13)


F01 y + F21 y − M 1 g = M 1 Ac1, y (14)
τ 1 − τ 2 − F21x r1S1 + F21 y r1C1 − M 1 grc1C1 = I1α1 (15)

Ing. Eduardo Orcés P. 2010-I


• Eslabón 2:

Ing. Eduardo Orcés P. 2010-I


• Carga: La carga la modelamos separada del
eslabón 2, porque su masa puede variar y
podemos estar interesados en las fuerzas
p
requeridas para su manipulación.

M carga &x&carga = − F32 x ( )


(19)
M carga &y&carga = − F32 y − M carga g ((20)
0)

Ing. Eduardo Orcés P. 2010-I


• En resúmen,
resúmen tenemos 6 ecuaciones a partir de
las ecuaciones vectoriales de constricción, y 8
ecuaciones dinámicas.
dinámicas Si los torques se
consideran entradas al sistema, entonces
tenemos las siguientes 14 incógnitas:

α1 α 2 Ac1x Ac1 y Ac 2 x Ac 2 y Ac arg ax Ac arg ay


F01x F01 y F21x F21 y F32 x F32 y

Ing. Eduardo Orcés P. 2010-I


• La Matriz de Constricciones Simultáneas:
El paso final es combinar las 6 ecuaciones de
constricción cinemática con las 8 ecuaciones
dinámicas dando por resultado un sistema de 14
ecuaciones lineales en las 14 incógnitas. Se
ensamblan luego en forma matricial,
matricial para
entonces incluirlas en la simulación de Simulink.
Las entradas al sistema y las velocidades
angulares de los eslabones van en el miembro
de la derecha. El sistema de ecuaciones se
muestra a continuación:

Ing. Eduardo Orcés P. 2010-I


(21)
Ing. Eduardo Orcés P. 2010-I
⎧− [(r C + r C
1 1 2 12 )ω 1
2
+ r 2 12 2 + 2r2ω1ω 2 C12 ]
C ω 2

⎪ ⎪
⎪− [(r S + r S
1 1 2 12 )ω 2
1 + r2 12 2 + 2r2 ω1ω 2 S12 ]
S ω 2

⎪ − rc1C1ω12 ⎪
⎪ ⎪
⎪ − rc1 S1ω12 ⎪
⎪ ⎪
⎪− [
(r1C1 + rc 2 C12 )ω1 + rc 2 C12ω 2 + 2rc 2ω1ω 2 C12 ⎪
2 2
]

⎪− [ ]
(r1 S1 + rc 2 S12 )ω12 + rc 2 S12ω 22 + 2rc 2ω1ω 2 S12 ⎪⎪
⎪ 0 ⎪
=⎨ ⎬
⎪ M1g ⎪
⎪ ⎪
⎪ τ 1 − τ 2 − M 1 grc1C1 ⎪
⎪ 0 ⎪
⎪ ⎪
⎪ M2g ⎪
⎪ τ2 ⎪
⎪ ⎪
⎪ 0 ⎪
⎪ − M c arg a g ⎪
⎩ ⎭ (21)
Ing. Eduardo Orcés P. 2010-I
• La función ‘fuerzasmanipulador2D.m’ implementa
las ecuaciones (21), y es llamada por el modelo
de Simulink, ‘manipulador2D.mdl’. A continuación
se muestra en forma esquemática una
implementación parcial de este modelo y la
función Notar que hay dos torques de entrada,
función. entrada
producidos por dos posibles motores actuando en
las articulaciones. También se ha añadido unos
pares de fricción viscosa para simular la fricción
existente en los cojinetes y motores.

Ing. Eduardo Orcés P. 2010-I


manipulador2D.mdl

1 1
s s
omega1

2 2
friccion1 friccion2 1 1
s s
MATLAB
Function
fuerzasmanipulador2D.m

0
Add
torque1
0
Add1
torque2
1 1
s s

XY Graph
1 1
s s

Ing. Eduardo Orcés P. 2010-I


fuerzasmanipulador2D.m
function [out] = fuerzasmanipulador2D(u)
% Función para implementar la simulación dinámica completa
% de un manipulador
p robótico p
plano con dos g
grados de libertad,
,
% formado por dos eslabones articulados.
% Usada con el modelo de Simulink MANIPULADOR2D.MDL
% Entradas:
% u(1) = omega1
% u(2) = theta1
% u(3) = omega2
% u(4) = theta2
% u(5) = torque1
% u(6) = torque2
% Definir algunas
g variables locales
g = 9.8067;
r1 = 1.0; rc1 = 0.5;
r2 = 0.8; rc2 = 0.1; % m
% Definir propiedades inerciales
m1 = 2.5; m2 = 1.8; I1 = 0.15; I2 = 0.05; mcarga = 2.0;
Ing. Eduardo Orcés P. 2010-I
fuerzasmanipulador2D.m (Cont.)
S1 = sin(u(2)); S12 = sin(u(2)+u(4));
C1 = cos(u(2)); C12 = cos(u(2)+u(4));
% Matriz de coeficientes
a = zeros(14,14);
(14 14) b = zeros(14,1);
(14 1)
a(1,1) = r1*S1+r2*S12; a(1,2) = r2*S12; a(1,7) = 1;
a(2,1) = -r1*C1-r2*C12; a(2,2) = -r2*C12; a(2,8) = 1;
a(3,1) = rc1*S1; a(3,3) = 1;
a(4,1) = -rc1*C1; a(4,4) = 1;
a(5,1) = r1*S1+rc2*S12; a(5,2) = rc2*S12; a(5,5) = 1;
a(6,1) = -r1*C1-rc2*C12; a(6,2) = -rc2*C12; a(6,6) = 1;
a(7,3) = -m1; a(7,9) = 1; a(7,11) = 1;
a(8,4) = -m1; a(8,10) = 1; a(8,12) = 1;
a(9,1) = I1; a(9,11) = r1*S1; a(9,12) = -r1*C1;
a(10,5) = -m2; a(10,11) = -1; a(10,13) = 1;
a(11,6) = -m2; a(11,12) = -1; a(11,14) = 1;
a(12,2) = I2; a(12,11) = rc2*S12; a(12,12) = -rc2*C12; a(12,13) = (r2-rc2)*S12;
a(12,14) = -(r2-rc2)*C12;
a(13,7) = mcarga; a(13,13) = 1;
a(14,8) = mcarga; a(14,14) = 1;
%

Ing. Eduardo Orcés P. 2010-I


fuerzasmanipulador2D.m (Cont.)
% Vector de entradas
b(1) = -((r1*C1+r2*C12)*u(1)^2+r2*C12*u(3)^2+2*r2*u(1)*u(3)*C12);
b(2)
( ) = -((r1*S1+r2*S12)*u(1)^2+r2*S12*u(3)^2+2*r2*u(1)*u(3)*S12);
(( ) ( ) ( ) ( ) ( ) );
b(3) = -rc1*C1*u(1)^2;
b(4) = -rc1*S1*u(1)^2;
b(5) = -
((r1*C1+rc2*C12)*u(1)^2+rc2*C12*u(3)^2+2*rc2*u(1)*u(3)*C12);
b(6) = -
((r1*S1+rc2*S12)*u(1)^2+rc2*S12*u(3)^2+2*rc2*u(1)*u(3)*S12);
b(7)
( ) = 0;
; b(8)
( ) = m1*g;
g;
b(9) = u(5)-u(6)-m1*g*rc1*C1;
b(10) = 0; b(11) = m2*g;
b(12) = u(6); b(13) = 0;
b(14) = -mcarga*g;
%
% Resolución de las ecuaciones
%
[out] = inv(a)*b;

Ing. Eduardo Orcés P. 2010-I


• Corrida de Prueba: Si no hay torques de entrada
all sistema,
i t entonces,
t sii ell robot
b t empieza
i d d
desde
cualquier posición inicial, debería caer bajo su
propio peso en un plano vertical y estabilizarse en
la posición de equilibrio inferior, con ambos
eslabones extendidos hacia abajo. j Para
comprobar ésto, utilice las condiciones iniciales
θ1 = 0 y θ2 = π/2 radianes. Grafique la trayectoria
seguida
id por la
l carga en esta t situación.
it ió Estime
E ti ell
tiempo que tarda en estabilizarse.
• Añada
Añ d all programa de d Simulink
Si li k una prueba b ded
consistencia para asegurar que el error numérico
no crece demasiado.
demasiado Esta prueba debe hacer lo
siguiente:
Ing. Eduardo Orcés P. 2010-I
La simulación calcula información redundante
que debería
d b í permanecer consistente i t t sii todo
t d
funciona bien. En particular, las coordenadas x-y
de la carga obtenidas por los integradores
debería ser igual a las coordenadas x-y
calculadas usando valores de θ1 y θ2 en las
ecuaciones (2) y (3). Obtenga los valores de las
salidas de los cuatro integradores combínelas en
un bloque
bl M y escriba
Mux ib una función
f ió que calcule
l l
el error. Grafique el error durante 10 segundos de
tiempo de simulación de la caída libre del brazo
robótico. Si el error permanece pequeño, eso da
confianza en los resultados de la simulación.

Ing. Eduardo Orcés P. 2010-I


• Control de Posición de la Herramienta:
Modifique el modelo manipulador2D.mdl de
Simulink para incluir los dos motores en las juntas
del robot.
robot Estos motores deberán generar torques
que puedan llevar la herramienta desde la posición
de reposo
p ((x = -0.8, y = 1)) hasta el p
punto A ((x = 1, y
= 0.8) de una manera tal que no se produzcan
muchas oscilaciones. Asuma que los torques son la
suma ded una señal ñ l que es proporcional
i l all error
entre el valor deseado y el valor real de los ángulos
de las juntas,
juntas y otra señal que es proporcional a la
derivada de este error. Las constantes de
proporcionalidad (‘ganancias’) deben ser escogidas
apropiadamente.
Ing. Eduardo Orcés P. 2010-I
• Control de Velocidad de la Herramienta:
Explique como se podría modificar la simulación
si se desea controlar la velocidad con que se
desplaza la herramienta.
herramienta

• IInforme:
f
Elabore un Informe escrito en Word, con una
extensión no mayor a cinco (5) páginas,
páginas impreso
en papel y en formato digital (CD). Incluya los
archivos ejecutables de Simulink/Matlab en
formato digital.

Ing. Eduardo Orcés P. 2010-I

You might also like