Anda di halaman 1dari 25

Orientacin

mat-610
Animacin

Orientacin: configuracin rotacional instantnea de un objeto.


Equivalente rotacional de la posicin.
Diferentes representaciones para la orientacin.

2
Transformaciones compuestas

Una serie de transformaciones a un objeto se pueden


aplicar como una serie de multiplicaciones de
matrices.

: posicin en coordenadas globales


: posicin en coordenadas locales

3
Representacin de una orientacin arbitraria

Matrices de transformacin - Carlos


ngulos fijos (fixed angle) - Trino
ngulos de Euler - Trino
Eje-ngulo (axis-angle) - Hugo
Cuaterniones - Osvaldo
Mapa exponencial ... - Carlos Arrayga

4
Matrices de rotacin
Matrices de transformacin de 4x4

a b c d a b c tx
e f g h e f g ty

i j k l i j k tz
m n o p 0 0 0 1

Matrices de rotacin:


1 0 0 0 cos() 0 sin() 0 cos() sin() 0 0
0 cos() sin() 0 0 1 0 0 sin() cos() 0 0

0 sin() cos() 0 sin() 0 cos() 0 0 0 1 0
0 0 0 1 0 0 0 1 0 0 0 1

5
Matrices de rotacin

una interpolacin directa de orientaciones no es aceptable en muchos


casos:
ir de una orientacin de 90 grados en el eje-y a una orientacin de
-90 grados en el eje y:


0 0 1 0 0 0 0 0 1
0 1 0 0 1 0 0 1 0
1 0 0 0 0 0 1 0 0

Representacin prctica para componer rotaciones.


Preservan longitudes (isomtricas)
Ortonormales
6
ngulos fijos: ejes globales
ngulos usados para rotar sobre ejes fijos.
El orden de las rotaciones est implcito x-y-z.
Se puede especificar otro orden: x-y-x, con excepcin de aquellos con
dos rotaciones sobre el mismo eje como: x-x-y.
La orientacin entonces son 3 parmetros, e.g. (10,45,90)
Rz(90)Ry(45)Rx(10)

Z
7
ngulos fijos
Problema: dos de los ejes de rotacin pueden terminar uno sobre otro
cuando el objeto se puede mover libremente en el espacio.

8
Gimbal lock
Prdida de un grado de libertad que ocurre cuando los ejes de dos de
los tres gimbals llegan al mismo lugar y no pueden compensar las
rotaciones de uno de los ejes en 3-D.

Qu pasa al interpolar directamente (0,90,0) y (90,45,90)?


obtendramos (45,67.5,45) pero queremos (90,22.5,90).

9
Interpolacin con ngulos fijos
(0,90,0) to (90,0,90)

(0,0,0)

(0,90,0) (90,0,90)

10
ngulos de Euler: ejes locales
Teorema de Euler:
En un espacio 3D, cualquier sistema coordenado Cartesiano con un
origen comn est relacionado por una rotacin sobre un eje fijo.
Una rotacin arbitraria puede representarse por 3 parmetros.
Podemos usar cualquiera de las siguientes secuencias de 3 rotaciones:
Y

XYZ XZY XYX XZX


YXZ YZX YXY YZY
X
ZXY ZYX ZXZ ZYZ

Z
Las rotaciones con ngulos de Euler estn en orden reverso que las
rotaciones sobre ejes fijos:
Rz (90)Ry (60)Rx (30) = Ex (30)Ey (60)Ez (90)
11
ngulos de Euler: ejes locales
De acuerdo con el teorema de Euler, cualquier rotacin puede
representarse usando tres ngulos.
Si las rotaciones se escriben en trminos de matrices de rotacin A,B y
C, entonces la rotacin general R se puede escribir cmo:
R = ABC

Usando la convencin x que es la ms comn tenemos:



cos sin 0 1 0 0 cos sin 0
A = sin cos 0 , B = 0 cos sin , C = sin cos 0 .
0 0 1 0 sin cos 0 0 1

12
Gimbal lock (tambin)
Una rotacin de 90 grados causa la prdida de un grado de libertad
(DOF).

z z z

3
/2
1 1
y y y

1 1
x x x
x x

13
ngulos de Euler
Mismos problemas que la representacin con ngulos fijos.

14
ngulos de Euler

Se usan en gran cantidad de aplicaciones pero a veces requieren de


decisiones arbitrarias.
No se interpolan de manera consistente (lo que no es siempre malo).
Pueden sufrir del Gimbal lock y problemas relacionados.
No hay forma fcil de concatenar rotaciones.
La conversin a y de matrices de rotacin requiere varias operaciones
trigonomtricas.
Es una representacin compacta (requiere solamente 3 nmeros).

15
Axis-angle

Meta: encontrar una parametrizacin de la rotacin tal que:


exista una rotacin simple y estable entre cualquier par de
orientaciones.
los movimientos sean independientes de la eleccin de sistema
coordenado.

16
Axis-angle
Representacin de una orientacin con un vector y un escalar.
el vector es el eje sobre el cul se har la rotacin.
el escalar es el ngulo que se va a rotar.
OpenGL.

17
Axis-angle
Cualquier orientacin se puede representar con estos 4 parmetros.
Se puede interpolar el ngulo y el eje de forma independiente.
No tiene problemas del gimbal lock.
No puede componer rotaciones de manera eficiente: hay que convertir a
matrices de rotacin.
1. Interpolar los ejes de A1 a A2. Rotar el
1 eje alrededor de A1 x A2 para obtener A
1

Y 2. Interpolar el ngulo de 1 a 2 para
2 obtener
A1 x A2
2
3. Rotar el objeto alrededor de A.
Z
X
18
Cuaterniones
4 parmetros de nmeros reales [w,x,y,z] o, de manera equivalente [w,v]
que consiste en un escalar w, y un vector 3-dimensional v.
Representacin alternativa del axis-angle que contiene la misma
informacin en forma distinta.
Puede interpolarse y concatenarse en la misma representacin.

escalar
vector

19
Cuaterniones
Extiende el concepto de rotacin en 3D a 4D.
Evita el problema del gimbal lock y permite la implementacin de
rotaciones suaves y continuas.
Se considera como la adicin de un ngulo de rotacin a las coordenadas
esfricas: longitud, latitud y ngulos de rotacin.
Un cuaternin se define usando cuatro valores de punto flotante
[x,y,z,w]. stos se calculan de la combinacin de tres coordenadas del eje
de rotacin y el ngulo de rotacin.
Los cuaterniones son una extensin de los nmeros reales, similar a la de
los nmeros complejos. Mientras que los nmeros complejos son una
extensin de los reales por la adicin de la unidad imaginaria i, tal que i2
= 1, los cuaterniones son una extensin generada de manera anloga
aadiendo las unidades imaginarias: i, j y k a los nmeros reales y tal que
i2 = j2 = k2 = ijk = 1.
20
Cuaterniones
Representacin vectorial:
Se pueden expresar como el conjunto .H = {a + bi + cj + dk : a, b, c, d R}
Entonces un cuaternin es un nmero de la forma a + bi + cj + dk,
donde a, b, c, y d son nmeros reales unvocamente determinados por
cada cuaternin.
Representacin matricial:

21
Operaciones bsicas con cuaterniones
Suma:
[s1 , v1 ] + [s2 , v2 ] = [s1 + s2 , v1 + v2 ]

Multiplicacin:
no conmutativa: q1 q2 = q2 q1

asociativa: (q1 q2 ) q3 = q1 (q2 q3 )

[s1 , v1 ] [s2 , v2 ] = [s1 s2 v1 v2 , s1 v2 + s2 v1 + v1 v2 ]


multiplicacin producto producto
escalar punto vectorial

22
Operaciones bsicas con cuaterniones
La identidad multiplicativa es el cuaternin: [1, (0, 0, 0)]

[s, v] [1, (0, 0, 0)] = [s, v]

Inversin:
2
1
[s, v]1
=q 1
= [s, v]
||q||


||q|| = s2 + x2 + y 2 + z 2

La multiplicacin de un cuarternin por su inverso nos da un cuaternin


unitario [1, (0, 0, 0)]

23
Rotacin de vectores usando cuaterniones
Para rotar un vector v, utilizando cuaterniones representamos el vector
como [0,v] y la rotacin con el cuaternin q, entonces:

v = Rot(v) = q v q
1

Una serie de rotaciones se pueden compilar en una representacin nica


multiplicando cuaterniones. Consideremos la rotacin representada por un
cuaternin p seguida por la rotacin representada por el cuaternin q en
un vector v:

Rotq (Rotp (v)) = q (p v p1 ) q 1

= ((qp) v (qp)1 )
= Rotqp (v)

24
Rotacin de vectores usando cuaterniones
El inverso de un cuaternin representa la rotacin alrededor de mismo
eje, con el mismo ngulo pero en direccin contraria:

Rot1 (Rot(v)) = q 1 (q v q 1 ) q = v

25

Anda mungkin juga menyukai