Pesquisa e desenvolvimento de maquetes eletrônicas 3D a serem utilizadas em realidade aumentada
Desenvolvimento de Realidade
-
Upload
junior-vaz -
Category
Documents
-
view
175 -
download
1
Transcript of Desenvolvimento de Realidade
Faculdade de Tecnologia de Americana Curso Superior de Tecnologia em Desenvolvimento de Jogos
Digitais
DESENVOLVIMENTO DE REALIDADE AUMENTADA PARA ANDROID
SAMUEL LUCIANO DA SILVA
Americana, SP 2012
Faculdade de Tecnologia de Americana
Curso Superior de Tecnologia em Desenvolvimento de Jogos Digitais
DESENVOLVIMENTO DE REALIDADE AUMENTADA PARA ANDROID
SAMUEL LUCIANO DA SILVA
Trabalho de Conclusão de Curso desenvolvido em cumprimento à exigência curricular do Curso Superior de Tecnologia em Desenvolvimento de Jogos Digitais, sob a orientação do Prof. Me. Cleberson Forte
Área: Jogos Digitais
Americana, SP 2012
BANCA EXAMINADORA
Prof. Me. Cleberson Eugenio Forte Prof. Me. Kleber de Oliveira Andrade Prof. Me. Carlos Henrique Rodrigues Sarro
AGRADECIMENTOS
Em primeiro lugar, gostaria de agradecer aos meus pais, que cuidaram e
educaram adequadamente, se esforçando ao máximo para que nada faltasse em
meu desenvolvimento pessoal e profissional, independente das condições
financeiras.
Agradeço à minha namorada, que está comigo em todos os momentos,
felizes ou ruins, acredita em meu potencial e incentiva muito meu progresso.
Agradeço, também, ao meu irmão, que sem dúvida é alguém em quem me
espelho.
Agradeço aos meus amigos e colegas que muito fizeram por mim durante
toda a realização deste trabalho.
Gostaria de agradecer, também, aos colaboradores da FATEC Americana,
por estes anos de convivência quando pude, então, realizar meu sonho e me
graduar na área de Jogos Digitais.
E, sem dúvida, em agradecimento especial, o Prof. Me. Cleberson Forte, meu
orientador e amigo, que fez tudo o possível para que esse trabalho se concretizasse.
DEDICATÓRIA
Aos meus pais Valdeir Firmino da Silva e Maria de Fatima C. F.
A minha namorada Chaiene Vargas.
A meu irmão Dione Everton.
A meus professores da FATEC - Americana
A todos meus amigos e companheiros.
RESUMO
Atualmente, o mercado de equipamentos móveis, como smartphones e
tablets, vem crescendo e motivando o surgimento de vários Sistemas Operacionais,
dentre eles o Android, foco deste estudo, uma plataforma de código aberto que
possibilita facilmente a criação de aplicações e jogos para dispositivos móveis. A
Realidade Aumentada (RA) é muito comum em computadores de mesa e notebooks,
e hoje em dia é muito utilizada na área de educação, publicidade, engenharia e
arquitetura. A RA para Android vem para unir as duas áreas, aproveitando a
tecnologia de RA com a mobilidade dos dispositivos móveis. Neste trabalho, são
apresentadas ferramentas para desenvolvimento, projetos relacionados e a criação
de uma aplicação de RA interativa para a plataforma Android usando a engine
Unity3D.
Palavras Chave: REALIDADE AUMENTADA, ANDROID e JOGOS.
ABSTRACT
Currently, the mobile equipment market, as smartphones and tablets, are
growing and motivating the sprouting of some Operational systems, amongst them
the Android, the focus of this research, a platform of open code that easily makes
possible creation of applications and games for mobile devices. Augmented Reality
(AR) is very common on desktops and notebooks, and nowadays used in education,
advertising, engineering and architecture. The AR for Android devices comes to join
the two areas, using to advantage technology of AR with the mobility of the mobile
devices. In this monograph, we present tools for development, related projects, and
creation of an interactive AR application for the Android platform using the Unity3D
engine.
Keywords: AUGMENTED REALITY, ANDROID, GAMES
SUMÁRIO
1 INTRODUÇÃO ................................................................................................... 10
2 REALIDADE AUMENTADA PARA DISPOSITIVOS MÓVEIS .......................... 12
2.1 APLICAÇÕES EM REALIDADE AUMENTADA ............................................... 13 2.1.1 Magicbook ................................................................................................... 14 2.1.2 Airhockey .................................................................................................... 15 2.1.3 Jogo com RA em dispositivos móveis ......................................................... 16
3 FERRAMENTAS PARA DESENVOLVIMENTO DE RALIDADE AUMENTADA PARA DISPOSITIVOS MÓVEIS ............................................................................... 18
3.1 NYARTOOLKIT ................................................................................................. 18
3.2 OPENCV ............................................................................................................ 20
3.3 QUALCOMM VUFORIA ..................................................................................... 21
4 DESENVOLVIMENTO DE APLICAÇÃO DE REALIDADE AUMENTADA UTILIZANDO QUALCOMM VUFORIA E UNITY 3D ................................................ 23
4.1 INSTALAÇÃO .................................................................................................... 23
4.2 EXTENSÕES ..................................................................................................... 24 4.2.1 Vuforia Android ........................................................................................... 25 4.2.2 Vuforia imagetargets ................................................................................... 25 4.2.3 Vuforia framemarkers .................................................................................. 25 4.2.4 Vuforia multitargets ..................................................................................... 26 4.2.5 Vuforia virtualbuttons .................................................................................. 26 4.2.6 Vuforia backgroud terxtureacces ................................................................ 27 4.2.7 Vuforia occlusion management ................................................................... 27
4.3 CRIAÇÃO DE TRACKABLES ( OU TARGETS) ............................................... 28
4.4 PROGRAMANDO UM PROJETO SIMPLES ..................................................... 30
4.5 COMPILAÇÃO ................................................................................................... 34
4.6 INSTALAÇÃO NO ANDROID ............................................................................ 35
4.7 PROJETO LABRINTO ....................................................................................... 36
5 CONSIDERAÇÕES FINAIS ............................................................................... 37
6 REFERÊNCIAS BIBLIOGRÁFICAS .................................................................. 38
9
LISTA DE FIGURAS E DE TABELAS
Figura 1 – Comparativo da venda de smartphones conforme sistema operacional e previsão
para os próximos anos...........................................................................................................12
Figura 2 – Exemplo de funcionamento do AIRockey.............................................................16
Figura 3 – Exemplo de funcionamento do jogo de discos voadores......................................16
Figura 4 – Exemplo de marcador típico captado pela NyARtoolkit........................................19
Figura 5 – Aplicação criada pela NyArtoolkit..........................................................................19
Figura 6 – Exemplo de marcador reconhecido pela Vuforia...................................................21
Figura 7 - Instalação Vuforia – Acordo de licença..................................................................24
Figura 8 – Pacotes instalados pela Qualcomm Vuforia..........................................................25
Figura 9 – Exemplo de FrameMarkers...................................................................................26
Figura 10 – Exemplo de Multitaregets....................................................................................26
Figura 11 – Exemplo de botões virtuais.................................................................................27
Figura 12 – Exemplo de oclusão em realidade aumentada...................................................27
Figura 13 – Tela de cadastro de Trackables..........................................................................29
Figura 14 – Imagem detectada pelo sistema.........................................................................29
Figura 15 – Salvando uma Trackable....................................................................................30
Figura 16 – Estrutura de pastas da Unity com a biblioteca Vuforia instalada........................31
Figura 17 – Funções do prefab ARCamera...........................................................................32
Figura 18 – Funções do prefab Image Target - Atribuição de target.....................................32
Figura 19 – Adicionando o padrão de reconhecimento da imagem......................................33
Figura 20 – Imagem da Scene criada....................................................................................34
Figura 21 – Funcionamento do projeto labirinto.....................................................................36
10
1 INTRODUÇÃO
Os últimos lançamentos no mercado de Smartphones e Tablets trouxeram
grande evolução de hardware, processamento, capacidade de memória, resolução
de tela, câmera e outros componentes, aproximando-se cada vez mais das
configurações encontradas em Desktops e Notebooks. Junto com essa evolução é
possível trazer aplicações que antes eram restritas aos computadores de mesa aos
dispositivos móveis, que agora contam como uma vantagem: a mobilidade.
Destas aplicações, a Realidade Aumentada (RA) pode ser moldada ao âmbito
móvel, na RA é utilizado o ambiente real como predominante, utilizando de
reconhecimento de parâmetros e componentes do ambiente real para a visualização
e manipulação de um objeto virtual. Ao contrário de Realidade Virtual (RV) aonde é
criado um ambiente virtual, fazendo o controle através de um sistema
computadorizado, tentando neste ambiente virtual modelar sentidos que existem no
ambiente real a fim de aumentar a imersão do utilizador.
A grande vantagem da RA em dispositivos móveis é que a maioria dispõe de
câmeras e capacidade de processamento para a análise de imagens e até a
composição de objetos virtuais em 3D.
Este projeto tem como objetivo criar uma aplicação em RA tornando possível
de ser executada em dispositivos móveis que utilizam o sistema operacional Android.
Como objetivos secundários, pretende-se mostrar que a utilização da tecnologia nas
áreas de educação, serious games, propaganda, entre outras áreas pode ser
relevante.
O trabalho foi estruturado em cinco capítulos, além da conclusão. O capítulo
dois conceitua sobre o que é a tecnologia de Realidade Aumentada (RA),
demonstrando um pouco do crescimento junto às plataformas móveis,
principalmente o Android, e mostrando também trabalhos correlatos na área, como o
Magicbook, programa que implementa em um livro com características de RA para
aumentar a imersão na história, o AIRockey uma aplicação que utiliza realidade
aumentada projetada, para simular um jogo comum em fliperamas, e o projeto de um
11
jogo feito para dispositivos móveis, que utiliza os conceitos de RA e mobilidade
apresentados neste artigo.
O terceiro capítulo trata sobre as principais ferramentas para programação
desta tecnologia, no caso foram escolhidas três, por serem de código opensource e
que podem ser empregadas livremente para uso acadêmico, são elas: NyArtoolkit , a
OpenCV , e a Vuforia, uma biblioteca desenvolvida pela Qualcomm capaz de
trabalhar juntamente com o Unity 3D ou o SDK do Android, esta biblioteca será
abordada posteriormente como um tutorial para desenvolver uma aplicação em
Android.
No quarto capítulo apresenta-se um tutorial de utilização da ferramenta
Vuforia, o tutorial aborda o modo de instalação da biblioteca, a criação de targets
(Trackables), a instalação das bibliotecas na Unity 3D, um breve exemplo de como
criar uma aplicação simples e então compilar e executar no Android.
Com base nas informações conseguidas a partir dos estudos realizados nos
capítulos anteriores, foi criada uma discussão, no quinto capitulo, sobre o quanto
essa tecnologia é promissora em comparação com outras possibilidades.
12
2 REALIDADE AUMENTADA PARA DISPOSITIVOS MÓVEIS
Motivados pelo crescimento das tecnologias e do mercado de
telecomunicações, surgiram vários dispositivos móveis como Smartphones e
Tablets, equipamentos que demandam, de forma geral, de um sistema operacional.
Dos vários do mercado, o que se sobressai atualmente é o Android, conforme pode
ser demonstrado pela figura 1, que apresenta um gráfico de crescimento das
vendas, onde o sistema ultrapassa os outros, com previsão de que as vendas
continuem aumentando nos próximos anos. Tal sistema suporta aplicações de RA, a
qual pode ser aplicada a diversas áreas, como Jogos Digitais, Educação,
Publicidade e Propaganda, Engenharias, Arquitetura, etc.
A tecnologia de RA também apresenta crescimento, conforme comenta Forte
(2009):
“[...] O que se observa, atualmente é um crescente interesse
por parte da sociedade e dos veículos de comunicação, para com as
tecnologias de RV e RA. A consolidação da tecnologia, através das
inúmeras iniciativas de pesquisadores e empresas, que se dedicam a
seu desenvolvimento, tanto no âmbito nacional quanto internacional,
faz com que ela se torne gradativamente mais conhecida, bem como
mais próxima da realidade da população em geral. Diferentes
aplicações, envolvendo as tecnologias de RV e RA, foram
desenvolvidas e outras continuam a sê-lo, buscando sua aplicação
como ferramenta para o auxilio de diferentes necessidades sociais.”
(FORTE; 2009).
Figura 1 – Comparativa da venda de smartphones conforme sistema operacional e previsão
para os próximos anos (GARTNER, 2012).
13
Anteriormente, executar uma aplicação em Realidade Aumentada demandava
de um computador de mesa ou notebook e uma câmera normalmente conhecida
como Webcam. Montar tal sistema exige que o usuário tenha de carregar
equipamentos pesados, faltando mobilidade. A possibilidade de carregar uma
aplicação em RA disposta em um celular, ou tablet, tornou mais fácil, por exemplo,
criar uma campanha de publicidade utilizando RA, pois é possível estender um
cartaz em meio á uma rua ou shopping com uma tag (marcador) e o publico que
estiver com o aplicativo de RA instalado no dispositivo, pode então ver aquele objeto
virtual que foi criado com uma finalidade específica de publicidade. Tal conceito
pode ser aplicado, também, á outras áreas, conforme comentado anteriormente.
A vantagem de se executar uma aplicação em RA utilizando um aparelho com
Android não se restringe apenas à capacidade móvel do aparelho, mas também a
disposição de uma tela touch, que pode aumentar consideravelmente a
interatividade do aplicativo, torna possível obter controle de objetos através do
touchscreen, executar comandos como zoom, rotação, ou então a criação de botões
virtuais os quais podem executar funções específicas, como disparar ou movimentar
um objeto. Outra característica é que a cada novo lançamento de smartphones e
tablets, novas capacidades são demonstradas em equipamentos com
processadores, memória e armazenamento cada vez mais potentes:
“(...) Alguns aparelhos de telefone celular são dispositivos que
apresentam um bom poder de processamento, levando-se em conta
que se tratam de dispositivos móveis microprocessados com
características limitadas. Estes são capazes de executar algoritmos
desenvolvidos nas linguagens C++ e Java.” (LUZ, GARCA,
MARCHIORO; 2008).
2.1 APLICAÇÕES EM REALIDADE AUMENTADA
Muitas aplicações foram criadas com os conceitos de realidade aumentada,
principalmente na área de jogos:
“(...) Atualmente há uma grande busca por maior interatividade dos
jogos com os jogadores. Há possibilidades interessantes e pouco
14
exploradas que surgem da combinação de realidade aumentada e
jogos, pois permitem combinar características da realidade que podem
ser aproveitadas em dinâmicas inovadoras de jogo (dimensão espacial
real, tangibilidade, disponibilidade, familiaridade do usuário) com a
facilidade de se sintetizar elementos virtuais com base em técnicas
empregadas tradicionalmente em jogos convencionais” (VIEIRA, et al,
2006).
A maioria das aplicações que já foram criadas, que envolvem jogos,
educação, ou publicidade, podem facilmente ser transportadas para a plataforma
Android, proporcionando uma nova visão e utilização dos recursos. Algumas das
aplicações mostradas abaixo, certamente se enquadrariam muito bem no conceito
móvel.
2.1.1 Magicbook
O Magicbook, é uma aplicação criada utilizando o ARToolkit, ela utiliza um
livro com parâmetros que ao utilizar RA é possível ver um objeto virtual, pode ser
melhor descrita por Forte:
“(..) Esta aplicação, ganhadora do prêmio Discover Awards, em
2001, na categoria inovação (DISCOVER, 2001), introduz o conceito
de um livro enriquecido com RA. A aplicação permite, ao usuário, a
visualização de objetos tridimensionais sobre as páginas do livro. É
interessante notar, também, que o MagicBook não se limita à simples
visualização e manipulação de objetos como numa aplicação comum
de RA. Ele vai além disso, ao permitir que o usuário passe da
visualização do objeto a uma navegação imersiva através do uso de
dispositivos especiais” (BILLINGHURST; KATO; POUPYREV 2001
apud FORTE 2009).
O MagicBook é um livro comum, que pode ser lido de forma convencional,
porém é deveras enriquecido através do recurso de RA, utilizando-se de um
dispositivo chamado de Handle Display, é possível observar a cena virtual criada
com a intenção de enriquecer a leitura. Tal dispositivo, hoje, pode ser facilmente
15
substituído por um aparelho de celular ou tablet com Android, podendo se tornar
uma aplicação ainda mais conhecida acrescentando ao que foi comentado por Forte:
“(...)As características oferecidas pelo MagicBook o tornaram
uma das mais conhecidas aplicações de RA no contexto educacional.
Diferentes artigos a citam como fonte buscada para o desenvolvimento
de diversas outras aplicações. O que se observa é que o usuário,
interagindo com a história em um livro enriquecido com a RA, tem
maior interesse e dispõe de mais atenção para com o conteúdo
exibido. Esta característica é encarada como de muita valia quando
pensamos no desenvolvimento de uma aplicação para o contexto
educacional. Por estes motivos o conceito de livro virtual foi bastante
empregado por diversas pesquisas e também no Brasil.” (FORTE,
2009).
Um exemplo de aplicação que é exatamente suportado pela tecnologia
apresentada neste artigo, podendo facilitar ao usuário ter acesso á parte virtual do
livro utilizando um dispositivo mais barato e de uso mais abrangente.
2.1.2 Airhockey
Uma aplicação muito interessante que utiliza os conceitos de Realidade
Aumentada projetada, para simular um jogo muito conhecido por frequentadores de
fliperamas, o AirHockey ou Shufflepuck, o funcionamento pode ser observado no
comentário dos criadores:
“(..) O ARHockey é jogado por dois participantes munidos de
batedores e um plano horizontal (de preferência uma mesa) no qual o
ambiente do jogo será projetado. Na mesa virtual projetada há um
disco que deve ser impulsionado pelos jogadores em direção ao gol
adversário, localizado na extremidade oposta da mesa. O fim da
partida é dado quando um dos jogadores atinge a marca de sete gols.”
(VIEIRA, THEODORO, TRIAS, MIRANDA, TORI, 2006).
Utilizando-se de projeção, o ARHockey simula a mesa em que o jogo é
executado, a fim de permitir, que não só os jogadores possam visualizar o jogo, mas
também os expectadores, como podemos observar na figura 2 a projeção liberta os
16
jogadores de utilizar equipamentos acoplados ao corpo, prejudicando o conforto e a
mobilidade, também ajuda para que os custos do projeto seja inferior se comparado
com o uso de um sistema que utilize HMD (Head Monted Display).
Figura 2 – Exemplo de funcionamento do AIRockey.
Sem dúvida trata-se de uma aplicação muito interessante, em RA, podendo
ser covertida para uma plataforma móvel, como Android, para substituir o uso dos
HMDs em um projeto mais caro.
2.1.3 Jogo com RA em dispositivos móveis
Nesta aplicação o jogador deve posicionar a mira sobre o disco voador
através de movimentos com o aparelho e então pressionar o botão simbolizando
“atirar” para destruir o disco voador, estes, construídos em tempo de execução do
aplicativo, e utilizam a câmera do celular para capturar o ambiente, conforme a
figura 3.
Figura 3 – Exemplo de funcionamento do jogo de discos voadores.
17
O sistema desenvolvido no projeto consiste em um jogo de primeira pessoa
onde a temática do jogo é “atingir pequenos discos voadores que estão invadindo a
terra”. O jogo tem um tempo fixo de duração e existe uma quantidade pré-definida
de discos voadores a abater. O nível de dificuldade do jogo aumenta quando o
usuário alcança o objetivo e passa para a próxima fase. Os discos voadores tentam
escapar da mira da arma do usuário para se defenderem, cabendo ao jogador ser
mais ágil no movimento do dispositivo móvel. Os discos voadores do jogo são
suplementos virtuais adicionados ao ambiente real capturado pela câmera do
telefone celular. Estes suplementos reagem em relação aos movimentos do
dispositivo executado pelo usuário.
“(...) através de um vídeo do ambiente real se extrai informações de
uma imagem, como: movimento, distâncias e objetos. Com essas
informações podemos adicionar suplementos virtuais ao vídeo, que são
capazes de interagir e reagir com objetos do mundo real ou com os
movimentos do usuário. (LUZ, GARCA, MARCHIORO, 2008)
Como o demonstrado neste artigo, é possível criar jogos e outros tipos de
aplicativos utilizando RA para dispositivos móveis, isto é algo que está se tornando
mais comum, em uma rápida pesquisa na loja de aplicativos do Android, a Google
Play, é possível identificar vários aplicativos que apresentam a tecnologia.
18
3 FERRAMENTAS PARA DESENVOLVIMENTO DE RALIDADE AUMENTADA
PARA DISPOSITIVOS MÓVEIS
Existem diversas ferramentas para desenvolvimento de Realidade
Aumentada, porém, ainda não são todas as ferramentas que estão disponíveis para
se trabalhar com Android ou outro SO para dispositivos móveis. Após diversas
pesquisas foram identificadas as principais ferramentas para este tipo de aplicação,
mostraremos neste capitulo as principais:
3.1 NYARTOOLKIT
Uma das ferramentas mais conhecidas para desenvolvimento de RA em
computadores é a ARToolkit, que pode ser descrita por Forte:
“(...) o ARToolkit é uma biblioteca de desenvolvimento de aplicações
de RA, bastante popular dentre os pesquisadores da área (ARTOOLKIT,
2009) isto acontece pelo fato da biblioteca fornecer soluções de rastreamento
3D, em tempo real, com baixo custo computacional. (LEPETIT; FUA, 2005
apud FORTE,2009) Além disso o ARToolkit é amplamente utilizado por ser
distribuído livremente para fins não comerciais incentivando a liberdade para
os usuários executarem, estudarem e modificarem os códigos disponíveis na
biblioteca, de acordo com as suas necessidades” (SANTIN, 2008, apud
FORTE; 2009)
A NYARToolkit é uma variante da ARToolkit construída em Linguagem Java,
visando a portabilidade desta tecnologia para dispositivos móveis capazes de
executar aplicações em Java, o que é muito comum na maioria dos dispositivos, o
funcionamento da biblioteca é idêntico á ARToolkit. A biblioteca utiliza-se de
marcadores, aos quais atrela um objeto virtual conforme descrito por Forte (2009) e
representado nas figuras 4 e 5:
“(...) um marcador nada mais é do que uma imagem, com
características específicas, impressa sobre papel comum. Tais características
consistem em uma borda grossa na cor preta com uma imagem em seu
centro” (KATO et al, 2002 apud FORTE,2009).
19
“(...)Pode-se usar qualquer símbolo para identificação das placas,
obtendo-se melhores resultados quando usados símbolos assimétricos, para
ajudar no processo de orientação do objeto virtual em relação às bordas do
marcador” (KATO et al, 2002 apud FORTE; 2009).
Figura 4 – Exemplo de marcador típico captado pela NyARtoolkit
“(...) O objeto virtual é sobreposto ao marcador deforma que, quando
usuário movimenta o marcador, o objeto é movido junto, dando a impressão
de que ambos estão colados ou fazem parte de uma só estrutura.” (FORTE;
2009)
Figura 5 – Aplicação criada pela NyArtoolkit.
A NyArtoolkit é uma biblioteca muito interessante, com diversos recursos que
podem ser empregados na criação de aplicações, porém, a detecção das tags é um
tanto precária, depende muito da qualidade de captura da imagem, iluminação,
qualidade da impressão do marcador, entre outros fatores que podem atrapalhar a
experiência de utilização.
20
3.2 OPENCV
A OpenCV é uma biblioteca desenvolvida pela Intel inicialmente em C/C++,
totalmente livre e voltada ao uso educacional e comercial, o nome vem de Open
Source Computer Vision Library, a biblioteca possui módulos de processamento de
imagem e vídeo, estrutura de dados, álgebra linear, e interface gráfica do usuário,
controle de mouse e teclado e vários algoritmos de visão computacional. Utiliza
processamento em tempo real de imagens, é descrita por Marengoni e Stringhini
como:
“(..) A biblioteca OpenCV foi desenvolvida pela Intel e possui
mais de 500 funções. Foi idealizada com o objetivo de tornar a visão
computacional acessível a usuários e programadores em áreas tais
como a interação humano-computador em tempo real e a robótica. A
biblioteca está disponível com o código fonte e os executáveis
(binários) otimizados para os processadores Intel. Um programa
OpenCV, ao ser executado, invoca automaticamente uma DLL
(Dynamic Linked Library) que detecta o tipo de processador e carrega,
por sua vez, a DLL otimizada para este. Juntamente com o pacote
OpenCV é oferecida a biblioteca IPL (Image Processing Library), da
qual a OpenCV depende parcialmente, além de documentação e um
conjunto de códigos exemplos.” (MARENGONI, STRINGHINI; 2009)
A biblioteca também dá suporte a Java, Pyton e Visual Basic, tornando-se
multiplataforma, podendo ser utilizada em diversos dispositivos e sistemas
operacionais, inclusive mobile, como o Andoid e IOS.
É aplicada em várias áreas, como: Identificação de objetos, sistema de
reconhecimento facial, reconhecimento de movimentos, realidade virtual, realidade
aumentada e robôs móveis.
21
3.3 QUALCOMM VUFORIA
A Qualcomm, uma empresa que desenvolve microprocessadores para
smartphones e tablets, desenvolveu um SDK que pode trabalhar junto ao SDK do
Android, assim como também se torna uma extensão para o Unity, tal
desenvolvimento com a finalidade de tornar mais fácil o processo de criação de uma
aplicação em realidade aumentada para Android, com visão de que lançando
tecnologias melhores, mais pessoas teriam acesso a dispositivos com os
processadores da empresa.
A tecnologia dispensa um marcador aparente (chamada de markless ou
tagless), o que abre a possibilidade de utilizar vários tipos de imagens como
marcador, em exemplo algumas pedras (mostrada na figura 6), flores, entre outras
fotos.
Figura 6 – Exemplo de marcador reconhecido pela Vuforia.
A SDK também pode analisar objetos complexos, que tenham imagens em
todos os lados, como a caixa de um produto, com esse tipo de tecnologia é possível
fazer com que o objeto virtual interaja com o objeto real, como por exemplo, passar
por traz do objeto e criar uma sensação de profundidade.
“(...) Um dos maiores desafios encontrados no desenvolvimento de
aplicações em Realidade Aumentada, está na necessidade de rastreamento
do ponto de vista do usuário. A fim de conhecer sob que ponto de vista
desenhar o objeto virtual, a aplicação precisa conhecer o ponto de vista em
que o usuário está olhando no mundo real” (ARTOOLKIT; 2012).
22
Este problema torna-se de mais fácil resolução utilizando a Unity com a
Vuforia, pois em um marcador são identificados vários pontos, utilizando a leitura da
diferença de contraste proporcionada pela mudança repentina de cores em uma
imagem, montando-se uma grade da qual é possível apresentar de maneira mais
precisa o ponto de vista do usuário, inclusive tornando o rastreamento e
apresentação do marcador mais precisa em relação às outras ferramentas
apresentadas anteriormente.
23
4 DESENVOLVIMENTO DE APLICAÇÃO DE REALIDADE AUMENTADA
UTILIZANDO QUALCOMM VUFORIA E UNITY 3D
Após estudarmos as ferramentas disponíveis para criação de aplicações em
Realidade Aumentada para Android, foi escolhida uma delas para apresentar e
desenvolver uma aplicação. Utilizaremos a API Vuforia juntamente com o Unity 3D.
Para começar é necessário acessar o site dos fabricantes, e fazer o download
das respectivas ferramentas, ambas tem suporte apenas para Windows ou Mac.
Download da Unity: www.unity.com/download (é necessário baixar a versão para
Android).
Download da Vuforia: https://ar.qualcomm.at/qdevnet/sdk/android
(é necessário fazer o cadastro no site antes de realizar o download, se encontra
totalmente gratuita, porém a Qualcomm mantêm restrita apenas as pessoas que
fizerem cadastro no site da empresa.)
Caso utilize o Windows, faça download do arquivo de nome: vuforia-unity-
android-1-5-10.exe (deverá ter atualizações, então o numero da versão poderá
mudar)
4.1 INSTALAÇÃO
Após fazer o download de ambos, é necessário instalar a Unity 3D, o
processo de instalação é simples.
Execute o arquivo vuforia-unity-android-1-5-10.exe dê a ele permissão para
execução como administrador. Após o carregamento teremos a seguinte tela da
figura 7.
24
Figura 7 - Instalação Vuforia – Acordo de licença.
Nesta tela são apresentados todos os termos de serviço e processos
referentes a licença de utilização da extensão, é necessário ler até o fim para que a
opção “I accept the terms of the license Agreement” fique disponível, após basta
clicar em “Next”.
Na próxima tela, é possível escolher em qual pasta serão instaladas as
extensões, selecione conforme sua preferência, lembrando de deixar em um local de
fácil localização.
Basta então clicar em “Install” para que o programa de instalação execute sua
função, o processo é rápido, podendo levar menos de 2 minutos. Basta então clicar
em “Done” assim que o processo estiver terminado.
4.2 EXTENSÕES
Após finalizar serão gerados 7 arquivos na pasta escolhida (figura 8), estes
arquivos são extensões que podem ser executados cada um separadamente pela
Unity (o formato é UNITYPACKAGE e caso o Unity esteja instalado pode executar
este formato de arquivo.)
25
Figura 8 – Pacotes instalados pela Qualcomm Vuforia
Cada arquivo é responsável por uma biblioteca, cada biblioteca realiza uma
função diferente, veremos quais são:
4.2.1 Vuforia Android
A base QCAR da extensão, onde estão contidas as APIs para funcionamento
da câmera do Unity como uma Câmera de Realidade Aumentada. (Estudaremos
esta função posteriormente).
4.2.2 Vuforia imagetargets
O pacote de extensão responsável por trazer os marcadores padrões da
Vuforia, apesar de ser possível criar seus próprios marcadores, é necessário
instalar esta extensão para que ela crie a estrutura de pastas necessárias.
(Estudaremos a função desta extensão posteriormente, assim como a criação de
Marcadores).
4.2.3 Vuforia framemarkers
Extensão responsável pela criação de Frame Markers, que são “marcadores
de bordas” onde podemos obter um marcador a partir de um impresso que tenha
padrões nas bordas conforme a figura 9, este tipo de aplicação pode ser comparado
aos marcadores gerados pela NyArtoolkit.
26
Figura 9 – Exemplo de FrameMarkers (QUALCOMM VUFORIA; 2012)
4.2.4 Vuforia multitargets
Extensão responsável pela criação de aplicações que utilizem marcadores
múltiplos (mais de um marcador) ou então seja um objeto cúbico (figura 10) que
todos os lados sejam maçadores, em exemplo, uma caixa de cereais.
Figura 10 – Exemplo de Multitaregets (QUALCOMM VUFORIA; 2012)
4.2.5 Vuforia virtualbuttons
Extensão com botões virtuais, muito útil para criar aplicações nas quais se
utilizem botões, para executar algum comando em na aplicação, como por exemplo,
modificar a cor do meu objeto virtual ou dar play em alguma função (Figura 11). Os
botões virtuais funcionam a partir da sobreposição de algo (o dedo, por exemplo) no
local do marcador onde o botão foi alocado.
27
Figura 11 – Exemplo de botões virtuais. (QUALCOMM VUFORIA; 2012)
4.2.6 Vuforia backgroud terxtureacces
Extensão que permite a alocação de um vídeo sobrepondo o marcador, muito
utilizado em campanhas publicitárias.
4.2.7 Vuforia occlusion management
Extensão que permite a oclusão do objeto virtual dentro do objeto real, para
isto ele utiliza-se de shaders. Para que funcione com mais realidade, é interessante
combinar esta extensão com a extensão de multitargets, fazendo assim com que 0
objeto virtual pareça estar dentro de uma caixa, como o exemplo apresentado na
figura 12.
Figura 12 – Exemplo de oclusão em realidade aumentada (QUALCOMM VUFORIA; 2012)
28
Certamente que cada uma dessas extensões devem ser estudadas, para se
chegar á criação das mais diversas aplicações, No escopo deste trabalho, porém,
estudaremos apenas as necessárias para se compilar uma aplicação simples.
4.3 CRIAÇÃO DE TRACKABLES ( OU TARGETS)
Para que as aplicações de Realidade Aumentada funcionem, sempre é
necessária a criação de marcadores ou targets. No caso da Vuforia, a Qualcomm
nomeou tais marcadores como Trackables. Estas Trackables são marcadores não
aparentes, chamados de Markless ou Targless, pois em comparação com os
marcadores classicamente utilizados nas aplicações de RA, não apresentam, de
maneira evidente, os aspectos de marcação utilizados pelo software no
processamento do marcador.
O Trackables pode ser criado através do site da Qualcomm:
https://ar.qualcomm.at/qdevnet/projects em “My Trackables”.
Clicando em “New Project”, em seguida abrirá um campo para a nomeação do
projeto, nomeie e clique em continuar. Na nova página aberta, temos a opção de
renomear o projeto ou apagar o projeto (caso tenha feito algum outro projeto
anteriormente) também tem a opção “Create a Trackable”, esta é a opção que deve
ser clicada para se criar um marcador.
Após clicar na opção citada, abrirá uma nova tela (figura 13), aonde é
necessário nomear o marcador, selecionar então o formato do marcador, se é um
simples marcador, se é um marcador do tipo caixa para a utilização de Multitargets
ou se é um objeto do tipo cubo também para a utilização de Multitargets, e também
a largura da imagem (não é necessário especificar a altura).
29
Figura 13 – Tela de cadastro de Trackables.
Clicando em “upload” e então selecione o arquivo (são suportadas apenas
imagens em JPG ou PNG, não superiores a 2MB). Após o carregamento da imagem,
uma nova página será exibida (figura 14), nesta tela é possível identificar na imagem
quais pontos foram relevantes para o sistema e qual a “nota” atribuída a esta
imagem, certamente que quanto maior a “nota” mais precisa será a aplicação.
Figura 14 – Imagem detectada pelo sistema de Trackables.
Clicando então em “Back” a página redireciona para a primeira tela aonde foi
criada a aplicação, disponibilizando o link “Download Selected Trackables”, para
fazer o download é necessário selecionar a Trackable e clicar no link citado.
Ao clicar, uma nova tela é exibida (figura 15), nela, deve se escolher o
formato de download, se será utilizado para compilar juntamente ao SDK do Android
(utilizando o Eclipse, Netbeans, etc.) ou se será no formato Unity, da qual no
30
momento do download já é gerado um arquivo .unitypackage e pode ser executado
(e instalado) no momento em que o Unity estiver aberto.
Figura 15 – Salvando uma Trackable.
O arquivo, caso seja utilizado, deve ser instalado assim como as outras
extensões.
4.4 PROGRAMANDO UM PROJETO SIMPLES
Após ter instalado o Unity a Vuforia e criado um Trackable, pode-se dar inicio
à criação de uma aplicação simples, apenas com intuito de mostrar como funciona a
ferramenta.
Abra o Unity, crie uma nova aplicação.
Para este exemplo de aplicação, utilizaremos apenas as seguintes extensões:
vuforia-android-xx-yy-zz.unitypackage;
vuforia-imagetargets-android-xx-yy-zz.unitypackage.
Ao executar os arquivos .unitypackage com o Unity aberto, ele importa
automaticamente as bibliotecas e cria as estruturas de pasta. Os arquivos
importados estarão na aba “Projects” na pasta “Editor”.
31
Figura 16 – Estrutura de pastas da Unity com a biblioteca Vuforia instalada.
A partir deste ponto, exclua a “Main Camera”, acesse a pasta Qualcomm
Augmented Reality > Prefabs e arraste o componente ARCamera para a Scene.
O componente ARCamera contem toda a programação para que os
dispositivos reconheçam que a câmera é a do ambiente aonde a aplicação será
executada. As funções do prefab ARCamera podem ser modificadas conforme a
necessidade do usuário, na tela mostrada na figura 17.
Carregue então o objeto prefab ImageTarget para a Scene, o ImageTarget é
responsável por configurar a imagem que será o Target (ou marcador) nele é
possível selecionar entre uma das Trackables pré instaladas ou então baixadas no
tópico anterior. Para configurar, basta selecionar no campo “Data Set em Image
Target Behaviour (Script)” o Trackable que será utilizado. Todas as outras
configurações serão carregadas automaticamente conforme pode ser acompanhado
na figura 18.
32
Figura 17 – Funções do prefab ARCamera.
Figura 18 – Funções do prefab Image Target - Atribuição de target.
33
Esta função faz com que apareça na Scene a imagem como um plano, para
que seja possível trabalhar sobre ela, posicionar o objeto em 3D.
É necessário então retornar ao Prefab ARCamera e marcar o Active Data Set
em Data Set Load Behaviour e marcar o mesmo Data Set que foi utilizado no
ImageTarget. Isto fará com que a câmera reconheça o padrão que foi estabelecido
ao criar o Trackable
Figura 19 – Adicionando o padrão de reconhecimento da imagem.
Este foi o ultimo passo de configuração, então é necessário posicionar o
objeto em 3D, neste exemplo um cubo, clicando em GameObjects > Create Other >
Cube e também um ponto de Luz, adicionando em GameObjects > Create Other >
Direcional Light.
34
Posicione estes objetos sobre o marcador respeitando o plano representado
pelo marcador conforme a figura 20. E então basta compilar e executar a aplicação
em um dispositivo com Android 2.1 ou superior.
Figura 20 – Imagem da Scene criada.
4.5 COMPILAÇÃO
Para executar a aplicação e testar, é necessário ter um dispositivo Android,
não é possível executar a aplicação através de emulador, pois o Unity não tem esta
função pré-instalada. Para compilar o projeto, é necessário ir a File > Build Settings,
na nova tela que surgiu selecionar a plataforma Android e clicar sobre Switch
Plataform, o Unity se encarregará de modificar todas as bibliotecas para que
funcione em um dispositivo Android, isto demanda de certo tempo.
Após finalizar o passo anterior, é necessário clicar em Player Settings, na
barra lateral direita do Unity teremos várias opções, primeiro é necessário,
estabelecer um ícone para o aplicativo, este pode ser uma das diversas texturas
instaladas no Unity, ou então, uma nova imagem que fora colocada previamente na
pasta Textures do Unity. Então é necessário clicar em Resolutio & Presentation que
escolha qual será a orientação de tela em que o aplicativo irá trabalhar, a versão 3.5
do Unity permite a AutoRotação ou AutoOrientação. Também é necessário escolher
a versão mínima do sistema Android em que a aplicação irá funcionar, para isto
clique sobre Other Settings, e escolha a opção “Android 2.2 ‘Froyo’ (API Level)”, isto
significa que funcionará apenas em dispositivos com Android 2.2 ou superior, a
tecnologia da Vuforia, não consegue ser executada em dispositivos com versões
35
anteriores a esta, pois não tem bibliotecas suficientes, isto sem contar que podem
ter hardwares que não terão poder de processamento para a execução da aplicação.
A partir deste ponto, é necessário salvar a Scene, para isso vá a File > Save
Scene. Isto faz com que o trabalho não seja perdido, e faz as principais bibliotecas
de uma aplicação Android sejam salvas junto do projeto, para evitar erros na
compilação.
Então retorne a File > Build Settings, e clique sobre “Build”, este abrirá uma
janela aonde é possível selecionar a pasta aonde seu aplicativo será criado,
selecione conforme preferência, não se esquecendo de guardar em qual pasta está
para encontrar posteriormente.
Após o processo terminar, basta copiar o arquivo e transferir para o
dispositivo com Android, podendo ser via cabo USB, Bluetooth ou FTP.
4.6 INSTALAÇÃO NO ANDROID
Para que seja instalada a aplicação criada, é necessário seguir alguns
procedimentos (tais procedimentos podem sofrer alteração segundo a versão do
Android adotada. Para o escopo deste trabalho nos limitamos à versão 2.3.7).
Para que o “Build & Run” funcione acesse Configurações > Aplicativos >
Desenvolvimento, Habilite “Depuração USB”, isto permite com que o Unity instale e
execute remotamente através do cabo USB o programa criado, isto facilita muito o
processo de teste do software. Então, é necessário estar com o dispositivo com a
tela ativada para que a aplicação execute.
Para instalar o aplicativo, depois de compilado, é necessário também acessar
Configurações > Aplicativos > Gerenciar Aplicativos, e habilitar “Fontes
desconhecidas” também é necessário ter um gerenciador de arquivos instalado no
dispositivo Android, o mais recomendado é o Astro File Manager.
36
Com o Gerenciador de Arquivos instalado, basta encontrar o arquivo .apk
gerado no tópico 4.5, clicar sobre ele e instalar no dispositivo.
A partir deste ponto basta acessar o aplicativo.
4.7 PROJETO LABRINTO
Entre os diversos projetos que podem ser criados utilizando as tecnologias
demonstradas com a biblioteca da Vuforia, para este projeto foi criado um labirinto
virtual, e nele vários componentes, como uma esfera que pode ser movimentada
pelo jogador através dos manípulos no touchscreen, e vários cubos com o efeito
“rigid body” da Unity, que concede ao objeto propriedades físicas, como gravidade,
aceleração e velocidade, cada um dos cubos foram posicionados com um peso
diferenciado, podendo então “cair” no ambiente real. O funcionamento do projeto
pode ser demonstrado pela Figura 21, retirada por “screenshot” de um dispositivo
Android, onde no primeiro quadro é demonstrada a câmera do dispositivo
capturando o marcador, no segundo quadro o labirinto virtual já está montado sobre
a imagem real é possível observar que os cubos estão se mexendo se comparado
ao terceiro quadro, e então o ultimo quadro demonstra que foi possível movimentar o
objeto virtual esférico pela tela através dos manípulos.
Figura 21 – Funcionamento do projeto labirinto.
37
5 CONSIDERAÇÕES FINAIS
Com base nos capítulos apresentados, é possível concluir que a tecnologia
aqui mostrada, utilizando a Unity e a biblioteca Vuforia, é superior em alguns
aspectos, como a possibilidade de trabalhar utilizando uma imagem complexa de
marcador não visível (markless/tagless), também a utilização de uma ferramenta que
proporciona um ambiente de trabalho em 3D, facilitando muito a criação de uma
aplicação.
Outro recurso interessante de se utilizar a Unity 3D é a possibilidade da
implantação de recursos pré existentes da ferramenta, como detecção de coalizão,
objetos de corpo rígido, adição de scripts em C# ou JavaScript, dando margem a
criação de um jogo que utilize RA como ambiente de base.
Também foi possível observar o crescimento das aplicações em RA voltadas
para dispositivos móveis, dispositivos estes, que a cada dia ganham maior
capacidade de processamento, câmeras com maior qualidade, entre outros aspectos
positivos os dispositivos móveis tem chegado mais próximos das configurações
encontradas nos computadores, valendo-se da maior portabilidade.
Além da fácil distribuição dos aplicativos quantos publicados na plataforma
Google Play (loja on-line de aplicativos), pois todos os aparelhos com Android e
conexão a internet, podem acessar e baixar a aplicação.
Como foram observados, vários projetos que já foram criados em RA, como
instrumentos educacionais, campanhas publicitárias, projetos de arquitetura, entre
outros, podem ser adaptados para funcionamento em uma plataforma móvel,
melhorando assim a possibilidade de levar essa aplicação a pontos fora de um
laboratório, sala de aula, ou escritório.
Para trabalhos futuros é possível desenvolver uma aplicação similar ao
MagicBook, criando um jogo para cada página do livro a ser lido. Também é possível
criar um jogo de AIRockey aonde a câmera do dispositivo capta um marcador em
mãos, e é jogado sobre uma mesa virtual. A tecnologia Qualcomm Vuforia
apresentada neste projeto pode ser amplamente utilizada para a criação de jogos
que utilizem RA, devido a integração com a Unity, um framework para criação de
jogos.
38
6 REFERÊNCIAS BIBLIOGRÁFICAS
CITAÇÃO:
DONIZELLI, T. M. A Utilização da Realidade Virtual no Ensino de Conceitos de Física 2007. FORTE, C. E. Implementação de Laboratórios Virtuais em Realidade Aumentada
para Educação à Distância. 2008.
FORTE, C. E. Software Educacional Potencializado com Realidade Aumentada Para
Uso Em Física e Matemática. 2009.
FORTE, C. E.; KIRNER C. Usando Realidade Aumentada no Desenvolvimento de
Ferramenta para Aprendizagem de Física e Matemática. 2009.
HYAET, J.B. NYARTOOLKIT + PROCESSING: A Short Tutorial, 2011.
KEAHLER, G. Learning OpenCV, O’REILEY MEDIA INC. 2008.
LUZ, M.; GARCIA L. F. F.; MARCHIORO G. F. Realidade Aumentada Em
Dispositivos Móveis, 2008.
MARENGONI, M.; STRINGHINI, D. Introdução a Processamento de Imagens e
Visão Computacional Usando Opencv, 2008.
MARENGONI, M.; STRINGHINI, D. Tutorial: Introdução à Visão Computacional
Utilizando Opencv, 2008.
VIEIRA, B. N. et al. ARHOCKEY: Um Jogo Em Realidade Aumentada Baseada Em
Projetores, 2007.
39
SITES:
ANDROID SDK: Disponível em: http://developer.android.com/sdk/index.html
Acesso em Fevereiro/2012.
ARTOOLKIT. Disponível em: http://www.hitl.washington.edu/artoolkit/
Acesso em Fevereiro/2012.
OPENCV. Disponível em: http://opencv.willowgarage.com/wiki/
Acesso em Fevereiro/2012.
QUALCOMM VUFORIA. Disponível em:
https://developer.qualcomm.com/develop/mobile-technologies/augmented-reality
Acesso em Fevereiro/2012.
UNITY 3D. Disponível em: http://unity3d.com/
Acesso em Fevereiro/2012.