desenvolvimento de software de realidade virtual para ... r. c... · desenvolvimento de software de...
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.
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.