• Nenhum resultado encontrado

Interação em Ambiente de Realidade Aumentada Usando o Controle Remoto do Nintendo Wii

N/A
N/A
Protected

Academic year: 2021

Share "Interação em Ambiente de Realidade Aumentada Usando o Controle Remoto do Nintendo Wii"

Copied!
5
0
0

Texto

(1)

Interação em Ambiente de Realidade Aumentada Usando o Controle Remoto do Nintendo Wii

Hipólito Douglas França Moreira

ICE / DMC / UNIFEI - Universidade Federal de Itajubá Itajubá, MG, Brasil

hipolitodouglas@gmail.com

Claudio Kirner, Tereza Gonçalves Kirner ICE / DMC / UNIFEI - Universidade Federal de Itajubá

Itajubá, MG, Brasil

ckirner@gmail.com, tgkirner@gmail.com

Resumo—Tradicionalmente, aplicações populares de realidade aumentada utilizam marcadores e/ou teclado para a realização de interações do usuário com os objetos virtuais do ambiente aumentado. No entanto, dispositivos usados em sistemas de jogos, como o Nintendo Wii, constituem-se em instrumentos interessantes para interação, tanto pelo fato de grande parte das pessoas já estar familiarizada com eles, como pelo seu elevado potencial interativo. Este trabalho aborda as questões técnicas relacionadas com o uso do dispositivo Wiimote para interação em aplicações de realidade aumentada, substituindo teclado e marcadores ou atuando em conjunto com eles. São discutidas as soluções de hardware e software necessárias para a obtenção de um bom acoplamento e interação com os objetos virtuais de aplicações de realidade aumentada.

Palavras-chave: Interação; Realidade aumentada;

Dispositivos especiais; Wiimote.

I. INTRODUÇÃO

A Realidade Aumentada (RA) busca trazer mais informação para o espaço real, por meio da incorporação de elementos virtuais e informações, de forma a utilizar o potencial da realidade virtual em interagir com o usuário na imersão do mundo e provocando situação semelhante no ambiente real.

Nas aplicações de RA, a interação do usuário com os objetos virtuais envolve, na maioria das vezes, o uso de mouse, marcadores e teclado. Essa interação pode ser enriquecida com a utilização de novos dispositivos de interface.

Uma alternativa para aumentar o potencial de interação do usuário é trazer efeitos virtuais para a realidade, ou permitir que o usuário interaja com as aplicações com maior liberdade. Neste modo interativo, pode-se usar dispositivos que permitam que ações virtuais tenham um feedback real, passando ao usuário a sensação de imersão em sua atividade e, ao mesmo tempo, permitindo que ele sinta-se mais livre em suas ações.

O Nintendo Wii Remote Controller - Wiimote [5], é um dispositivo desenvolvido para os jogos do Nintendo Wii, que pode ser utilizado para o desenvolvimento de aplicações interativas, como as de RA.

No decorrer deste trabalho, são discutidos o potencial interativo do Wiimote, a sua aplicabilidade no campo da RA

e uma aplicação desenvolvida com o dispositivo para ilustrar seu potencial e aplicabilidade.

II. TRABALHOS RELACIONADOS

O potencial do Wiimote em aplicações diversas é apresentado e discutido em [6], que traz um resumo das características do dispositivo e de como utilizá-lo em aplicações de Internet, tendo como base a programação de aplicativos em Flash, usando o Flex [1].

O desenvolvimento de aplicações interativas com RA é discutido em diversos trabalhos, destacando-se, entre eles, dois trabalhos que abordam especificamente questões relacionadas às ações de interação do usuário com o ambiente computacional.

O primeiro trabalho apresenta o processo de construção de aplicações de realidade virtual e aumentada, enfatizando questões técnicas sobre a utilização de tecnologias em autoria de objetos 3D, dispositivos interativos, animação, entre outros conceitos [2].

O segundo trabalho, apresentado em [4], enfoca a interação em aplicações de RA, refletindo uma abordagem relacionada à ferramenta SACRA [8], que permite a autoria colaborativa de aplicações, com uso de marcadores.

Os dois trabalhos destacados forneceram subsídios importantes para o projeto e implementação das interações com Wiimote, apresentadas neste artigo.

III. INTERAÇÃO COM USO DO WIIMOTE

A. Descrição do Wiimote

O Wiimote é um dispositivo desenvolvido para o ambiente de jogos, em que a liberdade de movimentos se torna característica fundamental na sua utilização.

O dispositivo contém os seguintes componentes, mostrados na Figura 1:

 um acelerômetro;

 uma câmera para captura de LED infravermelho;

 12 botões (quatro teclas direcionais, A, B, 1, 2, +, -, home e liga/desliga);

 um alto-falante para reprodução de arquivo de áudio formato MIDI;

 um conjunto de quatro LEDs para identificação de conexão dos dispositivos ao console;

(2)

 uma porta de extensão para acoplamento de outros dispositivos; e

 um sistema de conexão sem fio baseado em tecnologia Bluetooth.

Figura 1. Componentes do Wiimote.

Usando-se a porta de extensão, pode-se conectar outros dispositivos ao Wiimote, como: o Nunchuk (composto de um direcional analógico, três botões [Z, C, e direcional] e um acelerômetro); a Balance Board (usada para aplicações baseadas em exercícios) e o Motion Plus (um acelerômetro para melhorar a precisão dos movimentos do dispositivo).

A interação por meio do Wiimote é viabilizada em diversos níveis, uma vez que alcança movimentos, envolvendo translação e rotação. Essa interação é obtida pelo uso do acelerômetro e das setas direcionais, da seguinte maneira: o acelerômetro propicia a captura de informações sobre a inclinação do movimento nos eixos x, y z; as setas permite a captura de informações sobre a direção do movimento para frente, trás, direita e esquerda. Para as demais ações, as teclas do dispositivo podem estar associadas a qualquer interação indicada pelo desenvolvedor, na aplicação que faz uso do dispositivo.

Na construção e exploração de movimentos advindos do acelerômetro, existe a posição, a direção e a força aplicada ao movimento e, junto a este movimento executado, pode estar associada uma ação, como o balançar de um bastão.

Pode-se associar também a este movimento, o uso de um

botão para aumento da ação ou construção de uma ação elaborada, como arremesso de um dardo no ponto em mira.

É possível também criar uma interação condicional, em que a ação só pode ser executada em função de outras ações realizadas anteriormente ou durante o movimento, como a espera de uma condição do ambiente. Um exemplo é o caso da chuva que, dependendo de sua intensidade, implica no uso de um guarda-chuva ou na espera pela sua diminuição, a ponto de permitir o uso do guarda-chuva.

Existem dois modos típicos de interação direta no Wiimote: um modo está relacionado com a replicação de ações físicas ou manuais no uso de objetos; um outro modo, está relacionado às funções de controle a distância, usadas na maioria dos jogos. Além disso, devido à exploração do potencial da câmera de infravermelho, surge um novo modo de interação baseado na captura de ações baseadas na detecção de LEDs infravermelhos.

Esse modo interativo adicional permite que o usuário possa realizar algumas ações, sem a necessidade de portar dispositivo algum, fazendo com que a visualização possa ser controlada e as interações observadas, com a detecção de sua posição no espaço, a partir da identificação do LEDs emissor e receptor.

B. Aspectos de Programação

A programação de aplicações que fazem uso do Wiimote requer o uso de uma biblioteca que entenda as instruções emitidas pelo dispositivo conectado ao computador, por meio da tecnologia Bluetooth.

Para que as ações sejam entendidas pela aplicação, o dispositivo deve ser conectado a um servidor de conexão, permitindo que suas ações sejam ouvidas pelas aplicações clientes.

No processo de “escuta” do dispositivo, a aplicação permanece em um loop, esperando a emissão de instrução a ser decodificada, para poder realizar a ação programada, como mostrado na Figura 2.

Figura 2. A aplicação realiza ação ouvindo instruções do servidor de conexão ao qual o Wiimote está conectado.

C. Instalação do Wiimote

Para que o Wiimote seja utilizado no computador, são necessários alguns componentes de hardware e software.

Quanto ao hardware, é necessário que o computador possua capacidade para uso da tecnologia Bluetooth ou usar um ponto Bluetooth USB, de forma a permitir a conexão

(3)

entre o dispositivo e o computador. A interação será visual, considerando uma distância compatível com a conexão Bluetooth, que é aproximadamente de 10 metros.

Os softwares necessários são o BlueSoleil [3], que permite o gerenciamento do Bluetooth no computador, possibilitando a conexão e pareamento do Wiimote e de um servidor, normalmente disponibilizado pela biblioteca que o utiliza, para receber as ações dos dispositivos e interpretá- las para a linguagem em que está codificada a aplicação cliente. O processo de conexão do dispositivo à aplicação é ilustrado na Figura 3.

Figura 3. Diagrama de funcionamento da conexão do Wiimote à aplicação.

IV. INTERAÇÃO ENTRE O WIIMOTE E O AMBIENTE DE RA A utilização do Wiimote em aplicações de RA permite a manipulação de diversos objetos em cena, desde que os mesmos estejam associados a funções do controle, como uma lista navegável, da qual o usuário pode selecionar o objeto e, a partir daí, realizar ações sobre ele.

As ações expressas sobre os objetos virtuais são:

 Seleção: processo pelo qual o usuário seleciona os objetos que serão alvos das suas ações. No processo de seleção há presença de elementos que auxiliam a ação de seleção, como gráficos, elementos sonoros e sensitivos, pois, na seleção de objetos observa-se algum destaque sobre o mesmo, ouvindo um som de ativação ou recebendo um alerta vibratório do dispositivo.

 Manipulação: processo em que o objeto selecionado sofre alterações em função de ações do usuário baseadas nas características do objeto. Na manipulação pode ocorrer alteração de propriedades físicas, como tamanho e cor, ou de propriedades de translação e rotação do objeto.

 Liberação: processo em que o objeto selecionado e manipulado é lançado ao estado neutro, mas mantido com características da manipulação anterior, ou retornado à origem da aplicação, para que seja utilizado por outro usuário, ou para que seja deixado em um modo de espera.

O potencial de interação do usuário com os objetos virtuais, usando o Wiimote no ambiente de RA, está associado às características e capacidade do dispositivo em permitir ações capazes de realizar seleção de objetos, manipulação dos mesmos e posterior liberação.

Para ações de seleção, pode-se utilizar as setas direcionais ou balanço no acelerômetro, promovendo uma movimentação na lista de objetos e destacando o objeto selecionado, como em um movimento de rotação por exemplo. O uso dos botões (A ou B, ou outro) também permite realizar a seleção do objeto para utilizá-lo na cena.

As ações de manipulação do objeto selecionado, podem compreender diferentes alternativas. Assim, pode ser usado o movimento do acelerômetro para refletir uma alteração em sua inclinação, o movimento das setas alterando sua translação e botões para disparar as ações de aumento em escala, realização de movimentos e mudança de estados.

Nas ações de liberação, é necessário apenas pressionar um botão ou alcançar uma condição durante o processo de manipulação do objeto, visando manter alterações realizadas ou retorná-las para um estado nulo, para que sejam repetidas as ações ou para que sejam salvas as alterações.

Na implementação das interações, adiciona-se ao ambiente uma função de “observação” para o pressionamento dos botões do Wiimote. Dentro desta função, devem ser colocadas as ações relativas a cada instrumento interativo, podendo elas disparar pequenas ações, ou realizar chamadas a funções mais elaboradas na interação com o objeto 3D.

V. EXEMPLO DE APLICAÇÃO DE RA USANDO O WIIMOTE

Para testar o uso do Wiimote como dispositivo para interação em aplicações de RA, foi desenvolvida uma aplicação utilizando o exemplo “Spring Camera and Driving a Car” [7]. Para isso, foram utilizados os recursos da biblioteca Papervision3D, do software Flartoolkit [9] e da API Wiiflash[10]. Tais recursos possibilitaram o controle do carro virtual no ambiente de RA, por meio do Wiimote.

A aplicação original adotada faz parte da biblioteca Papervision3D. Ela inclui o objeto 3D (um carro), que já se encontra modelado, considerando a aplicação da textura e o controle das rodas, além da função de aceleração do objeto, que pode ser para frente ou para trás. Essa aplicação original é ilustrada na Figura 4.

Figura 4. Exemplo da aplicação “Spring Camera and Driving a Car” da biblioteca Papervision3D.

(4)

Nessa aplicação, as instruções do Wiimote são usadas para controle da direção das rodas e aceleração do carro.

Com o uso do FLARToolKit, são associadas funções de captura de imagem da webcam e do reconhecimento de padrões para o posicionamento do carro no espaço capturado pela câmera, ao invés da utilização do espaço virtual da aplicação original, como exibido na Figura 5.

Figura 5. Associação do objeto e suas funções ao marcador, para ser projetado sobre a captura.

Com a emissão de instruções do Wiimote e a captura delas pela aplicação, tem-se a alteração do carro, que inicialmente estava com a roda voltada para frente, e agora está com a mesma voltada para a esquerda, devido à orientação do dispositivo, conforme mostra a Figura 6.

Figura 6. Conversão da instrução do acelerômetro em movimento nas rodas.

Para a interação do carro com a aplicação, foram removidas as funções associadas ao uso do teclado e adicionadas as funções para utilização das instruções do Wiimote.

No caso desta aplicação desenvolvida para testar o uso do Wiimote, foram implementadas as seguintes funções:

 ativação/desativação de objeto no botão 1;

 aceleração no botão B, freio/ré no botão A;

 retorno ao ponto inicial na tecla Home;

 aumento de escala na tecla +(plus); e

 diminuição de escala na tecla - (minus).

A implementação foi realizada na IDE FlashDevelop, que utiliza a SDK Flex e ActionScript3.0, uma linguagem de programação orientada à objetos, que permite a construção de código a integração, sem muito esforço de programação.

Nesta implementação, a função de seleção não foi considerada, por tratar-se de um caso de objeto único, já pré- selecionado.

A Figura 7 apresenta o código criado para a função de manipulação da aplicação de teste.

Figura 7. Código da aplicação desenvolvida como teste.

Figura 7. Código da aplicação desenvolvida como teste.

O código da Figura 7 inclui a implementação das funções de conexão, associação e alteração do dispositivo.

Função de Conexão

A função que realiza a conexão do dispositivo é

”myWiimote.connect();”, mostrando o objeto Wiimote instanciado e a sua função “socket” para conexão ao servidor WiiFlashServer.

public function CtrMain(...) { myWiimote = new Wiimote();

myWiimote.connect();

car = aMarkerNodeList[0].addChild(addObject(),

"ObjectName");

addEventListener(Event.ENTER_FRAME, FunctionA);

addEventListener(Event.ENTER_FRAME, FunctionB);

}

private function carInteraction(e:Event):void { if (OnState) {

driveCar();

FunctionA(car);

FunctionB(car);

} ...

}

private function driveCar():void { if ( myWiimote.b ) {

...

}

else if( myWiimote.a ) { ...

} ...

if( myWiimote.sensorX > 0.30 ) { ...

}

else if( myWiimote.sensorX < -0.30 ) { ...

} ...

}

private function FunctionA (car):void { if (myWiimote.home) {

...

}

if (myWiimote.plus) { ...

}

if (myWiimote.minus) { ...

} }

private function FunctionB (car):void { ...

car.yaw( speed * steer / 500 );

car.moveForward( speed );

}

(5)

Função de Associação

A função de associação do objeto 3D (car) ao marcador é “car = aMarkerNodeList[0].addChild(addObject(),

"ObjectName");”. Com isto, o objeto 3D (car) é associado ao marcador (0), de forma a ser visualizado e manipulado.

Função de Alteração

As funções de “listener” associadas ao funcionamento da animação do objeto e alteração de propriedades são:

“addEventListener(Event.ENTER_FRAME, FunctionA);”

“addEventListener(Event.ENTER_FRAME, FunctionB);”

A primeira função aciona a Função A, encarregada da alteração das propriedades relativas ao tamanho do objeto e retorno ao ponto inicial.

A segunda função é responsável pela animação do objeto, cuidando da translação (para frente e para trás), da aceleração (avanço e frenagem) e da inclinação do carro, além da rotação das rodas.

A Figura 8 ilustra o acionamento das ações implementadas, no dispositivo Wiimote.

Figura 8. Dispositivo Wiimote e botões associados à aplicação.

VI. CONCLUSÕES

Este artigo discutiu as características e potencialidades do dispositivo Wiimote, visando destacar o seu potencial para implementar interações em aplicações computacionais baseadas em RA.

O uso do dispositivo é uma alternativa para o enriquecimento da interação humano-computador em aplicações de RA, que, tradicionalmente, fazem uso de mouse, teclado e marcadores. O Wiimote contribui para a

implementação de interações mais realísticas e com maior liberdade de movimentação, do ponto de vista dos usuários.

Como vantagens do uso do Wiimote, em termos de implementação, há facilidade de programação, uma vez que o programador encontra todos os fluxos de dados provenientes do dispositivo identificados pela biblioteca, cabendo a ele familiarizar-se com a linguagem na qual irá desenvolver a aplicação e oferecer o suporte à conexão com o dispositivo.

Para o usuário da aplicação, observa-se que é agradável a liberdade de utilizar um dispositivo sensível a movimentos e de tamanho portátil, para realizar ações interativas, pois a sensação de realidade propiciada é significativamente maior do que a obtida por meio do teclado.

Como trabalhos futuros, serão testados outros dispositivos associados ao Wiimote, como o Nunchuck, o Motion Plus e o Sensor Bar, além do dispositivo, Kinect, que permite a captura de informações por meio de câmera de profundidade e sensores, para a construção de aplicações de RA altamente interativas e com maior sensação de realidade.

AGRADECIMENTO

Os autores agradecem à FAPEMIG pela bolsa PIBIC/UNIFEI concedida, que viabilizou o desenvolvimento do projeto.

REFERÊNCIAS

[1] Adobe, Flex SDK. Disponível em:

http://opensource.adobe.com/wiki/display/flexsdk/Flex+SDK. Acesso em 28/07/2010.

[2] J. Behr, D. Reiners, Don't be a WIMP, Proceedings ACM SIGGRAPH 2008, article number 24.

[3] IVT Corporation, BlueSoleil. Disponível em:

http://www.bluesoleil.com/. Acesso em: 28/07/2011.

[4] C. Kirner, and R. Santin, Interaction, Collaboration and Authoring in Augmented Reality Environments. Proc. XI Symposium on Virtual and Augmented Reality. Porto Alegre: SBC, 2009. pp. 210-220.

[5] Nintendo, Wii Remote Controller. Disponível em:

http://www.nintendo.com/wii/console/controllers. Acesso em 01/03/2011.

[6] T. Olthof, Wiimote In Rich Internet Aplications. June 2008, VU University, Amsterdam, NL. Disponível em:

http://www.few.vu.nl/~tpolthof/wiimote/, Acesso em 13/03/2011.

[7] PV3D, “Spring Camera and Driving a Car”. Disponível em http://pv3d.org/2009/01/23/springcamera3d-and-driving-a-car/.

Acesso em 01/03/2011.

[8] R. Santin, SACRA - Sistema de Autoria em Ambiente Colaborativo com Realidade Aumentada. Dissertação, Ciência da Computação, UNIMEP, Piracicaba, 2008.

[9] Saqoosha, Flartookit. Disponível em:

http://www.libspark.org/wiki/saqoosha/FLARToolKit/en. Acesso em 01/03/2011.

[10] WiiFlash, WiiFlashServer e API wiiflash. Disponível em:

http://wiiflash.bytearray.org/, Acesso em 27/07/2010.

Referências

Documentos relacionados

Our contributions are: a set of guidelines that provide meaning to the different modelling elements of SysML used during the design of systems; the individual formal semantics for

No final, os EUA viram a maioria das questões que tinham de ser resolvidas no sentido da criação de um tribunal que lhe fosse aceitável serem estabelecidas em sentido oposto, pelo

Taking into account the theoretical framework we have presented as relevant for understanding the organization, expression and social impact of these civic movements, grounded on

Para materiais de amortecimento sólido tipo II, não há uma expressão do valor ótimo. Este é extraído da iteração da diferença entre as expressões da transmissibilidade

Através deste foi possível compreender as especificidades da democracia americana (como sistema forte e sólido) até os dias de hoje, bem como o sistema

Figure III. 37: Water vapor-liquid interfacial tension.. 38: Ethanol vapor-liquid interfacial tension. Interfacial tension was calculated using these coefficients in

Outra surpresa fica por conta do registro sonoro: se num primeiro momento o som da narração do filme sobre pôquer, que se sobrepõe aos outros ruídos da trilha, sugere o ponto de

Especificamente as questões levantadas buscam avaliar qual o contributo das espécies mais representativas da área amostral (Bolbochenous maritimus (L.) Palla,