Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
Eje nuevo y1
1.5
α
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
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
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
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
0.9
yi zi
α
0.85
0.8
zicos(α)
yisin(α)
0.75
α
0.7
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 .
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
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 .
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
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
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◦
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
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 ω=θ̇
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.
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:
dθ
θ̇ = (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
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:
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)
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.
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
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
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
q̇
= , (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
¿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
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 .
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
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
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
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
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
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 ) = ...
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.