visualizaÇÃo de dados em realidade aumentada©_pedrosa.pdfvindo a atingir grandes desenvolvimentos...

103
UNIVERSIDADE DE LISBOA Faculdade de Ciências Departamento de Informática VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA José Manuel da Graça Nunes Pedrosa PROJETO MESTRADO EM INFORMÁTICA 2013

Upload: others

Post on 11-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

UNIVERSIDADE DE LISBOA

Faculdade de Ciências

Departamento de Informática

VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA

José Manuel da Graça Nunes Pedrosa

PROJETO

MESTRADO EM INFORMÁTICA

2013

Page 2: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos
Page 3: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

UNIVERSIDADE DE LISBOA

Faculdade de Ciências

Departamento de Informática

VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA

José Manuel da Graça Nunes Pedrosa

PROJETO

Trabalho orientado pela Profª. Doutora Maria Beatriz Duarte Pereira do Carmo

e coorientado pela Profª. Doutora Ana Paula Boler Cláudio

MESTRADO EM INFORMÁTICA

2013

Page 4: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos
Page 5: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

Agradecimentos

Com a conclusão deste trabalho termina uma fase árdua da minha carreira

académica. Nunca teria sido possível chegar onde cheguei sem o apoio incondicional da

minha família, de toda a dedicação e sacrifício a que os meus pais se submeteram ao longo

de mais de duas décadas para assegurar que a minha jornada educativa pudesse ser

cumprida com o maior êxito possível.

Agradeço ainda a todos os meus amigos, aos mais próximos e mais afastados, que

me proporcionaram momentos de grande alegria e empatia e me deram forças para que

continuasse a seguir em frente mesmo mas fases mais difíceis da minha vida.

Obrigado a todos os meus colegas de trabalho, com quem me cruzei ao longo dos

anos, e com quem partilhei experiências magníficas que nos fizeram crescer e definir

enquanto pessoas, e nos ensinaram a encarar as adversidades com força e otimismo.

Juntos, partilhámos sucessos e fracassos e quebrámos barreiras que individualmente não

teríamos conseguido.

Obrigado também a todos os professores que me acompanharam e que me deram

apoio e incentivo extra quando mais precisei, pois com eles aprendi as minhas verdadeiras

forças e fraquezas, aprendi a nunca desistir e a conseguir sempre mais e melhor do que

antes.

Quero igualmente agradecer à Faculdade de Ciências da Universidade de Lisboa,

ao seu Departamento de Informática e ao LabMAg por terem proporcionado a

oportunidade e os meios para que pudesse completar a minha formação académica,

abrindo portas para uma futura carreira de sucesso, bem como à Fundação para a Ciência

e Tecnologia pelo apoio financeiro prestado. Por fim, um grande obrigado a todos os que

colaboraram na realização deste projeto, e a todos os envolvidos na realização de testes,

pois sem a vossa contribuição o mesmo não teria sido possível.

Page 6: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos
Page 7: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

Aos meus pais e avós.

Page 8: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos
Page 9: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

i

Resumo

A Realidade Aumentada (RA) consiste na combinação, em tempo real, de gráficos

gerados em computador com imagens do mundo real, sendo uma tecnologia que tem

vindo a atingir grandes desenvolvimentos na última década, em grande parte graças à

expansão da indústria de aparelhos móveis, tais como telemóveis, smartphones, mini-PCs

e mais recentemente tablets. Estes revelam grande potencial e utilidade para o

desenvolvimento de aplicações de RA devido ao bom compromisso que apresentam entre

a portabilidade e o bom desempenho e riqueza de recursos. Em particular, componentes

como a câmara de alta resolução, sensores como acelerómetros, bússola e giroscópios,

sistema de geolocalização e conectividade em rede, contribuem para proporcionar aos

programadores uma plataforma de hardware ideal ao desenvolvimento de aplicações RA.

É apresentado neste documento um projeto de expansão de uma biblioteca para o sistema

operativo Android, designado RUBI Glare, que permite visualizar dados científicos em

RA, e com base na qual foi desenvolvida uma aplicação para tablets que apresenta níveis

de radiação solar sobre os edifícios que compõem a FCUL. Os dados são projetados em

tempo real com diferentes modos de visualização, como superfícies ou glifos, e com a

possibilidade de serem exibidas até duas variáveis em simultâneo, bem como transições

animadas que facilitam comparações entre dados relacionados. São expostos com detalhe

os desafios e opções tomadas no desenvolvimento do projeto e as funcionalidades

implementadas, bem como os algoritmos de geração de gráficos desenvolvidos. São ainda

apresentados os resultados dos testes realizados com utilizadores para avaliação da

usabilidade da aplicação e utilidade da biblioteca, e para recolha de sugestões de

melhoramento.

Palavras-chave: realidade aumentada, visualização, dados científicos, computação

móvel

Page 10: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

ii

Page 11: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

iii

Abstract

Augmented Reality (AR) refers to the real-time combination of computer-generated

graphics and real world images, and is a technology which has reached a high level of

development within the last decade, mostly thanks to the expanding industry of mobile

devices, such as cell phones, smart phones, mini-PCs and, more recently, tablets. The

latter reveal a great potential for the development of augmented reality applications due

to their good compromise between portability and good performance and resource

plentifulness. Particularly, components such as a high resolution camera, sensors such as

accelerometer, compass and gyroscope, geo-location systems and network connectivity,

all together contribute to deliver programmers an ideal hardware platform for the

development of AR applications.

This document describes a project that comprised the extension of an Android library,

called RUBI Glare, which allows visualization of scientific data in AR and served as the

basis for the development of a tablet application that presents solar radiation levels over

the buildings encompassing FCUL. This data is projected in real time with different

visualization modes, such as surfaces or glyphs, and with the possibility of displaying up

to two variables simultaneously. It also includes animated transitions that facilitate the

comparison of related datasets. The document exposes in detail the challenges faced,

decisions made in the project’s development and functionalities implemented, as well as

the algorithms for generating of graphics. The results from user testing for measuring

usability, evaluating the library’s usefulness and gathering improvement suggestions are

also shown.

Keywords: augmented reality, visualization, scientific data, mobile computation

Page 12: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

iv

Page 13: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

v

Conteúdo

Lista de Figuras vii

Lista de Tabelas xi

Lista de Acrónimos e Siglas ........................................................................................ xiii

Capítulo 1 Introdução ....................................................................................... 1

1.1 Objetivos ..................................................................................................... 2

1.2 Planeamento e Contribuições ..................................................................... 3

1.3 Estrutura do Documento ............................................................................. 5

Capítulo 2 Trabalho Relacionado .................................................................... 7

2.1 Projetos de RA Relevantes ......................................................................... 7

2.1.1 Soluções de Alinhamento ..................................................................... 7

2.1.2 Visualização em Espaços Urbanos ....................................................... 8

2.1.3 Carregamento e Processamento dos Dados ........................................ 10

2.1.4 Realidade Aumentada em Android..................................................... 11

2.2 A Biblioteca RUBI ................................................................................... 12

Capítulo 3 A Biblioteca RUBI Glare ............................................................. 15

3.1 Análise e Desenho .................................................................................... 15

3.2 Material Utilizado ..................................................................................... 18

3.3 Implementação.......................................................................................... 20

3.3.1 Motor de Gráficos ............................................................................... 20

3.3.2 Escalas de Cor .................................................................................... 28

3.3.3 Carregamento de Dados...................................................................... 29

3.3.4 Georreferenciação e Orientação ......................................................... 30

Capítulo 4 Aplicação de Visualização de Radiação Solar ............................ 31

4.1 Modos de Visualização ............................................................................. 32

4.2 Opções Adicionais .................................................................................... 34

4.3 Interface com o Utilizador ........................................................................ 36

4.4 Transição Animada de Dados ................................................................... 38

Page 14: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

vi

4.5 Desempenho e Fiabilidade........................................................................ 39

Capítulo 5 Testes com Utilizadores ................................................................ 41

5.1 Metodologia .............................................................................................. 41

5.2 Perfil dos Utilizadores .............................................................................. 43

5.3 Análise dos Resultados ............................................................................. 44

5.3.1 Carregamento e alinhamento dos gráficos.......................................... 44

5.3.2 Visualização de uma variável ............................................................. 45

5.3.3 Visualização de duas variáveis ........................................................... 48

5.3.4 Utilização de transições animadas ...................................................... 49

5.3.5 Questões adicionais ............................................................................ 50

Capítulo 6 Conclusões e Trabalho Futuro .................................................... 53

Bibliografia 55

Anexo A: Diagramas UML .......................................................................................... 59

Anexo B: Mapa dos Pontos de Observação ................................................................ 61

Anexo C: Guião de Testes com Utilizadores .............................................................. 63

Anexo D: Capturas de Ecrã ......................................................................................... 75

Anexo E: Menus de Opções ......................................................................................... 76

Page 15: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

vii

Lista de Figuras

Figura 2.1 Demonstração do posicionamento de objetos KML, e imagem do

dispositivo mini-PC utilizado [Honkamaa07] .................................................................. 8

Figura 2.2 Exemplo da interface do SiteLens, suportando diferentes formatos de

glifos 3D, incluindo “nuvens” (c) de diferente densidade [White09]. ............................. 9

Figura 2.3 Captura de ecrã da visualização em RA de correntes de ar em torno do(s)

edifício(s) [Heuveline11]. ............................................................................................... 10

Figura 2.4 Imagens das aplicações de RA para Android: Mixare (à esquerda) e

AndAR (à direita). .......................................................................................................... 12

Figura 2.5 Esquema da arquitetura da biblioteca RUBI [SilvaP11b]. .................... 13

Figura 2.6 Captura de ecrã do RUBI versão 1.0. .................................................... 13

Figura 3.1 Arquitetura modular da biblioteca RUBI Glare (vista de alto nível). ... 17

Figura 3.2 Demonstração de Gráficos OpenGL translúcidos sobre a imagem da

câmara. ............................................................................................................................ 20

Figura 3.3 Sistema de coordenadas utilizado pelo OpenGL no seu espaço de desenho

3D [Chua]. ...................................................................................................................... 21

Figura 3.4 Representação da comunicação cliente-servidor estabelecida entre o

processador principal e o processador gráfico, realizada a cada chamada ao OpenGL,

incluindo na função de draw() [GLProg]. ...................................................................... 22

Figura 3.5 Esquema da lógica de desenho de uma superfície quadrangular........... 22

Figura 3.6 Exemplos de grelhas estruturadas geradas pelo algoritmo da classe

GLPlane, estas podem ser de geometria irregular (esquerda) ou regular (direita). ........ 24

Figura 3.7 Demonstração da geração de superfícies coloridas e deformadas com

diferentes níveis de densidade. ....................................................................................... 25

Figura 3.8 Cálculo do vetor normal unitário a um plano. ....................................... 26

Figura 3.9 Especificação do espaço de desenho dos gráficos através da função

gluPerspective(). ............................................................................................................. 27

Figura 3.10 Exemplo da descrição em código de uma escala de cores de arco-íris.

........................................................................................................................................ 28

Figura 4.1 Exemplo dos quatro modos de visualização, aplicados sobre a mesma

superfície do conjunto de dados. .................................................................................... 32

Page 16: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

viii

Figura 4.2 Comparação da visualização de glifos em diferentes dimensões. ......... 33

Figura 4.3 Escalas de cor utilizadas na aplicação. De cima para baixo: rainbow, blue-

white-red e temperature.................................................................................................. 34

Figura 4.4 Dados sobrepostos à imagem da câmara, com transparência a 50% e

oclusão ativada. .............................................................................................................. 34

Figura 4.5 Interface com o utilizador, com a vista de RA em execução. ............... 36

Figura 4.6 Imagem do navegador de ficheiros integrado (acima), e do menu de

definições (abaixo). ........................................................................................................ 37

Figura 4.7 Menu de controlo de animação. ............................................................. 38

Figura 5.1 Exemplo dos diferentes tipos de perguntas realizadas nos testes com

utilizadores. .................................................................................................................... 42

Figura 5.2 Secção do edifício C6 utilizada nos testes com utilizadores. ................ 42

Figura 5.3 Gráficos da distribuição dos utilizadores de teste por sexo, profissão e

níveis de experiência em visualização de dados, software de vis. de dados e utilização de

tablets, numa escala de 1 (pouca) a 5 (muita). ............................................................... 43

Figura 5.4 Distribuição das respostas relativamente à facilidade do alinhamento

manual, e à existência ou não de imperfeições na sobreposição dos gráficos sobre a

imagem de fundo. ........................................................................................................... 44

Figura 5.5 Distribuição das respostas quanto à clareza e compreensibilidade das

opções do menu relativas ao alinhamento. ..................................................................... 45

Figura 5.6 Distribuição das respostas quanto à clareza das opções do menu relativas

a glyphs, e quanto à facilidade em ajustar essas mesmas opções. .................................. 46

Figura 5.7 Distribuição das respostas quanto à satisfação com o seletor de escalas de

cor, e quanto à escala de cores preferida segundo a profissão. ...................................... 46

Figura 5.8 Distribuição das respostas relativamente à facilidade em alternar entre

modos de visualização e em ajustar as opções de oclusão e opacidade. ........................ 47

Figura 5.9 Escolha dos utilizadores quanto ao modo de visualização preferido, e

separação das respostas obtidas segundo a idade e o sexo dos utilizadores. .................. 48

Figura 5.10 Classificação atribuída pelos utilizadores à facilidade de utilização do

modo de Glyphs + Surfaces e à clareza das opções de configuração desse modo. ........ 48

Figura 5.11 Classificação atribuída pelos utilizadores à clareza das opções de

configuração do modo de superfícies deformadas, e quanto à utilidade de um modo destes

na visualização dos dados. .............................................................................................. 49

Page 17: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

ix

Figura 5.12 Classificação atribuída pelos utilizadores à facilidade de utilização da

animação, e à facilidade de ajuste das opções de animação. .......................................... 50

Figura 5.13 Classificação atribuída pelos utilizadores à visibilidade quer dos gráficos

de RA quer da interface de utilizador, e classificação global da aplicação. ................... 51

Page 18: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

x

Page 19: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

xi

Lista de Tabelas

Tabela 3.1: Características de hardware do dispositivo móvel utilizado. .............. 19

Tabela 4.1 Intervalos de tempo aproximados para carregamento dos dados e geração

e modificação dos elementos gráficos no ecrã, para cada modo de visualização. ......... 39

Tabela 4.2 Taxa de refrescamento da imagem para cada um dos modos de

visualização. ................................................................................................................... 39

Page 20: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

xii

Page 21: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

xiii

Lista de Acrónimos e Siglas API Application Programming Interface

CPU Central Processing Unit

CSV Comma-Separated Values

DDR3 Double Data Rate Type 3

GPS Global Positioning System

GPU Graphics Processing Unit

GUI Graphical User Interface

IDE Integrated Development Environment

POI Point Of Interest

RA Realidade Aumentada

SDRAM Synchronous Dynamic Random Access Memory

SoC System on a Chip

SSD Solid-State Drive

URL Uniform Resource Locator

Page 22: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

xiv

Page 23: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

1

Capítulo 1

Introdução

Realidade Aumentada é uma tecnologia que consiste na sobreposição de gráficos,

vídeo ou som gerados por computador à captação de imagens do mundo real, recorrendo

a técnicas de registo que permitem integrar ambos de uma forma fluida e natural [Kim12].

A origem do termo “realidade aumentada” remonta a 1990, mas desde meados dos anos

60 do século XX que têm vindo a ser desenhadas aplicações que recorrem a algumas das

suas características. No entanto, a quantidade de aplicações com utilidade prática foi

durante muito tempo de número reduzido, em parte devido às anteriores limitações

tecnológicas e por outro lado devido aos elevados requisitos de software e hardware que

estas requerem [Luo11]. Os dispositivos móveis em particular possuíam características

que condicionavam fortemente o desenvolvimento de aplicações de realidade aumentada

para os mesmos. Nomeadamente, a limitada capacidade das suas baterias, a tipicamente

fraca conectividade e rapidez das ligações de rede, e principalmente o fraco poder de

processamento que resulta da utilização de chips que são desenhados de modo a serem

pequenos e de baixo consumo energético.

Mais recentemente, com o aparecimento de smartphones e, mais tarde, de tablets,

abriram-se novas possibilidades ao desenvolvimento de aplicações de realidade

aumentada. Estes aparelhos móveis possuem um ecrã de dimensões mais generosas, que

permitem uma melhor experiência de visualização sem penalizar muito a portabilidade.

Adicionalmente, possuem todo o tipo de sensores que os outros dispositivos móveis já

possuíam, como acelerómetros, giroscópios, bússola, localização por GPS e

conectividade 3G, Wi-Fi ou Bluetooth e uma câmara fotográfica (ou mais) de alta

resolução. O poder destes dispositivos tem vindo a aumentar muito rapidamente, sendo

já algo comum encontrar chipsets com dois ou quatro núcleos e altas frequências de

processamento, que apesar de tudo são otimizados por forma a reduzir o consumo de

energia. Assim, o potencial para aplicações de RA em dispositivos móveis é cada vez

maior, existindo atualmente muitas plataformas para o seu desenvolvimento e

constatando-se o aumento progressivo de diversas aplicações de grande utilidade nas

áreas da ciência, saúde, engenharia ou entretenimento.

Page 24: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

2

Assim, é do interesse da comunidade científica desenvolver novas plataformas

capazes de proporcionar experiências de RA com recurso a estes dispositivos que tornem

possível a visualização de dados, permitindo que a análise de informação passe a poder

ser realizada diretamente no local a que dizem respeito. O trabalho apresentado nesta tese

parte deste interesse em convergir a visualização de dados científicos com os presentes

avanços da RA em dispositivos móveis, procurando desenvolver uma plataforma de

desenvolvimento de aplicações que concilie todas estas vertentes. Este trabalho foi

realizado no âmbito da disciplina de Projeto de Engenharia Informática do Mestrado em

Informática do Departamento de Informática da Faculdade de Ciências da Universidade

de Lisboa (FCUL). O trabalho foi desenvolvido no âmbito de um projeto de investigação

do LabMAg (Laboratório Modelação de Agentes), uma unidade de investigação

associada ao Departamento de Informática da FCUL, e em colaboração com o

Departamento de Engenharia Geográfica, Geofísica e Energia (DEGGE).

1.1 Objetivos

O objetivo deste trabalho foi o desenvolvimento de um sistema de visualização de

RA para dispositivos móveis que permita a visualização de dados científicos. No contexto

do presente trabalho, estes foram definidos como valores numéricos com uma referência

espacial ou temporal e sem geometria pré-definida para a sua representação, podendo ter

sido obtidos por simulação ou medição. Para a implementação desse sistema foi preciso

construir a biblioteca necessária à visualização de dados e, posteriormente, desenvolver

uma aplicação exemplificativa das capacidades dessa mesma biblioteca. Por fim, através

de uma implementação cuidada, procurou-se que a aplicação executasse sem grandes

falhas de desempenho e sem consumo excessivo de recursos da máquina (nomeadamente

a bateria).

Os dados para a aplicação foram fornecidos pelo DEGGE e consistem em

informação sobre os níveis anuais de radiação solar sobre o edifício C6 da FCUL. A

aplicação desenhada utiliza informação geográfica e imagens captadas pela câmara para

visualizar esses mesmos dados sobre as imagens do edifício.

Page 25: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

3

1.2 Planeamento e Contribuições

No decorrer do projeto foi elaborada uma nova biblioteca de visualização de dados

científicos em RA, designada RUBI Glare. Em particular, foi desenvolvido um motor

gráfico capaz de gerar diferentes modos de visualização, representando uma ou duas

variáveis escalares em simultâneo, e com execução em tempo real. A biblioteca foi

construída de forma modular podendo ser estendida com novas funcionalidades. A

capacidade de realizar transições animadas sobre os dados está também implementada,

podendo a interface de animação ser estendida no futuro por forma a suportar a análise

da evolução temporal desses dados. Como caso de estudo, foi desenvolvida uma aplicação

para visualização de dados sobre a radiação solar relativa ao edifício C6 da FCUL, que

permitiu também realizar uma validação experimental da biblioteca desenvolvida.

Existem algumas limitações como a falta de precisão dos mecanismos de

geolocalização e orientação para conseguir o alinhamento rigoroso dos gráficos com a

imagem real de fundo, o que levou à necessidade de implementar opções de ajuste

manual. Foram ainda realizados testes com utilizadores no sentido de recolher feedback

sobre a usabilidade da aplicação e a utilidade da biblioteca, do qual resultaram algumas

melhorias e aperfeiçoamentos ao atual sistema, bem como propostas de trabalho futuro.

Funcionalidades adicionais implementadas:

Carregamento de dados da memória do tablet.

Localização baseada em GPS.

Possibilidade de alinhar a visualização manualmente (para além do

alinhamento automático).

Possibilidade de configurar e gerar transições de dados animadas.

Possibilidade de “trancar” a captura de imagem, para visualizar os dados

sem ter de apontar constantemente para o edifício.

Relativo ao presente trabalho, foi ainda elaborado o artigo Realidade Aumentada

com Dados Científicos em Dispositivos Móveis, da autoria de José Nunes Pedrosa, Maria

Beatriz Carmo, Ana Paula Cláudio, Ana Paula Afonso, António Ferreira, Paula Redweik

e Cristina Catita. Este artigo foi aceite para publicação na conferência Interação 2013, a

decorrer de 7 a 8 de Novembro de 2013 na Universidade de Trás-os-Montes e Alto Douro

(UTAD), em Vila Real.

Page 26: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

4

De seguida apresenta-se o plano de trabalhos estipulado no início do projeto,

contrastando as dadas inicialmente previstas com as datas efetivas da realização de cada

tarefa.

Data prevista: 15 de Setembro - 15 de Novembro

Data efetiva: 17 de Setembro – 30 de Novembro

1. Análise do problema e levantamento de requisitos.

2. Familiarização com a plataforma de realidade aumentada já desenvolvida.

3. Pesquisa de trabalhos realizados quer no domínio da Visualização, quer no

domínio da Realidade Aumentada.

4. Pesquisa de software de domínio público para visualização de dados e testes de

integração ou de exportação de resultados em formatos compatíveis com software

de Realidade Aumentada.

5. Escrita do relatório preliminar.

Data prevista: 15 de Novembro - 15 de Abril

Data efetiva: 1 de Dezembro – 30 de Julho

6. Concretização de uma componente destinada à visualização de dados, na

plataforma de Realidade Aumentada RUBI Glare, que estende a biblioteca RUBI,

contemplando:

- A representação de uma ou mais variáveis em simultâneo.

- A evolução temporal do valor de uma ou mais variáveis.

- Uma interface adequada para a seleção de parâmetros de visualização.

Para este efeito é necessário ter em conta:

a) Implementação do renderer 3D.

b) Integração do renderer com o output dos sensores do RUBI.

c) Criação de interface de seleção de dados.

d) Criação de interface para ajuste da visualização (seleção de variável,

transições animadas, modos de visualização).

e) Implementação de alinhamento baseado em sensores.

Page 27: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

5

Data prevista: 15 de Abril - 15 de Maio

Data efetiva: 17 de Junho – 31 de Julho

7. Avaliação e refinamento da componente.

a) Testes individuais.

b) Testes com utilizadores.

c) Análise de resultados e feedback.

Data prevista: 15 de Maio - 15 de Junho

Data efetiva: 1 de Agosto – 27 de Setembro

8. Escrita do relatório final.

A principal discrepância em relação ao planeamento inicial encontra-se na duração

da fase de implementação da biblioteca RUBI Glare, que se revelou muito mais complexa

do que inicialmente previsto devido à necessidade de se realizar uma implementação na

sua maioria de raiz, e na fase de avaliação e refinamento da componente, em que surgiram

problemas pessoais e familiares que atrasaram a procura de utilizadores e a realização de

testes com os mesmos. Por fim, foi necessário proceder-se à escrita e submissão de um

artigo científico referente ao projeto para a conferência Interação 2013, e posteriormente

à submissão de uma versão revista, tarefas que não estava previstas no planeamento

inicial. Por todos estes fatores a escrita do relatório final necessitou de mais tempo e foi

deslocada para o mês de Setembro.

1.3 Estrutura do Documento

Este documento está organizado da seguinte forma:

Capítulo 2 – Trabalho Relacionado

Neste capítulo são exploradas as principais abordagens relacionadas com a aplicação

de RA. São também apresentados diversos trabalhos de investigação relacionados

com a integração de RA em dispositivos móveis, bem como sobre a visualização de

Page 28: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

6

dados científicos nesse contexto, que inspiraram o desenvolvimento do presente

trabalho. São também listadas diversas plataformas de RA para Android, resumindo

as funcionalidades de cada uma. No final é feita uma breve introdução à biblioteca

RUBI, que serviu de base ao desenvolvimento deste trabalho.

Capítulo 3 – Biblioteca RUBI Glare

Neste capítulo é apresentada a biblioteca RUBI Glare. É abordada a sua conceção,

os requisitos considerados no desenho da mesma e dificuldades encontradas, o

software e hardware utilizados para o seu desenvolvimento e toda a implementação

realizada, listando módulos construídos, as relações entre estes e detalhando a lógica

de funcionamento.

Capítulo 4 – Aplicação de Visualização de Radiação Solar

Neste capítulo é apresentada uma aplicação Android que recorre à biblioteca

desenvolvida para gerar a visualização em RA dos níveis de radiação solar sobre o

edifício C6 da FCUL. Descreve-se a interface com o utilizador, as funcionalidades

que a aplicação disponibiliza, as opções de configuração à disposição do utilizador

e faz-se uma análise ao desempenho da aplicação, com destaque para a rapidez de

execução e precisão das técnicas de alinhamento.

Capítulo 5 – Testes com Utilizadores

Neste capítulo são apresentados os testes realizados com utilizadores no sentido de

recolher feedback sobre a usabilidade da aplicação e capacidades da biblioteca

desenvolvidas. É explicada a metodologia aplicada, o perfil dos utilizadores e a

análise dos resultados obtidos

Capítulo 6 – Conclusões e Trabalho Futuro

Neste capítulo são apresentadas as conclusões finais relativas ao trabalho

desenvolvido sendo também discutidas algumas possibilidades de trabalho futuro.

Page 29: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

7

Capítulo 2

Trabalho Relacionado

Existem diversas questões a considerar quando se procura aplicar RA num

dispositivo móvel, as quais têm vindo a ser abordadas por diversos autores. Apresenta-se

neste capítulo um conjunto de trabalhos de investigação na área da RA que se focam na

correta aplicação desta tecnologia tendo em conta a integração com espaços urbanos, a

utilização de dispositivos móveis e as soluções para o carregamento, armazenamento,

processamento e visualização de dados. Posteriormente, são apresentadas diversas

plataformas de RA desenhadas para dispositivos móveis e compatíveis com o sistema

operativo Android [Android], explicando resumidamente as capacidades de cada uma.

Finalmente é feita uma breve introdução da biblioteca de RA designada RUBI, que serviu

de base ao presente trabalho.

2.1 Projetos de RA Relevantes

2.1.1 Soluções de Alinhamento

Um dos principais problemas da RA é como alinhar as representações virtuais com

a imagem real sem recorrer a marcas fiduciais e independentemente do objeto de estudo.

Em [Honkamaa07] procurou-se implementar um sistema capaz de ser executado em

tempo real em dispositivos móveis de tipo mini-PC. Recorrendo à leitura de valores do

acelerómetro, consegue-se gerar uma estimativa do movimento da câmara do utilizador à

medida que este se desloca em torno da cena.

Para o posicionamento e alinhamento do objeto tridimensional com a cena, foram

consideradas duas abordagens: a semiautomática e a automática. A abordagem

semiautomática estabelece que é o utilizador a indicar manualmente a posição do objeto

(em particular a distância do observador e a orientação), o que pode ser realizado, por

exemplo, através de interação táctil. Posteriormente a aplicação mantém a visualização

alinhada através de estimativas de deslocação da câmara. Na abordagem automática,

utiliza-se o GPS do aparelho móvel em conjunção com a informação geográfica recolhida

do Google Earth para realizar o cálculo da posição do objeto a visualizar. O carregamento

do mesmo é feito diretamente a partir de um ficheiro KML, permitindo obter de uma só

vez a informação geográfica e geométrica do modelo do edifício a apresentar (Figura 2.1).

Page 30: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

8

Estas duas abordagens de alinhamento foram adotadas no nosso trabalho, sendo o

alinhamento automático feito com recurso ao GPS e bússola, e o manual realizado através

do arrasto dos gráficos com recurso ao ecrã tátil.

2.1.2 Visualização em Espaços Urbanos

São também de particular relevância estudos em espaços urbanos, uma vez que os

dados do nosso trabalho são aplicados a edifícios. Em [Hakkarainen09], o trabalho acima

referido é expandido no sentido de tornar a aplicação mais modular e reutilizável,

abordando ainda a questão do carregamento e armazenamento de dados e da

implementação de transições animadas. Neste, o objetivo foi desenvolver uma aplicação

para auxiliar em trabalhos de construção civil e edificação no âmbito de um projeto

designado Augmented Reality for Building and Construction (AR4BC).

Procurou-se uma implementação que permitisse a visualização do local de

construção, bem como a sua evolução ao longo do tempo. Devido ao elevado nível de

rigor exigido, recorreu-se a técnicas de localização mais precisas como bússola eletrónica

e sensores de inércia. Foi desenhado um novo sistema de visualização, baseado numa

arquitetura cliente-servidor, em que ambos os componentes podem ser executados na

mesma máquina (se esta possuir capacidades de hardware para tal), ou separadamente

em duas máquinas. Neste caso a informação de localização e orientação é enviada do

cliente para o servidor, que por sua vez calcula a imagem resultante e a devolve ao cliente

para ser apresentada.

Figura 2.1 Demonstração do posicionamento de objetos KML,

e imagem do dispositivo mini-PC utilizado [Honkamaa07]

Page 31: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

9

Os algoritmos usados para o alinhamento são importados de uma biblioteca de RA

designada ALVAR (A Library for Virtual and Augmented Reality). Esta biblioteca foi

estendida na tentativa de otimizar o seu funcionamento em dispositivos móveis e

encontra-se documentada com maior detalhe em [Woodward11]. Um projeto semelhante

é apresentado em [Gimeno10], que procura adicionar uma componente de RA aos

tradicionais sistemas de CAD, sendo nesse caso utilizada uma câmara acoplada a uma

grua durante a fase de construção.

Um outro projeto, o SiteLens [White09], centra-se no desenvolvimento de uma

plataforma e conjunto de técnicas que permitem a chamada situated visualisation, isto é,

a visualização de dados relevantes contextualizados num espaço físico. O objetivo é

auxiliar nas tarefas de planeamento urbano, em que tipicamente são necessárias visitas ao

local para averiguar os níveis de tráfego automóvel, vegetação, ou densidade

populacional. O SiteLens dá ao utilizador a capacidade de analisar dados no local, tais

como a saúde dos moradores ou as condições do ar. O mecanismo suporta visualização

em dispositivos fixos, móveis ou mesmo head-mounted-displays. Recorre-se à conversão

de dados no formato KML, permitindo a interoperabilidade com o Google Earth e o

Google Maps. A informação que não tiver uma associação espacial é afixada a um canto

do ecrã, enquanto a restante informação é sobreposta dinamicamente à vista principal,

sendo o alinhamento baseado em marcas fiduciais. No SiteLens foram também

desenvolvidas experiências com ícones naturais (exemplo: nuvens de fumo negras para

representar a densidade de CO) (Figura 2.2). Existe ainda a opção de “congelar” (ou

“trancar”) a imagem, interrompendo a visualização de tempo real para uma melhor

consulta da informação, e fazer uma ampliação semântica sobre cada ponto de dados.

Estas duas soluções revelaram-se bastante úteis e intuitivas em testes com utilizadores. A

opção de “trancar” a imagem foi também adotada no presente trabalho.

Figura 2.2 Exemplo da interface do SiteLens, suportando diferentes formatos de glifos 3D,

incluindo “nuvens” (c) de diferente densidade [White09].

Page 32: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

10

2.1.3 Carregamento e Processamento dos Dados

Em [Heuveline11] é apresentado um projeto que procura resolver a questão de como

selecionar os dados pretendidos de um grande volume de dados, bem como gerar uma

visualização que realize uma filtragem inteligente da informação para a tornar mais

compreensível para o utilizador. Neste caso, é utilizado um modelo virtual tridimensional

de várias ruas e edifícios a analisar, cuja informação geométrica é tida em conta ao fazer

a modelação dos dados (nesse caso, correntes de ar). O processamento dos dados e

geração de imagens são realizados em servidores remotos de alto desempenho, recorrendo

em parte à biblioteca VTK e ao software ParaView. As imagens resultantes são enviadas

para o cliente, prontas a ver no local, incluindo já a oclusão causada pelos edifícios, como

mostra a Figura 2.3.

Para minimizar os custos de processamento, bem como a latência e consumo da rede

na transmissão de dados, a visualização no dispositivo móvel aplica uma técnica

detalhada em [Helfrich-Schkarbanenko12], que recorre à criação de imagens com

diferentes perspetivas baseadas na posição e orientação da câmara. Assim, para cada

posição do utilizador, é recebido um pacote de imagens pré-calculadas que são

apresentadas conforme o deslocamento da câmara e o ângulo de visão. Dados os objetivos

específicos do presente trabalho, incluindo o facto de no estado atual de ser apenas

considerada a visualização dos dados sobre um edifício, optou-se por uma abordagem

mais simples, em que todo o processamento é feito no cliente.

Figura 2.3 Captura de ecrã da visualização em RA de correntes de ar em

torno do(s) edifício(s) [Heuveline11].

Page 33: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

11

2.1.4 Realidade Aumentada em Android

Foi realizada uma pesquisa de plataformas de RA para Android cujas funcionalidades

fossem ao encontro das necessidades do presente trabalho, nomeadamente o alinhamento

baseado em localização e orientação (sem marcas fiduciais) com suporte para gráficos

tridimensionais e o fácil acesso e modificação do código-fonte.

Wikitude

O Wikitude [Wikitude] é uma das aplicações de RA mais conhecidas, disponível para

diferentes sistemas operativos móveis, incluindo o Android. Disponibiliza

adicionalmente uma API [WDK] que permite o desenvolvimento de aplicações de RA

por parte de terceiros. As aplicações resultantes apresentam ao utilizador os pontos de

interesse (POI) que estão identificados dentro de um determinado raio de alcance. A

aplicação permite o acesso a vários serviços para determinar os seus POI, e a informação

destes é transmitida por meio de ligação à Internet. É também possível adicionar POI

facultados pelo utilizador, bem como associá-los a um endereço URL que é acedido no

decorrer da aplicação.

Metaio

O Metaio [Metaio] é um conjunto de software, plataformas e serviços que permitem

o desenvolvimento de aplicações ou sistemas de RA. Em particular, possui um kit de

desenvolvimento designado Metaio Creator [MC], que permite a criação de aplicações de

RA através de uma interface de utilizador drag-and-drop para a construção de cenários,

a possibilidade de importar imagens ou modelos como conteúdo 3D para uma aplicação,

o alojamento desta em servidores dedicados Metaio e a exportação para diversos sistemas

operativos de desktop ou dispositivos móveis. No entanto, é necessário um registo no

Website como programador e a licença de utilização gratuita é limitada com uma marca

de água sobre a aplicação.

Layar

Outra aplicação bastante conhecida é o Layar [Layar], lançada em 2009 e também

compatível com o sistema Android. À semelhança do Wikitude esta apresenta ao

utilizador POI previamente georreferenciados sobre imagens captadas pelo dispositivo.

A informação que permite a determinação dos POI é também facultada através de uma

ligação à Internet com recurso às mais diversas fontes. A aplicação apresenta a

possibilidade de os utilizadores visualizarem os POI através de uma vista de “olho de

pássaro” e de um mapa 2D, facilitando desta forma o reconhecimento dos POI no espaço

envolvente. O Layar também disponibiliza uma API [LDK] que permite integrar POI na

aplicação, sendo que o conjunto de POI fornecido é intitulado de layer (camada). Esta é

facilmente integrada na aplicação de modo a que outros utilizadores também possam

usufruir dela. Esta possibilidade permite à aplicação apresentar uma quantidade elevada

de POI facultados por terceiros.

Page 34: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

12

As três plataformas acima expostas suportam georreferenciação e reconhecimento

de imagem (ou marcas fiduciais), mas são de código fechado e focadas em pontos de

interesse, em que o suporte de gráficos 3D resume-se à importação de modelos estáticos

a representar sobre esses pontos [WDK, MC, LDK]. Dados os objetivos do trabalho, o

recurso a estas plataformas não foi considerada viável.

Outras alternativas de código aberto analisadas foram o Mixare, que se baseia

exclusivamente na georreferenciação de pontos de interesse [Mixare], e o AndAR, que

recorre ao OpenGL ES [OGLES] para carregamento de modelos 3D (Figura 2.4), mas

que possui apenas alinhamento baseado em marcas fiduciais [AndAR]. Assim, optou-se

por recorrer à biblioteca RUBI [[SilvaP11b], [Montez12]], que tem vindo a ser

desenvolvida por anteriores alunos do Departamento de Informática da FCUL, realizando

as extensões necessárias para a visualização de dados científicos cumprindo as

funcionalidades acima referidas.

2.2 A Biblioteca RUBI

A RUBI é uma biblioteca de visualização de pontos de interesse em RA para o

sistema operativo Android [SilvaP11a]. Esta permite a recolha e pré-visualização de

imagens por meio da câmara de vídeo e suporta geolocalização, cálculo da orientação e

inclinação para conseguir o alinhamento do conteúdo (Figura 2.5). Realiza também o

carregamento de dados remotos em formato JSON.

Figura 2.4 Imagens das aplicações de RA para Android: Mixare (à esquerda) e AndAR (à direita).

Page 35: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

13

O RUBI foi desenvolvido para o Android 2.2 Froyo. O seu objetivo é ser usado para

o desenvolvimento de aplicações móveis de RA para visualização de pontos de interesse.

A biblioteca segue o padrão modular de aplicações de realidade aumentada exposto em

[Luo11] (Figura 2.6). Esta contém um módulo de recolha de dados que carrega a

informação que se pretende apresentar ao utilizador. A informação pode ser local ao

dispositivo ou ser carregada de um servidor remoto. Existe ainda um módulo de aquisição

de contexto que determina o posicionamento geográfico através do sensor de GPS, a

orientação através do sensor de bússola digital e inclinação por meio do acelerómetro.

Por fim, inclui um componente de visualização que é responsável por gerar a

representação dos POI e o seu alinhamento baseado na componente de aquisição de

dados. Este incorpora ainda a interface gráfica apresentada ao utilizador.

Figura 2.6 Captura de ecrã do RUBI versão 1.0.

Figura 2.5 Esquema da arquitetura da biblioteca RUBI

[SilvaP11b].

Page 36: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

14

Esta biblioteca foi posteriormente estendida [Montez12], passando a permitir o

ajuste da visibilidade de símbolos em função da imagem de fundo. Esta versão estendida

da biblioteca RUBI serviu de base à biblioteca RUBI Glare (GL Augmented REality), que

se apresenta no capítulo seguinte.

Page 37: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

15

Capítulo 3

A Biblioteca RUBI Glare

Neste capítulo é apresentada a biblioteca RUBI Glare, resultante da extensão da

biblioteca RUBI no sentido de suportar a visualização científica e a representação de

gráficos tridimensionais. É abordada a sua conceção, os requisitos considerados no

desenho da mesma e dificuldades encontradas, e o software e hardware utilizados para o

seu desenvolvimento. É ainda feita a listagem dos módulos desenvolvidos, as relações

entre estes e expostos os detalhes da sua implementação, bem como a lógica de

funcionamento.

3.1 Análise e Desenho

A integração de capacidades de RA em dispositivos móveis costuma seguir

determinados padrões [Luo11]. A informação obtida através dos sensores de orientação

(bússola, acelerómetro, giroscópio) e de localização (GPS) do aparelho permite que à

captação de imagem seja associada uma posição com 6 graus de liberdade (translação e

rotação segundo um sistema de coordenadas em 3 eixos). Opcionalmente estes sensores

podem servir de suporte para uma interação gestual com a aplicação. Existe também um

módulo de input/output que lê dados da memória do aparelho ou de um servidor remoto

e que os passa para um módulo de rendering, que os representará no ecrã. Os gráficos são

assim combinados com o vídeo em tempo real.

Os requisitos essenciais que estes sistemas procuram atingir são interatividade,

fidelidade, escalabilidade e robustez [Luo11]. A representação deve correr em tempo

real, e idealmente sem grandes restrições quanto à quantidade e qualidade dos dados

representados, bem como ter uma forte tolerância a distúrbios na leitura de dados que

possam ser causados por ambientes externos. Também é necessário ter em conta, para

aparelhos móveis, certas dificuldades como a diversidade de arquiteturas-alvo,

capacidades do hardware limitadas em comparação com desktops e laptops, e requisitos

de conservação de energia.

A biblioteca RUBI que serviu de base a este trabalho já possuía capacidades de

combinação de imagens da câmara com símbolos virtuais, leitura de dados GPS e de

acelerómetro [SilvaP11a, Montez12]. No entanto, ainda não possuía mecanismos para

Page 38: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

16

desenhar gráficos 3D e os apresentar sobre a imagem, nem módulos para visualização de

dados científicos. Um dos desafios deste trabalho consistiu em desenhar e concretizar

esses módulos, tendo já em mente o desenvolvimento de uma aplicação para visualizar

dados de radiação solar sobre edifícios. A primeira fase do projeto consistiu na

identificação das funcionalidades e componentes necessários para a visualização de dados

num formato tridimensional.

Para o desenvolvimento do motor de gráficos considerou-se inicialmente recorrer ao

VTK (Visualization Toolkit), por este estar otimizado para a leitura e processamento de

dados científicos e por já termos experiência anterior de utilização. O VTK é baseado em

OpenGL e implementado na linguagem C++, mas não é compatível com o Android, pois

este suporta apenas um subconjunto das funcionalidades correspondentes à especificação

OpenGL ES.

Esta incompatibilidade do VTK, e de outras bibliotecas semelhantes do nosso

conhecimento, com o Android levou à necessidade de desenvolvermos de raiz um módulo

capaz de gerar visualizações tridimensionais de dados. O resultado deste trabalho foi uma

extensão da biblioteca RUBI que recorre à implementação OpenGL ES existente no

sistema Android, designada RUBI Glare (GL Augmented REality). A Figura 3.1 mostra

uma representação de alto nível da estrutura de módulos da biblioteca, identificando os

principais componentes e as relações entre estes. Diagramas de classes mais detalhados

podem ser consultados no Anexo A.

Page 39: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

17

Figura 3.1 Arquitetura modular da biblioteca RUBI Glare (vista de alto nível).

A biblioteca RUBI Glare é uma extensão da biblioteca original RUBI, que aproveita

as funcionalidades de leitura de posição e orientação que esta já disponibilizava, bem com

a captura de imagens da câmara do dispositivo. Foi implementado um novo conjunto de

módulos responsáveis pela leitura, processamento e visualização de gráficos 3D que são

acrescentados à vista de RA previamente desenvolvida. Os principais componentes do

sistema são:

Gestor de Câmara – Responsável pela abertura e leitura do stream de dados da

câmara fotográfica do dispositivo, ativando e desativando o modo de pré-visualização da

câmara que será utilizado como fundo da vista de RA, e ajustando a proporção da imagem

de acordo com as dimensões e resolução do ecrã e os formatos de imagem suportados

pelo hardware.

Gestor de Posição / Orientação – Responsável por calcular a posição do dispositivo

através de da informação obtida pelo sensor de GPS: latitude, longitude e altitude. Calcula

também a orientação (horizontal) e a inclinação (vertical) deste através da leitura da

bússola digital e do acelerómetro, respetivamente.

Agregador de Entradas – O módulo que combina o input das imagens da câmara

com a informação de posição e orientação dos sensores do dispositivo e desenha uma

Page 40: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

18

interface gráfica que consiste na preview da câmara combinada com widgets

representativos da informação da bússola e do GPS.

Gestor de Dados – Módulo responsável pelo processamento dos dados a serem

visualizados. Encarrega-se de realizar a abertura do ficheiro de dados, a leitura dos

mesmos e o seu carregamento e arrumação em memória, para que possam ser acedidos

para filtragem e visualização pela restante biblioteca.

Motor de Gráficos 3D – Módulo que gere a criação de geometria tridimensional,

baseado em OpenGL ES. Responsável pela construção da geometria e coloração (com

base nos dados processados pelo Gestor de dados), posicionamento e ajuste do viewport

e perspetiva do ambiente virtual.

Módulo de Configuração – Módulo que gere todas as configurações e parâmetros

que possam ser ajustados pelo utilizador, tais como a informação a visualizar, o modo de

visualização selecionado, etc. Na aplicação final está diretamente associado a uma GUI

de seleção de parâmetros.

Vista de RA – O front end da aplicação, a interface de utilizador final que resulta da

combinação da GUI gerada pelo agregador de entradas da biblioteca RUBI com o output

do motor de gráficos 3D do RUBI Glare.

Interface de configuração – A interface de utilizador na qual este pode aceder às

opções de configuração que pretender ajustar, sendo as alterações refletidas na vista de

RA. Esta interface encontra-se associada a um módulo de configuração que armazena as

preferências do utilizador, sendo estas lidas pelo motor de gráficos.

3.2 Material Utilizado

Atendendo ao tipo de aplicação a desenvolver, recorreu-se a um tablet, que possui

um ecrã com maiores dimensões que um smartphone e permite uma melhor experiência

de visualização, imagens maiores e mais detalhadas, e a capacidade de apresentar mais

informação em simultâneo, tornando-se uma escolha lógica para a implementação do

projeto. Foi realizada uma análise de vários modelos existentes no mercado e O tablet

utilizado no decorrer deste projeto foi um Asus TF300T, sobre o qual a aplicação foi

desenvolvida e testada. O código final foi elaborado de forma a suportar qualquer outro

dispositivo com características semelhantes, mas o TF300T foi o único modelo no qual

se testou a aplicação final. As características detalhadas do tablet são apresentadas na

tabela 3.1:

Page 41: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

19

Fabricante Asus

Modelo Transformer Pad TF300T

Chipset NVIDIA Tegra 3 (1.3 GHz quad-core, arquitetura ARM)

Memória 1 GB DDR3 SDRAM

Armazenamento

interno

32 GB SSD

Sistema operativo Android 4.2.1 Jelly Bean

Ecrã LCD muti-toque, 10.1 polegadas, 1280*800 px de

resolução, 16 milhões de cores.

Câmaras Posterior (8 MP) e frontal.

Sensores Acelerómetro, giroscópio, bússola digital, GPS.

Conectividade USB 2.0, Wi-Fi 802.11 b/g/n, Bluetooth

Tabela 3.1: Características de hardware do dispositivo móvel utilizado.

O chipset Tegra 3 permite que o tablet possua um elevado desempenho quer em

processamento de gráficos 3D de alta qualidade, quer na paralelização das tarefas em

execução [Tegra]. SoC (system on a chip) baseado na arquitetura ARM possui 4 núcleos

Cortex A9 para tarefas de alto desempenho, e um 5º núcleo otimizado para poupança

energética, que permite conservar energia e aumentar a autonomia do aparelho quando

este não requer processamento intensivo. Algumas das vantagens desta arquitetura são o

menor consumo de energia e maior desempenho por Watt, carregamento mais rápido de

páginas Web, melhor execução de aplicações mais exigentes, maior desempenho no

multitasking, e uma melhor experiência e qualidade em videojogos. Estes benefícios

encontram-se mais detalhados em [Tegra].

O software utilizado foi o habitual para o desenvolvimento de aplicações para

Android.:

Android SDK.

Eclipse IDE com o plugin Android Developer Tools (ADT).

Java Development Kit (JDK 7).

Page 42: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

20

3.3 Implementação

Nesta secção detalha-se o trabalho desenvolvido na construção dos diferentes

módulos da biblioteca RUBI Glare, é explicado o seu funcionamento interno e as

funcionalidades que estes módulos proporcionam.

3.3.1 Motor de Gráficos

Após concluir que não era possível incorporar o VTK na aplicação, testou-se a

implementação de uma demo de OpenGL ES sem recorrer a essa plataforma. Foi possível

executar a renderização de gráficos sobre a pré-visualização da câmara, mantendo a

visibilidade das duas camadas (Figura 3.2). A simples aplicação de demonstração

desenvolvida não só comprovou a capacidade de implementar realidade aumentada com

o dispositivo, como mostra a capacidade de ajustar diversos níveis de transparência e de

executar sem abrandamentos ou falhas.

Foi necessário desenvolver de raiz o código necessário para gerar gráficos

característicos da visualização científica. A construção do motor de gráficos implicou

assim a especificação das primitivas geométricas que serão utilizadas para a construção

de visualizações mais complexas. Cada primitiva geométrica utilizada pela biblioteca está

contida no seu ficheiro Java, o qual inclui toda a informação de que o OpenGL necessita

para gerar o respetivo objeto tridimensional e o apresentar no ecrã do dispositivo.

De seguida são apresentadas as principais classes que constituem o do motor de

gráficos desenvolvido, explicando a estrutura, propósito e os princípios de funcionamento

de cada uma.

Figura 3.2 Demonstração de Gráficos OpenGL translúcidos sobre a imagem da

câmara.

Page 43: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

21

GLMesh

A classe GLMesh especifica os atributos que constituem uma figura geométrica.

Estes incluem uma lista de vértices especificada por um FloatBuffer, uma lista de índices

especificada por um ShortBuffer, e quantidade total de índices. O buffer de vértices é

preenchido com as coordenadas X, Y e Z de cada vértice que constitui a forma

geométrica. O buffer de índices serve para identificar, para cada posição especificada no

buffer anterior, a ordem em que esta é desenhada. Existe ainda uma terceira lista que

corresponde a cores no formato RGBA, também esta na forma de um FloatBuffer. Esta

especifica, para cada vértice listado no buffer de vértices, qual a cor do objeto nesse

vértice. Este buffer de cores só é utilizado quando o objeto que queremos mostrar no ecrã

tem mais que uma cor, caso contrário é substituído por um único vetor de floats

correspondente a uma única cor RGB. Finalmente, são especificadas variáveis que

correspondem a valores de rotação e translação nos 3 eixos do espaço de desenho. Este é

baseado num sistema de coordenadas cartesiano de “mão direita” (Figura 3.3), em que a

rotação em torno dos eixos é medida no sentido direto (sentido contrário ao dos ponteiros

do relógio).

A função mais importante da classe GLMesh é a função draw(). Nela está contido o

código responsável por realizar as diferentes chamadas ao OpenGL para carregar a

informação geométrica e de cor para a memória do GPU, para estre proceder à

renderização (geração da imagem final) no ecrã do dispositivo. É estabelecida uma

ligação entre o Cliente OpenGL ES presente na CPU e o servidor OpenGL ES presente

no GPU (Figura 3.4). Estabelecida a conexão, são estabelecidos apontadores para a

transmissão dos buffers do objeto a desenhar. Uma vez terminado o envio, a conexão

entre cliente e servidor é terminada.

Figura 3.3 Sistema de coordenadas

utilizado pelo OpenGL no seu espaço

de desenho 3D [Chua].

Page 44: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

22

GLCube

A classe GLCube estende a GLMesh, especificando o vetor de vértices e de índices

para gerar um objeto tridimensional em forma de cubo. Ao criar um objeto GLCube o

programador tem apenas que especificar a largura da aresta segundo o eixo do X (width),

do Y (height) ou do Z (depth). Isto permite ao programador ajustar não só a dimensão

como também a forma do objeto como bem entender, podendo gerar por exemplo efeitos

de distorção. É possível também aplicar qualquer cor (ou transparência) que se deseje ao

objeto, invocando os métodos setColor() ou setColors() herdados da classe GLMesh.

Uma vez que o OpenGL ES, por predefinição, apenas conhece triângulos como

primitiva geométrica (uma das grandes limitações face ao OpenGL tradicional), a

especificação de um cubo implica a especificação de 6 quadrados, e cada uma desses

Figura 3.4 Representação da comunicação cliente-servidor estabelecida entre o

processador principal e o processador gráfico, realizada a cada chamada ao OpenGL,

incluindo na função de draw() [GLProg].

Figura 3.5 Esquema da lógica de desenho de uma superfície

quadrangular

Page 45: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

23

quadrados resulta de agrupar 2 triângulos. Logo, o motor gráfico interpreta o cubo como

uma sequência de triângulos a ser desenhada a partir de uma lista de vértices numa

determinada ordem, como mostra a Figura 3.5. Note-se que, uma vez que apenas uma das

faces de cada triângulo é visível, e a outra fica virada para o interior do cubo, é realizado

o chamado culling de faces, em que se especifica que as faces viradas para dento, por não

serem visíveis, não devem ser desenhadas. Caso contrário, estaríamos simplesmente a

desperdiçar recursos gráficos.

GLCubeGlyphMap

A classe GLCubeGlyphMap serve para gerar a representação de um conjunto de

objetos GLCube dispostos ao longo do espaço de desenho, conforme um conjunto de

dados especificado pela classe RubiDataset (ver secção 3.3.3). Para gerar um

GLCubeGlyphMap o programador deve passar como argumento um objeto RubiDataset

(correspondente aos dados carregados para visualização), o índice correspondente ao

subgrupo de pontos que serão representados, o índice correspondente à variável a associar

aos cubos, o índice correspondente à escala de cores a utilizar (ver secção 3.3.2) e o nível

de opacidade e a dimensão pretendida para o conjunto de Cubos.

Para a construção de uma GLCubeGlyphMap, a biblioteca começa por extrair a

lista de pontos pretendida do volume de dados contido no objeto RubiDataset, filtrados

de acordo com os parâmetros acima explicados. Para cada ponto desta lista, é extraído o

valor da variável e as coordenadas do ponto. Com esta informação é então construído um

objeto GLCube em que a posição corresponde às coordenadas, a dimensão corresponde

à que é passada como argumento, e a cor é calculada com base no valor da variável e na

escala de cores especificada, conforme explicado na secção 3.3.2. Por fim, o GLCube

resultante é armazenado numa lista de cubos para posteriormente ser desenhado. Note-se

que este processo de geração da lista de cubos a desenhar só é realizado uma vez,

correspondente à fase inicial de carregamento dos gráficos.

Quando o programador realiza uma chamada ao método draw(), é estabelecida a

conexão entre CPU e GPU previamente explicada, sendo que neste caso os objetos

GLCube que constituem o conjunto de cubos são carregados para a memória gráfica e

desenhados um a um. Para cada cubo são realizadas 3 chamadas ao GPU: A primeira

estabelece a cor, a segunda a posição cartesiana e a terceira a geometria do cubo. Uma

vez enviada a totalidade dos cubos, a ligação é terminada.

Page 46: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

24

GLPlane

A classe GLPlane estende a GLMesh e especifica a criação de uma malha

poligonal. Os parâmetros base para construir um objeto GLPlane são a largura e altura

(em unidades OpenGL), bem como o número de segmentos em cada eixo. Assim, quer a

dimensão quer o nível de subdivisões poligonais podem ser ajustados individualmente.

Estas malhas poligonais devem ser de topologia regular, ou seja, devem ser grelhas

estruturadas (o número de pontos na horizontal e na vertical não varia ao longo da grelha).

A forma mais rápida de verificar esta regularidade é comparando a quantidade de pontos

na primeira linha e primeira coluna com o total da grelha. A topologia é regular se a

seguinte regra for verdadeira:

TPontos = NPontosX x NPontosY

Em que TPontos é a quantidade total de pontos na grelha, NPontosX é a

quantidade de pontos na primeira coluna e NPontosY é a quantidade de pontos na

primeira linha. Esta verificação é bastante rápida computacionalmente e é realizada antes

de ser executado o algoritmo de construção da geometria. Apesar disso, note-se que a

geometria da grelha não precisa de ser também regular (Figura 3.6), o que permite

desenhar superfícies com deformação.

Um exemplo do que é possível realizar com objetos GLPlane é apresentado na

Figura 3.7. Aqui, foram gerados planos transparentes (opacidade a 50%), e com cores

arbitrárias em cada vértice da grelha. A superfície (a) é plana e tem dimensão 10x10. A

(b) é arbitrariamente irregular ao longo do eixo Z, e tem dimensão 10x10. As superfícies

(c) e (d) possuem dimensão 100x100. É possível comprovar não só a possibilidade de

gerar malhas com uma grande quantidade de vértices (e visualizar dados com elevada

resolução) como se pode observar a interpolação de cores que o OpenGL realiza entre

cada vértice com base na técnica de shading de Gouraud, ou vertex shading.

Figura 3.6 Exemplos de grelhas estruturadas geradas pelo algoritmo da classe

GLPlane, estas podem ser de geometria irregular (esquerda) ou regular (direita).

Page 47: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

25

Se pretendermos construir uma superfície colorida (ou deformada) a partir de um

conjunto de dados, necessitamos de passar como argumento um objeto RubiDataset, o

índice da variável que queremos usar para a coloração e, facultativamente, o índice da

variável que queremos utilizar para a deformação. Finalmente, devemos especificar a

escala de cores a utilizar, o nível de deformação e o nível de opacidade da superfície.

O algoritmo filtra a partir do objeto RubiDataset os pontos a utilizar para gerar a

superfície e verifica a quantidade de pontos e as coordenadas destes para determinar se a

topologia resultante é regular. Caso contrário, a geração da superfície é cancelada. Se a

topologia for regular, são então gerados o buffer de vértices (a partir das coordenadas dos

pontos, o buffer de índices (a partir da informação da topologia da grelha anteriormente

calculada) e o buffer de cores (a partir do valor da variável em cada ponto).

Figura 3.7 Demonstração da geração de superfícies coloridas e deformadas com diferentes níveis

de densidade.

(a) (b)

(c) (d)

Page 48: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

26

No caso das superfícies com deformação são necessários cálculos adicionais. É

preciso saber, para cada plano, qual a orientação da sua reta normal, pois esta será a

orientação da deformação. É também necessário saber a posição relativa ao observador,

pois esta permite saber qual o sentido da deformação. A deformação deve ser direcionada,

portanto, na perpendicular à orientação do plano, e para o lado que está voltado ao

observador. Para determinar uma reta normal ao plano, será necessário determinar

primeiro a posição deste. Isto é realizado selecionando 3 pontos aleatórios do plano que

não sejam colineares. Desses 3 pontos não colineares ficam definidos 2 vetores que

descrevem a posição e orientação do plano. Com estes 2 vetores AB e AC, é possível

calcular um vetor normal AN através do seu produto vetorial AN = AB x AC (Figura

3.8). Do vetor normal AN obtém-se o vetor normal unitário ou normalizado (isto é, de

norma 1).

Finalmente, para assegurar que a deformação é realizada no sentido do

observador, é necessário saber a posição deste no espaço de coordenadas OpenGL. A sua

posição é passada como argumento a cada ciclo de refrescamento da imagem, permitindo

recorrer ao cálculo do produto interno entre o vetor normal ao plano AN calculado acima

e o vetor AO, em que O é a posição do observador. Se o produto for negativo, a normal

NA é multiplicada por -1 para que o seu sentido seja invertido, e o objeto GLPlane é

redesenhado no sentido correto. O resultado é uma superfície com deformação no sentido

do utilizador, que é automaticamente reorientada conforme este mude de posição.

Uma consequência de utilizar a normal ao plano como o sentido da deformação é

que, se o plano não for perfeitamente perpendicular ao chão, a deformação também não

será. Além disso, se uma parede for muito irregular, a normal obtida pode ter uma

orientação estranha, dificultando a análise dos dados. Para evitar estes problemas, existe

a opção de forçar as normais a serem paralelas ao chão, ou não. Se a opção for ativada, a

normal utilizada manterá a orientação X e Z calculadas pelo algoritmo, mas fixará a

orientação Y (eixo vertical) a zero.

Figura 3.8 Cálculo do vetor normal

unitário a um plano.

Page 49: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

27

RubiGLSurfaceView

Esta classe é efetivamente o coração do motor gráfico do RUBI Glare. Uma

extensão da classe GLSurfaceView da API do Android, é responsável por criar e mandar

desenhar todos os gráficos OpenGL através da sua subclasse RubiGLRenderer. É ainda

responsável por definir o viewport e configurar todos os detalhes da visualização 3D com

base nas preferências do utilizador. Por fim, é este módulo que faz o refrescamento da

visualização gráfica de acordo com o input recebido dos sensores do dispositivo,

atualizando a posição do observador, a orientação e inclinação em tempo real.

Para definir o viewport e o espaço de desenho dos gráficos, recorre-se à função

utilitária gluPerspective() (Figura 3.9). Esta função define o ângulo de visão da “câmara”

virtual. Este é o ângulo em graus entre dois planos: o plano que passa pela posição da

câmara e o topo do ecrã, e o plano que passa pela posição da câmara e fundo do ecrã. É

apenas passado como argumento o ângulo vertical da imagem, sendo que o ângulo

horizontal é calculado internamente a partir do vertical e da razão de aspeto (aspect ratio).

No caso particular das aplicações de RA, o principal objetivo ao chamar esta função é

ajustar a largura e altura do viewport de OpenGL para coincidir com o aspect ratio nativo

da câmara do dispositivo. Infelizmente, não foi possível descobrir um algoritmo que

conseguisse realizar este ajuste automaticamente, pelo que foram experimentados à mão

vários valores até conseguir a melhor aproximação possível.

Para ajustar a orientação e inclinação da câmara virtual, recorreu-se a um truque

de programação no qual a câmara é fixa na posição (0,0,0) do espaço de visualização e o

resto dos objetos sofrem uma rotação e translação inversas às que são recolhidas pela

Figura 3.9 Especificação do espaço de desenho dos gráficos através da função

gluPerspective().

Page 50: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

28

bússola e acelerómetro do dispositivo. Este truque permite orientar corretamente os

gráficos sem a necessidade de calcular o eixo de projeção da câmara.

3.3.2 Escalas de Cor

A biblioteca RUBI Glare suporta a utilização de diferentes escalas de cor. Estas

consistem num vetor de cores RGB cuja dimensão e conteúdo são definidas pelo

programador. Deve-se apenas ter em atenção que, embora vetor mais extenso permita a

criação de escalas de cor mais detalhadas (e com mais cores), pode levar a uma pequena

quebra no desempenho pois torna a associação de uma cor a um valor de variável mais

demorado. A classe ColorScales armazena toda a informação das escalas de cor, podendo

ser alargada com mais conteúdo ao gosto do programador.

Cada escala de cor é identificada na biblioteca por um número inteiro. A escala

propriamente dita consiste num vetor bidimensional, em que cada entrada corresponde a

um vetor de 3 floats (Figura 3.10), correspondente aos níveis de RGB para cada cor da

escala. Estes níveis de RGB podem variar entre 0.0f (preto) e 1.0f (branco), de acordo

com os padrões da API do OpenGL.

O procedimento para aplicar uma escala de cor consiste na chamada da função

estática RubiDataset.colorize() para cada ponto de dados que se pretende colorir. Esta

recebe como argumento o identificador da variável, o valor da variável e o identificador

Figura 3.10 Exemplo da descrição em código de uma escala de

cores de arco-íris.

Page 51: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

29

da escala de cores desejada. Com essa informação, consulta quais os valores mínimo e

máximo existentes para essa variável e dispõe a escala de cores entre os dois, calculando

os intervalos de valores a corresponder para cada cor. Finalmente, é escolhida e aplicada

a cor correspondente ao valor de variável recebido.

3.3.3 Carregamento de Dados

Os dados científicos a utilizar pela biblioteca são carregados de um ficheiro externo,

armazenado em disco no próprio dispositivo. O ficheiro de dados segue o formato CSV,

em que cada linha corresponde a um ponto de dados e a informação sobre esse ponto é

separada por “;”. Para exemplificar, o ficheiro de dados utilizado para a aplicação de

visualização de radiação solar (ver Capítulo 4) segue a seguinte estrutura:

Linha 1 (cabeçalho):

"FID_";"ID";"X";"Y";"Zdem";"svf";"cota_ponto";"a_Rdir";"a_Rdif";"a_Rglobal";"

a_nhsombra";"a_nhtotal";"Edifico";"cod_fach";"lat";"long_";"Altitude"

Linha 2:

;178.000000;-89132.989000;-

100755.304000;97.830000;0.306200;82.830000;1358.334800;185932.825000;187291.1

59800;4027.000000;4030.000000;"C6";155.000000;38.756198;-9.158519;136.229995

Linha 3:

;178.000000;-89132.989000;-

100755.304000;97.830000;0.306200;83.830000;3958.407900;186193.789300;190152.1

97000;4022.000000;4030.000000;"C6";155.000000;38.756198;-9.158519;137.229995

A primeira linha do ficheiro de dados corresponde ao cabeçalho, e identifica os

atributos listados nas seguintes linhas. Na estrutura acima, são definidos identificadores

do edifício, da parede e do ponto; coordenadas do ponto (cartesianas e em graus), e os

valores de diferentes variáveis nesse ponto.

A classe CSVDataLoader é responsável por abrir um ficheiro de dados e carregar o

seu conteúdo para memória ao iniciar uma aplicação. É passado como argumento o path

para o ficheiro de dados. Ao invocar a função getData() é aberto um input stream que lê

o ficheiro linha a linha, separando cada valor e armazenando o conteúdo numa ArrayList

de valores float (uma vez que é o formato numérico suportado pelo OpenGL). Por fim,

os dados são armazenados numa classe RubiDataset, que inclui a informação das

variáveis existentes e um HashMap que armazena a informação de todos os pontos de

Page 52: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

30

dados agrupados de acordo com um determinado índice (Ex: número da parede). Desta

forma, a biblioteca necessita apenas de extrair os dados pretendidos do objeto

RubiDataset cada vez que pretender gerar uma visualização de dados, como um objeto

GLCubeGlyphMap ou GLPlane.

3.3.4 Georreferenciação e Orientação

Todos os módulos de leitura da georreferenciação e orientação são importados da

biblioteca RUBI original. A classe RubiGLSurfaceView contém uma referência à classe

CamadaRealidadeAumentada da biblioteca RUBI, que utiliza para obter a latitude,

longitude e orientação recolhidas pelos sensores do dispositivo. Neste momento, uma das

limitações do RUBI Glare é a necessidade de trabalhar em coordenadas cartesianas para

poder posicionar corretamente os gráficos 3D em relação à perspetiva do utilizador.

Embora os dados existentes incluam as coordenadas cartesianas dos pontos, no sistema

geodésico ETRS89, o sensor de GPS (e API do Android) permitem apenas a leitura de

coordenadas em graus, que a biblioteca não consegue converter no formato desejado. Para

colmatar esta limitação, desenvolveu-se uma solução temporária em que são

estabelecidos um conjunto de ponto de interesse, para os quais o DEGGE forneceu as

coordenadas ETRS89 (ver o Anexo B). A biblioteca, neste momento, opera apenas nestes

pontos predefinidos. Pretende-se que, no futuro, seja adicionado um algoritmo de

conversão de coordenadas na própria biblioteca capaz de correr em tempo real,

permitindo o seu funcionamento sem quaisquer limitações a nível da posição do

observador.

Surgiu também a necessidade de fazer pequenos ajustes à classe PosOri da biblioteca

RUBI, no sentido de ajustar os dados recolhidos pelo acelerómetro. Descobriu-se que

nem todos os dispositivos possuem os seus sensores calibrados ou posicionados da mesma

forma, o que obriga a que, em muitos casos, seja necessário ajustar os valores devolvidos

conforme a marca e o modelo do dispositivo. No caso concreto do Asus TF300T, o

acelerómetro não devolvia valores de inclinação corretos, existindo um desfasamento de

cerca de 20º entre a inclinação real do dispositivo e a inclinação medida pelo sensor, o

que levou a pequenos ajustes ao código original.

Page 53: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

31

Capítulo 4

Aplicação de Visualização de Radiação Solar

Para a validação experimental das potencialidades da biblioteca RUBI Glare foi

desenhada e implementada uma aplicação que a utiliza para a visualização de níveis de

radiação solar sobre edifícios. A aplicação segue os padrões de desenho do sistema

operativo Android [ADP] na implementação da sua interface com o utilizador, tendo sido

otimizada para melhor usabilidade num tablet, com orientação de ecrã horizontal.

A aplicação possui determinados requisitos a nível de hardware e de sistema

operativo para poder ser instalada e executada. Estes são:

Sistema Operativo: Android 3.0 Honeycomb (ou superior)

Permissões de Execução:

android.permission.ACCESS_FINE_LOCATION para poder utilizar

os recursos de GPS.

android.permission.CAMERA para aceder à câmara fotográfica do

dispositivo.

android.permission.WRITE_EXTERNAL_STORAGE para permitir a

leitura (e escrita) de conteúdo da memória do dispositivo ou de um cartão

SD (a permissão de escrita é necessária para a execução do navegador de

ficheiros).

Recursos de hardware:

OpenGL ES 1.1: A aplicação recorre à especificação 1.1 do OpenGL ES.

Câmara fotográfica: A aplicação requer obrigatoriamente pelo menos

uma câmara fotográfica para funcionar.

Focagem automática (opcional): Se a câmara fotográfica o suportar, a

aplicação recorre à focagem automática da imagem, na tentativa de obter

imagens mais nítidas.

GPS: A aplicação requer que o dispositivo possua um sensor de GPS.

Acelerómetro: A aplicação requer que o dispositivo possua um

acelerómetro.

Bússola digital: A aplicação requer que o dispositivo possua uma bússola

digital.

Page 54: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

32

Orientação horizontal: A aplicação só é executada em orientação de ecrã

horizontal (deitado), logo o dispositivo deve suportar essa orientação.

Todos os requisitos acima listados constam do ficheiro AndroidManifest.xml,

fazendo com que o ficheiro APK executável só possa ser instalado quando o dispositivo

alvo os cumpra na totalidade.

De seguida serão introduzidos os modos de visualização disponíveis ao utilizador,

quais os parâmetros que podem ser ajustados e quais as opções e funcionalidades

adicionais a que o utilizador tem acesso. É também descrita a organização e o conteúdo

da interface com o utilizador e explicado o funcionamento do modo de animação. Por fim

é apresentada uma análise ao desempenho da aplicação, nomeadamente na rapidez de

execução e precisão das técnicas de alinhamento.

4.1 Modos de Visualização

A aplicação possui quatro modos de visualização para variáveis escalares, como

ilustra a Figura 4.1. Os dois modos principais, superfícies coloridas e glifos coloridos,

permitem a visualização de dados de uma só variável, enquanto os outros dois modos,

superfícies com glifos e superfícies coloridas com deformação, permitem visualizar em

simultâneo duas variáveis ou a mesma variável com duas representações distintas.

Superfícies coloridas – Os dados são projetados segundo malhas poligonais criadas

a partir de grelhas com topologia regular. Uma cor é atribuída a cada valor e existe

interpolação de cor entre pontos, resultando numa superfície compacta com um efeito

contínuo de gradação de cores. É possível escolher a variável e a escala de cores

associada à visualização (Figura 4.1a).

(a) (b) (c) (d)

Figura 4.1 Exemplo dos quatro modos de visualização, aplicados sobre a mesma superfície do

conjunto de dados.

Page 55: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

33

Glifos coloridos – Sobre cada posição do espaço de dados é desenhado um glifo, em

forma de cubo, posicionado e colorido individualmente (Figura 4.1b). O volume

destes cubos pode ser aumentado até se tornarem adjacentes, gerando uma superfície

de mosaicos coloridos, ou diminuído de forma a distinguir cubos e posições

individuais, com espaçamento entre si. Na sua dimensão mínima permite visualizar

os dados como nuvens de pontos (Figura 4.2). Tal como no caso anterior, é possível

escolher a variável e a escala de cores associada à visualização

Superfícies com glifos – As visualizações de superfícies e glifos podem ser

combinadas de forma a mostrar duas variáveis em simultâneo (Figura 4.1c). A

variável e escala de cores para cada tipo de visualização podem ser selecionadas

independentemente, sendo os glifos sobrepostos às superfícies coloridas.

Superfícies coloridas com deformação – A visualização de superfícies coloridas

pode ser complementada com a aplicação de uma deformação, de acordo com uma

variável de dados que é especificada pelo utilizador (Figura 4.1d). A deformação

consiste em deslocar os pontos da malha poligonal segundo um vetor normal à

superfície e que aponta para o semi-espaço onde se encontra o utilizador. É possível

também ajustar a intensidade da deformação, sendo que esta já sofre um ajuste

automático conforme a variável selecionada. Devido à dificuldade na perceção do

relevo das superfícies, este modo requer ainda melhoramentos para ser eficaz no

contexto da realidade aumentada.

Figura 4.2 Comparação da visualização de glifos em diferentes dimensões.

Page 56: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

34

4.2 Opções Adicionais

Para cada modo de visualização é possível selecionar a escala de cor a associar à

variável em estudo. Para cada escala de cor, existe também uma escala inversa,

considerando que alguns dos valores relativos aos dados são referentes à quantidade de

sombra em vez da radiação solar. As escalas de cores existentes são baseadas em

[SilvaS11], e escolhidas pela sua utilidade na análise de radiação solar. Estas são

apresentadas na Figura 4.3.

Adicionalmente, é possível ajustar os níveis de opacidade dos gráficos. No

contexto da RA, esta opção é muito importante, uma vez que deve existir um balanço

entre a visibilidade dos dados e a visibilidade do edifício sobre o qual estes são projetados.

Dependendo das condições do ambiente exterior, e das características da visualização, o

nível de opacidade adequado pode variar, e assim, acrescentou-se a opção para o ajustar.

Figura 4.3 Escalas de cor utilizadas na aplicação. De cima para baixo: rainbow,

blue-white-red e temperature.

Figura 4.4 Dados sobrepostos à imagem da câmara, com transparência a 50% e oclusão ativada.

Page 57: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

35

Outra funcionalidade oferecida é a opção de desligar ou ligar a oclusão que

controla se um gráfico mais à frente oculta ou não outro mais atrás. O ajuste da opacidade

e da oclusão são essenciais para a usabilidade da aplicação de RA, permitindo ao

utilizador enquadrar mais facilmente a visualização de dados sobre o contexto do espaço

físico em que este se encontra (Figura 4.4).

Relativamente ao alinhamento dos gráficos com a imagem da câmara, existem

também opções disponíveis para o utilizador, cuja principal utilidade é colmatar as

limitações do hardware. Assim, foi adicionado um modo de ajuste manual dos gráficos,

semelhante ao mecanismo utilizado em [Honkamaa07], que permite retificar a posição

destes arrastando-os com o dedo sobre o ecrã táctil. Esta funcionalidade é essencial em

situações em que a bússola digital não funciona corretamente devido a interferência

eletromagnética ou pelo facto de não estar calibrada. A sensibilidade e o sentido do

arrastamento podem também ser ajustados.

Uma vez que a medição de altitude através do GPS é demasiado imprecisa, a

aplicação utiliza uma altitude fixa que pode ser ajustada pelo utilizador.

Também foi desenvolvida uma função de “trancar” a vista de RA, inspirada na

solução apresentada em [White09]. Através de um botão é possível “congelar” totalmente

a imagem apresentada pelo aparelho (quer a vista da câmara, quer os gráficos 3D) para

mais confortavelmente consultar a informação sem a necessidade de apontar o aparelho

constantemente na direção pretendida.

Page 58: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

36

4.3 Interface com o Utilizador

Respeitando as normas Android, na parte superior do ecrã encontra-se a barra de

ações (Figura 4.5a) que dá acesso aos diferentes menus e funções da aplicação que estão

disponíveis: abrir ficheiro de dados, trancar/destrancar vista, abrir controlos da transição

animada de dados e aceder às opções de configuração. À esquerda desta encontra-se a

barra de estado do GPS (Figura 4.5b) com informação se o GPS está ou não em

funcionamento, a latitude, longitude, altitude, e margem de erro obtidas pelo mesmo. O

indicador da bússola (Figura 4.5c) encontra-se centrado na parte inferior da interface. A

legenda (Figura 4.5d), ou legendas, são desenhadas à direita da bússola e o menu de

controlo da transição animada de dados (quando esta é invocada) situa-se à esquerda da

bússola (Figura 4.5e). O posicionamento destes itens foi pensado para minimizar a

sobreposição dos mesmos com a visualização do edifício. Para melhorar a visibilidade

em situações de grande claridade, optou-se pelo tema Holo Light do Android, com texto

(b) (a)

(e) (c) (d)

Figura 4.5 Interface com o utilizador, com a vista de RA em execução.

Page 59: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

37

escuro sobre fundo claro. Mais capturas de ecrã da aplicação podem ser vistas no Anexo

D.

Adicionalmente à interface de RA existe um navegador de ficheiros para selecionar

o ficheiro a abrir, baseado numa biblioteca de código aberto android-filechooser

[BisonH], e um menu de opções de rápido acesso desenhado para tablets, onde todos os

parâmetros de configuração da visualização podem ser ajustados, assim como as

configurações adicionais da aplicação (Figura 4.6). Mais imagens do menu de opções

encontram-se no Anexo E.

Figura 4.6 Imagem do navegador de ficheiros integrado (acima), e do menu

de definições (abaixo).

Page 60: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

38

4.4 Transição Animada de Dados

Um dos objetivos a cumprir foi a possibilidade de gerar transições animadas que

facilitam comparações entre dados relacionados. Para tal implementou-se um modo de

animação que pode ser iniciado e parado pelo utilizador, e que altera em tempo real os

parâmetros de visualização a serem apresentados (funcionando mesmo que a vista esteja

“trancada”). O utilizador pode ainda selecionar a sequência de variáveis a apresentar, e a

velocidade da transição. Esta funcionalidade poderá ser estendida para animações da

mesma variável ao longo do tempo, mas uma vez que os dados fornecidos não possuem

informação temporal associada, foi feita a demonstração de conceito com a transição entre

diferentes variáveis.

Ao invocar o menu de controlo da animação (através da barra de ações) este passa a

ocupar o canto inferior esquerdo do ecrã. O botão do lado esquerdo permite iniciar e parar

a animação (Figura 4.7a). A barra de progresso situa-se na parte inferior e funciona de

forma semelhante à de um leitor de vídeo, podendo ser arrastada com o dedo para saltar

para qualquer momento da animação (Figura 4.7b). Do lado direito encontra-se a legenda

que indica a instância da animação em curso (por exemplo, a variável ou instante de

tempo atuais) (Figura 4.7c). A disposição destes itens impede que qualquer informação

fique obstruída pelas mãos ou dedos do utilizador enquanto este interage com a aplicação.

(a)

(b)

(c)

Figura 4.7 Menu de controlo de animação.

Page 61: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

39

4.5 Desempenho e Fiabilidade

Para medir o desempenho da aplicação ao nível da velocidade de processamento,

foram realizadas medições em partes específicas do código, de forma a determinar o

intervalo de tempo entre o início e o fim de determinadas tarefas. Isto não só permite

comparar a eficiência de diferentes implementações, como serve para medir de uma forma

objetiva o desempenho da aplicação e identificar pontos que provocam abrandamentos.

As tabelas 4.1 e 4.2 mostram uma lista de tarefas executadas pela aplicação e a duração

em milissegundos, bem como a taxa de refrescamento do ecrã para cada modo de

visualização. Todos os valores apresentados correspondem ao mínimo e máximo obtido

após 10 medições. O desempenho nunca é exatamente constante e depende de outros

processos do sistema que possam estar a correr em background.

Carregamento do ficheiro de dados (9485 linhas) 13674 e 20738 ms.

Construção da geometria (glyphs) Entre 996 e 1329 ms.

Transição de dados em animação (glyphs) Entre 50 e 189 ms.

Construção da geometria (surfaces) Entre 166 e 199 ms.

Transição de dados em animação (surfaces) Entre 47 e 176 ms.

Construção da geometria (glyphs + surfaces) Entre 1442 e 1582 ms.

Construção da geometria (warped surfaces) Entre 187 e 216 ms.

Tabela 4.1 Intervalos de tempo aproximados para carregamento dos dados e geração e modificação

dos elementos gráficos no ecrã, para cada modo de visualização.

Modo de visualização Taxa de refrescamento

Glyphs 2 fps.

Surfaces Entre 16 e 30 fps.

Glyphs + Surfaces 2 fps.

Warped Surfaces Entre 16 e 30 fps.

Tabela 4.2 Taxa de refrescamento da imagem para cada um dos modos de visualização.

Page 62: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

40

É possível constatar que a visualização de superfícies (surfaces) executa com muito

mais rapidez que a visualização de glifos (glyphs), provando que os algoritmos para o

rendering desses glifos necessitam ainda de várias revisões para os tornar mais eficientes

e correrem sem abrandamentos. De igual modo, o carregamento inicial do ficheiro de

dados poderá eventualmente ser otimizado no sentido de tornar a sua leitura mais rápida.

Outro problema é o da precisão dos sensores. Como já foi referido, a altitude de

observação é fixa e pode ser ajustada à mão pelo utilizador, já que o GPS não proporciona

uma medição da altitude suficientemente precisa para as necessidades da aplicação (a

margem de erro pode ser de dezenas de metros). De igual modo, se o utilizador se

aproximar demasiado das paredes do edifício a cobertura de satélites torna-se menor e

por isso a triangulação torna-se menos precisa. O utilizador pode consultar a margem de

erro (em metros) do sensor na barra de estado do GPS na parte superior do ecrã. Durante

o desenvolvimento e teste da aplicação, recorreu-se à aplicação Fake GPS [FakeGPS]

para marcar manualmente a posição do utilizador em casos de maior imprecisão.

Por fim, a bússola digital revelou-se extremamente imprecisa, tornando em muitas

situações totalmente inutilizável. Não foi possível averiguar com clareza se esta

deficiência se deveu a um defeito em particular do Asus TF300T, ou se é generalizado,

embora se saiba que a bússola digital é muito sensível a interferências de campos

eletromagnéticos gerados por outros dispositivos móveis, computadores, ou mesmo cabos

elétricos no chão ou paredes. A imprecisão da bússola levou à necessidade de acrescentar

mecanismos de alinhamento manual, tendo sido implementada a funcionalidade de

arrasto dos gráficos com o dedo para compensar esta imprecisão.

Page 63: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

41

Capítulo 5

Testes com Utilizadores

5.1 Metodologia

Na fase final do projeto procedeu-se à realização de testes com utilizadores, seguindo

um modelo de entrevista baseado em inquirição contextual. Os dois grandes objetivos

desta fase de testes foram a avaliação da qualidade da aplicação (e em particular da sua

usabilidade e utilidade) e ainda a recolha de sugestões para melhorias futuras e adição de

novas funcionalidades. Foi elaborado um guião de entrevista (Anexo C) que estabelece

uma sequência de tarefas para o utilizador executar enquanto vão sendo registadas as suas

opiniões e a avaliação de cada tarefa. As tarefas realizadas podem ser agrupadas nos

seguintes blocos:

a) Alinhamento dos gráficos.

b) Visualização de glifos.

c) Visualização de superfícies.

d) Visualização de 2 variáveis com glifos + superfícies.

e) Visualização de superfícies com deformação.

f) Realização de transições animadas.

g) Opiniões globais.

Quanto ao formato das perguntas, estas podem ser categorizadas em 3 tipos (Figura

5.1):

Perguntas de escolha múltipla: utilizadas para quantificar a preferência dos

utilizadores em relação a certas funcionalidades ou alternativas que existem na

aplicação.

Pergunta de classificação: pede-se que utilizador avalie um determinado aspeto

da aplicação numa escala de 1 (mínimo) a 5 (máximo), tal como a facilidade de

realização de uma tarefa ou a clareza da interface.

Perguntas de resposta aberta: utilizadas para recolher opiniões adicionais do

utilizador, sem restringir a sua liberdade de resposta, ou para pedir ao utilizador

que justifique ou clarifique uma resposta dada anteriormente.

Page 64: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

42

A duração média de cada teste oscilou entre os 30 minutos e 1 hora. Os testes foram

todos realizados durante o dia e sempre no mesmo local, o Ponto A (localização GPS:

38º45'19.458"N, 9º09'28.188"O) do conjunto de pontos de observação pré-calculados, de

onde se podem observar as paredes do pátio interior do edifício (ver o Anexo B). A

posição escolhida encontra-se livre de qualquer exposição solar direta ao longo do dia,

sendo mais confortável ao utilizador (Figura 5.2). Por esse motivo foi também possível

realizar testes a qualquer hora do dia sem qualquer impacto significativo nas condições

de visibilidade.

Figura 5.1 Exemplo dos diferentes tipos de perguntas realizadas nos testes

com utilizadores.

Figura 5.2 Secção do edifício C6 utilizada nos testes com utilizadores.

Page 65: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

43

5.2 Perfil dos Utilizadores

Os testes foram realizados sobre um universo de 22 utilizadores, todos docentes,

funcionários ou alunos da FCUL, com idades compreendidas entre os 20 e os 54 anos.

Embora os testes tenham sido anónimos, uma parte significativa dos utilizadores de

corresponde a stakeholders do projeto, incluindo professores associados ao mesmo (mas

não envolvidos diretamente na implementação) e professores de outros departamentos

que são representativos de potencial público-alvo da aplicação. Esta seleção foi

complementada com a inclusão de diversos alunos de informática da FCUL, permitindo

assim maior quantidade de feedback útil para o melhoramento do projeto.

13; 59%

9; 41%

Género dos Utilizadores

Masculino Feminino

14; 64%

7; 32%

1; 4%

Profissão dos Utilizadores

Estudante Professor Outro

1

3

7

9

21

5 5

8

34 4

6

8

00

2

4

6

8

10

1 2 3 4 5

Experiência dos Utilizadores

Con. Vis. Dados Con. Soft. Dados Exp. Tablets

Figura 5.3 Gráficos da distribuição dos utilizadores de teste por sexo, profissão e níveis de experiência

em visualização de dados, software de vis. de dados e utilização de tablets, numa escala de 1 (pouca) a 5

(muita).

Page 66: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

44

No início de cada teste, foi pedido aos utilizadores que se autoavaliassem (numa

escala de 1 a 5) em três categorias distintas: conhecimentos teóricos sobre visualização

de dados, conhecimentos práticos com software de visualização de dados e experiência

na utilização de tablets. A Figura 5.3 mostra a distribuição no sexo e profissão dos

utilizadores, bem como das perguntas de autoavaliação.

5.3 Análise dos Resultados

São de seguida apresentados os resultados da inquirição contextual realizada, com

uma exposição das respostas obtidas e das principais críticas e sugestões. Todos os

resultados que se seguem são apresentados no formato (Nº da pergunta; Média; Desvio

padrão). No Anexo E encontram-se imagens dos menus de opções acedidos no decorrer

dos testes.

5.3.1 Carregamento e alinhamento dos gráficos

A maioria dos utilizadores mostrou satisfação relativamente à facilidade do

alinhamento manual, usando o modo de arrasto (2a; 3,65; 0,79). Ainda assim, uma

quantidade significativa de utilizadores apontou a necessidade de melhorar a fluidez do

arrasto, queixando-se de uma certa lentidão na resposta da aplicação que torna o processo

mais difícil e frustrante do que deveria ser. A maioria dos utilizadores também identificou

imperfeições na sobreposição dos gráficos com a imagem de fundo, em particular nas

paredes mais afastadas do observador (Figura 5.4).

45%

55%

2b) Nota imperfeições na sobreposição dos gráficos com a

imagem de fundo?

Não Sim

10

6

14

1

0

2

4

6

8

10

12

14

16

2a) Facilidade do alinhamento manual

1 (difícil) 2 3 4 5 (fácil)

Figura 5.4 Distribuição das respostas relativamente à facilidade do alinhamento manual, e à existência

ou não de imperfeições na sobreposição dos gráficos sobre a imagem de fundo.

Page 67: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

45

A totalidade dos utilizadores (100%) compreendeu a diferença entre o modo de

alinhamento manual e o alinhamento automático (baseado em bússola e acelerómetro).

Quanto às opções de alinhamento (tracking) existentes no menu de opções, A maioria dos

utilizadores considerou a linguagem suficientemente clara para compreender o seu

funcionamento (3a; 4,14; 0,69) (Figura 5.5) mas lançou algumas críticas, tais como o

ícone representativo menu de opções não ser muito compreensível. Outra sugestão foi

que deveriam existir mais ícones no próprio menu de opções e que as opções de

alinhamento deveriam ser melhor agrupadas (ou por opções de alinhamento manual /

automático ou por opções de posicionamento / orientação).

Quanto à funcionalidade de trancar a vista de RA, a totalidade dos utilizadores

compreendeu o seu funcionamento e objetivo, tendo considerado a função extremamente

útil e bem-vinda. Com exceção de dois utilizadores que não compreenderam o ícone

utilizado, os restantes consideraram a o símbolo de um cadeado bastante claro e intuitivo.

5.3.2 Visualização de uma variável

No modo de visualização de glifos, a maioria dos utilizadores considerou o ajuste

dos parâmetros (dimensão dos cubos, escala de cores e variável) fácil ou muito fácil (5a;

4,59; 0,49) (6a; 4,64; 0,58). Apesar de satisfeitos com as opções disponíveis para a

dimensão dos glifos, alguns utilizadores sugeriram que a dimensão deveria ser ajustável

através de um slider, e esse ajuste deveria ser observável em tempo real na vista de RA.

A linguagem das opções de glifos foi considerada clara e compreensível para a maioria

0 0

4

11

7

0

2

4

6

8

10

12

3a) Clareza das opções de alinhamento

1 (confusas) 2 3 4 5 (claras)

Figura 5.5 Distribuição das respostas quanto à clareza e compreensibilidade das opções do

menu relativas ao alinhamento.

Page 68: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

46

dos utilizadores (5b; 4,32, 0,63), com um utilizador a classificar a mesma de “demasiado

técnica” (Figura 5.6).

Em relação à seleção e utilização de escalas de cores, a maioria dos utilizadores

indicou satisfação com atual interface de para a sua seleção (6c; 4,05; 0,77), mas uma

quantidade significativa queixou-se que deveria existir uma pré-visualização da escala de

cores ao invés de um nome identificativo das mesmas. Quando à escala de cores preferida

pelos utilizadores, constatou-se que a maioria dos professores escolheram a escala de

arco-íris (rainbow), em parte por estarem mais habituados a ela e em parte por esta ser

mais segmentada e permitir uma análise mais minuciosa (Figura 5.7). Por outro lado, os

estudantes escolheram maioritariamente a escala de temperatura, por acharem mais

intuitiva face à consulta de radiação solar.

0 01

6

15

0

5

10

15

20

6a) Facilidade do ajuste das opções de Glyphs

1 (fácil) 2 3 4 5 (difícil)

0 0

2

11

9

0

5

10

15

5b) Clareza das opções deGlyphs

1 (confusas) 2 3 4 5 (claras)

01

3

12

6

0

5

10

15

6c) Satisfação com o selector de escalas de cor

1 (pouca) 2 3 4 5 (muita)

9

11

2

4

10

0

5

0

2

0

2

4

6

8

10

12

Rainbow Temperature Sem preferência

6d) Escala de cores preferida

Total Estudantes Professores

Figura 5.6 Distribuição das respostas quanto à clareza das opções do menu relativas a glyphs, e

quanto à facilidade em ajustar essas mesmas opções.

Figura 5.7 Distribuição das respostas quanto à satisfação com o seletor de escalas de cor, e quanto à

escala de cores preferida segundo a profissão.

Page 69: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

47

Alguns utilizadores sugeriram a adição de uma escala em tons de cinzento para a

visualização da quantidade de horas de sombra, mas a maioria achou que as escalas de

cor atualmente presentes na aplicação são suficientes.

Foi de seguida solicitado aos utilizadores que alternassem para o modo de

visualização de superfícies coloridas (surfaces), e avaliassem a facilidade em alternar de

modo. A totalidade dos utilizadores considerou fácil ou muito fácil (7a; 4,59; 0,49)

(Figura 5.8). Alguns utilizadores sugeriram que deveria existir uma explicação textual de

cada modo de visualização mo menu de opções, que as opções para cada modo deveria

aparecer e desaparecer dinamicamente conforme o modo selecionado, ou que o seletor de

modo deveria estar presente na própria vista de RA. Foi de seguida solicitado aos

utilizadores que experimentassem o ajuste da oclusão e da opacidade dos gráficos. Os

utilizadores acharam útil e importante a existência destas duas opções, e a maioria

classificou o seu ajuste como muito fácil (8a; 4,77; 0,41).

Finalmente, os utilizadores foram inquiridos quanto ao modo de visualização de uma

variável que preferiam. No total, a maioria dos utilizadores preferiu o modo de superfícies

coloridas (surfaces). No entanto, ao separar os utilizadores por profissão, notou-se que os

professores preferiram maioritariamente a visualização de glifos (glyphs), enquanto os

estudantes favoreceram mais o modo de surfaces (Figura 5.9) Analisando as respostas

segundo o sexo, nota-se que as mulheres tiveram uma preferência mais acentuada pelo

modo de surfaces que os homens, que foram mais divididos na sua escolha. Quem

preferiu o modo surfaces alegou esta se integra melhor com as imagens do edifício, parece

mais natural e realista, e a variação de valores ao longo da superfície é mais percetível

devido à gradação de cor. Quem preferiu a visualização de glyphs defendeu que faz mais

0 0 0

9

13

0

5

10

15

7a) Facilidade em alterar o modo de visualização.

1 (difícil) 2 3 4 5 (fácil)

0 0 0

5

17

0

5

10

15

20

8a) Facilidade em ajustar oclusão e opacidade

1 (difícil) 2 3 4 5 (fácil)

Figura 5.8 Distribuição das respostas relativamente à facilidade em alternar entre modos de

visualização e em ajustar as opções de oclusão e opacidade.

Page 70: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

48

sentido com dados correspondentes a nuvens de pontos, que a informação é mais

minuciosa e que representa os valores de forma discreta, fugindo a erros e aproximações.

5.3.3 Visualização de duas variáveis

No modo de visualização de Glifos + Superfícies foi realizada uma avaliação da

facilidade de utilização do mesmo, incluindo o acesso e ajuste das opções de configuração

(seleção de variáveis e escalas de cores individuais e dimensão dos glifos). Todos os

utilizadores consideraram a utilização fácil ou muito fácil (9a; 4,64; 0,48). De igual modo,

as opções de configuração foram classificadas de claras ou bastante claras (9b; 4,73;

0,45), como mostra a Figura 5.10.

10

2

7

5 56

4

2

4

2

6

1

54

2

0

2

4

6

8

10

12

Total Professores Estudantes Masculino Feminino

8d) Modo de visualização preferido

Surfaces Glyphs Sem preferência

0 0 0

8

14

0

5

10

15

9a) Facilidade de utilização do modo Glifos + Superfícies

1 (difícil) 2 3 4 5 (fácil)

0 0 0

6

16

0

5

10

15

20

9b) Clareza das opções de Glifos + Superfícies

1 (confusas) 2 3 4 5 (claras)

Figura 5.9 Escolha dos utilizadores quanto ao modo de visualização preferido, e separação das

respostas obtidas segundo a idade e o sexo dos utilizadores.

Figura 5.10 Classificação atribuída pelos utilizadores à facilidade de utilização do modo de Glyphs

+ Surfaces e à clareza das opções de configuração desse modo.

Page 71: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

49

A totalidade dos utilizadores mostrou-se satisfeita com a informação apresentada

pela legenda e com a disposição das duas legendas. Foi sugerido o posicionamento

automático da legenda onde esta for menos intrusiva, e a possibilidade de utilizar um

gradiente de cor diferente para cada variável representada, de modo a evitar repetição de

cores nas duas variáveis.

Dada a natureza experimental do modo de superfícies deformadas, e o facto de a

sua implementação ser ainda pouco satisfatória, foi feita uma demonstração aos

utilizadores do seu propósito e de seguida solicitou-se aos mesmos que experimentassem

ajustar as configurações de deformação e contemplassem os resultados. Os inquiridos

consideraram as opções de deformação bastante claras e compreensíveis (10a; 4,57; 0,49)

(Figura 5.11). Quando questionados sobre a utilidade de poder representar uma variável

por deformação, as opiniões foram algo dispersas (10b; 3,43; 0,9), com a maioria dos

utilizadores a classificar a funcionalidade de útil, mas a insistir que são necessários vários

melhoramentos para tornar a deformação mais percetível e menos confusa. Alguns

utilizadores apontaram a utilidade da deformação na representação de outros tipos de

dados, como a tensão elétrica ou em representações do solo. Todos os inquiridos

preferiram o modo de Glifos + Superfícies face ao modo de superfícies deformadas.

5.3.4 Utilização de transições animadas

A última funcionalidade testada foi a realização de transições animadas. Foi

solicitado aos utilizadores que escolhessem um modo de visualização de uma só variável

e de seguida experimentassem a função de animação. Foi também explicado o objetivo

desta função e a sua utilidade para análise temporal dos dados. Quanto à utilização da

animação e à facilidade em manusear os comandos de reprodução, a maioria dos

utilizadores revelou-se muito satisfeita (11a; 4,55; 0,58) (Figura 5.12). Em relação às

0 0 0

9

12

0

5

10

15

10a) Clareza das opções de superfícies deformadas

1 (confusas) 2 3 4 5 (claras)

12

6

11

1

0

5

10

15

10b) Utilidade de representações com deformação

1 (pouca) 2 3 4 5 (muita)

Figura 5.11 Classificação atribuída pelos utilizadores à clareza das opções de configuração do modo

de superfícies deformadas, e quanto à utilidade de um modo destes na visualização dos dados.

Page 72: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

50

opções de configuração da animação, mais uma vez a maioria dos utilizadores achou o

seu ajuste muito fácil (12a; 4,73; 0,45) e que as mesmas opções eram suficientemente

claras (12b; 4,36; 0,64), tendo sido sugerido que a escolha de intervalos de tempo fosse

baseada num slider em vez de uma caixa de diálogo, e que sejam no futuro adicionadas

opções para agrupar temporalmente os dados (em anos, meses, dias, horas, etc.).

5.3.5 Questões adicionais

Após a conclusão do teste, e de os utilizadores terem experimentado todas as

funcionalidades da aplicação, estes foram inquiridos a cerca das condições de visibilidade

da mesma. A maioria dos utilizadores classificou a visibilidade dos gráficos de RA, bem

como a visibilidade da interface de utilizador como boas ou muito boas (QAa; 4,41; 0,58)

(QAb; 4,5; 0,58). No entanto, o facto de os testes terem sido realizados num espaço à

sombra pode ter contribuído para as classificações elevadas (Figura 5.13). Vários

utilizadores acharam que a visibilidade se torna muito pior quando a aplicação é utilizada

diretamente debaixo do sol, mas admitiram que essa é uma limitação do próprio ecrã do

aparelho e não da aplicação, bem como que o modo de trancar a imagem ajuda em parte

a colmatar esta limitação.

Numa avaliação geral da aplicação, a maioria dos utilizadores classificou esta de

“boa” (QAd; 4,32; 0,55), chamando apenas a atenção para potenciais melhorias, como

por exemplo, corrigir a imprecisão do sistema de alinhamento através de sensores. Outra

sugestão foi a possibilidade de guardar snapshots e animações para visualização posterior

(ou no próprio tablet, ou num PC).

0 01

8

13

0

5

10

15

11a) Facilidade de utilização da animação

1 (difícil) 2 3 4 5 (fácil)

0 0 0

6

16

0

5

10

15

20

12a) Facilidade de ajuste das opções de animação

1 (difícil) 2 3 4 5 (fácil)

Figura 5.12 Classificação atribuída pelos utilizadores à facilidade de utilização da animação, e à

facilidade de ajuste das opções de animação.

Page 73: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

51

0

2

4

6

8

10

12

14

1 (má) 2 3 4 5 (boa)

Visibilidade da aplicação

Gráficos de RA Interface de Utlizador

0 01

13

8

0

2

4

6

8

10

12

14

Classificação global da aplicação

1 (má) 2 3 4 5 (boa)

Figura 5.13 Classificação atribuída pelos utilizadores à visibilidade quer dos gráficos de RA quer da

interface de utilizador, e classificação global da aplicação.

Page 74: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

52

Page 75: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

53

Capítulo 6

Conclusões e Trabalho Futuro

Neste documento foi apresentada uma biblioteca para o sistema operativo Android,

designada RUBI Glare, que implementa a visualização de grandezas escalares em

realidade aumentada. Esta biblioteca resultou da extensão da biblioteca RUBI, que

originalmente suportava a visualização de pontos de interesse com geolocalização,

passando a permitir a visualização de dados com recurso a gráficos 3D, através de glifos

tridimensionais ou de superfícies coloridas, com ou sem deformação. Foram ainda

apresentados detalhes acerca do carregamento e processamento dos dados, e dos

mecanismos que permitem a sua visualização e o alinhamento com base nos sensores do

dispositivo móvel.

Com base nesta biblioteca, foi construída uma aplicação que demonstra as

funcionalidades da mesma, permitindo a visualização dos níveis de radiação solar sobre

as paredes do edifício C6 da FCUL. Apresentou-se a interface com o utilizador

desenvolvida, as opções de configuração existentes e foi feita uma análise sucinta do

desempenho e fiabilidade da aplicação.

Pode-se desde já concluir que os objetivos pretendidos para este projeto foram

cumpridos, tendo sido desenvolvido de raiz com sucesso um motor de gráficos 3D capaz

de suportar a visualização de dados científicos. O facto da biblioteca RUBI Glare seguir

uma estrutura modular e ser de código aberto, à semelhança da sua predecessora RUBI,

permite que um programador que pretenda construir aplicações móveis de RA possa

acrescentar as funcionalidades que entenda que estão em falta, ou modificar e otimizar as

existentes sem constrangimentos. Ainda assim, existem certas limitações. A maior de

todas é a falta de precisão dos sensores, que obrigou a aplicar soluções de alinhamento

manual. Além disso, partes do código ainda não se encontram suficientemente otimizadas

de forma a garantir um desempenho rápido e utilização fluida (com é o caso da

visualização de glifos).

Algumas propostas de melhoramentos, bem como ideias para trabalho futuro são

listadas de seguida:

Opções adicionais para a consulta dos dados: aplicação de filtros para

destacar apenas intervalos de valores.

Realizar uma ampliação semântica, em que o utilizador pode selecionar um

ponto da visualização para ver informação adicional, com mais pormenor.

Page 76: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

54

Implementar um algoritmo de oclusão mais sofisticado, que carregue para a

memória gráfica apenas os objetos mais perto do observador e exclua

totalmente objetos mais afastados.

Melhorar o algoritmo de geração de conjuntos de glifos, de forma a tornar a

taxa de refrescamento do ecrã mais rápida e minimizar o lag na interface de

utilizador.

Experimentar a integração de uma pré-visualização fotográfica do edifício na

técnica de alinhamento manual por arrasto, de forma a dar mais contexto ao

utilizador.

Experimentar soluções de carregamento dos dados a partir de um servidor

remoto.

Adaptar a interface de transição animada para seleção específica de evolução

temporal, e ajustar o código em conformidade.

Melhorar a GUI da aplicação desenvolvida, tornando as principais opções de

configuração mais acessíveis e rápidas de ajustar.

Adicionar opções para calibrar manualmente o acelerómetro e bússola

conforme o dispositivo utilizado.

Adicionar suporte para mais línguas na aplicação, aproveitando as

capacidades da API do Android para esse efeito.

Possibilidade de guardar snapshots da visualização ou de animações para

analisar posteriormente.

Page 77: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

55

Bibliografia

[ADP] Android Design Patterns (acedido em 6-9-2013).

<http://developer.android.com/design/patterns/index.h

tml>

[AndAR] AndAR – Android Augmented Reality (acedido em 12-9-2013).

<https://code.google.com/p/andar/>

[Android] Android – Página Oficial (acedido em 15-9-2013).

<http://www.android.com>

[BisonH] android-filechooser by Hai Bison (acedido em 18/9/2013)

<http://www.haibison.com/libs/android-filechooser>

[Chua] Chua’s OpenGL Programming Notes (acedido em 16-9-2013)

<http://www.ntu.edu.sg/home/ehchua/programming/opengl

/CG_BasicsTheory.html>

[FakeGPS] Fake GPS location – Google Play Store (acedido em 18-9-2013)

<https://play.google.com/store/apps/details?id=com.le

xa.fakegps>

[Gimeno10] J. Gimeno, P. Morillo, S.Casas, M. Fernández. An Augmented

Reality (AR) CAD System at Construction Sites. In Augmented

Reality: Some Emerging Application Areas, pp. 15-32. InTech.

(2010).

<http://www.intechopen.com/books/augmented-reality-

some-emerging-application-areas>

[GLProg] OpenGL ES Programming Guide for iOS (acedido em 16-9-2013)

<https://developer.apple.com/library/ios/documentatio

n/3ddrawing/conceptual/opengles_programmingguide/Open

GLESApplicationDesign/OpenGLESApplicationDesign.html>

[Hakkarainen09] M. Hakkarainen, C. Woodward, K. Rainio. Software Architecture

for Mobile Mixed Reality and 4D BIM Interaction. In Proc. 25th

CIB W78 Conference, Istanbul, Turkey, pp. 517-524. (2009).

[Helfrich-

Schkarbanenko12]

A. Helfrich-Schkarbanenko, V. Heuveline, R. Reiner, S.

Rittersbusch. Bandwidth-Efficient Parallel Visualization for

Mobile Devices. In INFOCOMP 2012, The Second International

Conference on Advanced Communications and Computation,

Venice, Italy, pp. 106-112. (2012).

<http://emcl.uni-hd.de/fileadmin/images/Publications/

Preprints/emcl-preprint-2012-07.pdf>

Page 78: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

56

[Heuveline11] V. Heuveline, S. Ritterbusch, S. Ronnås. Augmented Reality for

Urban Simulation Visualization. In EMCL Preprint Series, 7-2012.

Engineering Mathematics and Computing Lab (EMCL), Karlsruhe

Institute of Technology (KIT), Karlsruhe, Germany (2011).

[Honkamaa07] P. Honkamaa, S. Siltanen, J. Jäppinen, C. Woodward, O. Korkalo.

Interactive Outdoor Mobile Augmentation Using Markerless

tracking and GPS. In Proc. Virtual Reality International

Conference (VRIC), Laval, France, pp. 285-288. (2007).

[Kim12] I. Kim. An Introduction to Augmented Reality. (Seminar Report)

In COMPSCI 705 S1 C. Department of Electrical and Computer

Engineering, University of Auckland, Auckland, New Zealand

(2012).

[Layar] Layar - Augmented Reality (acedido em 12-9-2013).

<http://www.layar.com>

[LDK] Layar SDK (acedido em 12-9-2013).

<https://www.layar.com/products/custom-

solutions/sdk/>

[Luo11] X. Luo. The Cloud-Mobile Convergence Paradigm for Augmented

Reality. In Augmented Reality: Some Emerging Application Areas,

pp. 33-58. InTech. (2011).

<http://www.intechopen.com/books/augmented-reality-

some-emerging-application-areas>

[MC] Metaio Creator (acedido em 15-9-2013).

<https://www.metaio.com/creator>

[Metaio] Metaio – Augmented Reality Products and Services (acedido em

15-9-2013).

<https://www.metaio.com/products>

[Mixare] Mixare (acedido em 12-9-2013)

<https://code.google.com/p/mixare/>

[Montez12] E. Montez. Visualização de Pontos de Interesse em Dispositivos

Móveis Utilizando Realidade Aumentada. Faculdade de Ciências

da Universidade de Lisboa, Lisboa, Portugal. (Relatório final de

Projeto em Engenharia Informática, 2012).

[OGLES] OpenGL ES – The Standard for Embedded Accelerated 3D

Graphics (acedido em 16-9-2013).

<https://www.khronos.org/opengles/>

Page 79: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

57

[SilvaP11a] P. Silva. Transição Entre Ambientes Externos e Internos e

Visualização Adaptativa. Faculdade de Ciências da Universidade

de Lisboa, Lisboa, Portugal. (Relatório final de Projeto em

Engenharia Informática, 2011).

[SilvaP11b] P. Silva, P. Pombinho, A. Afonso, T. Gonçalves, Rubi: An Open

Source Android Platform for Mobile Augmented Reality

Applications. In Workshop on Mobile Augmented Reality: Design

Issues and Opportunities (MobileHCI’2011), Stockholm, Sweden

(August 30 to September 2, 2011).

[SilvaS11] S. Silva, B. Santos, J. Madeira. Using Color in Visualization: A

Survey. In Computers & Graphics, 35(2), pp. 320-333. (2011).

<http://www.sciencedirect.com/science/article/pii/S00

97849310001846>

[Tegra] Tegra Whitepaper: The Benefits of Quad-Core CPUs in Mobile

Devices; NVIDIA Corporation (2011)

<http://www.nvidia.com/content/PDF/tegra_white_papers/tegra-

whitepaper-0911a.pdf>

[WDK] Wikitude SDK for Android – Documentation (acedido em 12-9-

2013).

<http://developer.wikitude.com/documentation/android>

[White09] S. White, S. Feiner. SiteLens: Situated Visualization Techniques

for Urban Sites Visits. In Proc. ACM HCI 2009, Boston, MA, pp.

1117-1120. (2009).

[Wikitude] Wikitude – Página Oficial (acedido em 12-9-2013).

<http://www.wikitude.com>

[Woodward11] C.Woodward, M. Hakkarainen. Mobile Mixed Reality System for

Architectural and Construction Site Visualization. In Augmented

Reality: Some Emerging Application Areas, pp. 115-130. InTech.

(2011).

<http://www.intechopen.com/books/augmented-reality-

some-emerging-application-areas>

Page 80: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

58

Page 81: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

59

Anexo A: Diagramas UML

Diagrama de Pacotes

Page 82: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

60

Diagrama de Classes (Métodos e atributos públicos)

Page 83: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

61

Anexo B: Mapa dos Pontos de Observação

Page 84: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

62

Coordenadas dos pontos de observação e conversão ETRS89 correspondente:

Ponto Latitude Longitude X (ETRS89) Y (ETRS89)

A +38.7554 -9.1578 -89073.8112905126 -100845.943866505

B +38.7556 -9.1580 -89075.0785822945 -100802.642947115

C +38.7559 -9.1580 -89087.7632784584 -100774.43397369

D +38.7557 -9.1577 -89041.3296108869 -100805.160295271

E +38.7549 -9.1575 -89045.0193321766 -100900.40707597

F +38.7550 -9.1580 -89092.0548298605 -100870.47341901

G +38.7551 -9.1585 -89113.9534209706 -100877.064174491

H +38.7553 -9.1571 -89013.2486284419 -100862.697587014

I +38.7559 -9.1573 -89034.2264643469 -100771.540393421

J +38.7563 -9.1573 -89027.6801817311 -100744.521566095

L +38.7566 -9.1577 -89052.7972881496 -100708.19831183

M +38.7562 -9.1581 -89065.2326000907 -100800.346089177

N +38.7562 -9.1579 -89080.1587405765 -100766.98250974

O +38.7561 -9.1580 -89099.5967426833 -100751.415107231

P +38.7562 -9.1587 -89101.5472235379 -100733.234525005

Page 85: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

63

Anexo C: Guião de Testes com Utilizadores

Inquirição contextual para utilizadores do RUBI Glare

Junho de 2013

INTRODUÇÃO:

Realidade aumentada é uma tecnologia que sobrepõe gráficos gerados por

computador a imagens captadas do mundo real. O RUBI Glare (“GL Augmented

REality”) é uma aplicação para tablets cuja função é a visualização de dados científicos

em realidade aumentada. A aplicação utiliza imagens captadas pela câmara do tablet,

em conjunto com um motor de gráficos 3D para apresentar sobre as imagens do mundo

real uma representação dos dados relativos à exposição solar sobre os edifícios do

campus da FCUL. Para assegurar que estes gráficos são corretamente posicionados e

alinhados com as imagens da câmara, são utilizados diversos sensores do aparelho que

permitem calcular a sua posição e orientação, como o GPS, acelerómetro e bússola.

DADOS PESSOAIS: Idade:

Sexo:

Profissão:

Área de Estudos / Especialização:

Conhecimentos de visualização de dados:

1 (poucos) 2 3 4 5 (muitos)

Experiência com software de visualização de dados:

1 (pouca) 2 3 4 5 (muita)

Page 86: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

64

Experiência de utilização de tablets:

1 (pouca) 2 3 4 5 (muita)

Observações adicionais:

GUIÃO DE UTILIZAÇÃO:

1º - Iniciar a aplicação RUBI Glare.

2º - Posicionar o tablet com as duas mãos, na vertical, e perpendicular ao chão.

Ter o cuidado de não colocar as mãos ou os dedos em cima do ecrã. Segurar o

tablet na direção pretendida, de forma a enquadrar a câmara com as paredes do

edifício. Para ajustar a posição dos gráficos, arrastar o dedo sobre o ecrã

(sugestão: pode ser ao canto do ecrã).

a) Facilidade do alinhamento:

1 (difícil) 2 3 4 5 (fácil)

b) As sobreposição dos gráficos parece-lhe deformada / irrealista?

Sim: Não:

Page 87: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

65

c) Sente necessidade de maior feedback enquanto espera a geração dos

gráficos?

Observações:

3º - Nas definições, aceder à categoria Tracking (Alinhamento). Desativar o modo

de arrasto (drag mode) e regressar ao ecrã principal. Observar a orientação

automática dos gráficos através da bússola e acelerómetro. De volta às

definições de alinhamento, reativar o modo de arrasto. Se quiser, ajuste a

sensibilidade do arrasto para um valor mais satisfatório. Observar os resultados.

a) Clareza / compreensão das opções no menu:

1 (confusa) 2 3 4 5 (clara)

b) Compreendeu a diferença entre os dois modos de alinhamento?

Sim: Não:

c) Explique:

Page 88: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

66

Observações:

4º - Utilizar o botão “trancar vista”, situado na barra de ações no canto superior

direito, para trancar a imagem. Usar novamente para destrancar.

a) Compreendeu o objetivo desta função?

Sim: Não:

b) Explique:

Observações:

(encontrou bem o botão?)

Page 89: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

67

5º - Abrir o menu de definições. Nas opções gráficas, opções de glyphs, alterar o

tamanho dos cubos. Regressar à vista de RA (Realidade Aumentada) carregando

no botão de retrocesso.

a) Facilidade de alterar a dimensão dos glyphs:

1 (difícil) 2 3 4 5 (fácil)

b) Clareza / compreensão das opções no menu:

1 (confusa) 2 3 4 5 (clara)

c) Sugere outra forma geométrica para os glyphs, além de cubos?

d) A forma de escolher o tamanho é satisfatória?

Sim: Não:

e) Os tamanhos disponíveis para escolha são satisfatórios?

Sim: Não:

Observações:

(a nomenclatura: cubos ou ícones?)

Page 90: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

68

6º - Abrir o menu de definições. Experimentar alterar a variável e a escala de

cores relativas aos glyphs. Regressar à vista de RA carregando no botão de

retrocesso.

a) Facilidade de alteração dos parâmetros:

1 (difícil) 2 3 4 5 (fácil)

b) Clareza / compreensão das opções no menu:

1 (confusa) 2 3 4 5 (clara)

c) A forma de escolher a escalas de cor é satisfatória?

1 (pouco) 2 3 4 5 (muito)

d) Qual das escalas de cor acha mais intuitiva?

e) Sugere outras escalas de cor?

Observações:

(adições / melhorias aos mapas de cor?)

Page 91: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

69

7º - Abrir o menu de definições. Alterar o modo de visualização para superfícies

coloridas (Surfaces). Regressar à vista de RA carregando no botão de

retrocesso.

a) Facilidade da seleção do modo de visualização:

1 (difícil) 2 3 4 5 (fácil)

Observações:

8º - Novamente nas definições, e mantendo o modo de visualização em

superfícies, alterar as opções de oclusão e o nível de opacidade. Na vista de RA,

arrastar a imagem com o dedo para observar o resultado de alterar essas

definições.

a) Facilidade de alteração das opções:

1 (difícil) 2 3 4 5 (fácil)

b) Considera o ajuste da oclusão útil / vantajoso?

Sim: Não:

c) Considera o ajuste da opacidade útil / vantajoso?

Sim: Não:

Page 92: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

70

d) Qual dos modos de visualização prefere?

Superfícies coloridas (Surfaces): Cubos (Glyphs):

e) Porquê?

Observações:

9º - Nas preferências, escolher o modo de visualização de Superfícies + Cubos

(com 2 variáveis), e escolher o mapa de cores e a variável para cada um.

Observar na vista de RA a sobreposição dos dois modos, com uma legenda

separada para cada variável. Regressar à preferência e mudar somente para

glyphs ou superfícies coloridas.

a) Facilidade de realização da tarefa:

1 (difícil) 2 3 4 5 (fácil)

b) Clareza / compreensão das opções no menu:

1 (confusa) 2 3 4 5 (clara)

c) A informação apresentada pela legenda é compreensível?

Sim: Não:

Page 93: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

71

d) A disposição das duas legendas é clara e intuitiva?

Sim: Não:

Observações:

10º - Nas definições, Selecionar o modo de superfícies deformadas (Warped

Surfaces). Nas opções para superfícies deformadas, selecionar uma variável

para deformação. Regressar ao ecrã principal e ver o resultado.

a) Clareza / compreensão das opções no menu:

1 (confusa) 2 3 4 5 (clara)

b) Considera vantajosa a possibilidade de representar uma variável por

deformação?

1 (pouco) 2 3 4 5 (muito)

c) Que modo para representar duas variáveis lhe parece mais útil?

Superfícies coloridas + Cubos: Superfícies com deformação:

Page 94: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

72

Observações:

11º - Abra novamente as definições e escolha um modo de visualização diferente

(de uma só variável). De regresso à vista de RA, selecionar o botão de animação.

Utilizar os controlos da interface que foi invocada para iniciar/parar a animação.

Arrastar a barra de progresso com o dedo para alternar manualmente entre

etapas da animação. Tocar com o dedo fora do menu para fechar a animação.

a) Facilidade de realização da tarefa:

1 (difícil) 2 3 4 5 (fácil)

b) O tempo de resposta e a fluidez da interface são aceitáveis?

Sim: Não:

Observações:

(a animação é pensada para variáveis com valores temporais associados, permitindo

assistir à evolução temporal)

Page 95: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

73

12º - Regressar ao menu de definições e aceder à categoria Animação. Ajustar

as opções de escolha de variáveis e intervalo de transição. Regressar à vista de

RA e repetir a animação.

a) Facilidade de seleção dos parâmetros:

1 (difícil) 2 3 4 5 (fácil)

b) Clareza / compreensão das opções no menu:

1 (confusa) 2 3 4 5 (clara)

c) A forma de escolher os intervalos de tempo é satisfatória?

Sim: Não:

d) Os intervalos de tempo disponíveis são satisfatórios?

Sim: Não:

e) Tem preferência por algum dos modos de visualização quando realiza

animação?

Observações:

Page 96: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

74

QUESTÔES ADICIONAIS:

a) A visibilidade dos gráficos sobre a imagem é satisfatória?

1 (pouco) 2 3 4 5 (muito)

b) A visibilidade geral da interface é satisfatória?

1 (pouco) 2 3 4 5 (muito)

c) Existe alguma funcionalidade importante que falte à aplicação?

d) Que avaliação geral faz da aplicação?

1 (má) 2 3 4 5 (boa)

Page 97: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

75

Anexo D: Capturas de Ecrã

Visualização de Glifos

Visualização de Superfícies Coloridas

Page 98: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

76

Visualização de Glifos + Superfícies

Page 99: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

77

Anexo E: Menus de Opções

Menu de opções gráficas

Opções de visualização de Glifos

Page 100: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

78

Opções de visualização de Superfícies

Opções de visualização de Glifos + Superfícies

Page 101: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

79

Opções de visualização de Superfícies Deformadas

Menu de opções de animação.

Page 102: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

80

Menu de opções de alinhamento.

Page 103: VISUALIZAÇÃO DE DADOS EM REALIDADE AUMENTADA©_Pedrosa.pdfvindo a atingir grandes desenvolvimentos na última década, em grande parte graças à expansão da indústria de aparelhos

81