Documentos de Académico
Documentos de Profesional
Documentos de Cultura
T E S I S
PRESENTA:
ING. RICARDO TAPIA HERRERA
DIRIGIDA POR:
M. EN C. CANDIDO PALACIOS MONTUFAR
DR. JUAN ALEJANDRO FLORES CAMPOS
A mi familia, mis hermanos Rodrigo, Roberto, Fernando y Andrea por ser una fuente de
inspiración y en especial a mis padres Ma. Del Refugio Herrera Pérez y Ricardo Tapia
Rodríguez por apoyarme siempre incondicionalmente durante toda mi formación
académica.
Como complemento de este trabajo se desarrolla una interface gráfica que permite
visualizar el movimiento del manipulador MIRH en un espacio de trabajo, con los
resultados obtenidos por la formulación dual.
I
Abstract
This work presents and develops a study in explicit form of dual numbers and
homogeneous transformation matrices application in the kinematic and dynamic
modeling of an industrial robotic manipulator with 5 degrees of freedom and
revolute joins (5R topology)
The forward kinematic is solved by dual algebra establishing the closed chain
equation composted with 3x3 dual matrices. They give the rotation and
displacement of a set of links in the space.
The homogeneous transformation matrices are used to validate the results and
analyze the advantages and disadvantages between both methodologies.
The generalized dual Jacobian Matrix is obtained from the dual matrices; this
Jacobian matrix allows a generalized analysis of velocities in manipulators with
different range of topologies.
The dynamics is developed applying the dual momentum and D’Alembert principle,
using these tools is possible to calculate the reactions and torques in each joint.
The momentums or torques of each joint are obtained by the energetic method of
Lagrange-Euler too. With the finality to compare the calculated results of dual
algebra and to be able for establish the efficiency of this tool.
As complement of this work, is develop a graphic interface that allows visualize the
MIRH movements in a work space, with the results obtained by the dual
formulation.
II
Índice general
Resumen .................................................................................................................. I
Abstract ................................................................................................................... II
Índice general ......................................................................................................... III
Índice de figuras ..................................................................................................... VI
Índice de tablas .................................................................................................... VIII
Simbología ............................................................................................................. IX
Justificación ............................................................................................................ XI
Introducción ........................................................................................................... XII
Capítulo 1 Estado del Arte....................................................................................... 1
1.1. Antecedentes de los números duales. .......................................................... 2
1.2. Cinemática espacial. ..................................................................................... 2
1.3. El álgebra dual en el análisis de manipuladores robóticos. .......................... 3
1.4. Dinámica de cuerpos rígidos ........................................................................ 3
Capítulo 2 Marco Teórico ........................................................................................ 5
2.1. Generalidades del álgebra dual .................................................................... 5
2.2. Operaciones básicas del álgebra dual .......................................................... 5
2.3. Ángulo dual ................................................................................................... 6
2.4. Funciones trigonométricas de los ángulos duales. ....................................... 8
2.5. Velocidad dual .............................................................................................. 9
2.5.1. Velocidades en diferentes puntos de un cuerpo rígido .............................. 9
2.5.2. Velocidades expresadas en diferentes sistemas de referencia ................. 9
2.5.3. Teorema de velocidades relativas ........................................................... 10
2.6. Fuerza dual ................................................................................................. 10
2.7. Momento dual ............................................................................................. 10
2.8. Fuerza dual de inercia ................................................................................ 12
2.9. Equilibrio dinámico de un eslabón .............................................................. 12
Capítulo 3. Solución de las ecuaciones cinemáticas para generar una trayectoria
de trabajo definida. ................................................................................................ 13
3.1. Cinemática directa del MIRH aplicando algebra dual ................................. 13
3.2. Cinemática inversa por números duales ..................................................... 17
III
3.3. Análisis de velocidades por números duales .............................................. 18
3.4. Análisis inverso de velocidades por números duales ................................. 21
3.5. Análisis de Aceleraciones ........................................................................... 24
3.6. Análisis inverso de aceleraciones ............................................................... 25
3.7. Cinemática directa del MIRH por matrices de transformación homogénea. 25
3.8. Solución de la cinemática inversa ............................................................... 28
3.9. Análisis de Velocidades .............................................................................. 29
3.10. Análisis inverso de velocidades por algebra matricial ............................... 33
3.11. Análisis inverso de aceleraciones por algebra matricial............................ 34
Capítulo 4 Solución de las ecuaciones dinámicas del manipulador. ..................... 35
4.1. Análisis de fuerzas dinámicas por números duales .................................... 35
IV
Conclusiones ......................................................................................................... 79
Recomendaciones para trabajos futuros ............................................................... 81
Anexo A.- Programa para solucionar la cinemática directa por álgebra dual ........ 82
Anexo B.- Programa para solucionar la cinemática inversa por álgebra dual ....... 84
Anexo C.- Función del sistema de ecuaciones de diseño duales.......................... 85
Anexo D.- Programa para solucionar la cinemática directa por matrices de
transformación homogénea ................................................................................... 87
Anexo E.- Programa para solucionar la cinemática inversa por matrices de
transformación homogénea ................................................................................... 89
Anexo F.- Función del sistema de ecuaciones de diseño por matrices de
transformación homogénea ................................................................................... 90
Anexo G.- Programa para solucionar la dinámica por algebra dual ...................... 91
Anexo H.- Programa para solucionar la dinámica por matrices de transformación
homogénea ......................................................................................................... 103
Referencias ......................................................................................................... 119
V
Índice de figuras
Figura 2.1. Descripción Geométrica de un ángulo dual (Fisher, 1999) ................... 7
Figura 2.2. Ángulos duales ˆn y ˆ n para un eslabonamiento (E. Pennestri, 2007) 8
VI
Figura 5.11. Posición articulación 3 ...................................................................... 71
Figura 5.12. Velocidad angular articulación 3 ....................................................... 71
Figura 5.13. Aceleración angular articulación 3 .................................................... 72
Figura 5.14. Posición articulación 4 ...................................................................... 72
Figura 5.15. Velocidad angular articulación 4 ....................................................... 73
Figura 5.16. Aceleración angular articulación 4 .................................................... 74
Figura 5.17. Posición articulación 5 ...................................................................... 74
Figura 5.18. Velocidad angular articulación 5 ....................................................... 75
Figura 5.19. Aceleración angular articulación 5 .................................................... 75
Figura 5.20. Torque de la articulación 1 ............................................................... 76
Figura. 5.21. Torque articulación 2 ....................................................................... 76
Figura 5.22. Torque articulación 3 ........................................................................ 76
Figura 5.23. Torque articulación 4 ........................................................................ 77
Figura 5.24. Torque articulación 5 ........................................................................ 77
VII
Índice de tablas
Tabla 3.1. Parámetros de Denavit – Hartemberg para el MIRH............................ 15
Tabla 5.1. Ángulos propuestos ............................................................................. 62
Tabla 5.2. Vector de posición del efector final para los ángulos de entrada
establecidos .......................................................................................................... 63
Tabla 5.3. Vectores de posición deseados ........................................................... 64
Tabla 5.4. Vectores normal, de orientación y de aproximación deseados ............ 65
Tabla 5.5. Ángulos calculados por algebra dual. .................................................. 65
Tabla 5.6. Ángulos calculados por matrices de transformación homogénea. ....... 66
VIII
Simbología
aˆ. Número dual
IX
Objetivo
Obtener el modelo cinemático y dinámico de un manipulador robótico industrial
aplicando la formulación del álgebra dual y validarla con la formulación de matrices
de transformación homogénea.
Objetivos Particulares
X
Justificación
Una gran cantidad de algoritmos se han desarrollado para la solución de los
problemas de la cinemática y dinámica de manipuladores robóticos. El costo
computacional, facilidad de programación, facilidad de manipulación y
simplificación algebraica, son algunas de las características principales que debe
tener un algoritmo. Esto puede resumirse en que el mejor algoritmo para gobernar
el movimiento de un manipulador es aquel que tenga rapidez y precisión a un bajo
costo.
El algebra dual a pesar de ser una herramienta analítica con más de un siglo de
antigüedad no es hasta la década de los 80’s que comienza su aplicación y tras
una exhaustiva investigación literaria pocos son los trabajos enfocados a la
solución cinemática y dinámica de robots industriales, dejando aún un amplio
campo abierto en la investigación de rotaciones infinitesimales de cuerpos rígidos.
XI
Introducción
La necesidad de aumentar la productividad, conseguir productos con una calidad
uniforme, realizar exploraciones en lugares peligrosos, manejo de materiales
radioactivos, entre otras actividades más, ha hecho que se busquen alternativas
de automatización basadas en máquinas que operen bajo algoritmos
computacionales eficientes, dando como resultado que los robots representen una
alternativa flexible para realizar diversos trabajos, ya que actualmente son
maquinas fácilmente de reprogramar por lo que hay miles de robots alrededor del
mundo, especialmente en el sector industrial usados para realizar trabajos con una
gran precisión.
Las reglas y conceptos que forma el algebra dual son presentados en el capítulo
2.
El capitulo 3 aborda el tema de la posición y orientación del efector final, así como
la configuración geométrica o valores de articulación requeridos para alcanzar una
posición y orientación deseada, tomando como base las ecuaciones de diseño
duales y matriciales, para formar un sistema de ecuaciones el cual debe satisfacer
las condiciones iniciales.
XII
También el análisis de velocidades y de aceleraciones tanto en el espacio
cartesiano como en el espacio articulado, es planteando y solucionado por la
matriz Jacobiana convencional y por la matriz Jacobiana dual generalizada.
XIII
Capítulo 1 Estado del Arte.
1
El estudio del movimiento de manipuladores ha sido tratado por una gran cantidad
de investigadores alrededor del planeta. Dando como resultado una gran
diversidad de herramientas analíticas y computacionales para la solución de los
diferentes problemas que surgen de la robótica.
Algebra matricial
Algebra de Lie
Geometría diferencial
Teoría de tornillos
Algebra dual
Cuaterniones
Cuaterniones duales
El algebra dual puede ser una herramienta con un manejo matemático elegante
para calcular fuerzas, momentos, movimientos de traslación lineal y angular,
velocidades y aceleraciones, los números duales brindan una gran eficiencia para
transferir del plano al espacio los sistemas de cuerpos rígidos, por lo que los
programas basados en el algebra dual pueden ser generalizados a una diversidad
de mecanismos con diferentes topologías (Keler, 2000).
El concepto de número dual fue introducido por primera vez en 1873 por el
matemático inglés William Kingdon Clifford (1845-1878), en 1903 el matemático
alemán Edgard Study (1862-1930) les denominó dicho nombre, y sus primeras
aplicaciones en el campo de la mecánica del cuerpo rígido específicamente en
mecanismos datan de 1964, realizadas por Yang y Freudenstein.
2
Capítulo 1
3
Capítulo 1
4
Capítulo 2 Marco Teórico
â a a0 (2.1)
Donde:
 A A0 (2.2)
0 (2.3)
2 , 3 , 4 ... n 0 (2.4)
ĉ a b a0 b0 (2.5)
Capítulo 2
âbˆ a a0 b b0 (2.6)
a a b ab
cˆ 0 2 0 (2.8)
b b
a0
aˆ a (2.10)
2 a
f aˆ f a a0 (2.11)
df (a)
f aˆ f a a0 (2.12)
da
ˆ S (2.13)
6
Capítulo 2
En los mecanismos se establecen los ángulos duales ˆi y ˆ i , los cuales describen
las dimensiones de un eslabón así como su desplazamiento angular y lineal
respetivamente, por lo que ˆi y ˆ i son los ángulos duales que caracterizan
geométricamente al manipulador o mecanismo en estudio (Figura 2.2).
ˆi i ai (2.14)
ˆi i Si (2.15)
7
Capítulo 2
8
Capítulo 2
ˆ 1 cos ˆ
tan (2.22)
2 sin ˆ
Vˆ V uˆ (2.23)
Para expresar la velocidad dual de cualquier punto sobre un cuerpo rígido dada la
velocidad dual en el eje sobre el que se realiza el movimiento de tornillo, se adopta
una notación para la velocidad dual representada en diferentes sistemas de
referencia.
R
Vˆi ,Pj Velocidad dual del punto P del eslabón i relativo al eslabón j en términos
del sistema inercial R.
Para expresar la ecuación (2.24) en términos de los vectores unitarios del sistema
Q, solamente es necesario considerar una rotación entre los dos sistemas de
referencia.
Q
Vˆi ,Pj QTP PVˆi ,Pj (2.25)
9
Capítulo 2
Q
El término TP es la parte primaria de la matriz dual de transformación de
coordenadas Q Mˆ .
P
10
Capítulo 2
B
B
Donde el vector Pp y H p representan el momento lineal y angular de una
partícula " p " del cuerpo “A” respectivamente, y ambos vectores se encuentran
expresados en términos del sistema de referencia “B”.
B
PA mA BVAB B S AB B AB (2.30)
B
H A B S AB BVAB B J AB B AB (2.31)
B
El término S AB es el primer momento de inercia de un cuerpo “A” respecto a un
punto “B” en términos de los vectores unitarios del sistema de referencia “B”.
B B
S Ax x dm (2.32)
A
B B
S Ay y dm (2.33)
A
B B
S Az z dm (2.34)
A
O en forma matricial:
0 B S Az
B B B
S Ay
B B
S A B S Az
B B
0 B S Ax (2.35)
B S Ay
B B B
S Ax 0
B B
J Axx y2 z2 dm (2.36)
A
B B
J Ayy x2 z2 dm (2.37)
A
B B
J Azz x2 y2 dm (2.38)
A
B B
J Axy x y dm (2.39)
A
B B
J Ayz y z dm (2.40)
A
B B
J Axz x z dm (2.41)
A
11
Capítulo 2
Las ecuaciones (2.36) - (2.41) pueden ser combinadas en una sola matriz.
B J Axx
B
B J Axy
B
B J Axz
B
B
J A B J Axy
B B B B B
J Ayy B J Ayz (2.42)
B J Axz
B
B J Azy
B B B
J Azz
B
fˆA
d
dt
B
Hˆ A (2.43)
B Hˆ
Ai 0 BVˆAkB VˆAjB B Hˆ Ai
B
f A B Hˆ Aj BVˆAkB
B ˆ
0 BVˆAiB B Hˆ Aj (2.44)
B Hˆ BVˆAjB B ˆB
V 0 B Hˆ Ak
Ak
Ai
Así cada una de las componentes de la fuerza dual de inercia a lo largo de los ejes
x , y y z serán:
B fˆAi B Hˆ Ai BVˆAkB B Hˆ Aj BVˆAjB B Hˆ Ak
B B
ˆ ˆ B ˆB B ˆ
f Aj H Aj VAi H Ak VAk H Ai B ˆB B ˆ
(2.45)
B ˆ B
f Ak Hˆ Ak VˆAj Hˆ Ai VˆAi Hˆ Aj
B B B B B B
El principio de D’Alembert puede ser aplicado de tal forma que las fuerzas
aplicadas y el momento dual formen un conjunto de ecuaciones que describan el
estado de equilibrio en un cuerpo rígido, puesto que la combinación de las fuerzas
duales de inercia así como las fuerzas duales aplicadas al cuerpo producen un
equilibrio dinámico.
B
fˆA B Mˆ A A FˆA B FˆB (2.46)
12
Capítulo 3. Solución de las ecuaciones
cinemáticas para generar una trayectoria de
trabajo definida.
3
3.1. Cinemática directa del MIRH aplicando algebra dual
X 1 , 2 ... n
Z 1 , 2 ... n
En donde ˆn y ˆ n son los ángulos duales representados en las ecuaciones (2.14)
y (2.15), que definen la geometría de la articulación y del eslabón de un
mecanismo, es posible observar que los elementos que forman a ˆn y ˆ n , son los
parámetros de Denavit-Hartenberg, los cuales se designan a partir de la siguiente
convención:
:
Capítulo 3
Aplicando las ecuaciones (2.14) y (2.15) para cada uno de los valores de la Tabla
3.1, de forma que para cada eslabón y articulación se establecen los ángulos
duales característicos del MIHR.
14
Capítulo 3
Articulación n Sn n an
1 1 + 90º 0 mm 90º 0 mm
2 2 0 mm 0º 450 mm
3 3 0 mm 0º 450 mm
4 4 - 90º 0 mm -90º 0 mm
5 5 680 mm 0º 0 mm
Tabla 3.1. Parámetros de Denavit-Hartenberg para el MIRH
ˆ2 2 0 (3.3)
ˆ3 3 0 (3.4)
ˆ4 4 90 0 (3.5)
ˆ 2 0º 450 (3.8)
ˆ 4 90º 0 (3.10)
ˆ5 0 0 (3.11)
cos 1 0 sin 1
0
Mˆ 1 sin 1 0 cos 1 (3.12)
0 1 0
15
Capítulo 3
cos 4 0 sin 4
M 4 sin 4
3 ˆ
0 cos 4 (3.15)
0 1 0
0
Mˆ 1 1Mˆ 2 2 Mˆ 3 3Mˆ 4 4 Mˆ 5 0 Mˆ 5 (3.18)
Donde:
0
T5 : Matriz primaria
0
D5 : Matriz con la parte dual de 0 M̂ 5
0
D5 P 0T5 (3.20)
16
Capítulo 3
El vector de posición del efector final es calculado a partir del teorema de Cayley
(Ángeles, 2002), ya que P es una matriz cuadrada simétrica.
0 pz py
P pz 0 px (3.21)
py px 0
px
p py (3.22)
p z
17
Capítulo 3
0 pz p y nx ox ax
F 1 , 2 ,3 , 4 ,5 pz 0 px n y oy a y 0 D5 (3.23)
py px 0 nz oz az
18
Capítulo 3
Partiendo de las matrices duales (3.12), (3.13), (3.14), (3.15), (3.16), las
velocidades duales de cada una de las articulaciones son conocidas, por lo que se
procede a obtener las velocidades relativas duales por medio de las ecuaciones
(2.24), (2.25) y (2.26).
V̂1,00 1
0
Velocidad dual de la articulación 1 en términos del sistema 0
Vˆ1,0
1 1
1Mˆ 0 0Vˆ1,00 Velocidad dual del final del eslabón 1 en términos del sistema 1
Vˆ2,0
1 1
1Mˆ 0 0Vˆ1,00 1Vˆ2,1
1
Velocidad dual de la articulación 2 en términos del sistema 1
Vˆ2,0
2 2
2 Mˆ 1 1Vˆ2,0
1
Velocidad dual del final del eslabón 2 en términos del sistema 2
Vˆ3,0
2 2
2Mˆ 1 1Vˆ2,0
1
2Vˆ3,2
2
Velocidad dual de la articulación 3 en términos del sistema 2
Vˆ3,0
3 3
3Mˆ 2 2Vˆ3,0
2
Velocidad dual del final del eslabón 3 en términos del sistema 3
Vˆ4,0
3 3
3Mˆ 2 2Vˆ3,0
2
3Vˆ4,3
3
Velocidad dual de la articulación 4 en términos del sistema 3
Vˆ4,0
4 4
4 Mˆ 3 3Vˆ4,0
3
Velocidad dual del final del eslabón 4 en términos del sistema 4
Vˆ5,0
4 4
4Mˆ 3 3Vˆ4,0
3
4Vˆ5,4
4
Velocidad dual de la articulación 5 en términos del sistema 4
Vˆ5,0
5 5
5Mˆ 4 4Vˆ5,0
4
Velocidad dual del final de eslabón 5 en términos del sistema 5
Sustituyendo cada uno de los valores, la velocidad relativa dual del efector final
con respecto a la base y en términos del sistema inercial fijo al efector final es:
i
i
Vˆi ,0i i Mˆ j 1 j 1Vˆj j, j 11 (3.26)
j 1
19
Capítulo 3
Sin embargo se busca que la velocidad dual del efector final sea expresada en
términos del sistema fijo a la base, por lo tanto la ecuación (3.26) será necesario
transformarla a las coordenadas del sistema inercial 0:
i
0
Vˆi ,0i 0Ti i Mˆ j 1 j 1Vˆj j, j 11 (3.27)
j 1
(3.28)
0Vˆ1,00
1Vˆ2,0
1
Vˆ5,0
0 5
0T5 5 Mˆ 0 5
Mˆ 1 5
Mˆ 2 5
Mˆ 3 5 ˆ 2 ˆ2
M 4 V3,0 (3.29)
3Vˆ 3
4,0
4Vˆ 4
5,0
x Vx
0
Vˆ y Vy
5
5,0 (3.30)
z Vz
Cabe señalar que de la ecuación (3.29), la matriz en bloques formada por las
matrices de rotación duales, es la matriz Jacobiana dual generalizada
característica del manipulador (Brodsky & Shoham, 1998).
20
Capítulo 3
Yˆ 5Mˆ 0 5
Mˆ 1 5
Mˆ 2 5
Mˆ 3 5
Mˆ 4 (3.31)
z 1 cos 2 3 4 5 (3.34)
x
1
y
z 2
W 3 (3.38)
Vx
Vy 4
5
Vz
21
Capítulo 3
W1,1 0
W12 sin 1
W13 sin 1
W14 sin 1
W21 0
W22 cos1
W23 cos1
W24 cos1
W31 1
W32 0
W33 0
W34 0
W35 cos 2 3 4
22
Capítulo 3
W45 0
W55 0
W61 0
W64 680sin 2 3 4
W65 0
A AT A AT
1
m n
A AT AAT
1
m n
Por lo que tomando en cuenta estas dos últimas consideraciones, las velocidades
angulares de cada articulación a partir de la ecuación (3.38) serán:
23
Capítulo 3
x
1
y
2
3 W z (3.39)
Vx
4
Vy
5
Vz
0Vˆ1,00
1Vˆ2,0
1
d 5Vˆ5,0
5
d 0 ˆ 2 ˆ2
T5Y V3,0
(3.40)
dt dt
3Vˆ 3
4,0
4Vˆ 4
5,0
0Vˆ1,00 0Vˆ1,00
1Vˆ2,0
1 1Vˆ2,0
1
x vx 0 ˆ
v d T5Y 2Vˆ 2 0T Yˆ d 2Vˆ 2 (3.41)
y y
dt 3,0 5 dt 3,0
z vz 3Vˆ 3 3Vˆ 3
4,0 4,0
4Vˆ 4 4Vˆ 4
5,0 5,0
Sin embargo esta última ecuación resulta complicada de invertir y programar, por
lo que se recurre a la ecuación (3.38), la cual derivando con respecto al tiempo
proporciona las aceleraciones del efector final respecto al sistema inercial base.
24
Capítulo 3
x
1 1
y 2
z d W 2
3 W 3 (3.42)
Vx dt
4 4
Vy
5 5
Vz
x
1 1
y
2 z d
2
3 W W W 3 (3.43)
V dt
x
4
Vy 4
5 5
Vz
25
Capítulo 3
cos1 0 sin 1 0
sin 0 cos 1 0
0
M1 1
(3.45)
0 1 0 0
0 0 0 1
cos 4 0 sin 4 0
sin 0 cos 4 0
3
M4 4
(3.48)
0 1 0 0
0 0 0 1
cos 5 sin 5 0 0
sin cos5 0 0
4
M5 5
(3.49)
0 0 1 680
0 0 0 1
26
Capítulo 3
nx ox ax px
n oy ay p y
0
T5 y (3.51)
nz oz az pz
0 0 0 1
az cos 2 3 4 (3.60)
27
Capítulo 3
Donde:
1
F (1) F (1)
T
F (1) F (1) F (1) F (1)
T
28
Capítulo 3
vx
v
y 1
vz
J n
0
(3.67)
x n
y
z
(3.68)
De la expresión (3.68) los vectores z j 1 , p j 1 y pn , son extraídos de las matrices
de transformación homogénea 0 M n , n 1 5 (Ecuaciones (3.45), (3.46), (3.47),
(3.48), (3.49)).
0
z0 0 (3.69)
1
sin 1
z1 cos 1 (3.70)
0
29
Capítulo 3
sin 1
z2 cos 1 (3.71)
0
sin 1
z3 cos 1 (3.72)
0
0
p0 0 (3.75)
0
0
p1 0 (3.76)
0
(3.78)
30
Capítulo 3
(3.80)
31
Capítulo 3
J15 0
J 25 0
J 31 0
J 33 680sin 2 3 4 450 2 3
J 34 680sin 2 3 4
J 35 0
J 41 0
J 42 sin 1
J 43 sin 1
J 44 sin 1
J 51 0
J 52 cos 1
J 53 cos 1
32
Capítulo 3
J 54 cos 1
J 61 1
J 62 0
J 63 0
J 64 0
J 65 cos 2 3 4
vx
v
1 y
0 J 1 vz
n
(3.82)
n x
y
z
vx
1 v
y
2 v
3 0 J 5 z (3.83)
x
4
y
5
z
33
Capítulo 3
ax
1 a 1
y
2 a d 2
3 0 J 5 z 0 J 5 0 J 5 3 (3.84)
x dt
4
y 4
5 5
z
Se observa que (3.84) es análoga a (3.43) por lo tanto las aceleraciones angulares
para ambos métodos serán iguales.
34
Capítulo 4 Solución de las ecuaciones
dinámicas del manipulador.
4
El análisis de fuerzas dinámicas, proporciona la relación que existe entre las
fuerzas que actúan sobre un cuerpo, y el movimiento que provocan en el mismo.
Las velocidades duales PVˆi ,Pj en cada articulación, son obtenidas de acuerdo a
(3.26) como:
Capítulo 4
0
1
Vˆ Mˆ 0 Vˆ 1
1
1,0
1 0 0
1,0 (4.1)
0
1 sin 2 0
Vˆ2,0
2 2
2 Mˆ 1 1Vˆ2,0
1
1 cos 2 0.452 (4.2)
2 0.452 cos 2
(4.4)
5 5
5
Vˆ5,0
5
5Mˆ 4 4Vˆ5,0
4
55,0 5V5,0 (4.5)
z 1 cos( 2 3 4 ) 5
36
Capítulo 4
37
Capítulo 4
38
Capítulo 4
39
Capítulo 4
1 1
1
Ĥ 0 m1 1V1,0
1
1S1 11,0
1S1 1V1,0
1
1I1 11,0
(4.7)
2 2
2
Ĥ1 m2 2V2,0
2
2 S2 22,0
2 S2 2V2,0
2
2 I 2 22,0 (4.8)
3 3
3
Ĥ 2 m3 3V3,0
3
3S3 33,0
3S3 3V3,0
3
3 I 3 33,0 (4.9)
4 4
4
Ĥ 3 m4 4V4,0
4
4 S4 44,0
4 S4 4V4,0
4
4 I 4 44,0 (4.10)
5 5
5
Ĥ 4 m5 5V5,0
5
5 S5 55,0
5 S5 5V5,0
5
5 I 5 55,0 (4.11)
d 1 1 1 d 1 1 d 1 1 1 d 1 1
1
Hˆ 0 m1
dt
V1,0 S1 1,0 1S1
dt dt dt
V1,0 I1 1,0
(4.12)
d 2 2 2 d 2 2 d 2 2 2 d 2 2
2
Hˆ 1 m2
dt
V2,0 S 2 2,0 2 S 2
dt dt dt
V2,0 I 2 2,0
(4.13)
d 3 3 3 d 3 3 d 3 3 3 d 3 3
3
Hˆ 2 m3
dt
V3,0 S3 3,0 3S3
dt dt dt
V3,0 I 3 3,0
(4.14)
d 4 4 4 d 4 4 d 4 4 4 d 4 4
4
Hˆ 3 m4
dt
V4,0 S4 4,0 4 S4
dt dt dt
V4,0 I 4 4,0
(4.15)
40
Capítulo 4
d 5 5 5 d 5 5 d 5 5 5 d 5 5
5
Hˆ 4 m5
dt
V5,0 S5 5,0 5S5
dt dt
V5,0 I 5 5,0
dt
(4.16)
Las fuerzas de inercia se obtienen a partir de la ecuación (2.45), para los fines de
estudio en este trabajo, se recurre a la forma extendida de la ecuación de la fuerza
dual de inercia.
f x t x Pi k Pj j Pk H i k H j Vk Pj j H k V j Pk (4.17)
f y t y Pj i Pk k Pi H j i H k Vi Pk k H i Vk Pi (4.18)
f z t z Pk j Pi i Pj H k j H i V j Pi i H j Vi Pj (4.19)
Por lo que para cada articulación se calcularán las fuerzas duales de inercia a lo
largo y alrededor de cada uno de sus ejes de referencia.
2t1i 2 H 1i 22,0
2
k H1 j V2,0 k P1 j 2,0 j H1k V2,0 j P1k
2 2 2 2 2 2 2 2 2 2
2 2
t1 j H1 j 2,0i H1k V2,0i P1k 2,0 k H1i V2,0 k P1i
2 2 2 2 2 2 2 2 2 2 2 2
(4.23)
2t1k 2 H 1k 22,02 2 2 2 2 2 2 2 2 2 2
j H1i V2,0 j P1i 2,0 i H1 j V2,0 i P1 j
41
Capítulo 4
3 f 2i 3 P2i 33,0
3
k P2 j 3,0 j P2 k
3 3 3 3
3 3
f 2 j P2 j 3,0i P2 k 3,0 k P2i
3 3 3 3 3 3
(4.24)
3 f 2 k 3 P2 k 33,0
3 3 3 3 3
j P2 i 3,0 i P2 j
3t2i 3 H 2i 33,0
3
k H 2 j V3,0 k P2 j 3,0 j H 2 k V3,0 j P2 k
3 3 3 3 3 3 3 3 3 3
3 3
t2 j H 2 j 3,0i H 2 k V3,0i P2 k 3,0 k H 2i V3,0 k P2i
3 3 3 3 3 3 3 3 3 3 3 3
(4.25)
3t2 k 3 H 2 k 33,0
3 3 3 3 3 3 3 3 3 3 3
j H 2 i V3,0 j P2 i 3,0 i H 2 j V3,0 i P2 j
4t3i 4 H 3i 44,0
4
k H 3 j V4,0 k P3 j 4,0 j H 3 k V4,0 j P3 k
4 4 4 4 4 4 4 4 4 4
4 4
t
3 j H 3 j
4 4 4
4,0 i H 3 k 4 4 4
V4,0 i P3 k
4 4
4,0 k
4
H 3 i 4 4 4
V4,0 k P3 i (4.27)
4t3k 4 H 3k 44,0 4 4
H 4 4 4
V P
4 4 4
H 4 4 4
V P
j 3i 4,0 j 3i 4,0 i 3j 4,0 i 3j
5 f 4i 5 P4i 55,0
5
k P4 j 5,0 j P4 k
5 5 5 5
5 5
f 4 j P4 j 5,0i P4 k 5,0 k P4i
5 5 5 5 5 5
(4.28)
5 f 4 k 5 P4 k 55,0
5 5 5 5 5
j P4 i 5,0 i P4 j
5t4i 5 H 4i 55,0
5
k H 4 j V5,0 k P4 j 5,0 j H 4 k V5,0 j P4 k
5 5 5 5 5 5 5 5 5 5
5 5
t4 j H 4 j 5,0i H 4 k V5,0i P4 k 5,0 k H 4i V5,0 k P4 i
5 5 5 5 5 5 5 5 5 5 5 5
(4.29)
5t4 k 5 H 4 k 55,0
5 5 5 5 5 5 5 5 5 5 5
j H 4 i V5,0 j P4 i 5,0 i H 4 j V5,0 i P4 j
B
fˆA B Hˆ A BVAB,0 B Hˆ A (4.30)
42
Capítulo 4
sistema de ecuaciones con las fuerzas duales de inercia para cada uno de los
eslabones del manipulador.
B
Mˆ A A FˆA B FˆB B fˆA 0 (4.31)
De la expresión (4.32) se definen las fuerzas de reacción en cada uno de los ejes
de las articulaciones del manipulador.
B
M A AFA B FB B f A B
M A ATA B DA AFA BTB Bt A 0 (4.33)
1
2
F2 2 M 1 3 F3 2 f1 (4.37)
F f
1
3
F3 3M 2 4
4
3
2 (4.38)
1
4
F4 4 M 4 5 F5 4 f3 (4.39)
1
5
F5 4 M 5 5
f4 (4.40)
1
1
T1 1M 0 2T2 1t0 1D0 1F1 (4.41)
43
Capítulo 4
1
2
T2 2 M 1 3T3 2t1 2 D1 2 F2 (4.42)
1
T3 3M 2 4T4 3t2 3 D2 3 F3
3
(4.43)
1
T4 4 M 3 5T5 4t3 4 D3 4 F4
4
(4.44)
1
5
T5 5 M 4 5t4 5 D4 5 F5 (4.45)
d L L
i (4.46)
dt qi qi
Tr U jk J jU Tji
n
Dik
j max( i ,k )
i, k 1, 2...n (4.48)
Tr U jkm J jU Tji
n
hikm
j max( i ,k ,m )
i, k , m 1, 2...n (4.50)
44
Capítulo 4
n
ci m j gU ji j rj i 1, 2...n (4.51)
j i
D22 Tr U 22 I 2U 22
T
Tr U 32 I3U 32T Tr U 42 I 4U 42T Tr U 52 I 5U 52T
D23 Tr U 33 I 3U 32
T
Tr U 43I 4U 42T Tr U 53I3U 52T
45
Capítulo 4
D24 Tr U 44 I 4U 42
T
Tr U 54 I5U 52T
D25 Tr U 55 I 5U 52
T
D31 D13
D32 D23
D33 Tr U 33 I 3U 33
T
Tr U 43I 4U 43T Tr U 53I 5U 53T
D34 Tr U 44 I 4U 43
T
Tr U 54 I5U 53T
D35 Tr U 55 I 5U 53
T
D41 D14
D42 D24
D43 D34
D44 Tr U 44 I 4U 44
T
Tr U 54 I5U 54T
D45 Tr U 55 I 5U 54
T
D51 D15
D52 D25
D53 D35
D54 D45
D55 Tr U 55 I 5U 55
T
Donde las matrices U ij , U ijk son las derivadas parciales de las matrices de
transformación homogénea:
46
Capítulo 4
U ij
U ijk (4.54)
qk
Por lo tanto aplicando las ecuaciones (4.53) y (4.54) se obtienen las siguientes
expresiones:
U 221 QAQA
1 2 U 222 A1QQA2 U 31 QA1 A2 A3
U 32 AQA
1 2 A3 U 321 QAQA
1 2 A3 U 322 A1QQA2 A3
U 422 AQQA
1 2 A3 A4 U 423 A1QA2QA3 A4 U 424 A1QA2 A3QA4
U 522 AQQA
1 2 A3 A4 A5 U 523 A1QA2QA3 A4 A5 U 524 A1QA2 A3QA4 A5
47
Capítulo 4
U 555 A1 A2 A3 A4QQA5
h122 tr U 222 J 2U 21
T
tr U 322 J 3U 31T tr U 422 J 4U 41T tr U 522 J 5U 51T
h123 tr U 323 J 3U 31
T
tr U 423 J 4U 41T tr U523 J5U51T
h124 tr U 424 J 4U 41
T
tr U524 J5U51T
h125 tr U 525 J 5U 51
T
h131 h113
h132 h123
48
Capítulo 4
h133 tr U 333 J 3U 31
T
tr U 433 J 4U 41T tr U533 J5U51T
h134 tr U 434 J 4U 41
T
tr U534 J5U51T
h135 tr U 535 J 5U 51
T
h141 h114
h142 h124
h143 h134
h144 tr U 444 J 4U 41
T
tr U544 J5U51T
h145 tr U 545 J 5U 51
T
h151 h115
h152 h125
h153 h135
h154 h145
h155 tr U 555 J 5U 51
T
h111 h121 h131 h141 h151
h h122 h132 h142 h152
112
H1 h113 h123 h133 h143 h153 ; h1 T H1
h114 h124 h134 h144 h154
h115 h125 h135 h145 h155
h211 tr U 211 J 2U 22
T
tr U 311J 3U32T tr U 411J 4U 42T tr U511J5U52T
h212 tr U 212 J 2U 22
T
tr U 312 J 3U 32T tr U 412 J 4U 42T tr U 512 J 5U 52T
h213 tr U 313 J 3U 32
T
tr U 413 J 4U 42T tr U 513 J 5U 52T
49
Capítulo 4
h214 tr U 414 J 4U 42
T
tr U 514 J 5U 52T
h215 tr U 515 J 5U 52
T
h221 h212
h222 tr U 222 J 2U 22
T
tr U 322 J 3U 32T tr U 422 J 4U 42T tr U 522 J 5U 52T
h223 tr U 323 J 3U 32
T
tr U 423 J 4U 42T tr U 523 J 5U 52T
h224 tr U 424 J 4U 42
T
tr U 524 J 5U 52T
h225 tr U 525 J 5U 52
T
h231 h13
h232 h223
h233 tr U 333 J 3U 32
T
tr U 433 J 4U 42T tr U 533 J 5U 52T
h234 tr U 434 J 4U 42
T
tr U 534 J 5U 52T
h235 tr U 535 J 5U 52
T
h241 h214
h242 h224
h243 h234
h244 tr U 444 J 4U 42
T
tr U 544 J 5U 52T
h245 tr U 545 J 5U 52
T
h251 h215
h252 h225
50
Capítulo 4
h253 h235
h254 h245
h255 tr U 555 J 5U 52
T
h211 h221 h231 h241 h251
h h22 h232 h242 h252
212
H 2 h213 h223 h233 h243 h253 ; h2 T H 2
h214 h224 h234 h244 h254
h215 h225 h235 h245 h255
h311 Tr U 311 J 3U 33
T
Tr U 411J 4U 43T Tr U 511J 5U 53T
h312 Tr U 312 J 3U 33
T
Tr U 412 J 4U 43T Tr U 512 J 5U 53T
h313 Tr U 313 J 3U 33
T
Tr U 413 J 4U 43T Tr U 513 J 5U 53T
h314 Tr U 414 J 4U 43
T
Tr U 514 J 5U 53T
h315 Tr U 515 J 5U 53
T
h321 h312
h322 Tr U 322 J 3U 33
T
Tr U 422 J 4U 43T Tr U 522 J 5U 53T
h323 Tr U 323 J 3U 33
T
Tr U 423 J 4U 43T Tr U 523 J 5U 53T
h324 Tr U 424 J 4U 43
T
Tr U 524 J 5U 53T
h325 Tr U 525 J 5U 53
T
h331 h313
h332 h323
51
Capítulo 4
h333 Tr U 333 J 3U 33
T
Tr U 433 J 4U 43T Tr U 533 J 5U 53T
h334 Tr U 434 J 4U 43
T
Tr U 534 J 5U 53T
h335 Tr U 535 J 5U 53
T
h341 h314
h342 h324
h343 h334
h344 Tr U 444 J 4U 43
T
Tr U 544 J 5U 53T
h345 Tr U 545 J 5U 53
T
h351 h315
h352 h325
h353 h335
h354 h345
h355 Tr U 555 J 5U 53
T
h311 h321 h331 h341 h351
h h322 h332 h342 h352
312
H 3 h313 h323 h333 h343 h353 ; h3 wT H 3 w
h314 h324 h334 h344 h354
h315 h325 h335 h345 h355
h415 Tr U 515 J 5U 54
T
h425 Tr U 525 J 5U 54
T
h435 Tr U 535 J 5U 54
T
52
Capítulo 4
h445 Tr U 545 J 5U 54
T
h455 Tr U 555 J 5U 54
T
h414 Tr U 414 J 4U 44
T
Tr U 514 J5U54T
h424 Tr U 424 J 4U 44
T
Tr U 524 J5U54T
h434 Tr U 434 J 4U 44
T
Tr U 534 J5U54T
h444 Tr U 444 J 4U 44
T
Tr U 544 J5U54T
h454 h445
h413 Tr U 413 J 4U 44
T
Tr U 513 J 5U 54T
h423 Tr U 423 J 4U 44
T
Tr U 523 J 5U 54T
h433 Tr U 433 J 4U 44
T
Tr U 533 J 5U 54T
h443 h434
h453 h435
h412 Tr U 412 J 4U 44
T
Tr U 512 J5U54T
h422 Tr U 422 J 4U 44
T
Tr U 522 J5U54T
h432 h423
h442 h424
h452 h425
h411 Tr U 411 J 4U 44
T
Tr U 511J 5U 54T
h421 h412
53
Capítulo 4
h431 h413
h441 h414
h451 h415
h511 Tr U 511 J 5U 55
T
h512 Tr U 512 J 5U 55
T
h513 Tr U 513 J 5U 55
T
h514 Tr U 514 J 5U 55
T
h515 Tr U 515 J 5U 55
T
h521 h512
h522 Tr U 522 J 5U 55
T
h523 Tr U 523 J 5U 55
T
h524 Tr U 524 J 5U 55
T
h525 Tr U 525 J 5U 55
T
h531 h513
h532 h523
h533 Tr U 533 J 5U 55
T
54
Capítulo 4
h534 Tr U 534 J 5U 55
T
h535 Tr U 535 J 5U 55
T
h541 h514
h542 h524
h543 h534
h544 Tr U 544 J 5U 55
T
h545 Tr U 545 J 5U 55
T
h551 h515
h552 h525
h553 h535
h554 h545
h555 Tr U 555 J 5U 55
T
h511 h521 h531 h541 h551
h h522 h532 h542 h552
512
H 5 h513 h523 h533 h543 h553 ; h5 T H 5
h514 h524 h534 h544 h554
h515 h525 h535 h545 h555
Por lo tanto:
h1
h
2
h h3
h4
h5
55
Capítulo 4
56
Capítulo 4
i (0) a0
i (0) a1
i (0) 2a2
(4.58)
f (t f ) a0 a1t f a2t 2f a3t 3f a4t 4f a5t 5f
f (t f ) a1 2a2t f 3a3t 2f 4a4t 3f 5a5t 4f
f (t f ) 2a2 6a3t f 12a4t 2f 20a5t 3f
Del conjunto de ecuaciones (4.58) se define un arreglo matricial para calcular cada
uno de los coeficientes de los polinomios de posición, velocidad y aceleración.
1
a0 1 0 0 0 0 0 i
a 0 1 0 0 0 0 i
1
a2 0 0 1 0 0 0 0.5i
2 (4.59)
f i i t f 0.5i t f
3
a3 0 0 0 tf t 4f t 5f
a4 0 0 0 3t 2f 4t 3f 5t 4f f i it f
a5 0 0 0 6t f 12t 2f 40t 3f f i
(t ) S (t ) a0 a1t a2t 2 a3t 3 a4t 4 a5t 5 b0 b1t b2t 2 b3t 3 b4t 4 b5t 5
(4.60)
(4.61)
(t ) S(t ) 2a2 6a3t 12a4t 2 20a5t 3 2b2 6b3t 12b4t 2 20b5t 3 (4.62)
a0 b0 i Si
a b S
1 1 i i
a2 b2 1 0.5i 1 0.5Si
t t (4.63)
f i i t f 0.5i t f S f Si Si t f 0.5Si t f
2 2
a3 b3
a4 b4 f i i t f S f Si Si t f
a5 b5 f i Sf Si
57
Capítulo 4
Donde:
1 0 0 0 0 0
0 1 0 0 0 0
0 0 1 0 0 0
t 0 0 3
0 tf t 4f t 5f
(4.64)
0 0 0 3t 2f 4t 3f 5t 4f
0 0 0 6t f 12t 2f 40t 3f
Del espacio de trabajo de MATLAB son enviados a SIMULINK, las matrices con
los valores de los ángulos para cada articulación, definidos para cada instante de
tiempo.
58
Capítulo 4
59
Capítulo 4
Figura 4.22. Programa en SIMULINK para conectar MATLAB con el modelo 3D.
60
Capítulo 5 Análisis de resultados.
5
A lo largo de este trabajo se han desarrollado los algoritmos basados en matrices
de transformación homogénea y en matrices duales ortogonales, para obtener el
modelo que describe el movimiento cinemático y dinámico de manipuladores
seriales, en específico el MIRH, no obstante como objetivo de este trabajo es
necesario realizar un análisis comparativo entre ambos métodos.
1 2 3 4 5
0 0 0 0 0
9 4.5 -9 4.5 18
18 9 -18 9 36
27 13.5 -27 13.5 54
36 18 -36 18 72
45 22.5 -45 22.5 90
54 27 -54 27 108
63 31.5 -63 31.5 126
72 36 -72 36 144
81 40.5 -81 40.5 162
90 45 -90 45 180
Tabla 5.1. Ángulos propuestos
En la Tabla 5.2 se observa de manera clara que los valores del vector de posición
del efector final tanto para las matrices homogéneas como para las matrices
duales el resultado es similar, por lo que el error entre ambas es nulo, sin embargo
durante la ejecución de los programas se pudo observar que el tiempo de
procesamiento es menor para algebra matricial que para las matrices duales, esto
62
Capítulo 5
0.02
0.015
Tiempo de procesamiento
0.01
Matrices Duales
0.005 Matrices
Homogéneas
0
1 2 3 4 5 6 7 8 9 10
-0.005
Puntos
Figura 5.2. Grafica comparativa de tiempo requerido para solucionar las ecuaciones
de lazo cerrado
63
Capítulo 5
X y z
deseado deseado deseado
1 0 1580 0
2 0 450 -230
3 1316.4 0 0
4 -526.0909 0 872.8617
5 0 680 900
6 0 680 900
7 0 680 900
8 0 680 900
9 0 680 900
10 0 820 1000
11 0 820 900
12 0 680 900
13 -1000 1000 150
14 -700 700 600
15 0 450 -230
Tabla 5.3. Vectores de posición deseados
nx ny nz ox oy oz ax ay az
1 0 0 -1 -1 0 0 0 1 0
2 0 -1 0 -1 0 0 0 0 1
3 0 1 0 0 0 1 1 0 0
4 0 0 -1 0 -1 0 -1 0 0
5 0 0 -1 -1 0 0 0 1 0
6 0 0.4226 -0.9063 -1 0 0 0 0.9063 0.4226
7 0 0.7071 -0.7071 -1 0 0 0 0.7071 0.7071
8 0 0.9397 -0.342 -1 0 0 0 0.342 0.9397
9 0 1 0 -1 0 0 0 0 1
10 0 1 0 -1 0 0 0 0 1
11 0 1 0 -1 0 0 0 0 1
12 0 1 0 -1 0 0 0 0 1
13 -0.7071 -0.7071 0 0 0 1 -0.7071 0.7071 0
14 -0.7071 -0.7071 0 0 0 1 -0.7071 0.7071 0
64
Capítulo 5
15 0 -1 0 -1 0 0 0 0 -1
Tabla 5.4. Vectores normal, de orientación y de aproximación deseados
Los ángulos calculados a partir de las ecuaciones duales, que satisfacen las
condiciones de orientación y de posición son presentados en la Tabla 5.5.
t1 t2 t3 t4 t5
0 0 0 0 0
0 90 -90 -90 0
-90 44.9996 -89.9993 44.9997 90
90 110 -20 -90 0
0 44.9999 0.0002 -90.0001 0
0 130.8783 -93.6294 -12.2496 0
0 123.5454 -117.9199 39.3746 0
0 85.1176 -109.7227 94.6064 0
0 55.3563 -74.8567 109.5004 0
0 33.3502 -24.0646 80.7144 0
0 34.3994 -38.762 94.3627 0
0 55.3563 -74.8567 109.5004 0
45 45.1762 -67.3 22.0829 90
45 104.0589 -82.7576 -21.3011 90
0 90 -90 -90 0
Tabla 5.5. Ángulos calculados por algebra dual.
t1 t2 t3 t4 t5
0 0 0 0 0
0 90 -90 -90 0
-90 44.9997 -89.9993 44.9996 90
90 110 -20 -90 0
0 90.0005 -0.0011 -89.9995 0
0 130.8772 -93.6281 -12.2499 0
0 123.5448 -117.9191 39.3743 0
0 85.1175 -109.7227 94.6064 0
0 55.3563 -74.8567 109.5004 0
0 33.3502 -24.0646 80.7144 0
0 34.3994 -38.762 94.3627 0
0 55.3563 -74.8567 109.5004 0
45 45.1762 -67.3 22.0829 90
45 104.0589 -82.7576 -21.3011 90
65
Capítulo 5
0 90 -90 -90 0
Tabla 5.6. Ángulos calculados por matrices de transformación homogénea.
Para ambos casos los resultados son muy idénticos y ambos satisfacen las
condiciones iniciales con un error promedio de 0.000089º.
Figura 5.4. Tiempo de solución de los sistemas de ecuaciones generados por matrices
de transformación homogénea y matrices duales.
A partir de la información proporcionada por las tablas 5.3, 5.4, 5.5 y 5.6 con
velocidades y aceleraciones nulas para el inicio y final de cada intervalo, es
posible establecer un generador de trayectoria, el cual producirá un movimiento
suave y continuo en cada una de las articulaciones, por lo tanto cada articulación
para los intervalos deseados tendrá el siguiente comportamiento.
66
Capítulo 5
1) 2) 3)
4) 5) 6)
7) 8) 9)
67
Capítulo 5
68
Capítulo 5
69
Capítulo 5
70
Capítulo 5
71
Capítulo 5
72
Capítulo 5
73
Capítulo 5
74
Capítulo 5
75
Capítulo 5
76
Capítulo 5
77
Capítulo 5
78
Conclusiones
Los números duales han demostrado ser una herramienta con un amplio poder de
solución a problemas que implican translaciones y rotaciones de cuerpos rígidos
en el espacio. Además proporcionan un método capaz de ser generalizado a
articulaciones prismáticas o cilíndricas, lo cual reduce el tiempo de programación
para cada uno de los diferentes problemas derivados de la diversidad de
topologías en los manipuladores industriales.
79
Simular los movimientos del MIRH en una interface gráfica basada en las
ecuaciones de movimiento dual, permite observar el comportamiento y las
posibles colisiones de algún eslabón o del efector final.
Además de los aspectos antes mencionados durante este trabajo también se pudo
concluir que agregar un grado de libertad más al MIRH, sería de gran utilidad para
incrementar su movilidad y volumen de trabajo ya que del análisis hecho en el
simulador se observó la deficiencia que tiene el MIRH para realizar diferentes
trayectorias. Por lo que el MIRH con una topología 6R, permitiría que la matriz
Jacobiana característica del manipulador sea cuadrada lo que se traduce en una
mayor facilidad para invertir dicha matriz.
80
Recomendaciones para trabajos futuros
Diversos son los trabajos que pueden surgir de esta tesis, tales temas sugeridos
son:
81
Anexo A.- Programa para solucionar la cinemática directa
por álgebra dual
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%CINEMATICA DIRECTA DE MIRH POR NUMEROS DUALES METODOLOGIA DEL FISHER %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clc
clear all
syms E t1 t2 t3 t4 t5
alpha1=90; a1=0; S1=0;
alpha2=0; a2=450; S2=0;
alpha3=0; a3=450; S3=0;
alpha4=-90; a4=0; S4=0;
alpha5=0; a5=0; S5=680;
tic
P01=[cos(t1), -cosd(alpha1)*sin(t1), sind(alpha1)*sin(t1);
sin(t1), cosd(alpha1)*cos(t1), -sind(alpha1)*cos(t1);
0, sind(alpha1), cosd(alpha1);];
P12=[cos(t2), -cosd(alpha2)*sin(t2), sind(alpha2)*sin(t2);
sin(t2), cosd(alpha2)*cos(t2), -sind(alpha2)*cos(t2);
0, sind(alpha2), cosd(alpha2);];
P23=[cos(t3), -cosd(alpha3)*sin(t3), sind(alpha3)*sin(t3);
sin(t3), cosd(alpha3)*cos(t3), -sind(alpha3)*cos(t3);
0, sind(alpha3), cosd(alpha3);];
P34=[cos(t4), -cosd(alpha4)*sin(t4), sind(alpha4)*sin(t4);
sin(t4), cosd(alpha4)*cos(t4), -sind(alpha4)*cos(t4);
0, sind(alpha4), cosd(alpha4);];
P45=[cos(t5), -cosd(alpha5)*sin(t5), sind(alpha5)*sin(t5);
sin(t5), cosd(alpha5)*cos(t5), -sind(alpha5)*cos(t5);
0, sind(alpha5), cosd(alpha5);];
P05=P01*P12*P23*P34*P45;
D01=[-S1*sin(t1),a1*sind(alpha1)*sin(t1)-S1*cosd(alpha1)*cos(t1),
a1*cosd(alpha1)*sin(t1)+S1*sind(alpha1)*cos(t1);
S1*cos(t1),-a1*sind(alpha1)*cos(t1)-S1*cosd(alpha1)*sin(t1),
-a1*cosd(alpha1)*cos(t1)+S1*sind(alpha1)*sin(t1);
0, a1*cosd(alpha1),
-a1*sind(alpha1);];
D12=[-S2*sin(t2), a2*sind(alpha2)*sin(t2)-S2*cosd(alpha2)*cos(t2),
a2*cosd(alpha2)*sin(t2)+S2*sind(alpha2)*cos(t2);
S2*cos(t2), -a2*sind(alpha2)*cos(t2)-S2*cosd(alpha2)*sin(t2), -
a2*cosd(alpha2)*cos(t2)+S2*sind(alpha2)*sin(t2);
82
0, a2*cosd(alpha2),
-a2*sind(alpha2);];
D23=[-S3*sin(t3), a3*sind(alpha3)*sin(t3)-S3*cosd(alpha3)*cos(t3),
a3*cosd(alpha3)*sin(t3)+S3*sind(alpha3)*cos(t3);
S3*cos(t3), -a3*sind(alpha3)*cos(t3)-S3*cosd(alpha3)*sin(t3), -
a3*cosd(alpha3)*cos(t3)+S3*sind(alpha3)*sin(t3);
0, a3*cosd(alpha3),
-a3*sind(alpha3);];
D34=[-S4*sin(t4), a4*sind(alpha4)*sin(t4)-S4*cosd(alpha4)*cos(t4),
a4*cosd(alpha4)*sin(t4)+S4*sind(alpha4)*cos(t4);
S4*cos(t4), -a4*sind(alpha4)*cos(t4)-S4*cosd(alpha4)*sin(t4), -
a4*cosd(alpha4)*cos(t4)+S4*sind(alpha4)*sin(t4);
0, a4*cosd(alpha4),
-a4*sind(alpha4);];
D45=[-S5*sin(t5), a5*sind(alpha5)*sin(t5)-S5*cosd(alpha5)*cos(t5),
a5*cosd(alpha5)*sin(t5)+S5*sind(alpha5)*cos(t5);
S5*cos(t5), -a5*sind(alpha5)*cos(t5)-S5*cosd(alpha5)*sin(t5), -
a5*cosd(alpha5)*cos(t5)+S5*sind(alpha5)*sin(t5);
0, a5*cosd(alpha5),
-a5*sind(alpha5);];
83
Anexo B.- Programa para solucionar la cinemática
inversa por álgebra dual
%%%%Programa para resolver la cinematica inversa y directa por algebra
clc
clear all
syms E t1 t2 t3 t4 t5 t6
global MP px py pz
tic
%%%%Vector fila de valores propuestos!!!
%MAtriz de orientacion
nx=0 ny=-1 nz=0
ox=-1 oy=0 oz=0
ax=0 ay=0 az=-1
MP=[nx ox ax
ny oy ay
nz oz az];
%Matriz de posición
t0=[1.5,.5,-1.1,.1,.1];
%Función para resolver el sistema de ecuaciones
t=fsolve(@ecua_dual,t0);
toc
84
Anexo C.- Función del sistema de ecuaciones de diseño
duales
function F=ecua_dual(t)
global MP px py pz
P=[0 -pz py;
pz 0 -px;
-py px 0;];
MD=P*MP;
D11=MD(1,1);D21=MD(2,1);D31=MD(3,1);D12=MD(1,2);D22=MD(2,2);D32=MD(3,2);
D13=MD(1,3);D23=MD(2,3);D33=MD(3,3);
%Matriz de funciones
F=[D11-
((450*sin(t(1))*sin(t(3))*cos(t(4))+450*sin(t(1))*cos(t(3))*sin(t(4)))*co
s(t(5))-
450*cos(t(1))*sin(t(2))*sin(t(5))+450*sin(t(1))*sin(t(4))*cos(t(5))+(-
450*cos(t(1))*cos(t(2))*sin(t(3))-
450*cos(t(1))*sin(t(2))*cos(t(3)))*sin(t(5))-
680*((cos(t(1))*cos(t(2))*cos(t(3))-
cos(t(1))*sin(t(2))*sin(t(3)))*cos(t(4))+(-cos(t(1))*cos(t(2))*sin(t(3))-
cos(t(1))*sin(t(2))*cos(t(3)))*sin(t(4)))*sin(t(5))-
680*sin(t(1))*cos(t(5)))
D21-((-450*cos(t(1))*sin(t(3))*cos(t(4))-
450*cos(t(1))*cos(t(3))*sin(t(4)))*cos(t(5))-
450*sin(t(1))*sin(t(2))*sin(t(5))-450*cos(t(1))*sin(t(4))*cos(t(5))+(-
450*sin(t(1))*cos(t(2))*sin(t(3))-
450*sin(t(1))*sin(t(2))*cos(t(3)))*sin(t(5))-
680*((sin(t(1))*cos(t(2))*cos(t(3))-
sin(t(1))*sin(t(2))*sin(t(3)))*cos(t(4))+(-sin(t(1))*cos(t(2))*sin(t(3))-
sin(t(1))*sin(t(2))*cos(t(3)))*sin(t(4)))*sin(t(5))+680*cos(t(1))*cos(t(5
)))
D31-(450*cos(t(2))*sin(t(5))+(-
450*sin(t(2))*sin(t(3))+450*cos(t(2))*cos(t(3)))*sin(t(5))-
680*((sin(t(2))*cos(t(3))+cos(t(2))*sin(t(3)))*cos(t(4))+(-
sin(t(2))*sin(t(3))+cos(t(2))*cos(t(3)))*sin(t(4)))*sin(t(5)))
D12-(-
(450*sin(t(1))*sin(t(3))*cos(t(4))+450*sin(t(1))*cos(t(3))*sin(t(4)))*sin
(t(5))-450*cos(t(1))*sin(t(2))*cos(t(5))-
450*sin(t(1))*sin(t(4))*sin(t(5))+(-450*cos(t(1))*cos(t(2))*sin(t(3))-
450*cos(t(1))*sin(t(2))*cos(t(3)))*cos(t(5))-
680*((cos(t(1))*cos(t(2))*cos(t(3))-
cos(t(1))*sin(t(2))*sin(t(3)))*cos(t(4))+(-cos(t(1))*cos(t(2))*sin(t(3))-
cos(t(1))*sin(t(2))*cos(t(3)))*sin(t(4)))*cos(t(5))+680*sin(t(1))*sin(t(5
)))
85
D22-(-(-450*cos(t(1))*sin(t(3))*cos(t(4))-
450*cos(t(1))*cos(t(3))*sin(t(4)))*sin(t(5))-
450*sin(t(1))*sin(t(2))*cos(t(5))+450*cos(t(1))*sin(t(4))*sin(t(5))+(-
450*sin(t(1))*cos(t(2))*sin(t(3))-
450*sin(t(1))*sin(t(2))*cos(t(3)))*cos(t(5))-
680*((sin(t(1))*cos(t(2))*cos(t(3))-
sin(t(1))*sin(t(2))*sin(t(3)))*cos(t(4))+(-sin(t(1))*cos(t(2))*sin(t(3))-
sin(t(1))*sin(t(2))*cos(t(3)))*sin(t(4)))*cos(t(5))-
680*cos(t(1))*sin(t(5)))
D32-(450*cos(t(2))*cos(t(5))+(-
450*sin(t(2))*sin(t(3))+450*cos(t(2))*cos(t(3)))*cos(t(5))-
680*((sin(t(2))*cos(t(3))+cos(t(2))*sin(t(3)))*cos(t(4))+(-
sin(t(2))*sin(t(3))+cos(t(2))*cos(t(3)))*sin(t(4)))*cos(t(5)))
D13-(-
450*sin(t(1))*sin(t(3))*sin(t(4))+450*sin(t(1))*cos(t(3))*cos(t(4))+450*s
in(t(1))*cos(t(4)))
D23-(450*cos(t(1))*sin(t(3))*sin(t(4))-
450*cos(t(1))*cos(t(3))*cos(t(4))-450*cos(t(1))*cos(t(4)))
D33];
86
Anexo D.- Programa para solucionar la cinemática directa
por matrices de transformación homogénea
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%CINEMATICA DIRECTA POR ALGEBRA MATRICIAL%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clc
clear all
syms t1 t2 t3 t4 t5
tic
%Parametros de Denavith y Hartemberg
alpha1=90; a1=0; d1=0;
alpha2=0; a2=450; d2=0;
alpha3=0; a3=450; d3=0;
alpha4=-90; a4=0; d4=0;
alpha5=0; a5=0; d5=680;
A01=[cos(t1), -cosd(alpha1)*sin(t1), sind(alpha1)*sin(t1), a1*cos(t1);
sin(t1), cosd(alpha1)*cos(t1), -sind(alpha1)*cos(t1), a1*sin(t1);
0, sind(alpha1), cosd(alpha1), d1;
0, 0, 0, 1;];
87
T=A01*A12*A23*A34*A45;
T05=simple(T);
toc
h1=input('theta1: '); t1=deg2rad(h1+90);
h2=input('theta2: '); t2=deg2rad(h2);
h3=input('theta3: '); t3=deg2rad(h3);
h4=input('theta4: '); t4=deg2rad(h4-90);
h5=input('theta5: '); t5=deg2rad(h5);
tic
M_05=Eval(T05)
Toc
%%%Gráfica de Resultados
grid on
%%Conversion de polar a Cartesiano
[x2,y2]=pol2cart(t2,450);
[x3,y3]=pol2cart(t3+t2,450);
[x4,y4]=pol2cart(t2+t3+t4+(pi/2),680);
88
Anexo E.- Programa para solucionar la cinemática
inversa por matrices de transformación homogénea
%%%%Programa para resolver la cinematica inversa y directa por algebra
clc
clear all
global A
tic
%%%%Vector fila de valores propuestos
t0=[1.5,.5,-1.1,.1,.1];
%Función para resolver el sistema de ecuaciones
MP=[nx ox ax
ny oy ay
nz oz az];
A=[nx ox ax px
ny oy ay py
nz oz az pz
0 0 0 1];
t = fsolve(@Ecua_mat,t0);
toc
%t=lsqnonlin(@myfun,t0);
89
Anexo F.- Función del sistema de ecuaciones de diseño
por matrices de transformación homogénea
function F=Ecua_mat(t)
global A
nx=A(1,1);ny=A(2,1);nz=A(3,1);ox=A(1,2);oy=A(2,2);oz=A(3,2);ax=A(1,3);
ay=A(2,3);az=A(3,3);px=A(1,4);py=A(2,4);pz=A(3,4);
%Matriz de funciones
F=[nx-(1/4*cos(-t(5)-t(4)-t(3)+t(1)-t(2))+1/4*cos(t(5)-t(4)-t(3)+t(1)-
t(2))+1/4*cos(-
t(5)+t(4)+t(3)+t(1)+t(2))+1/4*cos(t(5)+t(4)+t(3)+t(1)+t(2))-1/2*cos(t(1)-
t(5))+1/2*cos(t(1)+t(5)))
ny-(1/4*sin(t(5)+t(4)+t(3)+t(1)+t(2))+1/4*sin(-
t(5)+t(4)+t(3)+t(1)+t(2))+1/4*sin(t(5)-t(4)-t(3)+t(1)-t(2))+1/4*sin(-
t(5)-t(4)-t(3)+t(1)-t(2))+1/2*sin(t(1)+t(5))-1/2*sin(t(1)-t(5)))
nz-(1/2*sin(t(2)+t(3)+t(4)+t(5))+1/2*sin(t(2)+t(3)+t(4)-t(5)))
ox-(-1/4*sin(t(5)-t(4)-t(3)+t(1)-t(2))+1/4*sin(-t(5)-t(4)-t(3)+t(1)-
t(2))-1/4*sin(t(5)+t(4)+t(3)+t(1)+t(2))+1/4*sin(-
t(5)+t(4)+t(3)+t(1)+t(2))-1/2*sin(t(1)+t(5))-1/2*sin(t(1)-t(5)))
oy-(-1/4*cos(-
t(5)+t(4)+t(3)+t(1)+t(2))+1/4*cos(t(5)+t(4)+t(3)+t(1)+t(2))-1/4*cos(-
t(5)-t(4)-t(3)+t(1)-t(2))+1/4*cos(t(5)-t(4)-t(3)+t(1)-t(2))+1/2*cos(t(1)-
t(5))+1/2*cos(t(1)+t(5)))
oz-(-1/2*cos(t(2)+t(3)+t(4)-t(5))+1/2*cos(t(2)+t(3)+t(4)+t(5)))
ax-(1/2*sin(-t(4)-t(3)+t(1)-t(2))-1/2*sin(t(4)+t(3)+t(1)+t(2)))
ay-(1/2*cos(t(4)+t(3)+t(1)+t(2))-1/2*cos(-t(4)-t(3)+t(1)-t(2)))
az-(cos(t(2)+t(3)+t(4)))
px-(340*sin(-t(4)-t(3)+t(1)-t(2))-
340*sin(t(4)+t(3)+t(1)+t(2))+225*cos(-t(3)+t(1)-
t(2))+225*cos(t(3)+t(1)+t(2))+225*cos(t(1)-t(2))+225*cos(t(1)+t(2)))
py-(340*cos(t(4)+t(3)+t(1)+t(2))-340*cos(-t(4)-t(3)+t(1)-
t(2))+225*sin(t(3)+t(1)+t(2))+225*sin(-t(3)+t(1)-
t(2))+225*sin(t(1)+t(2))+225*sin(t(1)-t(2)))
pz-(680*cos(t(2)+t(3)+t(4))+450*sin(t(2)+t(3))+450*sin(t(2)))];
90
Anexo G.- Programa para solucionar la dinámica por
algebra dual
% ANALISIS DINAMICO CON NUMEROS DUALES
% Ricardo Tapia Herrera
clc
clear all
syms E t1 t2 t3 t4 t5 w1 w2 w3 w4 w5 aa1 aa2 aa3 aa4 aa5
tic
tiempo_f=10;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Matriz de tiempo para el generador de trayectorias
L=[1 0 0 0 0 0;
0 1 0 0 0 0;
0 0 1 0 0 0;
0 0 0 tiempo_f^3 tiempo_f^4 tiempo_f^5;
0 0 0 3*tiempo_f^2 4*tiempo_f^3 5*tiempo_f^4;
0 0 0 6*tiempo_f 12*tiempo_f^2 20*tiempo_f^3;];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%GENERADOR ARTICULACION 1
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
C=[ti_1
wi_1
ai_1/2
tf_1-ti_1-wi_1*tiempo_f-(ai_1/2)*tiempo_f^2
wf_1-wi_1-ai_1*tiempo_f
af_1-ai_1];
91
%Calculo de lo coeficientes Cn
Cn=inv(L)*C;
c0=Cn(1,1); c1=Cn(2,1); c2=Cn(3,1); c3=Cn(4,1); c4=Cn(5,1); c5=Cn(6,1);
for tiempo=0:tiempo_f
angulos_1(tiempo+1,1)=c0 + c1*tiempo + c2*tiempo^2 + c3*tiempo^3 +
c4*tiempo^4 + c5*tiempo^5;
vel_ang_1(tiempo+1,1)=c1 + 2*c2*tiempo + 3*c3*tiempo^2 +
4*c4*tiempo^3 + 5*c5*tiempo^4;
ace_ang_1(tiempo+1,1)=2*c2 + 6*c3*tiempo + 12*c4*tiempo^2 +
20*c5*tiempo^3;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%GENERADOR ARTICULACION 2
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
D=[ti_2
wi_2
ai_2/2
tf_2-ti_2-wi_2*tiempo_f-(ai_2/2)*tiempo_f^2
wf_2-wi_2-ai_2*tiempo_f
af_2-ai_2];
%Calculo de lo coeficientes Dn
Dn=inv(L)*D;
for tiempo=0:tiempo_f
angulos_2(tiempo+1,1)=d0 + d1*tiempo + d2*tiempo^2 + d3*tiempo^3 +
d4*tiempo^4 + d5*tiempo^5;
vel_ang_2(tiempo+1,1)=d1 + 2*d2*tiempo + 3*d3*tiempo^2 +
4*d4*tiempo^3 + 5*d5*tiempo^4;
ace_ang_2(tiempo+1,1)=2*d2 + 6*d3*tiempo + 12*d4*tiempo^2 +
20*d5*tiempo^3;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%GENERADOR ARTICULACION 3
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
E=[ti_3
wi_3
ai_3/2
92
tf_3-ti_3-wi_3*tiempo_f-(ai_3/2)*tiempo_f^2
wf_3-wi_3-ai_3*tiempo_f
af_3-ai_3];
%Calculo de lo coeficientes En
En=inv(L)*E;
for tiempo=0:tiempo_f
angulos_3(tiempo+1,1)=e0 + e1*tiempo + e2*tiempo^2 + e3*tiempo^3 +
e4*tiempo^4 + e5*tiempo^5;
vel_ang_3(tiempo+1,1)=e1 + 2*e2*tiempo + 3*e3*tiempo^2 +
4*e4*tiempo^3 + 5*e5*tiempo^4;
ace_ang_3(tiempo+1,1)=2*e2 + 6*e3*tiempo + 12*e4*tiempo^2 +
20*e5*tiempo^3;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%GENERADOR ARTICULACION 4
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
F=[ti_4
wi_4
ai_4/2
tf_4-ti_4-wi_4*tiempo_f-(ai_4/2)*tiempo_f^2
wf_4-wi_4-ai_4*tiempo_f
af_4-ai_4];
%Calculo de lo coeficientes Fn
Fn=inv(L)*F;
for tiempo=0:tiempo_f
angulos_4(tiempo+1,1)=f0 + f1*tiempo + f2*tiempo^2 + f3*tiempo^3 +
f4*tiempo^4 + f5*tiempo^5;
vel_ang_4(tiempo+1,1)=f1 + 2*f2*tiempo + 3*f3*tiempo^2 +
4*f4*tiempo^3 + 5*f5*tiempo^4;
ace_ang_4(tiempo+1,1)=2*f2 + 6*f3*tiempo + 12*f4*tiempo^2 +
20*f5*tiempo^3;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%GENERADOR ARTICULACION 5
93
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
G=[ti_5
wi_5
ai_5/2
tf_5-ti_5-wi_5*tiempo_f-(ai_5/2)*tiempo_f^2
wf_5-wi_5-ai_5*tiempo_f
af_5-ai_5];
%Calculo de lo coeficientes Gn
Gn=inv(L)*G;
for tiempo=0:tiempo_f
angulos_5(tiempo+1,1)=g0 + g1*tiempo + g2*tiempo^2 + g3*tiempo^3 +
g4*tiempo^4 + g5*tiempo^5;
vel_ang_5(tiempo+1,1)=g1 + 2*g2*tiempo + 3*g3*tiempo^2 +
4*g4*tiempo^3 + 5*g5*tiempo^4;
ace_ang_5(tiempo+1,1)=2*g2 + 6*g3*tiempo + 12*g4*tiempo^2 +
20*g5*tiempo^3;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% PROPIEDADES ESLABON 1
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
x1=-.11136;
y1=-.03464;
z1=0;
Ixx1=0.43727255323; Ixy1=-0.055516687; Ixz1=0.00002317469;
Iyx1=Ixy1; Iyy1=0.74386897156; Iyz1=0.00000123833;
Izx1=Ixz1; Izy1=Iyz1; Izz1=1.042139809
m1=22.085;
r11=[x1;y1;z1;1];
% Radio de giro
k1x=Ixx1/m1; k1y=Iyy1/m1; k1z=Izz1/m1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% PROPIEDADES ESLABON 2
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%desde el sistema i
x2=-.2175;
y2=-.02757;
94
z2=0;
Ixx2=0.06575521538; Ixy2=-0.083668376; Ixz2=0.0000911082;
Iyx2=Ixy2; Iyy2=0.82316593214; Iyz2=0.0000465806;
Izx2=Ixz2; Izy2=Iyz2; Izz2=0.83687356747;
m2=10.94;
r22=[x2;y2;z2;1];
% Radio de giro
k2x=Ixx2/m2; k2y=Iyy2/m2; k2z=Izz2/m2;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% PROPIEDADES ESLABON 3
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%desde el sistema i
x3=-.2075;
y3=-.0008;
z3=.00052;
Ixx3=0.03418690464; Ixy3=-0.045107043; Ixz3=0.00194510992;
Iyx3=Ixy3; Iyy3=0.71157307907; Iyz3=0.00000031207;
Izx3=Ixz3; Izy3=Iyz3; Izz3=0.69911249196;
m3=8.05;
r33=[x3;y3;z3;1];
% Radio de giro
k3x=Ixx3/m3; k3y=Iyy3/m3; k3z=Izz3/m3;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% PROPIEDADES ESLABON 4
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
x4=0.00013;
y4=-0.00152;
z4=.15446;
Ixx4=0.501473; Ixy4=0.0000002; Ixz4=-0.000505;
Iyx4=Ixy4; Iyy4=0.494986; Iyz4=0.000209;
Izx4=Ixz4; Izy4=Iyz4; Izz4=0.01765;
m4=10.58; %KG
r44=[x4;y4;z4;1];
% Radio de giro
k4x=Ixx4/m4; k4y=Iyy4/m4; k4z=Izz4/m4;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% PROPIEDADES ESLABON 5
95
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%desde sistema i
x5=0.00097;
y5=0.00607;
z5=-0.173;
Ixx5=0.171885; Ixy5=0.000029; Ixz5=-0.00085;
Iyx5=Ixy5; Iyy5=0.1712118; Iyz5=-0.005214;
Izx5=Ixz5; Izy5=Iyz5; Izz5=0.009164;
m5=4.98;
r55=[x5;y5;z5;1];
% Radio de giro
k5x=Ixx5/m5; k5y=Iyy5/m5; k5z=Izz5/m5;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
% PRIMEROS MOMENTO DE INERCIA
S1=m1*[0, -z1, y1;
z1, 0, -x1;
-y1, x1, 0;];
J2=m2*[k2x, 0, 0;
96
0, k2y, 0;
0, 0, k2z];
J3=m3*[k3x, 0, 0;
0, k3y, 0;
0, 0, k3z];
J4=m4*[k4x, 0, 0;
0, k4y, 0;
0, 0, k4z];
J5=m5*[k5x, 0, 0;
0, k5y, 0;
0, 0, k5z];
%% Velocidades duales en terminos del final de cada eslabon
VP1 =[0
w1
0];
VP2=[sin(t2)*w1
cos(t2)*w1
w2];
VP3=[sin(t3+t2)*w1
cos(t3+t2)*w1
w2+w3];
VP4=[sin(t4+t3+t2)*w1
-w2-w3-w4
cos(t4+t3+t2)*w1];
VP5=[1/2*w1*sin(t2+t3-t5+t4)+1/2*w1*sin(t2+t3+t5+t4)-sin(t5)*w2-
sin(t5)*w3-sin(t5)*w4
1/2*w1*cos(t2+t3+t5+t4)-1/2*w1*cos(t2+t3-t5+t4)-cos(t5)*w2-
cos(t5)*w3-cos(t5)*w4
cos(t4+t3+t2)*w1+w5];
VD1=[0
0
0];
97
VD2=[0
9/20*w2
-9/20*cos(t2)*w1];
VD3=[9/20*sin(t3)*w2
9/20*w2+9/20*w2*cos(t3)+9/20*w3
-9/20*w1*cos(t3+t2)-9/20*cos(t2)*w1];
VD4=[9/20*w2*sin(t4)+9/20*w2*sin(t4+t3)+9/20*sin(t4)*w3
9/20*w1*cos(t3+t2)+9/20*w1*cos(t2)
9/20*w2*cos(t4)+9/20*w2*cos(t4+t3)+9/20*cos(t4)*w3];
VD5=[17/50*w1*cos(t2+t3+t5+t4)-17/50*w1*cos(t2+t3-t5+t4)-9/40*w1*sin(t2-
t5+t3)+9/40*w1*sin(t2+t5+t3)+9/40*w1*sin(t5+t2)+9/40*w1*sin(t5-t2)-
17/25*w2*cos(t5)+9/40*w2*sin(t5+t4)+9/40*w2*sin(-t5+t4)+9/40*w2*sin(t3-
t5+t4)+9/40*w2*sin(t3+t5+t4)-
17/25*w3*cos(t5)+9/40*w3*sin(t5+t4)+9/40*w3*sin(-t5+t4)-17/25*cos(t5)*w4
-17/50*w1*sin(t2+t3-t5+t4)-
17/50*w1*sin(t2+t3+t5+t4)+9/40*w1*cos(t2+t5+t3)+9/40*w1*cos(t2-
t5+t3)+9/40*w1*cos(t5-t2)+9/40*w1*cos(t5+t2)+17/25*w2*sin(t5)-
9/40*w2*cos(-t5+t4)+9/40*w2*cos(t5+t4)+9/40*w2*cos(t3+t5+t4)-
9/40*w2*cos(t3-t5+t4)+17/25*w3*sin(t5)-9/40*w3*cos(-
t5+t4)+9/40*w3*cos(t5+t4)+17/25*sin(t5)*w4
9/20*w2*cos(t4)+9/20*w2*cos(t4+t3)+9/20*cos(t4)*w3];
98
d_HD1=diff(HD1,t1)*w1+diff(HD1,w1)*aa1;
d_HD2=diff(HD2,t1)*w1+diff(HD2,w1)*aa1 +
diff(HD2,t2)*w2+diff(HD2,w2)*aa2;
d_HD3=diff(HD3,t1)*w1+diff(HD3,w1)*aa1 + diff(HD3,t2)*w2+diff(HD3,w2)*aa2
+ diff(HD3,t3)*w3+diff(HD3,w3)*aa3;
d_HD4=diff(HD4,t1)*w1+diff(HD4,w1)*aa1 + diff(HD4,t2)*w2+diff(HD4,w2)*aa2
+ diff(HD4,t3)*w3+diff(HD4,w3)*aa3 + diff(HD4,t4)*w4+diff(HD4,w4)*aa4;
d_HD5=diff(HD5,t1)*w1+diff(HD5,w1)*aa1 + diff(HD5,t2)*w2+diff(HD5,w2)*aa2
+ diff(HD5,t3)*w3+diff(HD5,w3)*aa3 + diff(HD5,t4)*w4+diff(HD5,w4)*aa4 +
diff(HD5,t5)*w5+diff(HD5,w5)*aa5;
for r=1:(tiempo_f+1)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% DATOS DE ENTRADA
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Angulos GRADOS Angulos en radianes
j1=angulos_1(r,1); t1=deg2rad(j1+90);
j2=angulos_2(r,1); t2=deg2rad(j2);
j3=angulos_3(r,1); t3=deg2rad(j3);
j4=angulos_4(r,1); t4=deg2rad(j4-90);
j5=angulos_5(r,1); t5=deg2rad(j5);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% MATRICES DE ROTACION DUALES
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Patametros de Denavith y Hartemberg
alpha1=90; a1=0; S1=0;
alpha2=0; a2=.450; S2=0;
alpha3=0; a3=.450; S3=0;
alpha4=-90; a4=0; S4=0;
alpha5=0; a5=0; S5=.680;
99
0, sind(alpha1), cosd(alpha1)];
D1=[-S1*sin(t1), a1*sind(alpha1)*sin(t1)-S1*cosd(alpha1)*cos(t1),
a1*cosd(alpha1)*sin(t1)+S1*sind(alpha1)*cos(t1);
S1*cos(t1), -a1*sind(alpha1)*cos(t1)-S1*cosd(alpha1)*sin(t1), -
a1*cosd(alpha1)*cos(t1)+S1*sind(alpha1)*sin(t1);
0, a1*cosd(alpha1), -
a1*sind(alpha1)];
D2=[-S2*sin(t2), a2*sind(alpha2)*sin(t2)-S2*cosd(alpha2)*cos(t2),
a2*cosd(alpha2)*sin(t2)+S2*sind(alpha2)*cos(t2);
S2*cos(t2), -a2*sind(alpha2)*cos(t2)-S2*cosd(alpha2)*sin(t2), -
a2*cosd(alpha2)*cos(t2)+S2*sind(alpha2)*sin(t2);
0, a2*cosd(alpha2), -
a2*sind(alpha2)];
D3=[-S3*sin(t3), a3*sind(alpha3)*sin(t3)-S3*cosd(alpha3)*cos(t3),
a3*cosd(alpha3)*sin(t3)+S3*sind(alpha3)*cos(t3);
S3*cos(t3), -a3*sind(alpha3)*cos(t3)-S3*cosd(alpha3)*sin(t3), -
a3*cosd(alpha3)*cos(t3)+S3*sind(alpha3)*sin(t3);
0, a3*cosd(alpha3), -
a3*sind(alpha3)];
D4=[-S4*sin(t4), a4*sind(alpha4)*sin(t4)-S4*cosd(alpha4)*cos(t4),
a4*cosd(alpha4)*sin(t4)+S4*sind(alpha4)*cos(t4);
100
S4*cos(t4), -a4*sind(alpha4)*cos(t4)-S4*cosd(alpha4)*sin(t4), -
a4*cosd(alpha4)*cos(t4)+S4*sind(alpha4)*sin(t4);
0, a4*cosd(alpha4), -
a4*sind(alpha4)];
D5=[-S5*sin(t5), a5*sind(alpha5)*sin(t5)-S5*cosd(alpha5)*cos(t5),
a5*cosd(alpha5)*sin(t5)+S5*sind(alpha5)*cos(t5);
S5*cos(t5), -a5*sind(alpha5)*cos(t5)-S5*cosd(alpha5)*sin(t5), -
a5*cosd(alpha5)*cos(t5)+S5*sind(alpha5)*sin(t5);
0, a5*cosd(alpha5), -
a5*sind(alpha5)];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% ECUACIONES duales DE EULER
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
f1=eval(d_HP1+cross(VP1,HP1));
f2=eval(d_HP2+cross(VP2,HP2));
f3=eval(d_HP3+cross(VP3,HP3));
f4=eval(d_HP4+cross(VP4,HP4));
f5=eval(d_HP5+cross(VP5,HP5));
t_1=eval(d_HD1+cross(VP1,HD1)+cross(VD1,HP1));
t_2=eval(d_HD2+cross(VP2,HD2)+cross(VD2,HP2));
t_3=eval(d_HD3+cross(VP3,HD3)+cross(VD3,HP3));
t_4=eval(d_HD4+cross(VP4,HD4)+cross(VD4,HP4));
t_5=eval(d_HD5+cross(VP5,HD5)+cross(VD5,HP5));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% ANALISIS DE FUERZAS Y TORQUES EN LAS ARTICULACIONES
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
F5=(P5)*(f5);
F4=(P4)*(F5+f4);
F3=(P3)*(F4+f3);
F2=(P2)*(F3+f2);
F1=(P1)*(F2+f1);
T5=(P5)*(t_5-D5'*F5);
T4=(P4)*(t_4+T5-D4'*F4);
T3=(P3)*(t_3+T4-D3'*F3);
T2=(P2)*(t_2+T3-D2'*F2);
T1=(P1)*(t_1+T2-D1'*F1);
101
torques_1(r,1)=T1(3,1);
torques_2(r,1)=T2(3,1);
torques_3(r,1)=T3(3,1);
torques_4(r,1)=T4(3,1);
torques_5(r,1)=T5(3,1);
end
toc
torques_1
torques_2
torques_3
torques_4
torques_5
subplot(1,5,1); plot(torques_1)
subplot(1,5,2); plot(torques_2)
subplot(1,5,3); plot(torques_3)
subplot(1,5,4); plot(torques_4)
subplot(1,5,5); plot(torques_5)
102
Anexo H.- Programa para solucionar la dinámica por
matrices de transformación homogénea
% Formulación de%Langrage-Euler
% 17-julio-2009
% Ing. Ricardo Tapia Herrera
clc
clear all
tic
tiempo_f=10;
L=[1 0 0 0 0 0;
0 1 0 0 0 0;
0 0 1 0 0 0;
0 0 0 tiempo_f^3 tiempo_f^4 tiempo_f^5;
0 0 0 3*tiempo_f^2 4*tiempo_f^3 5*tiempo_f^4;
0 0 0 6*tiempo_f 12*tiempo_f^2 20*tiempo_f^3;];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%GENERADOR ARTICULACION 1
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
C=[ti_1
wi_1
ai_1/2
tf_1-ti_1-wi_1*tiempo_f-(ai_1/2)*tiempo_f^2
wf_1-wi_1-ai_1*tiempo_f
af_1-ai_1];
103
%Calculo de lo coeficientes Cn
Cn=inv(L)*C;
c0=Cn(1,1);
c1=Cn(2,1);
c2=Cn(3,1);
c3=Cn(4,1);
c4=Cn(5,1);
c5=Cn(6,1);
for tiempo=0:tiempo_f
angulos_1(tiempo+1,1)=c0 + c1*tiempo + c2*tiempo^2 + c3*tiempo^3 +
c4*tiempo^4 + c5*tiempo^5;
vel_ang_1(tiempo+1,1)=c1 + 2*c2*tiempo + 3*c3*tiempo^2 +
4*c4*tiempo^3 + 5*c5*tiempo^4;
ace_ang_1(tiempo+1,1)=2*c2 + 6*c3*tiempo + 12*c4*tiempo^2 +
20*c5*tiempo^3;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%GENERADOR ARTICULACION 2
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
D=[ti_2
wi_2
ai_2/2
tf_2-ti_2-wi_2*tiempo_f-(ai_2/2)*tiempo_f^2
wf_2-wi_2-ai_2*tiempo_f
af_2-ai_2];
Dn=inv(L)*D;
d0=Dn(1,1);
d1=Dn(2,1);
d2=Dn(3,1);
d3=Dn(4,1);
d4=Dn(5,1);
d5=Dn(6,1);
for tiempo=0:tiempo_f
angulos_2(tiempo+1,1)=d0 + d1*tiempo + d2*tiempo^2 + d3*tiempo^3 +
d4*tiempo^4 + d5*tiempo^5;
104
vel_ang_2(tiempo+1,1)=d1 + 2*d2*tiempo + 3*d3*tiempo^2 +
4*d4*tiempo^3 + 5*d5*tiempo^4;
ace_ang_2(tiempo+1,1)=2*d2 + 6*d3*tiempo + 12*d4*tiempo^2 +
20*d5*tiempo^3;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%GENERADOR ARTICULACION 3
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
E=[ti_3
wi_3
ai_3/2
tf_3-ti_3-wi_3*tiempo_f-(ai_3/2)*tiempo_f^2
wf_3-wi_3-ai_3*tiempo_f
af_3-ai_3];
En=inv(L)*E;
e0=En(1,1);
e1=En(2,1);
e2=En(3,1);
e3=En(4,1);
e4=En(5,1);
e5=En(6,1);
for tiempo=0:tiempo_f
angulos_3(tiempo+1,1)=e0 + e1*tiempo + e2*tiempo^2 + e3*tiempo^3 +
e4*tiempo^4 + e5*tiempo^5;
vel_ang_3(tiempo+1,1)=e1 + 2*e2*tiempo + 3*e3*tiempo^2 +
4*e4*tiempo^3 + 5*e5*tiempo^4;
ace_ang_3(tiempo+1,1)=2*e2 + 6*e3*tiempo + 12*e4*tiempo^2 +
20*e5*tiempo^3;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%GENERADOR ARTICULACION 4
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
F=[ti_4
wi_4
ai_4/2
tf_4-ti_4-wi_4*tiempo_f-(ai_4/2)*tiempo_f^2
wf_4-wi_4-ai_4*tiempo_f
105
af_4-ai_4];
Fn=inv(L)*F;
f0=Fn(1,1);
f1=Fn(2,1);
f2=Fn(3,1);
f3=Fn(4,1);
f4=Fn(5,1);
f5=Fn(6,1);
for tiempo=0:tiempo_f
angulos_4(tiempo+1,1)=f0 + f1*tiempo + f2*tiempo^2 + f3*tiempo^3 +
f4*tiempo^4 + f5*tiempo^5;
vel_ang_4(tiempo+1,1)=f1 + 2*f2*tiempo + 3*f3*tiempo^2 +
4*f4*tiempo^3 + 5*f5*tiempo^4;
ace_ang_4(tiempo+1,1)=2*f2 + 6*f3*tiempo + 12*f4*tiempo^2 +
20*f5*tiempo^3;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%GENERADOR ARTICULACION 5
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
G=[ti_5
wi_5
ai_5/2
tf_5-ti_5-wi_5*tiempo_f-(ai_5/2)*tiempo_f^2
wf_5-wi_5-ai_5*tiempo_f
af_5-ai_5];
Gn=inv(L)*G;
g0=Gn(1,1);
g1=Gn(2,1);
g2=Gn(3,1);
g3=Gn(4,1);
g4=Gn(5,1);
g5=Gn(6,1);
for tiempo=0:tiempo_f
106
angulos_5(tiempo+1,1)=g0 + g1*tiempo + g2*tiempo^2 + g3*tiempo^3 +
g4*tiempo^4 + g5*tiempo^5;
vel_ang_5(tiempo+1,1)=g1 + 2*g2*tiempo + 3*g3*tiempo^2 +
4*g4*tiempo^3 + 5*g5*tiempo^4;
ace_ang_5(tiempo+1,1)=2*g2 + 6*g3*tiempo + 12*g4*tiempo^2 +
20*g5*tiempo^3;
end
for r=1:(tiempo_f+1)
%%%%%Angulos GRADOS
j1=angulos_1(r,1);
j2=angulos_2(r,1);
j3=angulos_3(r,1);
j4=angulos_4(r,1);
j5=angulos_5(r,1);
t1=deg2rad(j1+90);
t2=deg2rad(j2);
t3=deg2rad(j3);
t4=deg2rad(j4-90);
t5=deg2rad(j5);
%Velocidades angulares RAD/SEG
w1=vel_ang_1(r,1);
w2=vel_ang_2(r,1);
w3=vel_ang_3(r,1);
w4=vel_ang_4(r,1);
w5=vel_ang_5(r,1);
%Aceleraciones angulares RAD/SEG^2
aa1=ace_ang_1(r,1);
aa2=ace_ang_2(r,1);
aa3=ace_ang_3(r,1);
aa4=ace_ang_4(r,1);
aa5=ace_ang_5(r,1);
w=[w1;w2;w3;w4;w5];
aa=[aa1;aa2;aa3;aa4;aa5];
%% MATRIZ 0A1
A1=[cos(t1), 0, sin(t1), 0;
sin(t1), 0, -cos(t1), 0;
0, 1, 0, 0;
0, 0, 0, 1];
107
%% MATRIZ 1A2
A2=[cos(t2), -sin(t2), 0, .450*cos(t2);
sin(t2), cos(t2), 0, .450*sin(t2);
0, 0, 1, 0;
0, 0, 0, 1];
%% MATRIZ 2A3
A3=[cos(t3), -sin(t3), 0, .450*cos(t3);
sin(t3), cos(t3), 0, .450*sin(t3);
0, 0, 1, 0;
0, 0, 0, 1];
%% MATRIZ 3A4
A4=[cos(t4), 0, -sin(t4), 0;
sin(t4), 0, cos(t4), 0;
0, -1, 0, 0;
0, 0, 0, 1];
%% MATRIZ 4A5
A5=[cos(t5), -sin(t5), 0, 0;
sin(t5), cos(t5), 0, 0;
0, 0, 1, .680;
0, 0, 0, 1];
Q=[0 -1 0 0;
1 0 0 0;
0 0 0 0;
0 0 0 0];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% PROPIEDADES ESLABON 1
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%desde el sistema i
x1=-.11136;
y1=-.03464;
z1=0;
Ixx1=0.43727255323; Ixy1=-0.055516687; Ixz1=0.00002317469;
108
Iyx1=Ixy1; Iyy1=0.74386897156; Iyz1=0.00000123833;
Izx1=Ixz1; Izy1=Iyz1; Izz1=1.042139809
m1=22.085;
r11=[x1;y1;z1;1];
% Radio de giro
k1x=Ixx1/m1; k1y=Iyy1/m1; k1z=Izz1/m1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% PROPIEDADES ESLABON 2
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%desde el sistema i
x2=-.2175;
y2=-.02757;
z2=0;
Ixx2=0.06575521538; Ixy2=-0.083668376; Ixz2=0.0000911082;
Iyx2=Ixy2; Iyy2=0.82316593214; Iyz2=0.0000465806;
Izx2=Ixz2; Izy2=Iyz2; Izz2=0.83687356747;
m2=10.94;
r22=[x2;y2;z2;1];
% Radio de giro
k2x=Ixx2/m2; k2y=Iyy2/m2; k2z=Izz2/m2;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% PROPIEDADES ESLABON 3
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%desde el sistema i
x3=-.2075;
y3=-.0008;
z3=.00052;
Ixx3=0.03418690464; Ixy3=-0.045107043; Ixz3=0.00194510992;
Iyx3=Ixy3; Iyy3=0.71157307907; Iyz3=0.00000031207;
Izx3=Ixz3; Izy3=Iyz3; Izz3=0.69911249196;
m3=8.05;
r33=[x3;y3;z3;1];
% Radio de giro
k3x=Ixx3/m3; k3y=Iyy3/m3; k3z=Izz3/m3;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% PROPIEDADES ESLABON 4
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
109
x4=0.00013;
y4=-0.00152;
z4=.15446;
Ixx4=0.501473; Ixy4=0.0000002; Ixz4=-0.000505;
Iyx4=Ixy4; Iyy4=0.494986; Iyz4=0.000209;
Izx4=Ixz4; Izy4=Iyz4; Izz4=0.01765;
m4=10.58; %KG
r44=[x4;y4;z4;1];
% Radio de giro
k4x=Ixx4/m4; k4y=Iyy4/m4; k4z=Izz4/m4;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% PROPIEDADES ESLABON 5
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%desde sistema i
x5=0.00097;
y5=0.00607;
z5=-0.173;
Ixx5=0.171885; Ixy5=0.000029; Ixz5=-0.00085;
Iyx5=Ixy5; Iyy5=0.1712118; Iyz5=-0.005214;
Izx5=Ixz5; Izy5=Iyz5; Izz5=0.009164;
m5=4.98;
r55=[x5;y5;z5;1];
% Radio de giro
k5x=Ixx5/m5; k5y=Iyy5/m5; k5z=Izz5/m5;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% TENSORES DE INERCIA
J1=[(-Ixx1+Iyy1+Izz1)/2, Ixy1, Ixz1, m1*x1;
Iyx1, (Ixx1-Iyy1+Izz1)/2, Iyz1, m1*y1;
Izx1, Izy1, (Ixx1+Iyy1-Izz1)/2, m1*z1;
m1*x1, m1*y1, m1*z1, m1];
110
Izx3, Izy3, (Ixx3+Iyy3-Izz3)/2, m3*z3;
m3*x3, m3*y3, m3*z3, m3];
U21=Q*A1*A2; U211=Q*Q*A1*A2;
U212=Q*A1*Q*A2; U22=A1*Q*A2;
U221=Q*A1*Q*A2; U222=A1*Q*Q*A2;
U31=Q*A1*A2*A3; U311=Q*Q*A1*A2*A3;
U312=Q*A1*Q*A2*A3; U313=Q*A1*A2*Q*A3;
U32=A1*Q*A2*A3; U321=Q*A1*Q*A2*A3;
U322=A1*Q*Q*A2*A3; U323=A1*Q*A2*Q*A3;
U33=A1*A2*Q*A3; U331=Q*A1*A2*Q*A3;
U332=A1*Q*A2*Q*A3; U333=A1*A2*Q*Q*A3;
U41=Q*A1*A2*A3*A4; U411=Q*Q*A1*A2*A3*A4;
U412=Q*A1*Q*A2*A3*A4; U413=Q*A1*A2*Q*A3*A4;
U414=Q*A1*A2*A3*Q*A4; U42=A1*Q*A2*A3*A4;
U421=Q*A1*Q*A2*A3*A4; U422=A1*Q*Q*A2*A3*A4;
U423=A1*Q*A2*Q*A3*A4; U424=A1*Q*A2*A3*Q*A4;
U43=A1*A2*Q*A3*A4; U431=Q*A1*A2*Q*A3*A4;
U432=A1*Q*A2*Q*A3*A4; U433=A1*A2*Q*Q*A3*A4;
U434=A1*A2*Q*A3*Q*A4; U44=A1*A2*A3*Q*A4;
U441=Q*A1*A2*A3*Q*A4; U442=A1*Q*A2*A3*Q*A4;
U443=A1*A2*Q*A3*Q*A4; U444=A1*A2*A3*Q*Q*A4;
U51=Q*A1*A2*A3*A4*A5; U511=Q*Q*A1*A2*A3*A4*A5;
U512=Q*A1*Q*A2*A3*A4*A5; U513=Q*A1*A2*Q*A3*A4*A5;
111
U514=Q*A1*A2*A3*Q*A4*A5; U515=Q*A1*A2*A3*A4*Q*A5;
U52=A1*Q*A2*A3*A4*A5; U521=Q*A1*Q*A2*A3*A4*A5;
U522=A1*Q*Q*A2*A3*A4*A5; U523=A1*Q*A2*Q*A3*A4*A5;
U524=A1*Q*A2*A3*Q*A4*A5; U525=A1*Q*A2*A3*A4*Q*A5;
U53=A1*A2*Q*A3*A4*A5; U531=Q*A1*A2*Q*A3*A4*A5;
U532=A1*Q*A2*Q*A3*A4*A5; U533=A1*A2*Q*Q*A3*A4*A5;
U534=A1*A2*Q*A3*Q*A4*A5; U535=A1*A2*Q*A3*A4*Q*A5;
U54=A1*A2*A3*Q*A4*A5; U541=Q*A1*A2*A3*Q*A4*A5;
U542=A1*Q*A2*A3*Q*A4*A5; U543=A1*A2*Q*A3*Q*A4*A5;
U544=A1*A2*A3*Q*Q*A4*A5; U545=A1*A2*A3*Q*A4*Q*A5;
U55=A1*A2*A3*A4*Q*A5; U551=Q*A1*A2*A3*A4*Q*A5;
U552=A1*Q*A2*A3*A4*Q*A5; U553=A1*A2*Q*A3*A4*Q*A5;
U554=A1*A2*A3*Q*A4*Q*A5; U555=A1*A2*A3*A4*Q*Q*A5;
%MATRIZ DE ACELERACION
MD(1,1)=trace(U11*J1*U11')+trace(U21*J2*U21')+trace(U31*J3*U31')+trace(U4
1*J4*U41')+trace(U51*J5*U51');
MD(1,2)=trace(U22*J2*U21')+trace(U32*J3*U31')+trace(U42*J4*U41')+trace(U5
2*J5*U51');
MD(1,3)=trace(U33*J3*U31')+trace(U43*J4*U41')+trace(U53*J5*U51');
MD(1,4)=trace(U44*J4*U41')+trace(U54*J5*U51');
MD(1,5)=trace(U55*J5*U51');
MD(2,1)=MD(1,2);
MD(2,2)=trace(U22*J2*U22')+trace(U32*J3*U32')+trace(U42*J4*U42')+trace(U5
2*J5*U52');
MD(2,3)=trace(U33*J3*U32')+trace(U43*J4*U42')+trace(U53*J5*U52');
MD(2,4)=trace(U44*J4*U42')+trace(U54*J5*U52');
MD(2,5)=trace(U55*J5*U52');
MD(3,1)=MD(1,3);
MD(3,2)=MD(2,3);
MD(3,3)=trace(U33*J3*U33')+trace(U43*J4*U43')+trace(U53*J5*U53');
MD(3,4)=trace(U44*J4*U43')+trace(U54*J5*U53');
MD(3,5)=trace(U55*J5*U53');
MD(4,1)=MD(1,4);
MD(4,2)=MD(2,4);
MD(4,3)=MD(3,4);
112
MD(4,4)=trace(U44*J4*U44')+trace(U54*J5*U54');
MD(4,5)=trace(U55*J5*U54');
MD(5,1)=MD(1,5);
MD(5,2)=MD(2,5);
MD(5,3)=MD(3,5);
MD(5,4)=MD(4,5);
MD(5,5)=trace(U55*J5*U55');
h121=h112;
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=h113;
h132=h123;
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=h114;
h142=h124;
h143=h134;
h144=trace(U444*J4*U41')+trace(U544*J5*U51');
h145=trace(U545*J5*U51');
h151=h115;
h152=h125;
h153=h135;
h154=h145;
113
h155=trace(U555*J5*U51');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%H1
H1=[h111 h121 h131 h141 h151;
h112 h122 h132 h142 h152;
h113 h123 h133 h143 h153;
h114 h124 h134 h144 h154;
h115 h125 h135 h145 h155];
h1=w'*H1*w
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
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=h212;
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=h213;
h232=h223;
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=h214;
h242=h224;
h243=h234;
h244=trace(U444*J4*U42')+trace(U544*J5*U52');
h245=trace(U545*J5*U52');
h251=h215;
h252=h225;
h253=h235;
h254=h245;
114
h255=trace(U555*J5*U52');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%H2
H2=[h211 h221 h231 h241 h251;
h212 h222 h232 h242 h252;
h213 h223 h233 h243 h253;
h214 h224 h234 h244 h254;
h215 h225 h235 h245 h255];
h2=w'*H2*w
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
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=h312;
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=h313;
h332=h323;
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=h314;
h342=h324;
h343=h334;
h344=trace(U444*J4*U43')+trace(U544*J5*U53');
h345=trace(U545*J5*U53');
h351=h315;
h352=h325;
h353=h335;
h354=h345;
h355=trace(U555*J5*U53');
115
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%H3
H3=[h311 h321 h331 h341 h351;
h312 h322 h332 h342 h352;
h313 h323 h333 h343 h353;
h314 h324 h334 h344 h354;
h315 h325 h335 h345 h355];
h3=w'*H3*w
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
h415=trace(U515*J5*U54');
h425=trace(U525*J5*U54');
h435=trace(U535*J5*U54');
h445=trace(U545*J5*U54');
h455=trace(U555*J5*U54');
h414=trace(U414*J4*U44')+trace(U514*J5*U54');
h424=trace(U424*J4*U44')+trace(U524*J5*U54');
h434=trace(U434*J4*U44')+trace(U534*J5*U54');
h444=trace(U444*J4*U44')+trace(U544*J5*U54');
h454=h445;
h413=trace(U413*J4*U44')+trace(U513*J5*U54');
h423=trace(U423*J4*U44')+trace(U523*J5*U54');
h433=trace(U433*J4*U44')+trace(U533*J5*U54');
h443=h434;
h453=h435;
h412=trace(U412*J4*U44')+trace(U512*J5*U54');
h422=trace(U422*J4*U44')+trace(U522*J5*U54');
h432=h423;
h442=h424;
h452=h425;
h411=trace(U411*J4*U44')+trace(U511*J5*U54');
h421=h412;
h431=h413;
h441=h414;
h451=h415;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%H4
H4=[h411 h421 h431 h441 h451;
116
h412 h422 h432 h442 h452;
h413 h423 h433 h443 h453;
h414 h424 h434 h444 h454;
h415 h425 h435 h445 h455];
h4=w'*H4*w
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
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=h512;
h522=trace(U522*J5*U55');
h523=trace(U523*J5*U55');
h524=trace(U524*J5*U55');
h525=trace(U525*J5*U55');
h531=h513;
h532=h523;
h533=trace(U533*J5*U55');
h534=trace(U534*J5*U55');
h535=trace(U535*J5*U55');
h541=h514;
h542=h524;
h543=h534;
h544=trace(U544*J5*U55');
h545=trace(U545*J5*U55');
h551=h515;
h552=h525;
h553=h535;
h554=h545;
h555=trace(U555*J5*U55');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%H5
H5=[h511 h521 h531 h541 h551;
h512 h522 h532 h542 h552;
h513 h523 h533 h543 h553;
117
h514 h524 h534 h544 h554;
h515 h525 h535 h545 h555];
h5=w'*H5*w
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
torque=MD*aa+h+c
torques_1(r,1)=torque(1,1);
torques_2(r,1)=torque(2,1);
torques_3(r,1)=torque(3,1);
torques_4(r,1)=torque(4,1);
torques_5(r,1)=torque(5,1);
end
toc
subplot(1,5,1); plot(torques_1)
subplot(1,5,2); plot(torques_2)
subplot(1,5,3); plot(torques_3)
subplot(1,5,4); plot(torques_4)
subplot(1,5,5); plot(torques_5)
118
Referencias
Angeles, J. (2002), “Fundamentals of Robotic Mechanical Systems: Theory,
methods and algorithms”, Second Edition.
Brodsky V. and Shoham, M. (1994), "The Dual Inertia Operator and its Application
to Robot Dynamics", Journal of Mechanical Design 116(4)
Gu, Y. L. and Yang, L. (1987), “Dual number transformation and its applications to
robotics. Journal of Robotics an Automation”, IEEE 615-623
Keler, M. L. (2000), “On the theory of screws and the dual method”, Treatise on the
Theory of Screws, University of Cambridge, Trinity College
119
McCarthy, J. M. (1986), "Dual Orthogonal Matrices in Manipulator Kinematics", The
International Journal of Robotics Research
Pennestrì, E. and Valentini, P.P. (2008), “Linear Dual Algebra Algorithms and their
Application to Kinematics”, Journal of Multi-body Dynamics, Universidad de Roma,
Italia, Springer
120