Explora Libros electrónicos
Categorías
Explora Audiolibros
Categorías
Explora Revistas
Categorías
Explora Documentos
Categorías
METODOLOGA PARA
GENERACIN DE TRAYECTORIAS
DE MANIPULADORES
ROBTICOS, SU CINEMTICA Y
DINMICA
T E S I S
QUE PARA OBTENER EL GRADO DE
MAESTRO EN CIENCIAS
CON ESPECIALIDAD EN
INGENIERA MECNICA
P R E S E N T A :
2. Fundamentos Tericos...................................................................................... 16
2.1 Cinemtica de Manipuladores Robticos..................................................... 16
2.1.1 Representacin de la Orientacin entre Sistemas de
Coordenadas......................................................................................... 16
2.1.1.1 Matrices de Rotacin. ..................................................................... 17
2.1.1.2 Otros Mtodos para Representar la Orientacin de
Sistemas de Coordenadas. ........................................................... 22
2.1.2 Matrices de Transformacin Homognea. ............................................ 23
2.1.3 Asignacin de Sistemas de Coordenadas a Manipuladores
Robticos (Parametrizacin de Manipuladores Robticos)................... 26
2.1.4 Representacin de Denavit y Hartenberg. ............................................ 27
2.2 Dinmica de Manipuladores Robticos........................................................ 32
2.2.1 Formulacin de Bsica. ......................................................................... 34
2.2.2 Formulacin de Lagrange. .................................................................... 37
2.2.2.1 Dinmica Lagrangiana de un Manipulador de dos
grados de Libertad. ....................................................................... 38
2.3 Control de Manipuladores Robticos. .......................................................... 42
2.3.1 Control de la velocidad de motores de C.D. ......................................... 45
2.3.2 Ley de control en lazo abierto de manipuladores robticos. ................. 50
2.3.3 Ley de control del Torque Calculado..................................................... 51
CONCLUSIONES................................................................................................ 129
REFERENCIAS................................................................................................... 132
ANEXOS ...............................................................................................................A1
ANEXO 1. Programas en Matlab ....................................................................A2
ANEXO 2. Listado para el Modelado en Realidad Virtual del Robot
Mitsubishi Movemaster. .................................................................A14
ANEXO 3. Grficas correspondientes a las 21 posiciones que
conforman la trayectoria abc..........................................................A24
ANEXO 4. Programas del proyecto de implementacin. .................................A32
ANEXO 5. Diagramas de conexin del manipulador robtico
R3GL. ............................................................................................A39
ANEXO 6. Publicacin generada de sta tesis................................................A41
ndice de Tablas y Figuras
FIGURA 1.1 TELAR AUTOMTICO DE JACUARD................................................ 2
FIGURA 1.2 CONFIGURACIN CARTESIANA O PRISMTICA ........................... 5
FIGURA 1.3 CONFIGURACIN CILNDRICA. ....................................................... 6
FIGURA 1.4 CONFIGURACIN ESFRICA O POLAR.......................................... 6
FIGURA 1.5 CONFIGURACIN DE BRAZO ARTICULADO. ................................. 7
FIGURA 1.6 CONFIGURACIN SCARA ................................................................ 7
FIGURA 1.7 POSICIONAMIENTO Y ORIENTACIN DEL EFECTOR
FINAL. .................................................................................................. 8
FIGURA 1.8 ORIENTACIN DEL EFECTOR FINAL. ............................................. 8
i j k - vectores unitarios
- desplazamientos angulares
i - ngulo entre eslabones
ai , d i , i , i - parmetros de Denavit y Hartenberg
axyz - vector de posicin respecto al sistema de coordenadas xyz
auvw - vector de posicin respecto al sistema de coordenadas uvw
En este trabajo se presenta una metodologa que permite obtener los parmetros
necesarios para la generacin de trayectorias de manipuladores robticos fuera de
lnea, como son: los vectores de posicin angular que resulten en la configuracin
espacial del manipulador que se requiere durante la trayectoria deseada, y los
vectores de fuerza o torque necesarios para que se cumplan las condiciones
dinmicas de movimiento. Partiendo de un anlisis cinemtico y dinmico del
manipulador y de la tarea a desempear por este. Desarrollando tambin, las
herramientas de cmputo necesarias para este fin.
It is presented, as well, the experimental work done so far, which includes the
design and construction of a 3 dof robot manipulator, and the implementation of
control techniques for its operation.
The CD version (in HTML format) includes: the animation of the desired trajectory
followed by the robot manipulator, the programs of implementation for the PID
control techniques for the robot, the program for virtual modeling of the robot
manipulator, and the programs to solve the Kinematics and Dynamics with
MATlab, for its further use.
Actualmente, uno de los principales problemas que presentan las industrias que
tienen implementadas en su lnea de produccin clulas de manufactura robticas,
son los denominados tiempos muertos derivados de la reprogramacin de un
manipulador robtico. Esta, en el contexto de la industria nacional, es en su
mayora gestual y textual, lo que obliga a detener la lnea de produccin por
espacio de muchas horas, periodo en el cual, los tcnicos identifican en un modelo
fsico, los puntos que habrn de definir la trayectoria a seguir por el robot, para
posteriormente programar la secuencia de movimientos del mismo.
Objetivo.
Hoy en da, la industria nacional cuenta con una planta de aproximadamente 2,000
robots instalados, de los cuales un 60% tienen que ver con la industria automotriz
[52]. Se estima que, debido a la demanda en los mercados, la planta de robots
instalados crezca con un ritmo del 10% anual [53]. Por lo anterior es necesario
contar con el recurso humano que posea el nivel tcnico necesario para poder
llevar a cabo la integracin e implementacin de esta tecnologa en la planta
manufacturera nacional.
Por ltimo se presentan las conclusiones a las que se han llegado como resultado
del desarrollo de este trabajo. Adems de los anexos en los que se incluyen los
listados de los programas en Matlab, el listado para el modelado en realidad
virtual del manipulador, la representacin grfica de 21 posiciones que conforman
la trayectoria de estudio, los programas de implementacin del algoritmo de
control PID en un manipulador de 3 grados de libertad, los diagramas de conexin
del manipulador R3GL y las publicaciones generadas de este trabajo.
E
n
s
t
e
c
a
p
1. Estado del Arte
En 1973, se utiliza por primera vez una microcomputadora para controlar un brazo
robtico, desarrollado por Richard Horn para Cincinati Milacron Corporation [1,5].
Durante este tiempo, los tipos de configuraciones bsicas de robots que se han
establecido son las siguientes [9]:
Despus de este ao, es hasta 1997 cuando Rojas Garnica [56] presenta el
Diseo de un Mecanismo Atornillador para un Brazo Manipulador Robtico,
trabajo que no aporta conocimiento a la lnea de investigacin de robtica.
La cinemtica es el estudio del movimiento sin tomar en cuenta las fuerzas que lo
producen; esta estudia la posicin, la velocidad y la aceleracin del sistema [22].
......................(2.1)
ix iu ix j v ix k w
j y k w
R = j y iu j y j v
k z iu k z j v k z k w
......................(2.2)
1 0 0
R = 0 1 0 = I 3
0 0 1
Z,W
z w
k , k
j y , jv
Y, V
ix , iu O
X,U
Figura 2.1.- Representacin de sistemas de coordenadas.
j
mientras que iu es normal a y y k z , cuyo producto punto es cero. Cumplindose
lo anterior para las dems relaciones.
Z
Z w Z,W
w
v
jv j y , j z w
k , k v
kw
Y Y, Y
O O
ix , iu V O
X,U X X
u u
(a) (b) (c)
Figura 2.2.- (a) Rotacin alrededor del eje X, grados; (b) rotacin alrededor del eje Y, grados;
(c) rotacin alrededor del eje Z grados.
el caso que ilustra la figura 2.2(a), partiremos del hecho que iu es paralelo a ix y
j
normales a ix , pero ambos tienen proyeccin en y y k z . La matriz de rotacin
R3, que representa la orientacin resultante de una rotacin respecto al eje X,
grados es:
1 0 0
Rx, = 0 cos sen . . . . . . . . . . . . . .. . . . . . . . . . . (2.3)
0 sen cos
haciendo ahora un anlisis similar para los casos de las figuras 2.2(b) y (c),
obtenemos:
cos 0 sen
R y , = 0 1 0 . . . . . . . . . . . . . .. . . . . . . . . . . (2.4)
sen 0 cos
cos sen 0
Rz , = sen cos 0 . . . . . . . . . . . . . .. . . . . . . . . . . (2.5)
0 0 1
si auvw = [3,2,5]T
axyz = [ R ] [auvw]
cos 25 0 sen25 3 4.8320
0 1 0 2 = 2.0000
axyz = sen 25 0 cos 25 5 3.2637
R= Rotaciones y/o
traslaciones
I3 Rotaciones y/o
traslaciones
respecto a XYZ respecto a UVW
c 45 0 s 45 1 0 0 1 0 0 c10 s10 0 1 0 0
=
0 1 0 0 c30 s30 0 1 0 s10 c10 0 0 c(35) s (35)
s 45 0 c 45 0 s30 c30 0 0 1 0 0 1 0 s (35) c(35)
c 45 0 s 45 1 0 0 c10 s10 0 1 0 0
0 1 0 0 c30 s30 s10 c10 0 0 c(35) s (35)
=
s 45 0 c 45 0 s30 c30 0 0 1 0 s (35) c(35)
Puede ahora calcularse tambin el nuevo punto axyz para el punto dado auvw, de la
manera en que se explic anteriormente:
[ ]
buvw = [R ]T bxyz
b
si xyz es [5,3,2]T, el nuevo punto buvw estar dado por:
T
0.7578 - 0.1666 0.6309 5 2.9700
buvw = 0.1504 0.9854 0.0796 3 = 2.1923
- 0.6350 0.0346 0.7718 2 4.9369
Q = q0 + q1i + q2 j + q3 k ...................................(2.6)
donde:
q0 = componente escalar de Q , y
q = ( q1 , q 2 , q3 ) = componente vectorial
Q = (q0 , q ) ...................................(2.7)
P = ( p x , p y , p z ) en
T
un espacio tridimensional, que lo transforma en
Matriz Vector
R3 x 3 P3 x1 de de
T = =
Rotacin Posicin
P1x 3 E 1x1 Transforma cin de Perspectiva Escala
en donde:
ix iu ix jv ix kw px
j i j y jv j y kw py
T = y u (2.8)
kz iu kz jv kz kw pz
0 0 0 1
1 0 0 0 c 0 s 0 c s 0 0
0 c s 0 0 1 0 0 s c 0 0
Tx , = Ty , = Tz , =
0 s c 0 s 0 c 0 0 0 1 0
0 0 0 1 0 0 0 1 0 0 0 1
Figura 2.5.- Matrices de Bsicas de Rotacin Homogneas
0 0 0 x 0 0 0 u
0 0 0 y 0 0 0 v
Ttr = =
0 0 0 z 0 0 0 w
0 0 0 1 0 0 0 1
Figura 2.6.- Matriz de Traslacin Homognea Bsica.
Generalizando ahora lo antes dicho para el caso de las matrices de rotacin, una
matriz de transformacin homognea resultante no estar dada nicamente por
operaciones unitarias de rotacin y/o traslacin, sino por una secuencia de estas,
por lo que, para obtener la matriz de transformacin homognea resultante,
aplicaremos la misma metodologa que para el caso de matrices de rotacin R3.
De manera tal que:
T= Rotaciones y/o
traslaciones
I4 Rotaciones y/o
traslaciones
respecto a XYZ respecto a UVW
Tomando ahora como base a I4, ya que representa la condicin inicial en la que
ambos sistemas de coordenadas, mvil y referencia, coinciden en su posicin y
orientacin.
Estndar
Modificada
Figura 2.7 Diferentes convenciones para la asignacin
de sistemas de coordenadas
los ejes zi 1 .
Un eslabn puede ser considerado como un cuerpo rgido, el cual puede ser
descrito por dos parmetros, la longitud del eslabn y el giro del eslabn. Estos
parmetros definen la localizacin relativa de los ejes de articulaciones vecinas en
el espacio.
Asimismo, las articulaciones pueden ser descritas tambin por dos parmetros, el
descentramiento del eslabn, que es la distancia de un eslabn a otro prximo, a
lo largo del eje de la articulacin; y el ngulo de la articulacin, que es la rotacin
de un eslabn con respecto al prximo, alrededor del eje de la articulacin.
eje xi ;
del eje xi ;
del eje z i 1 .
zi 1
yi
ai
xi
xi
x i 1
i
zi
di
zi 1
zi 1
zi 1
i xi
yi 1
x i 1 yi 1 zi
...............(2.9)
cosi seni cosi seni seni ai cosi
sen cosi cosi cosi seni ai seni
i 1
Ai = i
0 seni cosi di
0 0 0 1
0
De manera tal que si tenemos un robot con 3 grados de libertad, la matriz T3
estar dada por:
0
T3 =0A1 1 A2 2 A3
0
La matriz de transformacin homognea [T]=
Tn , que especifica la posicin y
..........................(2.10)
n x sx ax px
n sy ay py
T = y
nz sz az pz
0 0 0 1
donde [n,s,a] nos representa la orientacin del sistema de coordenadas del efector
final con respecto al sistema de coordenadas de la base y [p] la posicin de este
con respecto a la base. De esta matriz se obtienen las ecuaciones de diseo del
manipulador, las cuales sirven como base para la solucin a la cinemtica inversa.
La dinmica del robot trata con las formulaciones matemticas de las ecuaciones
de movimiento del brazo, estableciendo un conjunto de ecuaciones que describen
su comportamiento dinmico. Estas ecuaciones son tiles para la simulacin en
computadora del movimiento del robot, el diseo de leyes de control adecuadas y
para la evaluacin del diseo y estructura del brazo [15].
La mayora de los manipuladores robticos son animados por actuadores
elctricos, pneumticos o hidrulicos, los cuales aplican torques (o fuerzas, en el
caso de actuadores lineales) a las articulaciones del robot. En donde las
ecuaciones de movimiento del manipulador determinan la respuesta de este a la
aplicacin de dichas fuerzas.
El modelo dinmico del robot se puede obtener a partir de leyes fsicas conocidas,
tales como la mecnica newtoniana y lagrangiana, estas conducen al desarrollo de
ecuaciones de movimiento dinmico para las diversas articulaciones del
manipulador, en trminos de los parmetros geomtricos e inerciales de los
elementos.
Un actuador tiene que balancear los torques de cuatro fuentes: el torque dinmico,
derivado del movimiento; torque esttico, debido a la friccin en el mecanismo, los
torques por gravedad, derivados por la accin de la gravedad sobre cada eslabn,
y fuerzas y torques externos que actan en el efector final. Tres tipos de torques
dinmicos se derivan del movimiento del manipulador: inercial, centrpeto y de
Coriolis [9].
Las leyes bsicas de la dinmica del manipulador pueden obtenerse a partir de las
leyes de Newton en conjunto con conceptos como el principio del trabajo virtual de
DAlembert, ecuaciones de Lagrange, y ecuaciones de Hamilton [15], [17]. En la
robtica, las dos formulaciones que comnmente se tratan son: la formulacin de
Newton-Euler, y la formulacin de Lagrange [9].
Fi = mi &
r&
i i = 1,2,..., n . . . . . . . . . . . . (2.11)
g j (r1 , , rn ) = 0 j = 1,..., k
k = no. de restricciones ..................... (2.12)
Una restriccin que puede ser escrita en esta forma, como una relacin algebraica
entre las posiciones de las partculas, es conocida como restriccin holonmica
[19], [20].
0 mn I rn . . . . . . . . . .. . . . (2.13)
donde los vectores 1 ,..., n son las bases para las fuerzas de restriccin, los
Los escalares 1 ,..., n son conocidos como los multiplicadores de Lagrange, cuyos
valores dan nicamente magnitudes relativas de las fuerzas de restriccin, dado
Dado que los valores de las coordenadas generalizadas son suficientes para
especificar la posicin de las partculas que conforman al robot, podemos
reescribir las ecuaciones de movimiento del sistema en trminos de stas, para
componentes en coordenadas generalizadas se hace referencia a estas fuerzas
como fuerzas generalizadas [16].
d L L
=i i = 1,2,..., n
dt q&i q i ........(2.14)
donde:
, as la ecuacin (2.14) se
reduce a la ecuacin (2.11). De hecho, reordenando la ecuacin (2.14), se
puede representar como:
d L L
= +
dt q& q . . . . . . . . . . . . . . . . . .(2.15)
0
Partiendo de la matriz T2 que corresponde a la solucin a la cinemtica directa de
este manipulador, se obtienen las expresiones para determinar las velocidades del
sistema, como se muestra a continuacin:
C1C2 C1 S 2 S1 l2 C1C2
S C S1 S 2 C1 l2 S1C2
0
T2 = 1 2
S2 C2 0 d1 + l 2 S 2
0 0 0 1
C 2&2
las velocidades angulares
0
1
0 = &1
0
y
0 C2 S2 0 0 C 2& 1
2
0 = 0 + S 2 C2 0 1 = S 21
& &
&2 0 0 1 0 &2
se calcula ahora la energa cintica para cada eslabn mediante:
1 &2
K1 = m 1 = 0
2
ya que el eje de rotacin pasa a travs del centro de masa, entonces
1 1
K 2 = m2 0V22 + m2 0 22 0
22 = 0 2 0 2T = S 22& 2 & &2 &2 &2
1 + C 2 1 + 2 = 1 + 2
2 2
2 2
como el eje de rotacin pasa a travs del centro de masa (siendo la velocidad
angular expresada en el sistema de coordenadas de la articulacin), la inercia no
tiene contribucin en la energa cintica de sistema (cuando este no es el caso, el
12 2 T
+ 2 0 J 2 0
segundo trmino existe y es de la forma ).
0
[
V22 = 0V2 0V2T = l 22 ( S1C2&
1 C1 S 2 2 ) + (C1C 2 1 S1 S 2 2 ) + C 2 2
& & 2
& 2 2
& 2
]
[ ] [ ]
= l 22 S12 C 22 + C12 C22 12 + l 22 C12 S 22 + S12 S 22 + C 22 22
= l 22 C 2212 + l 22 22
entonces:
K2 =
1
2
(
m2 l 22 C 22&2 &2
1 +2 )
y las energas potenciales para cada eslabn estn dadas como:
P1 = m1 gl1
P2 = m2 g (l1 + l 2 S 2 )
por lo que el Lagrangiano del manipulador es:
L = (K1 + K 2 ) (P1 + P2 )
1
(
= 0 + m2 l 22 C 22&
2
2 &2 )
1 + 2 m1 gl1 m2 g (l1 + l 2 S 2 )
L 1 2 2
= m2 l 2 &2 = m2 l 2 &
2
& &
2 2 2
1
L 1
= m2 l 22 C 22&
1 m2 gl 2 S 2
2
2 2 2
= m2 l 22 S 2 C 2& 1 m2 gl 2 C 2
2
d L
= m2 l 22&
&
dt &2
2
d L L
1 = = m2 l 22 C 22&
& &&
1 2m2 l 2 C 2 S 2 1 2
2
dt 1 1
d L L
2 = = m2 l 22&
& &2
2 + m2 l 2 S 2 C 2 1 + m2 gl 2 C 2
2
dt 2 2
que son las ecuaciones diferenciales que gobiernan el movimiento del
manipulador, expresando lo anterior en notacin matricial:
1 2 C 2
2
0 &
&
1 0 2 2 C 2 S 2 &&
0
= m2 l 2 & + m2 l 22 &
1 2 m2 l 2 1 2 +
2 0 1 &
2 S 2C2 0 m2 l 2 C 2
que de forma general puede escribirse como [15], [17]:
Por otra parte, las funciones de transferencia son modelos de planta que incluyen
tanto los efectos dinmicos del sistema, como la relacin esttica entre la entrada
y la salida. Dichos efectos hacen que la relacin entre la entrada y la salida varen
durante la transicin de un estado a otro. El principal efecto dinmico, en lo que
corresponde al control, es el retraso en el tiempo desde que se varia la entrada
hasta que la salida responde [9].
salida 1 1
= G ( s) = =
entrada mS + fS + k ( S + a )( S + b) . . . . . . . . . . (2.18)
2
= m&
&+ f&+ mgl . . . . . . . . . . . . . . . . . . . . (2.19)
V ( s) = (Ra + LS )I ( s ) + E ( s) . . . . . . . . . . . . . . . . . . . . (2.20)
Este torque hace que el motor gire la carga con una velocidad angular . El
torque del actuador es contrarrestado por el torque debido a la inercia y la friccin.
L = JS ( s) + f ( s) . . . . . . . . . . . . . . . . . . . . (2.22)
E ( s ) = K a ( s) = K m ( s) . . . . . . . . . . . . . . . . . . . . (2.23)
Entre ms grande sea la carga, ms lento rotar la armadura, reduciendo con esto
la fem de retorno e incrementando la corriente en la armadura para mover la
carga.
1 Km
=
V [
S (Ra + LS )(JS + F ) + (K m )
2
] . . . . . . . . . . . . . . . . (2.24)
K m ( Ra + LS )( JS + F )
=
I K m2 + ( Ra + LS )( JS + F ) . . . . . . . . . . . . . (2.25)
La tcnica que se emplea para variar la velocidad de un motor de c.d. consiste en
hacer uso de un amplificador, este controla el voltaje aplicado en las terminales del
motor, y por tanto, la velocidad de este.
V0
= Ka =
Vi ganancia del amplificador
t
V promedio = V1 1
t1 + t 2 . . . . . . . . . . . . . . . . . . . . (2.26)
Como las ganancias de voltaje y corriente son similares a aquellas del amplificador
de c.d., este amplificador tambin se modela como uno con ganancia constante.
No obstante, si un control electrnico simple es usado, una retroalimentacin de
voltaje puede ser requerida para hacer lineal el control en voltaje.
De manera general, son tres los tipos de respuestas que se pueden observar en
un sistema bajo control, estas son: sub-amortiguado, respuesta que se obtiene
cuando el valor del amortiguamiento es <1; crticamente amortiguado, cuando el
valor del amortiguamiento es =1; y sobre-amortiguado, cuando el valor del
amortiguamiento es >1.
En el espacio cartesiano se hace uso de la solucin a la cinemtica inversa para
calcular los ngulos que habrn de posicionar al efector final en la posicin y
orientacin deseada en el espacio. Las articulaciones se desplazan a esas
posiciones angulares y se asume que el manipulador se encuentra en la posicin
cartesiana correcta, si no existe algn elemento que permita cuantificar el
desplazamiento en las articulaciones, no habr certeza de si el manipulador se
encuentra en la posicin correcta. Lo anterior es conocido como control de lazo
abierto. Este modelo de control es tan exacto como lo sea el modelo de la planta,
asegurando que no hay perturbaciones que causen error, ya que las variaciones
mecnicas y/o del entorno, pueden causar errores en la posicin del efector final,
pues el modelo de control no es capaz de detectar ni corregir dicho error.
El uso de un modelo para predecir que accin tomar sobre la cantidad de energa
en uso, se conoce como control prealimentado o control predictivo. Este tipo de
control se utiliza para realizar ajustes en el sistema si la seal de retroalimentacin
esta retrasada y es necesario tomar una accin para mantener la respuesta del
sistema dentro de los lmites deseados.
Figura 2.14 Estructura bsica de control de posicin
Si se tiene un modelo perfecto del robot y (0) = d (0), (0) = d (0) , entonces,
& &
= M ( d )&d + C ( d , d ) d + N ( d , d )
& & & &
. . . . . . . . . . . . . . (2.27)
Dado que tanto como d satisfacen la misma ecuacin diferencial y tienen las
La ley de control de lazo abierto puede refinarse dando la posicin y velocidad real
del manipulador, cancelando todas las no linealidades y aplicando exactamente el
torque necesario para contrarrestar la inercia del actuador. La ley de control puede
expresarse como:
= M ( )&d + C ( , ) + N ( , )
& && &
. . . . . . . . . . . . . . . . (2.28)
&
&= &
&d . . . . . . . . . . . . . . . . . . . . (2.30)
= M ( )(&
& & K p e ) + C ( , &)&+ N ( , &)
d Kve . . . . . . . . . (2.31)
M ( )(e&
&+ K v e&+ K p e ) = 0 . . . . . . . . . . . . . . . . . . . . (2.32)
&+ K v e&+ K p e = 0
e& . . .. . . . . . . . (2.33)
Esta es la ecuacin diferencial lineal que gobierna el error entre las trayectorias
real y deseada. La ecuacin (2.31) es conocida como la ley de control del torque
calculado [19], que puede ser reescrita como:
= M ( )&d + C + N + M ( )( K v e
& K p e )
& &
1 4 44 2 4 4 43 1 4 4 4 2 4 4 43
ff fb . . . . . . . . . (2.34)
E
n
e
s
t
e
c
a
3. El robot de 5 Grados de Libertad Mitsubishi
Movemaster como Caso de Estudio.
A continuacin se describen los diversos modos en los que se pueden realizar los
movimientos del robot MITSUBISHI, para facilitar la localizacin de un punto en
especial.
A rticulacin
i i ai di
1 1 90 0 300
2 2 0 250 0
3 3 0 160 0
4 4 -90 0 0
5 5 0 0 72
i 1
De la cual se obtienen las matrices de transformacin homognea Ai :
C1 0 S1 0 C 2 S 2 0 250C 2
S 0 C1 0 S C 2 0 250S 2
1 2
0 1 0 300 0 0 1 0
0
A1= 0 0 0 1 1
A2= 0 0 0 1
C 3 S 3 0 160C 3 C 4 0 S 4 0
S C 3 0 160S 3 S 0 C 4 0
3 4
0 0 1 0 0 1 0 0
2
A3= 0 0 0 1 3
A4= 0 0 0 1
C 5 S 5 0 0
S C 5 0 0
5
0 0 1 72
4
A5= 0 0 0 1
C1C 234C5 S1 S 5 C1C 234 S 5 S1C5 C1 S 234 72C1S 234 + 160C1C 234 + 250C1C 2
S C C + C S S1C234 S 5 + C1C5 S1 S 234 72S1 S 234 + 160S1C234 + 250S1C2
1 234 5 1 5
Como ejemplo, la matriz [M] que se obtiene para ngulos de entrada 1... 5 = [ /2
0 0 /2 0], que corresponden a la posicin de origen seleccionada y con
longitudes de los eslabones L1...L4 = [300 250 160 72] es:
cdmover(vv,vc)
ans =
xj = x j + xj ..............................................(3.3)
fi
j xj
xj = fi ( x1, x 2,..., xn)
.........................(3.4)
J x = -f .....................................................(3.5)
fi
=
J xj .....................................................(3.6)
y,
x1
x 2
x =
xn ....................................................(3.7)
fi ( x1, x 2, , xn)
f 2( x1, x 2, , xn)
=
f fn( x1, x 2, , xn) ..........................................(3.8)
i
Figura 3.9 Punto ri en el sistema de coordenadas de la articulacin.
Si establecemos un punto cuyo vector de posicin, expresado en el sistema de
i
coordenadas de la articulacin ri (como se muestra en la figura 3.9) y como el
inters se concentra en el sistema de coordenadas de la base, se establece que:
0
vi vi =
d
dt
( r ) = dtd (
o
i
0
)
Ai i ri =
= 0 A&1 1 A2 ...i 1 Ai i ri + 0A1 1 A&2 ...i 1 Ai i ri + ...+ 0A1 ...i 1 A&i i ri + 0A1 ...i 1 Ai i r&
i
i 0Ai i
= q r i = 0
j =1 q &j i
ya que i
r&
j ................................................(3.11)
0
La derivada parcial de Ai con respecto a q j se calcula fcilmente con la ayuda de
0 1 0 0
1 0 0 0
Qi =
0 0 0 0
0 0 0 0 ..................................................(3.12)
0 0 0 0
0 0 0 0
Qi =
0 0 0 1
0 0 0 0 ..................................................(3.13)
de manera que:
i 1Ai
= Qi i 1 Ai
qi ..................................................(3.14)
de aqu que, para i = 1, 2, ..., n .
0Ai 0 A1 1 A2 ... j 2 A j 1Q j j 1
A j ...i 1 Ai . . . para j i
=
q j 0 para j > i . . . . . (3.15)
articulacin j , sobre todos los puntos del elemento i . Con el fin de establecer una
notacin simplificada y compacta se define,
0Ai 0 A j 1Q j j 1
Ai . . . para j i
U ij =
q j 0 para j > i ....................(3.16)
i
vi = Uijq&j i ri
j =1 ..................................................(3.17)
0
A j 1Q j j 1 Ak 1Qk k 1 Ai ik j
U ij
U ijk = 0
Ak 1Qk k 1 A j 1Q j j 1 Ai i jk
q k
0 i< j i<k
.......(3.18)
[Traza (U )]
n i i
2
=1 ip J jU irT q&p q&r
i =1 p =1 r =1 ...........................(3.19)
P = i =1 Pi = i =1 mi g 0 Ai i ri
n n
[ ( )] ..........................(3.20)
Una vez determinadas las energas cintica y potencial del sistema, se pueden
establecer las ecuaciones de movimiento del manipulador.
[Traza(U )] [ ( )]
n i i n
2
L= 1 ip J jU irT q&p q&r + mi g 0 Ai i ri
i =1 p =1 r =1 i =1 .....(3.21)
de manera tal que el par generalizado i dado por la formulacin de Lagrange es:
d L L
i =
dt q&i qi
Tr (U jk J )q&& + Tr (U )q&q& m
n j n j j n
= T
jU ji k jkm J
T
jU ji k m jqU ij
j
rj
j = i k =1 j = i k =1 m =1 j =1 ......(3.22)
para i = 1, 2, . . ., n . La Ecuacin anterior se puede expresar en notacin matricial
como:
n n n j
i = Dik q&
&k + hikm q&k q&m + ci i = 1, 2, . . . , n
k =1 k =1 m =1 m =1 ........(3.23)
Una vez conocidos los valores de posicin, velocidad y aceleracin del sistema,
estos se sustituyen en la formulacin dinmica del manipulador. Para esto se
desarrollaron los listados num1, num2 y num3 (ver Anexo 1) que emplean los
datos derivados de la solucin a la cinemtica inversa, para la solucin numrica
de la dinmica del robot, al conjunto de listados les corresponde el diagrama de
flujo que se muestra en la figura 3.10.
E
n
s
t
e
c
a
p
4. Generacin de Trayectorias.
Esto es, si el robot habr de seguir una trayectoria deseada durante un periodo de
tiempo T , esta estar definida, para un instante (t), por los siguientes parmetros:
posicin, orientacin, velocidad y aceleracin del efector final.
Si se desea que el manipulador pase de un punto A a un punto B dentro de una
trayectoria, no existe ningn elemento que asegure que la trayectoria descrita por
el efector final sea una lnea recta, ya que por la configuracin de cadena abierta
del manipulador y por la naturaleza del control, las diferentes articulaciones de
este, se movern de manera tal que estas converjan en la posicin angular
deseada, lo que da como resultado la posicin y orientacin angular deseadas en
el espacio cartesiano. Por lo que el efector final describir una trayectoria en base
a los desplazamientos de las articulaciones, lo que no necesariamente es una
lnea recta (Figura 4.1).
En algunos casos, la trayectoria que siga el efector final entre los puntos A y B,
puede no ser de gran inters, pero si existe algn objeto u obstculo con el que el
manipulador pudiese colisionar, o bien, el proceso que realiza este, exige que la
trayectoria a seguir sea una lnea determinada, entonces se definirn tantos
puntos como se considere necesario para que efectivamente el efector final del
manipulador describa la trayectoria deseada entre los dos puntos.
1 0 0 250 1 0 0 250
0 1 0 250
g= , h = 0 1 0 150
0 0 1 150 0 0 1 150
0 0 0 1 0 0 0 1
Analizando la figura 4.4, se observa que la trayectoria a seguir se compone por un
conjunto de trayectorias parciales, que se definen de la siguiente manera:
1. 1. Trayectoria ab recta
2. 2. Trayectoria bc arco de circunferencia
3. 3. Trayectoria cd recta
4. 4. Trayectoria de arco de circunferencia
5. 5. Trayectoria ef recta
6. 6. Trayectoria fg arco de circunferencia
7. 7. Trayectoria gh recta
8. 8. Trayectoria ha arco de circunferencia
0 1 0 40 0 1 0 80 0 1 0 120
1 0 0 100 1 0 0 100 1 0 0 100
A6 = , A7 = , A8 = ,
0 0 1 150 0 0 1 150 0 0 1 150
0 0 0 1 0 0 0 1 0 0 0 1
0 1 0 160 0 1 0 200
1 0 0 100 1 0 0 100
A9 = , B= ,
0 0 1 150 0 0 1 150
0 0 0 1 0 0 0 1
Se determina los desplazamientos X y y , ya que en z el valor se mantiene
constante, a partir del punto b hasta el punto c. Como se muestra en la figura 4.7.
Figura 4.7 Anlisis de la Trayectoria Parcial bc.
En donde:
X = r sen
y
Y = r r cos
Con esta relacin se pueden determinar tantos puntos como se desee para definir
la trayectoria parcial. Para este caso, se establecen 10 puntos para la definicin de
la trayectoria, los cuales se generan de manera automtica con la funcin traycirc
(Anexo1) desarrollada en Matlab, de donde se obtienen los siguientes puntos:
Para la trayectoria abc de la figura 4.4, que ha sido definida por 21 matrices de
transformacin homognea, se obtienen los siguientes vectores de posicin
angular en grados a partir de la solucin a la cinemtica inversa del manipulador:
26.565 1 32.0054 39.8056 51.3402
19.0243 17.2037 12.9419 6.2761
a = - 113.5907 a1 = - 125.4646 a 2 = - 136.071 a 3 = - 145.1048
- 85.4336 - 71.7391 - 56.8709 - 41.1713
- 63.4349 - 57.9946 - 50.1944 - 38.6598
149.0362
17.0127
c = - 87.8624
- 109.1503
149.0362
Para las dems trayectorias parciales, se hace un anlisis similar con el fin de
determinar las ligaduras de camino necesarias, para que el efector final del
manipulador describa de manera fiel la trayectoria principal deseada.
Ya que la trayectoria abc (figura 4.4) est compuesta por dos trayectorias
parciales, ab y bc, se determina el tiempo en el que se habrn de cubrir cada una
de estas trayectorias parciales de la siguiente manera: la trayectoria abc est
definida por un total de 21 puntos, de los cuales, los primeros 10 puntos definen la
trayectoria parcial ab, con una longitud total de 400mm; y los siguientes 11 puntos,
definen la trayectoria parcial bc con una longitud total de 196.35mm. Con esta
informacin es posible establecer una relacin que permita determinar el tiempo
que corresponde para describir cada una de las trayectorias parciales.
596.35mm 3 min
400.00mm x
x = 2.0122min = 120.7345seg
como esta trayectoria est definida por 10 puntos, el intervalo de tiempo entre
posiciones es de 12.07345seg.
Tabla 4.3 Torques aplicados en las articulaciones para generar la trayectoria abc (N-m)
Torque 1 Torque 2 Torque 3 Torque 4 Torque 5
0.0004870214 27.1975313380 -0.6250001102 -0.0000360868 -0.0000203874
0.0001436039 25.6540508720 -2.4591168747 0.0000004178 -0.0000001207
0.0002306826 24.3931644180 -4.2891295760 0.0000010117 -0.0000004156
0.0003267300 23.3460505000 -5.9075255540 0.0000029780 -0.0000008443
0.0002872534 22.4473828030 -6.9774428291 0.0000048964 -0.0000009731
-0.0000195852 22.0167453970 -7.3175516817 0.0000006752 0.0000010249
-0.0003060936 22.4473334410 -6.9774727159 -0.0000054527 0.0000039083
-0.0003262149 23.3460232730 -5.9075595117 -0.0000051326 0.0000030425
-0.0002236030 24.3931574470 -4.2891514369 -0.0000028497 0.0000013002
-0.0001347403 25.6540491630 -2.4591287130 -0.0000014141 0.0000004537
-0.0007662548 27.1974020300 -0.6251277793 -0.0000696256 0.0000442875
-0.0001241159 27.5453211290 -0.2601140452 0.0000004116 0.0000000111
-0.0001206671 27.9199038290 0.1173299862 0.0000001852 0.0000000050
-0.0001148534 28.3114570210 0.4965393357 -0.0000000404 -0.0000000028
-0.0001075126 28.7097671910 0.8680522409 -0.0000015159 -0.0000000029
-0.0000991848 29.1047345520 1.2239161353 -0.0000017680 -0.0000000013
-0.0000899836 29.4866611150 1.5575301656 -0.0000007771 -0.0000000042
-0.0000803898 29.8465309040 1.8634468187 0.0000002307 -0.0000000158
-0.0000703488 30.1761153720 2.1371997960 0.0000000432 -0.0000000416
-0.0000598403 30.4682095670 2.3751778503 -0.0000013594 -0.0000000613
0.0005877206 30.7167068910 2.5744521587 -0.0000049808 0.0000005784
Figura 4.16 Torque articulacin 1
Con este anlisis se puede determinar el valor nominal mximo del torque
necesario en las articulaciones, para que el manipulador siga la trayectoria
deseada. Sobre la base de este anlisis y modificando las condiciones de
movimiento, es posible determinar el valor de torque mximo para la seleccin de
los elementos actuadores, que habrn de animar al manipulador.
Derivado del anlisis anterior, se puede observar que los valores para los torques
2 y 3 son significativamente mayores en su magnitud, que aquellos para el resto
de las articulaciones. Esto obedece a que las articulaciones 2 y 3 experimentan
mayores desplazamientos, adems de que por la configuracin espacial del
mecanismo del manipulador, son los nodos en donde existe una mayor reaccin
como resultado de las cargas en los elementos. En tanto que en el resto de las
articulaciones, los valores de pares a aplicar son menores, en comparacin con
los dos mencionados.
Tabla 4.4.- Torques considerando una carga de 1.5 k.g en el efector final (N-m)
Torque 1'' Torque 2'' Torque 3'' Torque 4'' Torque 5''
0.0005511658 30.4878396010 -0.8125289751 -0.0000631519 -0.0000356779
0.0001471379 28.4304706650 -3.1968527155 0.0000007311 -0.0000002113
0.0002364060 26.6917201230 -5.5758684624 0.0000017705 -0.0000007272
0.0003340472 25.2304930840 -7.6797795846 0.0000052116 -0.0000014775
0.0002925591 24.0322442400 -9.0706648234 0.0000085688 -0.0000017030
-0.0000224890 23.4882464430 -9.5128031741 0.0000011817 0.0000017935
-0.0003164518 24.0321773410 -9.0707069170 -0.0000095423 0.0000068395
-0.0003345241 25.2304518500 -7.6798264182 -0.0000089820 0.0000053243
-0.0002270446 26.6917067090 -5.5758982872 -0.0000049870 0.0000022754
-0.0001351820 28.4304660610 -3.1968688476 -0.0000024747 0.0000007940
-0.0008906908 30.4876612510 -0.8127383216 -0.0001218447 0.0000775032
-0.0001276212 30.9429678030 -0.3381489446 0.0000007202 0.0000000194
-0.0001243601 31.4304265330 0.1525285577 0.0000003241 0.0000000088
-0.0001187134 31.9372857690 0.6455010268 -0.0000000708 -0.0000000049
-0.0001115249 32.4503989560 1.1284675576 -0.0000026529 -0.0000000050
-0.0001032964 32.9570132790 1.5910909032 -0.0000030940 -0.0000000022
-0.0000940889 33.4450633920 2.0247899538 -0.0000013600 -0.0000000073
-0.0000844085 33.9034524930 2.4224823829 0.0000004036 -0.0000000277
-0.0000741878 34.3221413500 2.7783614564 0.0000000756 -0.0000000728
-0.0000633733 34.6923924460 3.0877325218 -0.0000023789 -0.0000001072
0.0006156428 35.0068224650 3.3467956179 -0.0000087164 0.0000010122
De las grficas anteriores se observa que entre los torques calculados inicialmente
y aquellos obtenidos considerando una carga en el efector final de 1.5kg, existe
una correspondencia cualitativa en cuanto al comportamiento de los torques a
aplicar en las articulaciones, en tanto que no existe una correspondencia
cuantitativa, pues es necesaria una mayor demanda de torque en los actuadores
del robot para manipular una carga mayor.
En
ste
capt
ulo
se
pres
enta
el
traba
5. Desarrollo Experimental Derivado de este Trabajo.
Cada una de las articulaciones cuenta con un sensor (encoder) de tipo absoluto,
que representa el ngulo de posicin de un eslabn con respecto al eslabn
anterior.
El algoritmo de control PID es parte del desarrollo de este proyecto, este control
precisa de la informacin que otorga la retro-alimentacin, para poder determinar
la posicin angular de cada articulacin.
Una vez que el Micro Controlador ha realizado los clculos necesarios del control,
este nos arroja seales (en los pines del puerto del microcontrolador) que nos
representan la velocidad, arranque, paro y sentido de giro de un motor de corriente
directa.
Estas seales deben de ser acondicionadas de tal forma que tengan la potencia
necesaria para mover el motor de CD; esto se logra con la etapa de potencia en
donde se emplean circuitos en configuracin tipo H para controlar el giro del
motor, as como la velocidad del mismo.
Figura 5.1 Dimensiones generales (en mm) del manipulador R3GL, vista lateral .
Figura 5.2 Dimensiones generales (en mm) del manipulador R3GL, vista superior
Figura 5.3 Dimensiones generales (en mm) del manipulador R3GL, vista frontal
5.1.2 Modelado Matemtico y Solucin a la Cinemtica Directa e
Inversa.
Una vez que se han determinado los sistemas de coordenadas para cada
articulacin (Figura 5.5), se obtienen los parmetros de Denavit-Hartenberg (Tabla
5.1).
Tabla 5.1 Parametros de D-H para el robot R3GL
ARTICULACION d a
1 0 -90 148 33
2 0 0 0 270
3 0 0 0 160
4 90 90 0 0
5 0 0 130 0
C 3 S 3 0 DC 3 C 4 0 S 4 0
S C 3 0 DS 3 S 0 C 4 0
3 4
0 0 1 0 0 1 0 0
2
A3= 0 0 0 1 3
A4= 0 0 0 1
C 5 S 5 0 0
S C 5 0 0
5
0 0 1 E
4
A5= 0 0 0 1
C1C 234C5 S1S 5 C1C 234 S 5 S1C5 C1S 234 C1 (ES 234 + DC23 + CC 2 ) + AC1
S C C + C S S1C 234 S 5 + C1C5 S1S 234 S1 (ES 234 + DC23 + CC 2 ) + AS1
1 234 5 1 5
S 234C5 S 234 S 5 C234 (EC234 DS 23 CS 2 ) + B
0
A5= 0 0 0 1
Una vez obtenida esta matriz, se puede dar solucin tanto a la cinemtica directa
como a la inversa.
Posicin inicial
Valores del Vector Variable en grados:
VV=[0 0 0 90 0]
Para el que le corresponde la matriz [M] de orientacin y posicin del efector final:
0 0 1 593
0 1 0 0
- 1 0 0 148
M = 0 0 0 1
Primera posicin.
Valores del Vector Variable
VV=[90 0 0 90 0]
Para el que le corresponde la matriz [M] de orientacin y posicin del efector final:
0 -1 00
0 0 1 593
- 1 0 0 148
M= 0 0 0 1
Para el que le corresponde la matriz [M] de orientacin y posicin del efector final:
- 1 0 0 383.9188
0 1 0 0
0 0 - 1 208.9188
M = 0 0 0 1.0000
Tercera posicin.
Valores del Vector Variable:
VV=[0 90 90 180 0]
Para el que le corresponde la matriz [M] de orientacin y posicin del efector final:
- 1 0 0 193
0 1 0 0
0 0 - 1 288
M = 0 0 0 1
Cuarta Posicin.
Valores del Vector Variable:
VV=[45 90 90 180 0]
Para el que le corresponde la matriz [M] de orientacin y posicin del efector final:
Quinta posicin.
Valores del Vector Variable:
VV=[0 45 90 135 0]
Para el que le corresponde la matriz [M] de orientacin y posicin del efector final:
0 0 1 467.0559
0 1 0 0
- 1 0 0 70.2183
M = 0 0 0 1
Figura 5.11 Posicin 5 (0 45 90 135 0)
Nota: La salida del controlador y la seal del error estn en funcin del tiempo.
u(t) = Ki e(t)dt
0 ........................... (5.1)
Si se duplica el valor del error, el valor de la salida del controlador varia dos veces
ms rpido. Para un error de cero, el valor de la salida del controlador permanece
estacionario. En ocasiones, la accin del control integral se denomina control de
reajuste (reset).
d
u (t ) = K p e(t ) + K pTd e(t )
dt ........................... (5.3)
Figura 5.13 Anlisis del comportamiento del error e(t), y comportamiento de la seal manipulada
u(t) para un control PD
5.1.3.5 Accin de control Proporcional Integral Derivativo
t
Kp d
u (t ) = K p e(t ) +
Ti e(t )dt + K pTd dt e(t )
0 ........................... (5.4)
Figura 5.14 Anlisis del comportamiento del error e(t), y comportamiento de la seal manipulada
u(t) para un control PID
El principio bsico del esquema de control PID es que acta sobre la variable
manipulada a travs de una apropiada combinacin de las tres acciones de
control.
1 1
U ( s) = K p E (s ) + + Td E ( s )
Ti s E ( s ) .......................... (5.5)
U ( z) = K p E( z) +
1
E( z)
(
+ Td E ( z ) 1 z 1 )
Ti
1 z 1 .......................... (5.6)
En donde:
W(k)=W(k-1)+T/2(e(k)+e(k-1))
V(k)=[e(k)-e(k-1)]/T
T=periodo de muestreo
e=seal de referencia seal de salida
La ecuacin 5.7 se toma como base para el desarrollo de los programas de
implementacin del algoritmo de control PID digital, con el microcontrolador
MC68HC11. A continuacin se presentan los diagramas de flujo para la
implementacin del PID.
Configuracion del
puerto C como salidas
(PWM) - TAlto
STALTO
(PWM) - TBajo
#$FF - PC
#$FE - PC
PC
PC
STBAJO
ST ALTO
ST BAJO
(T ALTO) IX (T BAJO) IX
(IX)-1 (IX)-1
NO NO
=0? =0?
SI SI
R R
Figura 5.17 Diagramas de Flujo para la Generacin del PWM
5.1.5 Descripcin del Sistema de Control del Manipulador Robtico
R3GL.
El sistema de control est compuesto por 4 microprocesadores, los tres para las
articulaciones, que trabajan bajo la configuracin de esclavos y uno principal que
trabaja en configuracin de Maestro, el cual habr de indicar a los esclavos las
posiciones deseadas para cada articulacin, de acuerdo al vector de posicin que
corresponda a una orientacin y posicin deseadas del efector final.
Una vez que las tres articulaciones han llegado a la posicin deseada, estas
mandan una seal de confirmacin al Maestro, para que se proceda con la carga
de datos de la nueva posicin que se desea del manipulador. En la figura 5.18 se
muestra, de manera esquemtica, el sistema de control del manipulador robtico,
en esta se incluye una computadora que tiene como funcin en el sistema el
clculo de parmetros fuera de lnea (Los diagramas de conexin se incluyen en el
Anexo 5).
GP
MCS
B
68HC11 U BH M
S
FA
SP
GP
MCS
MCM B B
U 68HC11 U BH M
68HC11 S S
SA
SP
NP
GP
MCS
B
68HC11 U BH M
S
TA
SP
Figura 5.18 Diagrama esquemtico del sistema de control del manipulador robtico R3GL
5.1.6 Estado actual del Proyecto de Investigacin.
En cuanto a los resultados derivados del anlisis dinmico, estos muestran, para
una misma trayectoria de anlisis considerando diferentes condiciones de carga,
una correspondencia cualitativa, pues se conserva la tendencia de demanda de
torque en las articulaciones del manipulador. Mientras que en lo cuantitativo, se
observa una mayor demanda de torque en las articulaciones, derivado de la
consideracin de que la masa a manipular es mayor.
El ingeniero mecnico, para el cual la magnitud de los torques que actan en las
articulaciones del robot, le permitir evaluar el diseo estructural de este, as como
de los elementos considerados para la transmisin de potencia mecnica, ya que
estar en condiciones de determinar los esfuerzos bajo los cuales se encuentran
sometidos los elementos que constituyen al manipulador.
[2] Robot
The Encyclopedia Britannica,
26th ed., 1998
[6] Automation
The Encyclopedia Britannica: Macropedia
26th ed., 1998
[10] Robot
Encyclopedia Encarta 99
199
[11] Carretero, J.A.; Nahon, M.; Bucklam, B.; Gosselin, C.M.: Kinematic
Analysis of a Three-DOF Mechanism for Telescope Applications
Proceedings of the 1997 ASME Design Engineering technical Conference
and Computers in Engineering Conference
September 14-17, 1997, Sacramento, California
[12] Carretero, J.A.; Podorodeski, R.P.; Nahon, M.; Architecture Optimization of
a 3-DOF Parallel Mechanism
Proceedings of the 1998 ASME Design Engineering Technical Conference
25th Biennial Mechanism Conference
September 13-16, 1998, Atlanta, Georgia
[15] Fu, K.S.; Gonzalez, R.C.; Lee, C.S.G.; Robtica: Control, Deteccin, Visin
e Inteligencia
McGraw Hill, 1990
[28] Paul, G.; Ikeuchi, K. Representing the Motion of Objects using Dual
Quaternions and its Applications
Robotics Institute
Carnegie Mellon University
Pittsburgh, PA
1997
[29] Goddard, J.S.; Abidi, M.A. Pose and Motion Estimation Using Dual
Quaternions Based Extended Kalman Filtering
Oak Ridge National Laboratory
University of Tennessee
1996
[36] Doty, K.L.; Schwartz, E.M. Spatial Freedom, Singularity Surfaces and
Workspaces of Serial Kinematic Chains
Machine Intelligence Laboratory
Department of Electrical Engineering
University of Florida
1991
[39] Xu, Y.; Nechyba, M. Fuzzy Inverse Kinematic Mapping: Rule Generation,
Efficiency, and Implementation
Carnegie Mellon University
Pittsburgh, PA
1998
[40] Weisstein, E. Moore-Penrose Generalized Matrix Inverse
World of Mathematics
http://mathworld.wolfram.com/Moore-PenroseGeneralizedMatrixInverse.html
[41] Cheng, H.H.; Thompson, S. Programming with Dual Numbers and its
Applications in Mechanisms Design
Engineering with Computers
Vol 10, No. 4, pp. 212-223
1994
[42] Cheng, H.H.; Thompson, S. Dual Polynomials and Complex Numbers of
Spatial Mechanisms
Proceedings of the 1996 ASME Design Engineering Conference and
Computers in Engineering Conference.
August 1996
[43] Cheng, H.H.; Gonzalez, P. Development of a Software Library Functions for
Analysis of Spatial Mechanisms
Proceedings of the 5th Applied Mechanisms and Robotics Conference.
Cincinnati, OH
October, 1997
[51] Van der Smagt,P.; Visual Robot Guidance using Neural Networks
PhD.Thesis
University of Amsterdam
1996
function [M]=CDmov(VV,VC)
% funcin desarrollada por Emmanuel Merchn
% construye la matriz de un robot MINIMOVER
% a partir de dos vectores de entrada
% VV vector variable [theta1 ... theta6]
% VC vector constante [L1 L2 L3 L6]
VV=VV*pi/180
t1=[VV(1) ];
t2=[VV(2) ];
t3=[VV(3) ];
t4=[VV(4) ];
t5=[VV(5) ];
L1=[VC(1) ];
L2=[VC(2) ];
L3=[VC(3) ];
L4=[VC(4) ];
M(1,1)=(cos(t1)*cos(t5)*cos(t2+t3+t4)-sin(t1)*sin(t5));
M(1,2)=(-cos(t2+t3+t4)*sin(t5)*cos(t1)-sin(t1)*cos(t5));
M(1,3)=-cos(t1)*sin(t2+t3+t4);
M(1,4)=-
L4*cos(t1)*sin(t2+t3+t4)+L3*cos(t1)*cos(t2+t3)+L2*cos(t1)*cos(t2);
M(2,1)=cos(t5)*sin(t1)*cos(t2+t3+t4)+cos(t1)*sin(t5);
M(2,2)=-sin(t5)*sin(t1)*cos(t2+t3+t4)+cos(t1)*cos(t5);
M(2,3)=-sin(t1)*sin(t2+t3+t4);
M(2,4)=sin(t1)*(-L4*sin(t2+t3+t4)+L3*cos(t2+t3)+L2*cos(t2));
M(3,1)=cos(t5)*sin(t2+t3+t4);
M(3,2)=sin(t5)*sin(t2+t3+t4);
M(3,3)=cos(t2+t3+t4);
M(3,4)=L4*cos(t2+t3+t4)+L3*sin(t2+t3)+L2*sin(t2)+L1;
M(4,1)=0;
M(4,2)=0;
M(4,3)=0;
M(4,4)=1;
function [kk]=Newton(M,vv)
%Funcin desarrollada por Emmanuel Merchn
%Resuelve el problema cinemtico inverso a partir de la matriz de entrada
[M]
%que contiene la orientacin del efector final con repecto a la base
nx...az
%y la posicin deseada px,py y pz.
damp=0.001;
VC=[300 250 160 72];
%t1=input('Valor inicial de theta1= ');
%t2=input('Valor inicial de theta2= ');
%t3=input('Valor inicial de theta3= ');
%t4=input('Valor inicial de theta4= ');
%t5=input('Valor inicial de theta5= ');
t1=vv(1)*pi/180;
t2=vv(2)*pi/180;
t3=vv(3)*pi/180;
t4=vv(4)*pi/180;
t5=vv(5)*pi/180;
for n=1:1000
t1p=t1+damp;
t2p=t2+damp;
t3p=t3+damp;
t4p=t4+damp;
t5p=t5+damp;
J(1,1)=(f1(t1p,t2,t3,t4,t5,M)-(f1(t1,t2,t3,t4,t5,M)))/damp;
J(1,2)=(f1(t1,t2p,t3,t4,t5,M)-(f1(t1,t2,t3,t4,t5,M)))/damp;
J(1,3)=(f1(t1,t2,t3p,t4,t5,M)-(f1(t1,t2,t3,t4,t5,M)))/damp;
J(1,4)=(f1(t1,t2,t3,t4p,t5,M)-(f1(t1,t2,t3,t4,t5,M)))/damp;
J(1,5)=(f1(t1,t2,t3,t4,t5p,M)-(f1(t1,t2,t3,t4,t5,M)))/damp;
J(2,1)=(f2(t1p,t2,t3,t4,t5,M)-f2(t1,t2,t3,t4,t5,M))/damp;
J(2,2)=(f2(t1,t2p,t3,t4,t5,M)-f2(t1,t2,t3,t4,t5,M))/damp;
J(2,3)=(f2(t1,t2,t3p,t4,t5,M)-f2(t1,t2,t3,t4,t5,M))/damp;
J(2,4)=(f2(t1,t2,t3,t4p,t5,M)-f2(t1,t2,t3,t4,t5,M))/damp;
J(2,5)=(f2(t1,t2,t3,t4,t5p,M)-f2(t1,t2,t3,t4,t5,M))/damp;
J(3,1)=(f3(t1p,t2,t3,t4,t5,M)-f3(t1,t2,t3,t4,t5,M))/damp;
J(3,2)=(f3(t1,t2p,t3,t4,t5,M)-f3(t1,t2,t3,t4,t5,M))/damp;
J(3,3)=(f3(t1,t2,t3p,t4,t5,M)-f3(t1,t2,t3,t4,t5,M))/damp;
J(3,4)=(f3(t1,t2,t3,t4p,t5,M)-f3(t1,t2,t3,t4,t5,M))/damp;
J(3,5)=(f3(t1,t2,t3,t4,t5p,M)-f3(t1,t2,t3,t4,t5,M))/damp;
J(4,1)=(f4(t1p,t2,t3,t4,t5,M)-f4(t1,t2,t3,t4,t5,M))/damp;
J(4,2)=(f4(t1,t2p,t3,t4,t5,M)-f4(t1,t2,t3,t4,t5,M))/damp;
J(4,3)=(f4(t1,t2,t3p,t4,t5,M)-f4(t1,t2,t3,t4,t5,M))/damp;
J(4,4)=(f4(t1,t2,t3,t4p,t5,M)-f4(t1,t2,t3,t4,t5,M))/damp;
J(4,5)=(f4(t1,t2,t3,t4,t5p,M)-f4(t1,t2,t3,t4,t5,M))/damp;
J(5,1)=(f5(t1p,t2,t3,t4,t5,M)-f5(t1,t2,t3,t4,t5,M))/damp;
J(5,2)=(f5(t1,t2p,t3,t4,t5,M)-f5(t1,t2,t3,t4,t5,M))/damp;
J(5,3)=(f5(t1,t2,t3p,t4,t5,M)-f5(t1,t2,t3,t4,t5,M))/damp;
J(5,4)=(f5(t1,t2,t3,t4p,t5,M)-f5(t1,t2,t3,t4,t5,M))/damp;
J(5,5)=(f5(t1,t2,t3,t4,t5p,M)-f5(t1,t2,t3,t4,t5,M))/damp;
J(6,1)=(f6(t1p,t2,t3,t4,t5,M)-f6(t1,t2,t3,t4,t5,M))/damp;
J(6,2)=(f6(t1,t2p,t3,t4,t5,M)-f6(t1,t2,t3,t4,t5,M))/damp;
J(6,3)=(f6(t1,t2,t3p,t4,t5,M)-f6(t1,t2,t3,t4,t5,M))/damp;
J(6,4)=(f6(t1,t2,t3,t4p,t5,M)-f6(t1,t2,t3,t4,t5,M))/damp;
J(6,5)=(f6(t1,t2,t3,t4,t5p,M)-f6(t1,t2,t3,t4,t5,M))/damp;
J(7,1)=(f7(t1p,t2,t3,t4,t5,M)-f7(t1,t2,t3,t4,t5,M))/damp;
J(7,2)=(f7(t1,t2p,t3,t4,t5,M)-f7(t1,t2,t3,t4,t5,M))/damp;
J(7,3)=(f7(t1,t2,t3p,t4,t5,M)-f7(t1,t2,t3,t4,t5,M))/damp;
J(7,4)=(f7(t1,t2,t3,t4p,t5,M)-f7(t1,t2,t3,t4,t5,M))/damp;
J(7,5)=(f7(t1,t2,t3,t4,t5p,M)-f7(t1,t2,t3,t4,t5,M))/damp;
J(8,1)=(f8(t1p,t2,t3,t4,t5,M)-f8(t1,t2,t3,t4,t5,M))/damp;
J(8,2)=(f8(t1,t2p,t3,t4,t5,M)-f8(t1,t2,t3,t4,t5,M))/damp;
J(8,3)=(f8(t1,t2,t3p,t4,t5,M)-f8(t1,t2,t3,t4,t5,M))/damp;
J(8,4)=(f8(t1,t2,t3,t4p,t5,M)-f8(t1,t2,t3,t4,t5,M))/damp;
J(8,5)=(f8(t1,t2,t3,t4,t5p,M)-f8(t1,t2,t3,t4,t5,M))/damp;
J(9,1)=(f9(t1p,t2,t3,t4,t5,M)-f9(t1,t2,t3,t4,t5,M))/damp;
J(9,2)=(f9(t1,t2p,t3,t4,t5,M)-f9(t1,t2,t3,t4,t5,M))/damp;
J(9,3)=(f9(t1,t2,t3p,t4,t5,M)-f9(t1,t2,t3,t4,t5,M))/damp;
J(9,4)=(f9(t1,t2,t3,t4p,t5,M)-f9(t1,t2,t3,t4,t5,M))/damp;
J(9,5)=(f9(t1,t2,t3,t4,t5p,M)-f9(t1,t2,t3,t4,t5,M))/damp;
J(10,1)=(f10(t1p,t2,t3,t4,t5,VC,M)-f10(t1,t2,t3,t4,t5,VC,M))/damp;
J(10,2)=(f10(t1,t2p,t3,t4,t5,VC,M)-f10(t1,t2,t3,t4,t5,VC,M))/damp;
J(10,3)=(f10(t1,t2,t3p,t4,t5,VC,M)-f10(t1,t2,t3,t4,t5,VC,M))/damp;
J(10,4)=(f10(t1,t2,t3,t4p,t5,VC,M)-f10(t1,t2,t3,t4,t5,VC,M))/damp;
J(10,5)=(f10(t1,t2,t3,t4,t5p,VC,M)-f10(t1,t2,t3,t4,t5,VC,M))/damp;
J(11,1)=(f11(t1p,t2,t3,t4,t5,VC,M)-f11(t1,t2,t3,t4,t5,VC,M))/damp;
J(11,2)=(f11(t1,t2p,t3,t4,t5,VC,M)-f11(t1,t2,t3,t4,t5,VC,M))/damp;
J(11,3)=(f11(t1,t2,t3p,t4,t5,VC,M)-f11(t1,t2,t3,t4,t5,VC,M))/damp;
J(11,4)=(f11(t1,t2,t3,t4p,t5,VC,M)-f11(t1,t2,t3,t4,t5,VC,M))/damp;
J(11,5)=(f11(t1,t2,t3,t4,t5p,VC,M)-f11(t1,t2,t3,t4,t5,VC,M))/damp;
J(12,1)=(f12(t1p,t2,t3,t4,t5,VC,M)-f12(t1,t2,t3,t4,t5,VC,M))/damp;
J(12,2)=(f12(t1,t2p,t3,t4,t5,VC,M)-f12(t1,t2,t3,t4,t5,VC,M))/damp;
J(12,3)=(f12(t1,t2,t3p,t4,t5,VC,M)-f12(t1,t2,t3,t4,t5,VC,M))/damp;
J(12,4)=(f12(t1,t2,t3,t4p,t5,VC,M)-f12(t1,t2,t3,t4,t5,VC,M))/damp;
J(12,5)=(f12(t1,t2,t3,t4,t5p,VC,M)-f12(t1,t2,t3,t4,t5,VC,M))/damp;
f(1)=f1(t1,t2,t3,t4,t5,M);
f(2)=f2(t1,t2,t3,t4,t5,M);
f(3)=f3(t1,t2,t3,t4,t5,M);
f(4)=f4(t1,t2,t3,t4,t5,M);
f(5)=f5(t1,t2,t3,t4,t5,M);
f(6)=f6(t1,t2,t3,t4,t5,M);
f(7)=f7(t1,t2,t3,t4,t5,M);
f(8)=f8(t1,t2,t3,t4,t5,M);
f(9)=f9(t1,t2,t3,t4,t5,M);
f(10)=f10(t1,t2,t3,t4,t5,VC,M);
f(11)=f11(t1,t2,t3,t4,t5,VC,M);
f(12)=f12(t1,t2,t3,t4,t5,VC,M);
%ds= -J\f';
ds=pinv(J)*(-f');
t1=t1+ds(1);
t2=t2+ds(2);
t3=t3+ds(3);
t4=t4+ds(4);
t5=t5+ds(5);
t=[t1 t2 t3 t4 t5];
kk=t*180/pi;
%fprintf('n=%2.0f, t1=%12.5e, t2=%12.5e, t3=%12.5e, t4=%12.5e,
t5=%12.5e,', n,kk(1),kk(2),kk(3),kk(4),kk(5))
%fprintf(' f(1)=%10.2e, f(2)=%10.2e, f(3)=%10.2e, f(4)=%10.2e,
f(5)=%10.2e, f(6)=%10.2e, f(7)=%10.2e, f(8)=%10.2e, f(9)=%10.2e,
f(10)=%10.2e, f(11)=%10.2e, f(12)=%10.2e\n', f(1), f(2), f(3), f(4),
f(5), f(6), f(7), f(8), f(9), f(10), f(11), f(12))
if (abs(f(1))<1.0e-9 & abs (f(2))<1.0e-9 & abs (f(3))<1.0e-9 & abs
(f(4))<1.0e-9 & abs (f(5))<1.0e-9 & abs (f(6))<1.0e-9 & abs (f(7))<1.0e-9
& abs (f(8))<1.0e-9 & abs (f(9))<1.0e-9 & abs (f(10))<1.0e-9 & abs
(f(11))<1.0e-9 & abs (f(12))<1.0e-9), break;end
end
%Funcin num1.m desarrollada por Emmanuel Merchn
%determinacin de los parmetros necesarios en la formulacin
%de Lagrange-Euler, primer listado
vv=input('vector de posiciones angulares= ');
veloc=input('vector de velocidades angulares= ');
acc=input('vector de aceleraciones angulares= ');
dt1=veloc(1);
dt2=veloc(2);
dt3=veloc(3);
dt4=veloc(4);
dt5=veloc(5);
acc=acc';
L1=.300;
L2=.250;
L3=.160;
L4=.072;
vv=vv*pi/180;
t1=vv(1);
t2=vv(2);
t3=vv(3);
t4=vv(4);
t5=vv(5);
U11=Q*A01;
U21=Q*A01*A12;
U31=Q*A01*A12*A23;
U41=Q*A01*A12*A23*A34;
U51=Q*A01*A12*A23*A34*A45;
U22=A01*Q*A12;
U32=A01*Q*A12*A23;
U42=A01*Q*A12*A23*A34;
U52=A01*Q*A12*A23*A34*A45;
U33=A01*A12*Q*A23;
U43=A01*A12*Q*A23*A34;
U53=A01*A12*Q*A23*A34*A45;
U44=A01*A12*A23*Q*A34;
U54=A01*A12*A23*Q*A34*A45;
U55=A01*A12*A23*A34*Q*A45;
U111=Q*U11;
U211=Q*U21;
U311=Q*U31;
U411=Q*U41;
U511=Q*U51;
U221=Q*U22;
U321=Q*U32;
U421=Q*U42;
U521=Q*U52;
U331=Q*U33;
U431=Q*U43;
U531=Q*U53;
U441=Q*U44;
U541=Q*U54;
U551=Q*U55;
U212=U221;
U312=U321;
U412=U421;
U512=U521;
U222=A01*Q*Q*A12;
U322=A01*Q*Q*A12*A23;
U422=A01*Q*Q*A12*A23*A34;
U522=A01*Q*Q*A12*A23*A34*A45;
U332=U22*Q*A23;
U432=U22*Q*A23*A34;
U532=U22*Q*A23*A34*A45;
U442=U32*Q*A34;
U542=U32*Q*A34*A45;
U552=U42*Q*A45;
U313=U331;
U413=U431;
U513=U531;
U323=U332;
U423=U432;
U523=U532;
U333=A01*A12*Q*Q*A23;
U433=A01*A12*Q*Q*A23*A34;
U533=A01*A12*Q*Q*A23*A34*A45;
U443=U33*Q*A34;
U543=U33*Q*A34*A45;
U553=U43*Q*A45;
U414=U441;
U514=U541;
U424=U442;
U524=U542;
U434=U443;
U534=U543;
U444=A01*A12*A23*Q*Q*A34;
U544=A01*A12*A23*Q*Q*A34*A45;
U554=U44*Q*A45;
U515=U551;
U525=U552;
U535=U553;
U545=U554;
U555=A01*A12*A23*A34*Q*Q*A45;
h111=trace(U111*J1*U11')+trace(U211*J2*U21')+trace(U311*J3*U31')+trace(U4
11*J4*U41')+trace(U511*J5*U51');
h112=trace(U212*J2*U21')+trace(U312*J3*U31')+trace(U412*J4*U41')+trace(U5
12*J5*U51');
h113=trace(U313*J3*U31')+trace(U413*J4*U41')+trace(U513*J5*U51');
h114=trace(U414*J4*U41')+trace(U514*J5*U51');
h115=trace(U515*J5*U51');
h121=trace(U221*J2*U21')+trace(U321*J3*U31')+trace(U421*J4*U41')+trace(U5
21*J5*U51');
h122=trace(U222*J2*U21')+trace(U322*J3*U31')+trace(U422*J4*U41')+trace(U5
22*J5*U51');
h123=trace(U323*J3*U31')+trace(U423*J4*U41')+trace(U523*J5*U51');
h124=trace(U424*J4*U41')+trace(U524*J5*U51');
h125=trace(U525*J5*U51');
h131=trace(U331*J3*U31')+trace(U431*J4*U41')+trace(U531*J5*U51');
h132=trace(U332*J3*U31')+trace(U432*J4*U41')+trace(U532*J5*U51');
h133=trace(U333*J3*U31')+trace(U433*J4*U41')+trace(U533*J5*U51');
h134=trace(U434*J4*U41')+trace(U534*J5*U51');
h135=trace(U535*J5*U51');
h141=trace(U441*J4*U41')+trace(U541*J5*U51');
h142=trace(U442*J4*U41')+trace(U542*J5*U51');
h143=trace(U443*J4*U41')+trace(U543*J5*U51');
h144=trace(U444*J4*U41')+trace(U544*J5*U51');
h145=trace(U545*J5*U51');
h151=trace(U551*J5*U51');
h152=trace(U552*J5*U51');
h153=trace(U553*J5*U51');
h154=trace(U554*J5*U51');
h155=trace(U555*J5*U51');
h211=trace(U211*J2*U22')+trace(U311*J3*U32')+trace(U411*J4*U42')+trace(U5
11*J5*U52');
h212=trace(U212*J2*U22')+trace(U312*J3*U32')+trace(U412*J4*U42')+trace(U5
12*J5*U52');
h213=trace(U313*J3*U32')+trace(U413*J4*U42')+trace(U513*J5*U52');
h214=trace(U414*J4*U42')+trace(U514*J5*U52');
h215=trace(U515*J5*U52');
h221=trace(U221*J2*U22')+trace(U321*J3*U32')+trace(U421*J4*U42')+trace(U5
21*J5*U52');
h222=trace(U222*J2*U22')+trace(U322*J3*U32')+trace(U422*J4*U42')+trace(U5
22*J5*U52');
h223=trace(U323*J3*U32')+trace(U423*J4*U42')+trace(U523*J5*U52');
h224=trace(U424*J4*U42')+trace(U524*J5*U52');
h225=trace(U525*J5*U52');
h231=trace(U331*J3*U32')+trace(U431*J4*U42')+trace(U531*J5*U52');
h232=trace(U332*J3*U32')+trace(U432*J4*U42')+trace(U532*J5*U52');
h233=trace(U333*J3*U32')+trace(U433*J4*U42')+trace(U533*J5*U52');
h234=trace(U434*J4*U42')+trace(U534*J5*U52');
h235=trace(U535*J5*U52');
h241=trace(U441*J4*U42')+trace(U541*J5*U52');
h242=trace(U442*J4*U42')+trace(U542*J5*U52');
h243=trace(U443*J4*U42')+trace(U543*J5*U52');
h244=trace(U444*J4*U42')+trace(U544*J5*U52');
h245=trace(U545*J5*U52');
h251=trace(U551*J5*U52');
h252=trace(U552*J5*U52');
h253=trace(U553*J5*U52');
h254=trace(U554*J5*U52');
h255=trace(U555*J5*U52');
h311=trace(U311*J3*U33')+trace(U411*J4*U43')+trace(U511*J5*U53');
h312=trace(U312*J3*U33')+trace(U412*J4*U43')+trace(U512*J5*U53');
h313=trace(U313*J3*U33')+trace(U413*J4*U43')+trace(U513*J5*U53');
h314=trace(U414*J4*U43')+trace(U514*J5*U53');
h315=trace(U515*J5*U53');
h321=trace(U321*J3*U33')+trace(U421*J4*U43')+trace(U521*J5*U53');
h322=trace(U322*J3*U33')+trace(U422*J4*U43')+trace(U522*J5*U53');
h323=trace(U323*J3*U33')+trace(U423*J4*U43')+trace(U523*J5*U53');
h324=trace(U424*J4*U43')+trace(U524*J5*U53');
h325=trace(U525*J5*U53');
h331=trace(U331*J3*U33')+trace(U431*J4*U43')+trace(U531*J5*U53');
h332=trace(U332*J3*U33')+trace(U432*J4*U43')+trace(U532*J5*U53');
h333=trace(U333*J3*U33')+trace(U433*J4*U43')+trace(U533*J5*U53');
h334=trace(U434*J4*U43')+trace(U534*J5*U53');
h335=trace(U535*J5*U53');
h341=trace(U441*J4*U43')+trace(U541*J5*U53');
h342=trace(U442*J4*U43')+trace(U542*J5*U53');
h343=trace(U443*J4*U43')+trace(U543*J5*U53');
h344=trace(U444*J4*U43')+trace(U544*J5*U53');
h345=trace(U545*J5*U53');
h351=trace(U551*J5*U53');
h352=trace(U552*J5*U53');
h353=trace(U553*J5*U53');
h354=trace(U554*J5*U53');
h355=trace(U555*J5*U53');
h411=trace(U411*J4*U44')+trace(U511*J5*U54');
h412=trace(U412*J4*U44')+trace(U512*J5*U54');
h413=trace(U413*J4*U44')+trace(U513*J5*U54');
h414=trace(U414*J4*U44')+trace(U514*J5*U54');
h415=trace(U515*J5*U54');
h421=trace(U421*J4*U44')+trace(U521*J5*U54');
h422=trace(U422*J4*U44')+trace(U522*J5*U54');
h423=trace(U423*J4*U44')+trace(U523*J5*U54');
h424=trace(U424*J4*U44')+trace(U524*J5*U54');
h425=trace(U525*J5*U54');
h431=trace(U431*J4*U44')+trace(U531*J5*U54');
h432=trace(U432*J4*U44')+trace(U532*J5*U54');
h433=trace(U433*J4*U44')+trace(U533*J5*U54');
h434=trace(U434*J4*U44')+trace(U534*J5*U54');
h435=trace(U535*J5*U54');
h441=trace(U441*J4*U44')+trace(U541*J5*U54');
h442=trace(U442*J4*U44')+trace(U542*J5*U54');
h443=trace(U443*J4*U44')+trace(U543*J5*U54');
h444=trace(U444*J4*U44')+trace(U544*J5*U54');
h445=trace(U545*J5*U54');
h451=trace(U551*J5*U54');
h452=trace(U552*J5*U54');
h453=trace(U553*J5*U54');
h454=trace(U554*J5*U54');
h455=trace(U555*J5*U54');
h511=trace(U511*J5*U55');
h512=trace(U512*J5*U55');
h513=trace(U513*J5*U55');
h514=trace(U514*J5*U55');
h515=trace(U515*J5*U55');
h521=trace(U521*J5*U55');
h522=trace(U522*J5*U55');
h523=trace(U523*J5*U55');
h524=trace(U524*J5*U55');
h525=trace(U525*J5*U55');
h531=trace(U531*J5*U55');
h532=trace(U532*J5*U55');
h533=trace(U533*J5*U55');
h534=trace(U534*J5*U55');
h535=trace(U535*J5*U55');
h541=trace(U541*J5*U55');
h542=trace(U542*J5*U55');
h543=trace(U543*J5*U55');
h544=trace(U544*J5*U55');
h545=trace(U545*J5*U55');
h551=trace(U551*J5*U55');
h552=trace(U552*J5*U55');
h553=trace(U553*J5*U55');
h554=trace(U554*J5*U55');
h555=trace(U555*J5*U55');
num2
%funcin num2.m desarrollada por Emmanuel Merchn
%para determinar los parmetros de la matriz [D]
D(1,1)=trace(U11*J1*U11')+trace(U21*J2*U21')+trace(U31*J3*U31')+trace(U41
*J4*U41')+trace(U51*J5*U51');
D(1,2)=trace(U22*J2*U21')+trace(U32*J3*U31')+trace(U42*J4*U41')+trace(U52
*J5*U51');
D(2,1)=D(1,2);
D(1,3)=trace(U33*J3*U31')+trace(U43*J4*U41')+trace(U53*J5*U51');
D(3,1)=D(1,3);
D(1,4)=trace(U44*J4*U41')+trace(U54*J5*U51');
D(4,1)=D(1,4);
D(1,5)=trace(U55*J5*U51');
D(5,1)=D(1,5);
D(2,2)=trace(U22*J2*U22')+trace(U32*J3*U32')+trace(U42*J4*U42')+trace(U52
*J5*U52');
D(2,3)=trace(U33*J3*U32')+trace(U43*J4*U42')+trace(U53*J5*U52');
D(2,4)=trace(U44*J4*U42')+trace(U54*J5*U52');
D(2,5)=trace(U55*J5*U52');
D(3,2)=D(2,3);
D(4,2)=D(2,4);
D(5,2)=D(2,5);
D(3,3)=trace(U33*J3*U33')+trace(U43*J4*U43')+trace(U53*J5*U53');
D(3,4)=trace(U44*J4*U43')+trace(U54*J5*U53');
D(3,5)=trace(U55*J5*U53');
D(4,3)=D(3,4);
D(5,3)=D(3,5);
D(4,4)=trace(U44*J4*U44')+trace(U54*J5*U54');
D(4,5)=trace(U55*J5*U54');
D(5,4)=D(4,5);
D(5,5)=trace(U55*J5*U55');
num3
%funcin num3.m desarrollada por Emmanuel Merchn
%que determina la matriz [h] y la matriz [c] a partir de los
%parmetros calculados por las funciones anteriores
%y resuelve de manera numrica la formulacin de Lagrange Euler
%para obtener el valor de las torcas 1..5
h(1,1)=h111*(dt1^2)+h112*(dt1)*(dt2)+h113*(dt1)*(dt3)+h114*(dt1)*(dt4)+h1
15*dt1*dt5+h131*dt1*dt3+h132*dt2*dt3+h133*(dt3^2)+h134*dt3*dt4+h135*dt3*d
t5+h141*dt1*dt4+h142*dt2*dt4+h143*dt3*dt4+h144*(dt4^2)+h145*dt4*dt5+h151*
dt1*dt5+h152*dt2*dt5+h153*dt3*dt5+h154*dt4*dt5+h155*dt5^2;
h(2,1)=h211*(dt1^2)+h212*(dt1)*(dt2)+h213*(dt1)*(dt3)+h214*(dt1)*(dt4)+h2
15*dt1*dt5+h231*dt1*dt3+h232*dt2*dt3+h233*(dt3^2)+h234*dt3*dt4+h235*dt3*d
t5+h241*dt1*dt4+h242*dt2*dt4+h243*dt3*dt4+h244*(dt4^2)+h245*dt4*dt5+h251*
dt1*dt5+h252*dt2*dt5+h253*dt3*dt5+h254*dt4*dt5+h255*dt5^2;
h(3,1)=h311*(dt1^2)+h312*(dt1)*(dt2)+h313*(dt1)*(dt3)+h314*(dt1)*(dt4)+h3
15*dt1*dt5+h331*dt1*dt3+h332*dt2*dt3+h333*(dt3^2)+h334*dt3*dt4+h335*dt3*d
t5+h341*dt1*dt4+h342*dt2*dt4+h343*dt3*dt4+h344*(dt4^2)+h345*dt4*dt5+h351*
dt1*dt5+h352*dt2*dt5+h353*dt3*dt5+h354*dt4*dt5+h355*dt5^2;
h(4,1)=h411*(dt1^2)+h412*(dt1)*(dt2)+h413*(dt1)*(dt3)+h414*(dt1)*(dt4)+h4
15*dt1*dt5+h431*dt1*dt3+h432*dt2*dt3+h433*(dt3^2)+h434*dt3*dt4+h435*dt3*d
t5+h441*dt1*dt4+h442*dt2*dt4+h443*dt3*dt4+h444*(dt4^2)+h445*dt4*dt5+h451*
dt1*dt5+h452*dt2*dt5+h453*dt3*dt5+h454*dt4*dt5+h455*dt5^2;
h(5,1)=h511*(dt1^2)+h512*(dt1)*(dt2)+h513*(dt1)*(dt3)+h514*(dt1)*(dt4)+h5
15*dt1*dt5+h531*dt1*dt3+h532*dt2*dt3+h533*(dt3^2)+h534*dt3*dt4+h535*dt3*d
t5+h541*dt1*dt4+h542*dt2*dt4+h543*dt3*dt4+h544*(dt4^2)+h545*dt4*dt5+h551*
dt1*dt5+h552*dt2*dt5+h553*dt3*dt5+h554*dt4*dt5+h555*dt5^2;
cc(1,1)=-(m1*grav*U11*r11+m2*grav*U21*r22+m3*grav*U31*r33+
m4*grav*U41*r44+m5*grav*U51*r55);
cc(2,1)=-(m2*grav*U22*r22+m3*grav*U32*r33+m4*grav*U42*r44+
m5*grav*U52*r55);
cc(3,1)=-(m3*grav*U33*r33+m4*grav*U43*r44+m5*grav*U53*r55);
cc(4,1)=-(m4*grav*U44*r44+m5*grav*U54*r55);
cc(5,1)=-(m5*grav*U55*r55);
fprintf('TORQUES N-m\n')
fprintf('%12.10e\n', torque(1))
fprintf('%12.10e\n', torque(2))
fprintf('%12.10e\n', torque(3))
fprintf('%12.10e\n', torque(4))
fprintf('%12.10e\n', torque(5))
%Funcion Traycirc
%desarrollada por Emmanuel Merchn
%para la generacion de las matrices de tranformacin
%correspondientes a la trayectoria circular "bc"
for n=1:10
t=t+9;
a=[-sin(t*pi/180) -cos(t*pi/180) 0 -200-(50*sin(t*pi/180));-
cos(t*pi/180) sin(t*pi/180) 0 100+50-50*cos(t*pi/180);0 0 -1 150]
end
ANEXO 2. Listado para el Modelado en Realidad Virtual del Robot
Mitsubishi Movemaster.
#VRML V2.0 utf8
#
#
# Este archivo construye un robot Mitsubishi RV-M1 Movemaster EX
# en un modelo de realidad virtual
WorldInfo {
title "Robot Mitsubishi"
info "Emmanuel Merchn"
},
NavigationInfo {
type "EXAMINE"
headlight FALSE
},
Viewpoint {
position -30 35 25
orientation 1 1 0 -1.0
description "First view - From top left"
},
Viewpoint {
position -8 11 40
orientation 0 0 1 0
description "Second view - From Front"
},
Viewpoint {
position -30 11 30
orientation 0 1 0 -0.785
description "Third view - From left corner"
},
Viewpoint {
position -8 50 0
orientation 1 0 0 -1.57
description "Fourth view - From top"
},
Viewpoint {
position -8 11 -38
orientation 0 1 0 3.14
description "Fifth view - From Back"
},
Viewpoint {
position -50 11 0
orientation 0 1 0 -1.57
description "Sixth view - From left side"
},
PointLight {
location 250 400 1000
},
PointLight {
location 0 200 -500
},
PointLight {
location 0 100 0
},
PointLight {
location 0 -100 0
},
PointLight {
location 0 -200 -400
},
PointLight {
location -140 10 0
},
PointLight {
location -100 100 3000
},
# Axes
Shape {
appearance Appearance {
material Material {
emissiveColor 1.0 1.0 1.0
}
}
geometry IndexedLineSet {
coord Coordinate {
point [
0.0 0.0 0.0, 35.0 0.0 0.0, 0.0 35.0 0.0, 0.0 0.0 35.0,
-35.0 0.0 0.0, 0.0 -35.0 0.0, 0.0 0.0 -35.0 ]
}
coordIndex [
0, 1, -1, 0, 2, -1, 0, 3, -1, 0, 4, -1, 0, 5, -1, 0, 6, -1
]
}
},
Group {
children [
DEF Robot Transform {
translation 0 0 0
children [
#
# Robot Base
#
height .25
radius 1.75
bottom FALSE
top FALSE
}
}
]
},
]
}
#
# Moveable Sections
#
# Rotating section
DEF Waist Transform {
translation 0 0 0
rotation 0 1 0,-0.694738781
children [
# Shoulder Cradle
Transform {
translation -1.75 6 0
children [
Shape {
appearance Appearance {
material Material {
ambientIntensity 0.0533333
diffuseColor 0.35 0.35 0.35 }
}
geometry IndexedFaceSet {
coord Coordinate {
point [
0 0 2.125,
4.25 0 2.125,
4.25 0 -2.125,
0 0 -2.125,
0 2.75 3,
4.25 2.75 3,
4.25 2.75 -3,
0 2.75 -3,
0 4.25 3,
4.25 4.25 3,
4.25 4.25 -3,
0 4.25 -3, ] }
coordIndex [ 0,1,2,3,-1,
0,4,5,1,-1,
1,5,6,2,-1,
2,6,7,3,-1,
3,7,4,0,-1,
4,8,9,5,-1,
5,9,10,6,-1,
6,10,11,7,-1,
7,11,8,4,-1, ]
normalPerVertex FALSE
solid FALSE
creaseAngle 0.5
}
}
]
},
# Gripper
DEF Hand Transform {
translation -0.375 0 0
rotation 1 0 0,0.5
center 0 12 0
children [
Transform {
translation -23.5 13.25 0
children [
Shape {
appearance Appearance {
material Material {
ambientIntensity 0.005
diffuseColor 0.15 0.15 0.15
}
}
geometry Box {
size 2 0.5 0.75
}
}
]
}
]
}
Transform {
translation -23.5 10.75 0
children [
Shape {
appearance Appearance {
material Material {
ambientIntensity 0.005
diffuseColor 0.15 0.15 0.15
}
}
geometry Box {
size 2 0.5 0.75
}
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}
#
# Trigger things on touch
#
DEF Touch TouchSensor {
}
]
}
ANEXO 3. Grficas correspondientes a las 21 posiciones que conforman la trayectoria abc.
VISTA FRONTAL
VISTA LATERAL DERECHA
VISTA SUPERIOR
ANEXO 4. Programas del proyecto de implementacin.
;************************************************************************
;* PROGRAMA QUE IMPLEMENTA EL CONTROL P, PI, PD Y PID PARA EL MOVIMIENTO*
;* DE UN MOTOR DE CD. *
;************************************************************************
;------------------------------------------------------------------------
;************************************************************************
;* INSTITUTO POLITECNICO NACIONAL *
;* ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA *
;* UNIDAD PROFESIONAL `ADOLFO LOPEZ MATEOS`(ZACATENCO) *
;* INGENIERIA EN CONTROL Y AUTOMATIZACION *
;* PROGRAMA DESARROLLADO POR: VELAZQUEZ SANCHEZ ALEJANDRO T. *
;* RAMIREZ GORDILLO JAVIER *
;************************************************************************
;*****************************************
;MENSAJE AL LOCALIZAR LA POSICION DESEADA
;*****************************************
MEN0 DB 0D,0D,'THETA=',04
;********************************
;MENSAJES DEL MOTOR
;********************************
MEN1 DB 'UP',04,0D
MEN2 DB 'DWN',04,0D
;*****************************
;REGISTROS PARA LOS SENSORES
;*****************************
;*****************************
;REGISTROS PARA EL MOTOR
;*****************************
;****************************
;INICIO DEL PROGRAMA
;****************************
;*********************************************************
; DECLARACION DE REGISTROS EMPLEADOS POR EL SUB PROGRAMA
;*********************************************************
SWI ;
PROGRAMA DEL PWM
ORG $100
LDAA #$FF
STAA RDDC
CLR RPC
LDAA #$FF
STAA RPC
LDX #MEN0
JSR DES
LDX #MEN1
JSR DES
LDAA #$07
STAA POS
STAA NEG
BNE MAS
BRA EXIT
Puente H1
U?
8 31
7 XT PA3 30 12V CD
EX PA4 29
17 PA5 28
19 RESET PA6 27
18 IRQ PA7
XIRQ 42
2 PB0 41
MODB PB1
34 PB2
40
39 5V CD
33 PA0 PB3 38 Q?
32 PA1 PB4 37 Q? TIP120
PA2 PB5 TIP120 R?
36 R?
43 PB6 35
45 PE0 PB7
PE1 U? RESISTOR
47 9 RESISTOR
49 PE2 PC0 10 2 18
PE3 PC1 3 A1 B1 17
44 11 A2 B2
46 PE4 PC2 12 4 16
PE5 PC3 5 A3 B3 15
48 13 A4 B4
50 PE6 PC4 14 6 14 M?
PE7 PC5 7 A5 B5 13
A
15
-
52 PC6 16 8 A6 B6 12
51 VRH PC7 9 A7 B7 11
VRL 20 A8 B8
PD0 21 MOTOR SERVO
PD1
19
22 1 G
PD2 23 DIR
PD3 24 Q? Q?
PD4 74LS245 R? TIP31 R? TIP31
25
PD5
3
MODA RESISTOR RESISTOR
5
E 4
AS 6
R/W
MC68HC11E9
Hacia los Puentes
H2 y H3
GND
31 8
30 PA3 XT 7
29 PA4 EX
28 PA5 17 R
27 PA6 RESET 19 1K
PA7 IRQ 18
42 XIRQ
41 PB0 2
40 PB1 MODB FLECHA
39 PB2 34
38 PB3 PA0 33
37 PB4 PA1 32
36 PB5 PA2
BUFFER 35 PB6 43 MORE BASE
PB7 PE0 45
2 18 9 PE1 47
3 A1 B1 17 10 PC0 PE2 49
HACIA PUENTES "H" 4 A2 B2 16 11 PC1 PE3 44 R
5 A3 B3 15 12 PC2 PE4 46 1K
6 A4 B4 14 13 PC3 PE5 48
7 A5 B5 13 14 PC4 PE6 50
8 A6 B6 12 15 PC5 PE7
9 A7 B7 11 16 PC6 52 FLECHA
A8 B8 PC7 VRH 51
19 20 VRL
1 G 21 PD0
DIR 22 PD1
23 PD2 MORE ANTEBRAZO
74LS245
24 PD3
25 PD4
PD5 R
3 1K
5V MODA
5
4 E
6 AS FLECHA
R/W
MC68HC11E9
MORE BRAZO