You are on page 1of 39

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


samuelluciano6@gmail.com

Trabalho de Concluso de Curso desenvolvido em cumprimento exigncia curricular do Curso Superior de Tecnologia em Desenvolvimento de Jogos Digitais, sob a orientao 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 esforando ao mximo para que nada faltasse em meu desenvolvimento pessoal e profissional, independente das condies financeiras.

Agradeo minha namorada, que est comigo em todos os momentos, felizes ou ruins, acredita em meu potencial e incentiva muito meu progresso.

Agradeo, tambm, ao meu irmo, que sem dvida algum em quem me espelho.

Agradeo aos meus amigos e colegas que muito fizeram por mim durante toda a realizao deste trabalho.

Gostaria de agradecer, tambm, aos colaboradores da FATEC Americana, por estes anos de convivncia quando pude, ento, realizar meu sonho e me graduar na rea de Jogos Digitais.

E, sem dvida, em agradecimento especial, o Prof. Me. Cleberson Forte, meu orientador e amigo, que fez tudo o possvel para que esse trabalho se concretizasse.

DEDICATRIA

Aos meus pais Valdeir Firmino da Silva e Maria de Fatima C. F.

A minha namorada Chaiene Vargas.

A meu irmo Dione Everton.

A meus professores da FATEC - Americana

A todos meus amigos e companheiros.

RESUMO Atualmente, o mercado de equipamentos mveis, como smartphones e tablets, vem crescendo e motivando o surgimento de vrios Sistemas Operacionais, dentre eles o Android, foco deste estudo, uma plataforma de cdigo aberto que possibilita facilmente a criao de aplicaes e jogos para dispositivos mveis. A Realidade Aumentada (RA) muito comum em computadores de mesa e notebooks, e hoje em dia muito utilizada na rea de educao, publicidade, engenharia e arquitetura. A RA para Android vem para unir as duas reas, aproveitando a tecnologia de RA com a mobilidade dos dispositivos mveis. Neste trabalho, so apresentadas ferramentas para desenvolvimento, projetos relacionados e a criao de uma aplicao 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

SUMRIO 1 2 INTRODUO ................................................................................................... 10 REALIDADE AUMENTADA PARA DISPOSITIVOS MVEIS .......................... 12

2.1 APLICAES EM REALIDADE AUMENTADA ............................................... 13 2.1.1 Magicbook ................................................................................................... 14 2.1.2 Airhockey .................................................................................................... 15 2.1.3 Jogo com RA em dispositivos mveis ......................................................... 16 3 FERRAMENTAS PARA DESENVOLVIMENTO DE RALIDADE AUMENTADA PARA DISPOSITIVOS MVEIS ............................................................................... 18 3.1 NYARTOOLKIT ................................................................................................. 18 3.2 OPENCV ............................................................................................................ 20 3.3 QUALCOMM VUFORIA..................................................................................... 21 4 DESENVOLVIMENTO DE APLICAO DE REALIDADE AUMENTADA UTILIZANDO QUALCOMM VUFORIA E UNITY 3D ................................................ 23 4.1 INSTALAO .................................................................................................... 23 4.2 EXTENSES ..................................................................................................... 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 CRIAO DE TRACKABLES ( OU TARGETS) ............................................... 28 4.4 PROGRAMANDO UM PROJETO SIMPLES ..................................................... 30 4.5 COMPILAO ................................................................................................... 34 4.6 INSTALAO NO ANDROID ............................................................................ 35 4.7 PROJETO LABRINTO....................................................................................... 36 5 6 CONSIDERAES FINAIS ............................................................................... 37 REFERNCIAS BIBLIOGRFICAS .................................................................. 38

LISTA DE FIGURAS E DE TABELAS


Figura 1 Comparativo da venda de smartphones conforme sistema operacional e previso para os prximos 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 tpico captado pela NyARtoolkit........................................19 Figura 5 Aplicao criada pela NyArtoolkit..........................................................................19 Figura 6 Exemplo de marcador reconhecido pela Vuforia...................................................21 Figura 7 - Instalao Vuforia Acordo de licena..................................................................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 botes virtuais.................................................................................27 Figura 12 Exemplo de ocluso 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 Funes do prefab ARCamera...........................................................................32 Figura 18 Funes do prefab Image Target - Atribuio de target.....................................32 Figura 19 Adicionando o padro de reconhecimento da imagem......................................33 Figura 20 Imagem da Scene criada....................................................................................34 Figura 21 Funcionamento do projeto labirinto.....................................................................36

10

INTRODUO Os ltimos lanamentos no mercado de Smartphones e Tablets trouxeram

grande evoluo de hardware, processamento, capacidade de memria, resoluo de tela, cmera e outros componentes, aproximando-se cada vez mais das configuraes encontradas em Desktops e Notebooks. Junto com essa evoluo possvel trazer aplicaes que antes eram restritas aos computadores de mesa aos dispositivos mveis, que agora contam como uma vantagem: a mobilidade. Destas aplicaes, a Realidade Aumentada (RA) pode ser moldada ao mbito mvel, na RA utilizado o ambiente real como predominante, utilizando de reconhecimento de parmetros e componentes do ambiente real para a visualizao e manipulao de um objeto virtual. Ao contrrio de Realidade Virtual (RV) aonde criado um ambiente virtual, fazendo o controle atravs de um sistema computadorizado, tentando neste ambiente virtual modelar sentidos que existem no ambiente real a fim de aumentar a imerso do utilizador. A grande vantagem da RA em dispositivos mveis que a maioria dispe de cmeras e capacidade de processamento para a anlise de imagens e at a composio de objetos virtuais em 3D. Este projeto tem como objetivo criar uma aplicao em RA tornando possvel de ser executada em dispositivos mveis que utilizam o sistema operacional Android. Como objetivos secundrios, pretende-se mostrar que a utilizao da tecnologia nas reas de educao, serious games, propaganda, entre outras reas pode ser relevante. O trabalho foi estruturado em cinco captulos, alm da concluso. O captulo dois conceitua sobre o que a tecnologia de Realidade Aumentada (RA), demonstrando um pouco do crescimento junto s plataformas mveis,

principalmente o Android, e mostrando tambm trabalhos correlatos na rea, como o Magicbook, programa que implementa em um livro com caractersticas de RA para aumentar a imerso na histria, o AIRockey uma aplicao que utiliza realidade aumentada projetada, para simular um jogo comum em fliperamas, e o projeto de um

11

jogo feito para dispositivos mveis, que utiliza os conceitos de RA e mobilidade apresentados neste artigo. O terceiro captulo trata sobre as principais ferramentas para programao desta tecnologia, no caso foram escolhidas trs, por serem de cdigo opensource e que podem ser empregadas livremente para uso acadmico, so 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 aplicao em Android. No quarto captulo apresenta-se um tutorial de utilizao da ferramenta Vuforia, o tutorial aborda o modo de instalao da biblioteca, a criao de targets (Trackables), a instalao das bibliotecas na Unity 3D, um breve exemplo de como criar uma aplicao simples e ento compilar e executar no Android. Com base nas informaes conseguidas a partir dos estudos realizados nos captulos anteriores, foi criada uma discusso, no quinto capitulo, sobre o quanto essa tecnologia promissora em comparao com outras possibilidades.

12

REALIDADE AUMENTADA PARA DISPOSITIVOS MVEIS Motivados pelo crescimento das tecnologias e do mercado de

telecomunicaes, surgiram vrios dispositivos mveis como Smartphones e Tablets, equipamentos que demandam, de forma geral, de um sistema operacional. Dos vrios do mercado, o que se sobressai atualmente o Android, conforme pode ser demonstrado pela figura 1, que apresenta um grfico de crescimento das vendas, onde o sistema ultrapassa os outros, com previso de que as vendas continuem aumentando nos prximos anos. Tal sistema suporta aplicaes de RA, a qual pode ser aplicada a diversas reas, como Jogos Digitais, Educao, Publicidade e Propaganda, Engenharias, Arquitetura, etc. A tecnologia de RA tambm apresenta crescimento, conforme comenta Forte (2009):
[...] O que se observa, atualmente um crescente interesse por parte da sociedade e dos veculos de comunicao, para com as tecnologias de RV e RA. A consolidao da tecnologia, atravs das inmeras 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 prxima da realidade da populao em geral. Diferentes aplicaes, envolvendo as tecnologias de RV e RA, foram

desenvolvidas e outras continuam a s-lo, buscando sua aplicao como ferramenta para o auxilio de diferentes necessidades sociais. (FORTE; 2009).

Figura 1 Comparativa da venda de smartphones conforme sistema operacional e previso para os prximos anos (GARTNER, 2012).

13

Anteriormente, executar uma aplicao em Realidade Aumentada demandava de um computador de mesa ou notebook e uma cmera normalmente conhecida como Webcam. Montar tal sistema exige que o usurio tenha de carregar equipamentos pesados, faltando mobilidade. A possibilidade de carregar uma aplicao em RA disposta em um celular, ou tablet, tornou mais fcil, por exemplo, criar uma campanha de publicidade utilizando RA, pois possvel 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 ento ver aquele objeto virtual que foi criado com uma finalidade especfica de publicidade. Tal conceito pode ser aplicado, tambm, outras reas, conforme comentado anteriormente.

A vantagem de se executar uma aplicao em RA utilizando um aparelho com Android no se restringe apenas capacidade mvel do aparelho, mas tambm a disposio de uma tela touch, que pode aumentar consideravelmente a interatividade do aplicativo, torna possvel obter controle de objetos atravs do touchscreen, executar comandos como zoom, rotao, ou ento a criao de botes virtuais os quais podem executar funes especficas, como disparar ou movimentar um objeto. Outra caracterstica que a cada novo lanamento de smartphones e tablets, novas capacidades so demonstradas em equipamentos com

processadores, memria e armazenamento cada vez mais potentes:


(...) Alguns aparelhos de telefone celular so dispositivos que apresentam um bom poder de processamento, levando-se em conta que se tratam de dispositivos mveis microprocessados com caractersticas limitadas. Estes so capazes de executar algoritmos desenvolvidos nas linguagens C++ e Java. (LUZ, GARCA,

MARCHIORO; 2008).

2.1

APLICAES EM REALIDADE AUMENTADA Muitas aplicaes 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 combinao de realidade aumentada e jogos, pois permitem combinar caractersticas da realidade que podem ser aproveitadas em dinmicas inovadoras de jogo (dimenso espacial real, tangibilidade, disponibilidade, familiaridade do usurio) com a facilidade de se sintetizar elementos virtuais com base em tcnicas empregadas tradicionalmente em jogos convencionais (VIEIRA, et al, 2006).

A maioria das aplicaes que j foram criadas, que envolvem jogos, educao, ou publicidade, podem facilmente ser transportadas para a plataforma Android, proporcionando uma nova viso e utilizao dos recursos. Algumas das aplicaes mostradas abaixo, certamente se enquadrariam muito bem no conceito mvel. 2.1.1 Magicbook O Magicbook, uma aplicao criada utilizando o ARToolkit, ela utiliza um livro com parmetros que ao utilizar RA possvel ver um objeto virtual, pode ser melhor descrita por Forte:
(..) Esta aplicao, ganhadora do prmio Discover Awards, em 2001, na categoria inovao (DISCOVER, 2001), introduz o conceito de um livro enriquecido com RA. A aplicao permite, ao usurio, a visualizao de objetos tridimensionais sobre as pginas do livro. interessante notar, tambm, que o MagicBook no se limita simples visualizao e manipulao de objetos como numa aplicao comum de RA. Ele vai alm disso, ao permitir que o usurio passe da visualizao do objeto a uma navegao imersiva atravs do uso de dispositivos especiais (BILLINGHURST; KATO; POUPYREV 2001 apud FORTE 2009).

O MagicBook um livro comum, que pode ser lido de forma convencional, porm deveras enriquecido atravs do recurso de RA, utilizando-se de um dispositivo chamado de Handle Display, possvel observar a cena virtual criada com a inteno de enriquecer a leitura. Tal dispositivo, hoje, pode ser facilmente

15

substitudo por um aparelho de celular ou tablet com Android, podendo se tornar uma aplicao ainda mais conhecida acrescentando ao que foi comentado por Forte:
(...)As caractersticas oferecidas pelo MagicBook o tornaram uma das mais conhecidas aplicaes de RA no contexto educacional. Diferentes artigos a citam como fonte buscada para o desenvolvimento de diversas outras aplicaes. O que se observa que o usurio, interagindo com a histria em um livro enriquecido com a RA, tem maior interesse e dispe de mais ateno para com o contedo exibido. Esta caracterstica encarada como de muita valia quando pensamos no desenvolvimento de uma aplicao para o contexto educacional. Por estes motivos o conceito de livro virtual foi bastante empregado por diversas pesquisas e tambm no Brasil. (FORTE, 2009).

Um exemplo de aplicao que exatamente suportado pela tecnologia apresentada neste artigo, podendo facilitar ao usurio ter acesso parte virtual do livro utilizando um dispositivo mais barato e de uso mais abrangente. 2.1.2 Airhockey Uma aplicao 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 comentrio dos criadores:
(..) O ARHockey jogado por dois participantes munidos de batedores e um plano horizontal (de preferncia uma mesa) no qual o ambiente do jogo ser projetado. Na mesa virtual projetada h um disco que deve ser impulsionado pelos jogadores em direo ao gol adversrio, 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 projeo, o ARHockey

simula a mesa em que o jogo

executado, a fim de permitir, que no s os jogadores possam visualizar o jogo, mas tambm os expectadores, como podemos observar na figura 2 a projeo liberta os

16

jogadores de utilizar equipamentos acoplados ao corpo, prejudicando o conforto e a mobilidade, tambm 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 dvida trata-se de uma aplicao muito interessante, em RA, podendo ser covertida para uma plataforma mvel, como Android, para substituir o uso dos HMDs em um projeto mais caro. 2.1.3 Jogo com RA em dispositivos mveis Nesta aplicao o jogador deve posicionar a mira sobre o disco voador atravs de movimentos com o aparelho e ento pressionar o boto simbolizando atirar para destruir o disco voador, estes, construdos em tempo de execuo do aplicativo, e utilizam a cmera 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 temtica do jogo atingir pequenos discos voadores que esto invadindo a terra. O jogo tem um tempo fixo de durao e existe uma quantidade pr -definida de discos voadores a abater. O nvel de dificuldade do jogo aumenta quando o usurio alcana o objetivo e passa para a prxima fase. Os discos voadores tentam escapar da mira da arma do usurio para se defenderem, cabendo ao jogador ser mais gil no movimento do dispositivo mvel. Os discos voadores do jogo so suplementos virtuais adicionados ao ambiente real capturado pela cmera do telefone celular. Estes suplementos reagem em relao aos movimentos do dispositivo executado pelo usurio.
(...) atravs de um vdeo do ambiente real se extrai informaes de uma imagem, como: movimento, distncias e objetos. Com essas

informaes podemos adicionar suplementos virtuais ao vdeo, que so capazes de interagir e reagir com objetos do mundo real ou com os movimentos do usurio. (LUZ, GARCA, MARCHIORO, 2008)

Como o demonstrado neste artigo, possvel criar jogos e outros tipos de aplicativos utilizando RA para dispositivos mveis, isto algo que est se tornando mais comum, em uma rpida pesquisa na loja de aplicativos do Android, a Google Play, possvel identificar vrios aplicativos que apresentam a tecnologia.

18

FERRAMENTAS PARA DESENVOLVIMENTO DE RALIDADE AUMENTADA

PARA DISPOSITIVOS MVEIS

Existem

diversas

ferramentas

para

desenvolvimento

de

Realidade

Aumentada, porm, ainda no so todas as ferramentas que esto disponveis para se trabalhar com Android ou outro SO para dispositivos mveis. Aps diversas pesquisas foram identificadas as principais ferramentas para este tipo de aplicao, 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 aplicaes de RA, bastante popular dentre os pesquisadores da rea (ARTOOLKIT, 2009) isto acontece pelo fato da biblioteca fornecer solues de rastreamento 3D, em tempo real, com baixo custo computacional. (LEPETIT; FUA, 2005 apud FORTE,2009) Alm disso o ARToolkit amplamente utilizado por ser distribudo livremente para fins no comerciais incentivando a liberdade para os usurios executarem, estudarem e modificarem os cdigos disponveis na biblioteca, de acordo com as suas necessidades (SANTIN, 2008, apud FORTE; 2009)

A NYARToolkit uma variante da ARToolkit construda em Linguagem Java, visando a portabilidade desta tecnologia para dispositivos mveis capazes de executar aplicaes em Java, o que muito comum na maioria dos dispositivos, o funcionamento da biblioteca idntico 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 caractersticas especficas, impressa sobre papel comum. Tais caractersticas 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 smbolo para identificao das placas, obtendo-se melhores resultados quando usados smbolos assimtricos, para ajudar no processo de orientao do objeto virtual em relao s bordas do marcador (KATO et al, 2002 apud FORTE; 2009).

Figura 4 Exemplo de marcador tpico captado pela NyARtoolkit

(...) O objeto virtual sobreposto ao marcador deforma que, quando usurio movimenta o marcador, o objeto movido junto, dando a impresso de que ambos esto colados ou fazem parte de uma s estrutura. (FORTE; 2009)

Figura 5 Aplicao criada pela NyArtoolkit.

A NyArtoolkit uma biblioteca muito interessante, com diversos recursos que podem ser empregados na criao de aplicaes, porm, a deteco das tags um tanto precria, depende muito da qualidade de captura da imagem, iluminao, qualidade da impresso do marcador, entre outros fatores que podem atrapalhar a experincia de utilizao.

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 mdulos de processamento de imagem e vdeo, estrutura de dados, lgebra linear, e interface grfica do usurio, controle de mouse e teclado e vrios algoritmos de viso 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 funes. Foi idealizada com o objetivo de tornar a viso computacional acessvel a usurios e programadores em reas tais como a interao humano-computador em tempo real e a robtica. A biblioteca est disponvel com o cdigo fonte e os executveis (binrios) 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, alm de documentao e um conjunto de cdigos exemplos. (MARENGONI, STRINGHINI; 2009)

A biblioteca tambm 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 vrias reas, como: Identificao de objetos, sistema de reconhecimento facial, reconhecimento de movimentos, realidade virtual, realidade aumentada e robs mveis.

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 tambm se torna uma extenso para o Unity, tal desenvolvimento com a finalidade de tornar mais fcil o processo de criao de uma aplicao em realidade aumentada para Android, com viso de que lanando 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 vrios 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 tambm pode analisar objetos complexos, que tenham imagens em todos os lados, como a caixa de um produto, com esse tipo de tecnologia possvel fazer com que o objeto virtual interaja com o objeto real, como por exemplo, passar por traz do objeto e criar uma sensao de profundidade.
(...) Um dos maiores desafios encontrados no desenvolvimento de aplicaes em Realidade Aumentada, est na necessidade de rastreamento do ponto de vista do usurio. A fim de conhecer sob que ponto de vista desenhar o objeto virtual, a aplicao precisa conhecer o ponto de vista em que o usurio est olhando no mundo real (ARTOOLKIT; 2012).

22

Este problema torna-se de mais fcil resoluo utilizando a Unity com a Vuforia, pois em um marcador so identificados vrios pontos, utilizando a leitura da diferena de contraste proporcionada pela mudana repentina de cores em uma imagem, montando-se uma grade da qual possvel apresentar de maneira mais precisa o ponto de vista do usurio, inclusive tornando o rastreamento e apresentao do marcador mais precisa em relao s outras ferramentas apresentadas anteriormente.

23

DESENVOLVIMENTO DE APLICAO DE REALIDADE AUMENTADA

UTILIZANDO QUALCOMM VUFORIA E UNITY 3D

Aps estudarmos as ferramentas disponveis para criao de aplicaes em Realidade Aumentada para Android, foi escolhida uma delas para apresentar e desenvolver uma aplicao. Utilizaremos a API Vuforia juntamente com o Unity 3D.

Para comear necessrio 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 ( necessrio baixar a verso para Android).

Download da Vuforia: https://ar.qualcomm.at/qdevnet/sdk/android ( necessrio fazer o cadastro no site antes de realizar o download, se encontra totalmente gratuita, porm a Qualcomm mantm restrita apenas as pessoas que fizerem cadastro no site da empresa.)

Caso utilize o Windows, faa download do arquivo de nome: vuforia-unityandroid-1-5-10.exe (dever ter atualizaes, ento o numero da verso poder mudar)

4.1

INSTALAO Aps fazer o download de ambos, necessrio instalar a Unity 3D, o

processo de instalao simples. Execute o arquivo vuforia-unity-android-1-5-10.exe d a ele permisso para execuo como administrador. Aps o carregamento teremos a seguinte tela da figura 7.

24

Figura 7 - Instalao Vuforia Acordo de licena.

Nesta tela so apresentados todos os termos de servio e processos referentes a licena de utilizao da extenso, necessrio ler at o fim para que a opo I accept the terms of the license Agreement fique disponvel, aps basta clicar em Next. Na prxima tela, possvel escolher em qual pasta sero instaladas as extenses, selecione conforme sua preferncia, lembrando de deixar em um local de fcil localizao. Basta ento clicar em Install para que o programa de instalao execute sua funo, o processo rpido, podendo levar menos de 2 minutos. Basta ento clicar em Done assim que o processo estiver terminado. 4.2 EXTENSES Aps finalizar sero gerados 7 arquivos na pasta escolhida (figura 8), estes arquivos so extenses 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 responsvel por uma biblioteca, cada biblioteca realiza uma funo diferente, veremos quais so: 4.2.1 Vuforia Android A base QCAR da extenso, onde esto contidas as APIs para funcionamento da cmera do Unity como uma Cmera de Realidade Aumentada. (Estudaremos esta funo posteriormente). 4.2.2 Vuforia imagetargets O pacote de extenso responsvel por trazer os marcadores padres da Vuforia, apesar de ser possvel criar seus prprios marcadores, necessrio

instalar esta extenso para que ela crie a estrutura de pastas necessrias. (Estudaremos a funo desta extenso posteriormente, assim como a criao de Marcadores). 4.2.3 Vuforia framemarkers Extenso responsvel pela criao de Frame Markers, que so marcadores de bordas onde podemos obter um marcador a partir de um impresso que tenha padres nas bordas conforme a figura 9, este tipo de aplicao pode ser comparado aos marcadores gerados pela NyArtoolkit.

26

Figura 9 Exemplo de FrameMarkers (QUALCOMM VUFORIA; 2012)

4.2.4 Vuforia multitargets Extenso responsvel pela criao de aplicaes que utilizem marcadores mltiplos (mais de um marcador) ou ento seja um objeto cbico (figura 10) que todos os lados sejam maadores, em exemplo, uma caixa de cereais.

Figura 10 Exemplo de Multitaregets (QUALCOMM VUFORIA; 2012)

4.2.5 Vuforia virtualbuttons Extenso com botes virtuais, muito til para criar aplicaes nas quais se utilizem botes, para executar algum comando em na aplicao, como por exemplo, modificar a cor do meu objeto virtual ou dar play em alguma funo (Figura 11). Os botes virtuais funcionam a partir da sobreposio de algo (o dedo, por exemplo) no local do marcador onde o boto foi alocado.

27

Figura 11 Exemplo de botes virtuais. (QUALCOMM VUFORIA; 2012)

4.2.6 Vuforia backgroud terxtureacces Extenso que permite a alocao de um vdeo sobrepondo o marcador, muito utilizado em campanhas publicitrias. 4.2.7 Vuforia occlusion management Extenso que permite a ocluso do objeto virtual dentro do objeto real, para isto ele utiliza-se de shaders. Para que funcione com mais realidade, interessante combinar esta extenso com a extenso de multitargets, fazendo assim com que 0 objeto virtual parea estar dentro de uma caixa, como o exemplo apresentado na figura 12.

Figura 12 Exemplo de ocluso em realidade aumentada (QUALCOMM VUFORIA; 2012)

28

Certamente que cada uma dessas extenses devem ser estudadas, para se chegar criao das mais diversas aplicaes, No escopo deste trabalho, porm, estudaremos apenas as necessrias para se compilar uma aplicao simples. 4.3 CRIAO DE TRACKABLES ( OU TARGETS) Para que as aplicaes de Realidade Aumentada funcionem, sempre necessria a criao de marcadores ou targets. No caso da Vuforia, a Qualcomm nomeou tais marcadores como Trackables. Estas Trackables so marcadores no aparentes, chamados de Markless ou Targless, pois em comparao com os marcadores classicamente utilizados nas aplicaes de RA, no apresentam, de maneira evidente, os aspectos de marcao utilizados pelo software no processamento do marcador.

Trackables

pode

ser

criado

atravs

do

site

da

Qualcomm:

https://ar.qualcomm.at/qdevnet/projects em My Trackables. Clicando em New Project, em seguida abrir um campo para a nomeao do projeto, nomeie e clique em continuar. Na nova pgina aberta, temos a opo de renomear o projeto ou apagar o projeto (caso tenha feito algum outro projeto anteriormente) tambm tem a opo Create a Trackable, esta a opo que deve ser clicada para se criar um marcador.

Aps clicar na opo citada, abrir uma nova tela (figura 13), aonde necessrio nomear o marcador, selecionar ento o formato do marcador, se um simples marcador, se um marcador do tipo caixa para a utilizao de Multitargets ou se um objeto do tipo cubo tambm para a utilizao de Multitargets, e tambm a largura da imagem (no necessrio especificar a altura).

29

Figura 13 Tela de cadastro de Trackables.

Clicando em upload e ento selecione o arquivo (so suportadas apenas imagens em JPG ou PNG, no superiores a 2MB). Aps o carregamento da imagem, uma nova pgina ser exibida (figura 14), nesta tela possvel identificar na imagem quais pontos foram relevantes para o sistema e qual a nota atribuda a esta imagem, certamente que quanto maior a nota mais precisa ser a aplicao.

Figura 14 Imagem detectada pelo sistema de Trackables.

Clicando ento em Back a pgina redireciona para a primeira tela aonde foi criada a aplicao, disponibilizando o link Download Selected Trackables, para fazer o download necessrio 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 extenses.

4.4

PROGRAMANDO UM PROJETO SIMPLES Aps ter instalado o Unity a Vuforia e criado um Trackable, pode-se dar inicio

criao de uma aplicao simples, apenas com intuito de mostrar como funciona a ferramenta.

Abra o Unity, crie uma nova aplicao.

Para este exemplo de aplicao, utilizaremos apenas as seguintes extenses: 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 estaro 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 programao para que os dispositivos reconheam que a cmera a do ambiente aonde a aplicao ser executada. As funes do prefab ARCamera podem ser modificadas conforme a necessidade do usurio, na tela mostrada na figura 17.

Carregue ento o objeto prefab ImageTarget para a Scene, o ImageTarget responsvel por configurar a imagem que ser o Target (ou marcador) nele possvel selecionar entre uma das Trackables pr instaladas ou ento baixadas no tpico anterior. Para configurar, basta selecionar no campo Data Set em Image Target Behaviour (Script) o Trackable que ser utilizado. Todas as outras configuraes sero carregadas automaticamente conforme pode ser acompanhado na figura 18.

32

Figura 17 Funes do prefab ARCamera.

Figura 18 Funes do prefab Image Target - Atribuio de target.

33

Esta funo faz com que aparea na Scene a imagem como um plano, para que seja possvel trabalhar sobre ela, posicionar o objeto em 3D.

necessrio ento 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 cmera reconhea o padro que foi estabelecido ao criar o Trackable

Figura 19 Adicionando o padro de reconhecimento da imagem.

Este foi o ultimo passo de configurao, ento necessrio posicionar o objeto em 3D, neste exemplo um cubo, clicando em GameObjects > Create Other > Cube e tambm 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 ento basta compilar e executar a aplicao em um dispositivo com Android 2.1 ou superior.

Figura 20 Imagem da Scene criada.

4.5

COMPILAO Para executar a aplicao e testar, necessrio ter um dispositivo Android,

no possvel executar a aplicao atravs de emulador, pois o Unity no tem esta funo pr-instalada. Para compilar o projeto, necessrio 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. Aps finalizar o passo anterior, necessrio clicar em Player Settings, na barra lateral direita do Unity teremos vrias opes, primeiro necessrio, estabelecer um cone para o aplicativo, este pode ser uma das diversas texturas instaladas no Unity, ou ento, uma nova imagem que fora colocada previamente na pasta Textures do Unity. Ento necessrio clicar em Resolutio & Presentation que escolha qual ser a orientao de tela em que o aplicativo ir trabalhar, a verso 3.5 do Unity permite a AutoRotao ou AutoOrientao. Tambm necessrio escolher a verso mnima do sistema Android em que a aplicao ir funcionar, para isto clique sobre Other Settings, e escolha a opo Android 2.2 Froyo (API Level), isto significa que funcionar apenas em dispositivos com Android 2.2 ou superior, a tecnologia da Vuforia, no consegue ser executada em dispositivos com verses

35

anteriores a esta, pois no tem bibliotecas suficientes, isto sem contar que podem ter hardwares que no tero poder de processamento para a execuo da aplicao.

A partir deste ponto, necessrio salvar a Scene, para isso v a File > Save Scene. Isto faz com que o trabalho no seja perdido, e faz as principais bibliotecas de uma aplicao Android sejam salvas junto do projeto, para evitar erros na compilao. Ento retorne a File > Build Settings, e clique sobre Build, este abrir uma janela aonde possvel selecionar a pasta aonde seu aplicativo ser criado, selecione conforme preferncia, no se esquecendo de guardar em qual pasta est para encontrar posteriormente.

Aps o processo terminar, basta copiar o arquivo e transferir para o dispositivo com Android, podendo ser via cabo USB, Bluetooth ou FTP. 4.6 INSTALAO NO ANDROID Para que seja instalada a aplicao criada, necessrio seguir alguns procedimentos (tais procedimentos podem sofrer alterao segundo a verso do Android adotada. Para o escopo deste trabalho nos limitamos verso 2.3.7). Para que o Build & Run funcione acesse Configuraes > Aplicativos > Desenvolvimento, Habilite Depurao USB, isto permite com que o Unity instale e execute remotamente atravs do cabo USB o programa criado, isto facilita muito o processo de teste do software. Ento, necessrio estar com o dispositivo com a tela ativada para que a aplicao execute.

Para instalar o aplicativo, depois de compilado, necessrio tambm acessar Configuraes > Aplicativos > Gerenciar Aplicativos, e habilitar Fontes desconhecidas tambm necessrio 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 tpico 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 vrios componentes, como uma esfera que pode ser movimentada pelo jogador atravs dos manpulos no touchscreen, e vrios cubos com o efeito rigid body da Unity, que concede ao objeto propriedades fsicas, como gravidade, acelerao e velocidade, cada um dos cubos foram posicionados com um peso diferenciado, podendo ento 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 cmera do dispositivo capturando o marcador, no segundo quadro o labirinto virtual j est montado sobre a imagem real possvel observar que os cubos esto se mexendo se comparado ao terceiro quadro, e ento o ultimo quadro demonstra que foi possvel movimentar o objeto virtual esfrico pela tela atravs dos manpulos.

Figura 21 Funcionamento do projeto labirinto.

37

CONSIDERAES FINAIS Com base nos captulos apresentados, possvel 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 no visvel (markless/tagless), tambm a utilizao de uma ferramenta que proporciona um ambiente de trabalho em 3D, facilitando muito a criao de uma aplicao. Outro recurso interessante de se utilizar a Unity 3D a possibilidade da implantao de recursos pr existentes da ferramenta, como deteco de coalizo, objetos de corpo rgido, adio de scripts em C# ou JavaScript, dando margem a criao de um jogo que utilize RA como ambiente de base. Tambm foi possvel observar o crescimento das aplicaes em RA voltadas para dispositivos mveis, dispositivos estes, que a cada dia ganham maior capacidade de processamento, cmeras com maior qualidade, entre outros aspectos positivos os dispositivos mveis tem chegado mais prximos das configuraes encontradas nos computadores, valendo-se da maior portabilidade. Alm da fcil distribuio dos aplicativos quantos publicados na plataforma Google Play (loja on-line de aplicativos), pois todos os aparelhos com Android e conexo a internet, podem acessar e baixar a aplicao. Como foram observados, vrios projetos que j foram criados em RA, como instrumentos educacionais, campanhas publicitrias, projetos de arquitetura, entre outros, podem ser adaptados para funcionamento em uma plataforma mvel, melhorando assim a possibilidade de levar essa aplicao a pontos fora de um laboratrio, sala de aula, ou escritrio. Para trabalhos futuros possvel desenvolver uma aplicao similar ao MagicBook, criando um jogo para cada pgina do livro a ser lido. Tambm possvel criar um jogo de AIRockey aonde a cmera do dispositivo capta um marcador em mos, e jogado sobre uma mesa virtual. A tecnologia Qualcomm Vuforia apresentada neste projeto pode ser amplamente utilizada para a criao de jogos que utilizem RA, devido a integrao com a Unity, um framework para criao de jogos.

38

REFERNCIAS BIBLIOGRFICAS

CITAO: DONIZELLI, T. M. A Utilizao da Realidade Virtual no Ensino de Conceitos de Fsica 2007. FORTE, C. E. Implementao de Laboratrios Virtuais em Realidade Aumentada para Educao Distncia. 2008.

FORTE, C. E. Software Educacional Potencializado com Realidade Aumentada Para Uso Em Fsica e Matemtica. 2009.

FORTE, C. E.; KIRNER C. Usando Realidade Aumentada no Desenvolvimento de Ferramenta para Aprendizagem de Fsica e Matemtica. 2009.

HYAET, J.B. NYARTOOLKIT + PROCESSING: A Short Tutorial, 2011. KEAHLER, G. Learning OpenCV, OREILEY MEDIA INC. 2008.

LUZ, M.; GARCIA L. F. F.; MARCHIORO G. F. Realidade Aumentada Em Dispositivos Mveis, 2008.

MARENGONI, M.; STRINGHINI, D. Introduo a Processamento de Imagens e Viso Computacional Usando Opencv, 2008.

MARENGONI, M.; STRINGHINI, D. Tutorial: Introduo Viso Computacional Utilizando Opencv, 2008.

VIEIRA, B. N. et al. ARHOCKEY: Um Jogo Em Realidade Aumentada Baseada Em Projetores, 2007.

39

SITES:

ANDROID SDK: Disponvel em: http://developer.android.com/sdk/index.html Acesso em Fevereiro/2012.

ARTOOLKIT. Disponvel em: http://www.hitl.washington.edu/artoolkit/ Acesso em Fevereiro/2012.

OPENCV. Disponvel em: http://opencv.willowgarage.com/wiki/ Acesso em Fevereiro/2012.

QUALCOMM VUFORIA. Disponvel em: https://developer.qualcomm.com/develop/mobile-technologies/augmented-reality Acesso em Fevereiro/2012.

UNITY 3D. Disponvel em: http://unity3d.com/ Acesso em Fevereiro/2012.

You might also like