desenvolvimento de software de realidade virtual para ... r. c... · desenvolvimento de software de...

52
UNIVERSIDADE FEDERAL DE SANTA CATARINA CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO INDUSTRIAL Desenvolvimento de Software de Realidade Virtual para Inspeção 3D do Interior de Dutos – Módulo de Navegação Relatório submetido à Universidade Federal de Santa Catarina como requisito para a aprovação da disciplina: DAS 5511 Projeto de Fim de Curso João Ricardo Castro Melo Florianópolis, Março de 2009

Upload: votruc

Post on 18-Jan-2019

213 views

Category:

Documents


0 download

TRANSCRIPT

UNIVERSIDADE FEDERAL DE SANTA CATARINA CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO INDUSTRIAL

Desenvolvimento de Software de Realidade

Virtual para Inspeção 3D do Interior de Dutos – Módulo de Navegação

Relatório submetido à Universidade Federal de Santa Catarina como requisito para a aprovação da disciplina:

DAS 5511 Projeto de Fim de Curso

João Ricardo Castro Melo

Florianópolis, Março de 2009

Desenvolvimento de Software de

Realidade Virtual para Inspeção 3D

do Interior de Dutos – Módulo de

Navegação

Relatório submetido à Universidade Federal de Santa Catarina

como requisito para a aprovação da disciplina:

DAS 5501: Estágio em Controle e Automação Industrial

João Ricardo Castro Melo

Florianópolis, Março de 2009

2

Desenvolvimento de Software de Realidade Virtual para

Inspeção 3D do Interior de Dutos – Módulo de Navegação

João Ricardo Castro Melo

Orientador:

Armando Albertazzi Gonçalves Júnior, Dr. Ing.

______________________________ Assinatura do Orientador

Este relatório foi julgado no contexto da disciplina

DAS 5501: Estágio e Controle e Automação Industrial e aprovado na sua forma final pelo

Curso de Engenharia de Controle e Automação

3

Agradecimentos

Durante o desenvolvimento do trabalho, o acompanhamento e orientação de

Analucia Vieira Fantin Pezzota foram os nortes que o guiavam. Aprendi bastante

com a minha coordenadora, a quem vai o principal agradecimento aqui. Valorizo

muito a oportunidade de ter trabalhado com ela e levarei adiante o que ganhei e

aprendi disso.

Agradeço aos colegas do Labmetro, principalmente ao Cauê Avila Clasen,

parceiro de trabalho e de ócio, sendo o segundo fundamental para que corra bem o

primeiro.

Agradeço ao professor Agustinho Plucenio, que sempre viu a área de

informática como promissora e importante para a formação do engenheiro. Cada

programa que eu desenvolver terá um pouco do seu apoio.

Por fim, agradeço à Agência Nacional do Petróleo, Gás Natural e

Biocombustíveis e a FINEP ( Financiadora de Estudos e Projetos) pelo apoio financei-

ro através do seu programa de formação de recursos humanos para o setor do Pe -

tróleo e Gás PRH34 ANP-MCT que possibilitou o desenvolvimento deste trabalho,

além de ter permitido a minha inserção na área de P&G.

4

Resumo

Este documento cobre o trabalho desenvolvido durante estágio curricular da

faculdade de Engenharia de Controle e Automação, relacionando o trabalho com o

currículo do curso e com a indústria de petróleo e gás. O trabalho foi realizado no

Laboratório de Metrologia e Automatização (LABMETRO) do Departamento de

Engenharia Mecânica – EMC – UFSC.

Tal trabalho foi desenvolver parte de um software de realidade virtual para

visualização e navegação no interior de dutos. Resumidamente, o software recebe

como entrada uma nuvem de pontos, resultado da perfilometria de um tubo ou duto.

Ao recebê-la, monta-a como um duto tridimensional e permite que o usuário

navegue pelo interior e exterior desta representação, podendo assim analisar sua

geometria em busca de defeitos.

Dentro da estrutura do software, as funcionalidades desenvolvidas pelo autor

deste trabalho serão detalhadas aqui. As outras, completando o sistema, serão

apresentadas a fim de contextualização. Os módulos do software detalhados

adiante incluem navegação em primeira pessoa com uso de joystick, detecção de

colisão, escala de cores e interface de usuário em ambiente virtual, entre outros.

5

Abstract

This document covers the work developed during the Control and Automation

Engineering’s traineeship, relating it to the course’s other subjects and to the Oil and

Gas industry. The work was done in the Metrology and Automation Laboratory

(LABMETRO) of Mechanical Engineering Department – EMC-UFSC.

Such work consisted in partially developing a virtual reality software for

visualisation and navigation inside ducts. In a few words, the software receives a

cloud of points as input, which is a result of previous duct perfilometry. Afterwards, it

renders a tridimensional duct and allows the user to navigate in its inner and outer

regions, so letting him/her able to analyse the virtual duct and look for defects.

In the software’s inner structure, the functionalities developed by the author of

this work will be detailed here. Other functionalities are to be presented for the

detailed ones to be contextualised. The detailed modules shown ahead include first-

person joystick navigation, collision detection, colour scale and virtual-environment

user interface, among others.

6

Sumário

Agradecimentos .......................................................................................................... 3

Resumo ....................................................................................................................... 4

Abstract ....................................................................................................................... 5

Sumário ....................................................................................................................... 6

Figuras ........................................................................................................................ 7

Tabelas ....................................................................................................................... 8

1. Introdução ............................................................................................................. 9

2. Realidade Virtual ................................................................................................ 13

2.1. Sistemas de RV ........................................................................................... 13

2.2. Estereoscopia .............................................................................................. 14

2.3. Dispositivos de Entrada Intuitivos ................................................................ 16

3. Sistema de Perfilometria Óptica a Laser ............................................................ 18

4. Sistema de Realidade Virtual para Inspeção de Dutos ...................................... 21

4.1. Descrição do Sistema de Realidade Virtual ................................................. 22

4.2. Módulo de Visualização ............................................................................... 24

4.3. Desenvolvimento do Sistema de Navegação em Realidade Virtual ............ 25

4.3.1. Entrada do Programa ................................................................................ 25

4.3.2. Dispositivos de Entrada de Usuário .......................................................... 26

4.3.2.1. Joystick .................................................................................................. 26

4.3.2.2. Teclado e Mouse ................................................................................... 32

4.3.3. Navegação em 3D .................................................................................... 33

4.3.3.1. Deslocamento e Mudança do Ponto de Vista ........................................ 33

4.3.3.2. Tratamento de Colisão .......................................................................... 35

4.3.3.3. Identificação da Posição do Observador ............................................... 36

4.3.4. Identificação visual de posição e realce de secções ................................ 37

4.3.5. Uso de Texto no Ambiente Virtual ............................................................ 38

4.3.6. Menu virtual .............................................................................................. 39

4.3.7. Navegação em 2D .................................................................................... 42

4.3.7.1. Importância ............................................................................................ 42

4.3.7.2. Funções de Navegação ......................................................................... 43

4.3.7.3. Controles de Posição e Zoom ............................................................... 45

4.3.8. Desempenho do Sistema .......................................................................... 45

5. Resultados .......................................................................................................... 47

6. Conclusões ......................................................................................................... 49

6.1. Próximos Passos ......................................................................................... 49

7. Referências......................................................................................................... 50

7

Figuras

Figura 1 Esquema de um sistema de Realidade Virtual. .......................................... 14

Figura 2 Visão estereoscópica. ................................................................................. 15

Figura 3 Head Mounted Display. ............................................................................... 16

Figura 4 Dispositivo intuitivo de entrada. ................................................................... 16

Figura 5 Funcionamento do sensor óptico. ............................................................... 19

Figura 6 Caminho da informação do sistema de perfilometria. ................................. 20

Figura 7 Esquema geral do Sistema de Realidade Virtual. ....................................... 21

Figura 8 Imagem do Sistema de RV: PC, Joystick, HMD e o Software de Realidade Virtual. ....................................................................................................................... 24

Figura 9 Joystick utilizado, com destaque aos principais comandos. ....................... 27

Figura 10 Empunhadura do Joystick. ........................................................................ 31

Figura 11 Funções dos botões do Joystick. .............................................................. 31

Figura 12 Liberdade de Movimento do Usuário: (a) vista em perfil e (b) vista de cima. .................................................................................................................................. 34

Figura 13 Limites de colisão (a) e regiões do duto (b). ............................................. 37

Figura 14 Régua virtual realçando a secção em 20mm. ........................................... 38

Figura 15 Exemplo de texto usado no ambiente 3D. ................................................ 39

Figura 16 Menu principal. A cor vermelha indica que o foco está naquela linha, que pode ser acionada. .................................................................................................... 40

Figura 17 Submenu "escolher dados" ativo. Linhas na cor azul clara estão no estado "marcado" ou "ativo". ................................................................................................. 41

Figura 18 Navegação com a placa de informações ativa. ......................................... 42

Figura 19 Visão 2D. ................................................................................................... 43

Figura 20 (a) Retângulo de seleção escolhendo a área a ser analisada e (b) A área na tela é aquela escolhida pelo usuário através do retângulo. Em ambas figuras aparecem os controles de navegação. ..................................................................... 44

Figura 21 Operadora do SRV. A visão que ela tem é aquela do desenho 3D (apenas o desenho no ambiente 3D) mostrado no monitor, porém estereoscópica. .............. 47

Figura 22 Sucessão de imagens vistas pelo usuário num processo de navegação, com translação, mudança de ponto de vista e texto na tela. .................................... 48

8

Tabelas

Tabela 1 Funções alocadas aos comandos do Joystick no modo “navegação”. ...... 28

Tabela 2 Funções alocadas aos comandos do Joystick no modo “menu”. ............... 29

Tabela 3 Funções alocadas aos comandos do Joystick no modo “cortes”. .............. 29

Tabela 4 Funções alocadas aos comandos do Joystick no modo “luzes”. ............... 30

Tabela 5 Funções alocadas aos comandos de teclado e mouse. ............................ 32

9

1. Introdução

O transporte de gás, petróleo e seus derivados (P&G) no Brasil é, em grande

parte, realizado por meio de dutos metálicos, um meio de transporte seguro, barato

e eficiente. Estes dutos, os quais podem ser submarinos, subterrâneos ou aéreos,

sofrem diversos tipos de danos, sejam por agentes externos ou pelo próprio material

que é ali transportado.

Os principais tipos de defeitos encontrados nos dutos transportadores de

P&G são alterações geométricas da natureza de amassamentos, corrosão e

defeitos advindos do processo de soldagem. Outros problemas podem ocorrer,

como a presença de corpos estranhos[5]

. No caso da corrosão, quando dada apenas

internamente, ela pode passar despercebida por uma análise externa, fazendo-se

necessária também uma análise interna dos dutos, ao se fazerem inspeções destes.

Tais defeitos podem comprometer a estrutura do duto ou até mesmo causar sua

ruptura, gerando assim, além de enormes prejuízos financeiros, também prejuízos

ambientais. Existem ainda os prejuízos sociais e à imagem da companhia

transportadora.

Dentro do contexto de segurança das malhas dutoviárias, são importantes a

percepção e a análise cuidadosa de defeitos, prevenindo acidentes, suas

conseqüências e garantindo uma maior eficiência no transporte de insumos. Porém,

apesar da sua importância, as inspeções de dutos devem interromper minimamente

a sua operação a fim de evitar prejuízos.

Novas tecnologias têm sido desenvolvidas para medição de defeitos internos,

agregando simplicidade, robustez e exatidão nas medições executadas, além de

pouca interferência operacional. Os equipamentos que fazem a inspeção interna de

dutos são chamados pigs e podem ser de várias categorias, como magnéticos, de

ultra-som, de contato mecânico e ópticos. Na categoria de pigs ópticos, foi

desenvolvido no LABMETRO-UFSC um sensor laser com triangulação cônica[1]

, o

qual fará parte de um completo sistema de medição para perfilagem interna de

10

dutos. Este sistema gerará um resultado de medição em forma de “nuvem de

pontos”. Para a análise de fato da medição desse sistema e a desejada percepção

de defeitos deve-se, então, ler a nuvem de pontos adequadamente.

Para tornar possível esta leitura, foi desenvolvido também no LABMETRO um

sistema de realidade virtual que permite ao usuário analisar o resultado da medição

do sistema (nuvem de pontos) num ambiente imersivo. Este sistema permite

navegar de forma intuitiva e visualizar uma imagem tridimensional da geometria

interna do duto, de modo a promover uma análise criteriosa da situação sem que o

usuário precise estar fisicamente presente no interior do objeto de medida.

O projeto de perfilometria e análise desenvolvido no LABMETRO como um

todo, incluindo o sensor óptico, sua montagem para possibilitar a perfilagem

completa de um tubo ou duto e o software de realidade virtual aqui descrito é

conhecido como PEROLA (Perfilometria óptica a laser aplicada a dutos).

Para que haja um transporte fiel e intuitivo do usuário para o interior do

ambiente virtual, é necessário que o sistema de navegação transmita a sensação de

naturalidade. Além disso, deve fornecer ao usuário poder de percepção da condição

interna do duto anteriormente analisado pelo perfilômetro óptico. Tal sistema de

navegação, parte do sistema de realidade virtual e parte do PEROLA, é o foco deste

trabalho. Juntamente com um sistema de visualização, ele compõe o sistema de

realidade virtual.

A proposta do trabalho apresentado aqui é inovar na capacidade de análise

de imperfeições de dutos, agregando às opções disponíveis uma forma de adentrar

uma tubulação de transporte de P&G que permita ao analista locomover-se de

forma fácil, natural e, ao mesmo tempo, poderosa. Para o desenvolvimento deste

sistema, serão utilizadas técnicas e ferramentas de realidade virtual.

No currículo de Engenharia de Controle e Automação da UFSC, algumas

disciplinas relacionam-se com o desenvolvimento deste trabalho, umas mais e

outras menos intensamente. São as seguintes:

11

Geometria Analítica / Álgebra Linear / Introdução à Robótica Industrial:

operações com matrizes, compreensão do espaço tridimensional e

representações de ponto de vista e posição foram fortemente usados no

desenvolvimento do software para navegação.

Processos em Engenharia / Processos de Fabricação Metal-Mecânica:

entendimento da necessidade existente na indústria na monitoração do

perfil de dutos, motivação do trabalho.

Metodologia para Desenvolvimento de Sistemas / Introdução ao Projeto e

Manufatura Assitidos por Computador: ajudaram a criar uma visão

sistêmica-funcional para o desenvolvimento e arquitetura do software,

principalmente a primeira. A segunda também ofereceu a experiência de

manipulação de objetos virtuais nos sistemas de CAD, auxiliando na

correção do software.

Informática Industrial I / Informática Industrial II / Fundamentos da

Estrutura da Informação: forneceram bases e conceitos de informática

fundamentais para a realização deste trabalho.

A metodologia empregada para o desenvolvimento do sistema de realidade

virtual foi o estudo das técnicas de realidade virtual, escolha de uma delas, criação

de uma especificação e então projeto e programação do software baseados em

funcionalidades que cumprissem a especificação do sistema.

Para a análise de defeitos em dutos, já existem programas capazes de

mostrar resultados de perfilagens. Porém eles não oferecem visão estereoscópica

(necessária para imersão e explicada posteriormente) nem navegação em primeira

pessoa, além de não serem adaptáveis a um sistema de realidade virtual.

Principalmente por estas razões este trabalho inova na análise de medições de

dutos.

No capítulo 2, é fundamentada a Realidade Virtual e apresenta-se algumas

de suas técnicas e ferramentas. O capítulo 3 fala sobre o sistema de perfilometria

12

óptica que gera a medição utilizada pelo software, enquanto o capítulo 4 fala do

sistema de realidade virtual em si. Em seguida são apresentados os resultados

atuais no capítulo 5 e o capítulo 6 aponta conclusões sobre o trabalho. Finalmente,

no capítulo 7 são mostradas as referências.

13

2. Realidade Virtual

Realidade virtual (RV) é uma forma de interação ou interface homem-

máquina (IHM), podendo ser considerada como “a forma de interação homem-

máquina mais avançada até agora disponível”[2]

. Seguindo nessa linha, pode-se

dizer que a RV “é uma interface avançada, onde o usuário pode realizar imersão,

navegação e interação em um ambiente sintético tridimensional gerado por

computador, utilizando canais multi-sensoriais”[3]

. Enfim, é uma forma de criar por

computador um ambiente muito próximo da realidade. A realidade virtual tem

aplicações práticas em diversas áreas, muitas dessas aplicações são justamente

para análise de imagens.

No período inicial do estágio foi realizada uma extensa pesquisa sobre

realidade virtual, num período de 3 semanas. Os resultados desta pesquisa foram

apresentados em forma de seminário para os colaboradores do LABMETRO. Junto

a isto foram especificados os equipamentos para a síntese do sistema de realidade

virtual abordado aqui.

Nesta seção são mostrados resumidamente os conceitos utilizados no âmbito

deste trabalho.

2.1. Sistemas de RV

Para se criar um ambiente de RV, é necessário o uso de hardware especial

de entrada e saída (E/S) que crie a sensação de imersão (estar contido no ambiente

virtual) e interação (poder alterar o ambiente ou mover-se). O ambiente é criado a

partir de dados, baseados ou não no mundo real, que são passados ao usuário pela

Interface Homem-Máquina conforme mostra a figura 1[3]

. O usuário executa,

também, ações que serão processadas pela interface sobre os dados do ambiente

virtual, fazendo com que ele se altere e, novamente, seus efeitos sejam repassados

ao usuário, criando assim uma forma natural de interação.

14

Figura 1 Esquema de um sistema de Realidade Virtual.

Basicamente, os dispositivos de saída (óculos de visão estereoscópica,

aparelho de som estéreo, etc.) promovem a imersão, enquanto os dispositivos de

entrada (luvas, joysticks, microfone, etc.) promovem a interação. No entanto, é de

primordial importância a sinergia no funcionamento dos dispositivos de entrada e

saída para criar qualquer um dos efeitos. Se o usuário tenta interagir com o

ambiente através de uma entrada disponível e funcional, mas o dispositivo de saída

não apresenta o resultado de forma rápida ou adequada (por exemplo: tentar andar

para frente e só se sentir deslocado 5s depois) o usuário deixa de ter a sensação de

poder interagir naturalmente com o ambiente. Da mesma forma, se o usuário

percebe alterações no ambiente pronta e fielmente mas não pode alterá-lo (p.ex., vê

uma caixa vir em sua direção mas não pode se mover ou bloqueá-la), não se sente

parte deste, mas sim um mero espectador.

2.2. Estereoscopia

A visão estereoscópica, ou estereoscopia, é a visão de um objeto a partir de

dois pontos de vista, deslocados um do outro por uma pequena diferença em

translação e rotação[4]

. É como a visão humana, gerada a partir da vista individual

dos olhos que são fundidas por nosso cérebro em uma única imagem, criando a

percepção de profundidade. Esta idéia é melhor entendida ao se observar a figura 2:

cada olho vê a imagem um pouco deslocada e nosso cérebro as funde em uma

15

única imagem tridimensional. A sensação de profundidade não seria alcançada com

apenas a vista de um dos olhos (como com uma câmera filmadora convencional ou

com a imagem disposta num monitor convencional).

Figura 2 Visão estereoscópica.

Dentre as formas de se obter estereoscopia, estão:

projetores polarizados auxiliados por óculos polaróides (técnica

utilizada nos cinemas modernos que exibem filmes em 3D);

monitores modernos que criam imagens estéreo sem necessidade de

hardware auxiliar;

óculos que bloqueiam e liberam a passagem de luz sincronizadamente

com a exibição de imagens nos monitores (shutter glasses) e

os monitores portáteis conhecidos como head mounted displays

(HMDs).

Estes últimos têm como vantagem não precisarem de óculos auxiliar e

também o fato de deixar o usuário com o ponto de vista sempre para dentro do

ambiente, mesmo que ele vire o rosto. Um exemplo é mostrado na figura 3, onde se

percebe os fones de ouvido e os monitores, um para cada olho do usuário, do HMD.

16

Figura 3 Head Mounted Display.

2.3. Dispositivos de Entrada Intuitivos

Para facilitar a interação do usuário com o ambiente (mover-se, alterar o

ambiente) é necessário o uso de dispositivos intuitivos de E/S. Um mouse comum

chega a ser um dispositivo intuitivo, porém oferece muito pouca flexibilidade aos

movimentos. É comum então o uso de dispositivos com maior grau de liberdade

como joysticks, luvas com sensores de movimento ou, quando se usa um HMD, até

mesmo sensores que captam o movimento da cabeça podem ser usados como

dispositivos de entrada. Naturalmente, a aplicação destes dispositivos depende do

sistema em questão e da sua pertinência. Na figura 4, um exemplo de dispositivo de

entrada.

Figura 4 Dispositivo intuitivo de entrada.

17

Dependendo da aplicação, deve-se escolher o tipo ideal de dispositivo de

entrada. Num simulador de aviação, é natural que se escolha um joystick ou

manche, por exemplo.

Também influi na escolha o tipo de dispositivo de saída utilizado. Se o

sistema dispõe de imagens estereoscópicas mas o ambiente não é imersivo, o

requisito de intuitividade do dispositivo de entrada diminui.

18

3. Sistema de Perfilometria Óptica a Laser

Está sendo desenvolvido no LABMETRO-UFSC um sistema de Perfilometria

Óptica a Laser Aplicada a Dutos conhecido como PEROLA. Ele é composto de dois

subsistemas, o PEROLA-I (perfilometria interna) e PEROLA-E (perfilometria

externa). O PEROLA-I consiste basicamente de um perfilômetro óptico a laser e um

software de tratamento de dados. Complementar a estes dois sistemas (interno e

externo), está sendo desenvolvido um Sistema de Realidade Virtual (SRV) para

inspeção da geometria interna de dutos. Juntos, o PEROLA-I, PEROLA-E e o SRV

citado formam uma solução completa capaz de adquirir a geometria de um duto e

fornecer ao usuário uma forma amigável e poderosa de analisar eventuais defeitos

encontrados.

O PEROLA é encomendado pela PETROBRAS com o objetivo inicial de

realizar a perfilagem de dutos de trocadores de calor, podendo ser expandido

fuuramente para a perfilagem de dutos de gás, óleo ou outra aplicação.

Uma breve descrição do sistema é fundamental para o entendimento deste

trabalho, dada a relação entre eles. Aqui se explicará o sistema interno, entendendo

que o resultado final da operação do externo será tratada de forma equivalente pelo

SRV.

O sensor óptico dispõe de um feixe de luz apontado a um espelho cônico de

45º, conforme pode ser visto na figura 5[1]

.

19

Figura 5 Funcionamento do sensor óptico.

Uma câmera (sensor CCD + lente) disposta do outro lado capta a imagem da

projeção do laser na superfície interna do duto, refletida por um espelho cônico.

Após capturada a imagem para uma seção, o dispositivo deve locomover-se e

capturar uma nova. Assim sucessivamente o sistema armazena imagens de uma

região do duto.

Depois de armazenadas as imagens, num instante posterior ao processo de

medição, é feito um tratamento por software que gera um arquivo com a informação

dos pontos obtidos das várias seções. Além dos pontos obtidos, outras informações

presentes no arquivo são comprimento da medição, raio nominal do duto analisado,

raio máximo, raio mínimo, número de seções, número de pontos por seção,

resolução angular e resolução de comprimento, além de outras. A saída do sistema

de perfilometria é um arquivo com uma Nuvem de Pontos Cilíndrica (NPC). O

esquema a seguir ilustra melhor o processo desde a medição do duto até a geração

da NPC:

20

Figura 6 Caminho da informação do sistema de perfilometria.

No estágio atual de desenvolvimento, o sensor ainda não dispõe de um

sistema de deslocamento para que possa adquirir toda a geometria interna do duto.

Está em fase inicial de desenvolvimento um sistema de identificação de movimento

para a aquisição da geometria das secções por onde o sensor passará, integrado ao

corpo físico no qual será montado o sensor óptico. Inicialmente o sistema operará

sendo puxado, porém futuramente espera-se fazê-lo ter deslocamento próprio.

21

4. Sistema de Realidade Virtual para Inspeção de Dutos

O Sistema de Realidade Virtual para Inspeção de Dutos tem o objetivo de ser

uma ferramenta de análise de uma medição realizada pelo PEROLA. Para isso,

implementa uma forma de imergir o usuário, através do HMD, num ambiente

tridimensional com uma representação do duto, oferecendo ainda meios de

interação do usuário com o ambiente, através do Joystick, conforme visto na figura

7. O ambiente é de fácil legibilidade e permite a navegação por ele de forma intuitiva

e poderosa. A inclusão de ferramentas de RV permitirá ao usuário provar uma nova

perspectiva na inspeção, através da visão estereoscópica e da navegação intuitiva,

tornando possível o aproveitamento do raciocínio visual do usuário.

Figura 7 Esquema geral do Sistema de Realidade Virtual.

A nuvem de pontos cilíndrica gerada como saída do sistema de perfilometria

é usada como entrada do SRV. O Sistema de Realidade Virtual é composto

basicamente por um Módulo de Visualização (MV) e um Módulo de Navegação

(MN). Algumas partes ou funcionalidades do sistema não são exatamente

enquadradas como sendo do módulo de visualização ou de navgeação; este

22

trabalho mostra o desenvolvimento do módulo de navegação e demais

funcionalidades realizadas pelo autor do trabalho durante o período de estágio

obrigatório. Nesta seção será dada uma descrição do sistema como um todo e,

posteriormente, detalhadas as funcionalidades que são o foco do trabalho.

4.1. Descrição do Sistema de Realidade Virtual

O sistema é composto de:

Microcomputador: um computador comum de mesa ou portátil com o

Microsoft .NET Framework 2.0 instalado, porta USB livre (para o

Joystick) e placa de vídeo aceleradora 3D com 2 saídas de vídeo (uma

para o monitor padrão e outra para o HMD);

Head Mounted Display que suporte visão estereoscópica;

Joystick de 18 botões + 2 alavancas analógicas;

Software de realidade virtual para visualização e navegação.

O software é desenvolvido em C# (linguagem de alto nível do MS .NET

Framework) usando a API OpenGL no ambiente de desenvolvimento MS Visual

Studio 2005 em Windows XP 32bits.

A implementação de OpenGL usada com o C# é a da Tao Framework. Para o

tratamento de entrada por Joystick, usa-se serviços da biblioteca DirectInput, da

Microsoft e para a renderização de fontes de escrita no ambiente virtual usa-se o

projeto FreeType Fonts.

As placas de vídeo utilizadas no desenvolvimento foram da nVidia (GeForce e

Quadro FX), porém nada no projeto atualmente usa funcionalidades específicas de

placas de vídeo desta marca. Portanto espera-se que o sistema seja também

funcional em placas de vídeo ATI ou ainda de outro fabricante.

Recomenda-se, porém, o uso de placa de vídeo nVidia Quadro FX, pelo

número de buffers de quadros maior facilitar enormemente a visualização

estereoscópica. Outros modelos de placa de vídeo podem ser usados, mas é

importante, em termos de desempenho, que a placa de vídeo disponha de pelo

menos 128MB de memória RAM dedicada.

23

O computador em si deve dispor, para boa execução do programa, de pelo

menos 200MB de memória RAM disponível (normalmente obtido com 768MB

instalados em Windows XP ou 1GB instalado em Windows Vista), variando de

acordo com o tamanho da nuvem de pontos a ser lida.

O HMD usado é um modelo i-Glasses PC 3D utilizando, para construção das

imagens estereoscópicas, o método frame sequential: o controlador de vídeo (placa

de vídeo) manda alternadamente as imagens para cada olho (esquerdo/direito) a

cada atualização da tela; o HMD, ao recebê-las, alterna cada uma das imagens em

um de seus monitores, enviando cada uma para o monitor respectivo ao olho para o

qual a imagem foi desenhada.

Isso faz com que a taxa de atualização seja sentida pelo usuário como a

metade do que é enviado pelo controlador de vídeo. Logo, é necessário que se

aumente a taxa de atualização do HMD para algo da ordem de 100Hz ou mais, a fim

de garantir conforto visual.

O conector de dados do i-Glasses PC 3D usado é do tipo SVGA. Para uso

com os novos conectores DVI das placas de vídeo utilizadas, deve-se utilizar um

simples adaptador.

24

Figura 8 Imagem do Sistema de RV: PC, Joystick, HMD e o Software de Realidade

Virtual.

4.2. Módulo de Visualização

Alguns conceitos deste módulo devem ser citados para compreender

funcionalidades do Módulo de Navegação. O MV é responsável por instanciar o

ambiente virtual e desenhar cada ponto do duto neste, além de enviar a imagem do

ambiente para o HMD e fazer com que ela seja estereoscópica.

O duto virtual é colorido de acordo com um mapa de cores, onde o raio de

cada ponto está associado com uma cor, entre um valor mínimo e um valor máximo.

Os valores de mínimo e máximo podem ser alterados pelo usuário. Este conceito

está embutido em figuras apresentadas posteriormente neste texto. O MV também

25

oferece Zoom, diminuindo ou aumentando a região observada. Além disso, o MV

também é capaz de desenhar o duto virtual com diferentes resoluções e desenhar

regiões com diferentes resoluções.

Para o desenho com mapa de cores, é obtido o intervalo entre o mínimo e

máximo de raio que será apresentado no duto virtual. Este intervalo é dividido em

256 partes, cada uma associada com uma cor que varia entre azul (mínimo), passa

por azul claro, verde, amarelo e vermelho (máximo). Para cada ponto da nuvem de

pontos, que será usado como vértice do desenho, é associada então uma cor, de

acordo com o intervalo no qual se encontra o valor do raio daquele vértice. Quando

for desenhada a malha cilíndrica, então, cada vértice terá uma cor representativa da

sua posição entre os valores máximos e mínimos de raio vistos na cena.

Estes serviços serão explorados pelo Módulo de Navegação.

4.3. Desenvolvimento do Sistema de Navegação em Realidade Virtual

O sistema é desenvolvido utilizando-se a linguagem de programação C# e o

Microsoft .NET Framework 2.0 para janelas e interface de usuário, enquanto a parte

gráfica é feita utilizando-se o Tao Framework, uma implementação de OpenGL para

o .NET. O .NET é um Framework para programas de propósito geral,

proporcionando muitas funções, classes e serviços comumente usados. A OpenGL

é uma API (Application Programming Interface) gráfica que especifica comandos

para desenhos 2D e 3D em qualquer controlador de vídeo que a implemente (o que

acontece com qualquer modelo hoje).

A seguir, a descrição do estágio atual de desenvolvimento do Módulo de

Navegação.

4.3.1. Entrada do Programa

A Nuvem de Pontos Cilíndrica traz os dados necessários à navegação

no ambiente virtual com a representação do duto, e são eles apenas:

26

Comprimento da medição e

Raio nominal.

Outros dados necessários são obtidos pela interface de usuário:

Velocidade de navegação e

Opção de colisão.

São estas as informações de interesse do usuário usadas para a navegação.

4.3.2. Dispositivos de Entrada de Usuário

4.3.2.1. Joystick

O Joystick utilizado é de 18 botões com duas alavancas analógicas e

interface de comunicação USB, como o da figura 9. Foi escolhido este modelo de

Joystick por ser barato e muito difundido, além de permitir ao usuário uma grande

gama de opções que não seria atingida com um modelo de apenas uma alavanca

analógica.

O uso de tal dispositivo se faz necessário pela imersão que o sistema se

supõe a causar no usuário; estando “transportado” ao ambiente virtual, o usuário

deve sentir facilidade em se locomover sem ter que desviar a atenção do que está

vendo ou mesmo retirar o HMD. O Joystick permite cumprir este requisito.

Para a leitura do dispositivo foi criada uma classe, utilizando serviços da

biblioteca MSDirectInput, que lê o estado do Joystick intermitentemente. Esta classe

é portável e aceita qualquer Joystick, não apenas o utilizado. Após a leitura da

nuvem de pontos, o usuário deve comandar a inicialização do Joystick, clicando em

um botão da interface. Após a inicialização, o estado do Joystick é lido a cada 50ms

e interpretado por uma outra camada. Dependendo da situação em que o usuário se

encontra, determinados comandos serão executados mediante o que foi acionado

pelo usuário no joystick.

27

O Joystick é usado para, além de navegação, outros comandos no ambiente

virtual. O usuário pode alterar a iluminação, realizar cortes no duto virtual ou

interagir com um menu gráfico, por exemplo. Para isto, existe internamente ao

software o conceito de modos de operação. Os modos são “navegação”, “menu”,

“cortes” e “luzes”.

Para este projeto, a alocação dos botões mostrados na figura 9 abaixo segue

o estabelecido nas tabelas 1 a 4, levando em conta para esta escolha a promoção

de uma experiência intuitiva e de rápida adaptação pelo usuário. O detalhamento

das funções é apresentado em outra seção. O tratamento do Joystick permite a

identificação de dois ou mais botões pressionados simultaneamente, podendo

executar a função correspondente a cada botão pressionado ou executar uma

função alocada àquela combinação de botões.

Figura 9 Joystick utilizado, com destaque aos principais comandos.

28

Tabela 1 Funções alocadas aos comandos do Joystick no modo “navegação”.

Comando Função

Alavanca esq. para frente Desloca-se para frente

Alavanca esq. para trás Desloca-se para trás

Alavanca esq. para

esquerda

Desloca-se horizontalmente para a

esquerda / diminui*

Alavanca esq. para direita Desloca-se horizontalmente para a

direita / aumenta*

Alavanca dir. para frente Olha mais para baixo

Alavanca dir. para trás Olha mais para cima

Alavanca dir. para esquerda Olha mais para a esquerda

Alavanca dir. para direita Olha mais para a direita

Direcional para cima Desloca-se verticalmente para cima

Direcional para baixo Desloca-se verticalmente para baixo

Direcional para esquerda Desloca-se horizontalmente para a

esquerda

Direcional para direita Desloca-se horizontalmente para a

direita

Botão 1 pressionado Liga o menu e passa ao modo

“menu”

Botão 3 pressionado Faz aparecer uma placa de

informações da nuvem de pontos

Botão 11 segurado Ativa troca de modos

Botão 7 segurado Ativa ajuste de velocidade

Botão 6 segurado Ativa ajuste do mínimo da escala de

cores

29

Botão 8 segurado Ativa ajuste do máximo da escala de

cores

Botão 6 e 8 segurados Ativa ajuste do centro da escala de

cores

*Quando algum ajuste está ativo, o eixo X da alavanca esquerda passa a

regular esse ajuste.

Tabela 2 Funções alocadas aos comandos do Joystick no modo “menu”.

Comando Função

Direcional para cima Vai para a opção de cima

Direcional para baixo Vai para a opção de baixo

Direcional para esquerda Sai do menu, se for um submenu

Direcional para direita Entra no menu, se tiver submenu

Botão 1 pressionado Sai do menu e volta ao modo

anterior

Botão 3 pressionado Desmarca / diminui valor

Botão 2 pressionado Marca / aumenta valor

Botão 4 segurado Faz sumir temporariamente os

menus, para visualização de efeitos

Tabela 3 Funções alocadas aos comandos do Joystick no modo “cortes”.

Comando Função

Alavanca esq. para direita Aumenta valor escolhido

Alavanca esq. para esquerda Diminui valor escolhido

Botão 1 pressionado Ativa menu

30

Botão 5 pressionado Ativa corte inicial de secção

Botão 6 pressionado Ativa corte inicial longitudinal

Botão 7 pressionado Ativa corte final de secção

Botão 8 pressionado Ativa corte final longitudinal

Tabela 4 Funções alocadas aos comandos do Joystick no modo “luzes”.

Comando Função

Alavanca esq. para direita Aumenta valor escolhido

Alavanca esq. para esquerda Diminui valor escolhido

Botão 1 pressionado Ativa menu

Botão 2 segurado Ativa luz ambiente

Botão 4 segurado Ativa luz difusa

Botão 6 segurado Ativa posição y da fonte de luz

Botão 7 segurado Ativa posição z da fonte de luz

Botão 8 segurado Ativa posição x da fonte de luz

Os botões de cima (5 a 8) foram escolhidos para funções prioritárias

por serem acionados normalmente com dedos diferentes daqueles usados para o

acionamento das alavancas, facilitando a operação do sistema. A figura 10 explica

este conceito mostrando a empunhadura esperada do Joystick. A figura 11 relaciona

diretamente a disposição dos comandos e suas funções.

31

Figura 10 Empunhadura do Joystick.

Figura 11 Funções dos botões do Joystick.

32

4.3.2.2. Teclado e Mouse

Caso o usuário não disponha de um Joystick, ele pode ainda movimentar-se

pelo ambiente virtual utilizando o teclado e o mouse do PC. O tratamento de eventos

para estes casos foi feito com os recursos do .NET. A função a cada tecla/comando

do mouse, mostradas na tabela 2, foram escolhidas com base também em outros

sistemas de RV para que se torne intuitivo para a maioria dos usuários.

Tabela 5 Funções alocadas aos comandos de teclado e mouse.

Comando Função

Seta para cima Desloca-se para frente

Seta para baixo Desloca-se para trás

Seta para

esquerda

Desloca-se horizontalmente para a esquerda

Seta para direita Desloca-se horizontalmente para a direita

Mouse botão

esquerdo + eixo Y Olha para baixo / para cima

Mouse botão

esquerdo + eixo X Olha para esquerda / direita

Mouse botão

direito + scroll Aumenta / diminui zoom

Page Up Desloca-se verticalmente para cima

Page Down Desloca-se verticalmente para baixo

NumPad + Aumenta velocidade

NumPad - Diminui velocidade

33

NumPad 0 Volta ao ponto inicial

NumPad 1, 2, 3 e 4 Vai direto a posições pré-determinadas

O uso de teclado e o mouse para a navegação, porém, não promove a

imersão e a facilidade alcançadas com o uso do Joystick. No projeto, este tipo de

entrada é considerado com secundário e o desenvolvimento prioritário sempre se

deu levando em conta o uso de joystick.

4.3.3. Navegação em 3D

Para tornar possível a navegação de forma natural e intuitiva, foram

implementados métodos de deslocamento do usuário, mudança de ponto de vista e

tratamento de colisão.

4.3.3.1. Deslocamento e Mudança do Ponto de Vista

O usuário, imerso no sistema 3D e com perspectiva em primeira pessoa, é

capaz de movimentar-se para frente e para trás, para a direita e para a esquerda,

virar-se à direita ou esquerda e apontar a vista de cima abaixo, da forma como está

acostumado a fazer no mundo real. Além disto, para aumentar a capacidade de

deslocamento, é possível deslocar-se também verticalmente, conforme mostra a

figura 12. O usuário não pode virar a cabeça, a partir da posição inicial (olhando

para frente), mais do que 90º para cima ou para baixo, assim como não o faz na

vida real. Outra limitação imposta pelo sistema é de que o usuário não pode deitar a

cabeça de lado ou ficar de cabeça para baixo. Essas limitações são criadas a fim de

evitar que o usuário se perca ou se confunda, pois os deslocamentos e

posicionamentos do ponto de vista oferecidos já são suficientes, até com certa

redundância, para realizar análise de qualquer região do duto virtual com agilidade.

34

Figura 12 Liberdade de Movimento do Usuário: (a) vista em perfil e (b) vista de cima.

As translações (horizontal, vertical, para frente e para trás) são dadas

seguindo o ponto de vista atual do usuário; por exemplo, se o usuário estiver

olhando totalmente para baixo, deslocar-se para frente vai levá-lo mais abaixo em

relação ao ponto de vista original.

Dadas estas características, o esquema de navegação pode ser entendido

como o usuário dentro de uma “cabine flutuadora” que translada livremente, gira

livremente em torno do eixo y, não mais que 90º em torno do seu próprio eixo x

(esquerda-direita) e nada em torno do seu eixo z (frente-trás). Mais adiante, será

mostrado que esta “cabine” pode ou não atravessar as paredes do duto,

teletransportar-se para determinadas regiões ou ainda mostrar informações na tela

em frente ao usuário.

Em OpenGL, o ponto de vista da cena e sua posição são dados por uma

matriz homogênea 4x4, onde o primeiro bloco 3x3 representa as rotações em torno

dos eixos x, y e z, a quarta coluna representa a translação do ponto de vista em

relação à origem, acrescida de um elemento igual a 1 e o restante da ultima linha é

completado com zeros. Esta matriz então é usada para se obter a posição e

35

orientação do ponto de vista e, com base no seu estado atual e nos comandos do

usuário, esta matriz é alterada, de modo que o usuário possa se movimentar.

O usuário pode transitar livremente pelas regiões interna e externa do duto.

Deve ter consciência, porém, de que a medição do duto vista de fora é a da

geometria interna; observá-la por fora é apenas outro ponto de vista na inspeção.

A velocidade de navegação também é um parâmetro ajustável em tempo real,

tanto pela interface gráfica do SRV quanto pelo Joystick. A velocidade é

proporcional à inclinação da alavanca do Joystick, variando entre 50% e 400% da

velocidade escolhida.

O período de leitura do Joystick e a freqüência com que o Módulo de

Navegação transmite os dados ao Módulo de Visualização fazem com que a

navegação seja sempre suave, mesmo a altas velocidades de translação,

promovendo conforto ao operador.

4.3.3.2. Tratamento de Colisão

Durante a navegação, quando o usuário está muito próximo às paredes do

duto, ele se vê incapaz de atravessá-lo. Isto é uma grande vantagem principalmente

quando o usuário se desloca para os lados ou para trás; se ele atravessasse o duto,

se veria instantaneamente apontando para outra região da medição, o que o

confundiria. Mesmo indo para frente, o tratamento de colisão é interessante por

aumentar a sensação de imersão do operador no ambiente 3D. A colisão já ocorre

pouco antes do ponto de vista do usuário realmente tocar a parede do duto, fato que

torna o processo mais natural.

Outro efeito do tratamento de colisão é impedir que o usuário se afaste

demais do duto, quando em sua região externa, para que não o perca de vista. A

distância máxima permitida é suficiente para se ter uma boa vista geral externa.

Existe a opção de desativar esta funcionalidade, em tempo de execução,

caso o usuário deseje.

36

O cálculo da colisão leva em conta o fato de que o usuário está navegando

em um duto cilíndrico. Quando as transformações da matriz homogênea, aplicadas

pelo usuário através do dispositivo de entrada, violam as regiões proibidas, estas

nem são aplicadas e o ponto de vista do usuário “colide” com o duto ou limite

externo. A sensação obtida é a de que o duto virtual é sólido.

4.3.3.3. Identificação da Posição do Observador

A posição do observador é conhecida durante a exploração do duto. Caso o

usuário se perca, ou simplesmente o deseje, ele pode retornar à posição inicial, no

começo do duto e olhando para dentro dele. Também é possível saltar para uma

determinada região do duto, funcionalidade útil principalmente no caso de dutos

longos estarem sendo exibidos.

A posição também pode ser usada para requisitar ao Módulo de Visualização

que desenhe com resolução máxima as paredes mais próximas do observador,

agregando fidelidade à inspeção.

A figura 14 mostra os limites da colisão e algumas regiões do duto às quais o

usuário pode ir instantaneamente.

37

Figura 13 Limites de colisão (a) e regiões do duto (b).

4.3.4. Identificação visual de posição e realce de secções

O módulo de navegação conta com uma ferramenta virtual para identificação

da posição do usuário. Trata-se de uma peça desenhada no interior do duto,

simulando uma régua com graduações e placas destacadoras do comprimento

apontado.

Cada divisão da régua equivale a um centímetro do duto real. Assim, mesmo

para diferentes dutos virtuais, a régua sempre parece do mesmo tamanho, tão logo

os dutos são desenhados em igual escala.

O usuário pode ativar e desativar o aparecimento desta peça, de acordo com

a sua conveniência. Tal comando pode ser realizado pelo menu virtual explicado

adiante, entrando no submenu “ferramentas”, a partir do menu principal (botão 1 do

joystick), depois marcando a opção “identificação visual”.

38

Figura 14 Régua virtual realçando a secção em 20mm.

A régua virtual também conta com a funcionalidade de realce de secções:

existe uma secção “apontada” pela régua que está destacada através da divisão na

cor branca e também uma linha branca contornando toda a secção destacada. Com

um comando no joystick, pode-se trocar a secção realçada.

Uma utilidade da régua com sua capacidade de realce de secções é a de o

usuário identificar facilmente a que altura está um certo defeito (ou outra

característica notável) encontrado durante a inspeção.

4.3.5. Uso de Texto no Ambiente Virtual

Foi implementada uma classe que escreve texto no ambiente 3D. Esta

funcionalidade é essencial na criação de uma interface com o usuário num ambiente

estereoscópico, pois o uso de informação em janelas aqui prejudicaria a sensação

de imersão. Com o texto escrito diretamente no ambiente 3D, é como se o usuário

portasse óculos que escrevem informações relevantes nas suas lentes, informando

39

o usuário sem bloquear a visão à frente. Um exemplo de informações mostradas

num ambiente 3D é dado na figura 16.

Figura 15 Exemplo de texto usado no ambiente 3D.

Este recurso utiliza o projeto FreeType, um software livre para interpretação

de fontes de texto, adaptada ao Tao Framework, que é a implementação OpenGL

utilizada no Sistema de Realidade Virtual.

4.3.6. Menu virtual

Foi desenvolvido um módulo de construção de menus e placas informativas

em OpenGL para este projeto. O objetivo principal deste módulo, que usa a

ferramenta de texto descrita no item anterior, é excluir a necessidade de

informações e comandos em janelas de sistema, criando uma interface gráfica de

usuário muito melhor adaptada ao ambiente virtual.

O resultado se propõe a ser similar aos Head-Up Displays (HUD), conhecidos

em aplicações militares e na aviação, principalmente. O usuário de um sistema tem

informações ao seu alcance sem precisar perder de vista a cena. Além da função

clássica desses displays, o HUD aqui implementado também oferece a

40

funcionalidade de implementar comandos, substituído botões, comandos de

regulagem, caixas de marcação e listas de menus.

Foram alocados então um menu de comandos e opções, uma placa de

informações personalizável e um título de modo de operação.

No menu de comandos e opções, alocou-se a marcação da placa de

informações, sua configuração, menu de ferramentas e trânsito rápido, entre outros.

Figura 16 Menu principal. A cor vermelha indica que o foco está naquela

linha, que pode ser acionada.

Quando o usuário está com o menu ativo, pode percorrer as opções usando o

joystick, pressionando as setas para cima ou para baixo (ver descrição no item

joystick). Pode ativar marcações ou entrar em submenus, como exemplificado pelas

figuras 16 a 18. A cor vermelha indica foco do usuário para a aplicação de

comandos. A cor azul clara significa que a opção está marcada. Quando o usuário

aponta uma linha marcada, esta se apresenta na cor violeta.

No exemplo a seguir, o usuário ativou a placa de informações (“exibir dados

da COP”), entrou no menu de configurações desta, desativou opções que não

41

queria ver e depois saiu do menu. Como se vê, o tamnho dos menus é adaptado ao

número de linhas mostradas.

Figura 17 Submenu "escolher dados" ativo. Linhas na cor azul clara estão no

estado "marcado" ou "ativo".

42

Figura 18 Navegação com a placa de informações ativa.

4.3.7. Navegação em 2D

O Sistema de Realidade Virtual também implementa seus módulos de

Visualização e Navegação em 2D. Nesta seção, serão descritas as funcionalidades

da navegação plana.

4.3.7.1. Importância

Ao se realizar análise de geometria de dutos, é importante também a análise

plana da medição, como é comumente feito. Neste tipo de análise é comum buscar

informações sobre uma faixa de valores em uma seção e/ou ao longo de uma linha

no duto. O SRV se propõe a ser completo para o analista e também implementa um

modo 2D, o qual dispõe de um poderoso sistema de navegação.

43

4.3.7.2. Funções de Navegação

As funções de navegação na análise plana são translação horizontal e

vertical e zoom, que pode ser na vertical, na horizontal ou em ambas

proporcionalmente. Inicialmente o usuário começa com uma visão total da NPC,

sendo o comprimento da medição disposto na vertical e sua circunferência, de 0 a

360º, na horizontal. Ao aplicar zoom de modo a aumentar certa região, outra região

é deixada de fora da área visível e o usuário pode buscá-la deslocando seu ponto

de vista.

Para aplicar zoom, o usuário precisa simplesmente escolher um ponto

clicando com o mouse sobre ele e então girar a roda do mouse para frente ou para

trás. O zoom aumentará ou diminuirá a região buscando o ponto escolhido. A

proporção entre altura e largura após o zoom é a mesma da visão anterior.

Figura 19 Visão 2D.

44

(a)

(b)

Figura 20 (a) Retângulo de seleção escolhendo a área a ser analisada e (b) A

área na tela é aquela escolhida pelo usuário através do retângulo. Em ambas figuras

aparecem os controles de navegação.

45

Outra forma de escolha de uma região para análise é, com o botão direito do

mouse, selecionar uma área retangular qualquer através de uma caixa de seleção.

Após liberado o botão direito, a área visível se adaptará suavemente à região

retangular escolhida. A figura 15 destaca este conceito.

Na navegação 2D o máximo zoom negativo mostrará a imagem de todo o

duto.

Estão disponíveis também os botões:

Fit Height: aloca o comprimento da NPC dentro da altura da área

visível;

Fit Width: aloca toda a circunferência na largura da área visível,

respeitando o ângulo central da visão no momento do comando;

Fit View: faz a função de Fit Height e Fit Width;

Reset View: volta à área de análise inicial (como Fit View, mas

necessariamente retorna o ângulo de 0 a 360º).

4.3.7.3. Controles de Posição e Zoom

Para a translação ou para zoom em apenas uma dimensão, devem ser

usados dois controles especialmente desenvolvidos para a navegação 2D do SRV,

os quais fornecem botões para deslocamento rápido ou devagar nos dois sentidos e

botões para aumento ou diminuição do zoom naquela dimensão. Os controles,

mostrados na figura 15, também indicam a região da medição onde o usuário se

encontra, mostrando valores da fronteira da visão e valores intermediários.

4.3.8. Desempenho do Sistema

Durante o desenvolvimento do sistema, foi levado em conta o aspecto de

desempenho, pois uma medição precisa com milhares de pontos, para ser

46

desenhada em OpenGL e permitir uma navegação suave por ela, requer um

hardware poderoso. Outro fato é que a criação de imagens estereoscópicas exige

muito do sistema, o que torna todo aumento de desempenho bem vindo.

O tratamento de colisão foi feito levando-se em conta que o usuário vai

navegar por uma região cilíndrica, o que permite uma enorme otimização do

algoritmo de colisão sem que ele deixe de ser funcional. Um tratamento de colisão

ponto a ponto tornaria o sistema praticamente inviável de ser utilizado no hardware

disponível.

Quanto à identificação de região, o Módulo de Navegação pede ao Módulo de

Visualização que desenhe certa região do duto com resolução melhor quanto mais

próximo desta estiver o observador. As regiões mais afastadas são desenhadas

resolução mais baixa, o que favorece em muito o desempenho. O pedido de troca

de resolução só ocorre quando o usuário troca de região, e não a cada movimento,

pois a troca de resolução também é de grande demanda de recursos

computacionais. Esta funcionalidade encontra-se em fase de desenvolvimento e

avaliação.

Por fim, o período de amostragem de Joystick e pedidos de atualização do

Módulo de Visualização é baixo o suficiente para gerar uma navegação confortável

e contínua, sem ser menor que o necessário, pois se fosse o ganho em suavidade

de navegação seria desprezível e o sistema ainda arcaria com a diminuição do

desempenho.

47

5. Resultados

O Sistema de Realidade Virtual para inspeção da geometria interna de dutos

encontra-se em fase avançada de desenvolvimento e os resultados alcançados até

aqui são notáveis. As mais importantes características do módulo de navegação já

foram amplamente testadas e se mostram robustas, apesar de que algumas

melhorias ainda podem ser feitas. O tratamento de colisão identifica bem os dutos

virtuais de forma simples. A operação do sistema é simples e intuitiva; a disposição

dos comandos do Joystick facilita a operação do sistema, sem que o usuário tenha

que desviar a atenção do que está vendo no Head Mounted Display. A navegação é

suave e pode ter sua velocidade ajustada pelo usuário. As classes implementadas

para tratamento do Joystick, escrita de texto em OpenGL e arcabouço de menus

são portáveis a outros projetos.

Foi desenvolvido, para facilitar a navegação e inspeção como um todo, um

dispositivo geométrico de localização e realce de secções. Também se criou um

menu de opções e informações que dispensa o uso de janelas e agrega qualidade e

facilidade à inspeção usando o Head-Mounted Display.

Figura 21 Operadora do SRV. A visão que ela tem é aquela do desenho 3D

(apenas o desenho no ambiente 3D) mostrado no monitor, porém estereoscópica.

48

Figura 22 Sucessão de imagens vistas pelo usuário num processo de

navegação, com translação, mudança de ponto de vista e texto na tela.

Quando o usuário não achar necessário/não puder fazer uso da realidade

virtual, ele pode se valer da janela no monitor do PC e navegar da mesma forma.

Igualmente, o sistema possibilita que outros usuários expectadores acompanhem,

pelo monitor do PC, a visão do usuário principal no HMD. Somado a isto, há a

49

possibilidade de inspeção plana da medição com uma forma fácil e poderosa de

navegação.

O sistema de troca de resolução por região é recente e precisa ser melhor

adaptado ao resto do sistema.

6. Conclusões

Este trabalho apresenta o desenvolvimento do módulo de navegação de um

sistema de realidade virtual para a inspeção de defeitos internos em dutos. Todas

as funcionalidades importantes implementadas até a presente data estão aqui

relatadas. Foi apresentado o conceito de realidade virtual, base teórica do sistema

apresentado. Uma descrição geral do sistema de perfilometria óptica a laser, o qual

gera a nuvem de pontos cilíndrica utilizada pelo sistema de RV, foi citada a fim de

situar o trabalho no contexto de inspeção de dutos. Para o entendimento das

funcionalidades do módulo de navegação, foi dada uma descrição superficial do

resto do sistema de realidade virtual.

Com o que foi apresentado, o analista de defeitos em dutos tem uma nova

perspectiva para inspeção: navegar em primeira pessoa por um duto virtual, com

todos os graus de liberdade necessários para uma boa inspeção, mas sem perder

de vista a naturalidade dos movimentos.

Tendo um novo poder em mãos, o analista tem facilidade em dar novas

interpretações da medição obtida, agregando conhecimento sobre defeitos ao setor

de transporte dutoviário. Além disto, o sistema oferece uma possibilidade de

inspeção de maior qualidade, conseqüentemente aumentando a segurança dos

dutos de transporte de P&G no Brasil e prevenindo acidentes.

6.1. Próximos Passos

50

Alguns aspectos do módulo de navegação ainda podem ser melhorados,

como ajuste automático de velocidade de navegação de acordo com o tamanho do

duto. Além disso, a arrancada da inércia poderia ser dada de forma mais suave,

mesmo que o usuário peça velocidade máxima, como é no mundo real.

Outra característica desejada para o sistema, e que será implantada em

breve, é a separação de dutos muito longos em regiões, as quais serão carregadas

dinamicamente de acordo com a posição do usuário. As regiões mais distantes do

ponto do usuário nem seriam desenhadas a fim de melhorar o desempenho. Ainda

neste sentido, será implantada uma forma de que o usuário possa cadastrar zonas

críticas para transporte instantâneo, além das zonas pré-definidas mostradas

anteriormente.

O uso de texto também oferece muitas possibilidades de uso, como a

inserção de etiquetas em determinadas regiões do duto virtual pelo próprio usuário

que identificou algo de especial naquela região, com textos padrão prontos

(poderiam ser feitas as marcações com o Joystick), além de ter possibilitado a

criação do módulo de menus e informações. Então ele ou outro usuário poderia

retornar até lá, conferir a nota feita, tirar novas conclusões ou corroborar as já

existentes. Uma bússola ou algo que indique direção também seria bem pertinente.

Muitos avanços, além dos já programados, devem ser agregados ao SRV

(incluindo o Módulo de Navegação) para que este se torne uma solução completa e

inovadora para a inspeção de geometria de dutos.

7. Referências

[1] BUSCHINELLI, Pedro de Deus Vieira. Desenvolvimento de um Sistema

Óptico por Triangulação Cônica para Inspeção do Perfil Interno de Dutos.

2007. 135 f Dissertação (Mestrado) – Curso de Pós-Graduação em Metrologia

Científica e Industrial, UFSC, Florianópolis.

51

[2] HANCOCK, D. Viewpoint: Virtual Reality in Search of Middle Ground.

IEEE Spectrum, 32(1):68, Jan 1995.

[3] KIRNER, Cláudio. Sistemas de Realidade Virtual. Grupo de Pesquisa em

Realidade Virtual, UFSCar. Disponível em

http://www2.dc.ufscar.br/~grv/tutrv/tutrv.htm.

[4] RAPOSO, Aberto B., Szenberg, Flávio et al. Visão Estereoscópica,

Realidade Virtual, Realidade Aumentada e Colaboração. Tecgraf – Grupo de

Tecnologias em Computação Gráfica. PUC-Rio.

[5] REBER, K. Beller, M. Willems, H. et al. A new generation of ultrasonic

in-line inspection tools for detecting, sizing and locating metal loss and cracks

in transmission pipelines. In: ULTRASONICS SIMPOSIUM, 1996. Proceedings,

Piscataway: IEEE, 2002. V. 1, p. 665-671.