Construção de u sistea de Realidade Virtual (1 a Parte) O Engine Físico Roberto Scalco, Fabrício Martins Pedroso, Jorge Tressino Rua, Ricardo Del Roio, Wellington Francisco Centro Universitário do Instituto Mauá de Tecnologia (CEUN-IMT) Escola de Engenharia Mauá (EEM) Praça Mauá, 1 CEP 09580-900 São Caetano do Sul SP Brasil Neste artigo apresenta-se u projeto, desenvolvido por alunos da 6 a série ênfase Coputação do curso de Engenharia Elétrica da Escola de Engenharia Mauá, que perite a siulação de u passeio ciclístico utilizando a Realidade Virtual. Os sentidos do ciclista serão estiulados tanto pela visão coo pela reação de u otor acoplado na roda traseira da bicicleta. 1. DISPOSITIVO DE INTERAÇÃO HOMEM-MÁQUINA O projeto do dispositivo de interação e Realidade Virtual, ou seja, do dispositivo que interliga o undo virtual co o usuário, gerando e fazendo a aquisição de seus estíulos, utiliza ua bicicleta coo eio de navegação no undo virtual, coo pode ser observado na Figura 1. Figura 1 Motor acoplado ao suporte de treino
2. INTRODUÇÃO À REALIDADE VIRTUAL A Realidade Virtual visa integrar coponentes que siule estíulos diretaente ligados aos sentidos de visão, audição e tato. No projeto, a visão é estiulada pela representação gráfica do undo virtual nu óculos 3D (ou nu onitor de vídeo) e o tato perite ao usuário perceber sensações de resistência à força, oviento e peso, para tornar essa realidade tão natural quanto a do undo real. Figura 1 Dispositivo HMD da emagin odelo Z800 3DVisor Co base nesse conceito, foi desenvolvido o Passeio Ciclístico Virtual, ua aplicação de Realidade Virtual para o entreteniento. Ua bicicleta acoplada a u suporte de treino, junto ao otor e a alguns sensores, foi utilizada coo interface hoe-áquina (IHM), peritindo a navegação nu abiente virtual exibido por u dispositivo Head Mounted Display (HMD). Confore a pessoa interage co undo, o otor é acionado para aplicar ais ou enos força no pedal, siulando subidas e descidas, enquanto o HMD exibe duas iagens, leveente diferentes para cada olho, peritindo elhor percepção de profundidade. Esse dispositivo torna o custo do projeto uito alto; por isso pode ser substituído por u onitor convencional, apenas para exibir ua iage do undo virtual.
Figura 2 Ponto de vista do usuário 3. ELEMENTOS DO PROJETO O eleento central do projeto consiste de u PIC 16F877A que atua coo ponte entre o engine físico e os eleentos sensores e atuadores. Dos eleentos ligados diretaente à bicicleta, teos u potenciôetro para edir o ângulo do guidão, u sensor foto-sensível associado a u encoder para edir a velocidade da roda traseira e u otor, acionado a favor ou contra o oviento da roda, fazendo-a girar livreente nua descida ou obrigando o usuário a aplicar ais força durante ua subida. 1 40 2 39 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 PIC 16F877A 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 19 22 20 21 Figura 3 Diagraa de fluxo de dados do projeto
Tanto as inforações lidas dos sensores coo as enviadas ao otor são processadas pelo coputador, ou seja, deve ser estabelecida ua counicação serial, utilizando-se o padrão RS232, entre o PIC e o coputador. Os detalhes sobre a leitura dos dados dos sensores e o acionaento do otor serão apresentados no próxio artigo. 4. COMPUTAÇÃO GRÁFICA A odelage do abiente virtual tridiensional foi desenvolvida co base no aplicativo Autodesk 3DS Max 8. Desse odelo são extraídos seus vértices e faces, peritindo que seja desenhados na tela pelo sistea de Realidade Virtual desenvolvido, utilizando-se para tanto a biblioteca gráfica OpenGL 1. Outra inforação fundaental do extraída odelo são os vetores norais à pista. Eles são responsáveis por inforar ao engine físico (responsável pelos cálculos de posição, velocidade e aceleração da bicicleta) se a pessoa se encontra nu plano horizontal ou inclinado. São sepre unitários ( n =1) analisado. e perpendiculares ao plano n Figura 4 Representação do vetor noral de u plano Depois de encainhado o vetor noral para o engine físico, o sistea de Realidade Virtual recebe a posição futura da bicicleta, recalculando toda a cena para aquele próxio ponto de vista, gerando sensação de ovientação no abiente virtual. 1 Curso de OpenGL disponível e: <http://geocities.yahoo.co.br/oswirad>
5. ENGINE FÍSICO O engine físico é o sistea responsável por processar as inforações obtidas pela interação do usuário, adicionando-lhe os fenôenos físicos do undo real. As entradas desse sistea são: a velocidade iposta pelo ciclista ou pelo otor ao siular ua descida; o ângulo do guidão. O engine físico envia dados para o sistea de controle (PIC) e para o sistea gráfico, fazendo co que o usuário possa perceber: a resposta dada pelo otor que acelera ou freia a roda traseira; a representação da bicicleta no sistea gráfico; o ângulo do guidão no sistea gráfico; a velocidade da bicicleta ao se observare as rodas ou a paisage. 5.1. Representação Mateática da Bicicleta Para traduzir os fenôenos físicos para o sistea de siulação é necessário representar a bicicleta vetorialente. A Figura 6 ostra que a bicicleta é representada por dois vetores: o corpo da bicicleta b e, coplanar a ele, a direção do guidão c. Figura 5 Representação vetorial da bicicleta (vista superior)
5.2. Modelo Físico A responsabilidade principal desse odelo é a de calcular a posição da bicicleta a cada iteração do processaento. O odelo entende que: =. Sua a bicicleta é u corpo de assa e co velocidade inicial nula ( v 0) posição x é representada pelo o centro do guidão; a força do oviento F é a soa da força aplicada pelo ciclista co a aplicada pelo otor; a força noral ao plano N, e qualquer ponto da pista, é sepre considerada suficiente para anular a coponente da força peso P e sua direção. 0 A ovientação da bicicleta é deterinada, a cada iteração, executando os seguintes passos: Cálculo do intervalo de tepo entre as iterações A cada iteração é calculado o intervalo de tepo desde a últia iteração válida. Esse valor é obtido pela diferença entre dois instantes de tepo do relógio do coputador. Para que não ocorra erros relacionados à divisão por zero, apenas são utilizadas as iterações co t 0, 01s. t Mudança do vetor do guidão c Para odificar o vetor do guidão, seria necessário calcular a diferença entre o ângulo θ do guidão e o ângulo lido anteriorente. Isto causaria u acúulo de erros devido ao cálculo da diferença. Para evitar esse erro, o vetor c não é odificado pela diferença, as é recalculado co base e b. A cada iteração, o vetor b é girado de u ângulo θ, e relação ao vetor noral n da posição X, e o resultado é arazenado coo o novo vetor c. Leitura da velocidade e aplicação da força de oviento
A cada iteração é lida ua velocidade v do sistea de controle. A partir dessa velocidade calcula-se a força F para que possa ser considerada no cálculo da força resultante. Para isso, é utilizada a expressão: v v a = = t Co a aceleração calculada, pode-se obter F utilizando-se a segunda lei de ϖ Newton, = a. Essa força é aplicada na direção do vetor do guidão, dada pela F v t anterior divisão do vetor c pelo seu ódulo. F = F c c analisado; Cálculo da força resultante F r da bicicleta A força resultante é obtida do soatório das forças aplicadas na bicicleta. F = F r + P + N + F Sendo: P = ( b + c ) g, que considera a assa da bicicleta e do ciclista; N = P cos ϕ, força aplicada na direção noral ao plano no ponto ( ) n ϕ o ângulo entre as direções de P e N ; = µ N é o ódulo da força de atrito e relação ao solo, aplicada no plano F at das forças atuantes e de direção contrária a do oviento. Foi adotado µ =0, 01; at
Figura 6 Deterinação da força resultante da bicicleta Coo restrição, se o ângulo forado entre a força resultante e o vetor do guidão for superior a 90 é atribuído o valor zero à força resultante. Dessa aneira, e vez de a bicicleta se over para trás, peranecerá parada. Essa siplificação foi necessária para se evitare probleas co o otor. F Cálculo da aceleração da bicicleta: a = r. Apenas é considerada a aceleração no plano vertical que conté a direção a bicicleta b. Cálculo da velocidade da bicicleta: v = v anterior + a t expressão: Cálculo da posição da bicicleta no plano de oviento Para deterinar a próxia posição da bicicleta no abiente virtual, utiliza-se a As posições X e coordenadas da bicicleta. X novo = X + v a t t + 2 X novo são pontos no espaço tridiensional, possuindo as três Ebora a aceleração não seja constante durante todo o oviento, essa expressão pode ser utilizada, pois os dois instantes de tepo e que as grandezas fora 2
analisadas e calculadas são uito próxios. Dessa fora, a aproxiação apresenta bons resultados. Os efeitos da aceleração centrípeta são siplificados pela rotação do vetor definido pelos pontos X e ângulo dessa rotação é o ângulo do guidão θ. X novo e relação ao vetor noral n do plano. O Co a nova posição calculada deve-se calcular o ângulo α entre o vetor da direção da bicicleta b e a direção do eixo z. Esse ângulo perite classificar a região da pista onde a bicicleta está: nua subida, se α 89, 75 ; nua descida, se α 90, 25 ; nu plano horizontal, caso contrário. Se α revelar que a bicicleta está nua subida, o feedback de subida é acionado e o sistea de controle aciona o otor para que esse ipria u torque contra o usuário. Se α revelar que se trata de ua descida, o feedback de descida é acionado e o sistea de controle acelera o otor para que o usuário tenha a sensação de descida. 6. CONSIDERAÇÕES FINAIS Neste prieiro artigo pudeos ver coo a Física está diretaente ligada às grandezas que podeos edir e controlar. Pode-se notar que o engine físico é u iportante eleento do processo, ebora o PIC atue coo interface entre os periféricos e a CPU. Os eleentos sensores e o otor serão tratados no próxio artigo. Alé disso, coo o enfoque deste artigo não é a representação das iagens geradas, o prograa que realiza a counicação co o PIC, executa os cálculos de Física e exibe as iagens no onitor está disponível no sítio da revista. O prograa foi desenvolvido utilizando-se o abiente Delphi 6.0.
Anexos (quadros copleentares) Para o cálculo das grandezas físicas, os vetores fora representados co ua seta sobre o noe da variável, por exeplo F r. Mateaticaente, esses vetores possue três coponentes, cada u associado a ua direção: X, Y e Z. Do ponto de vista coputacional, utilizaos variáveis indexadas unidiensionais para representar essas listas de valores. Para o cálculo da nova posição da bicicleta, foi necessário utilizar alguas operações do cálculo vetorial: a soa de dois vetores (ou a soa de u ponto e u vetor), a ultiplicação de u vetor por u núero real e a deterinação do ódulo do vetor. Os fluxograas das funções a seguir ostra coo realizar esses cálculos: Soa (u, v) Início Para i 1 até 3 faça Fi Para Soa w Fi w[i] u[i] + v[i] Figura 7 Soa de vetores u ϖ e v
Multiplica_nuero (u, a) Início Para i 1 até 3 faça Fi Para Multiplica_nuero v Fi v[i] a * u[i] Figura 8 Multiplicação de u núero real a pelo vetor u ϖ Modulo (u) Início s 0 Para i 1 até 3 faça Fi Para Modulo sqrt(s) Fi s s + sqr(u[i]) Figura 9 Cálculo do ódulo do vetor u ϖ