cuaternios
TRANSCRIPT
Rotacion espacial mediante la multiplicacion de cuaternios
Spatial rotation by quaternion multiplication
Tarea 03: Fundamentos de Robotica 2014
Gustavo Rodrigo Lopez [email protected]
13 de octubre de 2014
1. Abstract
The aim of this paper is to present a synthesis ofthe mathematics generated of group the quaternionsand compare their methodology with homogeneousmatrices, this group not commutative but associativeand distributive over addition allow rotating coordi-nate systems axes or vectors multiplying a quaternionunit norm and its conjugate to the vector will berotated. The symmetry of the two methods is foundto achieve the same result, with the wide differencein the number of digits occupied for the generationof a matrix versus the 4 digit occupied a quaternion,greatly reducing the programmable controller of arobotic system.
Keywords: Quaternions, rotate
2. Resumen
El objetivo de este documento es presentar una sınte-sis de la matematica generada del grupo de los cuater-nios y comparar su metodologıa con las matrices ho-mogeneas, este grupo no conmutativo pero asociativo ydistributivo sobre la suma permiten rotar sistemas deejes coordenadas o vectores multiplicando un cuaterniode norma unitaria y su conjugado al vector que sera ro-tado. La simetrıa de los dos metodos se comprueba alobtener el mismo resultado, con la gran diferencia de lacantidad de dıgitos ocupados para la generacion de unamatriz versus los 4 dıgitos ocupados en un cuaternio,reduciendo considerablemente el programa-controladorde un sistema robotico.
3. Introduccion
En la decada de 1840 sir William Rowan Hamil-ton(vease [1] para mayor informacion), fısico ma-tematico se encontraba estancado en la busqueda dealgun sistema matematico que pudiera representarpuntos en el espacio tridimensional como lo describenlos numeros complejos en el plano, descubriendo un
metodo que empleaba 4 dıgitos para la representaciondel espacio a la que denomino cuaternios.
Hoy en dıa las rotaciones de vectores tienen unpapel protagonico en la robotica, siendo el lenguajevertebral en el movimiento de sistemas automatizados.
En este documento se presenta un resumen del alge-bra de los cuaterniones, para posteriormente aplicarsu matematica y rotar un sistema de ejes coordenadosen torno al eje x y luego en torno al eje y, compa-rando el resultado con matrices de transformacioneshomogeneas, concluyendo satisfactoriamente en la ho-mogeneidad de los metodos.
4. Metodos
Como ya se ha mencionado los cuaternios son unaextension de los numeros complejos, heredando ciertaspropiedades y caracterısticas de ellos, describiendolasa continuacion:
1. Sea q y q1 cuaternios definidos como
q = a+ bi+ cj + dk q1 = a1 + b1i+ c1j + d1k(1)
donde a, a1, b, b1, c, c1, d y d1 son numeros realesy i, j y k son numeros complejos, entonces
i2 = j2 = k2 = −1 (2)
2. Como i, j y k son representacion de ejes ortogo-nales entre ellos se tiene por algebra vectorial queel producto entre ellos es igual a
ij = k = −ji jk = i = −kj ki = j = −ik(3)
de (3) se concluye que los cuaternios no conmutanen la multiplicacion, pero si se asocian y distribu-yen en la adicion. En [2] se contempla la completademostracion de estos axiomas.
3. Se define el conjugado de q como
q∗ = a− bi− cj − dk (4)
1
4. Se define el producto punto como
q·q1 = aa1 − bb1 − cc1 − dd1+ ab1i+ ba1i+ cd1i− dc1i+ ac1j − bd1j + ca1j + db1j
+ ad1k + bc1k − cb1k + da1k
5. Del punto anterior y usando la definicion del con-jugado se obtiene para cualquier par de cuaternios
(q·q1)∗ = aa1 − bb1 − cc1 − dd1− ab1i− ba1i− cd1i+ dc1i
− ac1j + bd1j − ca1j − db1j− ad1k − bc1k + cb1k − da1k
= a1(a− bi− cj − dk)
− b1i(a− bi− cj − dk)
− c1j(a− bi− cj − dk)
− d1k(a− bi− cj − dk)
= (a1 − b1i− c1j − d1k)
·(a− bi− cj − dk)
(q·q1)∗ = q∗1 ·q∗
6. Se define la norma como |q| igual a
|q| ≡√qq∗
=√
(a+ bi+ cj + dk)·(a− bi− cj − dk)
=√a2 + b2 + c2 + d2
7. Extendiendo lo anterior se deduce que
|qq1| = |q| |q1| (5)
Haciendo enfasis en la conmutatividad de los cua-ternios al multiplicarlos por numeros reales.
8. Sea r y q cuaterniones puros1 de la forma r =xi + yj + zk y q = q1i + q2j + q3k, (x,y,z) pue-den representar un punto en el espacio de R3. Elcuaternio q tendra norma 1, tal que, qq∗ = 1 oq21 + q22 + q23 = 1.
Entonces,
qrq∗ = −r + 2(q1x+ q2y + q3z)q
= −r + 2 |q| |r| cos(θ)q Como |q| = 1
= −r + 2 |r| cos(θ)qr′ ≡ −qrq∗ = r − 2 |r| cos(θ)q
1Se define cuaternion puro cuando la parte real vale cero,q = 0 + bi + cj + dk
θ es el angulo entre los vectores (x, y, z) y(q1, q2, q3), ademas qrq∗ es otro cuaternio puroque corresponde a otro punto de R3.
Sea Q el plano en R3 que pasa por el origen y esnormal a (q1, q2, q3), |r| cos(θ) es la proyeccion de(x, y, z) en la direccion (q1, q2, q3), por lo que r′ re-presenta la imagen de r bajo la reflexion del planoQ. En otras palabras se estable un eje ortogonal aq, y r se encuentra a θ grados de q.
9. Considerando ahora el cuaternio puro p = p1i +p2j + p3k de norma unitaria, y del ıtem anterior,se obtiene que
r′′ ≡ −pr′p∗ = −p(−qrq∗)p∗
= (pq)r(pq)∗
donde
pq =(p1i+ p2j + p3k)(q1i+ q2j + q3k)
=− (p1q1 + p2q2 + p3q3)− (q2p3 − q3p2)i
− (q3p1 − q1p3)j − (q1p2 − q2p1)k
=− cos(φ)− sin(φ)n
n es un cuaternion puro de norma uno que repre-senta una direccion normal a q y p con el senti-do dado por la regla de la mano derecha, φ es elangulo entre las direcciones q y p. La aplicacionde r → (pq)r(pq∗) representa una rotacion en R3
siendo n el eje de la rotacion, quedando invariantebajo esta aplicacion. Esta rotacion se efectua a unvalor de dos veces el valor φ.
10. Resumiendo, para efectuar una rotacion en tornoa un eje n y un angulo de α se componete la mul-tiplicacion de cuaternios de la siguente forma
r′ = (cos(α
2)+sin(
α
2)n)r(cos(
α
2)−sin(
α
2)n) (6)
donde |n| = 1, generalizando q = cos(α2 ) + sen(αn )es el cuaternio de norma unitaria que representala rotacion en torno a la direccion n a cualquiercuaternio puro r que tendra representacion en elespacio R3.
5. Resultados
Ejercicio: Un sistema ha sido girado 30o alrededordel eje OX y luego 60o alrededor del eje OY. Calcularlas coordenadas (rx, ryrz) del vector r de coordenadasruvw = (−3, 4,−11). De igual forma que con la ma-trices homogeneas se puede componer cuaternios pararepresentar giros sucesivos.Para desarrollar el ejercicio propuesto se realizar la
2
composicion del cuaternio q que representara la ro-tacion. Sea q el cuaternio que representa la primerarotacion y p la segunda tenemos
q = cos(30/2) + sin(30/2)i
p = cos(60/2) + sin(60/2)j
pq = cos(15)cos(30) + (sin(15)cos(30))i
+ (cos(15)sin(30))j + (sin(15)sin(30))k
rxyz = (pq)ruvw(pq)∗
= −8, 02i+ 8, 96j − 1, 17k
La multiplicacion se comprueba con el programa Sa-gemath, ademas, usando matrices de transformacionhomogeneas se obtiene el mismo resultado.A continuacion se visualiza los resultados usando elprograma Sagemath, en la figura 1 se aprecia las mul-tiplicacion de cuaternios y el resultado al final de lafigura, y en la figura 2 usando el metodo de matricesde transformacion homogenea. Ambos resultado coin-ciden en exactitud.
Figura 1: Cuaternios
Figura 2: Matrices de transformacion homogenea
El resultado grafico se aprecia en la figura 3, acontinuacion se presenta el script que fue usado enSagemath para la creacion del grafico.orig=vector([0,0,0])
eje_x=line([(-5,0,0),(5,0,0)],color=’black’)
eje_y=line([(0,-5,0),(0,5,0)],color=’black’)
eje_z=line([(0,0,-5),(0,0,5)],color=’black’)
ejes=eje_x+eje_y+eje_z
vect_x=vector([3,0,0])
vect_y=vector([0,3,0])
vect_z=vector([0,0,3])
vector_uvw=vector([-3,4,-11])
arrow_x=arrow3d(orig,vect_x,color=’red’,width=3)
arrow_y=arrow3d(orig,vect_y,color=’blue’,width=3)
arrow_z=arrow3d(orig,vect_z,color=’green’,width=3)
arrow_uvw=arrow3d(orig,vector_uvw,color=’orange’,width=3)
oxyz=arrow_x+arrow_y+arrow_z
oxyz_1=arrow_x+arrow_y+arrow_z+arrow_uvw
ouvw=(oxyz_1.rotateX(-pi/6)).rotateY(-pi/3)
r=point(([-8.02,8.97,-1.17]),size=3.5,color=’red’)
show(oxyz+ouvw+ejes+r)
Figura 3: Arriba plano YZ, abajo plano XZ
El punto de color rojo representa el vector rxyz =(−8,02, 8,97,−1,17)
6. Discusiones
Si bien el metodo de multiplicacion de cuaterniosconcuerda con los resultados de matrices de trans-formacion homogenea, existen ciertas limitaciones eneste metodo que queda a la discucion la efectividaddel metodo, como el hecho de que solo se puedenusar cuaternios unitarios en su ejecucion, restringiendouna inmensa cantidad de posibilidades de aplicaciones,ademas, el algebra abstracta dificulta su total compren-sion, como dijo Albert Einstein ”Si no puedo dibujarlo,es que no lo entiendo”.
7. Conclusiones
Este metodo a pesar de sus complicaciones posee unventaja sobre su semejante, para componer una matriz
3
necesitamos de al menos 16 bits, lo cual no es mucho,pero si llevamos esta cifra a cada matriz y generamosun movimiento complejo de un instrumento automati-zado que en su programa ocupe matrices para repre-sentar una rotacion o traslacion, estamos hablando decentenas de mega bits que ocuparıa su programa, com-parado con los 4 bits que ocupa un cuaternion, redu-ciendo considerablemente la memoria ocupada en suprograma.
Referencias
[1] Victor Rodriguez Bouza, Sobre los cuaternio-nes, algebra de Lie, y matrices de Pauli, 2012-2013.
[2] G. F. Torres del Castillo, La representacionde rotaciones mediante cuterniones,pags. 43–50,Universidad Autonoma de Puebla, Departamentode Fısica Matematica, Mexico, 1999.
4