Está en la página 1de 25
MARCOS DE REFERENCIA EN CG Computación Gráfica
MARCOS DE REFERENCIA EN CG
Computación
Gráfica
World Frame
World Frame
World Frame Marco del mundo (world frame): de mano derecha, w ~ t no lo vamos

Marco del mundo (world frame):

de mano derecha,World Frame Marco del mundo (world frame): w ~ t no lo vamos a alterar. describimos

w~ t

no lo vamos a alterar.Frame Marco del mundo (world frame): de mano derecha, w ~ t describimos otros marcos respecto

describimos otros marcos respecto al marco del mundo.frame): de mano derecha, w ~ t no lo vamos a alterar. si expresamos un vector

si expresamos un vector de coordenadas respecto a este marco, les llamamos coordenadas del mundo (world coordinates).describimos otros marcos respecto al marco del mundo. COMPUTACIÓN GRÁFICA | MARCOS DE REFERENCIA Y JERARQUÍA

COMPUTACIÓN GRÁFICA

|

MARCOS DE REFERENCIA Y JERARQUÍA

|

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

ENERO-JUNIO 2015

|

23/02/2015

Object Frame
Object Frame

Asociamos uno a cada objeto de la escena.Object Frame vector de coordenadas de objeto. Para transformar un objeto transformamos su marco de referencia

vector de coordenadas de objeto.Object Frame Asociamos uno a cada objeto de la escena. Para transformar un objeto transformamos su

Para transformar un objeto transformamos su marco de referencia de objeto.a cada objeto de la escena. vector de coordenadas de objeto. La relación entre el marco

La relación entre el marco del objeto y el marco del mundo se puede escribir con una transformación afín (matriz 4x4) O.un objeto transformamos su marco de referencia de objeto. ~ o t = w ~ t

~o t = w~ t O

Para mover un objeto en la escena cambiamos entonces la matriz O.afín (matriz 4x4) O. ~ o t = w ~ t O COMPUTACIÓN GRÁFICA | MARCOS

COMPUTACIÓN GRÁFICA

|

MARCOS DE REFERENCIA Y JERARQUÍA

|

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

ENERO-JUNIO 2015

|

23/02/2015

Camera Frame
Camera Frame

En el mundo real, queremos crear una imagen 2D de un ambiente 3D.Camera Frame Para esto ponemos una cámara en la escena. La posición de cada objeto en

Para esto ponemos una cámara en la escena.mundo real, queremos crear una imagen 2D de un ambiente 3D. La posición de cada objeto

La posición de cada objeto en la imagen se basa en su relación 3D con la cámara (sus coordenadas respecto una base apropiada).un ambiente 3D. Para esto ponemos una cámara en la escena. t Definimos un marco de

t

Definimos un marco de referencia e e

llamado “eye frame”.

Se interpreta un ojo viendo hacia su eje z negativo para hacer una foto.un marco de referencia e llamado “eye frame” . El marco de la cámara se relaciona

El marco de la cámara se relaciona con una matriz de transformación 4x4 E.un ojo viendo hacia su eje z negativo para hacer una foto. p ˜ = ~

p˜ = ~o t c = w~ t O c = ~e t E 1 O c

COMPUTACIÓN GRÁFICA

|

~e t = w~ t E

MARCOS DE REFERENCIA Y JERARQUÍA

|

2

6

6

4

6

6

4

y = E 1 O 2

3

7

7

5

x

e

e

z

e

1

x

o

y o

z

o

1

3

7

7

5

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

ENERO-JUNIO 2015

|

23/02/2015

Marcos de Referencia
Marcos de Referencia
Marcos de Referencia COMPUTACIÓN GRÁFICA | MARCOS DE REFERENCIA Y JERARQUÍA | ENERO-JUNIO 2015 | 23/02/2015

COMPUTACIÓN GRÁFICA

|

MARCOS DE REFERENCIA Y JERARQUÍA

|

ENERO-JUNIO 2015

|

23/02/2015

Moviendo objetos
Moviendo objetos

Movemos un objeto actualizando su marco de referencia (a través de la matriz O).Moviendo objetos Si queremos aplicar una transformación M al marco de referencia del objeto respecto a

Si queremos aplicar una transformación M al marco de referencia del objeto respecto a un marcosu marco de referencia (a través de la matriz O). auxiliar ~ o t ~ a

auxiliar

~o t

~a t = w~ t A

.

= w~ t O

= ~a t A 1 O

) ~a t MA 1 O = w~ t AMA 1 O

En código implementamos: O ódigo implementamos: O

AMA 1 O

COMPUTACIÓN GRÁFICA

|

MARCOS DE REFERENCIA Y JERARQUÍA

|

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

ENERO-JUNIO 2015

|

23/02/2015

Moviendo objetos
Moviendo objetos

¿Qué marco de referenciaMoviendo objetos ~ a t elegir ? Aplicar la transformación del objeto respecto al objeto (¿orientación

~a t

elegir?

Aplicar la transformación del objeto respecto al objeto (¿orientación de ejes?)Moviendo objetos ¿Qué marco de referencia ~ a t elegir ? Transformar al objeto respecto el

Transformar al objeto respecto el marco de la cámara (¿origen del marco?)del objeto respecto al objeto (¿orientación de ejes?) Marco de referencia auxiliar con origen en el

Marco de referencia auxiliar con origen en el marco del objeto y ejes con la orientación del marco de la cámara.objeto respecto el marco de la cámara (¿origen del marco?) Empezar en WCS. Transladar WCS al

Empezar en WCS.objeto y ejes con la orientación del marco de la cámara. Transladar WCS al centro del

Transladar WCS al centro del OCS.con la orientación del marco de la cámara. Empezar en WCS. Rotar el marco resultante en

Rotar el marco resultante en la dirección del ECS.cámara. Empezar en WCS. Transladar WCS al centro del OCS. COMPUTACIÓN GRÁFICA | MARCOS DE REFERENCIA

del OCS. Rotar el marco resultante en la dirección del ECS. COMPUTACIÓN GRÁFICA | MARCOS DE
del OCS. Rotar el marco resultante en la dirección del ECS. COMPUTACIÓN GRÁFICA | MARCOS DE

COMPUTACIÓN GRÁFICA

|

MARCOS DE REFERENCIA Y JERARQUÍA

|

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

ENERO-JUNIO 2015

|

23/02/2015

Moviendo los objetos
Moviendo los objetos

O = ( O ) T ( O ) R

E = ( E ) T ( E ) R

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

A = ( O ) T ( E ) R

COMPUTACIÓN GRÁFICA

|

MARCOS DE REFERENCIA Y JERARQUÍA

|

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

ENERO-JUNIO 2015

|

23/02/2015

Moviendo objetos
Moviendo objetos
Moviendo objetos Rotar un objeto alrededor de su propio centro utilizando un eje de rotación con

Rotar un objeto alrededor de su propio centro utilizando un eje de rotación con

coordenadas respecto a .

~

k

k

~e t

Encontrar el valor deeje de rotación con coordenadas respecto a . ~ k k ~ e t k 0

k 0

(coordenadas del vector

~

k

respecto al marco de referencia

~o t

).

Hacer la conversión de parametrización eje-ángulo a matriz de rotación M´ (ambasdel vector ~ k respecto al marco de referencia ~ o t ). respecto a ~

respecto a

~o t

).

Actualizar la matriz O:a matriz de rotación M´ (ambas respecto a ~ o t ). O OM 0 COMPUTACIÓN

O OM 0

COMPUTACIÓN GRÁFICA

|

MARCOS DE REFERENCIA Y JERARQUÍA

|

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

ENERO-JUNIO 2015

|

23/02/2015

Moviendo la cámara
Moviendo la cámara

Modificar el marco de referenciaMoviendo la cámara ~ e t (actualizar la matriz E). Utilizando el mismo marco que para

~e t

(actualizar la matriz E).

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

Utilizando un marco ego-céntrico (respecto a la cámara misma).objetos, la cámara gira alrededor del centro del objeto. ej. juegos primera persona. E EM COMPUTACIÓN

un marco ego-céntrico (respecto a la cámara misma). ej. juegos primera persona. E EM COMPUTACIÓN GRÁFICA

ej. juegos primera persona.

E

EM

COMPUTACIÓN GRÁFICA

|

MARCOS DE REFERENCIA Y JERARQUÍA

|

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

ENERO-JUNIO 2015

|

23/02/2015

Lookat
Lookat

Describir el marco de referencia de la cámaraLookat ~ e t = w ~ t E punto hacia donde el ojo mira vertical

~e t = w~ t E

punto hacia donde el ojo mira vertical de la cámara.

q˜

y el vector “hacia arriba”

con una posición del ojo

p˜

, un

~u

describiendo la dirección

En el marco de referencia del mundo:posición del ojo p ˜ , un ~ u describiendo la dirección z = normalize (

z = normalize ( q p )

y = normalize ( u )

x = y z

COMPUTACIÓN GRÁFICA

|

normalize( c ) = q c 2 + c 2 2 + c

1

2

3

E =

2

6

6

4

x 1

x 2

x 3

y 1

y 2

y 3

z 1

z 2

z 3

p 1

p 2

p 3

0001

3

7

7

5

MARCOS DE REFERENCIA Y JERARQUÍA

|

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

ENERO-JUNIO 2015

|

23/02/2015

Escenas u objetos jerárquicos
Escenas u objetos
jerárquicos

Objetos o escenas se ensamblan con un marco de referencia fijo al cual se atan subobjetos con sus propios marcos de referencia.Escenas u objetos jerárquicos Queremos modelar el movimiento del objeto o escena completa así como sus

Queremos modelar el movimiento del objeto o escena completa así como sus subpartes.se atan subobjetos con sus propios marcos de referencia. Ej. COMPUTACIÓN GRÁFICA | MARCOS DE REFERENCIA

Ej.del objeto o escena completa así como sus subpartes. COMPUTACIÓN GRÁFICA | MARCOS DE REFERENCIA Y

del objeto o escena completa así como sus subpartes. Ej. COMPUTACIÓN GRÁFICA | MARCOS DE REFERENCIA

COMPUTACIÓN GRÁFICA

|

MARCOS DE REFERENCIA Y JERARQUÍA

|

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

ENERO-JUNIO 2015

|

23/02/2015

Estructura de pilas para jerarquías
Estructura de pilas para
jerarquías

Sirve para modelar jerarquías.Estructura de pilas para jerarquías push(M) crea una nueva matriz en el nivel más alto de

push(M) crea una nueva matriz en el nivel más alto de la pila que es una crea una nueva matriz en el nivel más 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 . M.

pop(M) elimina la matriz lo más arriba de la pila. elimina la matriz lo más arriba de la pila.

Cuando “bajamos” en la jerarquía hacia un subobjeto se hace una operación push . push.

Cuando regresamos de descendiente a padre se hace una operación pop . pop.

COMPUTACIÓN GRÁFICA

|

MARCOS DE REFERENCIA Y JERARQUÍA

|

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

ENERO-JUNIO 2015

|

23/02/2015

Escenas u objetos jerárquicos
Escenas u objetos
jerárquicos

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);

COMPUTACIÓN GRÁFICA

|

MARCOS DE REFERENCIA Y JERARQUÍA

COMPUTACIÓN GRÁFICA | MARCOS DE REFERENCIA Y JERARQUÍA S.J. Gortler. Foundations of 3D Computer Graphics. MIT

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

|

ENERO-JUNIO 2015

|

23/02/2015

Modelos articulados
Modelos articulados

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

Los objetos rígidos que forman las conexiones entre las junturas (joints ) se conocen como links . 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 . órgano terminal o end-effector.

En robótica se manejan diferentes joints, en CG los más comunes son los joints de rotación o los joints ball- and-socket . rotación o los joints ball- and-socket.

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

Cuando un joint tiene más 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 tamaño cero.joint se conoce como grado de libertad ( DOF ) del joint. COMPUTACIÓN GRÁFICA | MARCOS

COMPUTACIÓN GRÁFICA

|

MARCOS DE REFERENCIA Y JERARQUÍA

|

ENERO-JUNIO 2015

|

23/02/2015

Grados de libertad en diferentes tipos de joint
Grados de libertad en
diferentes tipos de joint
Grados de libertad en diferentes tipos de joint Revolute joint Cylindrical joint Planar joint COMPUTACIÓN GRÁFICA

Revolute joint

Cylindrical joint

diferentes tipos de joint Revolute joint Cylindrical joint Planar joint COMPUTACIÓN GRÁFICA | Prismatic joint

Planar joint

COMPUTACIÓN GRÁFICA

|

joint Cylindrical joint Planar joint COMPUTACIÓN GRÁFICA | Prismatic joint Ball-and-socket joint MARCOS DE REFERENCIA Y
joint Cylindrical joint Planar joint COMPUTACIÓN GRÁFICA | Prismatic joint Ball-and-socket joint MARCOS DE REFERENCIA Y

Prismatic joint

joint Planar joint COMPUTACIÓN GRÁFICA | Prismatic joint Ball-and-socket joint MARCOS DE REFERENCIA Y JERARQUÍA |

Ball-and-socket joint

MARCOS DE REFERENCIA Y JERARQUÍA

|

ENERO-JUNIO 2015

|

23/02/2015

Modelos articulados
Modelos articulados

Los links y joints se pueden representar en una estructura de árbol de nodos y arcos.Modelos articulados El nodo superior en el árbol es el nodo raíz (root) que corresponde al

El nodo superior en el árbol es el nodo raíz (root) que corresponde al objeto descrito respecto al marco de referencia del wcs o el objeto más alto en la jerarquía.representar en una estructura de árbol de nodos y arcos. La posición de los demás nodos

La posición de los demás nodos se especifican respecto a su padre comenzando por la raíz.referencia del wcs o el objeto más alto en la jerarquía. COMPUTACIÓN GRÁFICA | MARCOS DE

COMPUTACIÓN GRÁFICA

|

MARCOS DE REFERENCIA Y JERARQUÍA

|

ENERO-JUNIO 2015

root arc root joint
root arc
root joint

root

COMPUTACIÓN GRÁFICA | MARCOS DE REFERENCIA Y JERARQUÍA | ENERO-JUNIO 2015 root arc root joint root
COMPUTACIÓN GRÁFICA | MARCOS DE REFERENCIA Y JERARQUÍA | ENERO-JUNIO 2015 root arc root joint root

root

|

23/02/2015

Modelos articulados
Modelos articulados

Un nodo a partir del cual no hay arcos hacia abajo es el nodo hoja.Modelos articulados “Hacia arriba en la jerarquía” significa más cerca de la raíz. Dos nodos conectados

“Hacia arriba en la jerarquía” significa más cerca de la raíz.a partir del cual no hay arcos hacia abajo es el nodo hoja. Dos nodos conectados

Dos nodos conectados por un arco tienen una relación de padre- hijo.arriba en la jerarquía” significa más cerca de la raíz. La transformación jerarquía-árbol relaciona un nodo

La transformación jerarquía-árbol relaciona un nodo en el árbol a la información sobre el objeto (link) y el arco del árbol (el joint) a la transformación a realizar a todos sus nodos hijo.conectados por un arco tienen una relación de padre- hijo. COMPUTACIÓN GRÁFICA | MARCOS DE REFERENCIA

COMPUTACIÓN GRÁFICA

|

MARCOS DE REFERENCIA Y JERARQUÍA

|

ENERO-JUNIO 2015

|

todos sus nodos hijo. COMPUTACIÓN GRÁFICA | MARCOS DE REFERENCIA Y JERARQUÍA | ENERO-JUNIO 2015 |
todos sus nodos hijo. COMPUTACIÓN GRÁFICA | MARCOS DE REFERENCIA Y JERARQUÍA | ENERO-JUNIO 2015 |
root joint
root joint

23/02/2015

Modelos jerárquicos
Modelos jerárquicos

El Nodo i contiene:Modelos jerárquicos la transformación que debe aplicarse a la posición del objeto de tal manera que

la transformación que debe aplicarse a la posición del objeto de tal manera que su punto de rotación sea el origen.Modelos jerárquicos El Nodo i contiene: atributos del objeto. El Arco i contiene: la transformación de

atributos del objeto.de tal manera que su punto de rotación sea el origen. El Arco i contiene: la

El Arco i contiene:su punto de rotación sea el origen. atributos del objeto. la transformación de rotación y translación

la transformación de rotación y translación del Link i a su posición neutral relativa al Link n-1.sea el origen. atributos del objeto. El Arco i contiene: las variables responsables de articular el

las variables responsables de articular el joint.del Link i a su posición neutral relativa al Link n-1. COMPUTACIÓN GRÁFICA | MARCOS DE

COMPUTACIÓN GRÁFICA

|

MARCOS DE REFERENCIA Y JERARQUÍA

|

ENERO-JUNIO 2015

|

23/02/2015

Arco i Nodo i
Arco i
Nodo i

Ejemplo

Ejemplo Definición original del objeto raíz (Link 0) Definición original del Link 1 Definición original del

Definición original del objeto raíz (Link 0)

Ejemplo Definición original del objeto raíz (Link 0) Definición original del Link 1 Definición original del

Definición original del Link 1

Definición original del Link 1.1

T0
T0

El objeto raíz (Link 0) se transforma (translación y escalamiento) por T 0 a una posición en el espacio global.

T1 T1.1
T1
T1.1

El Link 1 se transforma por T1 a su posición relativa al Link 0 no transformado.

Link 1.1 transformado por T1.1 a su posición relativa al Link 1 no transformado

V 0 ’ = T 0 Ŋ V 0

T 0 (posición global y orientación)

datos para el Link 0 (raíz)
datos para el Link 0 (raíz)

V

1 ’ = T 0 Ŋ T 1 Ŋ V 1

T 1 (transformación del Link 1 relativo al Link 0)

datos para el Link 1 T
datos para el Link 1
T
datos para el Link 1.1
datos para el Link 1.1

V 1.1 ’ = T 0 Ŋ T 1 Ŋ T 1.1 Ŋ V 1.1

1.1 (transformación del Link 1.1 relativo al Link 1)

Link 1.1 θ1.1 Link 1 θ1
Link 1.1
θ1.1
Link 1
θ1
Link 1.1 θ1.1 Link 1 θ1 T 0 datos para el Link 0 (raíz) T 1

T 0

datos para el Link 0 (raíz) T 1 R 1 ( Ư 1 ) datos
datos para el Link 0 (raíz)
T 1
R 1 ( Ư 1 )
datos para el Link 1
T 1.1
R 1.1 ( Ư 1.1 )
datos para el Link 1.1

T0

Link 1 T 1.1 R 1.1 ( Ư 1.1 ) datos para el Link 1.1 T0

V 0 ’ = T 0 Ŋ V 0

V 1 ’ = T 0 Ŋ T 1 Ŋ R 1 ( Ư 1 ) Ŋ V 1

Cinemática directa
Cinemática directa

Para evaluar una jerarquía de links y joints hacemos un recorrido depth-first en el árbol correspondiente.Cinemática directa Cuando un arco se visita hacia abajo en la jerarquía, sus transformaciones se concatenan

Cuando un arco se visita hacia abajo en la jerarquía, sus transformaciones se concatenan a la transformación de su nodo padre. nodo padre.

Cuando un arco se visita hacia arriba en la jerarquía, la transformación de ese nodo debe restablecerse antes de continuar hacia abajo por otra rama.se concatenan a la transformación de su nodo padre. La estructura de datos para cinemática: pila

La estructura de datos para cinemática: pila de matrices de transformación.restablecerse antes de continuar hacia abajo por otra rama. Un conjunto de parámetros de rotación y

Un conjunto de parámetros de rotación y translación (DOF) que resulta de especificar completamente la posición y orientación de cada link de conoce como configuración o pose.datos para cinemática: pila de matrices de transformación. Una pose se especifica generalmente con un vector

Una pose se especifica generalmente con un vector con el mismo número n que los n grados de libertad.de cada link de conoce como configuración o pose. COMPUTACIÓN GRÁFICA | MARCOS DE REFERENCIA Y

COMPUTACIÓN GRÁFICA

|

MARCOS DE REFERENCIA Y JERARQUÍA

|

ENERO-JUNIO 2015

|

23/02/2015

CS de cuerpos rígidos

Cada configuración de un cuerpo rígido libre de rotar relativamente a un marco de referencia inercial (fijo), puede identificarse con un R ∈ SO(3) único. R SO(3) único.

Bajo esta identificación, se refiere al grupo de rotaciones SO(3) como al espacio de configuraciones CS del sistema. SO(3) como al espacio de configuraciones CS del sistema.

como al espacio de configuraciones CS del sistema. [ J.J. Kuffner. Effective Sampling and Distance Metrics

[ 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 rígidos

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

Más generalmente llamamos al conjunto CS espacio de configuración del sistema si cada elemento R(t) ∈ SO(3) corresponde a una CS espacio de configuración del sistema si cada elemento R(t) SO(3) corresponde a una configuración válida del sistema

y se puede identificar con un elemento único de CS.

1 x˙ = 12 y˙ The time that will never happen!!! J-P. Laumond, LAAS-CNRS
1
x˙ =
12 y˙
The time that will
never happen!!!
J-P. Laumond, LAAS-CNRS
de CS . 1 x˙ = 12 y˙ The time that will never happen!!! J-P. Laumond,

www.docs.autodesk.com/3DSMAX