Beruflich Dokumente
Kultur Dokumente
Facultad: Ingeniera
Escuela: Electrnica
Asignatura: Fundamentos de Robtica
Tema: La caja de
Herramientas de Robtica (versin 7.0)
para Matlab parte
II
Manipuladores de Dinmica de
Cuerpos Rgidos.
(Formulacin recursiva de Newton Euler, dinmica directa, parmetros de
inercia de cuerpos rgidos).
Contenidos
Objetivos Especficos
Material y Equipo
N
Cantidad
Descripcin
Programa Matlab
Introduccion Teorica
La dinmica del manipulador tiene que ver con las ecuaciones del movimiento, el camino en el cual el
manipulador se mueve en respuesta a las torcas aplicadas por los actuadores, o fuerzas externas. La
historia y matemticas de la dinmica de los manipuladores en serie es bien cubierta por Paul[1] y
Hollerbach[11]. Hay dos problemas relacionados a la dinmica del manipulador que son importantes de
resolver:
Dinmica inversa en la cual las ecuaciones del movimiento del manipulador son resueltas para
un movimiento dado para determinar las fuerzas generalizadas, se extender en la seccin 6.1, y
Dinmica inversa en la cual las ecuaciones del movimiento se integran para determinar la
respuesta en coordenadas generalizadas a las fuerzas generalizadas aplicadas se discutir ms en
la Seccin 6.2.
Las ecuaciones del movimiento para un manipulador de n-ejes estn dadas por
Q M q q C q , q q F q G q
(6.1)
Donde
q
C describe los efectos de Coriolis y centrpeto Las torcas centrpetas son proporcionales a
q iq
Las ecuaciones pueden derivarse por medio de un nmero de tcnicas, incluyendo, por Lagrange
(basado en la energa), por Newton-Euler, por dAlembert [2, 12] o por el de Kane [13]. Los trabajos
ms tempranamente reportados fueron por Uicker [14] and Kahn [15] usando el enfoque de Lagrange.
Debido al enorme coste computacional O(n4), de este enfoque no fue posible calcular la torca del
manipulador para un control de tiempo real. Para lograr un desempeo en tiempo real fueron sugeridas
muchas aproximaciones, incluyendo tablas de asignacin [16] y aproximacin [17, 18]. La
aproximacin ms comn fue ignorar el trmino C de dependencia de velocidad, ya que el
posicionamiento preciso y el movimiento a altas velocidades son exclusivos en aplicaciones tpicas del
robot.
Mtodo
Multiplicaciones
Adiciones
ParaN=6
Multiplicaciones
DeLagrange[22]
86
171
1
4
32
1
2
5
12
53
n
1
3
25n
n
129
66
1
2
128
96
150n 48
131n 48
1
3
66271
42
1
3
Sumas
51548
NERecursivo[22]
852
738
Kane[13]
646
394
RNESimplificado[25]
224
174
Tabla 6.1. Comparacin de costos computacionales para dinmicas inversas de varias fuentes la ltima
adhesin se logra por simplificacin simblica usando el paquete de software ARM.
Orin [19] propone un enfoque alternativo basado en las ecuaciones de Newton-Euler (NE) del
movimiento de cuerpos rgidos aplicadas a cada eslabn. Armstrong [20] luego, mostr como la
recursividad puede aplicarse resultando en una complejidad de O(n). Luh [21] dio una formulacin
recursiva de las ecuaciones de Newton-Euler con las velocidades lineales y angulares referenciadas al
marco de coordenadas del eslabn. Ellos sugirieron una mejora de tiempo desde 7.9s para la
formulacin de Lagrange hasta 4.5ms, y as lleg a ser prctica la implementacin on-line.
Hollerbach [22] mostr como la recursividad puede aplicarse a la forma de Lagrange, y reducir los
clculos hasta dentro de un factor de 3 del NE recursivo. Silver [23] mostr la equivalencia de las
formas recursivas de Lagrange y Newton-Euler, y que la diferencia en eficiencia se debe a la
representacin de la velocidad angular.
Las ecuaciones de Kane [13] proveen otra metodologa para la derivacin de ecuaciones de
movimiento para un manipulador especfico. Se introducen un nmero de variables Z, las cuales no
necesariamente tienen significado fsico, guan a una formulacin dinmica con baja carga
computacional. Wampler [24] discute los costos computacionales del mtodo de Kane en algn detalle.
Las formas de NE y Lagrange pueden escribirse generalmente en trminos de los parmetros de
Denavit-Hartenberg Sin embargo las formulaciones especficas, tal como la de Kane, pueden tener el
ms bajo costo computacional para un manipulador especfico. Mientras las formas recursivas son
computacionalmente ms eficientes, las formas no recursivas calculan los trminos dinmicos
individuales (M, C y G) directamente. Una comparacin de los costos computacionales se dan en la
Tabla 6.1.
referencia de la base[1]. La Figura 6.1 muestra las variables involucradas en el clculo para un eslabn.
Ser usada la notacin de Hollerbach [22] y Walker y Orin [26] en la cual el superndice de la izquierda
indica el marco de coordenadas de referencia para la variable. La notacin de Luh [21] y luego Lee[7,
2] se considera menos clara.
Figura 6.1. Notacin usada para la dinmica inversa, basada en la notacin estndar de DenavitHartenberg.
Recursividad hacia delante,
1 i n
Si el eje i +1 es rotativo
i 1
i 1
i 1
i 1
(6.2)
i
i 1
R
i z 0 q i 1 i i z 0 q i 1
i1
i
i1
i1
i 1
i1R i i z 0 q i1
i 1
i1
i1 p
i 1
i1
i1
i1
i1
i1
i1
i1
i1
i 1
(6.3)
(6.4)
i 1
i1
i1
i1 p
i1
i1
i
i
(6.5)
Si el eje i +1 es prismtico
i 1
i 1
i1R
i 1
i1R
i 1
i 1
[1]
i1
(6.6)
(6.7)
i 1R i z 0 q
i1
i 1
v i i 1 i 1 p
i 1
(6.8)
Note que usando la notacin MDH con su convencin diferente de asignacin de ejes la
formulacin de Newton Euler se expresa de forma diferente [8].
i 1 R i z
i 1
i1
i 1
i 1
i1
i 1
i
i
i1
i1
v i i s ii i
i
i 1
v i
i 1
i 1
i 1
n i R
i1
i1
i 1
i1
i1
R iz0 q
i 1
(6.9)
(6.10)
(6.11)
i1
i 1
i 1
n R
f R
i
i1
i i J
f i iR
i1
(6.12)
s i iv
i
i
z0
i1 z 0
i 1
n i 1
i1
i
i
si
si
el
el
i1
i1
e s la b n
e s la b n
(6.13)
i
si F i N
i 1
i1
es
es
r o t a t iv o
p r is m t ic o
(6.14)
(6.15)
Donde:
i es el ndice del eslabn, en el rango de 1 a n.
i 1
es la matriz ortogonal de rotacin que define la orientacin del marco i con respecto al marco i
1. Es la porcin 33 superior de la matriz de transformacin de eslabones dada por:
i
cosi
i 1
R i s in i
0
i
c o s i s in
c o s i s in
s in i
i 1
i1
s in i s in i
s in i s in i
cos i
i1
(6.16)
(6.17)
*
i
es el desplazamiento desde el origen del marco i 1 hasta el marco i con respecto al marco i.
ai
d i s in i
d i c o s i
*
i
i 1
(6.18)
Note que la velocidad lineal del CDM dada por la ecuacin (6.4) o (6.8) no necesita calcularse ya que
ninguna expresin depende ms delante de ella. Las condiciones de frontera se usan para introducir el
efecto de la gravedad al colocar el efecto de la gravedad en el eslabn de la base.
(6.19)
(6.20
(6.21)
(6.22)
En esta etapa la Caja de Herramientas solo tiene la implementacin de este algoritmo usando la
convencin estndar de Denavit-Hartenberg.
5.2 Dinmica Directa
La ecuacin (6.1) puede usarse para calcular la as llamada dinmica inversa, esto es, la torca del
actuador como una funcin del estado del manipulador y es til para el control on line. Para la
simulacin la formulacin de la dinmica hacia delante, directa o integral se necesita, dando el
movimiento de las articulaciones en trminos de las torcas de entrada.
Walker and Orin [26] describen varios mtodos para calcular la dinmica directa, y todos hacen uso de
una solucin dinmica inversa existente. Usando el algoritmo RNE para la dinmica inversa, la
complejidad computacional de la dinmica directa usando el Mtodo 1 es O(n3) para un manipulador
de n-ejes. Sus otros mtodos son incrementalmente ms sofisticados pero reducen el costo
computacional, aunque se mantienen en O(n3). Featherstone [27] ha descrito el mtodo del cuerpo
articulado para O(n) clculos de la dinmica directa, sin embargo para n < 9 es ms costoso que el
enfoque de Walker y Orin. Otra mejora de O(n) para la dinmica directa se describe en Lathrop [28].
5.3 Parmetros de inercia de cuerpos rgidos
Modelos precisos basados en el control dinmico de un manipulador necesitan del conocimiento de los
parmetros de inercia de cuerpos rgidos. Cada eslabn tiene diez parmetros de inercia independientes:
m
tres primeros momentos, los cuales pueden expresarse como el lugar del CDM, s i , con respecto
S m isi
a algn dato en el eslabn o como un momento i
;
seis segundos momentos, los cuales representan la inercia del eslabn sobre un eje dado, tpicamente a
travs del CDM. Los segundos momentos en forma de matriz o tensor como:
J
J J
J
X X
X Y
X Z
J
J
J
X Y
YY
YZ
J
J
J
X Z
(6.23)
YZ
ZZ
Donde los elementos de la diagonal son los momentos de inercia, y fuera de la diagonal son productos
de inercia. Solo seis de estos nueve elementos son nicos: tres momentos y tres productos de inercia.
Para cualquier punto en un cuerpo rgido hay un conjunto de ejes conocidos como los ejes principales
de inercia para los cuales los trminos fuera de la diagonal, o productos, son cero. Estos ejes estn
dados por los autovectores de la matriz de inercia (6.23) y los autovalores son el momento principal de
inercia. Frecuentemente los productos de inercia de los eslabones de los robots son cero debido a la
simetra.
Un modelo dinmico de un manipulador de cuerpo rgido de 6 ejes as vincula 60 parmetros de
inercia. Puede haber parmetros adicionales por articulacin debidos a la friccin y a la inercia de la
armadura del motor. Claramente, establecer valores numricos para este nmero de parmetros es una
tarea difcil. Muchos parmetros no pueden medirse sin desmantelar el robot y realizar experimentos
cuidadosos, aunque este enfoque fue usado por Armstrong.[29]. Muchos parmetros podran derivarse
de los modelos CAD de los robots, pero esta informacin es frecuentemente considerada del
propietario y no est disponible para los investigadores.
Procedimiento
PARTE I. Dinmica inversa.
1. La dinmica inversa calcula las torcas de las articulaciones necesarias para lograr un estado
especfico de posicin, velocidad y aceleracin de las articulaciones.
La formulacin recursiva de Newton-Euler es un algoritmo eficiente orientado a matrices para el
clculo de la dinmica inversa y se implementa con la funcin rne().
La dinmica inversa requiere de los parmetros de masa e inercia de cada eslabn, como tambin
de los parmetros cinemticos. Esto se logra al aumentar la matriz de descripcin cinemtica con
columnas adicionales para los parmetros de masa e inercia para cada eslabn (vea la ltima Pg.).
Se va a aplicar el mtodo de Newton-Euler para la obtencin del modelo dinmico del robot de dos
grados de libertad 1 , d 2 con base fija de la Figura 6.2.
Figura 6.2. Sistemas de referencia del robot polar del numeral 1.
Paso 1. La asignacin de los sistemas de referencia segn D-H es la mostrada en la Figura 6.2. Los
correspondientes parmetros de D-H se muestran en la Tabla 6.2.
Articulacin
di
ai
-90
d2
m2 = 5 Kg
Vector de coordenadas del centro de masas del eslabn i respecto del mismo sistema:
1S = [0,0, L ] 2S = [0,0, 0]
1
1
2
Matriz de inercia del eslabn i respecto de su centro de masas:
1
0
I 1 0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
y todos los otros parmetros conocidos del robot como la inercia de cada motor, la relacin de los
engranes y la friccin.
Paso 3. Definir el problema en un archivo m.
Para el ejemplo anterior queda definido de la siguiente forma en un archivo llamado polar.m:
% POLAR Carga los datos de la cinematica y dinamica para un %manipulador polar
% del ejemplo 1
%
% POLAR
%
% Define el objeto 'pol' en el espacio de trabajo actual el cual describe las
% caracteristicas cinematicas y dinamicas del manipulador %polar del ejemplo 1
% usando la convencion estandar DH.
%
% Tambien define el vector qz el cual corresponde a la configuracion de angulo
% y desplazamiento cero de las articulaciones.
%
L{2}.m = 5;
% Vector de centro de gravedad de cada eslabon (esta variable es S en el libro)
L1 = 0.6;
L{1}.r = [0 0 L1];
L{2}.r = [0 0 0 ];
10
L{2}.B = 0;
% friccion de Coulomb (referenciada al motor)
L{1}.Tc = 0;
L{2}.Tc = 0;
%
% dos posiciones utiles
%
qz = [0 0]; % cero angulos y desplazamientos
pol.manuf = 'UDB';
Paso 4. Ejecutar la funcin rne() de la caja de herramientas de robtica:
>> polar
11
Puede usar el comando help rne para ver la sintaxis de la funcin y cambiar el vector de gravedad o
la carga en el elemento terminal, as para el cambio del vector de gravedad resulta:
>> tau = rne(pol, [0 1], [5 5], [1 1],[-9.81 0 0])
PARTE II. Dinmica directa.
3. La dinmica directa es el clculo de las aceleraciones de las articulaciones dados los estados de
posicin y velocidad, y las torcas de los actuadores. Es til en la simulacin de un sistema de
control de robot.
Considere el robot polar del numeral 1 con una velocidad en sus articulaciones de 5 rad/s y 5 m/s ,
respectivamente, en la posicin 1 = 0 rad d2 = 1 m con una torca en la articulacin 1 de 262.2 Nm y
una fuerza en la articulacin 2 de 120 N; la aceleracin de las articulaciones estara dada por:
>> accel(pol, [0 1], [5 5], [262.2 -120])
4. Para que sea til a la simulacin esta funcin debe integrarse. La funcin fdin() usa la funcin
de MATLAB ode45() para integrar la aceleracin de las articulaciones. Es una alternativa que
permite al usuario calcular la torca de las articulaciones en funcin del estado del manipulador.
A continuacin se simular el movimiento del Puma 560 desde el reposo en la posicin de ngulo cero
con una torca de cero aplicada a las articulaciones
>> puma560
>> plot(p560, q)
12
>> t = [0:.056:2];
Una trayectoria polinomial entre las 2 posiciones se calcula usando la funcin jtraj()
>> q = jtraj(qz, qr, t);
Para esta trayectoria particular mucho del movimiento es hecho por las articulaciones 2 y 3, y este
puede ser convenientemente graficado usando operaciones estndares de MATLAB.
>> subplot(2,1,1)
>> plot(t,q(:,2))
>> title('Theta')
>> xlabel('Tiempo (s)');
>> ylabel('Articulacin 2 (rad)')
>> subplot(2,1,2)
>> plot(t,q(:,3))
>> xlabel('Tiempo (s)');
13
>> subplot(2,1,2)
>> plot(t,qdd(:,3))
>> xlabel('Tiempo (s)');
entonces la transformacin homognea para cada conjunto de coordenadas de las articulaciones est
dada por:
>> T = fkine(p560, q);
donde T es una matriz de 3 dimensiones, las primeras dos dimensiones nos dan una transformacin
homognea de 44 y la tercera dimensin es el tiempo.
Por ejemplo, el primer punto es:
>> T(:,:,1)
14
>> grid
7. La cinemtica inversa tambin puede calcularse para una trayectoria.
Si tomamos una ruta Cartesiana en lnea recta:
>> t = [0:.056:2]; % crea a vector de tiempo
>> T1 = transl(0.6, -0.5, 0.0) % define el punto inicial
>> T2 = transl(0.4, 0.5, 0.2) % y el destino
Claramente este enfoque es lento, y no adecuado para un controlador real de un robot donde una
solucin cinemtica inversa puede necesitarse en pocos milisegundos
Vamos a examinar la trayectoria en el espacio de las articulaciones que da como resultado el
movimiento cartesiano en lnea recta:
>> subplot(3,1,1)
>> plot(t,q(:,1))
>> xlabel('Tiempo (s)');
>> ylabel('Articulacin 1 (rad)')
>> subplot(3,1,2)
>> plot(t,q(:,2))
>> xlabel('Tiempo (s)');
>> ylabel('Articulacin 2 (rad)')
>> subplot(3,1,3)
>> plot(t,q(:,3))
>> xlabel('Tiempo (s)');
>> plot(p560, q)
Parte V. Trayectorias dinmicas
15
8. Como con otras funciones, la dinmica inversa tambin puede calcularse para cada punto en una
trayectoria. Cree una trayectoria de coordenadas de las articulaciones y calcule la velocidad y la
aceleracin tambin:
>> [q,qd,qdd] = jtraj(qz, qr, t); % calcula la trayectoria en coord. de las art.
16
muchos desafos para el diseo del control en robtica, lograr estabilidad y altas prestaciones en la
faseta de la variacin de la planta. Efectivamente para este ejemplo la inercia vara en un factor de:
>> max(M11)/min(M11)
Anlisis de Resultados
Investigacin Complementaria
Bibliografa
[1] R. P. Paul, Robot Manipulators: Mathematics, Programming, and Control. Cam-bridge,
Massachusetts: MIT Press, 1981.
[2] K. S. Fu, R. C. Gonzalez, and C. S. G. Lee, Robotics. Control, Sensing, Vision and
Intelligence. McGraw-Hill, 1987.
[3] M. Spong and M. Vidyasagar, Robot Dynamics and Control. John Wiley and Sons,
1989.
[4] J. J. Craig, Introduction to Robotics. Addison Wesley, 1986.
[5] S. Hutchinson, G. Hager, and P. Corke, A tutorial on visual servo control, IEEE
Transactions on Robotics and Automation, vol. 12, pp. 651670, Oct. 1996.
[6] R. S. Hartenberg and J. Denavit, A kinematic notation for lower pair mechanisms based on
matrices, Journal of Applied Mechanics, vol. 77, pp. 215221, June 1955.
[7] C. S. G. Lee, Robot arm kinematics, dynamics and control, IEEE Computer, vol. 15,
pp. 6280, Dec. 1982.
[8] J. J. Craig, Introduction to Robotics. Addison Wesley, second ed., 1989.
[9] D. Whitney, The mathematics of coordinated control of prosthetic arms and manipu-lators,
ASME Journal of Dynamic Systems, Measurement and Control, vol. 20, no. 4,
pp. 303309, 1972.
[10] R. P. Paul, B. Shimano, and G. E. Mayer, Kinematic control equations for simple
manipulators, IEEE Trans. Syst. Man Cybern., vol. 11, pp. 449455, June 1981.
[11] J. M. Hollerbach, Dynamics, in Robot Motion - Planning and Control (M. Brady,
J. M. Hollerbach, T. L. Johnson, T. Lozano-Perez, and M. T. Mason, eds.), pp. 5171,
MIT, 1982.
[12] C. S. G. Lee, B. Lee, and R. Nigham, Development of the generalized DAlembert
equations of motion for mechanical manipulators, in Proc. 22nd CDC, (San Antonio,
Texas), pp. 12051210, 1983.
[13] T. Kane and D. Levinson, The use of Kanes dynamical equations in robotics, Int. J.
Robot. Res., vol. 2, pp. 321, Fall 1983.
[14] J. Uicker, On the Dynamic Analysis of Spatial Linkages Using 4 by 4 Matrices. PhD
17
18
19
Maquina No:
GL:
Docente:
Fecha:
EVALUACION
%
1-4
5-7
8-10
CONOCIMIENTO
25%
Conocimiento
deficiente de los
fundamentos
tericos
Conocimiento y
explicacin
incompleta de los
fundamentos
tericos
Conocimiento
completo y
explicacin clara
de los fundamentos
tericos
APLICACIN
DEL
CONOCIMIENTO
70%
No genera
conclusiones acerca
de las aplicaciones
prcticas de los
servomotores
Da observaciones
correctas pero no
completas.
Aplica
correctamente el
conocimiento y da
explicaciones
correctas de la
utilidad del
laboratorio
recibido.
No comprende la
utilidad del
procedimiento
ACTITUD
Aplica el
conocimiento a
situaciones
concretas
2.5%
Es un observador
pasivo.
Participa
ocasionalmente o
lo hace
constantemente
pero sin
coordinarse con su
compaero.
Participa
propositiva e
integralmente en
toda la prctica.
2.5%
Es ordenado; pero
no hace un uso
adecuado de los
recursos
Hace un uso
adecuado de los
recursos, respeta
las pautas de
seguridad; pero es
Hace un manejo
responsable y
adecuado de los
recursos conforme
a pautas de
Nota
20
TOTAL
100%
seguridad e
higiene.
Iyz
Ixz
Jm
0
0
0
0
0
0
0
0
0
0
0
0.020
0.953
2.193
0.782
0.106
0.097
1
1
1
1
1
1