10
Jul 12

Protótipo - módulo de funcionamento em rede

Os últimos tempos tem sido dedicados ao desenvolvimento do protótipo, especificamente a componente de comunicação em rede. As tentativas de colocar esta componente a funcionar foram várias. Pretendo neste post descrever de uma forma resumida os vários testes efetuados, os problemas encontrados no desenvolvimento e o estado atual da componente de rede do projeto.
A primeira tarefa foi desenvolver a componente de rede, através da criação de um servidor e de um cliente, e colocar os dois a comunicar. Esta componente foi programada em javascript no Unity3D. Para aprender esta componente foram essenciais tutoriais de rede disponíveis na internet. 
O sistema como está desenvolvido é do tipo ligação directa, em que os computadores na rede funcionam como servidores e clientes simultaneamente. Assim cada computador processa os dados de forma individual e envia os resultados para o servidor que de seguida actualiza/sincroniza as acções em todos os computadores na rede. Desta forma os movimentos associados ao avatar que o utilizador controla são visíveis nos outros computadores na rede. De forma resumida, o avatar que controlo é visto pelos outros utilizadores na rede a mexer-se.
Após a criação do servidor, e a ligação com o cliente funcionar com sucesso, o passo seguinte foi sincronizar, na rede, a animação proveniente do sensor e por conseguinte associada ao avatar.  Esta componente é essencial para a questão de um ambiente colaborativo funcionar. Assim os testes de sincronização da animação do avatar começaram. Começaram também alguns problemas e dores de cabeça, que acabaram por atrasar o desenvolvimento do protótipo.
Houve uma incompatibilidade entre a componente de animação e de comunicação em rede. De uma forma resumida, era necessário o avatar estar no cenário para funcionar a componente de animação do avatar, mas por outro lado para a componente de rede funcionar o objeto não podia estar presente no cenário. Por forma a contornar este problema foram efetuados vários testes. Uma das possibilidades pensadas para contornar o problema era instanciar o objeto sem estar presente no cenário, mas os testes efetuados não resolveram o problema. Foram colocados dois avatares no cenário, uma a interagir com o sensor, e um segundo a copiar os movimentos do primeiro e a enviar para a rede. Esta solução não funcionou como o esperado. Neste momento do desenvolvimento já era complicado identificar a origem do problema.
Até ao momento foi muito importante uma reunião efetuada com  o Professor Telmo, tanto na componente de rede, como algumas classes desenvolvidas em C#. Com a ajuda do Professor foi possível fazer testes e perceber as incompatibilidades no desenvolvimento, e foram sugeridas alternativas. 
Um dos momentos decisivos e que ajudou (e muito!) a resolver este impasse no desenvolvimento foi o contacto estabelecido com um colega de ECT da Universidade de Aveiro. Ele está a trabalhar e a desenvolver na mesma área da interação controlada por gestos em ambientes 3D distribuídos, e após uma reunião foi possível esclarecer algumas dúvidas.
A primeira recomendação do colega foi de mudar de framework. A framework recomendada é a OpenNI Toolkit para o Unity3D.
Esta framework apresenta uma estrutura das classes diferente, o que permitiu fazer uma integração com o módulo de rede de uma forma diferente. E assim permitir a sincronização do avatar no ambiente 3D.
De momento o protótipo já se pode considerar como sendo multiutilizador, pois permite a sincronização de dois avatares no mesmo cenário em tempo real. Dois utilizadores ligados, com dois sensores, cada utilizador com o respectivo sensor a controlar o avatar no ambiente colaborativo distribuído. 
Alguns pormenores tem de ser trabalhados, especialmente a posição dos avatares no cenário (evitar a sbreposição dos elementos). 
Até depois!

 

publicado por paulamargarida às 19:32 | comentar
25
Jun 12

Enquadramento teórico (atualização)

Olá!

O enquadramento teórico da dissertação está em constante atualização, novas referências, novos tópicos que importa referir. Alguns dos documentos que acho importante referir que foram analisados e importantes para o desenvolvimento da investigação.

Estes são alguns artigos que considero que vieram enriquecer o enquadramento teórico em aspetos que não estavam bem consolidados.

 

Até breve!

publicado por paulamargarida às 14:50 | comentar
23
Mai 12

Protótipo e escrita

Olá!

Este post é mais uma reflexão pessoal do que um post com conteúdo científico resultado da investigação.

Neste momento do meu mestrado, a pouco tempo da entrega em  época normal, a confusão reina na minha cabeça. O protótipo está a avançar a um ritmo inferior ao que eu esperava, pelo que os desenvolvimentos, por poucos que sejam são bem-vindos =)

Para avançar com a escrita da dissertação preciso do protótipo numa versão muito mais completa e estável para que seja possível testar junto dos utilizadores, para depois analisar dados, escrever conclusões... Mas esta versão estável quetão desejada ainda anda em desenvolvimentos.

Erros e problemas no protótipo, e atrás de um problema está sempre mais algum escondido à espera para se revelar. O medo do desconhecido por vezes paraliza-me e deixa-me sem saber o que fazer e o que pensar, mesmo quaqndo se trata de questões ou decisões simples de tomar.

Vou voltar ao protótipo e perceber os problemas relacionados com a sincronização da animação em rede!

 

Até breve!

 

publicado por paulamargarida às 11:10 | comentar
23
Mar 12

Protótipo em desenvolvimento

Neste momento do projeto de dissertação desenvolve-se a componente mais prática do projeto, o

protótipo funcional.

Para o desenvolvimento do protótipo é necessário ter sempre presente os objetivos do projeto, o software e hardware foram escolhidos tendo em conta estas especificações. O sensor de movimento é o Kinect para a Xbox da Microsoft, e o sofware de desenvolvimento do ambiente é o Unity 3D, juntamente com frameworks como a OpenNI (Open Natural Interaction).

A componente prática, de uma forma muito resumida, divide-se em três grandes módulos: a interação, comunicação em rede e modelação em 3D e design da interface.

Quando foi desenvolvido o planeamento do projeto (onde se inclui o cronograma) foi decidido, juntamente com os orientadores, que o módulo que causava mais dúvidas, comunbicação em rede, devia ser o primeiro a ser desenvolvido e estudado a um nível prático de implementação.

Ao nível de programação do protótipo, esta processa-se em javascript e C# (componente de interação utilizador -avatar).

Até ao momento as experiências ao nível de rede já permitiram colocar 2 computadores com um cenário partilhado na mesma rede. Um computador a funcionar como servidor e o outro como cliente. Foi possível testar a animação dos elementos, presentes no cenário. A construção da componente de rede permite a criação de um servidor do tipo distribuído, em que qualquer computador na rede pode ser conectado como servidor ou coomo cliente.A componente de interação utilizadr-aavatar está também desenvolvida.

A interface de utilização do Unity 3D e  programação não é como esperava, por vezes tornou-se mais complexo do que eu pensava. Pequenos erros e problemas demoraram a ser resolvidos o que atrasou um pouco o desenvolvimento.

De momento a componente de comunicação em rede já está funcional.

Num âmbito mais teórico, o trio pesquisa, leitura e escrita continuam (a escrita é mais complicado!). Uma vez que esta área de investigação está em constante mudança e evolução é necessário acompanhar as evoluções na área.

Os registos de modificações/evoluções no software que servem de base ao desenvolvimento do protótipo estão registados. Assim como novas aplicações desenvolvidas nas mais diversas áreas (turismo, saúde, entertenimento, educação) onde a interação natural está a ser utilizada são alvo de registo.

 

Quando tiver mais novidades de desenvolvimento coloco aqui no blog!

 

Até breve =)

publicado por paulamargarida às 14:37 | comentar
18
Jan 12

Radiohead e 3D motion capture system

Radiohead "House of Cards" from Justin Glorieux on Vimeo.

 

Para quem aprecia (adora Radiohead como eu) e estuda/ investiga/ tem interesse por sistemas de captura de movimento 3D (motion capture systems 3D) fica com interesse em perceber qual é a ligação entre estas duas temáticas, à primeira vista tão diferentes, mas com uma análise mais detalhada tão próximos.

O vídeoclip da música "House of  Cards" da banda Radiohead foi desenvolvido tendo por base a captura em 3D do cantor Tom Yorke. Este sistema desenvolvido em 2008 efetua a projeção de padrões no cenário, que são visíveis a olho nu. Este sistema de captura de imagens em profundidade (diferente do utilizado em sensores como o kinect) permite recolher imagens com uma resolução boa.


 "A visible structured light approach was famously used as the basics for Radiohead's breakthrough 2008 cameraless music video, "House of Cards", from the album In Rainbows. With the aid of geometric Informatics custom system, close-up recordings of singer Tom Yorke's face were captured as point cloud data, wich allowed the "synthetic camera" viewpoints to be directed in postproduction. The structured light approach was ideal for capturing the singer's detail facial expressions since this technique can be used to capture subjects within a couple of feet." (Keane S, Hall J, Perry P. , 2012)

 

 

Visible Structured light setup (Keane S, Hall J, Perry P. , 2012)


O código utilizado para o desenvolvimento do projecto de reconhecimento facial do Tom Yorke está disponível e acessível para o público no repositório de código da google.

 Este é um projeto que contempla inovação tecnologica e música num mesmo projeto.

 

Mais informações:

Exploração e visualização dos elementos em 3D

Recursos utilizados no desenvolvimento do reconhecimento 3D

 

Até depois!

 

 

publicado por paulamargarida às 17:13 | comentar
14
Jan 12

Sensores de movimento e aspetos a acautelar no desenvolvimento de aplicações com dispositivos de captura de movimento

O aparecimento dos dispositivos de controlo de movimento (motion controllers) possibilitou e facilitou a utilização, não só nos jogos, mas também na construção de aplicações noutras áreas. 

Sensores são dispositivos que convertem um sinal físico num sinal elétrico passível de ser manipulado no computador, ou seja o sensor deteta modificações no ambiente. As alterações no ambiente podem ser de várias naturezas, por isso existem vários tipos de sensores, e o tipo de sensores mais comuns, no âmbito das interfaces controladas por gestos são sensores de proximidade, luz, pressão, som, movimento, orientação e tilt (inclinação, ângulo).

A investigação da interação humano-computador na área dos sensores pretende perceber como estes podem promover e melhorar a interação, na elaboração de novos dispositivos de entrada, ou no desenvolvimento de aplicações com comportamentos mais humanos. 

No decorrer do desenvolvimento aplicações com sistemas de reconhecimento de gestos existe um conjunto aspetos a acautelar no que diz respeito à utilização de sensores. Os sensores apresentam características muito específicas, pelo que é importante averiguar potenciais problemas associados. 

 

Uma das primeiras recomendações apresentadas por Dan Saffer diz respeito à escolha do tipo de sensor que se pretende para a aplicação. O tipo de sensor, ou sensores no caso de haver uma conjugação de vários, determina o tipo de interação gestual que se pode ter na aplicação. Esta questão está relacionada com os vários aspetos técnicos presentes nos vários sensores, como é o caso da distância limite que o sensor consegue detetar.

A necessidade de calibrar o sensor ao nível da sensibilidade é outro aspeto importante no desenvolvimento de aplicações controladas por gestos. A calibração do sensor irá evitar que haja um sistema demasiado sensível e que responde sem o utilizador o desejar, ou de ter um sistema que não responde quando solicitado às interações do utilizador. (Saffer, 2009)
Os sensores presentes nos nas aplicações controladas por gestos são muitas vezes sensíveis à luz ambiente, pelo que é necessário apresentar a aplicação muitas vezes num ambiente estável. A mesma situação acontece quando o som ambiente é variável, no caso de haver comunicação por voz pode haver interferência. 
 

Outro conselho está relacionado com a prevenção de erros nas interfaces controladas por gestos. Uma das formas sugeridas de evitar erros, é a confirmação de determinadas ações realizadas pelo utilizador (sejam intencionais ou acidentais).

O feedback é uma componente importante a ter em consideração no desenvolvimento de aplicações interativas, mas deve ser ainda mais potenciado quando existe um sistema de reconhecimento de movimentos. No caso de ocorrer um erro, uma falha do sistema, o utilizador deve saber o que se esta a acontecer com a aplicação, caso contrario o utilizador pode pensar que esta a proceder de forma incorreta (quando na verdade o problema reside na aplicação). 

 

“Usually, if there is any chance of recognition failure, the system should provide feedback on all recognition results, errors or otherwise. If possible, the system should provide some indication of the nature of any failure so that the user can modify his or her own behavior to meet the system’s expectations.”  (Wilson, 2008)
publicado por paulamargarida às 18:00 | comentar

Usabilidade nas aplicações com a utilização do Kinect

Nielsen (Nielsen, 2010) refere num artigo, intitulado,” Kinect gestural UI: first impressions”, que o "Kinect presents a far more advanced gesture-based user experience than any previous system seen outside the fancy research labs." Nielsen indica o sensor Kinect como um importante dispositivo na promoção da experiência de utilização, em especifico em interfaces controladas por gestos. Menciona ainda outra característica favorável ao sensor, como o preço acessível. Nielsen no mesmo artigo faz referência ao espaçamento temporal entre a investigação e pesquisa e a implementação prática e mais acessível à generalidade dos utilizadores. Um exemplo que a história indica é a apresentação do rato por Doug Engelbart em 1964 e a sua comercialização em 1984.

Apresenta ainda uma listagem de fraquezas de ao nível da  usabilidade nas interfaces controladas por gestos (em específico dos jogos da Xbox).

Visibilidade - Necessidade de memorizar as instruções, previamente ao jogo começar. Inexistência de affordances

Feedback - Dificuldade em relacionar a causa-efeito. Perceber porque determinadas ações ocorrem pode ser um entrave.

Consistência e standards - Não existem, ainda, standards para interações gestuais. O exemplo do pausar no jogo da Xbox - colocar o braço num ângulo de 45 graus. Trata-se de um gesto que não é natural ao utilizador.

Estes são alguns problemas de usabilidade apontados por Nielsen, resultado das suas experiencias com os jogos da Xbox e com o Kinect.


Affordances – uma das várias características dos objetos ou ambientes que dá indicações imediatas de como se deve interagir com uma ou várias funcionalidades do objeto em questão. Potencial de um objeto para que ele seja manipulado da forma como foi pensado para funcionar.

publicado por paulamargarida às 17:58 | comentar | ver comentários (1)

Interação natural e interação em ambientes 3D

Os paradigmas de interação evoluíram juntamente com a tecnologia, desde a linha de comandos, posteriormente a interfaces gráficas e o paradigma mais recente a interação natural. A ideia principal subjacente à evolução dos paradigmas de interação é a de desenvolver sistemas mais fáceis de utilizar pelo utilizador, que sejam mais intuitivos e naturais de utilizar.

 

 

Atualmente assiste-se a um desenvolvimento no que diz respeito às interfaces, e está surgir uma nova evolução, as interfaces naturais (Natural User interface). É expectável que a utilização de interfaces naturais permitam uma diminuição da curva de aprendizagem por parte dos utilizadores e utilizem o sistema de uma forma mais natural possível. 

 

Dentro da categoria das interfaces, existem as Interface 3D (user interface 3D) que envolvem a interação humano-computador na qual as ações dos utilizadores ocorrem num ambiente 3D com dispositivos de entrada 3D ou com dispositivos de entrada 2D, mas posteriormente mapeados para 3D. Controlam esses interfaces dispositivos de entrada e paradigmas (técnicas) de interação que permitem manipular elementos 3D gerados por computador. 

 

A interação em ambientes 3D permite aos utilizadores terem uma sensação de presença, nesse ambiente virtual. A interação em ambientes 3D é mais direta e pode permitir diminuir a distância cognitiva, pois os utilizadores realizam tarefas mais naturais, reduzindo assim o tempo de resposta entre a ação do utilizador e o feedback do sistema. 

Existem resumidamente quatro paradigmas de interação nas aplicações 3D (Bowman et al., 2005): navegação; seleção; manipulação; e controlo do sistema. Existem ainda outras formas que podem ser consideradas, mas apenas são utilizadas em aplicações com contextos muito específicos. 

 

Até depois!

 

publicado por paulamargarida às 16:41 | comentar
13
Jan 12

Apresentação

Olá!

Aqui fica a apresentação do plano de investigação.

 

Apresentacao

 
Até depois!
publicado por paulamargarida às 12:42 | comentar
12
Jan 12

Entregas e apresentações

Olá!

Após umas semanas (meses) de escrita e pesquisa, leituras e mais escrita (pesquisa, leituras, um ciclo infinito), os primeiros documentos relativos à investigação foram entregues na segunda-feira =)

Entreguei o enquadramento teórico e o plano de investigação.
Alguns dos pontos abordados nestes documentos estão aqui no blog.
Amanhã é o dia da apresentação (já se sentem os nervos).
A apresentação está quase concluída, faltam alguns detalhes e uma revisão cuidada.


Até amanhã!
publicado por paulamargarida às 17:37 | comentar