SlideShare una empresa de Scribd logo
Accesibilidad y Realidad
      Aumentada



   Iniciación a ARToolKit
              Vicente García Díaz – garciavicente@uniovi.es
                                Universidad de Oviedo, 2012
2


Tabla de contenidos
                        Iniciación a ARToolKit

1. Conceptos básicos

2. Principios de desarrollo

3. Otros datos de interés

4. AndAR
4

Conceptos básicos

    ¿Qué es ARToolKit?
  • Es una librería 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 básicos

    Principales características
  • 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 través de video
    ▫ Los objetos se superponen a un video en directo del mundo real
  • Realidad aumentada a través 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 básicos

    ¿Cómo funciona?




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

Conceptos básicos

    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 básicos

    Calibración de la cámara
  • Los valores de configuración de las cámaras se
    guardan en un fichero camera_para.dat

  • Se pueden crear ficheros específicos para cada
    cámara

  • Existen dos tipos de calibraciones:
    ▫ En dos pasos (3D)
    ▫ En un paso (2D)
15

Conceptos básicos         Calibración de la cámara en 2 pasos



    Patrones a utilizar
  • calib_list.pdf y calib_cpara.pdf
16

Conceptos básicos              Calibración de la cámara en 2 pasos



    Calibración mediante lista de puntos (I)
  • calib_list.pdf se utiliza para ubicar el centro de la
    imagen y para calcular la distorsión de las lentes


  • Se utiliza el programa calib_dist
17

Conceptos básicos                Calibración de la cámara en 2 pasos



    Calibración mediante lista de puntos (II)
  • Se debe repetir el proceso varias veces
18

Conceptos básicos              Calibración de la cámara en 2 pasos



    Calibración mediante lista de puntos (III)
  • Después de marcar los puntos se puede pasar a calcular
    el centro de la imagen y los parámetros de dispersión
  • Se puede comprobar el resultado mostrando líneas entre
    los puntos
19

Conceptos básicos              Calibración de la cámara en 2 pasos



    Calibración mediante rectángulos (I)
  • calib_cparam.pdf se utiliza principalmente para
    calcular la distancia focal




  • Se utiliza el programa calib_cparam
    1. Indicar los parámetros obtenidos con calib_list
    2. Poner el patrón en frente de la cámara (grande)

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

Conceptos básicos                   Calibración de la cámara en 2 pasos



    Calibración mediante rectángulos (II)
  • Irán apareciendo líneas 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
    parámetros
21

Conceptos básicos

    Calibración de la cámara 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
    después hay que hacer los mismos pasos que con
    calib_list

  • Es menos preciso que la calibración en dos pasos
22

Conceptos básicos

    Arquitectura




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

Conceptos básicos

    Estructura




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

Principios de desarrollo

     Introducción
   • Las aplicaciones que utilizan ARToolKit tienen dos partes
     bien diferenciadas:
     1. Escribir la aplicación
     2. Entrenar a las rutinas de procesamiento de imágenes
       INICIO              1- Leer los parámetros de la cámara y cargar los archivos con los patrones
                           usados como marcadores. Inicializar la captura de la cámara

       REPETICIÓN          2- Capturar un frame a partir de la entrada de video
                           3- Detectar los marcadores situados dentro del frame
                           4- Calcular la posición y tamaño 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 aplicación sencilla



     Idea general
27

Principios de desarrollo                               Desarrollo de una aplicación sencilla



     Principales funciones utilizadas

       FASE                    PASO             CORRESPONDENCIA CON FUNCIÓN EN CÓDIGO
     INICIO       1- Inicializar captura        init
     REPETICIÓN   2- Capturar frame             arVideoGetImage
                  3- Detectar marcadores        arDetectMarker
                  4- Calcular posicionamiento   arGetTransMat
                  5- Superponer objetos         draw
     CIERRE       6- Finalizar captura          cleanup


    • Además se utilizará una función main y una función
      mainLoop
29

Otros datos de interés

    Limitaciones de ARToolKit
   • Es necesario que el marcador se pueda ver por completo
     para poder ser identificado
   • Sólo reconoce marcadores 2D
   • La calidad depende de:
      ▫   Capacidad de la cámara
      ▫   Sencillez de los marcadores   Tamaño del      Alcance (cm)
      ▫   Posición de los marcadores    marcador (cm)
                                        7               41
      ▫   Condiciones de luz            9               64
                                        11              86
                                        19              127
30

Otros datos de interés

    Algunos complementos
   • ARToolkit Professional
     ▫ Versión 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 librería para mejorar la calidad y precisión de los
       marcadores 2D
   • ARToolKit patternmaker
     ▫ Aplicación para facilitar el desarrollo de marcadores
31

Otros datos de interés

    Sistemas a los que ha sido portado
Versión 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 aplicación



   Paso 1. Crear actividad básica
  • CustomActivity.java
36

AndAR                    Ejemplo de aplicación



   Paso 1. Crear actividad básica (II)
  • CustomObject.java
37

AndAR                     Ejemplo de aplicación



   Paso 1. Crear actividad básica (III)
  • CustomRenderer.java
38

AndAR                                       Ejemplo de aplicación



   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 aplicación



   Paso 2. Mostrar objeto (II)
  • Cube.java
                       Si el tamaño del marcador es de 80, un buen
                       tamaño para los objetos podría ser 50




                                                  Se simplifica la creación
                                                  de los FloatBuffers
40

AndAR                    Ejemplo de aplicación



   Paso 2. Mostrar objeto (III)
  • Cube.java

                                 No hace falta especificar la
                                 proyección, lo hace AndAR
41


Bibliografía

ARTOOLKIT Website; http://www.hitl.washington.edu/artoolkit/
ANDAR Website; http://code.google.com/p/andar/

Más contenido relacionado

La actualidad más candente

GPThreats-3: Is Automated Malware Generation a Threat?
GPThreats-3: Is Automated Malware Generation a Threat?GPThreats-3: Is Automated Malware Generation a Threat?
GPThreats-3: Is Automated Malware Generation a Threat?Marcus Botacin
 
良くわかるMeta
良くわかるMeta良くわかるMeta
良くわかるMetadaichi horio
 
¿Cómo insertar objetos en power point?
¿Cómo insertar objetos en power point?¿Cómo insertar objetos en power point?
¿Cómo insertar objetos en power point?Lara Perez
 
Tipos de variables en visual basic ejemplos
Tipos de variables en visual basic   ejemplosTipos de variables en visual basic   ejemplos
Tipos de variables en visual basic ejemplosCelia Hdez
 
オブジェクト指向とSOLID原則の入門
オブジェクト指向とSOLID原則の入門オブジェクト指向とSOLID原則の入門
オブジェクト指向とSOLID原則の入門KISARAGIMakoto
 
Control de Calidad del Software
Control de  Calidad del SoftwareControl de  Calidad del Software
Control de Calidad del SoftwareIntellimedia
 
Metricas
MetricasMetricas
MetricasCECY50
 
ゴルフゲームでUnityの限界を突破する方法
ゴルフゲームでUnityの限界を突破する方法ゴルフゲームでUnityの限界を突破する方法
ゴルフゲームでUnityの限界を突破する方法Nohina Hidenari
 
MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)Yadith Miranda Silva
 
差別化で未来を生き抜く エンジニアの7つの秘訣
差別化で未来を生き抜く エンジニアの7つの秘訣差別化で未来を生き抜く エンジニアの7つの秘訣
差別化で未来を生き抜く エンジニアの7つの秘訣Yusuke Yamamoto
 
Metricas de software
Metricas de softwareMetricas de software
Metricas de softwaresophialara123
 
Estimacion basada en puntos de casos de uso
Estimacion basada en puntos de casos de usoEstimacion basada en puntos de casos de uso
Estimacion basada en puntos de casos de usodianitadance
 
【Unite Tokyo 2019】ライブエンターテイメントにおけるUnity
【Unite Tokyo 2019】ライブエンターテイメントにおけるUnity【Unite Tokyo 2019】ライブエンターテイメントにおけるUnity
【Unite Tokyo 2019】ライブエンターテイメントにおけるUnityUnityTechnologiesJapan002
 

La actualidad más candente (20)

Greenfoot 1
Greenfoot 1Greenfoot 1
Greenfoot 1
 
GPThreats-3: Is Automated Malware Generation a Threat?
GPThreats-3: Is Automated Malware Generation a Threat?GPThreats-3: Is Automated Malware Generation a Threat?
GPThreats-3: Is Automated Malware Generation a Threat?
 
Taller de Ultimate 2.0
Taller de Ultimate 2.0Taller de Ultimate 2.0
Taller de Ultimate 2.0
 
良くわかるMeta
良くわかるMeta良くわかるMeta
良くわかるMeta
 
Visual Basic. Net
Visual Basic. NetVisual Basic. Net
Visual Basic. Net
 
¿Cómo insertar objetos en power point?
¿Cómo insertar objetos en power point?¿Cómo insertar objetos en power point?
¿Cómo insertar objetos en power point?
 
UE4:2019年ノンゲーム分野での活用について
UE4:2019年ノンゲーム分野での活用についてUE4:2019年ノンゲーム分野での活用について
UE4:2019年ノンゲーム分野での活用について
 
Tipos de variables en visual basic ejemplos
Tipos de variables en visual basic   ejemplosTipos de variables en visual basic   ejemplos
Tipos de variables en visual basic ejemplos
 
オブジェクト指向とSOLID原則の入門
オブジェクト指向とSOLID原則の入門オブジェクト指向とSOLID原則の入門
オブジェクト指向とSOLID原則の入門
 
Exposicion cocomo
Exposicion cocomoExposicion cocomo
Exposicion cocomo
 
Ejercicios powerpoint
Ejercicios powerpointEjercicios powerpoint
Ejercicios powerpoint
 
Control de Calidad del Software
Control de  Calidad del SoftwareControl de  Calidad del Software
Control de Calidad del Software
 
Metricas
MetricasMetricas
Metricas
 
Presentacion ubuntu 20.04
Presentacion ubuntu 20.04Presentacion ubuntu 20.04
Presentacion ubuntu 20.04
 
ゴルフゲームでUnityの限界を突破する方法
ゴルフゲームでUnityの限界を突破する方法ゴルフゲームでUnityの限界を突破する方法
ゴルフゲームでUnityの限界を突破する方法
 
MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)
 
差別化で未来を生き抜く エンジニアの7つの秘訣
差別化で未来を生き抜く エンジニアの7つの秘訣差別化で未来を生き抜く エンジニアの7つの秘訣
差別化で未来を生き抜く エンジニアの7つの秘訣
 
Metricas de software
Metricas de softwareMetricas de software
Metricas de software
 
Estimacion basada en puntos de casos de uso
Estimacion basada en puntos de casos de usoEstimacion basada en puntos de casos de uso
Estimacion basada en puntos de casos de uso
 
【Unite Tokyo 2019】ライブエンターテイメントにおけるUnity
【Unite Tokyo 2019】ライブエンターテイメントにおけるUnity【Unite Tokyo 2019】ライブエンターテイメントにおけるUnity
【Unite Tokyo 2019】ライブエンターテイメントにおけるUnity
 

Similar a Iniciación a ARToolKit

Introducción al Desarrollo de Software
Introducción al Desarrollo de SoftwareIntroducción al Desarrollo de Software
Introducción al Desarrollo de SoftwareBarbara brice?
 
Tema 3 proseso de desarrollo del software
Tema 3 proseso de desarrollo del softwareTema 3 proseso de desarrollo del software
Tema 3 proseso de desarrollo del softwareLuis Garcia
 
Infaimon vision artificial
Infaimon vision artificialInfaimon vision artificial
Infaimon vision artificialmanuelNuez61
 
Buenas prácticas en el uso de las tecnologías de la información y comunicació...
Buenas prácticas en el uso de las tecnologías de la información y comunicació...Buenas prácticas en el uso de las tecnologías de la información y comunicació...
Buenas prácticas en el uso de las tecnologías de la información y comunicació...Cátedra Banco Santander
 
Elementos Básicos de Fotografia
Elementos Básicos de FotografiaElementos Básicos de Fotografia
Elementos Básicos de FotografiaWilly Figueroa
 
Guia de ingenieria_del_software
Guia de ingenieria_del_softwareGuia de ingenieria_del_software
Guia de ingenieria_del_softwarecabronudo
 
Principios basicos de_cctv__1
Principios basicos de_cctv__1Principios basicos de_cctv__1
Principios basicos de_cctv__14ngi Trujill0
 
SwingImprover - end of career project defense - 2006
SwingImprover - end of career project defense - 2006SwingImprover - end of career project defense - 2006
SwingImprover - end of career project defense - 2006Darío Macchi
 
Método y herramientas para el diseño y construcción de dispositivos IoT
Método y herramientas para el diseño y construcción de dispositivos IoTMétodo y herramientas para el diseño y construcción de dispositivos IoT
Método y herramientas para el diseño y construcción de dispositivos IoTSoftware Guru
 
Programación de Apps con Android – Avanzado por Jorge Pintado
Programación de Apps con Android – Avanzado por Jorge PintadoProgramación de Apps con Android – Avanzado por Jorge Pintado
Programación de Apps con Android – Avanzado por Jorge PintadoCongresoWeb
 
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez.NET UY Meetup
 

Similar a Iniciación a ARToolKit (20)

Metodo espiral
Metodo espiralMetodo espiral
Metodo espiral
 
Iniciación a la realidad aumentada
Iniciación a la realidad aumentadaIniciación a la realidad aumentada
Iniciación a la realidad aumentada
 
Introducción al Desarrollo de Software
Introducción al Desarrollo de SoftwareIntroducción al Desarrollo de Software
Introducción al Desarrollo de Software
 
Tema 3 proseso de desarrollo del software
Tema 3 proseso de desarrollo del softwareTema 3 proseso de desarrollo del software
Tema 3 proseso de desarrollo del software
 
Infaimon vision artificial
Infaimon vision artificialInfaimon vision artificial
Infaimon vision artificial
 
Software
SoftwareSoftware
Software
 
Arduino mod5
Arduino mod5Arduino mod5
Arduino mod5
 
Buenas prácticas en el uso de las tecnologías de la información y comunicació...
Buenas prácticas en el uso de las tecnologías de la información y comunicació...Buenas prácticas en el uso de las tecnologías de la información y comunicació...
Buenas prácticas en el uso de las tecnologías de la información y comunicació...
 
Elementos Básicos de Fotografia
Elementos Básicos de FotografiaElementos Básicos de Fotografia
Elementos Básicos de Fotografia
 
Guia de ingenieria_del_software
Guia de ingenieria_del_softwareGuia de ingenieria_del_software
Guia de ingenieria_del_software
 
Principios basicos de_cctv__1
Principios basicos de_cctv__1Principios basicos de_cctv__1
Principios basicos de_cctv__1
 
Principios basicos de_cctv__1
Principios basicos de_cctv__1Principios basicos de_cctv__1
Principios basicos de_cctv__1
 
SwingImprover - end of career project defense - 2006
SwingImprover - end of career project defense - 2006SwingImprover - end of career project defense - 2006
SwingImprover - end of career project defense - 2006
 
Proyecto. vision artificial
Proyecto. vision artificialProyecto. vision artificial
Proyecto. vision artificial
 
Cámara digital
Cámara digitalCámara digital
Cámara digital
 
Cámara digital
Cámara digitalCámara digital
Cámara digital
 
Método y herramientas para el diseño y construcción de dispositivos IoT
Método y herramientas para el diseño y construcción de dispositivos IoTMétodo y herramientas para el diseño y construcción de dispositivos IoT
Método y herramientas para el diseño y construcción de dispositivos IoT
 
Programación de Apps con Android – Avanzado por Jorge Pintado
Programación de Apps con Android – Avanzado por Jorge PintadoProgramación de Apps con Android – Avanzado por Jorge Pintado
Programación de Apps con Android – Avanzado por Jorge Pintado
 
Iswmovil
IswmovilIswmovil
Iswmovil
 
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez
 

Más de Vicente García Díaz (15)

Creating a textual domain specific language
Creating a textual domain specific languageCreating a textual domain specific language
Creating a textual domain specific language
 
Introduction to architectures based on models, models and metamodels. model d...
Introduction to architectures based on models, models and metamodels. model d...Introduction to architectures based on models, models and metamodels. model d...
Introduction to architectures based on models, models and metamodels. model d...
 
jBPM
jBPMjBPM
jBPM
 
Wikitude. KML y ARML
Wikitude. KML y ARMLWikitude. KML y ARML
Wikitude. KML y ARML
 
Wikitude. ARchiect
Wikitude. ARchiectWikitude. ARchiect
Wikitude. ARchiect
 
Sorting algorithms
Sorting algorithmsSorting algorithms
Sorting algorithms
 
Introducción a la ingeniería dirigida por modelos
Introducción a la ingeniería dirigida por modelosIntroducción a la ingeniería dirigida por modelos
Introducción a la ingeniería dirigida por modelos
 
Iniciación a OpenGL
Iniciación a OpenGLIniciación a OpenGL
Iniciación a OpenGL
 
Desarrollo robótico - Robot Operating System (ROS)
Desarrollo robótico - Robot Operating System (ROS)Desarrollo robótico - Robot Operating System (ROS)
Desarrollo robótico - Robot Operating System (ROS)
 
Wikitude. Servicios Seb
Wikitude. Servicios SebWikitude. Servicios Seb
Wikitude. Servicios Seb
 
LaTeX
LaTeXLaTeX
LaTeX
 
Automatización y Microsoft Word
Automatización y Microsoft WordAutomatización y Microsoft Word
Automatización y Microsoft Word
 
Árboles
ÁrbolesÁrboles
Árboles
 
Dispersión y tablas hash
Dispersión y tablas hashDispersión y tablas hash
Dispersión y tablas hash
 
Grafos
GrafosGrafos
Grafos
 

Último

leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxLeidyfuentes19
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestrerafaelsalazar0615
 
Gestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL ServerGestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL ServerRobertoCarrancioFern
 
Robótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptxRobótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptx44652726
 
herramientas informaticas mas utilizadas
herramientas informaticas mas utilizadasherramientas informaticas mas utilizadas
herramientas informaticas mas utilizadaspqeilyn0827
 
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docxPRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docxencinasm992
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfEmilio Casbas
 
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...Luis Fernando Uribe Villamil
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.AlejandraCasallas7
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfjjfch3110
 
Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.saravalentinat22
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiegoCampos433849
 
HIGADO Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
HIGADO  Y TRAUMA HEPATICO UDABOL 2024 (3).pdfHIGADO  Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
HIGADO Y TRAUMA HEPATICO UDABOL 2024 (3).pdfIsabelHuairaGarma
 
lenguaje algebraico.pptx álgebra, trigonometria
lenguaje algebraico.pptx álgebra, trigonometrialenguaje algebraico.pptx álgebra, trigonometria
lenguaje algebraico.pptx álgebra, trigonometriasofiasonder
 
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...Kevin Serna
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informáticavazquezgarciajesusma
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaFernando Villares
 
Presentacion y Extension de tema para Blogger.pptx
Presentacion y Extension de tema para Blogger.pptxPresentacion y Extension de tema para Blogger.pptx
Presentacion y Extension de tema para Blogger.pptxTaim11
 
Licencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de SoftwareLicencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de SoftwareAndres Avila
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusraquelariza02
 

Último (20)

leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
 
Gestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL ServerGestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL Server
 
Robótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptxRobótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptx
 
herramientas informaticas mas utilizadas
herramientas informaticas mas utilizadasherramientas informaticas mas utilizadas
herramientas informaticas mas utilizadas
 
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docxPRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
 
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
 
HIGADO Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
HIGADO  Y TRAUMA HEPATICO UDABOL 2024 (3).pdfHIGADO  Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
HIGADO Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
 
lenguaje algebraico.pptx álgebra, trigonometria
lenguaje algebraico.pptx álgebra, trigonometrialenguaje algebraico.pptx álgebra, trigonometria
lenguaje algebraico.pptx álgebra, trigonometria
 
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
Presentacion y Extension de tema para Blogger.pptx
Presentacion y Extension de tema para Blogger.pptxPresentacion y Extension de tema para Blogger.pptx
Presentacion y Extension de tema para Blogger.pptx
 
Licencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de SoftwareLicencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de Software
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 

Iniciación a ARToolKit

  • 1. Accesibilidad y Realidad Aumentada Iniciación a ARToolKit Vicente García Díaz – garciavicente@uniovi.es Universidad de Oviedo, 2012
  • 2. 2 Tabla de contenidos Iniciación a ARToolKit 1. Conceptos básicos 2. Principios de desarrollo 3. Otros datos de interés 4. AndAR
  • 3.
  • 4. 4 Conceptos básicos ¿Qué es ARToolKit? • Es una librería 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. 5 Conceptos básicos Principales características • 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 través de video ▫ Los objetos se superponen a un video en directo del mundo real • Realidad aumentada a través 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. 6 Conceptos básicos ¿Cómo funciona? Fuente: https://www.artoolworks.com/
  • 7. 7 Conceptos básicos Un simple ejemplo Fuente: http://www.hitl.washington.edu/
  • 8. 8 AndAR Ejemplo ARToolKit (Audi) Fuente: http://www.youtube.com/watch?v=UgQfo7eNFdw&feature=related
  • 9. 9 AndAR Ejemplo ARToolKit (Manual de Lego) Fuente: http://www.youtube.com/watch?v=ogeIszG5ogQ
  • 10. 10 AndAR Ejemplo ARToolKit (Mueble virtual) Fuente: http://www.youtube.com/watch?v=EyKBSWb0ysk
  • 11. 11 AndAR Ejemplo ARToolKit (Juego ARDefender) Fuente: http://www.youtube.com/watch?v=EyKBSWb0ysk
  • 12. 12 AndAR Ejemplo (Libros) Fuente: http://www.youtube.com/watch?v=UVhtB-SH5b8
  • 13. 13 AndAR Ejemplo (Juego PITStrategy) Fuente: http://www.youtube.com/watch?v=EyKBSWb0ysk
  • 14. 14 Conceptos básicos Calibración de la cámara • Los valores de configuración de las cámaras se guardan en un fichero camera_para.dat • Se pueden crear ficheros específicos para cada cámara • Existen dos tipos de calibraciones: ▫ En dos pasos (3D) ▫ En un paso (2D)
  • 15. 15 Conceptos básicos Calibración de la cámara en 2 pasos Patrones a utilizar • calib_list.pdf y calib_cpara.pdf
  • 16. 16 Conceptos básicos Calibración de la cámara en 2 pasos Calibración mediante lista de puntos (I) • calib_list.pdf se utiliza para ubicar el centro de la imagen y para calcular la distorsión de las lentes • Se utiliza el programa calib_dist
  • 17. 17 Conceptos básicos Calibración de la cámara en 2 pasos Calibración mediante lista de puntos (II) • Se debe repetir el proceso varias veces
  • 18. 18 Conceptos básicos Calibración de la cámara en 2 pasos Calibración mediante lista de puntos (III) • Después de marcar los puntos se puede pasar a calcular el centro de la imagen y los parámetros de dispersión • Se puede comprobar el resultado mostrando líneas entre los puntos
  • 19. 19 Conceptos básicos Calibración de la cámara en 2 pasos Calibración mediante rectángulos (I) • calib_cparam.pdf se utiliza principalmente para calcular la distancia focal • Se utiliza el programa calib_cparam 1. Indicar los parámetros obtenidos con calib_list 2. Poner el patrón en frente de la cámara (grande) Fuente: http://www.nikonusa.com/
  • 20. 20 Conceptos básicos Calibración de la cámara en 2 pasos Calibración mediante rectángulos (II) • Irán apareciendo líneas 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 parámetros
  • 21. 21 Conceptos básicos Calibración de la cámara 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 después hay que hacer los mismos pasos que con calib_list • Es menos preciso que la calibración en dos pasos
  • 22. 22 Conceptos básicos Arquitectura Fuente: http://www.hitl.washington.edu/
  • 23. 23 Conceptos básicos Estructura Fuente: http://www.hitl.washington.edu/
  • 24.
  • 25. 25 Principios de desarrollo Introducción • Las aplicaciones que utilizan ARToolKit tienen dos partes bien diferenciadas: 1. Escribir la aplicación 2. Entrenar a las rutinas de procesamiento de imágenes INICIO 1- Leer los parámetros de la cámara y cargar los archivos con los patrones usados como marcadores. Inicializar la captura de la cámara REPETICIÓN 2- Capturar un frame a partir de la entrada de video 3- Detectar los marcadores situados dentro del frame 4- Calcular la posición y tamaño de los objetos virtuales 5- Superponer los objetos virtuales sobre el marcador CIERRE 6- Finalizar la captura de video
  • 26. 26 Principios de desarrollo Desarrollo de una aplicación sencilla Idea general
  • 27. 27 Principios de desarrollo Desarrollo de una aplicación sencilla Principales funciones utilizadas FASE PASO CORRESPONDENCIA CON FUNCIÓN EN CÓDIGO INICIO 1- Inicializar captura init REPETICIÓN 2- Capturar frame arVideoGetImage 3- Detectar marcadores arDetectMarker 4- Calcular posicionamiento arGetTransMat 5- Superponer objetos draw CIERRE 6- Finalizar captura cleanup • Además se utilizará una función main y una función mainLoop
  • 28.
  • 29. 29 Otros datos de interés Limitaciones de ARToolKit • Es necesario que el marcador se pueda ver por completo para poder ser identificado • Sólo reconoce marcadores 2D • La calidad depende de: ▫ Capacidad de la cámara ▫ Sencillez de los marcadores Tamaño del Alcance (cm) ▫ Posición de los marcadores marcador (cm) 7 41 ▫ Condiciones de luz 9 64 11 86 19 127
  • 30. 30 Otros datos de interés Algunos complementos • ARToolkit Professional ▫ Versión 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 librería para mejorar la calidad y precisión de los marcadores 2D • ARToolKit patternmaker ▫ Aplicación para facilitar el desarrollo de marcadores
  • 31. 31 Otros datos de interés Sistemas a los que ha sido portado
  • 32. Versión de ARToolkit para Android - http://code.google.com/p/andar/
  • 33. 33 AndAR Ejemplo AndAR (Planta) Fuente: http://www.kurzweilai.net/diminished-reality-software-removes-objects-from-video-in-real-time/
  • 34. 34 AndAR Arquitectura
  • 35. 35 AndAR Ejemplo de aplicación Paso 1. Crear actividad básica • CustomActivity.java
  • 36. 36 AndAR Ejemplo de aplicación Paso 1. Crear actividad básica (II) • CustomObject.java
  • 37. 37 AndAR Ejemplo de aplicación Paso 1. Crear actividad básica (III) • CustomRenderer.java
  • 38. 38 AndAR Ejemplo de aplicación 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. 39 AndAR Ejemplo de aplicación Paso 2. Mostrar objeto (II) • Cube.java Si el tamaño del marcador es de 80, un buen tamaño para los objetos podría ser 50 Se simplifica la creación de los FloatBuffers
  • 40. 40 AndAR Ejemplo de aplicación Paso 2. Mostrar objeto (III) • Cube.java No hace falta especificar la proyección, lo hace AndAR