Anais do 12O Encontro de Iniciação Científica e Pós-Graduação do ITA – XII ENCITA / 2006 Instituto Tecnológico de Aeronáutica, São José dos Campos, SP, Brasil, Outubro, 16 a 19, 2006. UM SOFTWARE PARA TESTE DOS CONTROLES DE VÔO DO VEÍCULO TRIPHIBIUS EM CENÁRIOS VIRTUAIS Marcos Vinícius Melo Sampaio ITA – Instituto Tecnológico de Aeronáutica Praça Marechal Eduardo Gomes, 50 H8 – C, 304 Vila das Acácias, São José dos Campos – SP CEP 12.228 – 462 Bolsista PIBIC – CNPq [email protected] Adilson Marques da Cunha ITA – Instituto Tecnológico de Aeronáutica Praça Marechal Eduardo Gomes, 50 Vila das Acácias, São José dos Campos – SP CEP 12.228 – 901 [email protected] Resumo. O projeto TRIPHIBIUS consiste num Veículo Experimental capaz de atuar ora como um carro de alta performance, ora como um avião anfíbio. Ele deve poder decolar e pousar em pistas curtas, ter um piloto automático e um sistema de navegação, e operar em diversos tipos de terreno. Buscando diminuir o desperdício de recursos durante as suas fases de ensaio em vôo, desenvolveu-se um Software que visa hospedar com eficiência as manobras realizadas pelo Veículo. Este artigo estuda a viabilidade da substituição da biblioteca gráfica do Cenário Virtual, que atualmente utiliza Java3D, pela GL4Java; a fim de ganhar desempenho e utilizar o Simulador em aplicativos do tipo BROWSER de Internet. Palavras chave: Carro Anfíbio-Voador, Engenharia de Software, Linguagem Java. 1. Introdução O Projeto do Veículo Experimental do Tipo Carro Anfíbio Voador – TRIPHIBIUS tem por objetivo propiciar o desenvolvimento e a construção de um veículo que seja capaz de comportar-se como: 1) um carro confortável e seguro nas estradas; 2) uma aeronave de pequeno porte e de alto desempenho em baixas e médias velocidades, com modernos equipamentos de navegação, comunicação e segurança; e 3) um barco com casco, que permita amerissar e decolar da água. O TRIPHIBIUS deverá ser capaz de transportar, de porta a porta, de uma a quatro pessoas; voar a uma velocidade aproximada de 400 km/h; operar em pistas curtas; permitir o comando interno de abertura ou recolhimento das asas e o prosseguimento da viagem por terra; navegar por lugares alagados como rios, praias ou lagoas; e abrigar-se dentro de uma garagem comum, evitando com isso, despesas de estacionamento. Em caso de viagens longas, condições meteorológicas adversas ou necessidade de pousos intermediários freqüentes, o veículo TRIPHIBIUS poderá transformar-se facilmente de Aeronave em Carro ou Barco, ou vice-versa. O veículo TRIPHIBIUS poderá pousar em pistas curtas, estrategicamente construídas ao lado de estradas; continuar a sua viagem por terra, ou até mesmo decolar de uma outra região qualquer, onde e quando as condições meteorológicas permitirem. Este Projeto representa a continuação e o aperfeiçoamento dos Projetos desenvolvidos em anos anteriores, também com Bolsas do PIBIC, pelos alunos Márcio Endo, Guilherme Dalphian, João Henrique, e Alex Lopes Pereira, este último com Bolsa oriunda do Projeto CNS/ATM – IEC / ITA. Este Projeto parte dos resultados obtidos pelos Bolsistas anteriores e dos Trabalhos Finais da Disciplina de Graduação do ITA CES-63 Sistemas Embarcados, que vem sendo ministrada pelo Prof. Dr. Adilson Marques da Cunha, nos últimos oito anos (1999 - 2006) para os alunos de Graduação dos Cursos de Engenharia Eletrônica e Computação do 5° Ano do ITA. 2. Atividades de capacitação As atividades realizadas no segundo semestre de 2005 visaram à formação e à capacitação do aluno pesquisador na área em que esta pesquisa se encontra inserida: Programação Orientada a Objetos em Java, com destaque para a biblioteca GL4Java. Anais do XII ENCITA 2006, ITA, Outubro, 16-19, 2006. Descreve-se abaixo, resumidamente, algumas das tarefas realizadas durante o primeiro período de atividades. 2.1. Applet DesenhaTriangulos O Applet DesenhaTriangulos, mostrado na Fig. 1, desenha e classifica triângulos de qualquer tipo, a partir de dados de entrada fornecidos pelo usuário. Figura 1. Applet DesenhaTriangulos: Triângulo Escaleno. 2.2. Calculadora A Calculadora, exibida na Fig. 2, utiliza tratamento de eventos e alguns componentes básicos do pacote gráfico Swing, como botões e campos de texto. Figura 2. Calculadora. Anais do XII ENCITA 2006, ITA, Outubro, 16-19, 2006. 2.3. Chat Dois programas constituem o Módulo Chat: um faz o papel de Servidor, mostrado nas Figuras 3 e 4, e o outro de Cliente, Figuras 5 e 6. Além de apresentarem uma interface gráfica mais complexa, eles utilizam recursos muito importantes da Linguagem Java, como os Sockets, capazes de gerar conexões para a transmissão de informações. Figura 3. Servidor: Guia de Mensagens do Servidor. Figura 4. Servidor: Guia de Clientes. Figura 5. Configuração do Cliente. Anais do XII ENCITA 2006, ITA, Outubro, 16-19, 2006. Figura 6. Interface do Cliente. 2.4. Cenário 3D O Módulo Cenário 3D, apresentado na Fig. 7, consiste de um mapa simples feito com recursos da biblioteca GL4Java, como o desenho de formas primitivas e o mapeamento de texturas. Figura 7. Cenário 3D usando GL4Java. 3. Limitações da biblioteca GL4Java O trabalho com a biblioteca OpenGL para Java evidenciou algumas limitações que desencorajaram o seu uso. Dentre elas destacam-se: o nível das funções oferecidas, o limitado suporte a carregamento de objetos no cenário, e a estagnação do desenvolvimento desta API. Esta biblioteca basicamente faz um mapeamento completo do OpenGL 1.2 e do GLU 1.2. Sendo assim, existe a necessidade de manipulação direta de polígonos e matrizes de transformação. Já em interfaces de alto nível, como a desenvolvida pela Sun, trabalha-se com conceitos de grafos de cena e câmeras. Anais do XII ENCITA 2006, ITA, Outubro, 16-19, 2006. Ao contrário do Java3D, que possui carregadores de objetos para os principais formatos – 3DS, OBJ, VRML, X3D, NWN, e FLT –, o GL4Java limita-se a arquivos OBJ. Esta funcionalidade foi desenvolvida por programadores independentes, não sendo, na verdade, um recurso nativo. Programas externos como Wings3D e 3DWin podem converter arquivos em diversos padrões, em particular, arquivos 3DS em OBJ. Dentre as metas da equipe de desenvolvimento encontra-se a implementação de grafos de cena e melhorias na estabilidade, porém, o último release candidate data de dezembro de 2001. Assim, não se pode concluir se eles vão realmente retomar as atividades. Inclusive, o site oficial do projeto [01] está desativado há meses. 4. Análise de desempenho Com o intuito de mensurar a performance das duas interfaces em estudo, realizou-se uma análise de desempenho entre ambas. Para os testes efetuados, utilizaram-se computadores equipados com processadores dos dois maiores fabricantes atuais – Intel e AMD. A Tab. 1 abaixo mostra, com maiores detalhes, suas configurações: Tabela 1. Configurações das máquinas utilizadas na análise. Computador 1 Processador Intel Pentium 4 2.26 GHz Memória 512 MB DDR 400 MHz Placa de Vídeo NVIDIA GeForce4 MX 4000 64 MB Placa Mãe ASUS P4S800D-X Sistema Operacional Microsoft Windows XP SP2 Computador 2 AMD Athlon XP 2200+ 1.79 GHz 384 MB DDR 333 MHz NVIDIA GeForce4 MX 440 64 MB ASUS A7V8X-MX SE Microsoft Windows XP SP1 Ao todo foram feitos três testes em ambientes particulares [02]. O primeiro trabalha com modelos padrões da ferramenta GLUT, Fig. 8. O segundo cria uma cena objetos carregados a partir de arquivos OBJ. Por fim, o terceiro analisa o desempenho com o mapeamento de diversas texturas. Abaixo, seguem os principais resultados obtidos: Figura 8. Teste 1. Figura 9. Testes realizados com o computador 1. Anais do XII ENCITA 2006, ITA, Outubro, 16-19, 2006. Figura 10. Testes realizados com o computador 2. Como se pode observar nas Figuras 9 e 10, o GL4Java apresentou um desempenho superior ao do Java3D no geral, mas essa diferença já não é tão crítica quanto os valores obtidos em testes com versões anteriores [02]. Além disso, em cenas com carregamento de objetos externos utilizando a biblioteca OpenGL para Java houve uma maior demanda de processamento e uma queda na qualidade da imagem. Este fato poderia trazer um efeito contrário ao desejado, já que o Cenário Virtual contém diversos modelos construídos no programa 3D Studio. 5. Conclusões Vários fatores contribuíram para que não houvesse a substituição da atual API. Em primeiro lugar, os recentes ganhos de performance do Java3D supriram satisfatoriamente a principal necessidade do projeto. Em segundo, as limitações da outra interface dificultariam o aprimoramento do Simulador, pois, conforme a complexidade do Cenário aumentasse, a manutenção do código-fonte ficaria inviável. Por fim, a estagnação do desenvolvimento da biblioteca GL4Java poderia deixar futuros problemas sem perspectiva de solução. Para versões futuras, sugere-se um aprimoramento da Dinâmica de Vôo do Software Simulador tendo em vista a acomodação de movimentos mais realistas do Veículo. 6. Agradecimentos Os autores agradecem ao CNPq, pelo financiamento de uma bolsa de Iniciação Científica, e ao Eng. Alex Lopes Pereira, por toda a sua paciência e assistência prestada. 7. Referências [01] – OpenGL for Java Open Source Project – http://www.jausoft.com/gl4java/ [02] – Labor Computer Graphics der Fachhochschule Stralsund – http://www.micg.et.fhstralsund.de/Java3D [03] – Deitel, H. M., Deitel, P. J., 2002, “Java, Como Programar”, BOOKMAN, 1386p. [04] – Horstmann, C. S., Cornell, G., 2000, “Core Java 2: Volume 1 – Fundamentals”, MAKRON BOOKS, 676p. [05] – NeHe Productions – http://nehe.gamedev.net/ [06] – CUNHA, Adilson Marques da; Pereira, ALEX Lopes. "Um Protótipo de Software de Mapa Móvel para o TRIPHIBIUS no Ambiente CNS/ATM", Relatório Final, Programa Institucional de Bolsas de Iniciação Científica - PIBIC, ITA, São José dos Campos, SP, 2002. [07] – CUNHA, Adilson Marques da; Silva, JOÃO HENRIQUE de Almeida e. "Um Protótipo de Software para o Desenvolvimento do Mapa Móvel do Cenário de Testes dos Controles de Vôo do Veículo Experimental Carro Anfíbio Voador - TRIPHIBIUS", Relatório Final, Programa Institucional de Bolsas de Iniciação Científica - PIBIC, ITA, São José dos Campos, SP, 2001. [08] – CUNHA, Adilson Marques da; DALPIAN, Guilherme Martini. "Projeto de Software para o Sistema de Controle de um Carro Anfíbio Voador", Relatório Final, Programa Institucional de Bolsas de Iniciação Científica - PIBIC, ITA, São José dos Campos, SP, 1999. [09] – CUNHA, Adilson Marques da; ENDO, Márcio. "Projeto de Software para o Sistema de Controle de um Carro Anfíbio Voador", Relatório Final, Programa Institucional de Bolsas de Iniciação Científica PIBIC, ITA, São José dos Campos, SP, 1999.