Sie sind auf Seite 1von 25

MARCOS DE REFERENCIA EN CG

C o m p uta c i n G r fica
World Fra me
Marco del mundo (world frame): w
~ t

de mano derecha,

no lo vamos a alterar.

describimos otros marcos respecto al marco del mundo.

si expresamos un vector de coordenadas respecto a este marco, les llamamos


coordenadas del mundo (world coordinates).
S.J. Gortler. Foundations of 3D Computer Graphics. MIT Press. 2012.

COMPUTACIN GRFICA | MARCOS DE REFERENCIA Y JERARQUA | ENERO-JUNIO 2015 | 23/02/2015


Object Fra me
Asociamos uno a cada objeto de la escena.

vector de coordenadas de objeto.

Para transformar un objeto transformamos su marco de referencia de objeto.

La relacin entre el marco del objeto y el marco del mundo se puede escribir con una
transformacin afn (matriz 4x4) O.
t t
~ O
~o = w
Para mover un objeto en la escena cambiamos entonces la matriz O.

S.J. Gortler. Foundations of 3D Computer Graphics. MIT Press. 2012.

COMPUTACIN GRFICA | MARCOS DE REFERENCIA Y JERARQUA | ENERO-JUNIO 2015 | 23/02/2015


Ca mera Fra me
En el mundo real, queremos crear una imagen 2D de un ambiente 3D.

Para esto ponemos una cmara en la escena.

La posicin de cada objeto en la imagen se basa en su relacin 3D con la cmara (sus coordenadas respecto una base apropiada).
t

Definimos un marco de referencia e llamado eye frame.

Se interpreta un ojo viendo hacia su eje z negativo para hacer una foto.

El marco de la cmara se relaciona con una matriz de transformacin 4x4 E.

t t
2 3 2 3
~ E
~e = w xe xo
6 ye 7 6 y 7
6 7=E 1 6 o 7
O4
t
p = ~o c = w t t 1 4 ze 5 zo 5
~ Oc = ~e E Oc
1 1
S.J. Gortler. Foundations of 3D Computer Graphics. MIT Press. 2012.

COMPUTACIN GRFICA | MARCOS DE REFERENCIA Y JERARQUA | ENERO-JUNIO 2015 | 23/02/2015


Ma rcos de Referencia

COMPUTACIN GRFICA | MARCOS DE REFERENCIA Y JERARQUA | ENERO-JUNIO 2015 | 23/02/2015


Mov iendo objetos

Movemos un objeto actualizando su marco de referencia (a travs de la matriz O).

Si queremos aplicar una transformacin M al marco de referencia del objeto respecto a un marco
auxiliar ~at = w
~ A.
t

t
~o
t
~ O
=w
t 1
= ~a A O
t 1
) ~a M A O
t 1
~ AM A
=w O

En cdigo implementamos: O AM A 1
O
S.J. Gortler. Foundations of 3D Computer Graphics. MIT Press. 2012.

COMPUTACIN GRFICA | MARCOS DE REFERENCIA Y JERARQUA | ENERO-JUNIO 2015 | 23/02/2015


Mov iendo objetos

Qu marco de referencia ~
a elegir?
t

Aplicar la transformacin del objeto respecto al objeto (orientacin de ejes?)

Transformar al objeto respecto el marco de la cmara (origen del marco?)

Marco de referencia auxiliar con origen en el marco del objeto y ejes con la
orientacin del marco de la cmara.

Empezar en WCS.

Transladar WCS al centro del OCS.

Rotar el marco resultante en la direccin del ECS.

S.J. Gortler. Foundations of 3D Computer Graphics. MIT Press. 2012.

COMPUTACIN GRFICA | MARCOS DE REFERENCIA Y JERARQUA | ENERO-JUNIO 2015 | 23/02/2015


Mov iendo los objetos

O = (O)T (O)R
E = (E)T (E)R

t t
~ (O)T (E)R
~a = w

A = (O)T (E)R

S.J. Gortler. Foundations of 3D Computer Graphics. MIT Press. 2012.

COMPUTACIN GRFICA | MARCOS DE REFERENCIA Y JERARQUA | ENERO-JUNIO 2015 | 23/02/2015


Mov iendo objetos

Rotar un objeto alrededor de su propio centro utilizando un eje de rotacin ~k con


coordenadas k respecto a ~e . t

Encontrar el valor de k (coordenadas del


0
vector ~k respecto al marco de referencia ~o ). t

Hacer la conversin de parametrizacin eje-ngulo a matriz de rotacin M (ambas


respecto a ~o ).
t

Actualizar la matriz O: O OM 0

S.J. Gortler. Foundations of 3D Computer Graphics. MIT Press. 2012.

COMPUTACIN GRFICA | MARCOS DE REFERENCIA Y JERARQUA | ENERO-JUNIO 2015 | 23/02/2015


Mov iendo la cma ra

Modificar el marco de referencia ~e (actualizar la matriz E).


t

Utilizando el mismo marco que para los objetos, la cmara gira alrededor del centro del
objeto.

Utilizando un marco ego-cntrico (respecto a la cmara misma). E EM

ej. juegos primera persona.

S.J. Gortler. Foundations of 3D Computer Graphics. MIT Press. 2012.

COMPUTACIN GRFICA | MARCOS DE REFERENCIA Y JERARQUA | ENERO-JUNIO 2015 | 23/02/2015


Lookat
Describir el marco de referencia de la cmara ~e = w
~ E con una posicin del ojo p , un
t t

punto hacia donde el ojo mira q y el vector hacia arriba ~u describiendo la direccin
vertical de la cmara.

En el marco de referencia del mundo:


q
z = normalize(q p) normalize(c) = c21 + c22 + c23
2 3
y = normalize(u) x1 y1 z1 p 1
6 x 2 y2 z2 p 2 7
x=yz E=6 4 x 3 y3
7
z3 p 3 5
0 0 0 1
S.J. Gortler. Foundations of 3D Computer Graphics. MIT Press. 2012.

COMPUTACIN GRFICA | MARCOS DE REFERENCIA Y JERARQUA | ENERO-JUNIO 2015 | 23/02/2015


Escenas u objetos
jerrqu icos

Objetos o escenas se ensamblan


con un marco de referencia fijo al
cual se atan subobjetos con sus
propios marcos de referencia.

Queremos modelar el movimiento


del objeto o escena completa as
como sus subpartes.

Ej.
S.J. Gortler. Foundations of 3D Computer Graphics. MIT Press. 2012.

COMPUTACIN GRFICA | MARCOS DE REFERENCIA Y JERARQUA | ENERO-JUNIO 2015 | 23/02/2015


Estructu ra de pilas pa ra
jera rquas

Sirve para modelar jerarquas.

push(M) crea una nueva matriz en el nivel ms alto de la pila que es una copia de la matriz que
estaba previamente en ese lugar.

multiplica por la derecha esta matriz con la matriz argumento M.

pop(M) elimina la matriz lo ms arriba de la pila.

Cuando bajamos en la jerarqua hacia un subobjeto se hace una operacin push.

Cuando regresamos de descendiente a padre se hace una operacin pop.


S.J. Gortler. Foundations of 3D Computer Graphics. MIT Press. 2012.

COMPUTACIN GRFICA | MARCOS DE REFERENCIA Y JERARQUA | ENERO-JUNIO 2015 | 23/02/2015


Escenas u objetos
jerrqu icos

...
matrixStack.initialize(inv(E));
matrixStack.push(O);
matrixStack.push(O');
draw(matrixStack.top(), cube); //body
matrixStack.pop(); //O'

matrixStack.push(A);
matrixStack.push(B);
matrixStack.push(B');
draw(matrixStack.top(),sphere); //upper arm
matrixStack.pop(); // B'

matrixStack.push(C);
matrixStack.push(C');
draw(matrixStack.top(),sphere); //lower arm
matrixStack.pop(); // C'
matrixStack.pop(); // C

matrixStack.pop(); // B
matrixStack.pop(); // A
// current top matrix is inv(E)*O
// we can now draw another arm
matrixStack.push(F);
... S.J. Gortler. Foundations of 3D Computer Graphics. MIT Press. 2012.

COMPUTACIN GRFICA | MARCOS DE REFERENCIA Y JERARQUA | ENERO-JUNIO 2015 | 23/02/2015


Modelos a rticulados

Objetos que se conectan en sus extremos para formar cadenas articuladas.

Los objetos rgidos que forman las conexiones entre las junturas (joints) se conocen como links.

El objeto libre en el extremo de la cadena de joints y links se conoce como rgano terminal o end-effector.

En robtica se manejan diferentes joints, en CG los ms comunes son los joints de rotacin o los joints ball-
and-socket.

La direccin permitida de movimiento de un joint se conoce como grado de libertad (DOF) del joint.

Cuando un joint tiene ms de un grado de libertad se puede modelar como un conjunto de n joints, cada uno
con un grado de libertad conectado por n-1 links de tamao cero.

COMPUTACIN GRFICA | MARCOS DE REFERENCIA Y JERARQUA | ENERO-JUNIO 2015 | 23/02/2015


Grados de libertad en
diferentes tipos de joint

Revolute joint

Prismatic joint

Cylindrical joint

Ball-and-socket joint

Planar joint

COMPUTACIN GRFICA | MARCOS DE REFERENCIA Y JERARQUA | ENERO-JUNIO 2015 | 23/02/2015


Modelos a rticulados

Los links y joints se pueden representar en una


estructura de rbol de nodos y arcos.
root

El nodo superior en el rbol es el nodo raz (root) que


corresponde al objeto descrito respecto al marco de
referencia del wcs o el objeto ms alto en la jerarqua.
root arc

root joint

root

La posicin de los dems nodos se especifican respecto


a su padre comenzando por la raz.

COMPUTACIN GRFICA | MARCOS DE REFERENCIA Y JERARQUA | ENERO-JUNIO 2015 | 23/02/2015


Modelos a rticulados

Un nodo a partir del cual no hay arcos hacia abajo es el nodo hoja.

Hacia arriba en la jerarqua significa ms cerca de la raz.

Dos nodos conectados por un arco tienen una relacin de padre-


hijo.
root joint

La transformacin jerarqua-rbol relaciona un nodo en el rbol a la


informacin sobre el objeto (link) y el arco del rbol (el joint) a la
transformacin a realizar a todos sus nodos hijo.

COMPUTACIN GRFICA | MARCOS DE REFERENCIA Y JERARQUA | ENERO-JUNIO 2015 | 23/02/2015


Modelos jerrqu icos

El Nodo i contiene:

la transformacin que debe aplicarse a la posicin del objeto de tal


manera que su punto de rotacin sea el origen. Arco i

atributos del objeto.


Nodo i

El Arco i contiene:

la transformacin de rotacin y translacin del Link i a su


posicin neutral relativa al Link n-1.

las variables responsables de articular el joint.

COMPUTACIN GRFICA | MARCOS DE REFERENCIA Y JERARQUA | ENERO-JUNIO 2015 | 23/02/2015


Ejemplo

El objeto raz (Link 0) se


Definicin original del transforma (translacin y
objeto raz (Link 0) escalamiento) por T0 a una
posicin en el espacio global.
T0

Definicin original del El Link 1 se transforma por


Link 1 T1 a su posicin relativa al
T1 Link 0 no transformado.

Definicin original del Link 1.1 transformado


Link 1.1 T1.1 por T1.1 a su posicin
relativa al Link 1 no
transformado
T0 (posicin global y orientacin)
V0 = T0 V0

datos para el Link 0 (raz)

V1 = T0 T1 V1 T1 (transformacin del Link 1 relativo al Link 0)

datos para el Link 1

V1.1 = T0 T1 T1.1 V1.1 T1.1 (transformacin del Link 1.1 relativo al Link 1)

datos para el Link 1.1


Link 1.1

1.1
Link 1

T0

datos para el Link 0 (raz)

T1
T0 R1(1)

datos para el Link 1

T1.1
R1.1(1.1)

V0 = T0 V0 datos para el Link 1.1

V1 = T0 T1 R1(1) V1

V1.1 = T0 T1 R1(1) T1.1 R1.1(1.1) V1.1


Cinemtica directa

Para evaluar una jerarqua de links y joints hacemos un recorrido depth-first en el rbol correspondiente.

Cuando un arco se visita hacia abajo en la jerarqua, sus transformaciones se concatenan a la transformacin de su
nodo padre.

Cuando un arco se visita hacia arriba en la jerarqua, la transformacin de ese nodo debe restablecerse antes de
continuar hacia abajo por otra rama.

La estructura de datos para cinemtica: pila de matrices de transformacin.

Un conjunto de parmetros de rotacin y translacin (DOF) que resulta de especificar completamente la posicin y
orientacin de cada link de conoce como configuracin o pose.

Una pose se especifica generalmente con un vector con el mismo nmero n que los n grados de libertad.

COMPUTACIN GRFICA | MARCOS DE REFERENCIA Y JERARQUA | ENERO-JUNIO 2015 | 23/02/2015


CS de cuerpos rgidos

Cada configuracin de un cuerpo rgido libre de rotar relativamente a un marco


de referencia inercial (fijo), puede identificarse con un R SO(3) nico.

Bajo esta identificacin, se refiere al grupo de rotaciones SO(3) como al espacio


de configuraciones CS del sistema.

[ J.J. Kuffner. Effective Sampling and Distance Metrics for 3D Rigid Body Path Planning. Proc. of the IEEE Int. Conf. on Robotics and Automation (ICRA). 2004.]
CS de cuerpos rgidos

La trayectoria del sistema es una curva R(t)SO(3) para t[0,T].


Ms generalmente llamamos al conjunto CS espacio de configuracin del sistema


si cada elemento R(t)SO(3) corresponde a una configuracin vlida del sistema
y se puede identificar con un elemento nico de CS.

1
x = y
12

The time that will


never happen!!! www.docs.autodesk.com/3DSMAX
J-P. Laumond, LAAS-CNRS

Das könnte Ihnen auch gefallen