You are on page 1of 14

Universidad Politcnica de Sinaloa

Dinmica y control de robots


Formulario

Mazatln, Sinaloa a 8 de mayo de 2015

1.1 Vector de coordenadas generalizadas


Para obtener las ecuaciones de la dinmica para un robot manipulador es necesario
identificar las variables que definen la configuracin del robot en todo tiempo, de
manera general estas variables se agrupan en un vector que ser denotado como
q.
Para el caso de un robot manipulador con base fija este vector est compuesto por
los ngulos de las articulaciones del mismo, es decir:
1
1
2
2
=( )=( )=

Donde N es el nmero de articulaciones, qi es el elemento i del vector q, al cual se


le asigna la variable articular i con i {1,2 }.

3 -3
4 -4

5 -5

6 -6

2 -2

1 -1

1.2 Velocidades y aceleraciones articulares


La derivada del vector de coordenadas generalizadas se expresa como:

( )
1
1

2
= ( ) = (2 )

( ( ))

Y consiste en las velocidades articulares del robot. La segunda derivada es:


2
( )
2 1
1
2
2
= ( ) = 2 (2 )


2
( )
( 2 )
q=
q=Rad

=
=

= 2
=

1.3 Forma de las ecuaciones dinmicas


Para un robot manipulador la ecuacin que describe la dinmica, toma la forma
siguiente:
() + (, ) + () = (1)
Donde:
M(q) es una matriz de NxN llamada matriz de inercia del robot, la cual depende
exclusivamente del vector de coordenadas generalizadas q. La matriz (, ) es
tambin una matriz cuadrada de NxN llamada matriz de fuerza centrfuga y de
coriolis, la cual depende tanto de q como de , el vector g(q) es un vector de Nx1,
llamado vector de pares gravitacionales, el cual depende nicamente de q.
Finalmente es un vector de Nx1 el cual contiene los pares de los motores que
accionan cada una de las articulaciones del robot.
Haciendo nfasis en la dimensin de cada uno de los elementos de la ecuacin (1)
podemos reescribir:
1 1 1 1
+
+
=
()
(, )
()

Para un robot de 2 articulaciones N=2 la ecuacin (1) toma la forma:


(

1
11 () 12 () 1
(, ) 12 (, ) 1
()
) ( ) + ( 11
) ( ) + ( 1 ) = ( )
21 () 22 () 2
21 (, ) 22 (, ) 2
2 ()
2

Haciendo la multiplicacin se obtienen dos ecuaciones:


() 2 + 11 (, ) 1 + 12 (, ) 2 + 1 () = 1
11 () 1 + 12
() 2 + 21 (, ) 1 + 22 (, ) 2 + 2 () = 2
21 () 1 + 22

La obtencin del modelo dinmico para un robot manipulador consiste en encontrar


las expresiones de los elementos de la matriz de inercias , (), de la matriz de
fuerzas centrfugas y de coriolis , (, ) y del vector de pares gravitacionales ()
para {1,2, , }.
1.4 Formulacin de Euler-Lagrange
Utilizando la formulacin de Euler-Lagrange es posible obtener las ecuaciones del
modelo dinmico utilizando los conceptos de energa cintica y potencial.
El lagrangiano de un robot es la diferencia entre la energa cintica y la energa
potencial total del sistema, esto es:
(, ) = (, ) () (2)
Donde (, ) es el lagrangiano del robot, (, ) es la energa cintica y () es la
energa potencial total del robot. Enseguida se presentan las frmulas para calcular
estas dos expresiones, pero antes se ver la formulacin de Euler-Lagrange, la cual
establece que:

( )
=

Sustituyendo la expresin del lagrangiano (2) en la formulacin de Euler-Lagrange


(3) obtenemos:

(
((, ) ()))
((, ) ()) =

Y observando que la energa potencial no depende de las velocidades angulares


desarrollamos:

[
((, ))]
((, )) +
(()) =

Por claridad reescribimos la misma ecuacin sin dependencias, obteniendo:


+
=

1.5 Energa cintica y potencial
La energa cintica de cada uno de los elementos de los eslabones que componen
al robot consiste en una parte traslacional que considera toda la masa del robot
concentrada en su centro de gravedad y una parte rotacional que considera el giro
del objeto alrededor del centro de gravedad, esto es:
=


+
1
1

2
2

1
1
+
2
2

Donde es la masa del eslabn, es la velocidad lineal del centro de masa,


es su velocidad angular y finalmente es el tensor de inercia del cuerpo rgido. Los
tres trminos ( , e ) deben estar referenciados al marco base del robot (Marco
inercial).
Para poder calcular la matriz de inercia del cuerpo expresada en el marco inercial
es necesario calcular:
= [ ]

Donde es el tensor de inercia expresado en el propio marco unido al cuerpo


desplazado al centro como se muestra en la figura:

La matriz de inercia en un marco unido al eslabn, es constante y toma la forma:


= [

Donde los elementos de la diagonal principal ( , e ) son llamados momentos


principales de inercia y los elementos fuera de la diagonal principal son llamados
productos cruzados de inercia.
El valor numrico de esta matriz al igual que la masa de cada eslabn y sus
longitudes se consideran parmetros ya dados, generalmente el fabricante los
proporciona o es posible obtenerlos mediante el CAD del robot.
La energa potencial en cada eslabn est dada por el peso del mismo eslabn
multiplicado por su altura, esto es:
=
Donde es , g=9.81

la cual es la aceleracin gravitacional terrestre y es la

altura del centro de masa del eslabn i con respecto al marco inercial.
Debido a que con la asignacin de los ejes del marco inercial la altura puerde
corresponder al eje Y o al eje Z, por lo tanto la siguiente formula es til:
=
Donde g es el vector de aceleracin de la gravedad, = (0 0 ) para el caso en
el que el sentido vertical se encuentre en el eje Z o = (0 0) para cuando el
sentido vertical se encuentra en Y, de esta forma multiplicando por el vector de
posicin del centro de masa se obtiene:

= (0 0 ) ( ) =

o
= (0


0) ( ) =

A partir de las ecuaciones de energa cintica y potencial de cada cuerpo rgido es


posible calcular sus correspondientes totales al sumar cada uno de los elementos:

=1

Donde = 2 + 2 , por lo tanto:

=
=1

1
1
( + )
2
2
Y

=1

Donde = , por lo tanto:

( )

=
=1

1.6 Matriz de inercias


La expresin para calcular la energa cintica total de un robot manipulador
1

= =1 (2 + 2 ) considera la velocidad lineal del centro de masa


de cada uno de los eslabones as como su velocidad angular , estas
cantidades pueden expresarse de la forma siguiente ya considerando sus
dimensiones:
31 3 1
=

Y la velocidad angular:
31 3 1
=

Donde es llamado el jacobiano lineal del centro de masa y es el jacobiano


angular del eslabn i. Sustituyendo las velocidades en trminos de los jacobianos
en la frmula de la energa cintica se obtiene:

=
=1

1
1
( + )
2
2

Donde se utiliz el hecho que [. ] = , para el caso de las velocidades se


tiene que:
= [ ] =
= [ ] =
1

Factorizando el 2 , y se obtiene:

11 1
3 3 33 33 1
= 1
(
+
)

2
=1

Recordando la formulacin de Euler-Lagrange ( ( ) + = ) y la forma


del modelo dinmico ecuacin (1) se puede demostrar que:
1
= ()
2
Donde:

{ + }

() =
=1

() = ()
1.7 Matriz de fuerzas centrfugas y de coriolis (Coeficiente de Christoffel)
Ya calculada la matriz () se puede demostrar que los elementos de la matriz de
fuerzas centrifugas de coriolis se obtienen de:

()

=
=1

Donde:
1

= 2 [

] son los coeficientes de Christoffel.

Debido a la simetra de la matriz (), los coeficientes de Christoffel cumplen con


= para un fijo.
1.8 Vector de pares gravitacionales
Considerando la formulacin de Euler-Langrange y la forma del modelo dinmico
se puede observar que los elementos del vector de pares gravitacionales estn
dados por:
=

1.8.1 Resumen de frmulas

{ + }

() =
=1

()

=
=1

1
() = [
+

]
2

=
1.9 Posicin de los centros de masa
Una matriz homognea est definida por:

= (
0

, )
1

Considerando los marcos mostrados en la figura:

Las matrices homogneas que describieron la posicin y orientacin del marco


Y con respecto al marco estn dadas por:

= (
0

, )
1

= (
0

, )
1

La importancia del uso de las matrices homogneas radica en que al multiplicarlas


obtenemos:

= (
0

, ) (
1
0

= (
0

, ) = (
1
0

, + , ) = (
1
0

, + , )
1

, )
1

Para poder conocer la posicin de cada articulacin de un robot manipulador con N


articulaciones, se hace lo siguiente:
a) Se asignan marcos en la base del robot ( ) y en cada una de las
articulaciones ( con {1,2, , }).
b) Se identifica en que eje gira cada articulacin seleccionando la matriz de
rotacin adecuada:
1
= (0)

1 0
( ) = (0
0

= (1)
0

(
)
= ( 0

0
= (0)

( ) = (
0

0
) Si el giro es en X.

0
1
0

0 ) Si el giro es en Y.

0
0) Si el giro es en Z.
1

Donde =sin( ) y =cos( ) y se forma la matriz homognea correspondiente,


incluyendo los vectores de posicin adecuados:

1 = ( 1
0

1
2 = ( 2
0

,1 )
1

1,2 ) ;
1

c) Para encontrar la homognea que va de la base a cada una de las


articulaciones, se realizan las multiplicaciones correspondientes:

1 = 1

2 = 1 12

= 1 1

Las matrices homogneas contienen la matriz de rotacin y el vector de posicin de


la base al marco de cada articulacin como sigue:

= (
0

, )
1

O tomando en cuenta los elementos siguientes:

= (1: 3,1: 3)

, = (1: 3,4)

A partir de estos elementos es sencillo encontrar la posicin del centro de masa del
eslabn i como sigue:

, = , + ,

Donde , es el vector que va de la articulacin i al centro de masa del eslabn i


con respecto al marco , as como se muestra en la figura. (Dato del problema)

Eslabn i

1.10 Jacobiano lineal de centro de masa


Para obtener el Jacobiano lineal del centro de masa de cada eslabn se necesita
tomar en cuenta la posicin del propio centro de masa con respecto a la base, este
tiene tres componentes cartesianas, esto es:


= ( )

De forma general se puede decir que estas tres componentes, dependen o son
funcin del vector de coordenadas generalizadas , esto es:

1 ()
1 (1 , 2 )

= ( ) = (2 ()) = (2 (1 , 2 ))

3 ()
3 (1 , 2 )

Para encontrar la derivada con respecto al tiempo de una funcin que depende de
variables que a su vez estn en funcin del tiempo, se necesita recordar la regla de
la cadena, se tiene:
(1 , 2 , ) =
=

( , , )
1 2

1 +
2 + +

1
2

En forma matricial queda:

() = (
1

(
1

) ( 2)

Aplicando esto a las tres funciones correspondientes a la posicin del centro de


masa del eslabn i, se observa:
=
Donde:

1

=
1

[ 1


2

2

2

1.11 Jacobiano angular


Para calcular el jacobiano angular es suficiente notar que la velocidad angular de
cada uno de los marcos con respecto al marco anterior est dada por:

1 1
,1 =
1

2 2
1,2 =

3 3
2,3 =

(3)


1, =

es el eje en el que rota el marco i con respecto al marco 1, por ejemplo:


Donde
Convencin MATLAB

3
1
3 = (0)

1
2 = (0)

2
2,3

0
1 = (0)

0
,1

0
1
= (0) 3 = ( 0 )
3
0

0
1
= (0) 2 = ( 0 )
2
0
0
0
= (0) 1 = ( 0 )
1
1
1
1,2

Para sumar las velocidades angulares y obtener la velocidad angular de cada marco
con respecto a la base, se referencia cada vector con respecto a la base, como
sigue:

1 1
,1 =

(4)

,2 = ,1 + 1 11,2

, = ,1 + 1 11,

Sustituyendo (4) en (3) se obtiene:

1 1
,1 =

1 1 + 1
2 2
,2 =

1 1 + 1
2 2 + 2
3 3 + + 1

, =

En forma matricial quedara:

1
,1 = (

0 0

1
1 = (

1
,2 = (

1
2
0) 3

( )

0 0

2
1

1
2 = (

0)
1
2
0) 3

( )

2
1

0)

1
, = (

1
= (

2
1

2
1

3
2

3
2

1
2

) 3
1

( )

)
1