Está en la página 1de 34

1

Diseño de Sistemas Mecatrónicos


Miguel Bernal

I. E VALUACI ÓN Y CONTENIDO DEL CURSO


El contenido consta de cuatro unidades basadas en el libro [1] de acuerdo a las especificaciones
siguientes:
1) Unidad 1: Relaciones estáticas en manipuladores robóticos (sistema Denavit-Hartenberg). Se en-
cuentra en el Apéndice A del libro. Incluye:
a Cinemática directa: relación de las coordenadas de base con las coordenadas finales en variables
de junta.
b Cinemática inversa: relación de las variables de junta con las coordenadas de base.
c Jacobianos: relaciones diferenciales entre variables de junta.
2) Unidad 2: Relaciones dinámicas en manipuladores robóticos (ecuaciones de Euler-Lagrange). Se
encuentra en el Capı́tulo 3 del libro. Incluye:
a Energı́a cinética, energı́a potencial y lagrangiano para juntas rotacionales y traslacionales.
b Ecuaciones Euler-Lagrange.
c Simulación de sistemas (en Simulink).
d Otras formulaciones (ecuaciones de estado, Hamiltoniano, etcétera).
3) Unidad 3: Control de manipuladores robóticos por torque calculado. Se encuentra en las secciones
4.3 y 4.4 del libro. Incluye:
a Realimentación lineal de estado y asignación de polos (fórmula de Ackermann).
b Transformaciones de las ecuaciones de estado para seguimiento de trayectoria.
c Torque calculado lineal.
4) Unidad 4: Diseño de trayectorias para manipuladores robóticos. Se encuentra en las secciones 4.1
y 4.2 del libro. Incluye:
a Trayectorias por interpolación polinomial.
b Trayectorias lineales con dobleces parabólicos.
c Trayectorias de tiempo mı́nimo.
d Simulación de sistemas robóticos controlados para seguimiento de trayectoria.
La evaluación de cada unidad consiste en 50% de exámenes y 50% de tareas; cada unidad cuenta el
25% del curso. En algunas ocasiones se pueden proporcionas puntos extras por trabajos adicionales.
Las tareas se hacen a mano o con herramientas computacionales y se fotografı́an o escanean para
subirse en una liga de Google Drive. NO MANDEN ARCHIVOS AL CORREO, SÓLO LIGAS DE
GOOGLE DRIVE ASEGURÁNDOSE DE QUE LOS ARCHIVOS SON DE LIBRE ACCESO.

II. U NIDAD 1: G ENERALIDADES


Los manipuladores robóticos tienen dos tipos de juntas de acuerdo a su funcionamiento:
• Juntas traslacionales o prismáticas: Avanzan en la dirección perpendicular al plano del brazo (eje
z). Se denotan como P .
• Juntas rotacionales o de revolución: Gira en torno al eje vertical del brazo (eje z). Se denotan como
R.
Example 1. El manipulador robótico de la figura 1 es un manipulador RRR porque consta de 3 juntas
rotacionales señaladas por los ángulos θ1 , θ2 y θ3 .
Esta clasificación no permite conocer todos los detalles acerca de la construcción del manipulador
robótico (compare, por ejemplo, los manipuladores RRP que aparecen en los incisos (b) y (c) de la
Figura A.1.1 de [1]).
2

Fig. 1. Manipulador robótico RRR.

Example 2. Tomando en cuenta los datos de la figura 2, determine los valores de x1 y y1 que se
corresponden a las coordenadas del punto marcado con × en los nuevos ejes (rotados por un ángulo θ).
Recuerde que:
• Los ángulos opuestos a lı́neas cruzadas son iguales.

• Las suma de los ángulos internos de un triángulo suman 180 . Corolario: la suma de los ángulos
agudos de un triángulo rectángulo (escuadra) suma 90◦ .
• Teorema de Pitágoras: La suma de los cuadrados de los catetos es igual al cuadrado de la hipotenusa:
x20 + y02 = 2.
• Identidades trigonométricas: Si h es hipotenusa y θ el ángulo entre la hipotenusa y uno de los catetos
c1 , entonces: c1 = h cos θ y c2 = h sin θ, donde c2 es el cateto restante.
Note que de los triángulos destacados con lı́nea doble se obtiene:
x0 = x1 cos θ − y1 sin θ
y0 = x1 sin θ + y1 cos θ,

x = 0, y = t
2

1.5

(x 0 ,y0 )=(1,1)
1

x1 θ y1

y0 =1 α
0.5
y

α
α=90°-θ
θ
0
x0 =1

-0.5

-1
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5 3
x

Fig. 2. Relación entre dos sistemas coordenados en el plano.


3

Cambio de coordenadas en brazo robótico coplanar RR


2

Eje nuevo y1

1.5

Eje viejo y 0 (x0 ,y0 )=(1+a1 cos(θ),1+a 1 sin(theta)


1
Eje nuevo x1
x1 θ y1

α
0.5
y

α
α=90°-θ
θ
0

a 1 sin(θ) a1
Brazo robótico 1-ésimo de longitud a1
y0 se mide desde aquí θ
-0.5
a 1 cos(θ) Eje viejo x 0

x0 se mide desde aquí


-1
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5 3
x

Fig. 3. Relación entre dos sistemas coordenados para brazo robótico RR.

y desepejando x1 y y1 :
x1 = x0 cos θ + y0 sin θ,
y1 = y0 cos θ − x0 sin θ.
Si θ = 30◦ entonces usando las fórmulas para x0 = y0 = 1 resulta en:
x1 = 1.3660, y1 = 0.3660
donde y1 es la hipotenusa del triángulo pequeño.
La relación matricial entre coordenadas se verı́a entonces como:
    
x0 cos θ − sin θ x1
= .
y0 sin θ cos θ y1
En los brazos robóticos debe tomarse en cuenta la longitud del brazo. Los ejes coordenados del brazo
i-ésimo están ubicados al final del brazo. Por este motivo, el esquema completo del cambio coordenado
del ejemplo anterior se verı́a como en la Figura 3 cuyas ecuaciones serı́an:
x0 = x1 cos θ − y1 sin θ + a0 cos θ
y0 = x1 sin θ + y1 cos θ + a0 sin θ,
lo que matricialmente se ve como:
    
x0 cos θ − sin θ a0 cos θ x1
 y0  =  sin θ cos θ a0 sin θ   y1  .
1 0 0 1 1
Realizando el mismo razonamiento en 3 dimensiones asumiendo que:
1) el eje x gira θ grados y no se levanta del plano x − y,
2) el eje y se levanta α grados obligando al eje z a separarse α grados de la vertical,
tenemos una situación como la de la figura 4.
4

X tiene coordenadas originales (xi-1 ,yi-1 ,zi-1 ) y


0.8
coordenadas nuevas (x i,yi,zi): ¿cuál es su relación?
0.6
X

z
yi
0.4 zi-1

0.2
zi
α
0 yi-1
α α
-0.5
θ ai
0 xi
xi-1
0.5 1
0.8
1 0.6
0.4
x
0.2
1.5 y
0

Fig. 4. Relaciones de coordenadas Denavit-Hartenberg en 3 dimensiones.

Proyección sobre el plano XY


1

0.9
-yicos(α)sin(θ)

0.8
yicos(α)cos(θ)
xi
0.7
yicos(α)
θ xisin(θ)
0.6
θ
0.5 xicos(θ)
θ
0.4

-zisin(α)cos(θ) zisin(α)
0.3

0.2 zisin(α)sin(θ)
0.1

0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

Fig. 5. Proyección del sistema coordenado de 3 dimensiones en el plano xy.

Basándonos en esa figura y auxiliándonos de las proyecciones en el plano xy y en z (figuras 5 y 6,


respectivamente), tenemos que las proyecciones de xi , yi y zi sobre xi−1 , yi−1 y zi−1 son:
xi se proyecta en xi−1 como xi cos θ, xi se proyecta en yi−1 como xi sin θ,
yi se proyecta en xi−1 como − yi cos(α) sin(θ), yi se proyecta en yi−1 como yi cos(α) cos(θ)
yi se proyecta en zi−1 como yi sin(α)
zi se proyecta en xi−1 como zi sin(α) sin(θ), zi se proyecta en yi−1 como − zi sin(α) cos(θ)
zi se proyecta en zi−1 como zi cos(α)
5

Proyección sobre el plano vertical perpendicular al eje x i

0.9

yi zi
α
0.85

0.8
zicos(α)
yisin(α)
0.75

α
0.7

0.1 0.15 0.2 0.25 0.3

Fig. 6. Proyección del sistema coordenado de 3 dimensiones en z.

Por lo tanto, las ecuaciones que relacionan xi−1 , yi−1 y zi−1 con las coordenadas xi , yi y zi son:
xi−1 =xi cos θ − yi cos(α) sin(θ) + zi sin(α) sin(θ)
yi−1 =xi sin θ + yi cos(α) cos(θ) − zi sin(α) cos(θ)
zi−1 =yi sin(α) + zi cos(α),
que pueden acomodarse matricialmente como:
    
xi−1 cos θ − cos(α) sin(θ) sin(α) sin(θ) xi
 yi−1  =  sin θ cos(α) cos(θ) − sin(α) cos(θ)  yi  .
zi−1 0 sin(α) cos(α) zi
Adicionalmente, si se toma en cuenta la longitud del brazo i-ésimo, se renombran los ángulos como
θi y αi y se agrega la longitud de una posible junta prismática denotada por di (y que por convención
avanza en z) tenemos que la representación matricial “crece” como ocurrió en 2 dimensiones:
    
xi−1 cos θi − cos αi sin θi sin αi sin θi ai cos θi xi
 yi−1   sin θi cos αi cos θi − sin αi cos θi ai sin θi   yi 
 zi−1  =  0
    , (1)
sin αi cos αi di   zi 
1 0 0 0 1 1
| {z }
Ai

donde Ai se denomina matriz de transformación de las coordenadas (i) en coordenadas (i − 1). Como
hay dos tipos de juntas que son rotacionales y de traslación, note que esta matriz incluye más de una:
efectivamente, incluye 3 juntas en una: 2 rotacionales denotadas por θi y αi y 1 traslacional denotada
por di .

III. U NIDAD 1: C INEM ÁTICA DIRECTA


Normalmente, cuando se analiza un brazo robótico, la relación de las coordenadas de base con las
coordenadas del efector final (último eslabón) se descompone en matrices que sólo incluyen una variable
de junta a la vez, es decir, que las matrices que representan la acción de una junta son siempre casos
6

particulares de la matriz de arriba (1). El producto de las n transformaciones individuales por junta de
un brazo robótico se denomina matriz de cinemática directa:
T = A1 A2 · · · An , (2)
donde cada Ai es un caso particular de (1).
Las coordenadas de junta de un sistema robótico de n eslabones se agrupan en un vector como:
q1
 
 q2 
q=  ...  ,

qn
que asume que por cada junta hay un eslabón (que puede girar en caso de que la junta sea rotacional
o ampliarse/contraerse en caso de que sea prismática). Ası́ pues, cada qi representa un ángulo θi o αi o
bien una traslación di . Por ejemplo, para el sistema de la figura 1 el vector de junta es:
 
θ1
q = θ2 
θ3
.
Propiedades de la matriz T:
La matriz T puede descomponerse como:
 
n o a p
T = ,
0 0 0 1
donde n, o, a y p son vectores de 3 × 1 que se denominan normal, orientación, acercamiento y posición.
Se puede demostrar que n, o y a son perpendiculares entre sı́ con la relación n = o × a.
Se denomina matriz de rotación a  
R= n o a
y tiene la propiedad de ser ortogonal, es decir, RT = R−1 .
Las coordenadas cartesianas de base se denotan como 0 r. De manera similar, las coordenadas “sigu-
ientes” se denotan como 1 r. Las coordenadas finales en un brazo robótico de n eslabones se denotan
 T
como n r. Naturalmente cada una de estas coordenadas consta de 3 elementos i r = xi yi zi .
Example 3. Considere el sistema robótico de la figura 7 que tiene por vector de junta
 
θ
q = h .

r
Determinemos su matriz de cinemática directa que relaciona las coordenadas cartesianas de base con las
coordenadas cartesianas del efector final. Por el número de juntas, esperamos 3 matrices intermedias y
1 final, es decir:  T  T
1) A1 : Relación entre 0 r = x0 y0 z0 1 y 1 r = x1 y1 z1 1 , es decir 0 r = (A1 )1 r, debida
al giro θ.  T  T
2) A2 : Relación entre 1 r = x1 y1 z1 1 y 2 r = x2 y2 z2 1 , es decir 1 r = (A2 )2 r, debida a
la traslación h.  T  T
3) A3 : Relación entre 2 r = x2 y2 z2 1 y 3 r = x3 y3 z3 1 , es decir 2 r = (A3 )3 r, debida a
la traslación r.
Por lo tanto, T = A1 A2 A3 .
Example 4. Considere de nuevo el sistema robótico de la figura 7(a) que tiene por vector de junta
 
θ
q = h .
r
7

Fig. 7. Brazo robótico RPP y análisis de coordenadas.

Determine su matriz de cinemática directa que relaciona las coordenadas cartesianas de base con las
coordenadas cartesianas del efector final si cambiamos el sistema Denavit-Hartenberg por la siguiente
convención:
1) Los giros son en torno al eje y.
2) Las traslaciones prismáticas son en dirección del eje x.
Esta asignación no convencional se etiquetó en la figura 8. De ahı́ se deduce que:
x0 = y1 cos θ − z1 sin θ, z0 = y1 sin θ + z1 cos θ, y0 = x1 ,
x1 = h − z2 , y1 = y2 , z1 = x2 ,
x2 = r + z3 , y2 = x3 , z2 = y3 ,
lo que agrupado en matrices significa:
     
0 cos θ − sin θ 0 0 0 −1 h 0 0 1 r
1 0 0 0 0 1 0 0 1 0 0 0
A1 = 0 sin θ cos θ 0 ,
 A2 = 
1
, A3 =  . (3)
0 0 0 0 1 0 0
0 0 0 1 0 0 0 1 0 0 0 1

Example 5. Considere el brazo robótico coplanar de la figura 9 que tiene por vector de junta
 
θ
q= 1 .
θ2
Determine su matriz de cinemática directa que relaciona las coordenadas cartesianas de base con las
coordenadas cartesianas del efector final.
Es claro que:
x0 = x1 cos θ1 + a1 cos θ1 − y1 sin θ1 , y0 = x1 sin θ1 + a1 sin θ1 + y1 cos θ1 , z0 = z1 , (4)
x1 = x2 cos θ2 + a2 cos θ2 − y2 sin θ2 , y1 = x2 sin θ2 + a2 sin θ2 + y2 cos θ2 , z1 = z2 , (5)
por lo que las matrices A1 y A2 que relacionan los sistemas coordenados (x0 , y0 , z0 ) con (x1 , y1 , z1 ) y
(x1 , y1 , z1 ) con (x2 , y2 , z2 ), respectivamente, son:
   
cos θ1 − sin θ1 0 a1 cos θ1 cos θ2 − sin θ2 0 a2 cos θ2
 sin θ1 cos θ1 0 a1 sin θ1 
 , A2 =  sin θ2 cos θ2 0 a2 sin θ2  .
 
A1 = 
 0 0 1 0   0 0 1 0 
0 0 0 1 0 0 0 1
8

La matriz de cinemática directa es, por lo tanto, el producto de las dos matrices anteriores:
  
cos θ1 − sin θ1 0 a1 cos θ1 cos θ2 − sin θ2 0 a2 cos θ2
 sin θ1 cos θ1 0 a1 sin θ1   sin θ2 cos θ2 0 a2 sin θ2 
T = A1 A2 =   0
 
0 1 0  0 0 1 0 
0 0 0 1 0 0 0 1
cos θ1 cos θ2 − sin θ1 sin θ2 − sin θ2 cos θ1 − sin θ1 cos θ2 0 a2 cos θ1 cos θ2 − a2 sin θ1 sin θ2 +a1 cos θ1
 
| {z } | {z } | {z }
cos(θ1 +θ2 ) − sin(θ1 +θ2 ) a2 cos(θ1 +θ2 )
 
 
sin θ2 cos θ1 + sin θ1 cos θ2 cos θ1 cos θ2 − sin θ1 sin θ2 0 a2 sin θ1 cos θ2 + a2 sin θ2 cos θ1 +a1 sin θ1 
= |
 {z } | {z } | {z } 

 sin(θ1 +θ2 ) cos(θ1 +θ2 ) a2 sin(θ1 +θ2 ) 
 0 0 1 0 
0 0 0 1

Example 6. Determine las coordenadas del origen del sistema coordenado del efector final para el sistema
robótico RP mostrado en la figura 10 en términos de coordenadas de base. Verifique la relación de estas
coordenadas con las columnas de la matriz de cinemática directa T .

Fig. 8. Brazo robótico RPP y análisis de coordenadas no convencionales.

Fig. 9. Brazo robótico RR.


9

Fig. 10. Brazo robótico RP.

De acuerdo a las lı́neas rojas de la figura, es claro que el origen del último sistema coordenado tiene
las siguientes coordenadas de base:
(x0 , y0 , z0 ) = (r cos θ, l + r sin θ, 0).
Por otra parte, la cinemática directa es el producto:
    
cos θ − sin θ 0 0 1 0 0 r cos θ − sin θ 0 r cos θ  
 sin θ cos θ 0 l  0 1 0 0  sin θ cos θ 0 r sin θ + l
T =  =  = R3×3 p3×1 .
 0 0 1 0 0 0 1 0  0 0 1 0  01×3 1
0 0 0 1 0 0 0 1 0 0 0 1
| {z }| {z }
A1 A2

Por lo tanto, las coordenadas de base del origen del sistema coordenado del efector final coinciden
con las entradas del vector de posición p puesto que:
 
r cos θ
p = r sin θ + l .
0

IV. U NIDAD 1: C INEM ÁTICA INVERSA


La cinemática directa puede verse como una relación entre coordenadas de base y coordenadas del
efector final, por medio de las variables de junta; es decir, las componentes del vector q (que son
traslaciones normalmente denotadas por r, h, etcétera, o rotaciones normalmente denotadas por θ1 , θ2 ,
etcétera). La cinemática inversa determina las coordenadas de junta q en términos de coordenadas de
base (x0 , y0 , z0 ); es decir, dado un punto en el espacio cuyas coordenadas de base son (x0 , y0 , z0 ), la
cinemática inversa contesta a la pregunta de cuánto deben valer las coordenadas de junta agrupadas en q
para que el efector final se ubique en dichas coordenadas de base. Como puede verse en el esquema 11,
la solución no es única, lo que complica el análisis (existen al menos dos valores (θ1 , θ2 ) que permiten
llegar al mismo punto con coordenadas de base dadas: una con “codo arriba”, otra con “codo abajo”).
No puede resolverse, por tanto, por medio de la inversión de la cinemática directa, debido a que la
inversa como operación matricial es única, mientras que la cinemática inversa no lo es (depende de cómo
se asuma).
Example 7. Determine θ1 y θ2 considerando las coordenadas de base (x, y) como dadas. Es decir, estamos
buscando una fórmula para θ1 y θ2 donde se puedan sustituir los valores de x y y y se produzcan los
10

Fig. 11. El problema de la cinemática inversa.

valores de θ1 y θ2 . Por ejemplo, si (x, y) = (1, 1) y las longitudes de los brazos son a1 = a2 = 1,
obviamente θ1 = 0◦ y θ2 = 90◦ ; otra posible solución serı́a θ1 = 90◦ y θ2 = −90◦ .
De la cinemática directa (y observando el diagrama) sabemos que:
x = a1 cos θ1 + a2 cos(θ1 + θ2 ), y = a1 sin θ1 + a2 sin(θ1 + θ2 ),
y puede intentarse despejar θ1 y θ2 asumiendo que x y y están dadas. Sin embargo, a pesar de que
este es un sistema de 2 ecuaciones con 2 incógnitas, las ecuaciones on algebraico-trigonométricas y no
permiten despejar analı́ticamente. Deben utilizarse rutinas numéricas para despejar, por ejemplo:

1 [t1,t2]=solve('cos(t1)+cos(t1+t2)-1','sin(t1)+sin(t1+t2)-1')

Usando argumentos geométricos, podemos despejar θ1 y θ2 analı́ticamente. Para ello, note que:
r2 = x2 + y 2 = a21 + a22 − 2a1 a2 cos(π − θ2 ) = a21 + a22 − 2a1 a2 (cos π cos θ2 + sin π sin θ2 )
| {z } | {z } | {z }
Pitágoras Ley de cosenos Coseno de la diferencia

= a21 + a22 + 2a1 a2 cos θ2 ,


| {z }
cos π=−1,sin π=0

de donde se puede despejar


x2 + y 2 − a21 − a22
 
θ2 = arccos .
2a1 a2
Sin embargo, el arco coseno es una función que puede no distinguir cuadrantes adecuadamente, razón
por la que suele despejarse θ2 en términos de arco tangente. Es decir, se definen:
x2 + y 2 − a21 − a22 √
cos θ2 = ≡ C, sin θ2 = 1 − C 2 ≡ D,
2a1 a2
y de ahı́ se sigue que
sin θ2 D
tan θ2 = ⇒ θ2 = arctan .
cos θ2 C
Para despejar θ1 , note que el triángulo rectángulo formado por r y el punto (x, y) sugiere que:
y y y
tan(θ1 + φ) = ⇒ θ1 + φ = arctan ⇒ θ1 = arctan − φ,
x x x
de modo que si determinamos φ podemos ya disponer de una fórmula para θ1 .
11

Observando el triángulo rectángulo formado por r, a1 y su prolongación, ası́ como el cateto opuesto
punteado, tenemos que:
 
a2 sin θ2 a2 sin θ2
tan φ = ⇒ φ = arctan ,
a1 + a2 cos θ2 a1 + a2 cos θ2
de modo que sustituyendo tenemos que:
y  
a2 sin θ2
θ1 = arctan − arctan .
x a1 + a2 cos θ2
Evidentemente, en esta solución hay que resolver θ2 primero para poder encontrar θ1 .
Si aplicamos estas fórmulas a la situación elemental donde (x, y) = (1, 1) y a1 = a2 = 1, tenemos
que:
1 × sin 90◦
 
1 ◦ 1
C = 0, D = 1, ⇒ θ2 = arctan = 90 , θ1 = arctan − arctan = 45◦ − 45◦ = 0◦
0 1 1 + 1 cos 90◦
¿Qué pasa con las fórmulas si se dan valores que los brazos no pueden alcanzar? Por ejemplo, si
a
√1 = a2 = 1 y (x, y) = (2, 2), es evidente que el punto no puede ser alcanzado porque se encuentra a
22 + 22 = 2.8284 > 1 + 1 = 2 del origen. En las fórmulas tenemos:
C = 3, D es imaginario y por lo tanto θ2 no está definido. Tampoco θ1 .
¿Cuánto deberı́an valer θ1 y θ2 para alcanzar (x, y) = (0.5, 0.5)? Usando las fórmulas tenemos:
0.6614
C = −0.75, D = 0.6614, ⇒ θ2 = arctan = 138.5904◦ ,
−0.75
1 × sin 138.5904◦
 
0.5
θ1 = arctan − arctan = 45◦ − 69.2964◦ = −24.2964◦ .
0.5 1 + 1 cos 138.5904◦

V. U NIDAD 1: E L JACOBIANO MANIPULADOR


Por convención, las coordenadas cartesianas (o de cualquier otro tipo) se agrupan en un vector y ∈ Rp
que por cinemática directa se relaciona con las coordenadas de junta q ∈ Rn por medio de una función
que denominaremos h(·):
y = h(q).
El problema del jacobiano manipulador consiste en encontrar la relación entre las velocidades en el
espacio de juntas, es decir, q̇(t) con las velocidades “lineales” en el espacio cartesiano ẏ(t). Para eso,
por regla de la cadena, debemos calcular el jacobiano:
 ∂h1 ∂h1
· · · ∂h1

∂q1 ∂q2 ∂qn
∂h2 ∂h2 ∂h2 
∂h   ∂q1 ∂q2 · · · ∂qn 
J(q) = ≡ . .. . . . ,
∂q  .. . . .. 
∂hp ∂hp ∂hp
∂q1 ∂q2
··· ∂qn

de donde surgirı́a la relación


∂h dq
ẏ(t) = = J(q)q̇(t).
∂q dt
Normalmente, existe el interés en las velocidades lineales vx ≡ ẋ(t), vy ≡ ẏ(t), vz ≡ ż(t), pero
también en las velocidades de “giro” del efector final alrededor de los ejes cartesianos, es decir, ωx , ωy
y ωz . Si usamos el sistema métrico internacional, evidentemente vx , vy y vz se miden en m/s, mientras
que ωx , ωy y ωz se miden en rad/s.
12

Ası́ pues, el jacobiano manipulador es una matriz de 6 × n donde n es el número de variables de


junta:
vx
 
 vy   
 vz  Jp (q)
 
ẏ(t) =   = q̇(t),
ωx  Jo (q)
ω  | {z }
y
J(q)
ωz
donde Jp (q) se denomina jacobiano manipulador de posición y Jo (q) se denomina jacobiano manipulador
de orientación. Para calcular estos elementos debemos definir lo siguiente:
 
Ri p i  
Ti ≡ A1 A2 · · · Ai = , Ri ≡ xi yi zi , T0 ≡ I, R0 = I.
0 1
Con esta notación, claramente la cinemática directa total es
 
R p
T = Tn ≡ ,
0 1
donde la i-ésima entrada de p será denotada como pi
Ası́ pues, el jacobiano manipulador de posición es:
 ∂p1 ∂p1 ∂p1

∂q ∂q2
··· ∂qn
∂p  ∂p12 ∂p2 ∂p2 
Jp (q) = =  ∂q1 ∂q2
··· ∂qn 
∂q ∂p3 ∂p3 ∂p3
∂q1 ∂q2
··· ∂qn

Para obtener el jacobiano de orientación se utilizan las cinemáticas directas parciales para definir:
 
Jo = k1 z0 k2 z1 · · · kn zn−1 ,
donde ki = 0 si qi es junta prismática y ki = 1 si qi es junta de revolución.
Example 8. Suponga que el sistema RR coplanar estudiado en el ejemplo 7 con a1 = a2 = 1m está en
movimiento de tal forma que θ1 = 30◦ , θ2 = 15◦ , θ̇1 = 1◦ /s y θ̇2 = −2◦ /s. Determine las velocidades
lineales ẋ y ẏ con respecto a las coordenadas de base en ese instante. ¿En qué dirección (x o y) aumenta
más la distancia al eje respectivo?
Puesto que nos interesa ẋ y ẏ, usamos el vector de posición de la cinemática directa para determinarlas.
Dicha cinemática dice que
√ √ √ √
3 2 2+ 3
x = a1 cos θ1 + a2 cos(θ1 + θ2 )|a1 =a2 =1,θ1 =30◦ ,θ2 =15◦ = + = ,
2 √2 √2
1 2 1+ 2
y = a1 sin θ1 + a2 sin(θ1 + θ2 )|a1 =a2 =1,θ1 =30◦ ,θ2 =15◦ = + = .
2 2 2
Para obtener ẋ y ẏ usamos la regla de la cadena en las expresiones simbólicas anteriores:
   
 ∂x ∂x  θ̇1   θ̇1
ẋ = ∂θ1 ∂θ2 = −a1 sin θ1 − a2 sin(θ1 + θ2 ) −a2 sin(θ1 + θ2 ) =
θ̇2 θ̇2
i    
θ̇1  θ̇1
h
∂y ∂y
ẏ = ∂θ1 ∂θ2 = a1 cos θ1 + a2 cos(θ1 + θ2 ) a2 cos(θ1 + θ2 ) =
θ̇2 θ̇2
Alternativamente, el jacobiano manipulador de posición permite reunir la información anterior porque:
 ∂(a cos θ +a cos(θ +θ )) ∂(a cos θ +a cos(θ +θ )) 
1 1 2 1 2 1 1 2 1 2
∂θ1
∂p  ∂(a1 sin θ1 +a ∂θ2
2 sin(θ1 +θ2 )) ∂(a1 sin θ1 +a2 sin(θ1 +θ2 )) 
Jp (q) = = ∂θ1 ∂θ2
=,
∂q

∂0 ∂0
∂θ1 ∂θ2
13

 T
de donde se puede obtener directamente ẋ y ẏ porque dado y = x y z , tenemos que:
ẏ(t) = Jp (q)q̇(t)|a1 =a2 =1,θ1 =30◦ ,θ2 =15◦ ,θ̇1 =1◦ /s,θ̇2 =−2◦ /s =
Example 9. Proporcione θ1 , θ2 y θ3 para alcanzar la posición (x0 , y0 , z0 ) = (0, 0.4, 0.1) en coordenadas
cartesianas de base para el sistema robótico en la figura 12.
Note que los brazos alcanzan la posición deseada con θ1 = 0◦ que está alineado con x0 (eje de base).
Note además que para θ2 y θ3 la situación es la misma que el de un robot RR coplanar, de modo que
se utilizan las fórmulas:
y 2 + z02 − (0.5)2 − (0.2)2 √ D
C= 0 , D = 1 − C 2 , θ3 = arctan ,
2(0.5)(0.2) C
y para θ2 :    
z0 (0.2) sin θ3
θ2 = arctan − arctan .
y0 0.5 + 0.2 cos θ3

VI. U NIDAD 2: C ONCEPTOS F ÍSICOS B ÁSICOS


El modelado dinámico de manipuladores robóticos se basa en las siguientes consideraciones:
1) Las masas se consideran puntuales y concentradas al final de cada eslabón.
2) Sólo intervienen relaciones derivadas de la Segunda Ley de Newton (que relaciona masa-fuerza-
aceleración).
3) Para movimientos de traslación (desplazamiento lineal o prismático) se consideran velocidades
ordinarias v, fuerzas ordinarias F y masas ordinarias m.
4) Para movimientos de rotación con ángulo θ (junta rotacional) se consideran velocidades angulares
ω = θ̇, fuerzas de torque n = F × r (r el radio de rotación) y momentos de inercia en vez de masas
I = mr2 .

Fig. 12. Cinemática inversa en un sistema RRR.


14

A. Movimientos de rotación
La fuerza centrı́peta viene dada por:
mv 2 2
Fcent = = mω
| {z r} = m θ̇2 r} .
r | {z
v=ωr ω=θ̇

La fuerza de Coriolis viene dada por:


Fcor = −2mRθ̇φ̇ cos φ,
donde m es una masa que se desplaza por una esfera de radio R creando un ángulo de φ con el eje de
rotación de la esfera que gira a velocidad angular θ̇. Ver figura 13.
La energı́a cinética viene dada por:
1 1
K = Iω 2 = mr2 θ̇2 . (6)
2 |2 {z }
I=mr2 ,ω=θ̇

Las fuerzas son torques N que se relacionan con fuerzas tangenciales F aplicadas a una distancia o
radio de r de la siguiente manera:
N = r × F.

B. Movimientos de traslación (prismáticos)


La energı́a cinética viene dada por:
1
K = mv 2 . (7)
2
La fuerza se denota como F y actúa de manera lineal (como un vector ordinario).
La energı́a potencial es la misma para movimientos rotacionales o prismáticos porque sólo considera
la “altura” o distancia relativa a cierto nivel de referencia:
P = mgh, g = 9.81 o su equivalente.

Fig. 13. Fuerza de Coriolis.


15

VII. U NIDAD 2: E CUACIONES DEL M OVIMIENTO DE L AGRANGE


Dado un sistema robótico completamente actuado con vector de juntas q ∈ Rn y los actuadores
correspondientes agrupados en el vector de fuerzas generalizadas τ ∈ Rn , definimos como lagrangiano
a la diferencia entre energı́a cinética total y energı́a potencial total del sistema:
L = K − P,
donde normalmente se calculan K y P con base en las energı́as cinéticas y potenciales de cada eslabón
(considerando la masa puntual del mismo al final de su longitud).
Las ecuaciones del movimiento de Lagrange de dicho manipulador robótico vienen dadas por:
d ∂L ∂L
− = τ. (8)
dt ∂ q̇ ∂q
Note que este es un sistema de n ecuaciones diferenciales no lineales en términos de las n componentes
del vector q y sujetos a n entradas externas (o funciones de tiempo) agrupadas en τ . En efecto, si el
vector de juntas y el vector de fuerzas generalizadas son
q1 τ1
   
 q2   τ2 
q=  ...  , τ =  ...  ,
  

qn τn
entonces tenemos que:  ∂L   ∂L 
q̇1
 
∂q1 ∂ q̇1
 q̇2  ∂L  ∂L  ∂L 
∂L 
 ∂q2   ∂ q̇2 
q̇ = 
 ...  ,
 =  . , =  . .
∂q  ..  ∂ q̇  .. 
q̇n ∂L ∂L
∂qn ∂ q̇n

Example 10. Obtener las ecuaciones de movimiento de Lagrange para el sistema robótico RP mostrado
en la figura 14.
De acuerdo a lo explicado arriba, se necesita obtener energı́a cinética total K y energı́a potencial
total P para calcular el lagrangiano L que sirve de base para escribir las ecuaciones de movimiento de
Lagrange en (8). La energı́a cinética se obtiene por cada variable que se mueve en el tiempo, es decir:
1) K1 = 12 mr2 θ̇2 es la energı́a cinética debida a la rotación (ver fórmula (6)).
2) K2 = 21 mṙ2 es la energı́a cinética debida a la traslación (ver fórmula (7)).
3) La energı́a cinética total es la suma de las energı́as cinéticas de cada movimiento:
1 1
K = K1 + K2 = mr2 θ̇2 + mṙ2 .
2 2
La energı́a potencial puede obtenerse respecto al nivel de referencia del piso o respecto al nivel de
referencia de la lı́nea punteada en la figura 14; esto debido a que l no cambia en el tiempo (la longitud
de la base) y por lo tanto cuando se incluya en P su derivada parcial respecto a lo que sea dará 0 (no
contará). La vamos a calcular respecto al piso:
P = mg(r sin θ + l).
Por lo tanto, el lagrangiano viene dado por la resta de energı́a cinética total y energı́a potencial total:
1 1
L = K − P = mr2 θ̇2 + mṙ2 − mgr sin θ − mgl,
2 2
donde el punto arriba de una variable indica derivada respecto al tiempo, por ejemplo:

θ̇ = (derivada de θ respecto al tiempo ó velocidad angular).
dt
16

Las ecuaciones de movimiento de Lagrange están en la ecuación (8) y requieren obtener 3 derivadas
que son:
∂L d ∂L ∂L
, , .
∂ q̇ dt ∂ q̇ ∂q
Para obtenerlas debemos recordar que
   
θ θ̇
q= , q̇ = ,
r ṙ
por lo que las parciales y derivadas de arriba son todas vectoriales (con 2 entradas cada una), es decir:
  
∂ 1 2 2 1 2
mr θ̇ + m ṙ −mgr sin θ − mgl
   
∂L ∂ 1 2 2 1 2 ∂ θ̇ 2 2 mr2 θ̇
= mr θ̇ + mṙ −mgr sin θ−mgl =    = ,
∂ q̇ ∂ q̇ 2 2 ∂ 1
mr2 θ̇2 + 12 mṙ2 −mgr sin θ−mgl mṙ
∂ ṙ 2
  " d  2 #  
d ∂L d mr2 θ̇ mr θ̇ mr 2
θ̈ + 2mr ṙ θ̇
= = dt = ,
dt ∂ q̇ dt mṙ d
(m ṙ) mr̈
  dt 
∂ 1 2 2 1 2
∂L  ∂θ  2 mr θ̇ + 2 mṙ − mgr sin θ − mgl
 
−mgr cos θ
= = .
∂q ∂ 1
mr 2 2
θ̇ + 1
mṙ 2
− mgr sin θ − mgl mrθ̇2 − mg sin θ
∂r 2 2

Por lo tanto, reuniendo las dos últimas expresiones tenemos que las ecuaciones de movimiento de
Lagrange (8) son:      
mr2 θ̈ + 2mrṙθ̇ −mgr cos θ n
− 2 = , (9)
mr̈ mrθ̇ − mg sin θ f
| {z } | {z } |{z}
d ∂L ∂L τ
dt ∂ q̇ ∂q

donde n representa un torque ordinario (que causa rotación y por eso va alineado con θ) y f representa
una fuerza ordinaria (que causa traslación y por eso va alineada con r). Note que (9) es un sistema de
ecuaciones diferenciales no lineales ordinarias no homogéneas de segundo orden:
mr2 θ̈ + 2mrṙθ̇ + mgr cos θ =n, (10)
2
mr̈ − mrθ̇ + mg sin θ =f, (11)
donde θ y r son las funciones de tiempo “a despejar” para ciertas condiciones iniciales y ciertas entradas
en n y f (que también son funciones de tiempo). Este despeje no puede hacerse analı́ticamente por

Fig. 14. Manipulador robótico RP.


17

métodos de ecuaciones diferenciales, de modo que deben resolverse numéricamente por métodos que ya
están ampliamente establecidos y que no es necesario programar a partir de cero porque ya existen en
rutinas establecidas en software comercial (por ejemplo, en Simulink de MATLAB).
Para simular en Simulink podemos crear el archivo de bloques de la figura 15 en donde el bloque
de la derecha calcula las segundas derivadas de θ y r con base en sus primeras derivadas y sus valores
actuales, despejándolos de (10)-(11):
1  
θ̈ = 2 n − 2mrṙθ̇ − mgr cos θ , (12)
mr
1  
r̈ = f + mrθ̇2 − mg sin θ , (13)
m
El bloque de la derecha contiene el código siguiente:

1 function d2tetad2r = RP_base(params)


2 %#codegen
3 teta=params(1);
4 dteta=params(2);
5 r=params(3);
6 dr=params(4);
7 t=params(5);
8 n=0;
9 f=-3;
10 m=0.2;
11 g=9.81;
12 d2teta=(1/(m*rˆ2))*(n-2*m*r*dr*dteta-m*g*r*cos(teta));
13 d2r=(1/m)*(f+m*r*dtetaˆ2-m*g*sin(teta));
14 d2tetad2r = [d2teta; d2r];

donde obviamente se pueden cambiar parámetros como m o g, ası́ como las fuerzas externas n y
f que en el código sólo están igualadas a 0. Las condiciones iniciales se especifican en los bloques
integradores. Si se escogen θ(0) = 0, θ̇(0) = 0, r(0) = 1 y ṙ(0) = 0 con las fuerzas n y f en cero
se obtienen los resultados de la figura 16. De acuerdo a estas gráficas, θ oscila en valores negativos, lo
que significa que la barra oscila en la parte de abajo alrededor de l; asimismo, se ve en la gráfica que r
crece y se contrae alrededor del valor de 1.
TAREA: (a) Reproduzca los resultados de simulación para el sistema RP arriba especificado con las
condiciones iniciales y fuerzas ahı́ señaladas (meta código y gráficas en un archivo de Word o PDF); (b)

Fig. 15. Diagrama de bloques para la simulación del sistema RP (9) en Simulink.
18

3
θ r
2
1

rad / m
0
-1
-2
-3
0 2 4 6 8 10
Tiempo (s)

Fig. 16. Resultados de la simulación del sistema RP (9) en Simulink.

Suponga que el sistema se construye en dos materiales, aluminio y oro, ¿se portarán exactamente igual?
¿cómo refleja el modelo matemático las posibles diferencias entre estos sistemas?; (c) ¿Se puede cambiar
la longitud l? ¿afecta a los resultados?; (d) ¿Incluye fricción este sistema?; (e) ¿Se porta igual este sistema
en cualquier medio? ¿en el vacı́o? ¿en el aire ordinario? ¿en el agua? ¿a cualquier temperatura?
Example 11. Considere un manipulador robótico RR coplanar como el de la figura 17 al que la gravedad
g = 9.81m/s2 afecta hacia “abajo” con el eje x como referencia; considere que las longitudes de los
brazos son a1 = 0.5 y a2 = 0.2 (metros) y sus masas respectivas son m1 = 0.2kg y m2 = 0.1kg.
1) Suponga que en un momento dado θ1 = 30◦ y θ2 = 15◦ y que el manipulador se está moviendo
en ese instante con θ̇1 = 1◦ /s y θ̇2 = −2◦ /s. ¿Cuál es la velocidad total del eslabón si su masa se
considera puntual y concentrada al final de su longitud?
2) Deduzca las ecuaciones del movimiento de Lagrange.
Para el primer problema, es claro que la masa m1 tiene una velocidad que puede determinarse de 2
maneras:
Calcular ẋ1 y ẏ1 (velocidades lineales en x1 y y1 ) y luego velocidad total por Pitágoras: v1 =
1) p
ẋ21 + ẏ12 . Es decir, dados x1 = a1 cos θ1 y y1 = a1 sin θ1 , tenemos que:
ẋ1 = −a1 θ̇1 sin θ1 , ẏ1 = a1 θ̇1 cos θ1
y evaluando tenemos que:
q q
2 2
v1 = ẋ1 + ẏ1 = (−a1 θ̇1 sin θ1 )2 + (a1 θ̇1 cos θ1 )2 |evaluado = 0.0087m/s.

2) Utilizar θ̇1 para determinar v1 = a1 θ̇1 = 0.0087m/s.


Para la segunda masa m2 también es posible determinar la velocidad de 2 maneras, aunque la forma
que depende de la velocidad angular de giro serı́a muy complicada porque no hay 1 sólo ángulo de giro
(θ1 y θ2 intervienen). Por este motivo sólo haremos el cálculo de la primera forma:
x2 = a1 cos θ1 + a2 cos(θ1 + θ2 ), y2 = a1 sin θ1 + a2 sin(θ1 + θ2 )
ẋ2 = −a1 θ̇1 sin θ1 − a2 (θ̇1 + θ̇2 ) sin(θ1 + θ2 )
ẏ2 = a1 θ̇1 cos θ1 + a2 (θ̇1 + θ̇2 ) cos(θ1 + θ2 )
q
v2 = ẋ22 + ẏ22 |evaluado = T AREA.
Para las ecuaciones del movimiento de Lagrange, hay que calcular energı́a cinética y potencial del
sistema. La energı́a cinética total es la suma de las energı́as cinéticas de cada masa (eslabón), es decir:
19

1) Primer eslabón (m1 ): El giro depende sólo de θ1 por lo que la energı́a cinética se puede calcular
directamente por las fórmulas de energı́a cinética rotacional: K1 = 12 m1 a21 θ̇12 = 0.1(0.5)2 θ̇12 =
0.025θ̇12 .
2) Segundo eslabón (m2 ): El giro depende de θ1 y θ2 , ası́ que no es conveniente usar fórmulas de
energı́a cinética rotacional. Recurriremos pues a la energı́a cinética “lineal” que depende de v2
(velocidad total de la masa 2), es decir:
1
K2 = m2 v22 = 0.05(ẋ21 + ẏ12 ) = 0.05v22
2 
 2  2 
=0.05 −a1 θ̇1 sin θ1 − a2 (θ̇1 + θ̇2 ) sin(θ1 + θ2 ) + a1 θ̇1 cos θ1 + a2 (θ̇1 + θ̇2 ) cos(θ1 + θ2 )
| {z }
v22

=TAREA: comprobar que v22 es lo mismo que la ecuación (9) de la página 115 impresa.
 
=0.05 0.25θ̇12 + 0.04(θ̇1 + θ̇2 )2 + 0.2(θ̇12 + θ̇1 θ̇2 ) cos θ2
=0.0125θ̇12 + 0.0020(θ̇1 + θ̇2 )2 + 0.01(θ̇12 + θ̇1 θ̇2 ) cos θ2 .
Las energı́as potenciales deben utilizar la altura de cada masa respecto del eje de referencia; estas
alturas son:
h1 = a1 sin θ1 = 0.5 sin θ1 , h2 = a1 sin θ1 + a2 sin(θ1 + θ2 ) = 0.5 sin θ1 + 0.2 sin(θ1 + θ2 ),
y sustituidos en las fórmulas para energı́a potencial dan:
P1 = m1 gh1 = 0.2(9.81)0.5 sin θ1 = 0.981 sin θ1
P2 = m2 gh2 = 0.1(9.81)(0.5 sin θ1 + 0.2 sin(θ1 + θ2 )) = 0.4905 sin θ1 + 0.1962 sin(θ1 + θ2 ).
Con base en las energı́as cinéticas y potenciales definimos el Lagrangiano como
L =K1 + K2 − P1 − P2
=0.025θ̇12 + 0.0125θ̇12 + 0.0020(θ̇1 + θ̇2 )2 + 0.01(θ̇12 + θ̇1 θ̇2 ) cos θ2
− 0.981 sin θ1 − 0.4905 sin θ1 − 0.1962 sin(θ1 + θ2 ).
Como resulta que para este sistema
   
θ θ̇
q= 1 , q̇ = 1 ,
θ2 θ̇2
entonces:
" #
∂L
∂L ∂ θ̇1
= ∂L
∂ q̇ ∂ θ̇2
 
2(0.0125 + 0.025)θ̇1 + 2(0.002)(θ̇1 + θ̇2 ) + 2(0.01)θ̇1 cos θ2 + 0.01θ̇2 cos θ2
=
2(0.002)(θ̇1 + θ̇2 ) + 0.01θ̇1 cos θ2
 
0.079θ̇1 + 0.004θ̇2 + 0.02θ̇1 cos θ2 + 0.01θ̇2 cos θ2
= .
0.004θ̇1 + 0.004θ̇2 + 0.01θ̇1 cos θ2
  
d
d ∂L  dt
0.079θ̇1 + 0.004θ̇2 + 0.02θ̇1 cos θ2 + 0.01θ̇2 cos θ2
=   
dt ∂ q̇ d
0.004θ̇1 + 0.004θ̇2 + 0.01θ̇1 cos θ2
dt
 
0.079θ̈1 + 0.004θ̈2 + 0.02θ̈1 cos θ2 − 0.02θ̇1 sin θ2 θ̇2 + 0.01θ̈2 cos θ2 − 0.01θ̇2 sin θ2 θ̇2
=
0.004θ̈1 + 0.004θ̈2 + 0.01θ̈1 cos θ2 − 0.01θ̇1 sin θ2 θ̇2
20

Fig. 17. Obteniendo ecuaciones del movimiento de Lagrange del sistema RR.

 ∂L 
∂L ∂θ1
= ∂L
∂q ∂θ2
 
−1.4715 cos θ1 − 0.1962 cos(θ1 + θ2 )
= .
−0.01(θ̇12 + θ̇1 θ̇2 ) sin θ2 − 0.1962 cos(θ1 + θ2 )
Por lo tanto, las ecuaciones del movimiento de Lagrange del manipulador RR son
d ∂L ∂L
− = τ,
dt ∂ q̇ ∂q
es decir,
 
0.079θ̈1 + 0.004θ̈2 + 0.02θ̈1 cos θ2 − 0.02θ̇1 θ̇2 sin θ2 + 0.01θ̈2 cos θ2 − 0.01θ̇22 sin θ2
0.004θ̈1 + 0.004θ̈2 + 0.01θ̈1 cos θ2 − 0.01θ̇1 θ̇2 sin θ2
| {z }
d ∂L
dt ∂ q̇
   
−1.4715 cos θ1 − 0.1962 cos(θ1 + θ2 ) n
− = 1 .
−0.01(θ̇12 + θ̇1 θ̇2 ) sin θ2 − 0.1962 cos(θ1 + θ2 ) n2
| {z } | {z }
∂L τ
∂q

VIII. U NIDAD 2: E CUACIONES DE L AGRANGE -E ULER


Existen otras formas de “acomodar” el sistema de ecuaciones diferenciales que describe manipuladores
robóticos. Una muy conocida es la forma de Lagrange-Euler que para un manipulador con n variables
de junta (es decir, q ∈ Rn×1 ) serı́a:
M (q)q̈ + V (q, q̇) + G(q) = τ, (14)
donde M (q) es una matriz de tamaño n × n llamada matriz de inercia, V (q, q̇) es un vector de tamaño
n × 1 llamado vector de Coriolis y G(q) es un vector de tamaño n × 1 llamado vector de gravedad.
Para conseguir escribir un sistema en esta forma debemos seguir el procedimiento que se describe a
continuación:
1) Apartar todos los términos que tengan segunda derivada de las variables de junta y factorizarles
dichas derivadas en un vector q̈. Con esto formará M (q)q̈.
2) Apartar todos los términos que sólo dependen de q (no aparece ni q̇ ni q̈): estos términos forman
G(q).
21

3) Apartar los torques generalizados en el lado derecho (dejarlos ahı́).


4) Los términos que sobran forman el vector de Coriolis V (q, q̇) que siempre deben tener q̇.
Example 12. Considere de nuevo el manipulador robótico del ejemplo anterior (ilustrado en la figura 17.
Escribamos las ecuaciones en la forma Lagrange-Euler.
Note que los términos asociados a derivadas de segundo orden son los siguientes:
    
0.079θ̈1 + 0.004θ̈2 + 0.02θ̈1 cos θ2 + 0.01θ̈2 cos θ2 0.079 + 0.02 cos θ2 0.004 + 0.01 cos θ2 θ̈1
= .
0.004θ̈1 + 0.004θ̈2 + 0.01θ̈1 cos θ2 0.004 + 0.01 cos θ2 0.004 θ̈2
| {z } |{z}
M (q) q̈

Ya identificada la matriz de inercia y descartados sus términos, buscamos aquéllos que dependan
únicamente del vector de juntas q, es decir, de θ1 y θ2 :
 
1.4715 cos θ1 + 0.1962 cos(θ1 + θ2 )
≡ G(q),
0.1962 cos(θ1 + θ2 )
con lo que se obtiene el vector de gravedad.
Ignorando los torques, tenemos que los términos sobrantes se agrupan en el vector de Coriolis, es
decir:  
−0.02θ̇1 θ̇2 sin θ2 − 0.01θ̇22 sin θ2
≡ V (q, q̇).
−0.01θ̇1 θ̇2 sin θ2 + 0.01(θ̇12 + θ̇1 θ̇2 ) sin θ2
Es importante destacar que la matriz de inercia agrupa masas (para movimientos traslacionales) y
momentos de inercia (para movimientos rotacionales). También es importante destacar que el vector de
gravedad involucra g en su interacción con las masas solas. Igualmente, note que el vector de Coriolis,
tal y como se describió cuando se presentó la fuerza de Coriolis, involucra productos de variables de
junta con sus velocidades.
Note que la forma de Lagrange-Euler y las ecuaciones del movimiento de Lagrange son exactamente
las mismas ecuaciones, sólo acomodadas de forma diferente.
TAREA: Escribir las ecuaciones del movimiento de Lagrange del sistema RP examinado en el ejemplo
de la figura 14. Identifique claramente matriz de inercia, vector de Coriolis y vector de gravedad.
Example 13. Obtener las ecuaciones de Lagrange-Euler del sistema RPP mostrado en la figura 18.
Este sistema tiene el vector de posiciones, velocidades y aceleraciones de junta siguientes:
     
θ θ̇ θ̈
q= h  , q̇ =  ḣ  , q̈ = ḧ .
r ṙ r̈
|{z} |{z} |{z}
vector de posiciones vector de velocidades vector de aceleraciones

Las energı́as cinéticas y potenciales correspondientes a cada movimiento de junta son:


1) Movimiento rotacional θ: La energı́a cinética debida a este giro para la masa m1 se debe al giro
sobre sı́ misma. En este caso se considera que es un parámetro inherente a la masa (barra) porque
no puede usarse la fórmula para movimiento rotacional porque la distancia de la masa al eje de
giro es 0 y entonces la energı́a cinética darı́a un falso 0. Tampoco puede usarse la fórmula de
energı́a cinética traslacional porque el movimiento es de rotación. De manera que para indicar que
la tomamos en cuenta le damos un nombre y su valor deberı́a determinarse experimentalmente, ese
momento de inercia se denomina J; la energı́a cinética es, por lo tanto, K1 = 12 J θ̇2 . La energı́a
potencial debida al giro es P1 = 0 (no produce ninguna altura respecto al piso).
2) Movimiento traslacional h: La energı́a cinética serı́a
1
K2 = m1 ḣ2 .
2
La energı́a potencial de este movimiento es:
P2 = m1 hg.
22

3) Movimiento traslacional r: La energı́a cinética afecta a m1 y m2 de distintas maneras:


1 1 1
K3 = m2 r2 θ̇2 + m2 ḣ2 + m2 ṙ2 .
2 2 2
En cuanto a la energı́a potencial para esta masa m2 es:
P3 = m2 hg.
Ası́ pues, el lagrangiano es:
L =K1 + K2 + K3 − P1 − P2 − P3
1 1 1 1 1
= J θ̇2 + m1 ḣ2 + m2 r2 θ̇2 + m2 ḣ2 + m2 ṙ2 − m1 hg − m2 hg,
2 2 2 2 2
de donde pueden obtenerse las derivadas siguientes:
 ∂L   
J θ̇ + m2 r2 θ̇
∂L  ∂L ∂ θ̇
= ∂ ḣ  =  m1 ḣ + m2 ḣ  ,
∂ q̇ ∂L
m2 ṙ
 ∂ ṙ 
J θ̈ + m2 r2 θ̈ + 2m2 rṙθ̇
d ∂L 
= (m1 + m2 )ḧ ,
dt ∂ q̇
m2 r̈
 
0
∂L 
= −(m1 + m2 )g  .
∂q
m2 rθ̇2
Ası́ pues, las ecuaciones del movimiento de Lagrange son:
     
J θ̈ + m2 r2 θ̈ + 2m2 rṙθ̇ 0 n
d ∂L ∂L 
− = (m1 + m2 )ḧ  − −(m1 + m2 )g = f1  ,
   (15)
dt ∂ q̇ ∂q
m2 r̈ m2 rθ̇2 f2
de modo que reacomodando tenemos las ecuaciones de Lagrange-Euler requeridas:
        
J + m2 r2 0 0 θ̈ 2m2 rṙθ̇ 0 n
 0 m1 + m2 0  ḧ +  0  + (m1 + m2 )g  = f1  . (16)
0 0 m2 r̈ −m2 rθ̇2 0 f2
| {z } | {z } | {z } | {z }
M (q) V (q,q̇) G(q) τ

Fig. 18. Obteniendo ecuaciones de Lagrange-Euler para el sistema RPP.


23

IX. U NIDAD 2: A LGUNAS PROPIEDADES DE LAS MATRICES QUE APARECEN EN LA FORMA DE


L AGRANGE -E ULER
n×n
La matriz de inercia M (q) ∈ R de un manipulador robótico con n juntas (es decir, con q ∈ Rn )
tiene las siguientes propiedades:
1) Simetrı́a: M (q) = M T (q) (es igual a su transpuesta).
2) Definida-positiva: Los valores propios de la matriz M (q) son todos con parte real positiva. Recuerde
que los valores propios de una matriz M (q) son los valores (posiblemente complejos) s tales que
det(sI − M (q)) = 0. Cuando una matriz es definida-positiva, se denota como M (q) > 0. Note que
esto no significa que las entradas de M (q) son positivas: se refiere a la parte real de sus valores
propios. En MATLAB los valores propios pueden obtenerse con la instrucción “eig”.
3) Acotada: Es decir, tiene una norma para la que existen mı́nimos y máximos; tiene asimismo valores
propios mı́nimos y máximos definidos.
El vector de Coriolis es cuadrático en q̇, es decir, que todos sus términos tienen grado 2 asociado a
las derivadas del vector de junta. Su norma está acotada por un múltiplo de la norma de la velocidad q̇.
El vector de gravedad está acotado por una constante.
Se puede incluir fricción de cualquier tipo; las más comunes son:
• Viscosa: Es múltiplo de la velocidad (tradicional en amortiguadores): Fv (q̇).
• Seca: Es una función signo de la velocidad y refleja que debe rebasarse un umbral para que se
produzca el movimiento (resistencia que ofrecen los objetos al desplazamiento a pesar de estar
aplicando una fuerza): Fd (q̇) = Kd sign(q̇).
TAREA: (a) Ejemplo numérico de cómo calcular la norma de un vector; (b) Ejemplo numérico de
cómo calcular la norma de una matriz; (c) Ejemplo numérico de cómo calcular los valores propios de una
matriz; (d) Escoja valores para las masas del ejemplo anterior (ejemplo 13) y verifique las propiedades
de esta sección.

X. U NIDAD 2: R EPRESENTACIONES EN ESPACIO DE ESTADOS


Forma posición-velocidad: Un sistema de ecuaciones en espacio de estados o modelo en espacio de
estados es un conjunto de ecuaciones diferenciales ordinarias de primer orden que representa la dinámica
de una planta. En el caso que nos ocupa, la representación en espacio de estados la requerimos para
escribir el modelo de un manipulador robótico. Partiendo de la forma de Lagrange-Euler
M (q)q̈ + V (q, q̇) + G(q) = τ,
se puede obtener la representación en espacio de estados posición-velocidad que significa elegir como
variables de estado a la posición q y la velocidad q̇, es decir, x = q y ẋ = q̇ serı́an las variables de
estado. Las ecuaciones serı́an:
   
d x ẋ
= , (17)
dt ẋ M −1 (x) (τ − V (x, ẋ) − G(x))
donde se utilizó la relación
d
ẋ = ẍ = q̈ = M −1 (q) (τ − V (q, q̇) − G(q)) .
dt
Recuerde que q tiene n componentes, es decir, tantas como variables de junta existan en el sistema
robótico. Por este motivo, la representación en variables de estado posición-velocidad que aparece en
la ecuación (17) tiene un vector de estados de tamaño 2n (es decir, el estado es el vector “extendido”
formado por q y q̇). Esto es lógico porque las ecuaciones de Lagrange-Euler eran de 2o. orden y tenı́an
tamaño de n mientras que las de espacio de estados son de 1er. orden y por lo tanto tienen tamaño 2n
(para no perder ecuaciones o relaciones dinámicas).
Example 14. Obtener las ecuaciones de estado posición-velocidad para el sistema RPP del ejemplo 13.
24

Sabemos que hay que escoger el vector de posición q y el vector de velocidades q̇ como las variables
de estado. En el caso de esta planta, por lo tanto, serı́a lo siguiente:
Posiciones (estados): x1 = θ, x2 = h, x3 = r,
Velocidades (estados): x4 = θ̇, x5 = ḣ, x6 = ṙ,
Actuadores (entradas): u1 = n, u2 = f1 , u3 = f2 .
Por lo tanto, las ecuaciones de estado posición-velocidad pueden escribirse derivando las definiciones
de estado anteriores y asignándoles la expresión correspondiente en variables de estado (no se admiten
variables nuevas a menos que sean entradas). Es decir, a partir de:
       
ẋ1 x4 ẋ4 θ̈
ẋ2  = x5  , ẋ5  = ḧ = M −1 (q) (τ − V (q, q̇) − G(q)), (18)
ẋ3 x6 ẋ6 r̈
| {z }
Obtenido de (16)

escribimos:
   x4

ẋ1
ẋ2   x5 
   x6

ẋ3  
 
  = −1        
ẋ4   J + m2 r2 0 0 n 2m2 rṙθ̇ 0 

ẋ   0 m1 + m2 0  f1  −  0  − (m1 + m2 )g 
5
ẋ6 0 0 m2 f2 −m2 rθ̇2 0
 
x4

 x5 

 x 6 
= 
 J + m2 x 2
−1      
 3 0 0 u1 2m2 x3 x6 x4 0 

 0 m1 + m2 0   u2 −
  0  − (m1 + m2 )g
  
2
0 0 m2 u3 −m2 x3 x4 0
 
x4
 x5 
x6
 
 
=
 J+m1 2 x2 (u1 − 2m2 x3 x6 x4 )  .

 1 3 

m1 +m2
(u 2 − (m1 + m 2 )g) 
1 2
m2
(u3 + m2 x3 x4 )
TAREA: (a) Obtenga la representación en variables de estado posición-velocidad del sistema RR y el
sistema RP de los ejemplos 12 y 10, respectivamente. (b) Simule ambos sistemas.
Forma Hamiltoniana: Otra representación en espacio de estados es la denominada forma Hamilto-
niana que se basa en el vector de momento generalizado:
∂L
p= = M (q)q̇ ⇒ q̇ = M −1 (q)p, (19)
∂ q̇
y en una relación adicional para la derivada del momento generalizado ṗ. El vector de estado se selecciona
como  
q
x= .
p
La forma completa se ve como:
M −1 (q)p
   

= , (20)
ṗ − 21 ∂q

pT M −1 (q)p − ∂P
∂q

donde debemos recordar que P es la energı́a potencial total del sistema y τ es el vector de fuerzas
generalizado.
25

Example 15. Considere de nuevo el sistema RP de la figura 14 con las siguientes ecuaciones del
movimiento de Lagrange:
     
mr2 θ̈ + 2mrṙθ̇ −mgr cos θ n
− 2 = . (21)
mr̈ mrθ̇ − mg sin θ f
| {z } | {z } |{z}
d ∂L ∂L τ
dt ∂ q̇ ∂q

Para obtener la representación en espacio de estados de la forma Hamiltoniana seleccionamos como


estados:    
x1   θ
x2 
 = q = r ,
 
x= x3  p p1 
x4 p2
y tomando en cuenta que
 2 −1    1    1     x3 
−1 mr 0 p1 0 p1 2 0 x3 2
q̇ = M (q)p = = mr2 1 = mx2 1 = mx
x
2
0 m p2 0 m
p2 0 m
x4 m
4

y que con P = mg(r sin θ + l)


  x3     
1 ∂ T −1
 ∂P 1 ∂   mx 2 mgr cos θ n
ṗ = − p M (q)p − +τ =− x3 x4 x4
2 − +
2 ∂q ∂q 2 ∂q mg sin θ f
" #m 
0
 2 2
   
1 ∂ x3 x4 n − mgr cos θ 1 n − mgx 2 cos x 1
=− + + =− 2x2 + ,
2 ∂q mx22 m f − mg sin θ 2 − mx332 f − mg sin x1
las ecuaciones de estado en forma Hamiltoniana son:
   x3

ẋ1 mx22
ẋ2   x4 
 = m
.

ẋ3   2−mgx 2 cos x 1 + n 
x3
ẋ4 mx3
− mg sin x 1 + f
2

TAREA: Obtenga la representación en variables de estado Hamiltoniana del sistema RR y el sistema


RPP de los ejemplos 12 y 13, respectivamente.

XI. U NIDAD 3: R EPASO DE CONTROL LINEAL


Dada una planta fı́sica lineal (que cumple con el principio de superposición) con modelo en espacio
de estados:
ẋ(t) = Ax(t) + Bu(t), (22)
donde x(t) ∈ Rn es el vector de estados, u(t) ∈ Rm es el vector de entradas, y las matrices A ∈ Rn×n
y B ∈ Rn×m representan la matriz del sistema y la matriz de entradas, respectivamente, la tarea de
estabilización consiste en llevar el estado x(t) a 0, es decir, llevar la planta a la posición de reposo
x(t) = 0 por medio de la entrada u(t) (actuador).
Normalmente, una planta se estabiliza por medio de realimentación, es decir, se toma lectura por medio
de sensores del valor de sus variables fı́sicas (estados) y con base en esa lectura, se toman acciones que
se aplican por medio de los actuadores (entradas). Fı́sicamente los sensores en sistemas robóticos son
encoders o sensores de distancia, mientras que los actuadores suelen ser motores de CD o sistemas
motor-banda para movimientos traslacionales.
En el caso del modelo, el control por realimentación se representa como:
u(t) = F x(t), (23)
donde F ∈ Rm×n es una matriz de ganancias que indica cuánto de cada estado debe aplicarse a cada
actuador para conseguir la estabilización del estado.
26

¿Cómo se calcula F para conseguir la estabilización de un sistema? Eso lo contesta la teorı́a de control
examinando el sistema en lazo cerrado que es el sistema que resulta de sustituir el control (23) en el
sistema (22):
ẋ(t) = Ax(t) + B(F (x(t)) = (A + BF )x(t). (24)
Si el sistema de ecuaciones diferenciales lineales que describe la ecuación anterior es estable, es decir,
si sus estados x(t) van a 0 conforme t → ∞, entonces F es una ganancia estabilizante.
¿Pero qué caracterı́sticas tiene un sistema de ecuaciones diferenciales lineales que es estable? Esto lo
contesta el área de matemáticas relacionado con ecuaciones diferenciales. Dada una ecuación diferencial
escalar
dx
ẋ = ax(t), ⇔ = ax(t),
dt
decimos que puede resolverse por separación de variables
Z Z
dx dx
= (a)dt ⇒ = (a)dt ⇒ ln |x| = at + C ⇒ x(t) = eat+C = keat ,
x x
de modo que es evidente que
lim x(t) = 0 SI a < 0, y además lim x(t) → ∞ SI a > 0.
t→∞ t→∞

En una ecuación diferencial lineal escalar, la convergencia o divergencia del estado depende del signo
del escalar a.
¿Cómo se generaliza esto para sistemas de ecuaciones diferenciales agrupados en forma matricial? O
sea, sistemas como
ẋ(t) = Ax(t).
Se generaliza por medio de los conceptos de matriz definida-positiva o matriz definida-negativa, es decir,
una matriz cuyos valores propios tienen parte real positiva o negativa, respectivamente. Ası́ pues:
lim x(t) = 0 SI A < 0, y además lim x(t) → ∞ SI A > 0.
t→∞ t→∞

O sea que hay que examinar los valores propios de A. Los valores propios de una matriz A son los
valores s ∈ C tales que
det(sI − A) = 0.
Volviendo a la pregunta original, ¿qué valor de F permite que el sistema en lazo cerrado (24) con
ecuación ẋ(t) = (A + BF )x(t) sea estable? Será el valor de F que consiga que A + BF tenga valores
propios con parte real negativa. En el contexto de sistema lineales los valores propios de un sistema
también se denominan –en general– polos. Para conseguir parte real negativa en los valores propios de
A + BF primero debo de proponer dichos valores propios; normalmente se escogen valores propios
reales negativos. Debo escoger tantos como el grado del polinomio det(sI − A) o tantos como el
número de renglones/columnas de A o tantos como el orden del sistema (es lo mismo). Cuando los
escoja, suponiendo que son s1 , s2 , . . ., sn , entonces formo un polinomio con ellos α(s) = (s − s1 )(s −
s2 ) · · · (s − sn ); este polinomio se denomina polinomio deseado. Entonces, existe una fórmula que se
llama fórmula de Ackermann que me dice cómo debo calcular F para conseguir que A + BF tenga
valores propios iguales a las raı́ces del polinomio deseado, es decir, con parte real negativa; esta fórmula
es:
F = − 0 0 · · · 0 1 C −1 α(A),
 
(25)
| {z }
1×n

donde C es la matriz de controlabilidad del sistema (22):


C = B AB A2 B · · · An−1 B .
 

La fórmula de Ackermann está integrada en MATLAB; por ejemplo


27

1 A=[ 1 1;
2 2 3];
3 B=[ 0; 1];
4 F=-acker(A,B,[-1,-2]);

encuentra
 la ganancia
 F que pone los valores propios de A + BF en −1 y −2. Esa ganancia es
F = −8 −7 .

XII. U NIDAD 3: T ORQUE CALCULADO


Después de modelar plantas robóticas rı́gidas con ecuaciones del movimiento de Lagrange o ecua-
ciones de Lagrange-Euler o representaciones en variables de estado de la forma posición-velocidad o
Hamiltoniana (4 representaciones distintas), nos preguntamos qué debemos aplicar en los actuadores (que
están reunidos en el vector de fuerzas generalizadas τ (t)) para conseguir que las variables de junta q y
q̇ sigan una trayectoria deseada qd (t) con derivada q̇d (t), o sea, buscamos τ (t) para que al meterla en
esto:
M (q)q̈(t) + V (q, q̇) + G(q) = τ (t) (26)
consiga esto:
lim (qd (t) − q(t)) = 0, lim (q̇d (t) − q̇(t)) = 0.
t→∞ t→∞

Obviamente qd (t) es una trayectoria realizable en el espacio de trabajo del manipulador robótico.
Desgraciadamente las técnicas de control de la sección anterior NO pueden aplicarse directamente porque:
1) La planta en (26) NO está en modelo de espacio de estados.
2) El modelo (26) NO es lineal y los resultados de la sección anterior sólo aplican a modelos lineales.
3) Las técnicas de control de la sección anterior sólo sirven para estabilizar el sistema, es decir, para
llevarlo a 0 en todos sus estados; NO sirven para seguir trayectorias deseadas qd (t).
4) La fórmula de Ackermann sólo permite estabilizar sistemas con 1 entrada, no con varias como hay
en τ (t).
TAREA: Estabilice el sistema
   
−1 2 0 0
ẋ(t) = 2 6 −10 x(t) + 0  u(t),
   (27)
−3 1 7 −3
por realimentación de estados; indique qué orden tiene el modelo.
Para que el problema de seguimiento de trayectoria qd (t) por parte del sistema robótico se “parezca”
a un problema de estabilización es necesario escribir las ecuaciones del sistema que quiero llevar a cero,
es decir, las ecuaciones del sistema del error que es un sistema cuyos estados son las diferencias entre
señal deseada y señal de la planta:
   
e(t) qd (t) − q(t)
ē = ≡ ,
ė(t) q̇d (t) − q̇(t)
de donde ya se pueden obtener derivando las ecuaciones de estado del sistema del error:
      
d e(t) 0 I e(t) 0
˙ē = = + u(t), (28)
dt ė(t) 0 0 ė(t) I
donde definimos u(t) como la segunda derivada de e(t) que a su vez se puede calcular usando (26):
u(t) ≡ ë(t) = q̈d (t) − q̈(t) = q̈d (t) − M −1 (q)(τ (t) − V (q, q̇) − G(q)). (29)
¿Cómo ayudan estas transformaciones para garantizar el seguimiento de la trayectoria qd (t) por medio
de la señal τ (t)? De la siguiente manera:
1) Se calculan ganancias Kp , Kv tales que
 
  e(t)
u(t) = Kp Kv = Kp e(t) + Kv ė(t), (30)
ė(t)
28

estabilice el sistema del error (28).


2) Se despeja τ (t) de la relación (29) y esa es la señal de control que debe aplicarse a la planta, es
decir:
τ (t) = M (q)(q̈d − u(t)) + V (q, q̇) + G(q). (31)
La ley de control (37) se denomina torque calculado y aún presenta algunas dificultades de imple-
mentación:
1) Dificultad teórica: ¿Cómo determinar u(t) para estabilizar el sistema lineal del error (28)? Lo único
que conocemos que puede servir es la fórmula de Ackermann y aplica sólo a sistemas con 1 entrada.
2) Dificultad práctica: ¿Es posible conocer un modelo con tal exactitud que M (q), V (q, q̇) y G(q)
cancelen de verdad lo que deben cancelar y permitan obtener un sistema del error (28) “puro”?
Prácticamente nunca.
3) Dificultad teórico-práctica: ¿Se vale cualquier trayectoria deseada qd (t) que esté en el espacio de
trabajo del sistema robótico o hay otras limitaciones? Este es el problema de la unidad siguiente.
La señal τ (t) que es la que se aplica de verdad se denomina lazo interno de realimentación; la señal
u(t) que es “ficticia” y se incluye en τ (t) se denomina lazo externo de realimentación. Ver figura 19.
Para resolver el problema de diseño de u(t) se sugiere “desacoplar” el sistema utilizando estructuras
diagonales por bloques para las ganancias Kp y Kv , es decir:
kp1 0 · · · 0 kv1 0 · · · 0
   
 0 kp2 · · · 0   0 kv2 · · · 0 
Kp =   ... .. . . ..  , Kv =   ... .. . . . ,
. . .  . . .. 
0 0 · · · kpn 0 0 · · · kvn
donde cada elemento kpi o kvi es escalar.

Fig. 19. Esquema torque calculado.


29

Sustituyendo las ganancias diagonales en u(t) dentro del sistema del error (28) obtenemos lo siguiente:
        
d e(t) 0 I e(t) 0   e(t)
= + Kp Kv
dt ė(t) 0 0 ė(t) I ė(t)
kp1 0 · · · 0 kv1 0 · · · 0
   
 0 kp2 · · · 0   0 kv2 · · · 0  e(t)
      
0 I e(t) 0 
= +
I  ... .. . . . . .. . . .
     
0 0 ė(t) . . ..   .. . . ..  ė(t)
0 0 · · · kpn 0 0 · · · kvn
01
 

   02 
   kp1 e1 + kv1 ė1 ···
 
      
0 I e(t) 0  k e + k ė 0 I e(t) 0
 
 p2 2 v2 2  n

= + = +
 
0 0 ė(t) I  ··· 0 0 ė(t)  kp1 e1 + kv1 ė1 
  
kpn en + kvn ėn  k e + k ė 
 p2 2 v2 2 
 ··· 
kpn en + kvn ėn
ė1
 
 ė2 
···
 
    
ėn 0 I e(t)
 
= = .
 
 kp1 e1 + kv1 ė1  Kp Kv ė(t)
 k e + k ė 
 p2 2 v2 2 
 ··· 
kpn en + kvn ėn
Las ecuaciones de estado se pueden acomodar en el orden que sea porque contendrı́an la misma
información (por ejemplo, la segunda ecuación puede ponerse en el primer renglón y la del primero
en el segundo: seguirı́a siendo las mismas relaciones dinámicas). En el sistema anterior, por ejemplo,
podemos agrupar las ecuaciones 1 y n + 1, luego la 2 y la n + 2, hasta llegar a la n y la n + n = 2n,
es decir:
      
0 1 e1 (t) 0   e1 (t) 
+ kp1 kv1
        0 0 ė1 (t) 1 ė1 (t) 
e (t) 0 1 e (t)
 | {z }
d 1 1  
u1 =kp1 e1 (t)+k v1 ė 1 (t)
 dt ė1 (t)   kp1 kv1 ė1 (t)          
       0 1 e2 (t) + 0 k k
 e2 (t)  
 d e2 (t)   0 1 e2 (t)   p2 v2
   
 dt ė (t)   k  0 0 ė2 (t) 1 ė2 (t) 

 =  p2 kv2 ė2 (t)  =  .

 2  | {z }
 ..   ..  u2 =kp2 e2 (t)+k v2 ė 2 (t) 
  .   .  ..
     
  
 d en (t)   0 1 en (t)  
    .  
dt ė (t)  0 1 en (t) 0   en (t) 
kpn kvn ėn (t) + kpn kvn

n
 0 0 ėn (t) 1 ėn (t) 
 
| {z }
un =kpn en (t)+kvn ėn (t)

Gracias a este desacoplamiento, kpi y kvi para i ∈ {1, 2, . . . , n}, se pueden determinar usando
Ackermann n veces para fijar n pares de polos que pueden escogerse independientemente. ¿Qué significa
fı́sicamente escoger polos para cada subsistema? Significa escoger el tipo de respuesta (velocidad de
convergencia, sobreimpulso, comportamiento amortiguado, subamortiguado o crı́ticamente amortiguado)
de cada variable de junta, puesto que cada subsistema se refiere a una junta en especı́fico, es decir, kpi
y kvi controlan la respuesta para qi y su derivada q̇i e indican qué tan rápido, lento o con oscilaciones o
sin ellas, alcanzan las señales deseadas qdi y q̇di . Ası́ pues, si αi (s) = (s − si1 )(s − si2 ) es el polinomio
deseado para el subsistema i-ésimo, con polos en si1 y si2 , cada ganancia se determinarı́a como:
 0 1 −1
     
   0 1   0 1
kip kiv = − 0 1 αi = −1 0 αi , (32)
1 0 0 0 0 0
30

de donde se pueden escribir las entradas de u(t) como


 
  ei (t)
ui (t) = kip kiv = kip ei (t) + kiv ėi (t), i ∈ {1, 2, . . . , n}. (33)
ėi (t)
Example 16. Considere de nuevo el sistema RR descrito en el ejemplo 11 y continuado en el ejemplo
12, cuyas ecuaciones se reproducen abajo por conveniencia:
    
0.079 + 0.02 cos θ2 0.004 + 0.01 cos θ2 θ̈1 −0.02θ̇1 θ̇2 sin θ2 − 0.01θ̇22 sin θ2
+
0.004 + 0.01 cos θ2 0.004 θ̈2 −0.01θ̇1 θ̇2 sin θ2 + 0.01(θ̇12 + θ̇1 θ̇2 ) sin θ2
| {z } |{z} | {z }
M (q) q̈ V (q,q̇)
   
1.4715 cos θ1 + 0.1962 cos(θ1 + θ2 ) n
+ = 1 . (34)
0.1962 cos(θ1 + θ2 ) n2
| {z } | {z }
G(q) τ (t)

Determinemos τ (t) para que se siga una trayectoria factible en el espacio de trabajo del manipulador;
sea esta trayectoria deseada qd (t) la descrita por la circunferencia de radio 0.6m alrededor del origen.
Sin embargo, hay una infinidad de trayectorias que describen la misma circunferencia; podemos escoger
una parametrizándola en términos de tiempo, por ejemplo:
xd (t) = 0.6 cos(t), yd (t) = 0.6 sin(t). (35)
Lamentablemente esta trayectoria deseada está expresada en coordenadas cartesianas del efector final,
no en coordenadas de junta q que es como lo requiere (37). Para expresarlo en términos de variables de
junta utilizamos las relaciones de cinemática inversa, es decir:
x2 + yd2 − a21 − a22 √ D
C= d , D = 1 − C 2 , θ2d = arctan ,
2a1 a2     C
yd a2 sin θ2d
θ1d = arctan − arctan , (36)
xd a1 + a2 cos θ2d
donde claramente  
θ1d (t)
qd (t) = .
θ2d (t)
A partir de aquı́ podemos obtener q̈d (t) para implementar la ley de control (37) que se reproduce
enseguida:
τ (t) = M (q)(q̈d − u(t)) + V (q, q̇) + G(q), (37)
donde M (q), V (q, q̇) y G(q) se obtienen del modelo (34); falta definir u(t) como en (33). Para hacerlo
usamos la fórmula (32) que determina las ganancias de cada entrada en u(t). Como este es un sistema
robótico RR sólo hay 2 actuadores en τ (t) y por lo tanto 2 entradas en u(t); supongamos que queremos
polos estables −1 y −2 en cada junta; entonces:
       
    0 1 1 0 0 1 1 0
kip kiv = −1 0 + +2 , i ∈ {1, 2}, (38)
0 0 0 1 0 0 0 1
| {z }| {z }
A+I A+2I

de donde ya puede definirse


 
k1p (q1d − q1 ) + k1v (q̇1d − q̇1 )
u(t) = . (39)
k2p (q2d − q2 ) + k2v (q̇2d − q̇2 )
TAREA: (a) Verificar que el programa RR.mdl que llama a RR base.m realice el seguimiento de
trayectoria deseado; tanto si lo hace como si no, explicar por qué; (b) Si NO hace el seguimiento, corregir
los programas y explicar las correcciones. Puede ayudarse de los cálculos hechos en RR seguimiento.m
que sirvieron de base al cálculo.
31

Example 17. Considere de nuevo el sistema RP mostrado en la figura 14 y descrito por las ecuaciones
     
mr2 θ̈ + 2mrṙθ̇ −mgr cos θ n
− = , (40)
mr̈ mrθ̇2 − mg sin θ f
donde m = 0.5kg y g = 9.81m/s2 . Determinemos entradas n(t) y f (t) tales que el sistema siga una
trayectoria de limpiaparabrisas para el ángulo (entre 0 y π radianes, ida y vuelta) y de longitud variable
para la junta prismática (entre 0.1 y 0.2m, creciendo y decreciendo).
Solución: Existen infinidad de trayectorias que cumplen con las especificaciones dadas (piense, por
ejemplo, en que vaya de izquierda a derecha con mayor o menor rapidez, o que la junta prismática
“crezca” y “decrezca” a distintas velocidades). Sugerimos lo siguiente:
π sin2 t
 
2 2
θd (t) = π sin t, rd (t) = 0.1 + 0.1 sin t ⇒ qd (t) = .
0.1 + 0.1 sin2 t
TAREA: Concluir este ejemplo encontrando el n(t) y f (t) que permitan seguir la trayectoria deseada.
Hacer cálculos a mano y/o con MATLAB; simulaciones en Simulink.
Note que la primera y segunda derivadas de la trayectoria deseada son:
−2π sin2 t + 2π cos2 t
   
2π sin t cos t
q̇d (t) = , q̈d (t) = . (41)
0.2 sin t cos t −0.2 sin2 t + 0.2 cos2 t
Note que puede utilizarse la misma estructura de entrada de lazo externo u(t) del ejercicio anterior
(ecuación (39)) poque esta entrada sirve para estabilizar el sistema del error que al ser del mismo
tamaño es idéntico (o sea, hay sólo 2 juntas); también podemos utilizar las mismas ganancias (38)
porque estabilizan el sistema del error de orden 2; es decir:
−2(π sin2 t − q1 ) − 3(2π sin t cos t − q̇1 )
   
−2(q1d − q1 ) − 3(q̇1d − q̇1 )
u(t) = = . (42)
−2(q2d − q2 ) − 3(q̇2d − q̇2 ) −2(0.1 + 0.1 sin2 t − q2 ) − 3(0.2 sin t cos t − q̇2 )
Esta u(t) expresada en las variables del sistema es:
 
−2(π sin2 t − θ) − 3(2π sin t cos t − θ̇)
u(t) = (43)
−2(0.1 + 0.1 sin2 t − r) − 3(0.2 sin t cos t − ṙ)
y sustituida en la τ (t) que debe aplicarse para hacer seguimiento de la trayectoria deseada da lo siguiente:
−2π sin2 t+2π cos2 t
   2    
n(t) mr 0 −2(π sin2 t−θ)−3(2π sin t cos t− θ̇)
τ (t)= = −
f (t) 0 m −0.2 sin2 t +0.2 cos2 t −2(0.1+0.1 sin2 t−r)−3(0.2 sin t cos t− ṙ)
   
2mrṙθ̇ mgr cos θ
+ + .
−mrθ̇2 mg sin θ
El problema 10 del examen: En relación con el examen aplicado el año anterior, tenemos un sistema
RP como el de la figura 20 para el que el problema 10 pide una trayectoria tal que q2 = 0 cuando q1 = 0
y crezca hasta q2 = 1 cuando q1 = 180◦ y vuelva a q2 = 0 cuando q1 = 360◦ . Ası́ pues, sugerimos lo
siguiente:
q2d = sin2 (q1d /2).
Sin embargo, estas no son relaciones de tiempo para q1d y q2d , pero existen infinidad de soluciones que
dependen de t y cumplen la especificación anterior, por ejemplo, si q1d = 2t, entonces q2t = sin2 (2t/2) =
sin2 t.
TAREA: Realizar seguimiento de trayectoria por torque calculado para el sistema de la figura 18
proponiendo trayectorias que se correspondan a movimientos de ida y vuelta en ángulo y en juntas
prismáticas (sin llegar a 0 en estas últimas).
32

Fig. 20. Esquema RP examen.

XIII. U NIDAD 4: P LANEACI ÓN DE TRAYECTORIA


Las trayectorias deseadas para los manipuladores robóticos no siempre tienen fórmulas explı́citas
en términos del tiempo (como las que se utilizaron en la unidad anterior) ni pueden almacenar una
cantidad infinita de coordenadas de puntos por donde se desea que pase (por cuestiones de memoria en
computadora y/o microcontroladores). Ası́ pues, la solución habitual consiste en proporcionar puntos de
vı́a que es un conjunto finito de coordenadas cartesianas en el espacio de trabajo que normalmente se
convierten por cinemática inversa en coordenadas de junta (q). Una vez que se dan los puntos de vı́a
se asume una opción de varias posibles para trasladarse de un punto de vı́a al siguiente; las opciones
habituales son:
1) Interpolación polinomial: Se asume que cada coordenada de junta entre puntos de vı́a adopta una
forma polinomial de grado 3 porque de esta manera se garantizan aceleraciones y velocidades suaves
sin elevar el grado demasiado; ası́ pues, el polinomio deseado para la junta i-ésima en el tramo
k-ésimo serı́a:
qdi (t) = ai + bi (t − tk ) + ci (t − tk )2 + di (t − tk )3 , (44)
donde los coeficientes ai , bi , ci y di se determinan por medio de las condiciones de frontera, es
decir, las relaciones de posición y velocidad que debe de cumplir.
2) Funciones lineales con dobleces parabólicos: Se asume que cada coordenada de junta entre puntos
de vı́a se mueve de acuerdo a una transición lineal cuyo arranque y final tiene forma parabólica.
Gracias a esto, la velocidad aumenta al inicio, se mantiene constante en medio y se decrementa
linealmente al final. El polinomio de la junta i-ésima en el tramo k-ésimo serı́a:

 ai + bi (t − tk ) + ci (t − tk )2 , tk ≤ t ≤ tk + tb ,
qdi (t) = di + vi t, tk + tb ≤ t ≤ tk+1 − tb , (45)
 e + f (t − t ) + g (t − t )2 , t
i i k i k k+1 − tb ≤ t ≤ tk+1 ,

donde tb es un valor inferior a (tk+1 − tk )/2 que indica la duración del “doblez parabólico”.
3) Trayectorias de tiempo mı́nimo: Se busca el polinomio que garantice el recorrido de tiempo mı́nimo
entre un punto de vı́a y el siguiente, asumiendo que se conoce la aceleración máxima del actuador
correspondiente, denotada como aM , y que se utiliza para acelerar al máximo en la primera mitad
del perı́odo y su negativo −aM para desacelerar lo máximo posible en la segunda mitad del recorrido
entre puntos de vı́a. Su forma es:
q(tk ) + a2M (t − tk )2 , tk ≤ t ≤ ts ,

qdi (t) = (46)
qi (ts ) + q̇i (ts )(t − ts ) − a2M (t − ts )2 , ts ≤ t ≤ tk+1 ,
donde ts es el instante en que cambia de régimen (de aceleración máxima a desaceleración máxima).
33

Fig. 21. Puntos de vı́a.

En la figura 21 se aprecia el significado de puntos de vı́a y la multiplicidad de trayectorias posibles


que es todavı́a mayor que lo que se ve porque lo que aparece en esta figura es sólo la trayectoria en
posición, no la velocidad de recorrido que también es parte de las especificaciones.

Interpolación polinomial
Como en la unidad anterior, las trayectorias deseadas qd (t) deben proporcionarse para aplicar torque
calculado. Cuando éstas no pueden darse en forma explı́cita, se porporciona una serie de p puntos de
vı́a en coordenadas cartesianas (x0 , y0 , z0 ), (x1 , y1 , z1 ), . . ., (xp−1 , yp−1, zp−1 ), incluyendo las velocidades
a las que queremos que el manipulador pase por ahı́.
Ası́ pues, el primer paso para conseguir qd (t) consiste en convertir las especificaciones en coordenadas
cartesianas a coordenadas de junta para cada punto incluyendo la especificación de velocidades, es decir,
qd ∈ Rn y q̇d ∈ Rn , para cada punto, de manera que se cree la lista de coordenadas de junta deseadas
correspondientes a los instantes t0 , t1 , tp−1 :
qd1 (t0 ) q̇d1 (t0 )
   
 qd2 (t0 )   q̇ (t ) 
qd (t0 ) =  .  , q̇d (t0 ) =  d2 . 0 
 ..   .. 
qdn (t0 ) q̇dn (t0 )
qd1 (t1 ) q̇d1 (t1 )
   
 qd2 (t1 )   q̇d2 (t1 ) 
qd (t1 ) = 
 ...  , q̇d (t1 ) =  ... 
  

qdn (t1 ) q̇dn (t1 )


.. ..
. .
qd1 (tp−1 ) q̇d1 (tp−1 )
   
 qd2 (tp−1 )   q̇ (t ) 
qd (tp−1 ) =  .  , q̇d (tp−1 ) =  d2 .p−1  .
 ..   .. 
qdn (tp−1 ) q̇dn (tp−1 )
La interpolación polinomial determina el polinomio de grado 3 con la forma
qdi (t) = ai + bi (t − tk ) + ci (t − tk )2 + di (t − tk )3 , i ∈ {1, 2, . . . , n}, k ∈ {0, 1, . . . , p − 1}, (47)
que permite transitar de la coordenada de junta i-ésima en el instante tk a la coordenada de junta i-ésima
en el instante tk+1 , donde la velocidad inicial era q̇di (tk ) y la velocidad de llegada era q̇di (tk+1 ), es decir,
Parte de: qdi (tk ), q̇di (tk ) y llega a : qdi (tk+1 ), q̇di (tk+1 ).
34

Con base en estas especificaciones y asumiendo que T = tk+1 −tk tenemos que los coeficientes pueden
despejarse del sistema de ecuaciones:
      
1 0 0 0 ai qi (tk ) qdi (tk )
0 1 0 0   bi  =  q̇i (tk )  =  q̇di (tk ) 
     

1 T T 2 3 (48)
T   ci  qi (tk+1 ) qdi (tk+1 )
0 1 2T 3T 2 di q̇i (tk+1 ) q̇di (tk+1 )
que se obtiene escribiendo las ecuaciones de frontera (las que igualan lo que deseo a las coordenadas
de junta y evalúan el polinomio y su derivada en tk y tk+1 , o sea, un total de cuatro ecuaciones).
Example 18. Para ejemplificar la planeación de trayectoria deseada por interpolación polinomial, consid-
eremos el manipulador robótico RR del ejemplo 16 y 4 puntos de vı́a que se encuentren en la trayectoria
deseada que ahı́ se describe; es decir, en vez de utilizar:
xd (t) = 0.6 cos(t), yd (t) = 0.6 sin(t),
utilizaremos los puntos de vı́a (0.6, 0) (t = 0), (0, 0.6) (t = π/2), (−0.6, 0) (t = π) y (0, −0.6)
(t = 3π/2).
Como se indica arriba, debemos convertir estos puntos de vı́a de coordenadas cartesianas a coordenadas
de junta por medio de la cinemática inversa.
TAREA 16: (a) Reproducir los resultados para este ejemplo en MATLAB. (b) Modificar lo necesario
para que la trayectoria pase por 6 puntos separados por un perı́odo de T = 1. Mostrar la gráfica resultante.

Dobleces parabólicos
Cada segmento entre puntos de vı́a se divide en 3 segmentos: el inicial y el final correspondientes a
parábolas en las coordenadas de junta (aceleración y desaceleración constante); el segmento intermedio
correspondiente a desplazamiento lineal en coordenada de junta (velocidad constante). Estos segmentos
requieren determinar ai , bi , ci , di , ei , fi y gi con base en posiciones y velocidades deseadas como en la
interpolación polinomial, además del valor del tiempo de doblez tb y la velocidad constante del segmento
intermedio vi . Las fórmulas se encuentran en la ecuación (4.2.9) de [1].

 ai + bi (t − tk ) + ci (t − tk )2 , tk ≤ t ≤ tk + tb ,
qdi (t) = di + vi t, tk + tb ≤ t ≤ tk+1 − tb , (49)
 e + f (t − t ) + g (t − t )2 , t
i i k i k k+1 − tb ≤ t ≤ tk+1 ,

TAREA 17: Modificar lo necesario para que la trayectoria pase por los puntos de la tarea anterior,
utilizando dobleces parabólicos. Mostrar la gráfica resultante.

R EFERENCES
[1] F.L. Lewis, D.M. Dawson, and C.T. Abdallah. Robot manipulator control: theory and practice. CRC Press, 2003.

También podría gustarte