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>.