Interação Háptica em Plataformas Livres
Transcrição
Interação Háptica em Plataformas Livres
Interação Háptica em Plataformas Livres Derzu Omaia1, Liliane dos Santos Machado1, Ronei Marcos de Moraes2 1 Departamento de Informática e 2Departamento de Estatística UFPB - Universidade Federal da Paraíba Caixa Postal 15.064 – 91.501-970 – João Pessoa – PB – Brasil [email protected], [email protected], [email protected] Resumo. Este artigo descreve uma metodologia para a incorporação de dispositivos hápticos de baixo custo, como mouse e joysticks com retorno de força, a plataformas livres de realidade virtual. Deste modo o artigo apresenta como funciona a comunicação destes dispositivos com o computador, expondo as estruturas de dados utilizadas durante a comunicação de uma rotina de teste com os equipamentos. Abstract. This paper presents a methodology to incorporate low cost haptic devices, like mouse and joystick with force feedback, to public domain virtual reality platforms. This way, is explained how the devices communicate to the computer and is demonstrated some of the data structures that are used during the communication between a test routine and the device. 1 - Introdução Criar mundos virtuais capazes de reproduzir ou simular a realidade, gerando sistemas capazes de proporcionar uma interação entre dois ambientes distintos, o real e o virtual, é uma das funções da Realidade Virtual (RV). Pode-se dizer que RV, de maneira simplificada, é uma interface que simula um ambiente real e permite aos participantes interagirem com o mesmo, possibilitando às pessoas visualizarem e manipularem representações extremamente complexas. Ela é uma tecnologia pela qual se utiliza um computador para interagir com algo que não é real, o virtual [Netto et al. 2002]. Para aumentar a sensação de realidade do ambiente virtual criado, deve-se fazer com que o usuário se sinta envolvido pelo sistema de RV. Para isso, a RV utiliza dispositivos específicos que exploram os sentidos do usuário. Quanto mais explorados os sentidos, maior será a sensação de realidade do ambiente para o usuário. O sentido do tato pode ser explorado em sistemas de RV através do uso de dispositivos conhecidos como hápticos, que oferecem sensação tátil e de força ao usuário [Netto et al. 2002]. Fabricantes de dispositivos hápticos populares, como mouse e joystick, não disponibilizam o driver destes equipamentos para sistemas operacionais de domínio público, como é o caso do Linux. Desta forma, não é possível estabelecer a comunicação entre o dispositivo e o computador de forma que os estímulos táteis sejam enviados ao usuário. Para contornar este problema é necessário saber e entender como a comunicação entre o computador e o dispositivo ocorre e complementar o código do driver do dispositivo refazendo seu desenvolvimento. Pretende-se com o presente projeto, pesquisar a incorporação de dispositivos hápticos a esses sistemas, adicionando realismo às aplicações. Visando sistemas de baixo custo, a pesquisa proposta baseia-se em sistemas de domínio público e plataformas computacionais convencionais (PCs). 2 – Aspectos Teóricos Esta seção apresenta resumidamente os conceitos teóricos necessários para o desenvolvimento do trabalho. Também é apresentada a plataforma VirtWall, para a qual é desenvolvido este projeto. 2.1 - Realidade Virtual Realidade Virtual (RV) é o uso da tecnologia para criar a ilusão no usuário de que ele está em outra realidade – um novo meio de “estar” e “tocar” em informações, ou seja, é um lugar onde os homens e os computadores fazem contato de forma natural. Em geral, o termo Realidade Virtual refere-se a uma experiência imersiva e interativa baseada em imagens gráficas em 3D (três dimensões) geradas em tempo real por computador. A qualidade dessa experiência em RV é crucial, pois deve estimular ao máximo e de forma criativa e produtiva o usuário – a “realidade” precisa reagir de forma coerente com os movimentos do participante, tornando a experiência convincente [Netto et al. 2002]. A realidade virtual também pode ser definida como uma ciência que engloba conhecimento de diversas áreas, como a computação, eletrônica, robótica e cognição, dentre outras, visando oferecer sistemas computacionais que integram características de imersão e interatividade para simular ambientes reais onde os usuários têm estimulados simultaneamente os seus vários sentidos [Netto et al. 2002]. 2.2 – Sistemas Hápticos Sistemas hápticos oferecem interação com o ambiente virtual através de dispositivos e programas que permitem ao usuário sentir fisicamente as reações e os movimentos realizados no ambiente virtual. Os dispositivos fornecem sensação tátil e de força. A sensação tátil está ligada ao contato com o objeto, com sua textura e temperatura, enquanto a sensação de força é relacionada ao senso de posição e movimentação junto com as forças associadas ao movimento durante a interação com um objeto [Machado 2003]. Os programas, por sua vez, são utilizados para controlar esses equipamentos, processando as informações recebidas do dispositivo e enviando para este a reação ao movimento feito no mundo virtual. Essa reação depende do movimento realizado, da posição e da intensidade com a qual a força foi aplicada sobre a superfície ou o objeto. Essas informações são essenciais para o cálculo da força de reação a ser enviada para o dispositivo e sentida pelo usuário. Existem diferentes tipos de dispositivos hápticos, como joysticks, mouse, braços mecânicos, luvas de dados, entre outros. Com eles é possível simular diferentes efeitos como: inércia, mola, colisão, textura, atrito, gravidade e força de reação. Também conhecidos como dispositivos de force-feedback (retorno de força), esses equipamentos recebem as características do movimento realizado pelo usuário (deslocamento, direção e aceleração) e enviam um resposta háptica a esse movimento. Por exemplo, se o usuário estiver segurando um joystick, com o manche para frente e de repente bater em uma parede virtual, ele perceberá no joystick uma sensação de resistência ao movimento, simulando uma batida na parede. Desta forma, com o uso de sistemas hápticos é possível movimentar ou deformar algum objeto virtual - dependendo do material de que ele é feito - sentindo sua textura, peso, ou a força resultante deste movimento [McLaughlin, et al. 2002]. Para isso, o programa deve calcular precisamente as propriedades de força que o dispositivo deve retornar para o usuário. Se a força aplicada for excessiva, o usuário se cansará rapidamente e, se for muito fraca, as sensações não parecerão verdadeiras. O programador deve encontrar uma forma de calibrar e equilibrar essas forças tornando a interface o mais realista possível [Burdea e Coiffet, 2003]. 2.3 – Sistemas de Domínio Público Atualmente encontra-se disponível uma série de programas de domínio público, classificados desta forma devido ao fato de serem utilizados sem oferecer restrições de código e/ou especificação. A Free Software Foundation, é uma fundação que desenvolve programas e os distribui juntamente com o seu código fonte. Desse modo, o programador que utilizar o código desenvolvido por esta fundação, poderá alterá-lo para que este possa ser adaptado às necessidades específicas da sua aplicação. No entanto, os programas distribuídos estão sob uma Licença Publica Geral (General Public License) chamada GNU. Essa licença torna obrigatório que o código binário (programa executável) e seus códigos fontes (código gerador do executável) sejam distribuídos conjuntamente. Assim, o programador que modificar um código fonte que esteja sob a licença GNU, também terá que distribuir o código fonte de seu programa na parte em que estiver utilizando qualquer código GNU. 2.4 – VirtWall O VirtWall (Muro Virtual) é uma plataforma de visualização e interação em tempo-real baseada em técnicas de Realidade Virtual que exibe imagens em uma grande tela, como se esta fosse um grande muro virtual. A grande diferença é que esta projeção é estereoscópica e colorida, ou seja, as imagens saltam para fora da tela, oferecendo a sensação de que estas estão posicionadas no espaço e com cores reais. Para isso, o observador precisa usar óculos especiais com filtros óticos que permitem ver o efeito estereoscópico (3D) colorido. Assim, as imagens podem ser vistas por uma ou mais pessoas, permitindo analisar individualmente ou em grupo as características do objeto visualizado. Além disso, a plataforma permite ainda ao usuário controlar o ponto de vista e movimentar livremente o objeto no espaço simplesmente usando o mouse ou o teclado do computador [Moraes et al. 2003]. Todo os sistema de controle do VirtWall e as aplicações que nele são executadas foram desenvolvidos sob a plataforma Linux e utilizando ferramentas de domínio público, por pesquisadores dos Departamentos de Informática e de Estatística da UFPB. 3 – Desenvolvimento Neste trabalho, estamos interessados no desenvolvimento de um driver para incorporar retorno háptico à plataforma de realidade virtual imersiva de baixo custo VirtWall [Moraes et al. 2003], aumentando o grau de realismo das simulações atualmente em uso. Os dispositivos hápticos que estão sendo incorporados usam a porta USB como meio de transferência para entrada e saída. No Linux há um driver genérico chamado HID (human interface device) que oferece suporte aos dispositivos conectados às portas USB, mas somente lendo informações, não permitindo operações de escrita, necessárias para poder haver o retorno de força. No entanto, há uma ramificação do HID chamada PID (physical interface device) que oferece suporte a alguns dispositivos hápticos populares, com a vantagem de haver uma especificação explicando como é feita a comunicação via PID. A partir desta especificação é possível redefinir e enviar estruturas de efeitos de modo que o dispositivo entenda-as corretamente, tornando possível o retorno de força [USB 1999]. Para a geração do retorno de força é necessário enviar ao dispositivo uma estrutura de dados contendo o efeito háptico que se deseja reproduzir. Esse envio deve ser feito abrindo-se a porta de comunicação (USB) entre o computador e o dispositivo como leitura e escrita, fazendo um stream (canal de comunicação) apontar para ela e começar a escrever os bytes da estrutura no dispositivo (Figura 1). Desse modo, podem ser simulados efeitos de inércia, mola, textura e gravidade, dentre outros. canal de controle (padrão) computador canal de entrada (HID) dispositivo háptico canal de saída (PID) Figura1: Mecanismo de transferencia de dados A leitura das informações recebidas do joystick é feita a partir da associação de um stream à porta de entrada USB do joystick, essa porta no Linux geralmente é a "/dev/input/js0". Com esta associação feita já é possível começar a ler as informações recebidas do joystick. A leitura é feita em uma estrutura de dados chamada js_event, essa estrutura pode ser vista a seguir: struct js_event { unsigned int time;/* tempo em milisegundos */ short value; /* valor do evento */ unsigned char type;/* tipo do evento (eixo/botão) */ unsigned char number;/* numero do eixo/botão */ }; A estrutura fica sendo constantemente atualizada proporcionando a percepção de qualquer movimento no dispositivo. Ela contém informações sobre quais eventos estão acontecendo no joystick, quais botões ou eixos que estão sendo utilizados, os valores dos estados atuais dos eixos ou botões, e o tempo em milisegundos desde o início da operação de leitura do joystick. Um exemplo simples do funcionamento da leitura pode ser visto no trecho: #define O_RDONLY 00 /* Somente leitura */ fd = open("/dev/input/js0", O_RDONLY); while (1){ read( fd, &js, sizeof(struct js_event) ); printf("tempo %d, tipo %d, valor %d, numero %d\n", js.time, js.type, js.value, js.number); } 4. Considerações Finais Até o momento já é possível reconhecer os movimentos executados com o joystick, obtendo a leitura dos valores através da estrutura de dados mencionada acima. O mesmo acontece com os diversos botões programáveis presentes no dispositivo Desta forma, o seu uso já pode ser incorporado à plataforma VirtWall, oferecendo uma nova ferramenta de interação. As rotinas de escrita, responsáveis pelo envio das informações de reação tátil e de força ao dispositivo, estão sendo programadas. Uma vez concluídas estarão oferecendo uma opção de baixo custo para a incorporação de dispositivos hápticos em plataformas de realidade virtual, como é o caso do VirtWall. Referências Bibliográficas Burdea, G.C. e Coiffet, P., Virtual Reality Technology, Wiley-IEEE Press, 2003. Machado, L.S. (2003) “A realidade virtual no modelamento e simulação de procedimentos invasivos em oncologia pediátrica: Um Estudo de caso no transplante de medula óssea”, Tese de Doutorado. Escola Politécnica da Universidade de São Paulo. McLaughlin, M.L., Hespanha, J., Sukhatme, G., Touch in virtual environments: Haptics and the design of interactive systems, Prentice-Hall, 2002. Moraes, R.M., Machado, L.S., Souza, A.C.M. (2003), “VirtWall: A Concept of LowCost Virtual Wall for Immersion in Virtual Reality”, Proceedings of the 6th Symposium on Virtual Reality, Ribeirão Preto, p.383 – 385. Netto, A.V., Machado, L.S., Oliveira, M.C.F., Realidade Virtual - Fundamentos e Aplicações, Visual Books, 2002. USB Implementers’ Forum, (1999) “Device Class Definition for Physical Interface Devices (PID)” Version 1.0, 1999. Online: acesso em agosto de 2004. Disponível em: <http://www.usb.org/developers/devclass_docs/pid1_01.pdf>.