• Nenhum resultado encontrado

Este estudo de caso, é utilizado para formalizar e explicar os estágios de desenvolvimento de ambientes interativos com efeitos multissensoriais, descritos em conformidade com o padrão MPEG-V [2].

Neste exemplo, deve ser possível reconhecer alguns gestos manuais e gerar um conjunto de ações que provocam efeitos sensoriais relacionados com os dispositivos que formam a parte real do ambiente e modificação de pelo menos uma característica visual do objeto virtual por meio de alterações em seus atributos.

Inspirado pelo trabalho desenvolvido por Pinhanez e Bobick [104], o estudo de caso está fundamentado em uma peça de teatro, onde o ator principal (o usuário) promove efeitos senso- riais (relâmpago, vento e vibrações) através de gestos, para criar a sensação de ”presença” no ambiente ao espectador. Um comportamento esperado seria: se em uma determinada cena o ator fizer um gesto levantando a mão direita, o vento é ativado; se o vento já estiver ativado e o ator mantiver a sua mão direita para o lado direito, o vento aumenta em 50%. No contexto, se o ator mantiver a mão esquerda para o lado esquerdo, o vento diminui.

5.4.1 Fase 1: Especificação do Ambiente

A primeira fase no ciclo de desenvolvimento de ambientes interativos indica o mapeamento do local e todos os objetos pertencentes. Nesta etapa, todos os objetos que podem desencadear ou fazer parte de uma interação com o utilizador são destacados.

O cenário previsto inclui uma sala com um sensor de captura de gestos e um computador para o processar as informações desse sensor e controlar o envio de mensagens, compatíveis com o MPEG-V, para o componente renderizador ativar, desativar ou modificar as característi- cas dos dispositivos distribuídos pela sala. Para a montagem deste cenário, foram utilizados os seguintes equipamentos: (i) Um sensor Kinect como dispositivo de entrada do reconhecimento de gestos; (ii) Um computador para controlar a execução do ambiente; (iii) Um miniPC para rodar o renderizador de efeitos sensoriais SER MPEG-V (o SER recebe as descrições MPEG-V e produz como saída os efeitos sensoriais); (iv) Um microcontrolador Arduíno, como interface para os objetos do mundo real (este microcontrolador recebe os comandos do SER como en- trada e produz os efeitos sensoriais nos objetos reais, como saída); (v) Uma tela de TV para apresentação dos objetos virtuais; (vi) LED Strip Lights, para efeitos de luzes; e, (vii) Um ven- tilador para produzir os efeitos sensoriais de vento. O croqui e a tabela descritiva dos objetos é apresentado na Figura 5.19.

Figura 5.19. Em cima, o croqui do ambiente com as disposições dos objetos. Em baixo, uma tabela descritiva de todos os objetos encontrados

5.4.2 Fase 2: Identificando as Reações

A segunda etapa do desenvolvimento leva o analista a observar todas as reações do sistema responsáveis pelas mudanças de estado ou comportamento, nos objetos do ambiente. Estas reações podem modificar os objetos de forma independente ou combinando parte dos objetos do mundo real com o virtual. A Tabela 5.20 apresenta as reações especificadas, relacionadas aos objetos reais (ferramentas SER MPEG-V e os atuadores) e aos objetos virtuais (como apresentar um ícone no canto da tela para indicar o início/parada do controle de gestos).

Tabela 5.20. Tabela sugerida na Fase 2 da abordagem 3W1H ilustra as reações de todos os objetos ativos.

ID: Fase02 Autor: Data: / / Versão:

ID Reação ID Objeto Ativo Nome da Reação

ACT01 OBJ05 Inicia controle dos gestos e apresenta ícone no canto da tela.

ACT02 OBJ07 Ativa o ventilador.

ACT03 OBJ07 Aumenta em 50% a intensidade do vento;

ACT04 OBJ07 Reduz em 50% a intensidade do vento.

ACT05 OBJ07 Desativa o ventilador.

ACT06 OBJ06 Produz um efeito composto: raio e terremoto por 10 segundos.

ACT07 OBJ06 Cria as cores do arco íris.

ACT08 OBJ06 Desliga os efeitos luminosos.

ACT09 OBJ06 Desliga os efeitos de vibração.

ACT10 OBJ05 Interrompe o controle de gestos e apresenta um ícone no canto da tela.

5.4.3 Fase 3: Identificando as Interações

Na aplicação desenvolvida, os gestos manuais produzem estímulos que exigem reações do ambiente como respostas. Desta maneira, os estímulos gestuais fornecem informações rele- vantes para que os reconhecedores produzam os dados de saída, que serão traduzidos em uma sequência apropriada de ações no ambiente. A terceira fase do processo de desenvolvimento identifica todos os estímulos que podem provocar alguma reação no ambiente. No estudo de caso, todos os estímulos estão associados às interações do usuário através de gestos de movi- mento da mão. Nesta fase, não foram pesquisados quais os gestos seriam mais naturais para o usuário dentro do contexto em que está inserido, conforme recomenda o Capítulo 3.

A Tabela 5.21 mostra todos os estímulos ou interações mapeados para este ambiente. Os estímulos identificados de INT02 a INT06 estão relacionados com a execução de efeitos senso- riais MPEG-V. O estímulo INT01 foi empiricamente definido para a apresentação de um ícone especial na tela, indicando que o controle por gestos no ambiente está ligado ou desligado.

Tabela 5.21. Interações utilizadas no exemplo Multi-Sensory Effects to Interactive Environments.

ID: Fase03 Autor: Data: / / Versão:

ID Interação Nome Tipo (Visual, Sonora, Física) Representação (Imagem, Som ou Vídeo)

INT01 Acenar Visual

INT02 Levantar a mão direita Visual

INT03 Posicionar mão direita no lado direito Física

INT04 Posicionar mão esquerda do lado esquerdo Física

INT05 Levantar a mão esquerda Física

INT06 Levantar as duas mãos Física

5.4.4 Fase 4: Compor Behavior Frames

Nas etapas anteriores foram produzidos dois conjuntos de implementações lógicas: uma lista de eventos, produzidos pelos reconhecedores, em resposta a uma interação, e um barra- mento de reações. No entanto, até esta fase as reações e os eventos ainda não foram associa- dos, de modo que ainda não é possível saber que interação provocará qual(is) reação(ões). O Behavior Frame (ou simplesmente BF) é uma unidade básica do comportamento desejado e representa a associação entre eventos, relacionando as interações do usuário com as reações esperadas no ambiente. Assim, nesta fase, todas as associações entre a interação reconhecida e a(s) reação(ões) gerada(s) são identificadas e um Behavior Frame é criado para cada uma delas. Neste estudo de caso, BF01 associa o estímulo INT01 com a reação ACT01. Assim, o BF01 indica que quando o gesto ”Acenar” ocorre, o controle baseado em gestos é habilitado no am- biente. Uma vez ativado, o BF02, associando o estímulo INT02 com ACT02, é responsável por enviar uma descrição MPEG-V para a ferramenta de renderização produzir um efeito sensorial de vento.

Conforme descrito no Capítulo 3, uma mesma interação pode desencadear diferentes rea- ções no ambiente a depender do contexto (ver BF04 e BF08 na Figura 5.20). Portanto, para se obter o comportamento desejado é importante controlar as transições entre os contextos do ambiente, assim como o que se espera que aconteça em cada um deles. Este controle é obtido por meio das cadeias de comportamento, chamadas de Behavior Chain. A Seção 5.4.5 descreve a Behavior Chain para este exemplo.

5.4.5 Fase 5: Compor Behavior Chain

Uma vez que as interações e as reações já foram associadas em Behavior Frames, o passo seguinte é determinar o contexto em que os eventos irão acontecer. O contexto permite a redu- ção das possibilidades de eventos no sistema e, portanto, reduz o uso desnecessário de memória e processamento. Por exemplo, não faz sentido esperar a interação ”INT03-aumento de 50% do vento” se o ventilador está desligado no meio ambiente.

Figura 5.20. Composição das regras semânticas de comportamento e os três níveis de expectativas no cenário proposto. [2]

A Figura 5.20 exibe toda a cadeia de comportamento em um único diagrama. Nela é possível observar os três contextos mapeados, suas transições e quais os Behavior Frames estão sendo esperados em cada um deles. A Figura 5.21 simplifica a representação da Behavior Chain, através de um Diagrama de Estados. Neste diagrama, os contextos são representados pelos vértices e as arestas pelas transições. O estado inicial é ”1-Controle de Gestos Desativado”, que pode ser alcançado pelo evento BF09, originado dos estados ”2-Controle de Gestos Ativado” e ”3-Controle de Vento Ativado”. O estado 2 pode ser ativado pelos eventos BF01, originado do estado 1, e BF05, do estado 3. O estado 3 somente é ativado através do BF02, proveniente do estado 2.

Figura 5.21. Diagrama de estados do cenário, representando os níveis de expectativas e as transições entre elas. [2]

Importante notar que ambos os BF’s e BC’s são representados por descrições XML, como se mostra o Trecho de Código 5.1. O XML fornece a flexibilidade necessária para modificar a cadeia de comportamento do ambiente de forma dinâmica, removendo ou adicionando novos BF’s. A ideia principal é que o ambiente possa ser modelado e reconfigurado em tempo de execução, através de uma nova carga do arquivo XML contendo descrições do comportamento desejado, sem a necessidade de novas implementações, mas apenas referindo-se às reações e Recognizersjá implementados. 1 < ?xml v e r s i o n = " 1 . 0 " e n c o d i n g = " UTF8 " ? > 2 < B e h a v i o r ( . . . ) 3 < I n t e r a c t i o n ID= " INT01 " ( . . . ) 4 < I n t e r a c t i o n ID= " INT06 " > ( . . . ) 5 < A c t i o n ID= " ACT01 " > ( . . . ) 6 < A c t i o n ID= " ACT10 " > ( . . . ) 7 < B e h a v i o r F r a m e ID= " BF01 " > 8 <Name>BF01< / Name>

9 < E v e n t ID= " EVT01 " R e c o g n i z e r I D = " INT01 " Cod= "SUCESS" / E v e n t >

10 < A c t i o n I D >ACT01< / A c t i o n I D > 11 < / B e h a v i o r F r a m e > ( . . . ) 12 < E x p e c t a n c y ID= " EXP02 " > ( . . . ) 13 < B e h a v i o r f r a m e I D >BF02< / B e h a v i o r f r a m e I D > ( . . . ) 14 < B e h a v i o r f r a m e I D >BF09< / B e h a v i o r f r a m e I D > 15 < / E x p e c t a n c y > 16 < E x p e c t a n c y ID= " EXP03 " > ( . . . ) 17 < !−− > ########## BEHAVIOR CHAIN ##########< /−−> 18 < B e h a v i o r C h a i n ID= " BC01 " > 19 < E x p e c t a n c y I D >EXP01< / E x p e c t a n c y I D > 20 < E x p e c t a n c y I D >EXP02< / E x p e c t a n c y I D > 21 < E x p e c t a n c y I D >EXP03< / E x p e c t a n c y I D >

22 < E x p e c t a n c y T r a n s i t i o n ID= " ET001 " S o u r c e = " EXP01 " T a r g e t = " EXP02 " > 23 <CausedBy >BF01< / CausedBy >

24 < / E x p e c t a n c y T r a n s i t i o n >

25 < E x p e c t a n c y T r a n s i t i o n ID= " ET002 " S o u r c e = " EXP02 " T a r g e t = " EXP01 " >

26 <CausedBy >BF09< / CausedBy >

27 < / E x p e c t a n c y T r a n s i t i o n > ( . . . ) 28 < / B e h a v i o r C h a i n >

29 < / B e h a v i o r >

Código-Fonte 5.1. Trecho de código XML descrevendo o comportamento para o ambiente.

5.4.6 Fase 6: Implementar o Ambiente Interativo

Na implementação deste estudo de caso foi utilizado a plataforma PlaySEM [3] para a ren- derização de efeitos sensoriais, compatível com o padrão MPEG-V. Esta plataforma é composta por:

• PlaySEM SE Video Player: responsável pela reprodução de vídeo e entrada dos metada- dos de efeitos sensoriais;

• PlaySEM SE Renderer: responsável pela transformação de metadados de efeitos sensori- ais em comandos e acionamento dos dispositivos que renderizarão os efeitos sensoriais; • PlaySEM Device Control: vinculado ao SE Renderer, um programa embarcado em um

microcontrolador que recebe os comandos para acionar os dispositivos físicos.

Em conjunto, os três softwares são capazes de reproduzir vídeos com anotações de efeitos sensoriais e renderizá-los no ambiente do usuário consumidor de multimídia[3].

A Figura 5.22 ilustra os softwares e os hardwares que formam o esquema conceitual para o utilizador (um ator teatral, por exemplo). O usuário fornece como entrada os movimentos das mãos e o sensor Kinect traduz esses movimentos como informações para o aplicativo interativo. Estes dados são processados pelo ambiente interativo, que produz dois tipos de saída: uma está

associada a alterações na parte virtual do ambiente e a outra está relacionada a mudanças no ambiente real. Na última, a saída corresponde a descrições MPEG-V (mapeadas pelo SEM) e consiste na descrição dos efeitos desejados, incluindo sua intensidade e duração. Estas des- crições devem ser enviadas para a composição do efeito sensorial (SER). O SER converte as descrições em comandos para um ou mais atuadores, causando alguma ação física a ser exe- cutada, tais como iluminação, vibração ou ação motor. Por fim, os atuadores são conectados ao Arduíno e controlados por ele para a produção de efeitos sensoriais, conforme os comandos recebidos da ferramenta SER.

Figura 5.22. Cenário previsto para o ambiente com efeitos multissensoriais. [2, 3]

Esta aplicação utilizou-se de todos os conceitos do TTAir framework [16], adotando a lin- guagem C# .NET para a implementação do cenário. Seguindo os conceitos do TTAir, foi pro- vido um conjunto de camadas na arquitetura para simplificar o desenvolvimento das aplicações e suportar os estágios descritos na abordagem 3W1H (Capítulo 3). Similar ao descrito no Ca- pítulo 4, a implementação em C# .NET adotou camadas de Acesso a Dados (fornecido pelo SDK do Kinect para Windows), Processamento e Ação (ambos fornecidos por um componente orientado a eventos, especialmente adaptado para o exemplo).

Como entrada de dados, esta aplicação recebe um arquivo XML contendo as regras de com- portamento do ambiente (Behavior Chain). A Figura 5.20 ilustra o diagrama com a composição da Behavior Chain, utilizada para controlar os dispositivos sensoriais (ventiladores, vibrador e luz) através de gestos manuais, detalhados na Tabela 5.21. Três expectativas ou diferentes contextos foram mapeados no cenário proposto. Cada contexto é um barramento de eventos, onde somente os seus eventos esperados serão processados. O arquivo XML, apresentado pelo Trecho de Código 5.1, descreve todos os componentes especificados, relacionados com as inte- rações, reações, Behavior Frames, Behavior Chains e expectativas do ambiente pretendido.

A ferramenta SEVino [126] foi utilizada para criar descrições MPEG-V para o grupo de reações ACT02 a ACT09. Quando uma determinada reação é acionada na aplicação, uma des- crição MPEG-V é enviada para a ferramenta SER, responsável por renderizar todos os efeitos sensoriais relacionados com a reação disparada. A ferramenta MPEG-V SER fornece uma se- paração do conteúdo multimídia do processamento dos efeitos sensoriais, como luz, vento e vibrações. Ela utiliza o protocolo Universal Plug and Play (UPnP) para receber as descrições MPEG-V e para controlar os efeitos sobre os dispositivos sensoriais adequados no ambiente. Esta abordagem oferece a possibilidade de reuso de código e de atuadores em outros ambientes interativos.

O Trecho de Código XML 5.2 demonstra as anotações MPEG-V para a ação ACT07, res- ponsável por reproduzir as cores do arco-íris no exemplo.

1 < !−− > ########## C h a n g i n g C o l o r ##########< /−−> 2 < n s 2 : E f f e c t x s i : t y p e = " n s 3 : L i g h t T y p e ? . . . s i : p t s = " 1000 " n s 3 : c o l o r = " u r n : m p e g : m p e g −v : 0 1 −SI− ColorCS−N S : r e d " / > 3 < n s 2 : E f f e c t x s i : t y p e = " n s 3 : L i g h t T y p e ? . . . s i : p t s = " 99000 " n s 3 : c o l o r = " u r n : m p e g : m p e g −v : 0 1 −SI− ColorCS−N S : i n t e r n a t i o n a l _ o r a n g e " / > 4 < n s 2 : E f f e c t x s i : t y p e = " n s 3 : L i g h t T y p e ? . . . s i : p t s = " 198000 " n s 3 : c o l o r = " u r n : m p e g : m p e g −v : 0 1 −SI− ColorCS−NS:amber " / > 5 < n s 2 : E f f e c t x s i : t y p e = " n s 3 : L i g h t T y p e ? . . . s i : p t s = " 306000 " n s 3 : c o l o r = " u r n : m p e g : m p e g −v : 0 1 −SI− ColorCS−N S : d a r k _ p a s t e l _ g r e e n " / > 6 < n s 2 : E f f e c t x s i : t y p e = " n s 3 : L i g h t T y p e ? . . . s i : p t s = " 432000 " n s 3 : c o l o r = " u r n : m p e g : m p e g −v : 0 1 −SI− ColorCS−N S : b l u e " / > 7 < n s 2 : E f f e c t x s i : t y p e = " n s 3 : L i g h t T y p e ? . . . s i : p t s = " 576000 " n s 3 : c o l o r = " u r n : m p e g : m p e g −v : 0 1 −SI− ColorCS−N S : h a n _ p u r p l e " / > 8 < n s 2 : E f f e c t x s i : t y p e = " n s 3 : L i g h t T y p e ? . . . s i : p t s = " 729000 " n s 3 : c o l o r = " u r n : m p e g : m p e g −v : 0 1 −SI− ColorCS−N S : v i o l e t _ r y b " / > 9 < n s 2 : E f f e c t x s i : t y p e = " n s 3 : L i g h t T y p e " a c t i v a t e = " f a l s e " s i : p t s = " 900000 " / >

Código-Fonte 5.2. Trecho de código XML, com as anotações no padrão MPEG-V, para a reação ACT07

O projeto da arquitetura, em um nível mais baixo de abstração, é mostrado na Figura 5.23. A aplicação é composta por seis componentes principais: (i) BC XML Input, para a carga da Behavior Chaincomo entrada; (ii) BC Parser, responsável pelo parser do XML Behavior Chain e associar as interações e reações com seus respectivos objetos implementados; (iii) BC Mana- gement, que gerencia as transições dos estados e controla o barramento de eventos; (iv) Recog- nizers, que contém a implementação dos algoritimos para reconhecer os gestos; (v) MPEG-V Actions, que contém as reações com as descrições dos efeitos sensoriais; e (vi) UPnP Client para comunicação com SER. O SER é composto por quatro componentes básicos: (a) UPnP Servicespara oferecer os serviços de comunicação com as aplicações cliente; (b) MPEG-V Par- ser for actionsque converte os elementos XML em comandos para os atuadores; (c) Commands Managerpara gerenciar a ordem temporal para os comandos serem enviados aos atuadores; e, por último (d) Actuators, que executa fisicamente os efeitos sensoriais no ambiente do usuário como luz, vento e vibração. Os serviços e as variáveis de estado do SER também podem ser vistos na Figura 5.23.

Por último é apresentado o ambiente real , utilizado neste estudo de caso (Figura 5.24), composto por: (i) Sensor Kinect para captura dos gestos; (ii) Ultrabook, rodando a aplicação interativa para reconhecer os getos do usuário; (iii) MiniPC, contendo software SER conectado ao Arduíno; e (iv) LED Strip Lights, conectado ao Arduíno, para executar os efeitos luminosos. Apesar da ferramenta MPEG-V SER suportar os efeitos de vento e vibração, esses atuadores fo- ram suprimidos do estudo de caso por ainda não estarem completamente integrados ao circuito, no momento da escrita desta pesquisa.

Figura 5.23. Arquitetura proposta para a implementação do ambiente com efeitos multissensoriais [2,3].

Figura 5.24. Ao lado esquerdo, o ambiente de teste e seus componentes. À direita, é exibida uma sequencia de efeitos. Um vídeo de demonstração está disponível em: <http://www.touchair.com.br/?p= 130>