You are on page 1of 41

Accesibilidad y Realidad

Aumentada

Iniciacin a ARToolKit
Vicente Garca Daz garciavicente@uniovi.es
Universidad de Oviedo, 2012
2

Tabla de contenidos
Iniciacin a ARToolKit

1. Conceptos bsicos

2. Principios de desarrollo

3. Otros datos de inters

4. AndAR
4

Conceptos bsicos

Qu es ARToolKit?
Es una librera software que sirve para
construir aplicaciones AR
Multiplataforma (Linux, Mac, Windows, )
Escrita en C y C++
Creado inicialmente por Hirokazu Kato (1999)
Human Interface Technology Laboratory
(HITLab) University of Washington
Libre para usos no comerciales (GNU General
Public Licence)
Las licencias comerciales las administra
ARToolworks (Seattle, USA)
http://www.hitl.washington.edu/artoolkit/
5

Conceptos bsicos

Principales caractersticas
Rastreo de posiciones
Es muy complicado calcular el punto de vista del usuario para
que los objetos superpuestos aparezcan alineados con los
objetos del mundo real
Realidad aumentada a travs de video
Los objetos se superponen a un video en directo del mundo real
Realidad aumentada a travs de una vista ptica
Los objetos se colocan directamente en una vista del mundo
real

Fuente: http://www.cs.unc.edu/~azuma/azuma_AR.html
6

Conceptos bsicos

Cmo funciona?

Fuente: https://www.artoolworks.com/
7

Conceptos bsicos

Un simple ejemplo

Fuente: http://www.hitl.washington.edu/
8

AndAR

Ejemplo ARToolKit (Audi)

Fuente: http://www.youtube.com/watch?v=UgQfo7eNFdw&feature=related
9

AndAR

Ejemplo ARToolKit (Manual de Lego)

Fuente: http://www.youtube.com/watch?v=ogeIszG5ogQ
10

AndAR

Ejemplo ARToolKit (Mueble virtual)

Fuente: http://www.youtube.com/watch?v=EyKBSWb0ysk
11

AndAR

Ejemplo ARToolKit (Juego ARDefender)

Fuente: http://www.youtube.com/watch?v=EyKBSWb0ysk
12

AndAR

Ejemplo (Libros)

Fuente: http://www.youtube.com/watch?v=UVhtB-SH5b8
13

AndAR

Ejemplo (Juego PITStrategy)

Fuente: http://www.youtube.com/watch?v=EyKBSWb0ysk
14

Conceptos bsicos

Calibracin de la cmara
Los valores de configuracin de las cmaras se
guardan en un fichero camera_para.dat

Se pueden crear ficheros especficos para cada


cmara

Existen dos tipos de calibraciones:


En dos pasos (3D)
En un paso (2D)
15

Conceptos bsicos Calibracin de la cmara en 2 pasos

Patrones a utilizar
calib_list.pdf y calib_cpara.pdf
16

Conceptos bsicos Calibracin de la cmara en 2 pasos

Calibracin mediante lista de puntos (I)


calib_list.pdf se utiliza para ubicar el centro de la
imagen y para calcular la distorsin de las lentes

Se utiliza el programa calib_dist


17

Conceptos bsicos Calibracin de la cmara en 2 pasos

Calibracin mediante lista de puntos (II)


Se debe repetir el proceso varias veces
18

Conceptos bsicos Calibracin de la cmara en 2 pasos

Calibracin mediante lista de puntos (III)


Despus de marcar los puntos se puede pasar a calcular
el centro de la imagen y los parmetros de dispersin
Se puede comprobar el resultado mostrando lneas entre
los puntos
19

Conceptos bsicos Calibracin de la cmara en 2 pasos

Calibracin mediante rectngulos (I)


calib_cparam.pdf se utiliza principalmente para
calcular la distancia focal

Se utiliza el programa calib_cparam


1. Indicar los parmetros obtenidos con calib_list
2. Poner el patrn en frente de la cmara (grande)

Fuente: http://www.nikonusa.com/
20

Conceptos bsicos Calibracin de la cmara en 2 pasos

Calibracin mediante rectngulos (II)


Irn apareciendo lneas blancas
Horizontales (hay que colocarlas de arriba abajo)
Verticales (hay que colocarlas de izquierda a derecha)

Se debe repetir el proceso varias veces (alejando la imagen


hasta 50cm)
Finalmente se pide un nombre de archivo para guardar los
parmetros
21

Conceptos bsicos

Calibracin de la cmara en un paso


Se utiliza nicamente calib_list.pdf (el
primero de los patrones anteriores)

Se utiliza el programa calib_camera2

Pide al usuario la distancia entre cada punto y


despus hay que hacer los mismos pasos que con
calib_list

Es menos preciso que la calibracin en dos pasos


22

Conceptos bsicos

Arquitectura

Fuente: http://www.hitl.washington.edu/
23

Conceptos bsicos

Estructura

Fuente: http://www.hitl.washington.edu/
25

Principios de desarrollo

Introduccin
Las aplicaciones que utilizan ARToolKit tienen dos partes
bien diferenciadas:
1. Escribir la aplicacin
2. Entrenar a las rutinas de procesamiento de imgenes
INICIO 1- Leer los parmetros de la cmara y cargar los archivos con los patrones
usados como marcadores. Inicializar la captura de la cmara

REPETICIN 2- Capturar un frame a partir de la entrada de video


3- Detectar los marcadores situados dentro del frame
4- Calcular la posicin y tamao de los objetos virtuales
5- Superponer los objetos virtuales sobre el marcador

CIERRE 6- Finalizar la captura de video


26

Principios de desarrollo Desarrollo de una aplicacin sencilla

Idea general
27

Principios de desarrollo Desarrollo de una aplicacin sencilla

Principales funciones utilizadas

FASE PASO CORRESPONDENCIA CON FUNCIN EN CDIGO


INICIO 1- Inicializar captura init
REPETICIN 2- Capturar frame arVideoGetImage
3- Detectar marcadores arDetectMarker
4- Calcular posicionamiento arGetTransMat
5- Superponer objetos draw
CIERRE 6- Finalizar captura cleanup

Adems se utilizar una funcin main y una funcin


mainLoop
29

Otros datos de inters

Limitaciones de ARToolKit
Es necesario que el marcador se pueda ver por completo
para poder ser identificado
Slo reconoce marcadores 2D
La calidad depende de:
Capacidad de la cmara
Sencillez de los marcadores Tamao del Alcance (cm)
Posicin de los marcadores marcador (cm)
7 41
Condiciones de luz 9 64
11 86
19 127
30

Otros datos de inters

Algunos complementos
ARToolkit Professional
Versin de pago con mejoras
OpenVRML for ARToolkit
Para trabajar con modelos creados utilizando Virtuality
Reality Modeling Language (VRML)
osgART
Para trabajar con modelos creados utilizando
OpenSceneGraph
Studierstube tracker
Una librera para mejorar la calidad y precisin de los
marcadores 2D
ARToolKit patternmaker
Aplicacin para facilitar el desarrollo de marcadores
31

Otros datos de inters

Sistemas a los que ha sido portado


Versin de ARToolkit para Android - http://code.google.com/p/andar/
33

AndAR

Ejemplo AndAR (Planta)

Fuente: http://www.kurzweilai.net/diminished-reality-software-removes-objects-from-video-in-real-time/
34

AndAR

Arquitectura
35

AndAR Ejemplo de aplicacin

Paso 1. Crear actividad bsica


CustomActivity.java
36

AndAR Ejemplo de aplicacin

Paso 1. Crear actividad bsica (II)


CustomObject.java
37

AndAR Ejemplo de aplicacin

Paso 1. Crear actividad bsica (III)


CustomRenderer.java
38

AndAR Ejemplo de aplicacin

Paso 2. Mostrar objeto


CustomObject.java

textureId ser una propiedad que guardar el id de la textura


cube ser una propiedad que guardar un objeto de tipo Cube

Ser necesario pasarle el context


desde la actividad principal
(en el constructor)
39

AndAR Ejemplo de aplicacin

Paso 2. Mostrar objeto (II)


Cube.java
Si el tamao del marcador es de 80, un buen
tamao para los objetos podra ser 50

Se simplifica la creacin
de los FloatBuffers
40

AndAR Ejemplo de aplicacin

Paso 2. Mostrar objeto (III)


Cube.java

No hace falta especificar la


proyeccin, lo hace AndAR
41

Bibliografa

ARTOOLKIT Website; http://www.hitl.washington.edu/artoolkit/


ANDAR Website; http://code.google.com/p/andar/

You might also like