Modelo de Rotação de Amostras Agrícolas Tridimensionais Utilizando Quatérnios e Dispositivo Não Convencional de Realidade Virtual

July 12, 2017 | Autor: Leonardo Botega | Categoria: Realidade Virtual, Three Dimensional, Agricultural Soil
Share Embed


Descrição do Produto

Modelo de Rotação de Amostras Agrícolas Tridimensionais Utilizando Quatérnios e Dispositivo Não Convencional de Realidade Virtual Leonardo C. Botega Departamento de Computação Universidade Federal de São Carlos [email protected]

Paulo E. Cruvinel Embrapa Instrumentação Agropecuária Empresa Brasileira de Pesquisa Agropecuária [email protected]

Abstract

Dentre as técnicas utilizadas, destaca-se a tomografia computadorizada (TC) de raios X, que se sobressai em relação às demais técnicas aplicadas na física de solos, como a gravimétrica e a sonda de nêutrons [1][2], devido à sua precisão na extração de atributos físicos, como densidade e umidade, e pela característica de possibilitar o exame de amostras de solo de forma não destrutiva [3] [4] [5] [6] [7] [8] [9] [10] [11]. Outra vantagem oferecida pela tomografia computadorizada em relação às demais, é a possibilidade de fazer-se uso, após uma reconstrução tridimensional, de ferramentas de visualização utilizando técnicas de Realidade Virtual, para auxiliar a investigação não invasiva dos fenômenos físicos que ocorrem no solo, através de processos imersivos e interativos. Dentre tais técnicas, destaca-se o uso de dispositivos não convencionais de entrada de dados, destinados à manipulação direta de amostras agrícolas e à navegação do usuário na cena sintética (manipulação de câmeras). Tais operações de movimento baseiam-se em mudança de posição e orientação das entidades que compõem um ambiente virtual e usualmente utilizam o sistema de parametrização de Euler, o que acarreta em problemas de representação dos dados tridimensionais durante as rotações. Este trabalho apresenta como objetivo a implementação de um modelo de conversão e aplicação do sistema de parametrização de Quatérnios sobre processos de manipulação de amostras agrícolas, reconstruídas em 3-D, visando contribuir com procedimentos de visualização e análise não invasiva de tais amostras, onde se busca explorar por completo diversos atributos da representação tridimensional.

The present work aims the implementation and representation of the concept of three-dimensional rotations by quatenions, applied over tomographic images of reconstructed agricultural soil samples. Hence, three-dimensional portions of agricultural soil, submitted to non conventional manipulation by a data glove, has its parameterization system converted and implemented, with the main goal of circumvent the issues of Euler representation and allow the execution of smooth and intuitive scene rotations, and consequently, a better sample exploration.

Resumo O presente trabalho visa a implementação e representação do conceito de rotações tridimensionais por quatérnios, aplicado sobre imagens tomográficas de amostras de solos agrícolas reconstruídas. Desta maneira, porções tridimensionais de solos agrícolas, submetidas à manipulação não convencional por uma luva de dados, têm seu sistema de parametrização convertido e implementado, com o principal objetivo de contornar as deficiências da representação por Euler e possibilitar a execução de rotações suaves e intuitivas na cena virtual, e consequentemente, uma melhor exploração das amostras.

1. Introdução Avaliando a evolução que vem ocorrendo na área de física de solos, percebe-se o crescente interesse da comunidade científica para o desenvolvimento e aplicação de técnicas não invasivas para o estudo de características do solo.

O modelo busca ainda prover ao usuário, respostas reais e intuitivas das entidades tridimensionais à interação dos dispositivos não convencionais ao se realizar operações de manipulação, baseando-se em interpolação de orientações.

1.2. Ângulos de Euler A forma mais conhecida e pratica de se representar orientações no domínio tridimensional baseia-se em fornecer suas orientações aos eixos x, y e z sobre um ângulo determinado, compondo os parâmetros da chamada rotação por ângulos de Euler. A priori, o uso de ângulos de Euler parece resolver todo o contexto, entretanto, há uma série de problemas [12][13]. 1.2.1. Rotações não comutativas. Primeiramente é necessário destacar que as rotações, ao contrário das translações, não comutam. Em outras palavras, pode-se representar um deslocamento de um modelo através de somas de vários outros deslocamentos. Já para representar rotações, tal abordagem torna-se errônea, pois a ordem em que as rotações são aplicadas sobre os modelos influencia diretamente o resultado final das orientações [12][14][15]. Aparentemente, o uso de ângulos de Euler parece não causar problemas, uma vez que parece intuitivo pensar que ao determinar uma ordem fixa de rotações o problema estaria resolvido. Realmente, se este fosse o único objetivo de um sistema de RV controlado por dispositivos não convencionais, o uso de orientações fixas provavelmente resolveria a questão, entretanto, o problema encontra-se nas orientações mutáveis. Em diversas ocasiões, não desejamos saltar de uma orientação para outra, e sim alterar pouco a pouco a representação para executar de forma suave uma operação de rotação mais abrangente. Sob este novo paradigma, os ângulos de Euler apresentam dois problemas principais. 1.2.2. Perda de graus de liberdade (Gimbal Lock) Existe um fenômeno indesejado com o qual desenvolvedores de RV se defrontam constantemente ao representar suas entidades e suas respectivas orientações utilizando ângulos de Euler, onde graus de liberdade são perdidos ao se executar determinadas combinações de rotações. Tal efeito é chamado Gimbal Lock [12][13][16].

Uma alternativa seria simplesmente representar a orientação através de uma matriz de rotação com relação à posição inicial e simplesmente multiplica-la por cada nova rotação aplicada ao modelo representado. Tal abordagem seria falha, pois como são utilizadas matrizes 3x3 para representar três graus de liberdade, dados redundantes seriam armazenados, assim, sucessivas multiplicações acumulariam erros, fazendo com que o resultado final seja errôneo, deixando até mesmo de ser uma rotação. Tal problema poderia ser resolvido normalizando-se as matrizes a cada final de ciclo, entretanto, isso acarretaria mais custo computacional e imprecisões. Uma outra abordagem é recalcular os três ângulos de Euler a cada pequena rotação. Contudo, esses novos ângulos não se associam com os ângulos antes da rotação, uma vez que para girar em torno de um eixo, em algumas situações é necessário executar uma rotação prévia sobre outro eixo. Desta maneira, próximos aos pontos de Gimbal Lock haveria saltos imprevistos. Finalmente, a solução definitiva encontra-se em um sistema de representação em que as operações de rotação possam ser executadas de forma natural sob eixos aleatórios. 1.2.3. Interpolação Outro grande problema do uso de ângulos de Euler encontra-se na interpolação de orientações, ou seja, a geração de valores intermediários entre duas outras rotações dadas. Mesmo que o Gimbal Lock não ocorra, não é nada intuitivo fazer com que um modelo execute um determinado caminho suave entre duas orientações [12]. Ao trabalhar com ângulos de Euler, a interpolação aplicada a cada um dos ângulos de rotação produzirá rotações independentes em torno desses eixos, ao invés de movimentos complementares [17]. No caso do Gimbal Lock não ocorrer, o produto final poderá até ser o correto, entretanto, as orientações intermediárias não o são. Se o sistema adotado for a interpolação linear, serão produzidos movimentos estranhos e imprevisíveis. Dadas duas posições no espaço tridimensional, existe uma infinidade de curvas que as ligam. O modelo 3-D poderia então traçar um caminho aleatório até chegar ao destino, entretanto, no caso de transição entre duas orientações, é indesejável que tal fenômeno aconteça. A solução para este caso configura-se através de rotação simples ao redor de um único eixo, ou seja, dadas duas orientações, executa-se uma interpolação

linear simples no ângulo de rotação em torno de um eixo adotado. Tal eixo não necessariamente existe e a parametrização de Euler não realiza de forma alguma, rotações sobre eixos arbitrários. O ideal é realizar rotações sobre eixos adequados e não seguindo caminhos arbitrários. Algebricamente, seja um ponto no ℜ3 representado  por um vetor r = (rx , ry , rz ) e seja ρ  uma rotação antiθ ,n

horária de um ângulo θ em torno de um eixo que intercepta a origem definido por um vetor unitário  n = (nx , ny , nz ) . Deseja-se determinar uma expressão para ρ ( r ) , ou seja, para o vetor que representa o ponto  obtido após aplicar em r a rotação ρ . Assim o ponto resultante da realização de uma   rotação ρ (θ , n) em um ponto r é: 





ρ (r ) = (cos θ )r +

(1.1)

     (1 − cos θ )(n ⋅ r )n + ( senθ )(n × r )

1.4. Rotações utilizando Quatérnios O ponto r = (rx , ry , rz ) sobre o qual é aplicada uma  rotação é representado pelo quatérnio p = (0, r ) tendo a  parte real nula e a rotação aplicada sobre o ponto r é  representado por um quatérnio q = ( s, v) [12][19]. Desta maneira, a rotação de p por q pode ser expressa da forma: 

Rq ( p ) = qpq −1

(1.5)

Rq ( p) = qpq

(1.6)

ou

sendo que q é unitário e seu inverso é igual a seu conjugado. Assim temos que:    qpq = ( s, v)(0, r )( s, −v) =          (0, s 2 r − (v ⋅ v)r + 2(v ⋅ r )r + 2 sv × r )

(1.7)

Como q = ( s, v) é unitário, temos que s 2 + v 2 = 1 , ou 

1.3. Quatérnios Um quatérnio é definido por um conjunto de quatro números reais usualmente chamados de a, b, c e d. De forma semelhante à representação dos números complexos, os quatérnios são compostos também por uma parte imaginária, chamados de i, j e k [12][18]. Assim, um quatérnio é um conjunto da forma q = (a,b,c,d) ou, q = a + bi + cj + dk

  q = ( s, v) = (cos θ , sen θ n),

 n =1

(1.8)

         qpq = (0, s 2 r − (v ⋅ v) r + 2(v ⋅ r ) r + 2sv × r )       (1.9) = (0, (cos 2θ )r + (1 − cos 2θ )( n ⋅ r )n + ( sen2θ ) n × r )

(1.2)

Pode-se também expressar um quatérnio de forma condensada:  (1.3) q = ( s, v) onde s é um escalar que representa a parte real e  v = (vx , v y , vz ) é um valor de três componentes que representam a parte imaginária. A relevância da utilização de quatérnios para aplicar rotações em modelos tridimensionais reside nas operações de multiplicação [12], onde se pode notar que o produto de dois quatérnios q1 e q2 é representado por:   q1q2 = ( s1 , v1 )( s2 , v2 ) =       ( s1s2 − v1 ⋅ v2 , s1 v2 + s2 v1 + v1 × v2 )

seja, sempre existe um ângulo θ tal que s = cos θ e  v = sen θ . Assim temos que:

Desta maneira, para compor uma combinação de duas rotações representadas por q1 e q2 aplica-se: Rq 2 ( Rq1 ( p)) = Rq 2 (q1 pq1 ) = q2 q1 pq1 q 2 = q3 pq4

(1.10)

Assim, pode-se concluir que a composição de rotações pode ser realizada de maneira natural pela simples álgebra dos quatérnios, ou seja, com dois quatérnios unitários e seus respectivos ângulos e eixos distintos, pode-se representar uma rotação pela multiplicação dos mesmos.

2. Materiais e Métodos (1.4)

Para a implementação do modelo de conversão e aplicação do método de Quatérnios sobre uma amostra agrícola tridimensional, foi utilizada a linguagem de programação Java e a API Java3D.

Tal modelo se divide em três principais etapas: mapeamento da posição e orientação da luva de dados, conversão do sistema de parametrização de Euler para Quatérnios e a aplicação da rotação desejada nas entidades da cena sintética. A Figura 1 apresenta um diagrama da visão geral do modelo. 2. Conversão do sistema de parametrização

1. Mapeamento da luva de dados

3. Rotação das entidades

Figura 1 – Visão geral do modelo de rotação

2.1. Mapeamento da luva de dados O dispositivo não convencional de entrada de dados empregado é a luva de dados P5Glove do fabricante Essential Reality. Tal dispositivo pesa 128 gramas e possui compatibilidade mouse-like. Quando utilizada sem qualquer programação envolvida, apresenta a mesma interface (USB 1.1) de um mouse comum sob os sistemas operacionais Windows/Linux/Macintosh, o que lhe isenta do uso de cabos de energia. A P5Glove também apresenta em sua estrutura, sensores de dobra localizados nos dedos, responsáveis por identificar os movimentos de clique, bem como ações de segurar uma amostra no ambiente sintético, a fim de prover a total exploração da mesma. Tais sensores podem ter seus parâmetros customizados através de uma API chamada Dualmode, a qual fornece subsídios para a implementação de todos os procedimentos que envolvem o funcionamento do dispositivo [17]. Seu funcionamento baseia-se em um sistema de rastreamento óptico com dois receptores fotossensíveis em sua torre, os quais realizam a correlação dos raios de luz enviados pelos oito LED’s emissores presentes na luva, para determinar a posição e orientação do dispositivo no espaço real de coordenadas, possibilitando a conversão para o espaço virtual. Para realizar o mapeamento de posicionamento e orientação da luva de dados, sob seis graus de liberdade, foi desenvolvida uma classe, derivada de Dualmode, capaz de tratar os sinais de hardware, interpretados pelo driver fornecido pelo fabricante.

Primeiramente, na implementação desta classe de mapeamento, devem ser configuradas as constantes de inicialização do dispositivo, tais como: o filtro de dados utilizado, a precisão de leitura e o algoritmo de predição de movimentos utilizado, instanciados como filtro de média, precisão máxima e predição nula, respectivamente. Adicionalmente, todos os limites de translação e rotação são definidos, os quais informam a partir de que ponto o dispositivo está perto, longe, à esquerda, à direita, acima ou abaixo da torre de recepção, além dos ângulos mínimos que definem a inclinação dos três eixos cartesianos (x, y, z). A partir de tais limites mínimos, foram desenvolvidos os métodos para o mapeamento da posição e orientação da luva de dados, uma vez que a posição real no espaço é definida pelo sinal correlacionado pela torre de recepção e interpretado pelo driver do dispositivo. Assim, através de instâncias que armazenam a atual leitura para cada um dos seis graus de liberdade, tal valor é comparado aos limites estabelecidos, qualificando a orientação e posição real do dispositivo, armazenados em variáveis.

2.2. Conversão do sistema de parametrização Após a definição dos graus de liberdade do dispositivo, as variáveis que apresentam tais valores são então testadas quanto à sua ocorrência, ou seja, qual das orientações e posições o algoritmo armazenou. Definida a variável, ocorre então a chamada à classe de conversão, utilizando como parâmetros um ponto, sobre o qual será traçado um determinado eixo, em torno do qual um ponto no espaço irá rotacionar, sob um determinado ângulo de rotação. Tais parâmetros são definidos pela atual posição da luva, representado por um eixo que passa pela origem e atinge o centro do dispositivo, e um passo angular, definido como constante na inicialização. Desta maneira, a conversão ocorre de acordo com o Pseudocódigo 1, o qual fornece as partes escalar e vetorial do quatérnio. Begin Nova rotação = seno (passoAngular/2) q1.x = rotação * eixoLuva_1; q1.y = rotação * eixoLuva_2; q1.z = rotação * eixoLuva_3; q1.w = cos (passoAngular/2); End.

Pseudocódigo 1 – Representação da conversão Euler-Quatérnios

2.3. Rotação das entidades Após a conversão do sistema de parametrização da base Euler para Quatérnio e a criação do eixo intermediário, realiza-se a rotação propriamente dita. Para tal ação, uma nova matriz de transformação é criada à medida que uma nova rotação por quatérnio é efetuada, considerando o efeito comutativo desse sistema de parametrização. Assim, cada nova matriz, representada pelo nodo Transform3D do pacote javax.media.j3d, é associada a um método setRotation, cujo parâmetro é justamente a chamada a um quatérnio. Tal chamada por sua vez, através dos parâmetros vetoriais e escalar, respectivamente, fornece ao setRotation as coordenadas para a nova rotação. A cada nova orientação a ser aplicada, o resultado da matriz anterior é multiplicado à nova matriz, para assim compor um conjunto de rotações e efetuar uma interpolação natural. O Pseudocódigo 2 apresenta a aplicação dos termos do quatérnio à matriz de transformação. Begin matrizTransformacao[0] = (1.0 - 2.0*q1.y*q1.y 2.0*q1.z*q1.z)*scalas[0]; matrizTransformacao 4] = (2.0*(q1.x*q1.y + q1.w*q1.z))*scalas[0]; matrizTransformacao [8] = (2.0*(q1.x*q1.z q1.w*q1.y))*scalas[0]; End; Begin matrizTransformacao [1] = (2.0*(q1.x*q1.y q1.w*q1.z))*scalas[1]; matrizTransformacao [5] = (1.0 - 2.0*q1.x*q1.x 2.0*q1.z*q1.z)*scalas[1]; matrizTransformacao [9] = (2.0*(q1.y * q1.z + q1.w * q1.x))*scalas[1]; End; Begin matrizTransformacao [2] = (2.0*(q1.x*q1.z + q1.w*q1.y))*scalas[2]; matrizTransformacao [6] = (2.0*(q1.y*q1.z q1.w*q1.x))*scalas[2]; matrizTransformacao [10] = (1.0 - 2.0*q1.x*q1.x 2.0*q1.y*q1.y)*scalas[2]; End;

Pseudocódigo 2 – Aplicação do quatérnio na matriz de transformação

3. Resultados Para a obtenção dos resultados, foi utilizada uma amostra agrícola de solo degradado, reconstruída com um algoritmo paralelo [18]. Tal amostra foi então

importada a uma interface Java e submetida aos processos descritos no modelo. Assim, a amostra foi submetida a três processos de mudança de orientação de 180º, divididas em etapas de 45º, onde pontos específicos das amostras (posicionadas inicialmente na origem dos eixos) rotacionam em torno de três eixos intermediários, representados pelas linhas pontilhadas, os quais passam pela origem das coordenadas e atingem a posição de três das oito LED’s da luva de dados. A Tabela 1 e a Figura 2 apresentam os resultados, visuais e matemáticos respectivamente, de uma rotação de 180º dividida em quatro outras rotações intermediárias, considerando a posição de uma LED = (-1,0, 1,0, 0,0) como o ponto pelo qual o eixo irá passar, a origem dos eixos (0, 0, 0) como o ponto que irá rotacionar em torno do eixo, e a posição inicial da amostra em um ponto específico = (0, 0, 0). A Tabela 2 e Figura 3 apresentam outros resultados, também visuais e matemáticos, de uma rotação de 180º dividida em quatro outras rotações intermediárias, considerando a posição inicial de uma LED = (1,0, 1,0, 0,0) como o ponto pelo qual o eixo vai passar, a origem dos eixos (0, 0, 0) como o ponto que irá rotacionar em torno do eixo, e posição da amostra em um ponto específico = (0, 0, 0). A Tabela 3 e Figura 4 apresentam os resultados de uma última rotação de 180º também dividida em quatro outras rotações intermediárias, considerando a posição inicial do LED = (0,0, 1,0, 0,0) como o ponto pelo qual o eixo vai passar, a origem dos eixos (0, 0, 0) como o ponto que irá rotacionar em torno do eixo, e a posição inicial da amostra em um ponto específico = (0, 0, 0). Tabela 1 - resultado de uma rotação de 180º, considerando a posição inicial da LED = (-1,0, 1,0, 0,0), à partir da origem dos eixos (0, 0, 0) e da posição inicial da amostra em um ponto específico = (0, 0, 0). Posição Inicial (ponto da amostra) (0,0, 0,0, 0,0) (-0,70, 0,70, 0,0) (-0,99, 0,99, 0,0) (-1,29, 1,29, 0,0)

Quatérnios vetor: (0,0, 0,0, 0,0), escalar: 0,92 vetor: (-0,27, 0,27, 0,0), escalar: 0,92 vetor: (-0,38, 0,38, 0,0), escalar: 0,92 vetor: (-0,49, 0,49, 0,0), escalar: 0,92

Posição Final (ponto da amostra) (-0,70, 0,70, 0,0) (-0,99, 0,99, 0,0) (-1,29, 1,29, 0,0) (-1,68, 1,68, 0,0)

Tabela 2 - Resultado de uma rotação de 180º, considerando a posição inicial da LED = (1,0, 1,0, 0,0), à partir da origem dos eixos (0, 0, 0) e da posição inicial da amostra em um ponto específico = (0, 0, 0). Posição Inicial (ponto da amostra) (0,0, 0,0, 0,0) (0,70, 0,70, 0,0) (0,99, 0,99, 0,0) (1,29, 1,29, 0,0)

Quatérnios vetor: (0,0, 0,0, 0,0), escalar: 0,92 vetor: (0,27, 0,27, 0,0), escalar: 0,92 vetor: (0,38, 0,38, 0,0), escalar: 0,92 vetor: (0,49, 0,49, 0,0), escalar: 0,92

Posição Final (ponto da amostra) (0,70, 0,70, 0,0) (0,99, 0,99, 0,0) (1,29, 1,29, 0,0) (1,68, 1,68, 0,0)

Figura 3 – Representação da rotação descrita em torno do eixo pontilhado definido pela coordenada da LED = (1.0, 1.0, 0.0) passando pela origem dos eixos

Tabela 3 - Resultado de uma rotação de 180º, considerando a posição inicial da LED = (0,0, 1,0, 0,0), sendo a origem dos eixos (0, 0, 0) e a posição inicial da amostra em um ponto específico = (0, 0, 0). Posição Inicial (ponto da amostra) (0,0, 0,0, 0,0) (0,0, 0,70, 0,0) (0,0, 0,85, 0,0) (0,0, 0,92, 0,0)

Quatérnios vetor: (0,0, 0,0, 0,0), escalar: 0,92 vetor: (0,0, 0,27, 0,0), escalar: 0,92 vetor: (0,0, 0,32, 0,0), escalar: 0,92 vetor: (0,0, 0,35, 0,0), escalar: 0,92

Posição Final (ponto da amostra) (0,0, 0,70, 0,0) (0,0, 0,85, 0,0) (0,0, 0,92, 0,0)

Figura 4 – Representação da rotação descrita em torno do eixo pontilhado definido pela coordenada da LED = (0.0, 1.0, 0.0) passando pela origem dos eixos

(0,0, 0,95, 0,0)

Figura 2 – Representação da rotação descrita em torno do eixo pontilhado definido pela coordenada da LED = (-1.0, 1.0, 0.0) passando pela origem dos eixos

Os resultados apresentados pelas Tabelas 1,2 e 3, e pelas Figuras 2,3 e 4 apresentaram novos quatérnios unitários cuja parte imaginária é um vetor na direção e sentido do eixo da rotação resultante, e a parte real o cosseno do ângulo de rotação. Assim, pôde-se realizar rotações bem definidas de 180º divididas em 4 etapas cada, interpoladas em torno do eixo pontilhado, seguindo a direção e sentido determinadas pelo menor ângulo entre o ponto de partida atual e a orientação final. Para os casos analisados, caso a rotação de 180º fosse interpretada como uma rotação única, abordagem de adotar um sentido de rotação de acordo com o menor ângulo até chegar à orientação destino, neste caso seria falha, uma vez que a distância nos dois sentidos seria a mesma. Desta maneira, uma solução seria pré-determinar uma direção e sentido, como por exemplo, uma orientação positiva no grau de liberdade de rotação x (pitch).

Tais resultados também demonstraram a eficiência da comutação de rotações produzidas por quatérnios, onde as três rotações de 180 graus puderam ser compostas pela multiplicação de quatro outras rotações de ângulos menores e que a transposição de uma orientação para outra ocorreu de forma suave, sem a ocorrência de saltos ou caminhos arbitrários, compondo uma interpolação de maneira intuitiva. Adicionalmente, não houve perda com relação aos graus de liberdade, independente da ordem de execução e do eixo adotado nas rotações.

4. Conclusões Foi proposto um modelo de implementação de rotações tridimensionais de amostras agrícolas reconstruídas e manipuladas por dispositivo não convencional de entrada de dados, utilizando o sistema de parametrização por quatérnios. Desta maneira, a adoção de eixos intermediários para executar rotações, mapeadas de movimentos de luvas de dados, sobre modelos tridimensionais, foi verificada como alternativa viável para sistemas interativos de Realidade Virtual dedicados à análise não invasiva de amostras de solos tridimensionais. Tal fato foi considerado uma vez que qualquer orientação pôde ser alcançada e qualquer caminho para as mesmas pôde ser adotado, tornando irrestrita a movimentação de luvas de dados e tornando a experiência mais realista.

5. Referências . [1] C. F. A. Teixeira, S. O. Moraes, and M. A. Simonete. Desempenho do tensiômetro, tdr e sonda de nêutrons na determinação da umidade e condutividade hidráulica do solo. Revista Brasileira de Ciência do Solo, 29:161–168, 2005. [2] E. Ferreira, A. S. de Resende, F. Balieiro, L. Zotarelli, L. A. da Silva, M. Bacis, M. A. Alfaro, B. J. R. Alves, and S. Urquiaga. Avaliação de diferentes tubos de acesso para medição da umidade do solo através do uso de sonda de nêutrons. Technical report, Empresa Brasileira de Pesquisa Agropecuária - Agrobiologia, Seropédica - RJ, Novembro 1998. [3] L. Aylmore and J. M. Hainsworth. The use of the computedassisted tomography to determine spatial distributionof soil water content. Australian .Journal Soil Res, 21(4):435–443, 1983. [4] S. Crestana. A Tomografia Computadorizada com um novo método para estudos da física da água no solo. Doutorado, Instituto de Física de São Carlos - Universidade de São Paulo, São Carlos, 1985.

[5] A. Pedrotti, E. A. Pauletto, S. Crestana, P. E. Cruvinel, C.M. P. Vaz, J.M. Naime, and A.Macedo. Tomografia computadorizada aplicada a estudos de um planossolo. Pesquisa Agropecuária Brasileira, 38(7):819–826, jul 2003. [6] P. E. Cruvinel. Minitomógrafo de Raios X e Raios computadorizado para aplicações multidisciplinares. Doutorado, Universidade de Campinas, Campinas, 1987. [7] P. E. Cruvinel, R. Cesareo, S. Crestana, and S. Mascarenhas. X-and -rays computerized minitomograph scanner for soil science. IEEE - Transactions on Instrumentation and Measurement, 39(5):745–750, 1990. IEEE. [8] J. M. Naime. Projeto e construção de um minitomógrafo portátil para estudo de ciência de solo e plantas em campo. Dissertação de mestrado, Escola de Engenharia de São Carlos – Universidade de São Paulo, São Carlos, 1994. [9] J. M. Naime. Um novo método para estudos dinâmicos, in situ, da infiltração da água na região não-saturada do solo. Tese de doutorado, Escola de Engenharia de São Carlos, Universidade de São Paulo, São Carlos, SP, Brasil, 2001. [10] Á. Macedo. Construção e uso de um tomógrafo com resolução micrométrica para aplicações em ciências do solo e do ambiente. Tese de doutorado, Escola de Engenharia de São Carlos, São Carlos, 1997. [11] Á. Macedo, C. Vaz, J. Pereira, J. Naime, P. Cruvinel, and S. Crestana. Wood density determination by x-and gammaray tomography. International Journal of the Biology, Chemistry, Physics and Technology of Wood, 56:535–540, 2002. [12] S. C. de Biasi, M. Gattass. Utilização de quatérnios para representação de rotações em 3-D. Relatório técnico, TecGraf – Pontifícia Universidade Católica do Rio de Janeiro, PUCRIO. Disponível em , 2007. [13] L. Dorst, D. Fontijne, S. Mann. Geometric Algebra for Computer Science – An Object Oriented Approach to Geometry. Morgan Kaufmann Publishers, p.167-190, Amsterdam, 2007. [14] L.C. Botega, P.E. Cruvinel. Three-Dimensional Soil Physics Image Analysis based on a Virtual Reality Environment. IX Symposium on Virtual Reality, Petrópolis, 2007. [15] L.C. Botega, P.E. Cruvinel. Desenvolvimento de Ambiente de Realidade Virtual para Análise de Solos Agrícolas. Workshop de Realidade Virtual e Aumentada, Itumbiara, 2007. [16] L.C. Botega. Análise de Imagens Tomográficas da Ciência do Solo em Ambiente de Realidade Virtual.

Dissertação de mestrado. Universidade Federal de São Carlos, São Carlos, 2008. [17] K. A. Stroud , Dexter Booth. Vector Analysis. Industrial Press, 2005. [18] A. S. Hardy. Elements of Quaternions. Historical Math Monographs. Cornell University Library. Disponível em , Boston, 1987. [19] R. H. William. Elements of Quaternions. University of California Library Collection.

[20] C. Kenner. Essential reality p5glove sumary: Dual mode driver programming. Disponível em , 2007. [21] M. F. L. Pereira. Um modelo de reconstrução tomográfica 3D para amostras agrícolas com filtragem de Wiener em processamento paralelo. Tese de Doutorado. Universidade de São Paulo. São Carlos, 2007.

Lihat lebih banyak...

Comentários

Copyright © 2017 DADOSPDF Inc.