Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Director
M.Sc. JORGE VILLAMIZAR MORALES*
Codirector
M.Sc. JOHN FABER ARCHILA DAZ**
de agosto
Dedicatoria:
Julieta, tus manos me ensearon a transformar el mundo con
solo el poder de querer, me hiciste ver ms all de las fronteras
de la realidad, me brindaste el don de la elocuencia y de la
reflexin, me permitiste conocer el cielo y pintar con una ilusin
su esplendoroso azul, te convertiste en el axioma que fundamenta mi
existencia y otorga unicidad al constructo unitario que nos une.
Y, debes tener siempre presente, que un
5 8 40 19 20
AGRADECIMIENTOS
A Dios por brindarnos las matemticas como aquel cdigo que encripta la grandeza de
su creacin, la cul nos ofrece la posibilidad de descifrar sus secretos para as admirar su
belleza.
A mis padres, Susana Orozco, Jairo Quiroga y a mi hermano Giovanni A. Quiroga
Orozco, por ser los constructores del deseo de siempre salir adelante sin importar los
obstculos, por afrontar los retos siempre unidos sin importar lo inesperado, por disfrutar
la vida con lo justo que se ha ganado y, adems, por que son los primeros responsables
de lo que hoy soy yo.
A las familias Snchez Mora, Vargas Quiroga, Vargas Onatra, Quiroga Abril, Morera
Riveros e Imues Orozco, por creer en mis aspiraciones y sueos, por brindarme su apoyo
incondicional en los ms clidos y oscuros das.
A los directores del proyecto, Jorge Villamizar y John Faber Archila, por sus atenta participacin, gua y acompaamiento en todas las fases de la elaboracin de esta monografa.
A los compaeros de carrera, amigos y profesores, en especial a Luis Angel Prez, Vladimir
Angulo Castillo y Arnoldo Tehern, que de una u otra forma fueron participes en la
culminacin exitosa de mis estudios de pregrado.
TABLA DE CONTENIDO
Introduccin
12
1. Componente matemtico
14
1.1. Preliminares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.1.1. Axiomas de campo de R . . . . . . . . . . . . . . . . . . . . . . . . 14
1.1.2. Espacios vectoriales . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.2. Transformaciones lineales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3. Localizacin espacial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.3.1. Matrices de rotacin . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.3.2. Matrices de transformacin homognea . . . . . . . . . . . . . . . . 23
2. Cuaternios
26
2.1. Historia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.2. Algunos conceptos importantes . . . . . . . . . . . . . . . . . . . . . . . . 30
2.3. lgebra de cuaternios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.3.1. Suma y resta de cuaternios . . . . . . . . . . . . . . . . . . . . . . . 31
2.3.2. Producto de cuaternios . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.3.3. Norma de un cuaternio . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.3.4. Normalizacin de un cuaternio . . . . . . . . . . . . . . . . . . . . . 35
2.3.5. Inverso de un cuaternio . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.4. Consideraciones algebraicas . . . . . . . . . . . . . . . . . . . . . . . . . . 37
45
57
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
76
6. Resultados
78
Conclusiones.
80
Referencias.
90
NDICE DE FIGURAS
. . . . . . . . . . . . . . . . . . . . . . . . . . 73
RESUMEN
Ttulo:
Autor:
***
Descripcin:
En este proyecto de monografa se desarrolla un modelo cinemtica directo del robot KUKA
donde
KR120-2Pr mediante el uso de los cuaternios de Hamilton (Q = q0 + q1 + q2 + q3 k,
q0 , q1 , q2 , q3 R), como mtodo para representar transformaciones de rotaciones y orientaciones
en R3 . En el primer captulo es referido a los conceptos preliminares, como los espacios vectoriales, transformaciones lineales y localizacin espacial por medio de las matrices de transformacin
homognea, donde se utilizar como mtodo comparativo a las rotaciones realizada con los cauternios. En el segundo captulo se presentan los cuaternios de Hamilton, donde se incluye una
nota histrica respecto a su aparicin, se expone el lgebra de cuaternios y se define el operador
de rotacin LQ (~v ) = Q(0 + ~v )Q , el cual Q es un cuaternio, se prueba que es una trasformacin
lineal y se verifica que cumple con la rotacin de puntos en el espacio. En el tercer captulo se
hace la presentacin del robot KUKA KR120-2Pr. En el cuarto captulo se desarrolla el modelo
cinemtico directo del robot KUKA KR120-2Pr usando cuaternios, donde se valida al realizar
simulaciones con Matlabr. Por ltimo, en el captulo 5, se propone que esta monografa puede leerse como una propuesta de innovacin en el aula para la enseanza y aprendizaje de las
transformaciones lineales en un curso de lgebra Lineal.
***
Trabajo de grado.
****
ABSTRACT
Title:
DIRECT KINEMATIC MODEL FOR THE ROBOT KUKA KR1202Pr THROUGH THE USE OF QUATERNION IN A MATLABr
ENVIRONMENT.***
Author:
Description:
The aim of this monograph is to develop a direct kinematic model for the robot KUKA KR120 where q0 , q1 , q2 , q3 R) based on
2Pr using Hamiltons quaternions (Q = q0 + q1 + q2 + q3 k,
lineal transformations. In the first chapter begins with preliminary concepts, real vector spaces,
linear transformations and spatial locations in R3 using the transformation matrices containing
homogeneous coordinates, which is used as the comparative method to rotations made with
quaternions. The second chapter presents the Hamiltons quaternions, one historical note is
discusses his appearance and you will see the conceptual development of quaternion emphasizing
on their most important properties, mainly rotation operator LQ (~v ) = Q(0 + ~v )Q , where Q
is a quaternion and Q its yours conjugate, is proof to be a linear transformation and verified
to comply with the rotation of point in the spaces. In the third chapter presents the robot
KUKA KR120-2Pr. In the fourth chapter develops the direct kinematic model of the robot
KUKA KR120-2Pr using quaternions and the validity of this model there will be simulations
in Matlabr. Finally, in the fifth chapter, there will be a proposal of innovation in the classroom
for teaching and learning in regards to the lineal transformations based on the direct kinematic
project in an actual course of lineal algebra.
***
Graduation project.
****
INTRODUCCIN
os cuaternios nacen del ingenio de Sir Rowan Hamilton, considerado uno de los
matemticos ms eminentes de los pueblos de habla inglesa, despus de Isaac
*****
Construido por Carlos Gerardo Hernndez Capacho, profesor de la Universidad Pontificia Bolivariana
13
CAPTULO 1
COMPONENTE MATEMTICO
1.1.
Preliminares
Para el desarrollo conceptual que contiene este trabajo, es imprescindible tener presente
los axiomas de campo de R, la cual permitir dar validez a cada definicin y proposicin
que se presentan.
1.1.1.
Axiomas de campo de R
1.1.2.
Espacios vectoriales
1.2.
Transformaciones lineales
(1.1)
u 7 T (u) = u
es una transformacin lineal.
Ejemplo 1.2 (El operador derivacin). Sea V un espacio lineal de todas las funciones
reales f derivables en un intervalo abierto (a, b). La transformacin lineal que aplica cada
funcin f de V en su derivada f 0 se llama operador derivacin y se designa por D. De
esta forma, se tiene que:
D:V
f 7 D(f ) = f 0
D es una transformacin lineal.
16
Ejemplo 1.3 (El operador integracin). Sea V el espacio lineal de todas las funciones
reales continuas en un intervalo [a, b]. Si f V , se define g = T (f ) como la funcin T
dada por:
g = T (f ) =
f (t) dt si a x b
a
Demostracin. Sean
v1 ,
v2 R2 , donde
v1 = (x, y) y
v2 = (j, s) y R. Se verifica el
cumplimiento de la propiedad aditiva, en efecto,
x+j
T
y+s
x j
y+s
x
j
x
j
+
=T
+T
.
y
s
y
s
x
x
x
x
x
.
= T
=
=
=T
T
y
y
y
y
y
Proposicin 1.2
lineal de Rn a Rm ). Sean Rn , Rm espacios vecto (Transformacin
x
1
x2
xn
T : Rn Rm
~x 7 T (~x) = A~x.
T es una transformacin lineal.
17
x1 + y1
x2 + y2
A(~x + ~y ) = A
..
xn + yn
=
A
x1
x2
..
.
+
A
xn
y1
y2
..
.
= A~x + A~y .
yn
x1
x2
A(~x) = A . = A~x.
..
xn
x
, donde
A continuacin se presenta la construccin de la matriz de rotacin. Sea ~v =
y
0
x
~v R2 y v~0 =
, vector correspondiente a una rotacin de ~v con ngulo (ver Figura
y0
1.1).
v=(x,y)
v = ( x , y )
+
0
r cos( + )
r cos cos r sen sen
x
=
=
,
r sen( + )
r sen cos + r cos sen
y0
18
(1.2)
!
x
es la rotacin en
y
cos
cos sen
sen
(x + r) cos (y + m) sen
x+r
T
=
y+m
(x + r) sen (y + m) cos
!
!
cos sen
cos sen
x
r
=
+
y
m
sen cos
sen cos
r
x
+T
= T
m
y
!
!
(x) cos (y) sen
cos sen
x
x
T
=
=
y
y
(x) sen (y) cos
sen cos
!
cos sen
x
x
=
=T
y
y
sen cos
(1.3)
Por lo tanto el operador de rotacin T cumple con la propiedad aditiva y homognea, por
lo que se concluye que T es una transformacin lineal.
19
1.3.
Localizacin espacial
Para el cumplimiento de los ejercicios que se establecen en la ejecucin de una tarea para
un brazo robtico, es imprescindible identificar la posicin y orientacin de los elementos
a manipular con respecto a la base del robot [4]. Por lo tanto, es necesario determinar
herramientas matemticas que permitan realizar la localizacin espacial de cualquier
objeto (incluyendo las configuraciones propias del robot) con respecto a un punto fijo del
mismo (que por lo general es la base de soporte del robot).
Para la representacin de un objeto en el espacio existen diferentes mtodos, tales como:
coordenadas cartesianas, polares, esfricas, cilndricas, entre otros. Mtodos como las matrices de rotacin, cuaternios, ngulos de Euler, matrices de transformacin homognea
se usan para la representacin de orientaciones nicamente. A continuacin se presentan
los mtodos de inters para este proyecto.
1.3.1.
Matrices de rotacin
R() =
cos sen
sen
cos
!
.
bin a ste asociarle ejes solidarios (ejes mviles) segn la rotacin o traslacin que
se haga con respecto al sistema fijo, la cual son de utilidad en el anlisis espacial de objetos.
De forma anloga, se definen matrices de rotacin para espacios vectoriales V de dimensin
3 (R3 ), que tienen la siguiente forma:
.
Rotx =
0
cos
sen
0 sen cos
(1.4)
W
V
Y
U
X
Roty =
cos
0 sen
0
.
sen 0 cos
0
(1.5)
W
V
U
X
cos sen 0
(1.6)
V
W
Y
U
X
1.3.2.
Las matrices de transformacin homognea son de gran inters por permitir representar
conjuntamente la posicin y orientacin de un slido en el espacio, logrando de esta forma
ampliar las posibilidades ofrecidas por las matrices de rotacin.
Coordenadas homogneas.
Los puntos en el espacio se pueden representar por medio de coordenadas homogneas.
Las
Sea el espacio vectorial R3 , donde ~v R3 , tiene la forma ~v = vx + vy + vz k.
coordenadas homogneas involucran una cuarta componente, un escalar %, a la expresin
de los vectores en R3 , donde sta representa un factor de escala.
23
~vc.h.
vx
vy
=
v .
z
%
(1.7)
Definicin 1.4. Una matriz de transformacin homognea se define como una matriz
de dimensin 4 4, el cual representa la transformacin de un vector de coordenadas
homogneas de un sistema coordenado a otro. En general, las matrices de transformacin
homognea son representaciones de transformaciones lineales:
!
R33 T31
T =
,
P13 E11
(1.8)
donde R33 corresponde a las matrices de rotacin, P13 corresponde a un vector fila
que representa la perspectiva, T31 corresponde a un vector columna que representa la
traslacin y E11 corresponde a un escalar que representa el factor de escala.
!
R33 T31
T =
.
0
1
24
(1.9)
1
0
0
0
0 cos sen 0
Rotx =
0 sen cos 0 ,
0
0
0
1
0 sen 0
0
1
0
0
y
Roty =
sen
0
cos
0
0
0
1
(1.10)
cos
cos sen 0 0
sen
Rotz =
0
cos
0
0
(1.11)
0 0
.
1 0
0 1
(1.12)
0
T (P~ )() =
0
0 0 Px
1 0 Py
.
0 1 Pz
0 0 1
(1.13)
25
CAPTULO 2
CUATERNIOS
cin se hace una nota histrica y una exposicin del lgebra de cuaternios con algunas
consideraciones geomtricas de inters para el proyecto.
2.1.
Historia
Figura 2.0.1: Sir William Rowan Hamilton. Tomado de BBC British History [16].
y j son unidades imaginarias que cumplen con las mismas propiedades. Por lo tanto,
como el producto i i = 1, con la unidad imaginaria j sucede lo mismo, por lo tanto
i i = j j = 1. No obstante, haca falta determinar los otros productos, i j y
j i. Las unidades i y j son linealmente independientes, por lo cual, si al efectuar el
producto i j = a, donde a es un nmero real y se multiplica a ambos lados por i, se
obtiene que i i j = i a, por lo tanto j = i a, lo cual es contradictorio. Pero si se
considera a no como un nmero real sino como un nmero imaginario de la forma bi,
se tiene que que i j = bi, es decir, j = b, donde b es un nmero real y nuevamente
se obtiene otra inconsistencia. Tampoco a puede ser de la forma cj, porque eso implicara que c = i. ste problema le tom a Hamilton varios aos sin llegar a una solucin.
Unos meses antes de su muerte, Hamilton escribi una carta a su hijo Archibald, donde
le explicaba aquel momento de inspiracin que lo condujo a su gran descubrimiento, el
16 de octubre de 1843:
". . . Cada maana en la primera mitad de ese mes (octubre de 1843), cuando bajaba
a desayunar, tu hermano y t me solas preguntar:Bueno, Pap, ya sabes multiplicar
ternas? Y yo tena que responder, con un movimiento triste de la cabeza: No, slo s
sumarlas y restarlas. Pero el da 16 de ese mes que era lunes, y da de Consejo en la
Real Academia Irlandesa estaba paseando hacia all para asistir y presidir la reunin, y
tu madre caminaba conmigo, a lo largo del Canal Real; y aunque ella me deca cosas aqu
y all, una lnea de pensamiento se iba formando en mi mente, que por fin dio resultado,
del cual inmediatamente comprend la importancia. Pareci como si un circuito elctrico
se cerrara y saltara una chispa . . ." [14].
Y continua describiendo:
"No pude reprimir el impulso y grab con una navaja en el Brougham Bridge (puente
de Brougham), la frmula fundamental con los smbolos i, j y k, . . . que contiene la
solucin del problema". En ese lugar existe una placa recordando el suceso, Ver Figura 3.2.
Lo que resuelve Hamilton es adoptar un cuarto componente, otra unidad imaginaria,
quien la denomin k. De esta forma emplea la expresin a+bi+cj +dk, donde a, b, c, d R
28
Figura 2.0.2: Placa conmemorativa de Sir William Rowan Hamilton. Puente Brougham,
Dubln, Irlanda. Tomado de Cuaternios de Hamilton [3].
trabaj una extensin, Elements of Quaternions, la cul no pudo terminar por su muerte
en 1855, sin embargo su hijo lo public en 1866.
2.2.
Los cuaternios son una extensin de los nmeros reales, que es generada por los vectores
= (1, 0, 0), = (0, 1, 0), k = (0, 0, 1) que forman una base ortonormal [9].
Definicin 2.1. Sean q0 , q1 , q2 , q3 R, un cuaternio es una combinacin lineal
donde , , k son la base ortonormal estndar en R3
Q = q0 + q1 + q2 + q3 k,
( = (1, 0, 0), = (0, 1, 0), k = (0, 0, 1)).
En los cuaternios se reconocen dos componentes, la parte real (escalar), q0 , y la parte
De esta forma se puede expresar un cuaternio como:
vectorial, ~q = q1 + q2 + q3 k.
Q = q0 + q1 + q2 + q3 k = q0 + ~q
Ejemplo 2.1. Q = 8 + 5 + 40
+ 19k es un cuaternio, donde 8 es la parte real y ~q =
5 + 40
+ 19k la parte vectorial.
NOTA:
su cuaternio opuesto es
Definicin 2.5. Dado el cuaternio Q = q0 + q1 + q2 + q3 k,
Q = q0 q1 q2 q3 k.
2.3.
lgebra de cuaternios
2.3.1.
3 y Q2 = p0 + p1 +
Definicin 2.6. Sean Q1 , Q2 H(R), donde Q1 = q0 + q1 + q2 + kq
3 . Se define la suma entre cuaternios, como la suma componente a componente,
p2 + kp
(2.1)
2 = 1 + 12 7
Ejemplo 2.2. Dados Q1 = 3 + 6 + 7
8k,Q
11k
Q1 + Q2 = (3 + 1) + (6 + 12) + (7 7)
+ (8 11)k = 2 + 18 19k.
Definicin 2.7. De forma anloga a la suma se define la resta o diferencia, es decir, si
3 y Q2 = p0 + p1 + p2 + kp
3 , entonces,
Q1 , Q2 H(R), donde Q1 = q0 + q1 + q2 + kq
(2.2)
Q2 = 1 + 12 7
Ejemplo 2.3. Dados Q1 = 3 + 6 + 7
8k,
11k
Q1 Q2 = (3 1) + (6 12) + (7 + 7)
+ (8 + 11)k = 4 6 + (14)
+ 3k.
La suma de cuaternios cumple con las propiedades conmutativa y asociativa, la cual se
presentan a continuacin.
Proposicin 2.1. Dados Q1 , Q2 H(R), donde Q1 = q0 + q1 + q2 + q3 k y Q2 =
se tiene que Q1 + Q2 = Q2 + Q1 .
p0 + p1 + p2 + p3 k,
Demostracin. Sean Q1 , Q2 H(R), donde Q1 = q0 + q1 + q2 + q3 k y Q2 = p0 + p1 +
se tiene que
p2 + p3 k,
como la operacin aditiva en
Q1 + Q2 = (q0 + p0 ) + (q1 + p1 ) + (q2 + p2 )
+ (q3 + p3 )k,
R es conmutativa (ver axiomas de campo de R) se tiene que q0 , p0 , q1 , p1 , q2 , p2 , q3 , p3 R,
entonces Q1 + Q2 = (q0 + p0 ) + (q1 + p1 ) + (q2 + p2 )
+ (q3 + p3 )k = (p0 + q0 ) + (p1 + q1 ) +
(p2 + q2 )
+ (p3 + q3 )k = Q2 + Q1 .
31
Q2 =
Proposicin 2.2. Dados Q1 , Q2 , Q3 H(R), donde Q1 = q0 + q1 + q2 + q3 k,
se tiene que (Q1 +Q2 )+Q3 = Q1 +(Q2 +Q3 ).
p0 +p1 +p2 +p3 k y Q3 = r0 +r1 +r2 +r3 k,
Q2 = p0 + p1 +
Demostracin. Sean Q1 , Q2 , Q3 H(R), donde Q1 = q0 + q1 + q2 + q3 k,
Utilizando los axiomas de campos de R se tiene que
p2 + p3 k y Q3 = r0 + r1 + r2 + r3 k.
+ r0 + r1 + r2 + r3 k
(Q1 + Q2 ) + Q3 = (q0 + q1 + q2 + q3 k + p0 + p1 + p2 + p3 k)
= (q0 + p0 ) + (q1 + p1 ) + (q2 + p2 )
+ (q3 + p3 )k + r0 + r1 + r2 + r3 k
= ((q0 + p0 ) + r0 ) + ((q1 + p1 ) + r1 ) + ((q2 + p2 ) + r2 )
+ ((q3 + p3 ) + r3 )k
= (q0 + (p0 + r0 )) + (q1 + (p1 + r1 )) + (q2 + (p2 + r2 ))
+ (q3 + (p3 + r3 ))k
= (p0 + r0 ) + (p1 + r1 ) + (p2 + r2 )
+ (p3 + r3 )k + q0 + q1 + q2 + q3 k
= Q1 + (Q2 + Q3 )
2.3.2.
Producto de cuaternios
cQ = cq0 + q1 + q2 + q3 k.
(2.3)
entonces 3Q = 15 + 24 + 18
Ejemplo 2.4. Si Q = 5 + 8 + 6
+ 21k,
+ 63k.
Antes de abordar el producto de cuaternios se debe tener en cuenta los productos definidos
32
entonces
p0 + p1 + p2 + p3 k,
0 + p1 + p2 + p3 k)
Q1 Q2 = (q0 + q1 + q2 + q3 k)(p
= q0 p0 + q0 p1 + q0 p2 + q0 p3 3
+ q1 p0 + q1 p12 + q1 p2 + q1 p3k
+ q2 p0 + q2 p1 + q2 p2 2 + q2 p3 k
+ q3 p2 k
+ q3 p3 k2
+ q3 p0 k + q3 p1 k
Al utilizar los productos definidos por Hamilton se tiene que
Q1 Q2 = q0 p0 + q0 p1 + q0 p2 + q0 p3 k + q1 p0 q1 p1 + q1 p2 k q1 p3 + q2 p0 q2 p1 k
q2 p2 + q2 p3 + q3 p0 k + q3 p1 q3 p2 q3 p3
Al reagrupar trminos, la expresin anterior se puede expresar de la forma q0 + ~q, donde
q0 R y q R3 .
Definicin 2.9. Dados Q1 , Q2 H(R), donde Q1 = q0 + q1 + q2 + q3 k y Q2 =
se define su producto
p0 + p1 + p2 + p3 k,
Q1 Q2 = (q0 p0 q1 p1 q2 p2 q3 p3 ) + (q0 p1 + q1 p0 + q2 p3 q3 p2 )
+ (q0 p2 q1 p3 + q2 p0 + q3 p1 )
+ (q0 p3 + q1 p2 q2 p1 + q3 p0 )k
(2.4)
La ecuacin (2.4) se puede reescribir de una forma ms concisa. Para esto, al considerar
q~2 = p1 + p2 + p3 k y al reagrupar
Q1 = q0 + q~1 , Q2 = p0 + q~2 , donde q~1 = q1 + q2 + q3 k,
nuevamente los trminos se obtiene
Q1 Q2 = p0 q0 (p1 q1 + p2 q2 + p3 q3 )
+ p0 (q1 + q2 + q3 k)
+ q0 (p1 + p2 + p3 k)
+ (q2 p3 q3 p2 ) + (q3 p1 q1 p3 )
+ (q1 p2 q2 p1 )k
= q0 p0 v~1 v~2 + q0 v~2 + p0 v~1 + v~1 v~1
(2.5)
q~1 q~2 = 1 2 1 = 8 4
.
1 2 3
= 8 9 2
+ 11k.
Es de notar, que los productos , , k no son conmutativos, por lo tanto, el producto de
cuaternios tampoco lo es. Sin embargo si cumple con la propiedad asociativa para el
producto.
Q2 =
Proposicin 2.3. Dados Q1 , Q2 , Q3 H(R), donde Q1 = q0 + q1 + q2 + q3 k,
se tiene que (Q1 Q2 )Q3 = Q1 (Q2 Q3 ).
p0 + p1 + p2 + p3 k y Q3 = r0 + r1 + r2 + r3 k,
2.3.3.
Norma de un cuaternio
(2.6)
2.3.4.
82 + 52 + 402 + 192 =
2050kQk = 5 82
Normalizacin de un cuaternio
Sea Q H(R) donde kQk 6= 0. Para normalizar Q se define un nuevo cuaternio, Q0 , donde
Q0 =
Q
.
kQk
Q
Proposicin 2.4. Para todo Q H(R), se tiene que kQ k = kQk
= 1.
0
3 , con kQk =
Demostracin. Sea Q = q0 + q1 + q2 + kq
Tenemos que
s
Q q + q + q + kq
0
1
2
3
p
kQ0 k =
=1
=
=
Q0 =
Q
Q
1
19k
= 8 + + 8
= = (8 + 5 + 40
+ 19k)
+
kQk
5 82
5 82
5 82
82
82 5 82
(2.7)
(2.8)
q
kQk =
q02
q12
+
35
q22
q32
(2.9)
(2.10)
p2 + p3 kRecuerde
que
Q1 Q2 = (q0 p0 q1 p1 q2 p2 q3 p3 ) + (q0 p1 + q1 p0 + q2 p3 q3 p2 )
+ (q0 p2 q1 p3 + q2 p0 + q3 p1 )
+ (q0 p3 + q1 p2 q2 p1 + q3 p0 )k
Por otro lado
Q1 Q2 = (q0 p0 q1 p1 q2 p2 q3 p3 ) (q0 p1 + q1 p0 + q2 p3 q3 p2 )
(q0 p2 q1 p3 + q2 p0 + q3 p1 )
(q0 p3 + q1 p2 q2 p1 + q3 p0 )k
= (q0 p0 q1 p1 q2 p2 q3 p3 ) + (q0 p1 q1 p0 q2 p3 + q3 p2 )
+ (q0 p2 + q1 p3 q2 p0 q3 p1 )
+ (q0 p3 q1 p2 + q2 p1 q3 p0 )k
= Q2 Q1 .
donde
Ejemplo 2.8. Dados Q1 = 5 + 8 + 40
19k y Q2 = 6 + 21 15
+ 17k,
Q1 = 5 8 40
+ 19k y Q2 = 6 21 + 15
17k se tiene que
Q1 Q2 = Q2 Q1
= (30 168 + 600 + 323) + (105 + 48 680 + 285)
+ (75 + 136 + 240 + 399)
+ (85 + 120 + 840 114)k
36
(2.11)
kQ1 Q2 k =
= kQ1 kkQ2 k.
2.3.5.
Inverso de un cuaternio
Aplicando las ideas del conjugado y la norma de cuaternios, se podr demostrar que todo
cuaternio no nulo tiene inverso multiplicativo, para la cual se desarrollar una frmula
para esto.
Definicin 2.10. Sea Q H(R). Si se designa el inverso de un cuaternio como Q1 .
Aplicando la definicin general de inverso, se tiene que
Q1 Q = QQ1 = 1 + ~0 = 1
Ahora, si se hace el producto a ambos lados de la anterior igualdad por el cuaternio
conjugado Q se obtiene
Q1 QQ = Q QQ1 = Q .
Dado que QQ =
Q
.
kQk2
(2.12)
Corolario 2.1. Sea Q H(R), donde kQk = 1, se tiene que el inverso de Q es simplemente el cuaternio conjugado, esto es Q1 = Q .
Demostracin. La demostracin es sencilla y se le deja al lector.
2.4.
Consideraciones algebraicas
2.5.
Consideraciones geomtricas
38
Para que se cumpla la anterior relacin, debe satisfacer la restriccin: < < .
Ahora es conveniente reescribir el cuaternio Q en trminos del ngulo . Supngase que
se define un vector unitario ~u, la cual representa la direccin de la parte vectorial del
cuaternio ~v , donde se tiene
~v
~v
=
.
kvk
sen
De esta forma se puede escribir Q como:
~u =
Q = + ~v = cos + ~u sen .
(2.13)
(2.14)
39
2.6.
(2.15)
(2.16)
Demostracin. Para realizar la prueba basta probar que el producto de cuaternios establecido en LQ cumple con la propiedad homognea y aditiva de la definicin 2.2. Utilizando
la propiedad distributiva del producto de cuaternios, la funcin LQ se puede escribir como
(2.17)
41
q
n
~q
k~qk
(2.18)
42
= k~nk.
Finalmente, utilizando el hecho de que Q = cos + u sen , se puede reescribir (2.18) como:
LQ (~n) = cos2 sen2 )~n + 2 cos sen n~
= cos(2)~n + sen(2)n~ .
Lo cual prueba que el operador LQ rota el vector ~n un ngulo 2.
En resumen se tiene que LQ (~v ) = LQ (~a)+LQ (~n) = ~a + m
~ donde m = cos(2)~n +sen(2)n~
(ver Figura 2.4).
n
m
n sen 2
2
n cos 2
2
2
y P = (0, 3, 2).
Lq (P ) = QQp Q =
2
2
2
2
+
0, 0, 3, 2
= 0, 0, 2, 3
2
2
2
2
43
De esta forma, el punto al ser rotado con un ngulo 90o en torno al eje x es el punto
R = (0, 2, 3).
2.6.1.
Perspectivas
Al realizar rotaciones con cuaterniones pueden adoptarse dos perspectivas distintas. Una
considerando fijos los ejes del marco de referencia, y otra considerando fijo el punto a
rotar. Al considerar el marco de referencia, el operador LQ representa una rotacin del
punto en sentido antihorario. Al definir un nuevo operador Jq como Jq (~v ) = Q (0 + ~v )Q,
donde los cuaternios Q, Q H(R) estn expresado por la Definicin 3.9 y ~v R3 ,
representa una rotacin del punto en sentido horario. Este tipo de perspectiva se
denomina rotacin con perspectiva central.
De esta forma, se cuenta con el marco conceptual suficiente para poder desarrollar el
modelo cinemtico directo de robot KUKA KR120-2Pr por medio del operador transformacin de rotacin con cuaternios [9].
44
CAPTULO 3
ROBOT KUKA KR120-2Pr
n el presente captulo se define la cinemtica del robot que incluye los problemas
de inters de esta campo de la robtica, que corresponde a la cinemtica directa
e inversa. Luego se hace la resolucin del modelo cinemtico directo del robot KUKA
KR120-2Pr por medio de los cuaternios, donde se fundamenta con la base conceptual
expuesta en los apartados anteriores.
3.1.
45
Cinemtica directa
Valor de las
coordenadas
articulares
Posicin y
orientacin del
extremo del robot
(x, y, z, , , )
3.1.1.
3.1.2.
El objetivo del problema cinemtico inverso consiste en determinar los valores que deben
adoptar las coordenadas articulares del robot para que su extremo se posicione y oriente
segn una determinada localizacin espacial (Ver figura 3.1).
Se han desarrollado algunos procedimiento genricos que se pueden trabajar de forma
eficiente computacionalmente, de tal forma, que a partir del conocimiento de la cinemtica
directa del robot se pueda obtener los valores articulares que posicionan y orientan su
extremo.
46
3.2.
El robot KR120-2Pr (ver Figura 3.2) es un manipulador industrial con seis grados*
de libertad con articulaciones cinemticas para tareas de control con trayectorias punto
a punto y trayectorias continuas, perteneciente a la casa matriz alemana KUKAROBOTICSr.
Los manipuladores son robots industriales que se asemejan al brazo humano. El brazo robtico se
compone de articulaciones y eslabones, la cual determinan una caracterstica propia del robot. El nmero
de movimientos espaciales que el manipulador ejecuta en cada articulacin de forma independiente entre
s se denomina grados de libertad.
47
3.2.1.
Especificaciones tcnicas
Carga til.
120 kg
50 kg
170 kg
Cantidad de ejes.
Variante.
Foundry
Posicin de montaje.
Repetibilidad.
Unidad de control.
KR C2
1465 kg
Campo Software.
Velocidad.
Eje 1 (A1).
185, -185
102/s
Eje 2 (A2).
+70 /-120
96/s
Eje 3 (A3).
+ 155 /-119
83/s
Eje 4 (A4).
350, -350
121/s
Eje 5 (A5).
125, -125
124/s
Eje 6 (A6).
350, -350
184/S
Servicios
El robot KUKA KR120-2Pr es ideal para carga y descarga en concatenaciones de prensa,
incluso de piezas de gran tamao gracias a los enormes alcances que posee (ver Figura
48
DIMENSIONES
REA
DE
TRABAJO
VOLUMEN
3,450 mm
5,425 mm
C
3,5 mm
2,108 mm
1,392 mm
1,376 mm
1,500 mm
145.0 mm
3.3.
El procedimiento que se seguir para el desarrollo del modelo cinemtico directo del
robot KUKA KR120-2Pr es obtener la expresin que permite conocer las coordenadas
de la posicin y orientacin del sistema de referencia asociado al extremo del robot S0
con respecto al sistema de referencia asociado a la base S6 (ver Figura 3.4). sta relacin
ser funcin de las longitudes l1 , l2 , l3 , l4 , l5 , l6 y l7 ( ver Figura 3.3) de los elementos del
robot as como los valores angulares de los ejes 1 , 2 , 3 , 4 , 5 y 6 .
Para obtener la relacin entre S0 y S6 se ir convirtiendo sucesivamente S6 ) en S5 ,S5 en
S4 , S4 en S3 , S3 en S2 , S2 en S1 , S1 en S0 , segn la siguiente serie de transformaciones:
1. (S6 S5 ). Desplazamiento de S6 una distancia l7 a lo largo del eje z5 hasta S5 y
rotacin con ngulo 6 alrededor del eje x5 .
2. (S5 S4 ). Desplazamiento de S5 una distancia l6 a lo largo del eje x4 hasta S4 y
rotacin con ngulo 5 alrededor del eje y4 .
49
S
S
S
S
Ejes
x
y
Observacin:
Se deben tener presente las identidades trigonomtricas bsicas durante el desarrollo del
modelo:
sen( ) = sen cos sen cos
(3.1)
(3.2)
51
52
I Q2 A9 = (C2 , 0, S2 , 0)A9 =
([l7 [C6 C5 S4 S2 S6 C4 S2 ] + l6 S5 S4 S2 ],
l7 [C6 C5 C4 C3 S2 C6 S5 S3 S2 S6 S4 C3 S2 ] + l6 [C5 S3 S2 S5 C4 C3 S2 ]
l5 S3 S2 l4 S3 S2 + l3 S2 + l7 [C6 C5 C4 S3 C2 + C6 S5 C3 C2 S6 S4 S3 C2 ] + l6 [C5 C3 C2
S5 C4 S3 C2 ] + l5 C3 C2 + l4 C3 C2 , l7 [C6 C5 S4 C2 S6 C4 C2 ] + l6 S5 S4 C2
l7 [C6 C5 C4 S3 S2 C6 S5 C3 S2 + S6 S4 S3 S2 ] + l6 [C5 C3 S2 + S5 C4 S3 S2 ] l5 C3 S2
l4 C3 S2 + l7 [C6 C5 C4 C3 C2 C6 S5 S3 C2 S6 S4 C3 C2 ] + l6 [C5 S3 C2 S5 C4 C3 C2 ]
l5 S3 C2 l4 S3 C2 + l3 C2 ) y
J ([l7 [C6 C5 S4 S2 S6 C4 S2 ] + l6 S5 S4 S2 ],
l7 [C6 C5 C4 C3 S2 C6 S5 S3 S2 S6 S4 C3 S2 ] + l6 [C5 S3 S2 S5 C4 C3 S2 ]
l5 S3 S2 l4 S3 S2 + l3 S2 + l7 [C6 C5 C4 S3 C2 + C6 S5 C3 C2 S6 S4 S3 C2 ] + l6 [C5 C3 C2
S5 C4 S3 C2 ] + l5 C3 C2 + l4 C3 C2 , l7 [C6 C5 S4 C2 S6 C4 C2 ] + l6 S5 S4 C2
l7 [C6 C5 C4 S3 S2 C6 S5 C3 S2 + S6 S4 S3 S2 ] + l6 [C5 C3 S2 + S5 C4 S3 S2 ] l5 C3 S2
l4 C3 S2 + l7 [C6 C5 C4 C3 C2 C6 S5 S3 C2 S6 S4 C3 C2 ] + l6 [C5 S3 C2 S5 C4 C3 C2 ]
l5 S3 C2 l4 S3 C2 + l3 C2 )(C2 , 0, S2 , 0) =
(0, l7 [C6 C5 C4 S3 C2 + C6 S5 C3 C2 S6 S4 S3 C2 ] + l6 [C5 C3 C2 S5 C4 S3 C2 ] + l5 C3 C2 +
l4 C3 C2 + l7 [C6 C5 C4 C3 S2 C6 S5 S3 S2 S6 S4 C3S2 ] + l6 [C5 S3 S2 S5 C4 C3 S2 ]
l5 S3 S2 l4 S3 S2 + l3 S2 , l7 [C6 C5 S4 S6 C4 ] + l6 S5 S4 , l7 [C6 C5 C4 C3 C2 C6 S5 S3 C2
S6 S4 C3 C2 ] + l6 [C5 S3 C2 S5 C4 C3 C2 ] l5 S3 C2 l4 S3 C2 + l3 C2 + l7 [C6 C5 C4 S3 S2
C6 S5 C3 S2 + S6 S4 S3 S2 ] + l6 [C5 C3 S2 + S5 C4 S3 S2 ] l5 C3 S2 l4 C3 S2 ) = A10 .
54
Sea = l7 [C6 C5 S4 S6 C4 ] + l6 S5 S4 .
55
La parte vectorial del cuaternio puro A12 indica que el extremo del robot referido al
sistema de su base S0 , est posicionado en
x = C1 S1 =
l7 [C6 C5 C4 S3 C2 C1 + C6 S5 C3 C2 C1 S6 S4 S3 C2 C1 + C6 C5 S4 S1 + S6 C4 S1 +
C6 C5 C4 C3 S2 C1 C6 S5 S3 S2 C1 S6 S4 C3 S2 C1 ] + l6 [C5 C3 C2 C1 S5 C4 S3 C2 C1
S5 S4 S1 C5 S3 S2 C1 S5 C4 C3 S2 C1 ] + l5 [C3 C2 C1 S3 S2 C1 ] + l4 [C3 C2 C1 S3 S2 C1 ] +
l3 S2 C1 + l1 C1 ,
(3.3)
y = C 1 + S1 =
l7 [C6 C5 C4 S3 C2 S1 + C6 S5 C3 C2 S1 S6 S4 S3 C2 S1 C6 C5 S4 C1 S6 C4 C1 +
C6 C5 C4 C3 S2 S1 C6 S5 S3 S2 S1 S6 S4 C3 S2 S1 ] + l6 [C5 C3 C2 S1 S5 C4 S3 C2 S1
+S5 S4 C1 C5 S3 S2 S1 S5 C4 C3 S2 S1 ] + l5 [C3 C2 S1 S3 S2 S1 ] + l4 [C3 C2 S1 S3 S2 S1 ] +
l3 S2 S1 + l1 S1 y
(3.4)
z==
l7 [C6 C5 C4 C3 C2 C6 S5 S3 C2 S6 S4 C3 C2 C6 C5 C4 S3 C2 C6 S5 C3 C2 + S6 S4 S3 C2 ] +
l6 [C5 S3 C2 S5 C4 C3 C2 C5 C3 S2 + S5 C4 S3 S2 ] + l5 [S3 C2 C3 S2 ] +
l4 [S3 C2 C3 S2 ] + l3 C2 + l2 .
(3.5)
Por lo cual, las expresiones (3.3), (3.4) y (3.5) permiten conocer la localizacin del extremo
del robot referidas al sistema de la base en funcin de los valores angulares de los ejes
(1 , 2 , 3 , 4 , 5 , 6 ) y las dimensiones del robot, correspondientes, por tanto, a la solucin
del problema cinemtico directo.
56
CAPTULO 4
MODELAMIENTO
COMPUTACIONAL
l potencial que ofrece los cuaternios frente al modelado de robots industriales esta
dado por su eficiencia computacional[2] en comparacin con otros mtodos, como en
4.1.
Matlabr
57
4.1.1.
Caractersticas principales
4.2.
Una caja de herramientas (toolbox ) en Matlabr, son archivos de texto con extensin
".M", llamados archivos M-file, que provee funcionalidades que no se encuentran por
defecto en este. Existe una caja de herramientas especializado para robtica llamado
Robotics Toolbox for Matlabr de Peter I. Corke* , que incluye mtodos de representacin
cinemtica y dinmica para manipuladores industriales.
Se utiliz este toolbox dado su facilidad de manejo y completo campo conceptual que
enmarca los cuaternios. Los comandos utilizados de esta caja de herramientas son:
> "quaternion", definicin de cuaternios.
> "+", suma de cuaternios.
*
58
Ejemplo 4.2 (+, suma de cuaternios). Desde la ventana de comando de Matlabr, suma
de los cuaternios Q1 = (5, 8, 40, 20) y Q2 = (1, 2, 3, 4):
>> Q1=quaternion([5 8 40 20])
Q1 =
5 <8, 40, 20>
>> Q2=quaternion([1 2 3 4])
Q2 =
1 <2, 3, 4>
>> Q3=Q1+Q2
Q3 =
6 <10, 43, 24>
Ejemplo 4.3 (*, producto de cuaternios). Desde la ventana de comando de Matlabr,
producto de los cuaternios Q1 = (5, 8, 40, 20) y Q2 = (1, 2, 3, 4):
>> Q4=Q1*Q2
Q4 =
-211 <118, 63, -16>
~ inv. Conjugado de cuaternios:
59
4.3.
Cdigo simulacin
En esta seccin se presenta una explicacin completa del cdigo hecho en Matlabr
primera instancia se
del modelo cinemtico directo del robot KUKA KR120-2PrEn
establecen las condiciones iniciales para la posicin inicial del robot.
Observacin: El texto que aparezca en cursiva representa el cdigo extrado del archivo
M-file de Matlabr donde se escribi el cdigo. Los comentarios que no pertenecen al
cdigo en Matlabr estarn precedidos por >.
> Es necesario establecer los limites donde se presentar los movimientos del robot, para
esto se definen los rangos por medio del comando axis para luego graficar los vectores
unitarios correspondientes a cada eje.
% % POSICIN INICIAL clear
all
clc
%Vectores unitarios
i = [1, 0, 0]; j = [0, 1, 0]; k = [0, 0, 1]; n = [0, 0, 0]; % RANGOS EJES
% AXIS([XMIN XMAX YMIN YMAX ZMIN ZMAX])
axis([-3800 3800 -3800 3800 0 3700])
plot3(i, n, n,0 m0 ) hold on
60
E4 = E3 + T 3;
E5 = Q2 E4 CQ2;
E6 = E5 + T 2 + T 1;
E7 = Q1 E6 CQ1;
% %ESLABN 5 DEL MODELO CINEMTICO
F 1 = Q5 T 6 CQ5;
F 2 = F 1 + T 5;
F 3 = Q4 F 2 CQ4;
F 4 = F 3 + T 4;
F 5 = Q3 F 4 CQ3;
F 6 = F 5 + T 3;
F 7 = Q2 F 6 CQ2;
F 8 = F 7 + T 2 + T 1;
F 9 = Q1 F 8 CQ1;
% %ESLABN 6 DEL MODELO CINEMTICO
A1 = Q6 T 7 CQ6;
A2 = A1 + T 6;
A3 = Q5 A2 CQ5;
A4 = A3 + T 5;
A5 = Q4 A4 CQ4;
A6 = A5 + T 4;
A7 = Q3 A6 CQ3;
A8 = A7 + T 3;
A9 = Q2 A8 CQ2;
A10 = A9 + T 2 + T 1;
A11 = Q1 A10 CQ1;
> Se definen los vectores correspondientes a cada eje, para luego graficarlos.
V1=B2.v ; V2=C3.v ; V3=D5.v ; V4=E7.v ; V5=F9.v ; V6=A11.v ;
% Primer vector
X=[0 V1(1)] ; Y=[0 V1(2)] ; Z=[0 V1(3)] ;
63
% Segundo Vector
X1=[V1(1) V2(1)] ; Y1=[V1(2) V2(2)] ; Z1=[V1(3) V2(3)] ;
% Tercer vector
X2=[V2(1) V3(1)] ; Y2=[V2(2) V3(2)] ; Z2=[V2(3) V3(3)] ;
% Cuarto vector
X3=[V3(1) V4(1)] ; Y3=[V3(2) V4(2)] ; Z3=[V3(3) V4(3)] ;
% Quinto vector
X4=[V4(1) V5(1)] ; Y4=[V4(2) V5(2)] ; Z4=[V4(3) V5(3)] ;
% Sexto vector
X5=[V5(1) V6(1)] ;
Y5=[V5(2) V6(2)] ; Z5=[V5(3) V6(3)] ;
> Con los vectores definidos, se establecen los parmetros para la graficacin.
hold on
axis([-3800 3800 -3800 3800 0 3700])
plot3(X,Y,Z,ro-,LineWidth,3)
hold on
axis([-3800 3800 -3800 3800 0 3700])
plot3(X1,Y1,Z1,bo-,LineWidth,3)
hold on
axis([-3800 3800 -3800 3800 0 3700])
plot3(X2,Y2,Z2,go-,LineWidth,3)
hold on
axis([-3800 3800 -3800 3800 0 3700])
plot3(X3,Y3,Z3,mo-,LineWidth,3)
hold on
axis([-3800 3800 -3800 3800 0 3700])
64
plot3(X4,Y4,Z4,y-,LineWidth,3)
hold on
axis([-3800 3800 -3800 3800 0 3700])
plot3(X5,Y5,Z5,k+-,LineWidth,3)
title(MODELO DE CINEMTICA DIRECTA DEL;ROBOT KR 120-2P CUATERNIOS,FontSize,14,Color,k,EdgeColor,k)
xlabel(eje X,FontSize,16,Color,B)
ylabel(eje Y,FontSize,16,Color,B)
zlabel(eje Z,FontSize,16,Color,B)
grid on
box on
> Al ejecutar esta primera parte del cdigo, se obtiene la Figura 4.1.
eje Z
3000
2000
1000
0
2000
2000
2000
2000
eje Y
eje X
establecidos en la referencias tcnicas del robot (ver Tabla 1.). A continuacin se presenta
el cdigo que efecta la recoleccin de datos, condicionndolos a los valores angulares
definidos para cada articulacin.
while(A1 >185 || A1 <-185)
disp( Eje 1. El ngulo debe estar entre [-185,185])
A1=input( Digite el valor del ngulo correspondiente al Eje 1 );
A1=round(A1);
if(A1>185 || A1<-185)
disp( ) end end disp( )
while(A3 > 65 || A3 < 209) disp( Eje 3. El ngulo debe estar entre [-209,65])
A3=input( Digite el valor del ngulo correspondiente al Eje 3 );
A3=round(A3);
if (A3 > 65 || A3 < 209)
disp( ) end end disp( )
> Ahora se efecta de nuevo el modelo que se encontrar condicionado a los valores que
fueron ingresados por el usuario. Se debe tener presente que Matlabr trabaja los valores
angulares en radianes, lo cual, para facilitar el uso del simulador, se efecta el cdigo de
conversin de grados a radianes y se continua con el modelo.
Ani=input( Simular, presione ENTER ); % %Orden para iniciar la simulacin.
teta1=((A1*pi)/180);
teta2=((A2*pi)/180);
teta3=((A3*pi)/180);
teta4=((A4*pi)/180);
teta5=((A5*pi)/180);
teta6=((A6*pi)/180);
i=[1,0,0]; j=[0,1,0]; k=[0,0,1]; n=[0,0,0]; axis([-3800 3800 -3800 3800 0 3700])
67
plot3(i,n,n,m-) hold on
axis([-3800 3800 -3800 3800 0 3700])
plot3(n,j,n,g-) hold on
axis([-3800 3800 -3800 3800 0 3700])
plot3(n,n,k,B) hold on
Q1=quaternion([cos(teta1/2) 0 0 sin(teta1/2)]); CQ1=inv(Q1);
Q2=quaternion([cos(teta2/2) 0 sin(teta2/2) 0]); CQ2=inv(Q2);
Q3=quaternion([cos(teta3/2) 0 sin(teta3/2) 0]); CQ3=inv(Q3);
Q4=quaternion([cos(teta4/2) sin(teta4/2) 0 0 ]); CQ4=inv(Q4);
Q5=quaternion([cos(teta5/2) 0 sin(teta5/2) 0]); CQ5=inv(Q5);
Q6=quaternion([cos(teta6/2) sin(teta6/2) 0 0]); CQ6=inv(Q6);
T0=quaternion([0 0 0 0]);
T1=quaternion([0 750 0 0]);
T2=quaternion([0 0 0 700]);
T3=quaternion([0 0 0 1250]);
T4=quaternion([0 1000 0 0]);
T5=quaternion([0 500 0 0]);
T6=quaternion([0 230 0 0]);
T7=quaternion([0 0 0 200]);
B1=T2+T1 ; B2=Q1*B1*CQ1 ;
C1=Q2*T3*CQ2 ; C2=C1+T2+T1 ;
C3=Q1*C2*CQ1 ;
D1=Q3*T4*CQ3 ; D2=D1+T3 ;
D3=Q2*D2*CQ2 ; D4=D3+T2+T1 ;
D5=Q1*D4*CQ1 ;
E1=Q4*T5*CQ4 ; E2=E1+T4 ;
E3=Q3*E2*CQ3 ; E4=E3+T3 ;
E5=Q2*E4*CQ2 ; E6=E5+T2+T1 ;
E7=Q1*E6*CQ1 ;
F1=Q5*T6*CQ5 ; F2=F1+T5 ;
68
F3=Q4*F2*CQ4 ; F4=F3+T4 ;
F5=Q3*F4*CQ3 ; F6=F5+T3 ;
F7=Q2*F6*CQ2 ; F8=F7+T2+T1 ;
F9=Q1*F8*CQ1 ;
G1=Q6*T7*CQ6 ; G2=G1+T6 ;
G3=Q5*G2*CQ5 ; G4=G3+T5 ;
G5=Q4*G4*CQ4 ; G6=G5+T4 ;
G7=Q3*G6*CQ3 ; G8=G7+T3 ;
G9=Q2*G8*CQ2 ; G10=G9+T2+T1 ;
G11=Q1*G10*CQ1 ;
V1=B2.v ; V2=C3.v ; V3=D5.v ; V4=E7.v ; V5=F9.v ; V6=G11.v ;
X=[0 V1(1)] ; Y=[0 V1(2)] ; Z=[0 V1(3)] ;
X1=[V1(1) V2(1)] ; Y1=[V1(2) V2(2)] ; Z1=[V1(3) V2(3)] ;
X2=[V2(1) V3(1)] ; Y2=[V2(2) V3(2)] ; Z2=[V2(3) V3(3)] ;
X3=[V3(1) V4(1)] ; Y3=[V3(2) V4(2)] ; Z3=[V3(3) V4(3)] ;
X4=[V4(1) V5(1)] ; Y4=[V4(2) V5(2)] ; Z4=[V4(3) V5(3)] ;
X5=[V5(1) V6(1)] ; Y5=[V5(2) V6(2)] ; Z5=[V5(3) V6(3)] ;
hold on
axis([-3800 3800 -3800 3800 0 3700])
plot3(X,Y,Z,ro-,LineWidth,3) hold on
axis([-3800 3800 -3800 3800 0 3700])
plot3(X1,Y1,Z1,bo-,LineWidth,3) hold on
axis([-3800 3800 -3800 3800 0 3700])
plot3(X2,Y2,Z2,go-,LineWidth,3) hold on
axis([-3800 3800 -3800 3800 0 3700])
plot3(X3,Y3,Z3,mo-,LineWidth,3) hold on
axis([-3800 3800 -3800 3800 0 3700])
plot3(X4,Y4,Z4,y-,LineWidth,3) hold on
axis([-3800 3800 -3800 3800 0 3700])
plot3(X5,Y5,Z5,k+-,LineWidth,3)
69
Robot KR 120-2P.
Ingrese los valores angulares de cada eje
para hacer su simulacin, se verifica grficamente.
Modelo Cinemtico Directo Cuaternios robot KR 120-2P
Eje 1. El ngulo debe estar entre [-185,185]
Digite el valor del ngulo correspondiente al Eje 1 |
> De esta forma, se tiene el cdigo completo del modelo computacional utilizando
Matlabr del robot KUKA KR120-2Pr por medio de cuaternios, por lo cual se encuentra
listo para su ejecucin.
4.4.
Validacin
Despus de hacer la programacin en Matlabr del modelo cinemtico directo del robot
KUKA KR120-2Pr se efecta la validacin del modelo elaborado y expuesto en el
captulo anterior, por medio del ingreso de datos de posiciones angulares para cada
articulacin y as obtener las posiciones del elemento terminal del robot.
> Mapeo de posicin para los ngulos:
1. A1 = 0o , A2 = 0o , A3 = 0o , A4 = 0o , A5 = 0o , A6 = 0o .
70
eje z
3000
2000
1000
0
2000
2000
2000
2000
eje y
eje x
4.5.
Se estableci una interfaz grfica del usuario a la programacin que se realiz referente
al modelo cinemtico directo del robot KUKA KR120-2Pr para lograr un mayor
dinamismo en la interaccin del usuario al ejecutar el cdigo. Al correr el cdigo que se
present, tiene la desventaja de que se deben manejar tres ventanas individualmente para
realizar las simulaciones, una primera ventana que corresponde al "M-file" que contiene
71
eje z
3000
2000
1000
0
2000
2000
2000
2000
eje y
eje x
72
73
Figura 4.6: GUI movimientos mltiples eje 1 del robot KUKA KR120-2Pr.
74
Figura 4.7: GUI movimientos mltiples eje 2 del robot 3 KUKA KR120-2Pr.
Figura 4.8: GUI movimientos mltiples de los ejes del robot KUKA KR120-2Pr.
75
CAPTULO 5
PROPUESTA DE INNOVACIN EN
EL AULA
donde luego se valid el modelo al programarlo en Matlabr. Todo este proceso elaborado abre las posibilidades de establecer una propuesta de innovacin en el aula para la
enseanza y el aprendizaje de transformaciones lineales en un curso de lgebra Lineal[17].
Histricamente los cursos de lgebra Lineal, que son impartidos por lo general en el
segundo nivel de estudios, han presentado altos niveles de desaprobacin, por lo cual se
establece la necesidad de proponer y desarrollar estrategias pedaggicas que optimicen
el aprendizaje en sta rea. Es de inters el lgebra Lineal ya que es un componente de
gran importancia para la formacin de profesionales en ciencias e ingenieras.
Adems, es de inters el formar profesionales con aptitudes en competencias comunicativas, disciplinares, interpersonales, investigativas y tecnolgicas, lo cual incentiva a la
incorporacin del trabajo por proyectos en las dinmicas del aula, esto con el propsito
de orientar el aprendizaje de las transformaciones lineales mediante el desarrollo del
modelo cinemtico directo del robot KUKA KR120-2Pr.
76
77
CAPTULO 6
RESULTADOS
x = C1 S1 =
l7 [C6 C5 C4 S3 C2 C1 + C6 S5 C3 C2 C1 S6 S4 S3 C2 C1 + C6 C5 S4 S1 + S6 C4 S1 +
C6 C5 C4 C3 S2 C1 C6 S5 S3 S2 C1 S6 S4 C3 S2 C1 ] + l6 [C5 C3 C2 C1 S5 C4 S3 C2 C1
S5 S4 S1 C5 S3 S2 C1 S5 C4 C3 S2 C1 ] + l5 [C3 C2 C1 S3 S2 C1 ] + l4 [C3 C2 C1 +
S3 S2 C1 ]l3 S2 C1 + l1 C1 .
78
y = C 1 + S1 =
l7 [C6 C5 C4 S3 C2 S1 + C6 S5 C3 C2 S1 S6 S4 S3 C2 S1 C6 C5 S4 C1 S6 C4 C1 +
C6 C5 C4 C3 S2 S1 C6 S5 S3 S2 S1 S6 S4 C3 S2 S1 ] + l6 [C5 C3 C2 S1 S5 C4 S3 C2 S1
+S5 S4 C1 C5 S3 S2 S1 S5 C4 C3 S2 S1 ] + l5 [C3 C2 S1 S3 S2 S1 ] + l4 [C3 C2 S1
S3 S2 S1 ] + l3 S2 S1 + l1 S1 .
z==
l7 [C6 C5 C4 C3 C2 C6 S5 S3 C2 S6 S4 C3 C2 C6 C5 C4 S3 C2 C6 S5 C3 C2 +
S6 S4 S3 C2 ] + l6 [C5 S3 C2 S5 C4 C3 C2 C5 C3 S2 + S5 C4 S3 S2 ] + l5 [S3 C2
C3 S2 ] + l4 [S3 C2 C3 S2 ] + l3 C2 + l2 .
donde (x, y, z) son las coordenadas del extremo del robot referidas a la base del
robot (S0 )
En los grficos 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7 y 4.8 se evidencia la validacin del
modelo cinemtico directo realizado al robot en cuestin, al ser mapeados distintos
valores angulares para cada articulacin.
Se desarroll una interfaz grfica que integra la programacin hecha sobre el modelo
cinemtico directo del robot KUKA KR120-2Pr, que se muestra en las Figuras
4.4, 4.5, 4.6, 4.7 y 4.8 donde permite de una forma ms prctica desarrollar las
simulaciones de los movimientos de cada articulacin del robot.
Se complementa una propuesta de innovacin en el aula para la enseanza y el
aprendizaje de transformaciones lineales en un curso de lgebra lineal, apoyado en
la ejecucin de trabajos por proyectos, en la modelacin del robot KUKA KR1202Pr empleando cuaternios para luego ser validado utilizando Matlab.r
79
CONCLUSIONES
80
81
ANEXO 1
A continuacin se presenta el cdigo completo de la interfaz grfica presentada en la
seccin 5.5.
function varargout = GUIKUKAKR1202P(varargin)
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',
mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @GUIKUKAKR1202P_OpeningFcn, ...
'gui_OutputFcn', @GUIKUKAKR1202P_OutputFcn, ...
'gui_LayoutFcn', [] , ...
[]);
'gui_Callback',
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
handle.i=[1,0,0];
handle.j=[0,1,0];
handle.k=[0,0,1];
handle.n=[0,0,0];
% CAJA GRAFICA
% AXIS([XMIN XMAX YMIN YMAX ZMIN ZMAX])
axis([-3800 3800 -3800 3800 0 3700])
plot3(handle.i,handle.n,handle.n,'m-')
hold on
axis([-3800 3800 -3800 3800 0 3700])
%Representacin de Rotaciones
plot3(handle.n,handle.j,handle.n,'g-')
Q1=quaternion([cos(teta1/2) 0 0 sin(teta1/2)]);
hold on
CQ1=inv(Q1);%%%%Conjugado de Q1
axis([-3800 3800 -3800 3800 0 3700])
Q2=quaternion([cos(teta2/2) 0 sin(teta2/2) 0]);
plot3(handle.n,handle.n,handle.k,'B')
CQ2=inv(Q2);
hold on
Q3=quaternion([cos(teta3/2) 0 sin(teta3/2) 0]);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
CQ3=inv(Q3);
teta1=0;
Q4=quaternion([cos(teta4/2) sin(teta4/2) 0 0 ]);
teta2=0;
CQ4=inv(Q4);
teta3=0;
Q5=quaternion([cos(teta5/2) 0 sin(teta5/2) 0]);
teta4=0;
CQ5=inv(Q5);
teta5=0;
Q6=quaternion([cos(teta6/2) sin(teta6/2) 0 0]);
teta6=0;
CQ6=inv(Q6);
82
%Representacin de Traslaciones
T0=quaternion([0 0 0 0]);
T1=quaternion([0 750 0 0]);
T2=quaternion([0 0 0 700]);
T3=quaternion([0 0 0 1250]);
T4=quaternion([0 1000 0 0]);
T5=quaternion([0 500 0 0]);
T6=quaternion([0 230 0 0]);
T7=quaternion([0 0 0 200]);
%%CICLO 1. PASO
A0=T7+T0;
A1=Q6*A0*CQ6;
%%CICLO 2. PASO
A2=A1+T6;
A3=Q5*A2*CQ5;
%%CICLO 3. PASO
A4=A3+T5;
A5=Q4*A4*CQ4;
%%CICLO 4. PASO
A6=A5+T4;
A7=Q3*A6*CQ3;
%%CICLO 5. PASO
A8=A7+T3;
A9=Q2*A8*CQ2;
%%CICLO 6. PASO
A10=A9+T2+T1;
A11=Q1*A10*CQ1;
%%%%%%%%%%%%%%%%%%%%%%%%ESLABONES%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%ESLABON 1 DEL
B1=T2+T1;
B2=Q1*B1*CQ1;
%%ESLABON 2 DEL
C1=Q2*T3*CQ2;
C2=C1+T2+T1;
C3=Q1*C2*CQ1;
%%ESLABON 3 DEL
D1=Q3*T4*CQ3;
D2=D1+T3;
D3=Q2*D2*CQ2;
D4=D3+T2+T1;
D5=Q1*D4*CQ1;
%%ESLABON 4 DEL
E1=Q4*T5*CQ4;
E2=E1+T4;
E3=Q3*E2*CQ3;
E4=E3+T3;
E5=Q2*E4*CQ2;
E6=E5+T2+T1;
E7=Q1*E6*CQ1;
MODELO CINEMATICO
MODELO CINEMATICO
MODELO CINEMATICO
MODELO CINEMATICO
83
% 1 Vector
handle.X=[0 V1(1)];
handle.Y=[0 V1(2)];
handle.Z=[0 V1(3)];
% 2 Vector
handle.X1=[V1(1) V2(1)];
handle.Y1=[V1(2) V2(2)];
handle.Z1=[V1(3) V2(3)];
% 3 Vector
handle.X2=[V2(1) V3(1)];
handle.Y2=[V2(2) V3(2)];
handle.Z2=[V2(3) V3(3)];
% 4 Vector
handle.X3=[V3(1) V4(1)];
handle.Y3=[V3(2) V4(2)];
handle.Z3=[V3(3) V4(3)];
% 5 Vector
handle.X4=[V4(1) V5(1)];
handle.Y4=[V4(2) V5(2)];
handle.Z4=[V4(3) V5(3)];
% 6 Vector
handle.X5=[V5(1) V6(1)];
handle.Y5=[V5(2) V6(2)];
handle.Z5=[V5(3) V6(3)];
84
% --- Outputs from this function are returned to the command line.
function varargout = GUIKUKAKR1202P_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject
handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
function edit1_Callback(hObject, eventdata, handles)
Val=get(hObject,'String'); %Almacenar valor ingresado
NewVal = str2double(Val); %Transformar a formato double
%Almacenar en identificador
handles.edit1=NewVal;
%Salvar datos de la aplicacin
guidata(hObject,handles);
85
86
87
B1=T2+T1;
B2=Q1*B1*CQ1;
C1=Q2*T3*CQ2;
C2=C1+T2+T1;
C3=Q1*C2*CQ1;
handle.i=[1,0,0];
handle.j=[0,1,0];
handle.k=[0,0,1];
handle.n=[0,0,0];
axis([-3800 3800 -3800 3800 0 3700])
plot3(handle.i,handle.n,handle.n,'m-')
hold on
axis([-3800 3800 -3800 3800 0 3700])
plot3(handle.n,handle.j,handle.n,'g-')
hold on
axis([-3800 3800 -3800 3800 0 3700])
plot3(handle.n,handle.n,handle.k,'B')
hold on
D1=Q3*T4*CQ3;
D2=D1+T3;
D3=Q2*D2*CQ2;
D4=D3+T2+T1;
D5=Q1*D4*CQ1;
E1=Q4*T5*CQ4;
E2=E1+T4;
E3=Q3*E2*CQ3;
E4=E3+T3;
E5=Q2*E4*CQ2;
E6=E5+T2+T1;
E7=Q1*E6*CQ1;
teta1=((A1*pi)/180);
teta2=((A2*pi)/180);
teta3=((A3*pi)/180);
teta4=((A4*pi)/180);
teta5=((A5*pi)/180);
teta6=((A6*pi)/180);
Q1=quaternion([cos(teta1/2)
CQ1=inv(Q1);
Q2=quaternion([cos(teta2/2)
CQ2=inv(Q2);
Q3=quaternion([cos(teta3/2)
CQ3=inv(Q3);
Q4=quaternion([cos(teta4/2)
CQ4=inv(Q4);
Q5=quaternion([cos(teta5/2)
CQ5=inv(Q5);
Q6=quaternion([cos(teta6/2)
CQ6=inv(Q6);
0 0 sin(teta1/2)]);
0 sin(teta2/2) 0]);
0 sin(teta3/2) 0]);
sin(teta4/2) 0 0 ]);
F1=Q5*T6*CQ5;
F2=F1+T5;
F3=Q4*F2*CQ4;
F4=F3+T4;
F5=Q3*F4*CQ3;
F6=F5+T3;
F7=Q2*F6*CQ2;
F8=F7+T2+T1;
F9=Q1*F8*CQ1;
0 sin(teta5/2) 0]);
sin(teta6/2) 0 0]);
%Representacin de Traslaciones
T0=quaternion([0 0 0 0]);
T1=quaternion([0 750 0 0]);
T2=quaternion([0 0 0 700]);
T3=quaternion([0 0 0 1250]);
T4=quaternion([0 1000 0 0]);
T5=quaternion([0 500 0 0]);
T6=quaternion([0 230 0 0]);
T7=quaternion([0 0 0 200]);
88
G1=Q6*T7*CQ6;
G2=G1+T6;
G3=Q5*G2*CQ5;
G4=G3+T5;
G5=Q4*G4*CQ4;
G6=G5+T4;
G7=Q3*G6*CQ3;
G8=G7+T3;
G9=Q2*G8*CQ2;
G10=G9+T2+T1;
G11=Q1*G10*CQ1;
V1=B2.v;
V2=C3.v;
V3=D5.v;
V4=E7.v;
V5=F9.v;
V6=G11.v;
handle.X=[0 V1(1)];
handle.Y=[0 V1(2)];
handle.Z=[0 V1(3)];
handle.X1=[V1(1) V2(1)];
handle.Y1=[V1(2) V2(2)];
handle.Z1=[V1(3) V2(3)];
handle.X2=[V2(1) V3(1)];
handle.Y2=[V2(2) V3(2)];
handle.Z2=[V2(3) V3(3)];
handle.X3=[V3(1) V4(1)];
handle.Y3=[V3(2) V4(2)];
handle.Z3=[V3(3) V4(3)];
handle.X4=[V4(1) V5(1)];
handle.Y4=[V4(2) V5(2)];
handle.Z4=[V4(3) V5(3)];
handle.X5=[V5(1) V6(1)];
handle.Y5=[V5(2) V6(2)];
handle.Z5=[V5(3) V6(3)];
hold on
axis([-3800 3800 -3800 3800 0 3700])
plot3(handle.X,handle.Y,handle.Z,'ro-','LineWidth',3)
hold on
axis([-3800 3800 -3800 3800 0 3700])
plot3(handle.X1,handle.Y1,handle.Z1,'bo-','LineWidth',3)
hold on
axis([-3800 3800 -3800 3800 0 3700])
plot3(handle.X2,handle.Y2,handle.Z2,'go-','LineWidth',3)
hold on
axis([-3800 3800 -3800 3800 0 3700])
plot3(handle.X3,handle.Y3,handle.Z3,'mo-','LineWidth',3)
hold on
axis([-3800 3800 -3800 3800 0 3700])
plot3(handle.X4,handle.Y4,handle.Z4,'y-','LineWidth',3)
hold on
axis([-3800 3800 -3800 3800 0 3700])
plot3(handle.X5,handle.Y5,handle.Z5,'k+-','LineWidth',3)
% Texto Grfica
% title({'MODELO DE CINEMTICA DIRECTA DEL';'ROBOT KR 120-2P
JJQO'},'FontSize',16,'Color','k','EdgeColor','k')
xlabel('eje x','FontSize',16,'Color','B')
ylabel('eje y','FontSize',16,'Color','B')
zlabel('eje z','FontSize',16,'Color','B')
grid on
box on
89
BIBLIOGRAFA
[1] Archila Daz, J. F., Dutra, M. S. (2008). Estudio y modelamiento del robot KUKAr
KR 6. Revista Facultad de Ingeneria Universidad de Antioquia, 46(1), 132-144.
[2] Tarazona, M. (2002). Aplicacin software para un brazo robtico usando un modelo
geomtrico basado en el lgebra de cuaterniones. Bucaramanga: Universidad Industrial
de Santander.
[3] Lozano, E. J. (2002). Cuaternios de Hamilton. Bucaramanga: Universidad Industrial
de Santander.
[4] Barrientos, A., Pen, L. F., Balaguer C. and Aracil, R. (2007) Fundamentos de Robtica. Madrid: Mc Graw Hill.
[5] Grossman, S. I. (2004). lgebra lineal. Quinta edicin. Belmont: Mc Graw Hill.
[6] Nakos, G., Joyner, D. (1999). lgebra lineal con aplicaciones. Madrid: Thomson.
[7] Kuipers, J. B. (1999). Quaternios and rotation sequences: A primer with aplications
to orbits, aerospace, and virtual reality. Princenton: Princenton University Press.
[8] Apostol, T., M. (2002). Calculus. Volumen II. Barcelona: Revert.
[9] Favieri, A. (2008). Introduccin a los cuaterniones.
Obtenida de http://www.edutecne.utn.edu.ar/cuaterniones/cuaterniones.pdf
90
[10] Sahul, S., Biswall, B. B. and Subudhi, B. (n.d). A novel method for representing
robot kinematics using Quaternion Theory.
Obtenida de http://dspace.nitrkl.ac.in:8080/dspace/bitstream/2080/689/1/bbb2.pdf/
[11] KUKA Robotic. Technical data KR 120-2P.
Obtenida de http://www.roboticturnkeysolutions.com/robots/kuka/datasheet/kr_120.pdf/
[12] Corke, P. I. (2008). Robotics toolbox for Matlab.
Obtenida de http://www.petercorke.com/
[13] Gonzlez Hernndez, J. F. (n.d.) El producto vectorial.
Obtenida de http://www.uam.es/personal_pdi/ciencias/fchamizo/realquiler/fich/jfgh.pdf
[14] Elduque, A. (2004) Otros nmeros.
Obtenida de http://www.unizar.es/matematicas/algebra/elduque/Talks/otrosnumeros.pdf
[15] OConnor, J. J., Robertson, E. F. (n.d.) Sir William Rowan Hamilton.
Obtenida de http://www-history.mcs.st-andrews.ac.uk/Biographies/Hamilton.html
[16] Williams, K. (2011) BBC british history.
Obtenida de http://www.bbc.co.uk/history/british
[17] Villamizar Morales, J. (2011). Proyecto de innovacin pedaggica en el aula para
orientar el aprendizaje de las transformaciones lineales mediante el desarrollo del moR Simposio Internacional de Pedagoga,
delo cinemtico directo para el robot kr120-2p.
91