You are on page 1of 75

APLICACIN SOFTWARE PARA UN BRAZO ROBTICO USANDO UN MODELO

GEOMETRICO BASADO EN EL ALGEBRA DE CUATERNIOS


















MAURICIO TARAZONA ALVAREZ
















UNIVERSIDAD INDUSTRIAL DE SANTANDER
FACULTAD DE CIENCIAS FISICO-MECANICAS
ESCUELA DE INGENIERIA DE SISTEMAS
BUCARAMANGA
2002

APLICACIN SOFTWARE PARA UN BRAZO ROBTICO USANDO UN MODELO
GEOMETRICO BASADO EN EL ALGEBRA DE CUATERNIOS







MAURICIO TARAZONA ALVAREZ







Trabajo de investigacin para optar al ttulo de
Magster en Ingeniera de Sistemas







Director
EDGAR BARRIOS URUEA
Ingeniero Electricista






UNIVERSIDAD INDUSTRIAL DE SANTANDER
FACULTAD DE CIENCIAS FISICO-MECANICAS
ESCUELA DE INGENIERIA DE SISTEMAS
BUCARAMANGA
2002






































iv
Nota de aceptacin


__________________________________

__________________________________

__________________________________





__________________________________
Presidente del Jurado



__________________________________
Jurado



__________________________________
Jurado











Bucaramanga, 5 de Diciembre de 2002



v
Dedico este trabajo de investigacin a Sandra Juliana por su colaboracin
e incansable aliento.






































vi
CONTENIDO

pg.

INTRODUCCION.....1
1. MODELAMIENTO GEOMTRICO DE ROBOTS ..............................................5
1.1. INTRODUCCIN..........................................................................................5
1.2. ESTRUCTURA DE ROBOTS............................................................................5
1.2.1. Configuracin de brazo articulado ....................................................6
1.3. REPRESENTACIONES GEOMTRICAS.........................................................7
1.3.1. Mtodo de matrices homogneas. ....................................................7
1.3.2. Definicin del robot SMA-V3R:T. .........................................................12
1.3.3. Definicin modelo matemtico por matrices homogneas........13
1.3.4. Mtodo de cuaternios de Hamilton..................................................17
1.3.5. Definicin del modelo matemtico por cuaternios. ......................31
2. COMPARACIN DE LA EFICIENCIA COMPUTACIONAL ENTRE EL
MTODO DE MATRICES HOMOGENEAS Y EL MTODO DE CUATERNIOS ........47
2.1. INTRODUCCIN........................................................................................47
2.2. DESARROLLO DE LA COMPARACIN.................................................................48
3. CONCEPTOS DE CONSTRUCCION SOFTWARE PARA LA APLICACIN
Q-ROBOT...................................................................................................................54
3.1. INTRODUCCIN........................................................................................54
3.2. EL MTODO DE CONSTRUCCIN.......................................................................54
3.3. LA APLICACIN Q-ROBOT................................................................................57
4. CONCLUSIONES............................................................................................64
5. RECOMENDACIONES...................................................................................65
6. Referencia Bibliogrfica .............................................................................66


vii
LISTA DE TABLAS

Pg.


Tabla 1. 1 Parmetros de las matrices homogneas 10
Tabla 2. 1 Comparacin operacional de mtodos 51

































viii
LISTA DE FIGURAS

Pg.


Figura 1. 1 Robot angular o antropomrfico 6
Figura 1. 2 Vectores o, a, n, p para un manipulador de robot 9
Figura 1. 3 Robot SMA-V3R:T 13
Figura 1. 4 Esquema del robot SMA-V3R:T para Matrices Homogneas 14
Figura 2. 1 Simulacin para la comparacin de modelos 52
Figura 2. 2 Modulo Ejecucin 53
Figura 3. 1 Definicin de Morfologa de robots. 58
Figura 3. 2 Proyecciones grficas del robot 60
Figura 3. 3 Ventana de parmetros de D-H. 61
Figura 3. 4 Ventana de datos para el mtodo de cuaternios 62














INTRODUCCION


Este trabajo de investigacin describe dos mtodos para la representacin
del movimiento en la robtica: El mtodo de matrices homogneas que es
uno de los ms estudiados y documentado de los mtodos de
representacin, el otro mtodo es el que aplica los conceptos del lgebra
de cuaternios de Hamilton, que aunque existe documentacin sobre
cuaternios no se profundiza de manera explicativa en la aplicacin de la
tecnologa robtica.


Este documento aborda los temas de representacin de movimiento y su
comparacin en trminos de eficiencia computacional basados en un
desarrollo de una herramienta software que aplica los conceptos
matemticos de desarrollo de modelos geomtricos.


El documento esta organizado por captulos as: En el captulo introductorio
se hace una somera introduccin de la robtica y se describen los
objetivos propuestos para esta investigacin. El primer captulo aborda los
conceptos de modelos geomtricos para los mtodos de matrices
homogneas y el lgebra de cuaternios. Estos modelos se desarrollan paso
a paso teniendo como base de estudio un robot de cuatro grados de
libertad. Para el mtodo de cuaternios se describe un marco terico
importante para el entendimiento de los conceptos aplicados en este
trabajo. El segundo captulo centra su desarrollo en la comparacin de los
dos mtodos con el objeto de revisar la eficiencia de cada uno de ellos. El
tercer captulo describe los conceptos de desarrollo de la aplicacin y
bosqueja la funcionalidad del mismo.


INTRODUCCIN A LA ROBOTICA
La palabra robot fue usada por primera vez en 1921 en una obra
denominada Rossums Universal Robot (R.U.R.), obra escrita por el checo
Karen Capek (1890 1938). Esta palabra tiene sus orgenes en la palabra
robota que significa trabajo realizado de manera forzada.


2
Isaac Asimov (1920 1992) fue quien mas popularizo la palabra robot
usndola en su novela de ciencia ficcin Robots e Imperio publicada en
1985. Asimov public las cuatro leyes de la robtica que son:


1. Un robot no puede perjudicar un ser humano o por falta de accin
que un humano sufra dao.
2. Un robot siempre debe obedecer a los humanos, a menos que entre
en conflicto con la primera ley.
3. Un robot debe proteger su propia existencia, a menos que este entre
en conflicto con la primera o segunda ley.
4. Un robot no puede lastimar a la humanidad o que por falta de
accin la humanidad sufra dao.


A Asimov se le atribuye el termino robotics traducido al espaol como
robtica, la cual la uso interminablemente en sus obras de ciencia ficcin.


En el ao de 1948 R. C. Goertz creo el primer telemanipulador para
manejar sustancias radioactivas. En 1954 coloco a sus telemanipuladore
servocontroladores elctricos sustituyendo la transmisin mecnica por
elctrica.


Aunque el britnico C. W. Kenward patento el primer robot, este mismo
ao George C. Devol patento un robot el cual fue la base para la
construccin de los robots industriales modernos. Devol se uni a Joseph F.
Engelberg y crearon la primera empresa de construccin de robots
conocida con el nombre de UNIMATION y crearon el robot Unimate que
luego fue llevado por Endelberg al Japn en cuyo pais motivo a la
creacin de la primera asociacin de robtica (JICA) Asociacin de
Robtica Industrial de Japn.


Los robots los podemos clasificar de dos maneras, primero por tipo, segn
la funcionalidad del mismo; segundo, por la generacin segn el avance
tecnolgico que posea dado un entorno o espacio de trabajo.



3
a. Por tipo de robots:

1. Tipo A, Manipuladores controlados manualmente.
2. Tipo B, Manipulador automtico. Control de
movimiento mediante fines de carrera. Controlados
por PLC (Controlador Lgico Programable).
3. Tipo C, Robot programable con trayectoria continua o
punto a punto. No posee interaccin con su entorno.
4. Tipo D, Es el robot Inteligente capaz de interactuar
con su entorno y modificar sus trayectorias segn sean
las respuestas que su entorno emita.


b. Segn la generacin de robots, los podemos clasificar as:

1. Primera Generacin, Las tareas se repiten y son
programados, no poseen ninguna interaccin con el
entorno.
2. Segunda Generacin. Existe interaccin con el
entorno, y adopta su trayectoria como respuesta a los
estmulos recibidos por el entorno.
3. Tercera Generacin. Existe completa interaccin con
el entorno, su programacin se hace en lenguaje
natural y es capaz de planificar sus labores o funciones.


En La dcada de los 80s hubo proliferacin en la industria por la
automatizacin usando manipuladores y algunos robots que se
encargaban de procesos de manufactura de la produccin. La industria
de chips y la fabricacin de automviles se vieron muy influenciados por
esta creciente tecnologa.


Hoy da tenemos robots tan avanzados como el desarrollado por el Centro
de Investigaciones de Inteligencia Artificial (I.A.), en el cual construyeron a
COG. Este es un robot que aprende de su experiencia al interactuar con
su medio. Aunque este robot se construyo con fines de investigacin en
I.A., posee los ms avanzados desarrollos en sensores y materiales de
construccin, as como tambin sus programas que controlan los
movimientos del mismo.

4
Otro robot destacable por su avanzado desarrollo es el construido por
corporacin HONDA, el cual tiene una apariencia humanoide y puede por
si mismo recorrer pasillos sin chocarse, abrir y atravesar puertas, arrastrar
carros de supermercados, usar herramientas, bajar y subir escaleras. Este
tambin posee avanzados sistemas sensoriales que le dan la informacin
necesaria para su toma de decisiones en las acciones que necesite
desempear.


OBJETIVOS
El objetivo principal de este trabajo de investigacin es el de construir una
aplicacin software que aplique los conceptos del lgebra de cuaternios
descubiertos por William R. Hamilton[7] como herramienta matemtica
para resolver los problemas de localizacin de un efector final en un robot.
Para este propsito se hizo necesario establecer algunos objetivos
secundarios los cuales se resumen a continuacin.


1. Establecer un modelo matemtico utilizando la teora de
cuaternios y sus conceptos algebraicos que permitan describir
la localizacin tridimensional del robot SMA-V3R:T.
2. Instaurar una comparacin entre el modelo de cuaternios y el
modelo de matrices homogneas con el fin de establecer cual
ofrece mejor desempeo en trminos de rendimiento
computacional y verificar los conceptos establecidos en la
documentacin encontrada.
3. Escribir los programas para la construccin de la herramienta
software que aplique el modelo basado en cuaternios y
muestre las diferencias entre los dos modelos, el modelo de
matrices homogneas y el modelo de cuaternios.

5
1. MODELAMIENTO GEOMTRICO DE ROBOTS


1.1. INTRODUCCIN
Un robot es una mquina que consta de varios elementos, unos fijos y otros
en movimiento lo cual hace importante conocer en determinado
momento la ubicacin en el espacio tridimensional de sus elementos y ms
concretamente la posicin de la herramienta que manipula conocida en
el mbito de la robtica como efector final.


Existen una variedad de mtodos para establecer las ecuaciones que
describen posicin en el espacio de los elementos del robot. El conjunto
de estas ecuaciones es lo que se conocen como modelo y se describe
como geomtrico porque dichas ecuaciones relacionan las extensiones de
los elementos as como sus relaciones con los ngulos que forman entre
ellos.


En este captulo se revisan dos de estos mtodos; uno como patrn de
comparacin dado que es el ms usado por la tecnologa robtica
denominado Mtodo de Matrices Homogneas, y el otro que se
presenta como alternativa matemtica para la representacin de
posicionamiento conocido como el Mtodo de Cuaternios.


Antes de empezar con el estudio de los mtodos en mencin es necesario
establecer algunos conceptos bsicos sobre estructura de robots y los
movimientos asociados a ellos con el fin de facilitar la comprensin y
aplicacin de estos modelos.


1.2. ESTRUCTURA DE ROBOTS
Cuando se hace referencia a la estructura del robot se esta explicando la
forma como es construida anatmicamente, es decir, como fue diseado
y que clase de articulaciones se usaron para su construccin, ya sea
prismticas, de revolucin o rotacionales. Las estructuras mas conocidas y
que son base para otras topologas son la de configuracin cartesiana que
se caracteriza por tener articulaciones en su totalidad prismticas y dichas
articulaciones forman un sistema de referencia para poder llegar a un

6
volumen de trabajo cbico; La configuracin polar que posee una
articulacin rotacional y un brazo prismtico, su volumen de trabajo es
algo parecido a una semiesfera; La configuracin cilndrica, la cual posee
una columna vertical a la base para que una articulacin prismtica se
deslice verticalmente por esta columna. Normalmente tiene una
articulacin rotacional en la base; entre otras. En este trabajo de
investigacin se aplico los conceptos de modelo geomtrico a un robot de
configuracin de brazo articulado, dado que el tipo de articulaciones que
posee es de revolucin y de rotacin.


1.2.1. Configuracin de brazo articulado. Su estructura esta basada en el
diseo del brazo humano (ver figura 1.1). En este tipo de configuracin es
reconocible un brazo, un antebrazo, una mueca y por ltimo en lugar de
mano posee una herramienta o pinza.




Figura 1.1 Robot angular o antropomrfico (Fuente: Fundamentos de
robtica)


Varios robots disponibles en el comercio tienen la configuracin del brazo
articulado, incluyendo al robot de Cincinnati Micron, el T3-776, este tipo de
robot lo podemos observar con mas detalle en Groover[5]. Una versin
especial del robot del brazo articulado es el SCARA, cuyas articulaciones
de hombro y de codo giran alrededor de ejes verticales. SCARA es la
abreviatura de Selective Compliance Assembly Robot Arm, y esta
configuracin proporciona una importante rigidez para el robot en la
direccin vertical, pero una elasticidad en el plano horizontal. Esto le hace
ideal para muchas tareas de montaje.


7
1.3. REPRESENTACIONES GEOMTRICAS


1.3.1. Mtodo de matrices homogneas. Este mtodo fue usado por
primera vez por Denavit y Hartenberg[4] en los aos 50 para describir el
comportamiento cinemtico de mecanismos simples. Una dcada mas
adelante fue empleado por Pieper[4] para aplicaciones en la robtica y
Paul[4] profundizo luego en sus aplicaciones para el perfeccionamiento de
algoritmos para cinemticas de robots.


Mediante las matrices homogneas es posible representar un punto en un
espacio n-dimensional necesitando una dimensin mas, es decir, un
espacio n-dimensional se encuentra representado en coordenadas
homogneas por n+1 dimensiones. Esto significa que un vector p que en
un espacio tridimensional se representa por sus coordenadas p = ia + jb +
kc, expresado en coordenadas homogneas vendra dado de la forma
p(wx,wy,wz,w), siendo w un factor de escalamiento.


Conociendo la definicin de matrices homogneas se puede introducir el
concepto de matriz de transformacin homognea T, que no es ms que
un operador que se aplica a vectores representados en espacio n-
dimensionales, para el caso de espacios tridimensional la matriz T est
dimensionada como una matriz de 4X4. La matriz es la siguiente:


(

=
(

=
Escalado a Perspectiv
Traslacin Rotacin
w f
P R
T
x x
x x
1 1 3 1
1 3 3 3
[1. 1]


Esta matriz sirve como operador de transformacin tridimensional. En la
ecuacin 1. 1 se puede relacionar cuatro transformaciones, una
transformacin de rotacin, una de traslacin, una de perspectiva y por
ltimo un factor de escalado.

K. S. Fu[4] desarrolla matemticamente la estructura de cada uno de los
componentes de esta transformada y Antonio Barrientos[2] describe de
manera grfica mediante ejercicios la manera como este operador

8
transforma un vector tridimensional segn sus diferentes submatrices de
operadores.

La matriz de transformacin T aplicada a la robtica viene dada de la
forma:


(
(
(
(

=
1 0 0 0
z z z z
y y y y
x x x x
p a o n
p a o n
p a o n
T
[1. 2]


Se considera que la matriz T esta compuesta por cuatro vectores de
columna. Estos cuatro vectores pueden utilizarse para definir la posicin y
orientacin del extremo de un robot. El vector p representa la posicin del
extremo del brazo, es decir, la posicin donde empezara la mueca. Esta
posicin para el caso de este trabajo de investigacin, hace referencia a
la posicin donde se encuentra el final del ltimo eslabn dado que el
robot en el cual se aplic estos conceptos no posee ni mueca ni un
efector final. Dentro de los alcances de este proyecto no se encuentra
definir la orientacin de la herramienta, pero se considera necesario
expresar que los tres vectores n, o y a, especifican la orientacin de esta
herramienta. Al vector a se le denomina vector de aproximacin y apunta
en la direccin de la mueca, el vector o se conoce como vector de
orientacin y especifica la orientacin de la mano desde un dedo al otro,
esto suponiendo que se tiene como efector final un pinza. El tercer vector
n, es el vector normal a a y o. Los tres forman un sistema de referencia de
coordenadas relativo al sistema de coordenadas base del robot.
Grficamente estos vectores los podemos ver en la figura 1. 2.


9
Z0
X0
Y0
n
o
a
p


Figura 1. 2 Vectores o, a, n, p para un manipulador de robot


La posicin del extremo de un robot se puede describir como el producto
de n transformaciones homogneas, una por cada una de las
articulaciones que tenga el robot. Si bien los procesos descritos en casi
todas las referencias que tratan sobre el tema de posicionamiento de
robots aluden a que existe n nmero de transformaciones, siendo n el
nmero de articulaciones, para el caso de esta investigacin se modifico
este estndar con el fin de darle claridad al proceso de ubicacin de
cada eslabn. El caso se presenta por la misma anatoma que este robot
presenta. Si bien era posible usar otras alternativas para resolver este
problema, se tomo la decisin de acoger este cambio en la metodologa
dado que resultaba relativamente fcil ubicar cada uno de los extremos
de cada eslabn con el fin de hacer su representacin grfica en cada
uno de los movimientos que se fueran programando dado que se tiene
conocimiento de la posicin tridimensional de cada uno de los eslabones
con referencia al eje de coordenadas base, es decir, es posible que
conocer el estado en el tiempo de cada articulacin y de cada eslabn.
Para fines prcticos es importante este tipo de informacin ya que se
podra, con un poco ms de desarrollo empezar a conocer la trayectoria
basada en un sistema de referencia base. Se quiere aclarar que para
conocer las trayectorias de trabajo de un robot es importante tener un
claro conocimiento de toda la cinemtica del robot, entendiendo que no

10
solamente se necesita conocer los parmetros morfolgicos del robot si no
tambin las velocidades con los que cada una de las articulaciones rota.


En la literatura sobre el uso de las matrices homogneas para describir los
modelos matemticos de robots siempre se trata el tema de la
metodologa usada en los aos 50 por Denavit y Hartenberg (D-H). Ellos
usaron las transformaciones homogneas asociando a cada uno de las
articulaciones un sistema coordenado que se referencia con el sistema
coordenado de la articulacin anterior. De esta manera mediante
transformaciones sucesivas era posible encontrar una matriz homognea
de 4x4 que representara todos los movimientos que se hicieran sobre las
articulaciones del robot. Una profundizacin sobre este tema se puede
encontrar en el libro de K. S. Fu [4].


D-H describen en su metodologa cuatro variables necesarias para armar
cada una de las matrices de trasformacin las cuales se extraen del
proceso de relacionar las diferentes transformaciones. Las variables son las
siguientes las que se relacionan en la tabla 1. 1


Tabla 1. 1 Parmetros de las matrices de transformacin homogneas
i

Es el ngulo de la articulacin del eje xi-1 al eje xi respecto del eje zi-1.
Este ngulo representa el movimiento que puede tener una
articulacin en uniones de tipo rotacionales, cuando la unin o
articulacin es prismtica, este ngulo es cero.
i
d

Es la distancia que existe desde el centro de un sistema de
referencia al siguiente centro sistema de referencia guiados por el
eje z del primer sistema de referencia. Es importante que los dos
sistemas estn perfectamente alineados.
i
a
Es la distancia de separacin desde la interseccin del eje zi-1 con el
eje xi hasta el origen del sistema i-simo a lo largo del eje xi, es
decir, la distancia mas corta entre los ejes zi-1 y zi, siempre y cuando
estn alineados
i

Es el ngulo de separacin del eje zi-1 al eje zi respecto del eje xi.



11
Para construir cada una de las matrices de transformacin que relacionen
consecutivamente cada uno de las articulaciones y el fin del ltimo
eslabn con la el sistema de coordenadas base es necesario realizar los
siguientes movimientos entre ejes:


1. Una rotacin del ngulo
i
alrededor del eje zi-1.
2. Una traslacin de distancia
i
d
a lo largo del eje zi-1.
3. Una traslacin a lo largo del xn en una longitud
i
a .
4. Una rotacin alrededor del eje xn en un ngulo
i
.


Utilizando las transformaciones definidas con anterioridad para la rotacin
y traslacin, se puede desarrollar la transformacin que relaciona el
sistema de referencia de coordenadas del enlace i con el enlace i-1.


Denominaremos A como la matriz de transformacin homognea para
cada unin, y vendr dada de la siguiente forma:


(
(
(
(

1 0 0 0
cos sin 0
sin cos sin cos cos sin
cos sin sin cos sin cos
1
d
a
a
A
i
i



[1. 3]


Comos se ha sealado la matriz A representa la transformacin de rotacin
y traslacin entre dos sistemas de coordenadas. Si cada uno de ellos lleva
asociado una articulacin del robot, se puede describir la posicin de la
primera articulacin, respecto al sistema de coordenadas base x0 y0 z0 con
la matriz
0
1
A ; la posicin y orientacin de la segunda articulacin con la
matriz
1
2
A ; y as sucesivamente por cada una de las articulaciones.



12
Podemos entonces definir la matriz general de transformaciones T como la
multiplicacin ordenada y consecutiva de las diferentes matrices
homogneas del robot como lo se observa en la frmula 1. 4.



=
i
i
A T
1
[1. 4]


1.3.2. Definicin del robot SMA-V3R:T. Se usar el robot SMA-V3R:T (Sistema
Mecnico Automatizado - iniciando con una articulacin de reVolucin,
seguido de 3 GDL Rotacionales y terminando con una articulacin de
Torsin.) para el desarrollo del trabajo de investigacin.


El robot fue construido por el Ingeniero Carlos Gerardo Hernndez
Capacho, profesor de la Universidad Pontificia Bolivariana seccional
Bucaramanga. Este prototipo posee 4 grados de libertad, con un quinto en
la mueca para dar posibilidad de adicionar un efector final accionado
por este ltimo servomotor. Adems de su estructura mecnica, posee una
tarjeta electrnica que sirve como interfaz entre los servomotores del robot
y un PC (computador personal), provista de un microcontrolador que se
comunica con un PC por el puerto serial (RS232). La programacin del
microcontrolador esta desarrollada por este mismo ingeniero y existe un
mdulo software que se instala en el PC para facilitar el envo de
informacin necesaria que debe ser suministrada al controlador para
accionar los servomotores. En la figura 1. 3 observamos una fotografa de
este prototipo.



13


Figura 1. 3 Robot SMA-V3R:T


1.3.3. Definicin del modelo matemtico por matrices homogneas. Para
definir el modelo matemtico es necesario hacer la aclaracin de la
modificacin hecha para este trabajo de investigacin con referencia al
modelo plantado por D-H en su algoritmo. La diferencia estriba en que
para el modelo D-H el sistema de referencia base, es decir, el sistema x0 y0
z0 se encuentra ubicado en la primera articulacin, de tal modo que el
primer ngulo esta referenciado con el sistema base, el segundo ngulo se
referencia con el sistema x1 y1 z1, y as sucesivamente. Para el caso de este
trabajo y dado la morfologa de nuestro robot de ejemplo, la base tiene
una altura considerable y es fija, lo que implica que no existe un ngulo
que relacione algn movimiento.


Aunque sera posible utilizar el mtodo D-H para este trabajo y al final
hacer las operaciones necesarias para ajustar su posicin, se considero
necesario desarrollar una herramienta que permitiera cierto grado de
flexibilidad en el momento de calcular las posiciones. Esto implica que el
programa ofrece la facilidad de construir un robot de diferentes grados de
libertad, con la restriccin que estos grados de libertad deben ser en su
totalidad rotacionales. Otra restriccin es que puede calcular solo robots

14
hasta con cinco grados de libertad, pero este inconveniente es fcilmente
ajustable mediante pequeos cambios en la programacin.


En la figura 1. 4 se muestra un esquema grfico del robot, y la ubicacin de
los sistemas de referencia mencionados anteriormente.


Z0
X0
Y0
Z0
X0
Y0
Z1
X1
Y1
Z2
X2
Y2
Z5
X5
Y5
Z3
X3
Y3
Z4
X4
Y4




Figura 1. 4 Esquema del robot SMA-V3R:T para Matrices Homogneas



15
Las matrices de transformacin homogneas son las siguientes:


(
(
(
(

=
1 0 0 0
19 1 0 0
0 0 1 0
0 0 0 1
0
1
A [1. 5]


(
(
(
(


=
1 0 0 0
4 1 0 0
sin 15 0 cos sin
cos 15 0 sin cos
1
2


A [1. 6]


(
(
(
(

=
1 0 0 0
1 0 1 0
sin 9 cos 0 sin
cos 9 0 sin cos
2
3


A [1. 7]


(
(
(
(


=
1 0 0 0
0 1 0 0
sin 8 0 cos sin
cos 8 0 sin cos
3
4


A [1. 8]


(
(
(
(


=
1 0 0 0
0 1 0 0
sin 8 0 cos sin
cos 8 0 sin cos
4
5


A [1. 9]


Como se puede observar en la frmula 1. 6, la matriz no posee ningn
parmetro con relacin a los ngulos antes mencionados, esto debido a

16
que este sistema de referencia base no esta ubicado en ninguna de sus
articulaciones y solo sirve para relacionar la longitud del eslabn, aunque
en el software es posible parametrizar este mismo sistema de referencia
inicial con un ngulo si as lo requiere el robot que se desea simular.


Usando la frmula 1. 4 se calcul la matriz T para conocer la matriz
homognea que relaciona todas las transformaciones. No se multiplic
una a una consecutivamente sino que se dividi en dos submatrices para
despus multiplicar estas dos submatrices y obtener T como se observa en
la frmula 1. 10. Las submatrices se calcularon de la siguiente manera:


2 1
4
5
3
4 2
2
3
1
2
0
1 1
T T T
A A T
A A A T
=
=
=
[1. 10]


El resultado de la operacin de multiplicacin de matrices es el siguiente:


( ) ( ) ( )
( ) ( ) ( )
(
(
(
(

+ + + +
+ + + +
=
1 0 0 0
22 0 1 0
sin 15 sin 9 cos 0 sin
cos 15 cos 9 sin 0 cos
1


T [1. 11]


( ) ( ) ( )
( ) ( ) ( )
(
(
(
(

+ + + +
+ + + +
=
1 0 0 0
0 1 0 0
sin 8 sin 8 0 cos sin
cos 8 cos 8 0 sin cos
2


T [1. 12]


( ) ( ) ( ) ( ) ( ) ( ) ( ) [ ] { }
( ) ( ) ( ) ( ) ( ) ( ) ( ) [ ] { }
( ) ( ) ( ) [ ]
(
(
(
(

+ + + + +
+ + + + + + + + + +
+ + + + + + + + + +
=
1 0 0 0
22 sin sin 8 0 cos sin
sin 15 9 cos cos 8 sin cos sin sin cos sin
cos 15 9 cos cos 8 cos sin sin cos cos cos



T
[1. 13]


17

De esta manera obtenemos las ecuaciones para la orientacin y la
posicin del robot. La ltima columna de la matriz T, es decir el vector (px,
py, pz) representan la posicin del ltimo sistema de referencia con
respecto al sistema base, el cual esta ubicado en la base del robot. El
conjunto de estas ecuaciones me representan el modelo matemtico que
estbamos calculando.


Las ecuaciones son las siguientes:


( ) ( ) [ ] { }
( ) ( ) [ ] { }
( ) [ ] 22 sin sin 8
sin 15 9 cos cos 8 sin
cos 15 9 cos cos 8 cos
+ + + =
+ + + + + =
+ + + + + =



Z
Y
X
[1. 14]


Es importante aclarar que en el desarrollo de la herramienta software no se
programo estas ecuaciones por las razones antes mencionadas, dado que
se pretende dejar una herramienta de simulacin y no un programa para
un solo robot. Este cambio de en el modelo es muy importante cuando se
trata de medir eficiencia computacional y se abarcara con mas detalle en
el prximo captulo cuando se esboce la forma que fueron medidos los
tiempos de desempeo.


1.3.4. Mtodo de cuaternios de Hamilton.


lgebra de Cuaternios. El trabajo realizado por Hamilton en relacin
con los cuaternios, lo inicio a partir de los nmeros complejos. Lo que ms
le llamo la atencin al seor William Roman Hamilton fue como la
multiplicacin entre nmeros complejos se relacionaban con la rotacin
de un vector:


Si tenemos un vector en los ejes coordenados en un sistema imaginario
cuyas coordenadas sean v = (1 , i); es decir, tiene parte real y parte

18
imaginaria, y lo multiplicamos por un imaginario puro i cuyas coordenadas
son i =(0,1), es decir, no tiene parte real. Realizando la multiplicacin
obtenemos un vector v de coordenadas (-1, i), es decir que su parte real
cambio y reproduce en el plano una rotacin de /2 radianes.


Para que este descubrimiento fuera realmente til era necesario pasarlo al
espacio tridimensional, pero no fue fcil hallar la solucin que bajo la
similitud del trabajo con nmeros complejos sirviera para el dimensional en
R
3
. Luego, Hamilton propuso colocarle una dimensin ms dando origen
as a los cuaternios y realiz su lgebra basada en el lgebra de nmeros
complejos, dado que estos nmero son una extensin de los nmeros
complejos, se denominaron hipercomplejos.


En este contexto podramos pensar que los nmeros reales son nmeros
hipercomplejos de rango 1. Se debe recordar que los nmeros reales
cumplen con las propiedades de campo bajo las operaciones de suma y
multiplicacin. Adems, podemos ver los nmeros complejos como
nmeros hipercomplejos de rango 2 y tratando a los nmeros reales como
un subconjunto de los nmeros complejos en el cual su parte imaginaria es
cero. Los nmeros complejos tambin satisfacen las propiedades de
campo.


Las propiedades de campo las podemos resumir de la siguiente manera:


1. Debe ser cerrado para la suma y para la multiplicacin.
2. Asociativa tanto para la suma como para la multiplicacin.
3. Conmutativa tanto para la suma como para la multiplicacin.
4. Que exista el inverso multiplicativo y el aditivo.
5. Que exista la idntica para la suma y la multiplicacin.
6. Que la multiplicacin sea distributiva sobre la adicin.


Estas propiedades son las que sostienen una estructura algebraica y los
cuaternios cumplen con todas las propiedades menos con la tercera ley,
pues no es conmutativa para la multiplicacin.


19
Resulta, sin embargo que, cualquier conjunto de nmeros hipercomplejos
que tenga un rango mayor que 2 no satisface las propiedades de campo.


En 1843 Hamilton invent los llamados nmeros hipercomplejos de rango 4
a los cuales l les dio el nombre de Cuaternios. Crucial para este invento
fue la regla i
2
= j
2
= k
2
= ijk = 1; se debe tener cuidado que la regla
expresada es productos entre cuaternios, en ningn momento expresan
productos punto entre vectores. Aunque los nmeros hipercomplejos de
rango 1 hasta n pueden ser definidos, dada la complejidad de su lgebra
se han encontrando pocas aplicaciones.


El conjunto de cuaternios con sus dos operaciones de suma y
multiplicacin forman un sistema matemtico denominado anillo, mas
concretamente un anillo no conmutativo en la suma. Esto quiere
enfatizar que el producto en los cuaternios no es conmutativo.


En resumen: El conjunto de los cuaternios bajo las operaciones de suma y
la multiplicacin satisfacen todos los axiomas de campo excepto para la
ley conmutativa de la multiplicacin.


Definicin de Cuaternios. As como para el espacio tridimensional
escribimos sus vectores con una tripleta de nmeros reales (que son
escalares), para los cuaternios tomamos cuatro triples de nmeros reales,
denominando a q como un cuaternio. Este cuaternio quedar descrito
como: q = (q0, q1, q2, q3); donde q0, q1, q2, q3 son simples nmeros reales.


Para explicaciones posteriores se tomar los cuaternios con una
descripcin que ayudar con las operaciones subsecuentes. Los
cuaternios tambin se pueden describir particionndolo en dos; una parte
real q0 y una parte vectorial q = i q1 + j q2 + k q3. Estos tres componentes
son similares a las bases ortonormales en R
3
.


Ahora bien, se define un cuaternio como la suma de su parte real, con su
parte vectorial

20


3 0 0 2 1
4 4 4 3 4 4 4 2 1
)
)
q
q k q j q i q q q q q + + + = + = [1. 15]


Definidos de esta manera, los cuaternios son objetos extraos
matemticamente. La suma de un escalar por un vector en algunas
ocasiones no esta definido como esta en el lgebra lineal ordinaria. Se
deben dar algunos significados en estas definiciones para mostrar como los
cuaternios deben ser sumados y multiplicados.


Igualdad y Suma. Dos cuaternios son iguales si y solo si sus
componentes son exactamente las mismas


Sea p = p0 + i p1 + j p2 + k p3 y q = q0 + i q1 + j q2 + k q3


Entonces p y q son iguales si:


P0 = q0; p1 = q1; p2 = q2; p3 = q3


Ahora la suma est definida as:


p + q = (p0 + q0) + i (p1 + q1) + j (p2 + q2) + k (p3 + q3) [1. 16]


La adicin para los cuaternios definida de esta manera, funciona de la
misma manera como si fueran tripletas de nmeros reales y estos cumplen
con las propiedades de campo. Se destaca que la suma de dos
cuaternios da como resultado otro cuaternio, esto significa que es cerrado
bajo la suma. Tambin existe el cuaternio cero, en el cual cada
componente de un cuaternio es cero. Mas an cada cuaternio tiene un
negativo o inverso aditivo, denotado como -q, en el cual cada

21
componente del cuaternio es el negativo que corresponde a cada
componente de q. Adems es fcil verificar que la suma de cuaternios
es conmutativa y asociativa, porque la suma de nmeros reales tiene estas
propiedades.


Multiplicacin. De la misma manera como se realiza en R
3
, el
producto de un escalar por un cuaternio esta definido de una manera
similar. Si C es un escalar y q es el cuaternio q = q0 + i q1 + j q2 + k q3,
Entonces el producto del cuaternio q por el escalar C est dado por:


3 2 1 0 cq k cq j cq i q C C + + + = q [1. 17]


Se debe notar que la multiplicacin de un escalar por un cuaternio da
como resultado otro cuaternio. Esto significa que la multiplicacin por
escalar es un conjunto cerrado.


Por definicin podemos escribir la multiplicacin de dos cuaternios como:


cin multiplica la definida
tenemos cuaternio del vectorial parte la son q y p donde p p p y q q q Sea , , 0 0
) ) ) )
+ = + =

q p p q q p q p q p
) ) ) ) ) )
+ + + = 0 0 0 0 q p [1. 18]


Si tomamos r como el resultado de la multiplicacin de los cuaternios p y q
podemos rescribir la ecuacin 1. 18 como:


1 3 1 2 2 1 3 0 3
1 3 0 2 3 1 2 0 2
2 3 3 2 0 1 1 0 1
3 3 2 2 1 1 0 0 0 0
q p q p q p q p r
q p q p q p q p r
q p q p q p q p r
q p q p q p q p r r r
+ + =
+ =
+ + =
= + = =
)
r q p
[1. 19]
Escribindolo matricialmente:


22

(
(
(
(

(
(
(
(


=
(
(
(
(

3
2
1
0
0 1 2 3
1 0 3 2
2 3 0 1
3 2 1 0
3
2
1
0
q
q
q
q
p p p p
p p p p
p p p p
p p p p
r
r
r
r
[1. 20]


Se debe recordar finalmente que en lo concerniente a la suma, los
cuaternios satisfacen todas las propiedades de campo. Adems hay que
recordar que el conjunto de los cuaternios es un anillo no conmutativo
para la divisin; lo que significa que todas las propiedades de campo se
satisfacen, excepto para la multiplicacin que es no conmutativa. Para
ver que esto esta realmente bien, Se necesita hacer un poco mas de
comentarios sobre el producto de cuaternios.


Primero, el producto de cuaternios es otro cuaternio con su parte escalar y
su parte vectorial, as el conjunto de los cuaternios es cerrado bajo la
multiplicacin as como tambin bajo la suma. Adems el producto entre
cuaternios es asociativo. Ms an, el producto cruz no es conmutativo y
por ende el producto entre los cuaternios tampoco. Para el lgebra de
cuaternios es lo nico que no cumple dentro de las propiedades de
campo, es decir, los cuaternios no cumplen con las propiedades de
campo en la multiplicacin debido al producto que los secunda.


Finalmente debemos recordar que un cuaternio no cero, posee inverso
multiplicativo como se mostrar en las prximas tres secciones. Esto
finalmente completa la justificacin que el conjunto de los cuaternios
verdaderamente es un anillo no conmutativo para la divisin.


Conjugada Compleja. Un importante concepto algebraico
relacionado con los cuaternios es el nmero complejo ordinario, este
concepto se usa para poder definir el conjugado complejo de un
cuaternio.

Sea 3 2 1 0 0 q k q j q i q q q + + + = + =
)
q


23


Se define la conjugada del cuaternio q como:


3 2 1 0 0 q k q j q i q q q q = =
)
[1. 21]


Como un ejemplo del uso del producto de cuaternios podemos mostrar
que para cualquier dos cuaternios, la conjugada compleja del producto
de cuaternios es igual al producto de las conjugadas complejos
individuales en orden inverso.


= p q pq) ( [1. 22]


Se debe notar tambin que para cualquier cuaternio p, la suma con su
propio conjugado complejo, da como resultado un escalar.


0 2 p p p = + [1. 23]


La Norma. La norma de un cuaternio definido por N(q) o |q|,
algunas veces llamado la longitud del cuaternio es el escalar definido
por:


q q N

= = q q) (
[1. 24]


Se cumple adems que


2
q q q q q = =

[1. 25]


24
Usando la definicin de cuaternios en la multiplicacin y conociendo el
hecho que 0 = q q
) )
q
)
es el vector del cuaternio, nosotros podemos
calcular:


( )
2
2
3
2
2
2
1
2
0
2
0
0 0
2
0
0 0 0 0
0 0
2
) (
) ( ) ( ) (
) ( ) (
) ( ) (
q
q q q q
q q q
q q q q q q q q q
q q q q q q q q q q
q q q q
q q N
=
+ + + =
+ =
+ + =
+ + + + =
+ =
=
) )
) ) ) ) ) )
) ) ) ) ) )
) )
q
[1. 26]


Note que esta definicin es la misma que usamos para un vector en
4
. En
lo que sigue del informe se trabajar con cuaternios de norma |q|=1.


Se observa que si un cuaternio tiene su norma igual a 1, significa que todos
sus componentes son menores o iguales a 1. Cuando su norma sea igual a
1 se estar tomando como referencia la componente por la suma del
cuadrado. Este proceso se conoce como la normalizacin del vector, as
mismo se denominar a un cuaternio que tenga sus componentes
normalizados como cuaternio normalizado.


Inversa de un cuaternio. Usando los conceptos de cuaternio
complejo y la norma del cuaternio, se puede mostrar que cualquier
cuaternio diferente de cero q 0 posee inverso.

1
1 1
= =

q q q q [1. 27a]


Multiplicando por q*



25
2
1
2
1
1 1
q
q
q
q q q
q q q q q q q

=
=
= =


[1. 27b]


Se nota que en caso de que el cuaternio sea normalizado, es decir, que su
norma N(q)=1 entonces =

q q
1



Interpretacin Geomtrica. Se debe recordar que una rotacin en

3
puede ser representado por una matriz de 3 x 3 la cual debe ser
ortogonal y su determinante debe ser 1. Alternativamente cualquier matriz
A puede ser interpretada geomtricamente como un operador rotacional
en
3
. Para encontrar el vector w, el cual es la imagen del vector v bajo
una rotacin, nosotros simplemente representamos el vector v como una
matriz columna cuyas entradas son las componentes del vector v y la
multiplicamos por la matriz de rotacin. As, en forma matricial, la rotacin
viene dada por la ecuacin:


v w A =
[1. 28]


Tambin se demostr que el producto de una secuencia de
multiplicaciones de operadores rotacionales da como resultado otro
operador rotacional.


Es bien conocido que los cuaternios juegan un papel importante en una
forma alternativa de operadores de rotacin, un papel bien diferente a las
ya conocidas matrices de rotacin. Adems, los cuaternios pueden ser
muy eficientes en ciertas situaciones las cuales involucran rotaciones en
3
.
Despus de todo un cuaternio esta formado por 4 componentes, mientras
que una matriz rotacional tiene nueve componentes. Se esbozar una
explicacin de cmo los cuaternios geomtricamente llegan a representar

26
una rotacin. Se llegar a una definicin para un operador de cuaternio
que pueda ser interpretado como un operador rotacional en
3
.


Consideraciones Algebraicas. Para las consideraciones algebraicas
se enfocaran los esfuerzos en desarrollar mtodos matemticos para
determinar la orientacin de un objeto en un espacio tridimensional, esto
es, en
3
. Un objeto en
3
puede ser considerado como un punto en
3
.
Se puede identificar estos puntos como vectores en
3
. As que la
orientacin del objeto puede ser estudiado por el desarrollo apropiado de
operaciones en esos vectores.


Si se esta de acuerdo en conseguir esta meta representada en un
operador definido en trminos de cuaternios, es razonable comenzar por
definir cmo puede un cuaternio el cual vive en
4
operar en un vector el
cual vive en
3
.


La respuesta a esta pregunta es que un cuaternio q
4
cuya parte real
sea cero puede ser tratado como un vector en
3
.


Los cuaternios cuya parte real es cero se les conocen como cuaternios
puros y son un subconjunto de los cuaternios.


Si se define a Qo como un subconjunto de cuaternios puros, podemos
definir una correspondencia uno a uno entre el subconjunto Qo y los .
Esta correspondencia en el cual un vector v
3
corresponde a un
cuaternio puro v
)
+ =0 v ; esto es:

Q Qo v v + =
)
0
3
v [1. 29]


En trminos algebraicos, con respecto a la suma, esta correspondencia
uno a uno se le conoce en el mbito matemtico como un isomorfismo.



27
Es fcil demostrar que con respecto a la suma y a la multiplicacin por un
escalar, la correspondencia se da. Por ejemplo; la suma de cualquier dos
vectores en
3
corresponde a la suma de los componentes de un
cuaternio puro correspondiente con estos vectores.


Ahora, se puede suponer que un operador rotacional, el cual esta definido
en trminos de cuaternios tiene la misma forma que el operador rotacional
de matrices. Si es as, esto significara que un cuaternio q Q de algn
modo representa una rotacin, y que podramos encontrar la imagen w

3
de algn vector v
3
usando la ecuacin 1. 28.


Esta regla, por supuesto, significara que el producto de un cuaternio q con
un vector v estara definido siempre y cuando el resultado de dicho
producto sea otro vector. Para definir el producto de un cuaternio por un
vector, se hace posible usando la correspondencia uno a uno visto
anteriormente. Para poder multiplicar q por v, es necesario usar el
correspondiente v en el subconjunto Qo, esto es v
)
+ =0 v y ahora si
podemos multiplicarlos


v q v q v q
v q q v q v q v q q
v q q
) ) ) ) )
) ) ) ) ) ) )
) )
+ + =
+ + + + =
+ + =
0
0 0 0
0
0 0
) 0 )( ( v q
[1. 30]


Esta operacin muestra que el resultado no necesariamente esta siempre
en Qo. Esto es, en general, que el resultado no corresponde a un vector en

3
, excepto en el caso especial cuando q y v sean ortogonales q . v = 0.

Como se puede observar el simple producto qv no funciona y debera ser
claro que el producto vq tampoco trabajara. Es por esto que se estudio la
posibilidad de una multiplicacin de factores con tres elementos, es decir,
con tres cuaternios. Para poder multiplicar los tres cuaternios, llamaremos
p al cuaternio puro que representara al vector que queremos rotar y
tendremos dos cuaternios generales q y r que pertenecen al conjunto Q,
existen seis posibilidades, combinarlos para la multiplicacin.


28

pqr qrp rpq
pqr qpr rqp


Ahora, una de las propiedades algebraicas de los cuaternios es que el
conjunto Q es cerrado bajo la multiplicacin. Aunque el subconjunto Qo
no lo es.


Se Observa que el producto q r y r q son simples cuaternios, eso significa
que los cuatros productos que contienen esta secuencia son productos
dobles. Se observa entonces que tales productos no son adecuados
para la definicin de operador que estamos buscando y por esto debemos
descartar estas posibilidades.


Dado que no se hace distincin entre los cuaternios r y q, esto da la
posibilidad de que sean iguales y en este caso, que es el que nos interesa,
no modificara en nada el operador


r r q q p
) ) )
+ = + = + = 0 0 , , 0 r q p [1. 31]


43 42 1
)
) ) )
3 2 1
) )
) ) ) ) ) ) ) )
k
q p p q
k
q p
q p p q q q p q q q p
+ + =
+ + + = + +
0
0
0 0 0 0 0 ) )( 0 (
[1. 32]
Q r q p r p q q p r
Q r q p p q r q p
r k k r r k r k r k r r k k
+ =
+ + =
+ + + = + +
) ) ) ) ) ) )
) ) ) ) ) )
)
) )
) )
)
)
)
) ( ) ( ) (
) ( ) (
) )( (
0 0
0 0
0 0 0 0 0 0
[1. 33]


Cuando r y q son iguales


r r r r
r r r r r r r r r r r r r
)
) ) ) ) ) ) ) )
0
2
0
0 0 0 0 0
2 2
2 ) )( (
+ =
+ + + = + +

[1. 34]

29


Es decir, la nica oportunidad es que el producto qpr o rpq funcionen.
Ahora si se hace


r r y q q p
) ) )
+ = + = + = 0 0 , 0 r q p [1. 35]


La multiplicacin de los cuaternios se puede llegar a obtener que la parte
real del cuaternio resultante es igual a


r p q r p q q p r
) ) ) ) ) ) )
) ( ) ( ) ( 0 0 [1. 36].


Cambiando el ltimo trmino segn el lgebra vectorial podemos
reescribirlo como:


p r q r p q q p r
) ) ) ) ) ) )
+ ) ( ) ( ) ( 0 0 [1. 37]


Se debe recordar que el resultado de las multiplicaciones debe ser un
cuaternio puro, esto significa que la parte real debe ser cero. Para llegar a
este resultado se tiene primero que hacer r0=q0 y la ecuacin queda:

q r si p r q p r q q
p r q q
r q p r q p r q p q
r p r p r p q p q p q p q
p r q r p q p q
p r q r p q q p q
) ) ) ) ) ) ) )
) ) )
) ) ) ) ) ) )
) ) ) ) ) ) )
= + + =
+ =
+ + + + + =
+ + + + + =
+ + =
+ =
(

cero es solo esto ) ( ) (


) (
) ( ) ( ) (
) ( ) ( ) (
) ( ) ( ) (
0
0
3 3 3 2 2 2 1 1 1 0
3 3 2 2 1 1 3 3 2 2 1 1 0
0
0 0
[1. 38]


Ahora segn las condiciones para que esta parte real sea cero son:


30

q r y q r
) )
= = 0 0 [1. 39]


Y si reescribimos r, tenemos


= = + = q r q q r r r r 0 0
)
[1. 40]


Entonces la triple multiplicacin de los cuaternios sera


pq q o q p q [1. 41]


y como p nos representa el cuaternio v
)
+ = 0 v tenemos que la imagen w
en el campo de los cuaternios cuya parte real es cero, esta dado por la
ecuacin:


= q v q w o q v q w = [1. 42]


Este w estara representando en el campo de los reales un vector.


Consideraciones Geomtricas. La bsqueda para la interpretacin
geomtrica del producto triple de cuaternios de las ecuaciones anteriores
nos conduce a revisar si existe alguna manera para asociar un ngulo con
un cuaternio, anlogo a la manera como se asocia un ngulo con una
matriz de rotacin. Si se asume que esto es verdadero, desde este punto
de vista el cuaternio q usado para definir el operador sera siempre un
cuaternio unitario o normalizado, esto es un cuaternio con norma 1.


Se debe recordar que un cuaternio q q q
)
+ = 0 que en efecto tenga una
norma de 1, viene dado de la forma 1
2
2
0 = + q q
)



31

Sin embargo, para cualquier ngulo nosotros conocemos que:
cos
2
+sen
2
=1. Si asemejamos los trminos de las dos ecuaciones tenemos:


2
0
2
cos q = y
2
2
sen q
)
= [1. 43]


Este ngulo puede ser definido nicamente si nosotros colocamos las
restricciones apropiadas para este dominio, en general nosotros debemos
exigir que satisfaga la restriccin - < .


Definido su dominio, podemos asociar el ngulo con el cuaternio.
Supongamos que definimos , vector unitario, el cual representa la
direccin q unitario, se tiene entonces:


sen cos
sen
0 u q q q
q
q
q
u + = + = = =
)
)
)
)
[1. 44]


Observemos que para un cuaternio escrito de esta forma, sustituyendo
por -, nosotros obtenemos el conjugado complejo de q. Esto es:


= + q u u ) sin( ) cos( ) sin( ) cos( [1. 45]


Dado este comportamiento nosotros podramos pensar que los cuaternios
estn relacionados de algn modo con las rotaciones en
3
.


1.3.5. Definicin del modelo matemtico por cuaternios. En varias
referencias que trata el tema de cmo calcular la posicin y orientacin
usando la teora del lgebra de Cuaternios; no se encuentra de forma
clara una aplicacin que bosqueje la metodologa usada para desarrollar
las ecuaciones necesarias para el problema en cuestin. Si bien se llega a

32
solucin del problema, no se especifican algunos pasos importantes para
entender el proceso seguido.


En esta investigacin se desarrolla una metodologa basada en algunas
indicaciones segn la bibliografa descrita usada en este trabajo y se deja
documentado el proceso con el fin de que se visualice de manera sencilla,
paso a paso, cmo se encontr el modelo matemtico.


Las soluciones propuestas por otros autores normalmente basan su
metodologa partiendo de los parmetros establecidos en el desarrollo de
D-H, esto significa que se hace necesario seguir paso a paso este desarrollo
y se debe tener en cuenta todas las indicaciones necesarias para
encontrar estos parmetros, tal como la posicin de cada sistema de
referencia para cada una de las articulaciones y adems una indicacin
muy clara que es la de que los ejes de rotacin, deben coincidir con el eje
z del sistema de coordenadas. Esto es importante en el momento de
considerar el procedimiento para aplicar los cuaternios, dado que
dependiendo del eje de rotacin de la articulacin, el cuaternio que
representa la rotacin varia dependiendo de dicho eje.


Para empezar el desarrollo del modelo matemtico es necesario
especificar la manera como se tomaron los ejes coordenados de cada
articulacin. Al igual que el mtodo usado con matrices homogneas, se
ubic el eje base en la base del robot y el ltimo sistema coordenado se
ubic al final del ltimo eslabn. En cada una de las articulaciones se
estableci su respectivo sistema de coordenadas, pero con la diferencia
de no hacer coincidir el eje de rotacin con el eje z, es decir, no se tuvo en
cuenta la restriccin de D-H de hacer coincidir el eje z con el eje de
rotacin de la articulacin. Esto lo podemos observar en la figura 1. 5.



33
Z0
X0
Y0
Z0
X0
Y0
Z1
X1
Y1
Z2
X2
Y2
Z5
X5
Y5
Z3
X3
Y3
Z4
X4
Y4


Figura 1. 5 Esquema del robot para el modelo de cuaternios


Los cuaternios podemos describirlos como una suma de componentes, un
componente real y otro componente vectorial como se observa en la
ecuacin 1. 46, pero los cuaternios cuando se usan dentro de un operador
de rotacin se denotan de la siguiente forma:


( ) ( ) ( )
2
sin ,
2
cos
0

k =
+ =
q
q q q
)
[1. 46]


De esta asociacin y teniendo en cuenta las propiedades de los cuaternios
se obtiene la herramienta para el tratamiento de rotaciones. Para la

34
utilizacin de los cuaternios en rotaciones se asocia el ngulo como
ngulo de giro sobre el eje k.


Como se vio anteriormente, se puede rotar un vector multiplicando el
vector por su lado derecho por un cuaternio y por su lado izquierdo se
multiplica por el conjugado del mismo cuaternio. La clave es tratar el
vector como un cuaternio puro [0 , v].


Si designamos a v como el vector v rotado, esto es,


Rot(v) = q.v.q = q.v.q [1. 47]


El resultado esperado siempre ser un cuaternio con componente escalar
0.


Basndose en la frmula 1. 46 se puede decir que la representacin de
una rotacin por cuaternios segn el eje de rotacin ser:


( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( )
2
sin , 0 , 0 ,
2
cos
0 ,
2
sin , 0 ,
2
cos
0 , 0 ,
2
sin ,
2
cos



=
=
=
z
q
y
q
x
q
[1. 48]


El mtodo comienza calculando los vectores que definen la posicin y la
orientacin desde el sistema de referencia n al sistema de referencia n-1,
teniendo en cuenta que el primer vector, el cual se denotar para el resto
del documento como el cuaternio (0, an), es (0, 0, 0, 0), es decir, es el
cuaternio cero. La ecuacin que usaremos para calcular a es la siguiente:



35
i
p
i
q
i
a
i
q
i
a + =

) , 0 ( )
1
, 0 (
[1. 49]


Donde i es el nmero de sistema de referencia.


Para este mtodo se dividi el desarrollo en ciclos. Cada ciclo calcula el
paso del sistema n al sistema n-1. Adems es importante tener en cuenta
que en lo que sigue, se hace referencia al coseno de un ngulo como
c([ngulo]) y al seno como s([ngulo]).


Se relacionan a continuacin los cuaternios necesario para el robot de
ejemplo, los cuaternios son:


) 0 0, 0, , (1 Q
) 0 /2), S( 0, /2), C( Q
) 0 /2), S( 0, /2), C( Q
) /2) S( 0, 0, /2), C( Q
) /2) S( 0, 0, /2), C( Q
5
4
3
2
1
=
=
=
=
=




(
(
(
(
[1. 50]


y los vectores que relacionan las distancias entre los sistema de referecia se
describen as:

0) 0, 8, (0, P
0) 0, 8, (0, P
1) 0, 9, (0, P3
4) 0, 15, (0, P
19) 0, 0, (0, P
5
4
2
1
=
=
=
=
=
[1. 51]


Como se haba mencionado antes la condicin inicial para empezar los
ciclos es ( ) ) 0 0, 0, , 0 ( , 0 5 = a .



36
Ciclo 1


Este ciclo representa el paso del sistema S5 al sistema S4.


( ) ( )
) 0 0, 8,
) 0 0, 8, ) 0 0, 0,
) 0 0, 8, ) 0 0, 0, . ) 0 0, 0,
) 0 0, 8, ) 0 0, 0, . ) 0 0, 0, . ) 0 0, 0,
, 0 (
, 0 ( , 0 (
, 0 ( , 1 ( , 0 (
, 0 ( , 1 ( , 0 ( , 1 (
* . , 0 . , 0 5 5 5 5 4
=
+ =
+ =
+ =
+ = P Q a Q a



Ciclo 2


Este ciclo representa el paso del sistema S4 al sistema S3.
( )
( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( ) ( )
( ) ( )
( ) ( )
( ) ( )
( ) ( )
( )
( )
( ) ( )
( ) ( )
( ) ( )
( ) ( )
( )
( )
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )


2 / S 2 / 8C - 2 / C 2 / S
0
2 / S 2 / 8S 2 / C 2 / C 8
0

0
2 / S -
0
2 / C

0 2 / 8C 0 2 / S - 8
2 / 8C - 0 2 / 8S - 0
0 2 / 8S 0 2 / C 8
2 / 8S 0 2 / C 8 - 0
2 / S
2 / C 8
0

0
0
8
0

2 / C 0 2 / S 0 -
0 2 / C 0 2 / S
2 / S 0 2 / C 0
0 2 / S - 0 2 / C
0 /2 S - 0, /2 C . ) 0 0, 8, . 0 /2 S 0, /2 C
) 0 0, 8, 0 /2 S - 0, /2 C . ) 0 0, 8, . 0 /2 S 0, /2 C
P * Q . ) Q (0, . Q a 0, 4 4 4 4 3
(
(
(
(

=
(
(
(
(

(
(
(
(

(
(
(
(

=
(
(
(
(

(
(
(
(

+
+ =







8
8
0
, , , 0 ( , ,
, 0 ( , , , 0 ( , ,



Resolviendo obtenemos



37
(
(
(
(
(
(

\
|
|

\
|
+
|

\
|
|

\
|

\
|
(

\
|
2 2 2 2
8
0
2
S -
2
8
0
2 2


S C C S
C
( )
(
(
(
(
(

\
|
|

\
|

2 2
2 8
0
8
0

C S
C
=
( )
( )
(
(
(
(

S
C
8
0
8
0
+
(
(
(
(

0
0
8
0



( ) ( ) ( ) [ ] 8S - , 0 , C 8 8 , 0 , 0
3
+ = a


La ecuacin para el vector a3 es:


( ) ( ) ( ) [ ] 8S - , 0 ), C 8(1 , 0 , 0
3
+ = a






Ciclo 3


( )
3
*
3 3 3 2
Q * ) a (0, * Q a , 0 P + =


( ) ( )
( ) ( )
( ) ( )
( ) ( )
(
(
(
(
(
(

2
0
2
0
0
2
0
2
2
0
2
0
0
2
0
2




C S
C S
S C
S C

( ) [ ]
( )
(
(
(
(

S
C
8
0
1 8
0
=
( ) ( ) [ ] ( ) ( )
( ) ( ) [ ] ( ) ( )
(
(
(
(
(

+
+
2
8 1 8
2
0
2
8 1 8
2
0

C S C S
S S C C



Resolviendo las identidades trigonomtricas obtenemos


( ) ( ) ( ) ( ) ( ) [ ]


S S C C C
2 2 2
8 +

38


( ) ( ) [ ]

+ +
2 2
8 C C


y


( ) ( ) ( ) ( ) [ ]


S C C S S
2 2 2
8 + +


( ) ( ) [ ]

+ +
2 2
8 S S


( ) ( ) ( ) [ ]

S C S S + +
2 2
8


Entonces el nuevo resultado es:

( ) ( )
( ) ( )
(
(
(
(
(

+ +
+ +


2 2
8
0
2 2
8
0
S S
C C



Ahora, acomondo la matriz se tiene


( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
(
(
(
(
(
(

+ + + +
+ + + +
+ + + +
+ + + +
0
2 2
8 0
2 2
8
2 2
8 0
2 2
8 0
0
2 2
8 0
2 2
8
2 2
8 0
2 2
8 0


C C S S
C C S S
S S C C
S S C C
*
( )
( )
(
(
(
(
(

0
2
0
2

S
C




39
=
( ) ( ) ( ) [ ] ( ) ( ) ( ) [ ]
( ) ( ) ( ) [ ] ( ) ( ) ( ) [ ]
) 4 (
) 3 (
) 2 (
) 1 (
2 2 2
8
2 2 2
8
0
2 2 2
8
2 2 2
8
0
(
(
(
(
(
(

+ + + +
+ + + +


C C S S S C
S S S C C C





Factorizando la ecuacin de la matriz (2)


8 ( ) ( ) ( ) ( ) ( ) ( ) [ ]


+ + +
2 2 2 2 2 2
2 2
S S S C C C


8 ( ) ( ) [ ]

+ + +
2 2
C C


8 ( ) ( ) [ ] + + C C


8 ( ) ( ) [ ] + + C C + 9


Y factorizando la ecuacin de la matriz (4)


- 8 ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) [ ]


+ + + +
2 2 2 2 2 2 2 2
C S C S S C S C


-8 ( ) ( ) ( ) [ ]
2 2 2 2
2


+ + + S C S


-8 ( ) ( ) [ ] 1 + + S S


Entonces el vector (0, a2) es igual a


40

( ) ( ) ( ) [ ] ( ) ( ) [ ] [ ] 1 S S 8 - 0, , 9 C C 8 0, , 0
2
+ + + + + = a



Ciclo 4


Se calcula en este ciclo el vector quaternio (0, a1)


( )
2
, 0 P + =
2 2 2 1
Q * ) a (0, * Q a


( ) ( )
( ) ( )
( ) ( )
( ) ( )
( ) ( ) [ ]
( ) ( ) [ ]
( ) ( ) ( ) [ ] [ ]
( ) ( ) ( ) [ ] [ ]
( ) ( ) ( ) [ ] [ ]
( ) ( ) ( ) [ ] 1 8
9
9
1
1
0
9 2 / 0
2 /
+
+ + +
+ + +
+ +
=
(
(
(
(

+ +
+ + +
(
(
(
(











S
C
C
S
C
C
8S - /2 C
C 8 /2 S
C 8 /2 C
S 8 - /2 S -

S S 8 -
C C 8
0

/2 C 0 0 /2 S
0 /2 C /2 S 0
0 /2 S -
/2 S 0 - 0



( ) ( ) ( ) [ ] [ ] 1 S 8 - /2 S - + + S ( ) ( ) ( ) ( ) ( ) /2 /2 8 S /2 8 S S S S + + +
( ) ( ) ( ) [ ] [ ] 9 C 8 /2 C + + + C ( ) ( ) ( ) ( ) ( ) /2 9 /2 8 C /2 8 C C C C + + +


( ) ( ) ( ) [ ] [ ] 9 C 8 /2 S + + + C ( ) ( ) ( ) ( ) ( ) /2 9 /2 8 C /2 8 S C S S + + +


( ) ( ) ( ) [ ] 1 8 8S - /2 C + S ( ) ( ) ( ) ( ) ( ) /2 /2 8C S /2 8C - C S +


De estos resultados se forma la matriz que multiplicar el vector Q2. Para
efectos de visualizacin no se colocarn los resultados en matrices, pero se
har nfasis en las componentes de los vectores resultantes. La
multiplicacin de la matriz por el vector viene dado por:



41
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
(
(
(
(

(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(

\
|
+ + |

\
|
+ |

\
|
|

\
|
+ + |

\
|
+ |

\
|
|

\
|
+ |

\
|
|

\
|

\
|
+ |

\
|
|

\
|

\
|
+ |

\
|
|

\
|

\
|
+ + |

\
|
+ |

\
|
|

\
|
+ |

\
|
|

\
|

\
|
+ + |

\
|
+ |

\
|
|

\
|
+ + |

\
|
+ |

\
|
|

\
|
+ + |

\
|
+ |

\
|
|

\
|
+ + |

\
|
+ |

\
|
|

\
|
+ + |

\
|
+ |

\
|
|

\
|
+ + |

\
|
+ |

\
|
|

\
|
+ |

\
|
|

\
|

\
|
+ |

\
|
|

\
|

\
|
+ + |

\
|
+ |

\
|
2 /
0
0
2 /
2
2
8
2
8
2
9
2
8
2
8
2
9
2
8
2
8
2
2
8
2
8
2
9
2
8
2
8
2
2
8
2
8
2
2
8
2
8
2
9
2
8
2
8
2
9
2
8
2
8
2
2
8
2
8
2
2
8
2
8
2
9
2
8
2
8
2
2
8
2
8
2
9
2
8
2
8
2
9
2
8
2
8

S
C
S
S S
S S
C
C C
C C
S
C S
C S
C
S C
S C
C
C C
C C
S
S S
S S
C
S C
C C
S
C S
C S
S
C S
C S
C
S C
C C
S
S S
S S
C
C C
C C
C
S C
S C
S
C S
C S
C
C C
C C
2

S
S
2

8S
S
2

8S


Para el primer componente del vector resultante,


( ) ( ) ( ) ( ) 0
2 2 2 2
8
2 2
8
2 2 2 2
8
2 2
8 = |

\
|
|

\
|
|

\
|
+ |

\
|
|

\
|
|

\
|
|

\
|
|

\
|
+ |

\
|
+ |

\
|
+ |

\
|
|

\
|

C S C S S C S S C S C S S C S S



Para el segundo componente del vector resultante,


( ) ( ) ( ) ( ) |

\
|
+ |

\
|
|

\
|
|

\
|
+ + |

\
|
+ |

\
|
2
9
2
8
2
8
2
9
2
8
2
8
2 2 2 2 2 2

C C S C S C C C C C



=>
( ) ( )
2 2
9
2 2
8
2 2
8
2 2 2 2 2 2
(

\
|

\
|
+
(

\
|

\
|
+ +
(

\
|

\
|


S C S C C S C C



42

=> ( ) ( ) ( ) ( ) ( ) 15 9 C 8 8 + + + + C C C C


Para el tercer componente del vector resultante,


( ) ( ) ( ) ( )


|

\
|
|

\
|
+ + |

\
|
|

\
|
+ |

\
|
|

\
|
+ |

\
|
|

\
|
+ + |

\
|
|

\
|
+ |

\
|
|

\
|
2 2
9
2 2
8
2 2
8
2 2
9
2 2
8
2 2
8



C S
C C S C C S C S C C S C C S


=> ( ) ( )
2 2
2 9
2 2
2 8
2 2
2 8
(

\
|
|

\
|
+
(

\
|
|

\
|
+ +
(

\
|
|

\
|


C S C S C C S C


=> ( ) ( ) ( ) ( ) ( ) S S C S C 9 8 8 + + +


Para el cuarto componente del vector resultante,


( ) ( ) ( ) ( ) - - 8 - - - |

\
|
+ |

\
|
|

\
|
|

\
|
+ |

\
|
|

\
|
2 2
8
2 2 2
8
2
8
2 2 2 2 2 2

S S S S S C S C S C

=>
( ) ( )
2 2 2 2
8
2 2
8
2 2 2 2 2 2
(

\
|
|

\
|

\
|
+ |

\
|
+
(

\
|
|

\
|


S C S C S S C S



=> ( ) ( ) 3 8 8 + + S S


El vector (0, a1) tiene las siguientes componentes:


( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ) 3 8 8 9 8 8 15 9 8 8 , 0 ( , 0 1 + + + + + + + + + = S S - , S S C S C , C C C C C a


Ciclo 5



43
( )
( )
1 1
.
1
.
0
P * Q a , 0 a , + =
1
0 Q


La multiplicacin del cuaternio Q1 con el vector quaternio (0, a1) es


( ) ( )
( ) ( )
( ) ( )
( ) ( )
( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( )
( ) ( )
(
(
(
(

+ +
+ + +
+ + + +

(
(
(
(

3 8 8
9 8 8
15 9 8 8
2 / 0 0 2 /
0 2 / 2 / 0
0 2 / 2 / 0
2 / 0 0 2 /







S S -
S S C S C
C C C C C
0

C S
C S
S C
S C



Para la primera componente del vector se obtiene,


( ) ( ) ( ) ( ) ( )
2
3
2
8
2
8

S S S S S + +


Para la segunda componente del vector se calcula,


( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( ) [ ] ( ) ( ) ( ) ( ) ( ) [ ] ( ) ( ) ( ) ( ) [ ] ( )
( ) ( ) ( ) ( ) ( ) ( )
2
15
2
9
2
8
2
8
2
15
2
5
2
9
2
5
2
8
2
5
2
8
2
9
2
8
2
8
2
15
2
9
2
8
2
8

C C C C C C
C S S C C S S C C C S S C C C
S S S C S C C S C C C C C C C C C
+ + + + + + +
+ + + +
+ + + + +



Para la tercera componente del vector resulta,


( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( ) [ ] ( ) ( ) ( ) ( ) ( ) [ ] ( ) ( ) ( ) ( ) [ ] ( )
( ) ( ) ( ) ( ) ( ) ( ) ( )
2
15
2
9
2
8
2
8
2 2 2 2 2
8
2
5
2
8
2
9
2
8
2
8
2
15
2
9
2
8
2 2
8

+ + + + + + +
+ + + + + + +
+ + + + + + + +
S S C S C C
C S S C C S S C C C C S C C
C S C S C C S C S S C S C C S C C
15S 9



La cuarta componente del vector es,



44
( ) ( ) ( ) ( ) ( )
2
3
2
8
2
8

C C S C S +


Ahora para el clculo de con el conjugado es necesario convertir las
componentes en forma matricial as: (Pgina siguiente)

( ) ( )
( ) ( )
( )
( ) ( )
( ) ( )
( )
( )
( ) ( )
( ) ( )
( )
( )
( ) ( )
( ) ( )
( )
( ) ( )
( ) ( )
( )
( )
( ) ( )
( ) ( )
( )
( ) ( )
( ) ( )
( )
( ) ( )
( ) ( )
( )
( )
( ) ( )
( ) ( )
( )
( )
( ) ( )
( ) ( )
( )
( ) ( )
( ) ( )
( )
( ) ( )
( ) ( )
( )
( )
( ) ( )
( ) ( )
( )
( ) ( )
( ) ( )
( )
( )
( ) ( )
( ) ( )
( )
( )
( ) ( )
( ) ( )
( )
( )
( )
(
(
(
(

(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(

+
+
+ +
+ + +
+ +
+
+ +
+
+ +

+
+ +
+
+
+
+ +

+ +
+ + +
+ +
+ +
+ + +
+ +
+
+
+
+
+ +
+ + +
+ +
+
+
+
+ +
+
+
+ +
+
+
+
2 /
0
0
2 /
2
3
2
8
2
8
2
15
2
9
2
8
2
8
2
15
2
9
2
8
2
8
2
3
2
8
2
8
2
15
2
9
2
8
2
8
2
3
2
8
2
8
2
3
2
8
2
8
2
15
2
9
2
8
2
8
2
15
2
9
2
8
2
8
2
3
2
8
2
8
2
3
2
8
2
8
2
15
2
9
2
8
2
8
2
3
2
8
2
8
2
15
2
9
2
8
2
8
2
15
2
9
2
8
2
8
2
3
2
8
2
8

S
C

S
S S
S S
C
C
C C
C C
S
S
S C
S C
C
C S
C S
C
C
C C
C C
S
S S
S S
C
C S
C S
S
S
S C
S C
S
S
S C
S C
C
C S
C S
S
S S
S S
C
C
C C
C C
C
C S
C S
S
S
S C
S C
C
C
C C
C C
S
S S
S S



El resultado de la primera componente es,


( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) 0
2 2
3
2 2
8
2 2
8
2 2
3
2 2
8
2 2
8 = + + + +


C S C S S C S S C S C S S C S S



El resultado de la segunda componente es,

45


( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
2
15
2 2
9
2 2
8
2 2
8
2

C C C C C C C C C + + + + + + +


( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
2
15
2 2
9
2 2
8
2 2
8
2

S S S S S C S S C + + + + +


( ) ( ) ( ) ( ) ( ) ( ) C C C C C C 15 9 8 8 + + + + + + +


El resultado de la tercera componente es,


( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
2 2
15
2 2
9
2 2
8
2 2
8

C S C S C S C C S C + + + + + + +



( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
2 2
15
2 2
9
2 2
8
2 2
8

C S S C S C C S C C + + + + + + +


( ) ( ) ( ) ( ) ( ) ( ) S S S C S C 15 9 8 8 + + + + + + +


El resultado de la cuarta componente es,


( ) ( ) ( ) ( ) ( ) 2 / 3 2 / 8 2 / 8
2 2 2
C C S C S + +


( ) ( ) ( ) ( ) ( ) 2 / 3 2 / 8 2 / 8
2 2 2
S S S S S + +


( ) ( ) 19 3 8 8 + + + S S


Ahora el resultado del modelo matemtico viene dado por el resultado de
las cuatro ltimas componentes, teniendo en cuenta que la primera

46
componente debe ser cero como se demostr, las otras tres componentes
corresponden a las ecuaciones en x, y, z en el espacio tridimensional.


( ) ( ) ( ) ( ) ( ) ( ) C C C C X 15 9 8 . + + + + + =
( ) ( ) ( ) ( ) ( ) ( ) S C C S Y 15 9 8 . + + + + + =
( ) ( ) ( ) 22 8 + + + = S S Z




Que fue el mismo resultado obtenido por el mtodo de matrices
homogneas.


Como se puede observar el mtodo de cuaternios es consistente en el uso
del lgebra y se llega al mismo resultado que con el mtodo de
transformaciones homogneas.


En el siguiente capitulo se har una comparacin en trminos de
rendimiento computacional con el objetivo de verificar la hiptesis que
caracteriza al mtodo de cuaternios como un mtodo ms eficiente.

47
2. COMPARACIN DE LA EFICIENCIA COMPUTACIONAL ENTRE EL MTODO
DE MATRICES HOMOGENEAS Y EL MTODO DE CUATERNIOS


2.1. INTRODUCCIN
Desde el punto de vista de las ventajas relativas de diferentes esquemas
de representacin, la comparacin se debe enfocar en aspectos tales
como la solidez que puede dar una representacin y con su eficiencia
computacional en el desempeo bsico de operaciones espaciales que
normalmente estn relacionadas con el hecho de calcular funciones
trigonomtricas asociadas a los ngulos de giro de las articulaciones. Se
necesita tambin las consideraciones de almacenaje por el hecho que en
la mayora de hardware existente el costo (medido en trminos de ciclos
de CPU requerido) de las operaciones de llamadas a memoria excede en
costo al desempeo de las operaciones aritmticas bsicas.
Consecuentemente, una pequea superioridad de una representacin
particular en trminos de almacenaje bien podra representar una
desventaja en trminos de costo computacional.


En algunas referencias bibliogrficas se tomaron en cuenta aspectos
puntuales para cada representacin, por ejemplo, Funda[6] se refiere a los
cuaternios como un par vector de rotacin y desplazamiento donde se
define el par cuaternio como Q(q,p), donde q es el cuaternio de rotacin y
p es el cuaternio de desplazamiento. Por otra parte hace referencia a las
matrices homogneas en el aspecto en que la transformacin se guarda
en una matriz T=[ n, o, a, p] en los cuales los tres primeros vectores de los
tres elementos son mutuamente ortonormales, esto significa que si nosotros
queremos guardar estos tres primeros vectores en memoria podramos
solamente guardar dos y el otro calcularlo por medio del producto cruz
n=oxa y bajaramos de 12 variables de punto flotante a 9 variables. Pero es
importante saber que si hacemos lo que el seor Funda nos recomienda
debemos tener en cuenta que guardando slo los 2 vectores sern
siempre necesario hacer las operaciones de producto cruz en nuestra
aplicacin dado que este vector se necesita cada vez que se usa la matriz
de transformada homognea en cada ciclo del calculo del modelo
matemtico, sin embargo se expresa en este artculo que guardando solo
los dos vectores el ahorro en almacenaje es de 25% y esto se revierte en el
desempeo de la aplicacin.


48
2.2. DESARROLLO DE LA COMPARACIN
Para el presente trabajo de investigacin es importante resaltar algunos
aspectos importantes que influyen en el desempeo de cada algoritmo.
Dichos aspectos se citan a continuacin.

1. Los mtodos para calcular los algoritmo obedecen a los enunciados
en el capitulo anterior, esto significa que se llevo a la aplicacin los
pasos seguidos por cada mtodo.
2. Dado que era importante para la ubicacin del vector que se
calculaba en cada uno de los ciclos, tanto en matrices homogneas
en el calculo de la matriz A, as como tambin en los cuaternios en el
clculo del cuaternio (0, an), se tomaron los ejes extras para el
clculo. Sin embargo, como fue aplicado a ambos mtodos la
influencia no fue significativa.
3. En el mtodo de matrices homogneas las operaciones conllevan a
un clculo tanto de la orientacin como de la posicin de manera
concurrente, esto no ocurre en los cuaternios. El mtodo expuesto en
el capitulo anterior solo hace referencia al clculo de la posicin, sin
embargo en la aplicacin el clculo de la orientacin por cuaternios
se tiene en cuenta como lo muestra la siguiente parte del cdigo
fuente:


MQQ(NumArt + 1, 0) = 1: MQQ(NumArt + 1, 1) = 0: MQQ(NumArt + 1, 2)
= 0: MQQ(NumArt + 1, 3) = 0
QA(0) = 0
QA(1) = 0
QA(2) = 0
QA(3) = 0
'Inicio el cuaternio Rn con (1,0,0,0) dado que no esta rotado en
ninguno de sus ejes
'Rn=[cos(0),0,0,sen(0)]
QR(0) = 1
QR(1) = 0
QR(2) = 0
QR(3) = 0
For K = NumEsl To 1 Step -1
QQ(0) = MQQ(K, 0)
QQ(1) = MQQ(K, 1)
QQ(2) = MQQ(K, 2)

49
QQ(3) = MQQ(K, 3)
QP(0) = MQP(K, 0)
QP(1) = MQP(K, 1)
QP(2) = MQP(K, 2)
QP(3) = MQP(K, 3)
QA = CalculoA(QQ, QA, QP)
QR = OpeQ(QQ, QR, "*")
Next K


Se puede observar que dentro del ciclo de k existen las llamadas a
funciones CalculoA y OpeQ que hacen referencia al clculo del
cuaternio (0, an) y a la operacin del cuaternio de orientacin que
se basa en una multiplicacin de cuaternios. Recuerde que el
cuaternio en si representa una rotacin.
4. En el momento de escribir el cdigo fue importante tener en cuenta
el nmero de llamadas a funciones dado que este es un factor
determinante en el desempeo del software. Se pudo concluir por
medio de pruebas que en la medida que se hagan mas llamadas a
funciones el desempeo decrece considerablemente. Las llamadas
a funciones pueden ser por ejemplo la multiplicacin de matrices, el
clculo de los vectores, hasta la misma inicializacin de variables y
matrices globales para el clculo. Todo esto se tuvo en cuenta para
que no afectara el desempeo en la comparacin.


Para el desempeo del algoritmo de matrices homogneas y siguiendo los
pasos establecidos anteriormente, se calcula primero las matrices de
articulaciones
i-1
Ai. Cada una de estas matrices son de tamao de 4x4 y
para su obtencin se necesitan 14 llamadas a funciones trigonomtricas y
seis multiplicaciones. No se hacen llamadas a sumas ni restas. Despus de
obtener las diferentes matrices de articulacin se calcula la matriz T que
representa la transformacin general. Como se vio anteriormente, la
obtencin de esta matriz se hace mediante la multiplicacin reiterada de
las matrices de articulacin. Para la multiplicacin de dos matrices de 4x4
se necesitan 64 multiplicaciones y 48 sumas; ahora bien, como estos datos
dependen del nmero de articulaciones el cual se designar con la letra n,
estas operaciones se relacionan as: en el caso del clculo de la matriz de
articulacin se tiene 14*(n+1) multiplicaciones y 6*(n+1) sumas. Se debe
recordar que para el mtodo presentado en esta investigacin se tiene en

50
cuenta un sistema de referencia mas y por ende una matriz mas. Ahora,
para el calculo de la matriz T se relaciona con las articulaciones as: 64n
multiplicaciones y 48n sumas. Uniendo los dos procesos, la totalidad de
operaciones son: 14(n+1) llamadas a funciones trigonomtricas, 48n sumas
y 70n + 6 multiplicaciones.


Para el caso del mtodo de cuaternios se debe tener en cuenta que la
multiplicacin de dos cuaternios necesita de 12 operaciones entre sumas y
restas, 14 operaciones de multiplicacin y para la suma de dos cuaternios
se necesitan 4 sumas. Como el mtodo de cuaternios basa su operacin
en la obtencin del cuaternio (0, ai) para cada ubicacin de los sistema
de referencia y teniendo en cuenta que para el calculo de este cuaternio,
se necesita multiplicar tres cuaternios y sumar un cuaternio. Esto en
trminos de operaciones es: 2*(16 multiplicaciones ; 12 sumas y restas) y 4
sumas, tenemos entonces en total; 4n llamadas a funciones
trigonomtricas, 32(n+1) sumas y restas, 34n+32 multiplicaciones.


En la tabla siguiente se resume las operaciones obtenidas anteriormente.


Tabla 2.1 Comparacin operacional de mtodos

METODO
Nmero de
llamadas a
funciones
trigonomtricas
Nmero de
sumas y restas
Nmero de
multiplicaciones
HOMOGENEAS

14(n+1) 48n 70n+6
CUATERNIOS

4n 32(n+1) 34n+32


Adems de los aspectos que afectan el desempeo de los algoritmos
antes mencionados se debe tener en cuenta otros asuntos tcnicos tales
como el tipo de mquina donde se ejecute el programa, as como la
versin de sistema operativo que se use.
En conclusin se puede observar que los cuaternios necesitan menos
operaciones para llegar al mismo resultado y esto fue corroborado con un

51
mdulo de simulacin que se presenta dentro de la aplicacin. El resultado
lo podemos ver en la figura 2.1.


El mdulo de simulacin basa su funcionalidad en recrear un ambiente de
trabajo para robots de diferente nmero de articulaciones. Empieza con
robot de una articulacin y termina con robots de seis grados de libertad.




Figura 2.1 Simulacin para la comparacin de modelos


El mdulo aleatoria mente crea una tarea con cincuenta movimientos y
repite este proceso 100 veces, estos tiempos son acumulados y luego
calcula un promedio que es el que aparece en la tabla de la aplicacin.
Como se dijo anteriormente, este proceso lo hace para robots de una

52
hasta seis articulaciones. Al final de haber calculado los promedios los
pasa a la grafica de barras que se observa en la figura 2.1 denominada
Comparacin de Mtodos. Se observa adems que para el caso
nuestro, es decir para nuestro robot de cuatro grados de libertad la
diferencia entre los tiempos tomados de la simulacin son en proporcin 43
% aproximadamente. Esto quiere decir que al mtodo de cuaternios solo le
toma aproximadamente el cuarenta por ciento del tiempo que se gastara
con el mtodo de matrices homogneas. Otro aspecto importante que
esta simulacin nos ofrece es la tendencia de cada mtodo. En el grafico
de barras se observa que la pendiente de la tendencia para el mtodo de
homogneas es de casi 45 grados, es decir, que a mas grados de libertad
posea el robot la diferencia en tiempos comparado con los cuaternios ser
mucho mas grande. Observe que para el modelo de cuaternios el ngulo
de la lnea de tendencia es de aproximadamente 30 grados. Para
corroborar estos resultados del mdulo de simulacin se tomaron tiempos
en otro mdulo del programa el cual fue construido con el objetivo de
programar algunas tareas reales para el robot que se esta controlando. Sin
embargo, dado que la herramienta permite que se ejecute en modo de
simulacin, los tiempos se pueden tomar desde otro punto de vista. Los
mdulos nombrados anteriormente son independientes, es decir, para el
mdulo de simulacin se escribi un cdigo de ejecucin de los modelos
de representacin de orientaciones completamente aparte del de las
funciones usadas por el resto de la herramienta. Esto permite ejecuciones
independientes inclusive en el almacenamiento de las variables.


Lo interesante de lo anterior es que puesto en marcha el mdulo
ejecucin se obtuvieron casi los mismos resultados. Esto lo podemos
observar en la figura 2.2.

53


Figura 2.2 Mdulo Ejecucin


Observe que la proporcin para este mdulo ejecucin esta alrededor del
47%, algo muy parecido al resultado obtenido por el mdulo de
simulacin.



54

3. CONCEPTOS DE CONSTRUCCION DE SOFTWARE PARA LA APLICACIN
Q-ROBOT


3.1. INTRODUCCIN
Q-robot es el nombre que se le ha dado a la aplicacin software que
permite controlar un robot de cuatro grados de libertad denominado SMA-
V3R:T y simular los movimientos de diferentes tipos de robot basados en
articulaciones rotacionales, dependiendo de la manera como se
construyen dentro de la misma herramienta.


La aplicacin permite conocer el posicionamiento del extremo externo del
ltimo eslabn que se haya programado segn la configuracin que se
construya. El mtodo de posicionamiento se escoge entre las dos
posibilidades que permite la aplicacin: una con matrices homogneas y
la otra basada en el lgebra de cuaternios.


En este capitulo se explica aspectos metodolgicos para la creacin de la
aplicacin y se hizo nfasis en los sistemas de prueba que se usaron para la
construccin.


3.2. EL MTODO DE CONSTRUCCIN
La modularidad es un principio bsico que se utiliza en el diseo y
construccin de cualquier producto de ingeniera. Para el caso del
software tambin es un principio bsico, de hecho los lenguajes de
programacin modernos han potenciado aquellos elementos que
permiten alcanzar altos grados de modularidad en la programacin.


El proceso de modularizacin busca alcanzar tres objetivos bsicos:
descomposicin de un sistema complejo en subsistemas; composicin a
partir de componentes existentes y comprensin del sistema, mirndolo en
sus partes. La descomposicin se basa en la divisin de un problema
original en subproblemas que a su vez pueden ser nuevamente
descompuestos, procedimiento que se contina hasta aquel nivel que

55
permita resolverlos adecuadamente. As, los problemas de ltimo nivel son
resueltos en forma separada, para luego integrarlos a la solucin de mayor
nivel.


Esta modularidad fue esencial en el momento de abordar la solucin del
problema de construccin del software, dada las ventajas que representa
dividir en partes un problema y resolverlo individualmente. Inicialmente se
estableci tres prioridades de solucin: una que resolviera el problema de
la aplicacin de los conceptos matemticos tanto para el mtodo de
matrices homogneas como para el mtodo de cuaternios; segundo, era
necesario simular un ambiente de trabajo de robots que permitiera una
comparacin de los dos mtodos antes mencionados y tercero, crear un
sistema de comunicacin con la aplicacin que ofreciera la inclusin de
ordenes bsicas para que el simulador ejecutara estas instrucciones. De
esta manera se dividi el problema en tres mdulos y cada uno de estos
mdulos se empezaron a subdividir en niveles mas especializados, tales
como el mdulo para calcular los vectores de posicin, el modulo que se
comunicara fsicamente por el puerto serial de computador con el
microcontrolador del robot, etc, .


Otro aspecto importante en el momento de la construccin es que se uso
un esquema de pruebas que me permitiera conocer los posibles errores
que la aplicacin tuviera. Si bien el concepto de prueba de software
dentro del ciclo de construccin de una aplicacin esta al final, se hizo un
cambio en este paradigma de la ingeniera del software con el objetivo de
ir comprobando mdulo a mdulo los errores. Este concepto no se aplico a
ciertos mdulos que por su sencillez en su estructura ciclomtica no
mereca este tipo de tratamiento.


Es importante resaltar que existen varios mtodos y tcnicas de pruebas
pero para este trabajo se aplic los conceptos de pruebas de caja blanca
y caja negra. Presuman [9] en su libro esboza de manera clara y concisa

56
los conceptos de caja blanca y caja negra en los enfoques de pruebas
para el desarrollo de una aplicacin software.


La aplicacin de pruebas a un proceso tiene como objetivo claro la
bsqueda de un error y es este mismo concepto el que se usa en el
momento de desarrollar una aplicacin software. Un buen caso de prueba
es aquel que tiene una alta probabilidad de mostrar un error no
descubierto hasta entonces. Como se menciono anteriormente, esta
aplicacin de tcnicas se desarrollo a medida que se construan los
diferentes mdulos del software. No para todos los mdulos se desarrollo
este enfoque, solo aquellos que por su complejidad y tambin por la
funcin trascendente dentro del desempeo de la aplicacin as lo
requeran. Para algunas funciones se aplico un enfoque de Caja Negra.
Cuando estamos ante un proyecto de software el enfoque de caja negra
se refiere a todas las actividades encaminadas a revisar la funcionalidad
en general de la aplicacin, por ejemplo, que los mdulos de interfaz de
usuario solicite de manera confiable los datos solicitados y que si es un
campo numrico no permita guardar campos alfanumricos, que si los
datos tienen restricciones en sus limites, como es el caso de nuestra
aplicacin en el cual la cantidad en grados de los servomotores se
encuentra entre -90 grados y 90 grados, etc., es decir, los casos de pruebas
pretenden demostrar que las funciones del software son operativas, que la
entrada de datos se acepta de forma adecuada y que se produce una
salida correcta, as como que la integridad de la informacin externa se
mantiene, por ejemplo la estructura del archivo de proyecto de Q-Robot,
archivos .pqr. Una prueba de caja negra examina algunos aspectos del
modelo fundamental del sistema sin tener muy en cuenta la estructura
interna lgica del programa. Como complemento, la prueba de caja
blanca centra su atencin en los detalles de procedimiento, as como de
la lgica propia de cada uno de ellos. Se examinan las condiciones, los
bucles y los diferentes cominos lgicos que puede tomar una aplicacin.


Tambin es importante conocer que la aplicacin de las tcnicas de
prueba para la construccin de un software si bien ofrecen un alto grado
de confiabilidad en muchas ocasiones este proceso puede llegar a

57
afectar considerablemente la programacin y terminacin de un proyecto
de construccin de software. Por esta razn es importante identificar y
aplicar los diferentes conceptos en los procesos ms significativos de la
aplicacin.


3.3. LA APLICACIN Q-ROBOT
La aplicacin Q-Robot es una herramienta que sirve como simulador para
robots de hasta 5 grados de libertad y que sus articulaciones sean de tipo
rotacional. Cuenta con una interfaz para la construccin del robot basado
en la anidacin de eslabones y permite simular su movimiento basado en
dos mtodos de representacin de movimiento; uno, por medio de
matrices homogneas y el otro por el mtodo de cuaternios de Hamilton.


La aplicacin presenta una ventana para cada uno de los modelos. El
modelo que usa las matrices homogneas utiliza el algoritmo presentado
por D-H y permite incluir los parmetros que este procedimiento necesita
para su operacin.


En la figura 3.1 se observa la interfaz de usuario usada para la definicin de
la anatoma del robot. La forma de construir el robot es describiendo uno a
uno los eslabones partiendo del hecho de que donde termina el primer
eslabn empieza el segundo.


Figura 3.1. Definicin de Morfologa de robots.

58
La ventana comienza con el eslabn 0 el cul define la base del robot. La
forma de definir el eslabn es por la medida en trminos longitudinales y
por su ubicacin dentro de un sistema de referencia, es decir, se define en
trminos tridimensionales (x,y,z) la ubicacin inicial y final del eslabn y con
estos ubicaciones se calcula la longitud del mismo. En la figura 3.1 vemos
que el eslabn 0 empieza con (0,0,0) y va hasta (0,0,19), esto significa que
mide 19 unidades de longitud (mm, cm, etc.) y que est orientado paralelo
al eje z. La interfaz esta diseada para que una vez el usuario acepte estos
puntos de referencia tridimensionales, automticamente define el punto
de referencia del eslabn siguiente. Para el caso que estamos tratando
sera (0,0,19) y entonces se define el punto de referencia final para el
eslabn 1, que para nuestro caso es (15,0,23). Es importante recordar que
los puntos de referencia tridimensionales definen la ubicacin de la
articulacin, es decir, donde se encuentra ubicada tridimensional mente el
accionador de movimiento. Para el caso del eslabn 1 la informacin que
esta capturando la aplicacin es que el eslabn tiene una longitud de 15
unidades, que empieza ubicado a 19 unidades en el eje z y que esta
paralelo al eje x, adems ubica tridimensional mente a la articulacin 1 en
(0,0,19). Si se sigue define el eslabn 2 ubicara la articulacin 2 en la
coordenada (15,0,23). La ventana presenta un botn con una mano.


Este botn sirve para llevar la informacin incluida en la ventana de
eslabones al sistema grfico de Q-Robot dibujando los eslabones y
ubicndolos dentro de un sistema de referencia preestablecida por la
aplicacin. El esquema del robot se puede definir como un nmero n de
eslabones formando una cadena geomtrica unidos por n-1
articulaciones.


La caja de verificacin simular, que por defecto esta activa, especifica si
la aplicacin se utilizar en modo simulador, es decir, que no usar las
funciones encargadas de comunicarse con el puerto serial para enviar
seales a un robot conectado al PC. Se debe recordar que para efectos
prcticos se utiliz una funcin ya establecida para enviar una cadena
que define los grados de cada uno de los motores para el robot SMA-V3R:T
la cual es recibida por un programa escrito para el microcontrolador de la

59
tarjeta del robot y que acciona los motores. Cuando esta caja de
verificacin no esta seleccionada la aplicacin calcula lo cadena que
establece los grados descritos por el usuario y los enva por el puerto serial
del PC. En caso de no estar preparado el robot la aplicacin genera un
mensaje de error.


La representacin grfica se presenta en dos ventanas las cuales muestran
las proyecciones tanto en una vista superior como frontal. Estas ventanas
se observan en la figura 3.2.

60


Figura 3.2. Proyecciones grficas del robot


Se observan las dos vistas, la frontal y superior. Dispone cada ventana de
una grilla la cual contiene las medidas de longitud y se presenta adems la
definicin del plano que representa la vista, por ejemplo, para la vista

61
superior se representa el plano x,y y para la vista frontal se representa el
plano x,z. Estas ventanas de representacin grfica solo son operables
desde el mdulo de ejecucin dado que para el mdulo de simulacin la
representacin grfica no es relevante. El sistema grfico de Q-Robot tiene
como objetivo presentar al usuario un esquema de posicionamiento
grfico y que adems sirva de comprobacin de los resultados de los
diferentes mtodos usados en la aplicacin, para esto el sistema grfico
dibuja uno a uno los eslabones definidos en la ventana de definicin de
morfologa (Figura 3.1). Para una mejor visualizacin el sistema grfico
dibuja los eslabones en colores diferentes para ubicarlos fcilmente en
cada uno los movimientos que se le ordenen.


Como se menciono anteriormente la aplicacin de las matrices
homogneas se hace a travs del algoritmo presentado por D-H. La
aplicacin presenta al usuario una ventana en la cual se incluyen los
parmetros necesarios para la funcionalidad de este algoritmo. La
ventana la podemos observar en la figura 3.3.




Figura 3.3 Ventana de parmetros de D-H.


La ventana se divide en tres secciones, La seccin de inclusin de datos
que especifica para cada uno de los sistemas de referencia los parmetros
de
i
,
i
d
,
i
a ,
i
. La seccin de resultados, donde se presenta los datos

62
procesados por el algoritmo dados los ngulos de movimiento ordenados.
El resultado que se presenta como x, y, y z, es el posicionamiento del
extremo del ltimo eslabn, o vector p como se muestra en la figura 1.2.
Tambin se presenta una caja de texto etiquetada como Tiempo de
Proceso, en esta caja se muestra el tiempo que toma cada en hacer la
simulacin de una tarea. Esto se especifica mas adelante cuando se
explique el ltimo mdulo. En la ltima seccin esta el botn de ejecucin
que es el que le ordena a la aplicacin realizar ejecutar las funciones para
calcular por el mtodo de matrices homogneas los valores de x,y,z, segn
los datos consignados en la seccin uno.


Por ltimo, para este mdulo esta la ventana de operacin por cuaternios.
Un esquema de esta ventana se observa en la figura 3.4.




Figura 3.4 Ventana de datos para el mtodo de cuaternios


Al igual que la ventana de la figura 3.3, esta ventana tambin esta dividida
en tres secciones. La primera seccin es la nica diferente a la presentada
en la ventana de parmetros D-H. Esta seccin permite al usuario ubicar los
ejes de rotacin para cada una de las articulaciones. Se debe recordar
que para cada articulacin en el mtodo de cuaternios se debe definir el
eje de rotacin que se quiera para dicha articulacin. Si bien, y como se
comento anteriormente, en la bibliografa consultada siempre se
acomodaban los ejes de rotacin en el eje z, en este trabajo se propone

63
una forma diferente de trabajar con los cuaternios, dando libertad al
usuario de definir si el eje lo escoge paralelo a y o paralelo a z. El resto de
secciones tiene la misma funcionalidad que la ventana de parmetros D-H
pero usando el mtodo de cuaternios.


El mdulo de simulacin presentado en esta aplicacin permite revisar las
diferencias medidas en tiempo de cmputo de los dos mtodos expuestos
en este trabajo de investigacin. Se recomiendo la lectura del capitulo tres
de este informe.


Por ltimo, la aplicacin presenta un mdulo denominado SCRIBA. Este
modulo realmente no hace parte de los objetivos de este trabajo pero se
har una pequea definicin de lo que en un futuro se espera de este
mdulo.


SCRIBA son las siglas para Sistema de Comandos para Robots basados en
Instrucciones Bsicas. Este mdulo pretende ser una interfaz entre el
usuario y el robot por medio de rdenes, teniendo la aplicacin como
puente de comunicacin entre ellos.


Con este mdulo se pretende llegar a manejar los robots basados en
algoritmos de Inteligencia Artificial usando tcnicas de lenguaje natural. La
primera aproximacin ser por medio de ordenes bsicas tales como
programar tareas para el robot que se este trabajando, ordenar la
ejecucin de tareas usando cualquiera de los dos mtodos propuestos,
verificar posibles sensores que se le adicionen a los robots con los cuales se
pueda trabajar, etc.



64
4. CONCLUSIONES


1. El concepto de cuaternio aplicado en el anlisis de mecanismos
con movimientos de tipo rotacionales sirve como una herramienta
matemtica poderosa para la representacin tanto de la
orientacin como del posicionamiento de efectores finales en la
tecnologa robtica.
2. Los cuaternios, por el hecho de utilizar menos componentes dentro
de su estructura comparada con una matriz homognea, suelen
ser ms eficientes en trminos de tiempo de cmputo para calcular
la posicin y orientacin del efector final de un robot.
3. Los cuaternios pueden ser usados para resolver el problema directo
de la cinemtica de robots.
4. En trminos proporcionales, a mayor nmero de grados de libertad
que tenga un robot mayor ser el tiempo requerido para el clculo
de posicionamiento y orientacin del extremo del mismo. Se pudo
verificar que la constante de proporcionalidad para el mtodo de
matrices homogneas es mayor que la del mtodo de cuaternios.
5. En la construccin de aplicaciones software, donde los aspectos de
tiempo de clculo y eficiencia computacional son relevantes y se
este usando Visual Basic como lenguaje de programacin, es
importante construir la aplicacin con el menor nmero de llamado
a funciones escritas por el usuario, dado que estas llamadas
requieren tiempo considerable para su ejecucin.




65
5. RECOMENDACIONES


1. Se pudo observar que existe una diferencia en los resultados del clculo
de posicionamiento entre los dos mtodos usados. Esto conlleva a
pensar que dicha diferencia podra estar relacionada con la precisin
del posicionamiento mismo. Se recomienda generar una investigacin
para estudiar las causas de estas diferencias y su efecto en el
posicionamiento.

2. De manera experimental se pudo comprobar que las llamadas a
funciones y procedimientos hechos por el usuario consumen un tiempo
considerable de ejecucin de la aplicacin. Se recomienda un estudio
de las causas por las cuales se genera esta situacin en el lenguaje de
programacin Visual Basic y revisar si este fenmeno se presenta
tambin en otros lenguajes.

3. Se recomienda comparar el mtodo de cuaternios con otros mtodos
alternativos diferentes al de matrices homogneas.





66
BIBLIOGRAFA


[1] ASPRAGOTHOS, Nicholas A., DIMITROS, John K., A Comparative
Study of Three Methods for Robot Kinematics, IEEE Transactions on
Systems, Man, and Cybernetics, Vol. 28, No. 2 April 1998.

[2] BARRIENTOS, Antonio, PEIN, Luis Felipe, BALAGUER, Carlos y
ARACIL, Rafael. Fundamentos de Robtica, Espaa, Editorial Mc
Graw Hill, 1997.

[3] CHAHADE D., Andres Eduardo. Robtica: Una Introduccin,
Mxico, Editorial Limusa, 1993.

[4] FU, K. S., GONZALEZ, R. C. Y LEE, C. S. G., Robtica: Control,
Deteccin, Visin e Inteligencia, Mxico, Editorial Mc Graw Hill,
1990.

[5] GROOVER, Mikell P., WEISS, Mitchell, NAGEL, roger N. y ODREY,
Nicholas G., Robtica Industrial: Tecnologa, Programacin y
Aplicaciones, Espaa, Mc Graw Hill, 1989.

[6] JANEZ, Funda, RUSELL, Tylor y RICHARD, Paul, On Homogeneous
Transforms, Quaternions, and Computational Efficiency, IEEE
Transactions on robotics and automation, Vol 6, No. 3, June 1990.

[7] KUIPERS, Jack B., Quaternions and rotation sequence, Estados
Unidos, Editorial Universidad de Princeton, 1999.

[8] LOPEZ, Pierre y NEUMAN, Jane, Introduccin a la Robtica I,
Cuba, Editorial Revolucionaria, 1988.

[9] PRESSMAN, Roger S., Ingeniera del Software Un enfoque
Prctico, tercera Edicin, Espaa, McGraw Hill/Interamericana
de Espaa S. A., 1993.
[10] RUST, Notes on Quaternions and Vectors, Sacado de la pgina
de Internet de la direccin
http://www.rust.net/~kgeoinfo/quat1.htm al
http://www.rust.net/~kgeoinfo/quat9.htm


67
[11] QING, Tan, BALCHEN, Jens G., General Quaternion
Transformation Representation for Robotic Application, Estados
Unidos, The Norwegian Institute of Technology, ( Extraido de la
base de datos d la IEEE. Sin referencia al volumen de la revista).

You might also like