ARToolkit Ademir José de Carvalho Junior Danilo Cavalcanti Torres David Lucena Aragão Ronaldo Ribeiro Marques {ajcj,dct,dllaa,rrm}@cin.ufpe.br Roteiro Realidade Aumentada ARToolkit Funcionamento Framework Limitações Trabalhos Conclusões Realidade Aumentada Área da computação que trabalha com a combinação do mundo real com elementos virtuais gerados por computador. Mundo real é “aumentado” com a adição de objetos virtuais. Realidade Aumentada Aplicações de RA: Saúde: Cirurgias médicas aumentadas Militar: Informações extras sobre o ambinete podem ser visualizadas pelo soldado em tempo real. Realidade Aumentada ARToolkit Biblioteca para construção de aplicações de Realidade Aumentada Promove alto nível de abstração, permitindo desenvolvedor focar no objetivo da aplicação ARToolkit Primeiramente desenvolvido pelo Dr. Hirokazu Kato da universidade de Osaka, Japão. Hoje é mantido pelo HITLab(Human Interface Technology Laboratory) na universidade Washington e pelo HITLab NZ na universidade de Catembury, Nova Zelândia ARToolkit • Escrita em C/C++ • Open-Source Multi-Plataforma(SGI IRIX, PC Linux, Mac OS X, e PC Windows (95/98/NT/2000/XP)) • • Produz aplicações de tempo real • Utiliza algoritmos de Visão Computacional ARToolkit Desafio: Rastreamento exato da visão do usuário em tempo real para alinhar objetos virtuais com os reais Cálculo da posição e orientação da câmera ARToolkit Funcionamento Captura da imagem de entrada Busca pelos marcadores Sequência de imagens da câmera de video As imagens capturadas são convertidas para uma imagem binária para a identificação de padrões (quadrados pretos) Cálculo da posição/orientação da câmera Relativas aos quadrados pretos ARToolkit Funcionamento Identificação de marcadores Inserção de imagens virtuais Verifica se o símbolo dos marcador casa com algum padrão na memória. Usando transformações 3D, a imagem é orientada e posicionada para ser posta no marcador. Renderização da imagem final A imagem é renderizada em cima do marcador ARToolkit Funcionamento ARToolkit Framework API C/C++ Conjunto de funções predefinidas Portabilidade sem perda de eficiência: OpenGL GLUT Standard API Biblioteca de Vídeo (Dependente de Hardware) ARToolkit Framework Arquitetura: ARToolkit Framework Estrutura interna: AR Module: módulo principal com rotinas de rastreamento de marcadores e calibração. Video Module: conjunto de rotinas que encapsulam a captura de frames de vídeo padrão Gsub Module: conjunto de rotinas gráficas baseadas nas bibliotecas OpenGL e GLUT ARToolkit Framework Estrutura interna: ARToolkit Framework Gsub_Lite Module: substitui o Gsub Module com rotinas gráficas mais eficientes e independentes do sistema de janelas Gsub Module... Deprecated! ARToolkit Framework Metáfora de pipeline: Video -> Tracking -> Display Permite fácil troca de módulos ARToolkit Framework Inicialização Inicializa a captura de video, lê os marcadores e os parametros de câmera Loop principal Recebe os frames de entrada Detecta e reconhece os marcadores dos frames Calcula as transformações de câmera em relação aos marcadores ARToolkit Framework Loop principal (cont.) Desenha os objetos virtuais nos marcadores Finalização Encerra a captura dos frames ARToolkit Framework Funcionalidades principais: Biblioteca multiplataforma Biblioteca de video multiplataforma Routina simples de calibração Suporte à Biblioteca Gáfica GLUT Renderização ágil em OpenGL Suporte a 3D VRML API modularizada em C; suporte à JAVA e Matlab ARToolkit Limitações Marcadores devem estar sempre e totalmente a mostra, limitando o tamanho e o movimento dos objetos virtuais Orientação do marcador relativa a câmera Quanto mais horizontal o marcador, menos visível é o centro da imagem. ARToolkit Limitações Condições de iluminação Deve-se evitar reflexões da luz no marcador Complexidade do marcador Figuras simples e não simétricas ARToolkit Trabalhos Projetos que o utilizam: The Black Magic kiosk: Um livro “virtual” AR Groove: interface musical 3D-Live: interface de colaboração Publicações Conclusões Desenvolvimento rápido de aplicações de Realidade Aumentada O alto nível de abstração permite que o programador se preocupe mais com o foco da aplicação Permite modificações e extensões(Open-Source) Referências Site do ARToolkit http://www.hitl.washington.edu/artoolkit/ Realidade Aumentada – Wikipedia http://en.wikipedia.org/wiki/Augmented_reality Disciplina de Introdução à Multimídia http://www.cin.ufpe.br/~if687 Dúvidas Exercícios Abrir o Virtual Camera Carregar SingleFrame Abrir o Visual Studio.NET Abrir o projeto do ARToolkit Compilar Rodar o simpleTestd (...\bin) Rodar o exviewd(...\bin) Exercícios Exercício 1 Explique os passos de funcionamento do ARToolkit, inclusive do ponto de vista de uma aplicação. Exercício 2 Altere o exemplo simpleTest para que a aplicação passe a reconhecer os marcadores Hiro e Kanji ao mesmo tempo, exibindo um cone e um cubo respectivamente. ARToolkit Ademir José de Carvalho Junior Danilo Cavalcanti Torres David Lucena Aragão Ronaldo Ribeiro Marques {ajcj,dct,dllaa,rrm}@cin.ufpe.br