4.5 Action Controller Module
4.7.2 TTAir Button
Precursor da ideia do Gui Module, descrito na Seção 4.3.2, este exemplo tinha como fina- lidade apresentar uma biblioteca que simulava botões virtuais em tela [122, 123]. Basicamente eram utilizadas três imagens e a depender do estado dos botões (inicial, selecionado ou clicado) estas imagens eram sobrepostas, dando a impressão visual para o usuário que o botão estava sendo clicado ou selecionado, conforme sua interação (Figura 4.20).
A biblioteca utilizava o Presentation Module, com instâncias das classes LayerRGB, Laye- rImagee LayerSkeletonBone para exibir, respectivamente, o sensor RGB do Kinect, as imagens desejadas, e capturar as coordenadas da mão do usuário. Além disso, reconhecedores da po- sição da mão do usuário foram implementados. Estes reconhecedores eram responsáveis por detectar se a mão do usuário está dentro da área do botão e detectar se o usuário clicou no botão.
1 p u b l i c c l a s s A c t i o n _ B u t t o n _ O k _ S e l e c t e d e x t e n d s A A c t i o n B u t t o n {
2 @ O v e r r i d e p u b l i c v o i d r u n ( ) {
3 S y s t e m . o u t . p r i n t l n ( " B o t ã o OK S e l e c i o n a d o ! " ) ;
4 }
5 }
Código-Fonte 4.11. Trecho de código exemplificando a implementação de uma ação
1 / / I n s t a n c i a n d o a A c t i o n e o b o t ã o OK 2 A c t i o n _ B u t t o n _ O k _ S e l e c t e d a c t = new A c t i o n _ B u t t o n _ O k _ S e l e c t e d ( ) ; 3 T T A i r B u t t o n ok = new T T A i r B u t t o n ( ) ; 4 ok . s e t T i t l e ( "OK" ) ; 5 / / A d i c i o n a n d o a a ç ã o a c t ao e s t a d o SELECTED do b o t ã o . 6 ok . a d d A c t i o n ( E S t a t e . SELECTED , a c t ) ; 7 ok . s e t L o c a t i o n ( 5 0 , 1 0 0 ) ; 8 ok . s e t S i z e ( 2 5 0 , 3 0 0 ) ;
9 / / I n s t a n c i a n d o o p a i n e l v i s u a l e a d i c i o n a n d o o b o t ã o 10 T T A i r L a y e r P a n e l msp = new T T A i r L a y e r P a n e l ( ) ; 11 msp . a d d L a y e r ( ok ) ; 12 ALayer r g b = n u l l; 13 Try { 14 r g b = new LayerRGB ( ) ; 15 }c a t c h ( E x c e p t i o n e ) { 16 S y s t e m . o u t . p r i n t l n ( " E r r o ao a d i c i o n a r o s e n s o r RGB do k i n e c t : " + e . g e t M e s s a g e ( ) ; ) ; 17 } 18 / / A d i c i o n a n d o a imagem do s e n s o r RGB do K i n e c t ao p a i n e l e i n s t a n c i a n d o o J F r a m e 19 msp . a d d L a y e r ( r g b ) ; 20 J F r a m e f r a m e = new J F r a m e ( ) ; 21 f r a m e . s e t S i z e ( 6 4 0 , 4 8 0 ) ; 22 / / A d i c i o n a n d o o p a i n e l e a imagem RGB ao f r a m e 23 f r a m e . add ( msp ) ; 24 f r a m e . s e t V i s i b l e (t r u e) ;
Código-Fonte 4.12. Trecho de código do TTAirButton para criar e associar uma ação ao estado do botão.
Eventos de comunicação são enviados indicando se houve mudança para o estado inicial, selecionado ou clicado. Na mudança de estado, caso exista alguma ação associada, ela será executada. Todas as ações devem implementar o método da classe abstrata AActionButton. Os Trechos de Códigos, 4.11 e 4.12, mostram exemplos de como criar uma nova ação a ser executada pela biblioteca e como instanciar e associar uma ação ao botão.
A Figura 4.20 ilustra o resultado final da aplicação em execução. Nela, é exibida a imagem do botão sobreposta à imagem do sensor RGB. No exemplo, é possível observar o usuário in- teragindo com o botão virtual em três momentos. A imagem da esquerda mostra o momento em que o usuário visualiza o botão. A do meio mostra o usuário posicionando sua mão direita dentro do botão virtual (esta interação faz com que a biblioteca mude a imagem exibida para dar a impressão que o botão foi selecionado). Por fim, à direita, o usuário estende seu braço, reduzindo a distância entre sua mão e o ponto de referência (coordenadas do pescoço do usuá- rio), disparando o evento de clique. Na sequência, a biblioteca altera a imagem do botão para dar a sensação de que foi selecionado.
Figura 4.20. Execução da aplicação utilizando a biblioteca TTAirButton. Na esquerda o botão é exibido em seu estado inicial. No meio, o botão foi selecionado. Na direita, o botão é clicado.
4.8 CONSIDERAÇÕES FINAIS
Este capítulo apresenta toda a arquitetura do framework TTAir-Touch The Air, que consolida as Fases 6 e 7, além de concretizar os conceitos da metodologia 3W1H, descrita no Capítulo 3. Como por exemplo, os conceitos relacionados com a associação das interações com as reações, os reconhecedores de interações, as regras de comportamento do ambiente, os contextos e suas transições.
A arquitetura do TTAir apresentada é dividida em camadas (Acesso a Dados, Processa- mento e Ação), extraídas a partir da observação dos trabalhos pesquisados no Capítulo2. No que diz respeito ao reuso e padronização, mostra maneiras de resolver e padronizar as tarefas comumente executadas por desenvolvedores desta área. Exemplifica como reutilizar as imple- mentações das reações (Actions) e dos reconhecedores de interações (Regognizers). Permite a troca de experiências entre desenvolvedores que utilizem o TTAir como base.
No tocante à associação e configuração de todo o comportamento do ambiente, são apresen- tadas funcionalidades que permitem a mudança das associações interação/reação, dos contextos e das transições entre os contextos. Estas funcionalidades e todas as anotações do comporta- mento desejado para o ambiente, estão descritas em arquivo XML. O TTAir possibilita a leitura e reconfiguração dos objetos em memória, através desse arquivo XML, em tempo de execu- ção. Somado a isso, é possível monitorar todo o acontecimento na execução do ambiente por meio dos arquivos de LOG. Este fato permite que o desenvolvedor experimente diversas confi- gurações de ambiente e acompanhe o real acontecimento da sua execução. Para efetuar testes rápidos e prototipação de modificação das cadeias de comportamento do ambiente, é disponi- bilizada uma IDE Web. Esta IDE Web (Anexo A), permite a configuração, alteração de todo o XML de comportamento de forma gráfica e mais intuitiva para o projetista.
Referente às formas de apresentação/visualização das informações, são apresentadas di- versas camadas de abstração e Widgets que deixam transparente para o desenvolvedor toda a complexidade de montagens e exibição em tela. O TTAir permite a sobreposição das camadas de visualização e a navegação entre tais camadas, podendo deixá-las invisíveis, configurar o tempo em que está visível ou até trocar a ordem da pilha de sobreposição, por exemplo.
A parte da camada de acesso é apresentada como uma abstração dos dispositivos, sensores e banco de dados, pois este capítulo exemplifica maneiras de acessar sensores diferentes e dis- positivos distintos, utilizando poucas linhas de código. Caso sejam utilizadas as camadas de visualização, disponíveis no módulo de apresentação, o acesso aos sensores é 100% transpa- rente para o desenvolvedor.
Para avaliar a aplicabilidade do framework TTAir, foi realizado um experimento com alunos com faixa etária entre 15 e 17 anos, dos cursos integrados na área de informática e de auto- mação do Instituto Federal de Sergipe. O experimento foi iniciado com uma explanação geral da arquitetura do TTAir e de exemplos simples de uso. Em seguida, foi solicitado aos alunos o desenvolvimento de aplicações a partir dos recursos oferecidos pelo framework. Todo o de-
senvolvimento foi acompanhado pelos autores do TTAir no laboratório de pesquisa do Instituto Federal de Sergipe. No laboratório, existiam 15 computadores com 4Gb de memória, todos equipados com o Kinect XBox, da Microsoft.
Após o experimento, alguns resultados se demonstraram interessantes: (i) Os alunos mostraram- se bastante motivados com a tarefa, gerando aplicações, num intervalo de até 20 horas (em 5 aulas com duração de 4 horas por dia), no laboratório de pesquisa5; (ii) Existem fortes indí- cios de que os recursos oferecidos pelo framework reduzem o trabalho dos desenvolvedores, tornando mais simples e eficiente a tarefa de construir ambientes virtuais interativos. Uma das aplicações produzidas, a partir desse experimento, foi a TTAir Lamp. Esta aplicação permite que o usuário controle uma lâmpada, clicando em uma imagem virtual. Todo o processo de construção e artefatos produzidos é detalhado no Capítulo 5.
Em suma, questões práticas levantadas no Capítulo 2 - Como guiar a construção de ambien- tes interativos de maneira estruturada e metodológica? e Como aproveitar componentes/técnicas já implementados por outros e aplicar na concepção do ambiente interativo? - são respondidas neste capítulo. Além disso, é colocada em prática a abordagem proposta no Capítulo 3, auto- matizando muitas das etapas relacionadas à implementação, facilitando o reuso de código na concepção e prototipagem de aplicações para ambientes interativos. A avaliação experimental feita a partir de exemplos de uso, descritos no Capítulo 5, permite afirmar que existem fortes indícios de que o framework TTAir facilita o desenvolvimento de aplicações virtuais intera- tivas, assim como reduz a quantidade de linhas de código para se executar tarefas típicas de desenvolvimento destas aplicações.
Por possuir características genéricas em sua arquitetura e concepção, acredita-se que a so- lução apresentada possa ser aplicada em diversas áreas da computação, tais como hand-gesture recognition, human-activity recognition, body biometrics estimation, 3D surface reconstruction e immersive systems, dentre outras. Entretanto, são necessários mais testes para uma afirmação consistente.
Por fim, construir ambientes interativos seguindo a arquitetura e os conceitos propostos pelo frameworkse mostra mais produtivo em termos de tempo e reuso de código, além de possibilitar uma colaboração e troca de experiências com cientistas de áreas distintas que utilizem a mesma arquitetura como base de seus experimentos.
5
Neste capítulo, serão detalhados os estudos de casos envolvendo as principais contribuições desta pesquisa e apresentada uma avaliação prática com profissionais de mercado, a respeito da utilização e aceitação da aborda- gem 3W1H no processo de construção de um estudo de caso de ambiente interativo.ESTUDOS DE CASO
Neste capítulo, serão detalhados os estudos de casos envolvendo as principais contribuições desta pesquisa: a abordagem 3W1H (Capítulo 3) e o framework TTAir (Capítulo 4). Ao final deste capítulo (Secção 5.5), é apresentada uma avaliação prática com profissionais de mercado a respeito da utilização e aceitação da abordagem 3W1H no processo de construção de um estudo de caso de ambiente interativo.
Os estudos de caso aqui detalhados são:
i) O TTAirTV, um exemplo de TV Interativa cujo objetivo é possibilitar que um usuário controle a televisão com gestos manuais;
ii) O TTAirLamp, que tem como objetivo controlar uma lâmpada através de gestos manuais, simulando um ambiente de automação residencial;
iii) O TTAirHouse, que tem como finalidade auxiliar o aprendizado e motivar alunos e pes- quisadores a aplicarem a abordagem 3W1H proposta e a utilizarem as funcionalidades do framework TTAir;
iv) Ambiente Interativo com Efeitos Multisensoriaisque reúne os conceitos da abordagem 3W1H, utiliza-se do framework TTAir para produzir efeitos sensoriais em conformidade com o padrão MPEG-V.
Todos estes estudos de caso serão descritos do decorrer deste capítulo. Além deles, ou- tros experimentos também foram produzidos e apresentados em congressos satélites e feiras científicas voltadas para alunos do Instituto Federal1.
1Os detalhes, desses e outros estudos de caso podem ser encontrados através do site do grupo de pesquisa
<http://www.touchair.com.br/>
5.1 TTAIRTV: UM EXEMPLO DE TV INTERATIVA
O primeiro estudo de caso corresponde a um cenário real de interação com a TV por gestos, similar aos apresentados pela indústria [124, 125]. Neste ambiente o usuário pode interagir com a TV através de gestos manuais, executando todos os comandos básicos de um controle remoto, mas sem a necessidade de apertar seus botões.
A seguir, serão apresentados todos os artefatos levantados em cada uma das etapas propostas pela abordagem 3W1H e por fim, o resultado final da real implementação e funcionamento deste ambiente.