You are on page 1of 10

Benemérita Universidad Autónoma

de Puebla

Maestrı́a en Ciencias de la Electrónica


Opción en Automatización

Control de Robots manipuladores


Profesor:
Dr. Fernando Reyes Cortés

Tarea 7: Dinámica cartesiana

Alumno:
Eduardo Pastor Torres

Puebla, Pue., 25 de febrero de 2019


1. Resumen
La cinemática y dinámica de los robots permiten estudiar el comportamien-
to que estos tendrán, cómo se mueven, qué limitaciones hay, consideraciones
a tener, entre otros. El estudio tı́picamente se hace para la cinemática directa
que nos da noción de su posicionamiento en el espacio tridimensional. Debido a
esta necesidad, en la que las personas nos identificamos para un posicionamien-
to cartesiano, es más fácil para nosotros dirigir un equipo en este sistema de
referencia, por lo que es importante que los equipos robóticos sigan esta lógica.
La dinámica cartesiana es la encargada de de generar un conjunto de ecuacio-
nes capaces de generar dicha interpretación. En este trabajo estudiaremos la
dinámica cartesiana necesaria para un robot antropomórfico de dos grados de
libertad, se desarrollará el álgebra necesaria y se simulará el sistema en Matlab
con apoyo de la herramienta ODE45.

2. Introducción
El modelo dinámico en variables de estado cartesiano define su comporta-
miento en su espacio operativo o espacio de tareas. Considérense las coordenadas
cartesianas χ = [x, y, z]T , entonces la cinemática diferencial y la aceleración ar-
ticular se encuentran relacionadas por:

χ̇ = J(q)q̇
(1)
˙
q̈ = J −1 (q)χ̈ − J −1 (q)J(q)J −1
(q)χ̇

˙
τ = M (q)J −1 (q)χ̈ + [C(q, q̇)J −1 (q) − M (q)J −1 (q)J(q)J −1
(q)]χ̇
(2)
+ g(q) + ff (q̇, f e )

El modelo dinámico no lineal cartesiano de un robot manipulador se encuen-


tra dado por [Cortés, 2019b]:

fχ = Mχ χ̈ + Cχ χ̇ + gχ + fcχ (3)
Donde:

Mχ = J−T (q)M (q)J −1 (q)


˙
Cχ = J −T C(q, q̇)J −1 (q) − Mχ J(q)J −1
(q)
(4)
gχ = J −T (q)g(q)
fefχ = J −T (q)ff (q̇, fe )

χ, χ̇, χ̈ ∈ Rn son los vectores de posición, velocidad y aceleración de las


coordenadas cartesianas.

2
Mχ ∈ Rnxn es la matriz de inercia cartesiana.
Cχ ∈ Rnxn es la matriz de fuerzas centrı́petas y de coriolis cartesiana.

Para la representación cartesiana del modelo dinámica se tiene como hipóte-


sis que la matriz Jacobiana es de rango completo [Cortés, 2019b], es decir, es
posible calcularse su matriz inversa, consecuentemente, la matriz Mχ es definida
positiva y simétrica: Mχ > 0, Mχ = MχT . Por ello se satisface que:

λmin max
Mχ I ≤ Mχ ≤ λMχ I (5)
Donde I es una matriz identidad y λmin max
Mχ I, λMχ I representan los valores
mı́nimos y máximos de la matriz de inercia.
Finalmente, se cumple que la transformación de fuerza cartesiana fχ a par
aplicado τ está dado por una de las leyes naturales de la robótica, es decir:

τ = J T (q)fχ (6)
El cual satisface el modelo dinámico cartesiano:
   
d χ χ̇
= (7)
Mχ−1 fχ − Cχ χ̇ − gχ − B χ̇
 
dt χ̇

3. Objetivos
3.1. Objetivo general
Implementar el modelo dinámico cartesiano de un robot manipulador de dos
grados de libertad en Matlab.

3.2. Objetivos especı́ficos


Implementar las operaciones de posición, velocidad y aceleración cartesia-
na a un robot de dos grados de libertad para convertir el modelo dinámico
articular a modelo dinámico cartesiano.
Simular la posición del extremo final de un robot de 2 grados de libertad
en el primer cuadrante.
Conocer la respuesta de posición y velocidad cartesiana.

4. Planteamiento del problema


1. Implementar en MATLAB el modelo dinámico cartesiano del robot mani-
pulador de 2 grados de libertad, desarrollando las correspondientes ope-
raciones matemáticas (posición, velocidad y aceleración cartesiana) que
involucran el proceso de conversión del modelo dinámico articular al mo-
delo dinámico cartesiano.

3
2. Colocar el extremo final del robot en el primer cuadrante, con coordenadas
cartesianas (x, y)T = (0.5, 0.5)T m
3. Obtener la respuestas de posición χ y velocidad χ̇.
4. Discuta ampliamente los resultados de simulación.

5. Solución
La cinemática inversa del robot antropomórfico de dos grados de libertad
tiene la forma:

x2 + y2 − l12 − l22 
q2 = cos−1
2l1 l2
(8)
−1 y2  l2 sen(q2 ) 
q1 = tan 2
− tan−1
x l1 + l2 cos(q2 )

Para fines de simulación, seguiremos implementando las especificaciones vis-


tas en trabajos previos [Cortés, 2019a], por ello, la matriz jacobiana del robot
en cuestión es dada por:
 
−l1 sen(q1 ) − l2 sen(q1 + q2 ) −l2 sen(q1 + q2 )
J(q1 , q2 ) = (9)
l1 cos(q1 ) + l2 ∗ cos(q1 + q2 ) l2 cos(q1 + q2 )
La matriz de inercia tiene la forma:
 
2.351 + 0.1676cos(q2 ) 0.102 + 0.0838cos(q2 )
M (q1 , q2 ) = (10)
0.102 + 0.0838cos(q2 ) 0.102
La Matriz de coriolis:
 
−0.1676sin(q2 )q̇2 −0.0838sin(q2 )q̇2
C= (11)
0.084sin(q2 )q̇1 0
La matriz del par gravitacional:
 
38.46sin(q1 ) + 1.82sin(q1 + q2 )
g(q) = (12)
1.82sin(q1 + q2 )
La matriz de fricción biscosa:
 
2.288 0
B= (13)
0 0.175
Los parámetros anteriores nos permiten generar un código en Matlab que,
a través de la función ODE45, podemos simular el comportamiento del robot
en un plano cartesiano. Ode comienza recibiendo las condiciones iniciales, que
para fines de simulación, se asignan valores cercanos a cero, se asigna la posición
cartesiana deseada; los eslabones del robot tienen longitud de 0.45m cada uno;

4
posteriormente las ecuaciones (8)-(13) son añadidas en formato adecuado para
matlab. La derivada temporal del jacobiano se calcula elemento a elemento para
contemplarla en el proceso. Con estos elementos es posible hacer la transforma-
ción a coordenadas cartesianas, las ecuaciones denotadas en (4) son empleadas
en el modelo. Finalmente generamos la solución numérica del modelo dinámico,
calculando el error de posición, y proponiendo la ley de control para nuestro
sistema, esta es dada por (14). La ley de control es manejada con compensación
gravitacional debido a que dicha fuerza influye en la dinámica del robot.

fχ = Kp tanh(Ks (χd − χ)) − Kv tanh(Ks1 χ̇) + gχ (14)

 
5
Kp =
16
Ks = 0.3
(15)
 
0.2
Kv =
0.2
 
0.7
Ks1 =
0.35

Ası́, procedemos a calcular numéricamente la ley de control descrita en (7).


El retorno de la función es posición y velocidad en los ejes X,Y. A través de la
función principal se hace el gráfico de posición y velocidad. La figura 1 muestra
la respuesta del modelo dinámico con el controlador implementado, toma un
poco más de 5 segundos en estabilizarse la posición deseada, el sobretiro se
genera en el eje X con un valor menor a 5 centı́metros. La figura 2 describe la
velicidad alcanzadas en cada una de las componentes, para la coordenada X se
llega a alcanzar una velocidad de casi 1 metro por segundo, posteriormente baja
con mı́nimas oscilaciones hasta llegar a cero después de 5 segundos, respecto a
la coordenada Y notamos una velocidad máxima de 0.4 metros por segundo, y
esta baja suavemente hasta estabilizarse a cero.

5
Figura 1: Gráfica de posición de actuador final de robot de dos grados de libertad
en plano [x,y]

Figura 2: Gráfica de velocidad de actuador final de robot de dos grados de


libertad en plano [x,y]

Evidentemente cuando tenemos una velocidad cercana a un metro por segun-


do, es de esperarse que exceda la posición deseada (0.5m), dada este excedente,
el el efector final debe regresar, es ahı́ cuando notamos que el mecanismo tiene

6
una velocidad negativa. Por otro lado, debido a la naturaleza del robot, se per-
cibe cómo el mecanismo se extiende y contrae a lo largo del eje X para cumplir
el objetivo de posicionamiento en Y.

Podemos considerar la existencia de un estado estacionario arriba de los 15


segundos, sin embargo, al momento de hacer un acercamiento de la gráfica de
posición (figura 3), notamos existe una reducción lenta del error, para t = 15s,
el error es de apenas 100µm, según sean las aplicaciones del robot, este puede
ser un valor favorable o no.

Figura 3: Gráfica de posición en el tiempo para valores cercanos a los 15 segundos

6. Conclusiones
Un sistema de referencia cartesiano es adecuado para reducir el error al mo-
mento de tomar decisiones con un robot manipulador. La estrategia implemen-
tada no sólo permite indicar posiciones de extremidades finales del mecanismo,
sino que además es posible conocer o simular el comportamiento que tendrá el
robot a lo largo del tiempo, no sólo posición, sino velocidad e incluso es posi-
ble calcular la aceleración. La gráfica de velocidad ha sido de importancia ya
que con esta nos damos cuenta sobre qué tan rápido cambia de posición el ro-
bot, con ello se facilita el ajuste de ganancias cuando este no ha sido analizado
analı́ticamente.

7
7. Apéndice A
Código principal:
1 clc ; clear all ; close all ;
h=.01;
3 t s =0:h : 1 5 ; %v e c t o r de tiempo

5 o p c i o n e s=o d e s e t ( ’ RelTol ’ , 1 e −06 , ’ AbsTol ’ , 1 e −06 , ’ I n i t i a l S t e p ’ , h , ’


MaxStep ’ , h ) ;
%s o l u c i o n numerica con d i n a m i c a c a r t e s i a n a d e l r o b o t de 2 g d l
7 x 0 =[0.001;0.001];
xp 0 = [ 0 ; 0];
9
c o n d i c i o n e s i n i c i a l e s =[ x 0 ; xp 0 ] ;
11 [ t , x]= ode45 ( ’ r 2 g d l c a r t ’ , t s , c o n d i c i o n e s i n i c i a l e s , o p c i o n e s ) ;
c h i 1=x ( : , 1 ) ;
13 c h i 2=x ( : , 2 ) ;
c h i p 1=x ( : , 3 ) ;
15 c h i p 2=x ( : , 4 ) ;
f i g u r e ( 1 ) , s u b p l o t ( 1 , 2 , 1 ) , p l o t ( t , c h i 1 , t , c h i 2 ) ; g r i d on ; l e g e n d ( ’ x ’ ,
’y ’ )
17 f i g u r e ( 1 ) , s u b p l o t ( 1 , 2 , 2 ) , p l o t ( t , c h i p 1 , t , c h i p 2 ) ; g r i d on ; l e g e n d ( ’ x
’ , ’y ’ )

script/main.m

Función cartesiano
1 f u n c t i o n xp=r 2 g d l c a r t ( t , x )
c h i= [ x(1) ; x(2) ] ; % v e c t o r de p o s i c i o n
3 c h i p= [ x ( 3 ) ; x ( 4 ) ] ; % v e c t o r de v e l o c i d a d
chi d = [ . 5 ; . 5 ] ;
5 %l o n g i t u d de e s l a b o n e s .
l1 =0.45; l2 =0.45;
7 %d i n mica i n v e r s a
q2=a c o s ( ( c h i ( 1 ) .ˆ2+ c h i ( 2 ) .ˆ2 − l 1 ˆ2− l 2 ˆ 2 ) / ( 2 ∗ l 1 ∗ l 2 ) ) ;
9 q1=atan ( c h i ( 2 ) / c h i ( 1 ) )−atan ( ( l 2 ∗ s i n ( q2 ) ) / ( l 1+l 2 ∗ c o s ( q2 ) ) ) ;
q=[ q1 ; q2 ] ;
11 %j a c o b i a n o
J=[− l 1 ∗ s i n ( q1 )−l 2 ∗ s i n ( q1+q2 ) , −l 2 ∗ s i n ( q1+q2 ) ;
13 l 1 ∗ c o s ( q1 )+l 2 ∗ c o s ( q1+q2 ) , l 2 ∗ c o s ( q1+q2 ) ] ;

15 qp=i n v ( J ) ∗ c h i p ; %v e l o c i d a d e s a r t i c u l a r e s .
qp1=qp ( 1 ) ;
17 qp2=qp ( 2 ) ;

19 Jp=[− l 1 ∗ c o s ( q1 ) ∗qp1−l 2 ∗ c o s ( q1+q2 ) ∗ ( qp1+qp2 ) ,− l 2 ∗ c o s ( q1+q2 ) ∗ ( qp1+qp2


) ;
−l 1 ∗ s i n ( q1 ) ∗qp1−l 2 ∗ s i n ( q1+q2 ) ∗ ( qp1+qp2 ) ,− l 2 ∗ s i n ( q1+q2 ) ∗ ( qp1+qp2
) ] ; %d e r i v a d a de l a m a t r i z j a c o b i a n o .
21 % m a t r i z de i n e r c i a
M= [ 2 . 3 5 1 + 0 . 1 6 7 6 ∗ c o s ( q2 ) , 0 . 1 0 2 + 0 . 0 8 3 8 ∗ c o s ( q2 ) ;
23 0 . 1 0 2 + 0 . 0 8 3 8 ∗ c o s ( q2 ) , 0.102 ] ;
% m a t r i z de C o r i o l i s .
25 C=[ −0.1676∗ s i n ( q ( 2 ) ) ∗qp ( 2 ) , −0.0838∗ s i n ( q ( 2 ) ) ∗qp ( 2 ) ;
0 . 0 8 4 ∗ s i n ( q ( 2 ) ) ∗qp ( 1 ) , 0 ];

8
27 % v e c t o r de p a r e s de g r a v i t a c i o n a l e s g ( q )
g q = [ 3 8 . 4 6 ∗ s i n ( q1 ) +1.82∗ s i n ( q1+q2 ) ;
29 1 . 8 2 ∗ s i n ( q1+q2 ) ] ;
% m a t r i z de f r i c c i o n v i s c o s a
31 B= [ 2 . 2 8 8 , 0;
0, 0.175];
33 % p a r e s de f r i c c i o n v i s c o s a .
t f=B∗qp ;
35 Mchi=i n v ( J ) ’ ∗M∗ i n v ( J ) ; %m a t r i z de i n e r c i a s c a r t e s i a n a .
Cchi=i n v ( J ) ’ ∗C∗ i n v ( J )−Mchi∗Jp∗ i n v ( J ) ; %m a t r i z de C o r i o l i s y f u e r z a s
centrifugas cartesiana
37 g c h i=i n v ( J ) ’ ∗ g q ; %v e c t o r de f u e r z a s g r a v i t a c i o n a l e s c a r t e s i a n o .
b c h i=i n v ( J ) ’ ∗ t f ; %v e c t o r de f u e r z a s de f r i c c i o n c a r t e s i a n o .
39
e=( c h i d −c h i ) . ∗ . 3 ;
41 k p f = [ 5 ; 1 9 ] ;
kv = [ . 0 2 ; . 0 2 ] ;
43 ed=kv . ∗ [ tanh ( . 7 ∗ qp1 ) ; tanh ( . 3 5 ∗ qp2 ) ] ;
f x=k p f . ∗ tanh ( e )−ed+g c h i ; %f u e r z a c a r t e s i a n a
45 c h i p p=i n v ( Mchi ) ∗ ( f x+−Cchi ∗ c h i p −g c h i −b c h i ) ; % v e c t o r de a c e l e r a c i o n
c a r t e s i a n o , e c u a c i o n en l a z o c e r r a d o .
xp=[ c h i p ( 1 ) ; c h i p ( 2 ) ; c h i p p ( 1 ) ; c h i p p ( 2 ) ] ; % v e c t o r de s a l i d a d e l
sistema dinamico c a r t e s i a n o .
47 end

script/r2gdl cart.m

9
Referencias
F. R. Cortés. Dinámica de robots manipuladores, parte v, 2019a. URL ftp:
//ece.buap.mx/pub/profesor/FernandoReyes/CRM.
F. R. Cortés. Dinámica de robots manipuladores, parte vi, 2019b. URL ftp:
//ece.buap.mx/pub/profesor/FernandoReyes/CRM.

10

You might also like