Este documento discute a construção de aplicações de Realidade Cruzada Projetiva utilizando openFrameworks e Arduino. Ele apresenta quatro casos: 1) programa vazio, 2) rastreamento de cores, 3) projeção calibrada e 4) uso de hardware no loop de interação. O objetivo é demonstrar técnicas básicas de processamento de imagem, rastreamento visual, calibração de projeção e interação com dispositivos físicos para desenvolvimento de aplicações de Realidade Cruzada.
3. “The product is no longer the
basis of value. The experience
is.”
Venkat Ramaswamy
The Future of Competition
3
Preâmbulo
11/05/2014 fb.com/RVA.BR
4. Valor de uma boa experiência
4
Preâmbulo
11/05/2014 fb.com/RVA.BR
5. IHC – Interação Homem-Computador
• Estudo da interação entre pessoas e computadores.
• Onde são formadas as experiências.
5
Preâmbulo
11/05/2014 fb.com/RVA.BR
6. Mas quem desenvolve experiência?
• UX Developer – User Experience
– A pessoa que caminha entra o design e a
tecnologia.
http://blog.alexandremagno.net/2013/02/o-que-seria-um-ux-developer/
6
Preâmbulo
11/05/2014 fb.com/RVA.BR
13. Construção de
aplicações de
Realidade Cruzada
Projetiva utilizando
openFrameworks e
ARDUINO
13
Claudio Kirner1 and Christopher S. Cerqueira12
1Federal University of Itajubá – Universidade Federal de Itajubá (UNIFEI)
2National Institute for Space Research – Instituto Nacional de Pesquisas Espaciais (INPE)
1ckirner@gmail.com ,2christophercerqueira@gmail.com
1http://realidadevirtual.com.br/, 2http://cscerqueira.com.br11/05/2014 fb.com/RVA.BR
14. Autores
Christopher Shneider Cerqueira – é graduado na Universidade Federal de Itajubá e
pesquisador da área de realidade virtual e aumentada desde 2009, atuando no
desenvolvimento de aplicações baseadas em ARToolKit, para o desenvolvimento de
ferramentas de autoria de realidade aumentada com cross-reality. É um dos
desenvolvedores da ferramenta de autoria comportamental basAR. Atualmente é aluno
de pós-graduação do INPE desenvolvendo um sistema de simulação de satélites
distribuídoscom visualização em realidade virtual.
Claudio Kirner – é graduado em Engenharia Elétrica pela Universidade de São Paulo
(1973), mestre em Engenharia Eletrônica pelo Instituto Tecnológico de Aeronáutica (1978),
doutor em Engenharia de Sistemas e Computação pela Universidade Federal do Rio de
Janeiro (1986) e Pós-doutor pela University of Colorado at Colorado Springs – UCCS (1993-
1995). Atualmente é Professor Adjunto na Universidade Federal de Itajubá (UNIFEI). Tem
experiência em Realidade Virtual e Realidade Aumentada, Interação Humano-Computador,
Ambientes Colaborativos e educação à Distância. Coordenou o I Workshop de Realidade
Virtual, em 1997, e o I Workshop de Realidade Aumentada, em 2004, e outros
subsequentes. Orientou 30 alunos de mestrado e 8 de doutorado; coordenou Projetos
CNPq, FAPESP, RHAE e FAPEMIG; publicou cerca de 270 artigos científicos e 40 livros e
capítulos.
Dúvidas: christophercerqueira@gmail.com 14
Introdução
11/05/2014 fb.com/RVA.BR
19. oF
• Criado para artistas e designers
• Desenvolvido por: Zach Liberman, Theo
Watson, Artuno Castro e Chris O’Shea
• Proposta: Arrumar a falta de comunicação
entre diversas bibliotecas em C++, e permitir
portabilidade.
• Escrita em C++
• Licença: MIT (educacional e venda)
19
Introdução
11/05/2014 fb.com/RVA.BR
20. utilizar oF quando:
• O projeto renderiza muitos gráficos 3D, e/ou;
• Utilizar muita visão computacional, e/ou;
• Controlar equipamentos, como, por exemplo,
o ARDUINO.
20
Introdução
11/05/2014 fb.com/RVA.BR
21. Libs no pacote padrão
• OpenGL, GLEW, GLUT, libtess2 e cairo para
gráficos.
• rtAudio, PortAudio ou FMOD e Kiss FFT para
entrada, saída e análise de áudio.
• FreeType para fontes.
• FreeImage para salvar e carregar imagens.
• Quicktime e videoInput para playback e aquisição
de vídeo.
• Poco, que contém uma variedade de utilidades.
21
Introdução
11/05/2014 fb.com/RVA.BR
23. Página Principal – openframeworks.cc
23
Introdução
11/05/2014 fb.com/RVA.BR
24. • Introdução à utilização de openFrameworks para o
desenvolvimento de aplicações de RVA
• cscerqueira.com.br
• ppt disponível em:
http://pt.slideshare.net/christophercerqueira/svr2013-o-frev
Introdução
11/05/2014 24fb.com/RVA.BR
25. ERA TROGLODITA (C++)
• Graduação (2010):
– ARToolKit
– PTAMM
• Bolsista DTI (2011):
– basAR
ERA DO FOGO (C++/oF)
• Mestrado (2012):
• Doutorado (2014):
Introdução
11/05/2014 25fb.com/RVA.BR
27. Realidades – Realidade Aumentada
uma interfacebaseada na
sobreposição de informações virtuais
geradas por computador (envolvendo
imagens estáticas e dinâmicas, sons
espaciais e sensações hápticas) com o
ambiente físico do usuário, percebida
através de dispositivos tecnológicos e
usando as interações naturais do
usuário, no mundo físico.
Claudio Kirner
SOURCE: Adapted from ESA (2009) and Capua (2008)
Introdução
11/05/2014 27fb.com/RVA.BR
29. Realidades – Realidade Cruzada
é um ambiente de realidade
misturada ubíqua, que vem da
fusão de uma rede de sensores e
atuadores (que coletam e enviam
dados relacionados ao mundo real)
com mundos virtuais
compartilhados, usando a
interface da realidade
aumentada.
Claudio Kirner
Introdução
11/05/2014 29fb.com/RVA.BR
30. Milgram Continuum - interfaces
SOURCE: Milgram et al. (1995)
Aumento de elementos reaisAumento de elementos virtuais
Introdução
11/05/2014 30fb.com/RVA.BR
31. Kirner’s Diagram – elementos
Source: (KIRNER et al., 2012)
Introdução
11/05/2014 31fb.com/RVA.BR
M$
GRU
Lego
Cave
2L
41. Construção da Aplicação
Caso 1 – Programa Vazio.
Caso 2 – Rastreio de Cores.
Caso 3 – Projeção Calibrada.
Caso 4 – Uso de Hardware no loop de interação.
DEVEL
11/05/2014 41fb.com/RVA.BR
42. Caso 1: Montagem do programa vazio
• oF na versão 0.8.0
• Windows 8.1
• Visual C++ 2012 Express
• Componentes:
– ofxCv
– ofxGlWrapper
DEVEL–Caso1
11/05/2014 42fb.com/RVA.BR
47. Caso 2: Rastreio de cores
1. Breve teoria de cores e rastreio de blobs em
openCV,
2. Construção dos artefatos de manipulação,
3. Algoritmo de rastreio,
4. Algumas sugestões de usos para este caso.
DEVEL–Caso2
11/05/2014 47fb.com/RVA.BR
49. Blobs
• Método de busca de caracteristicas.
• Blobs compartilham propriedades constantes
que podem ser “percebidas” na imagem.
DEVEL–Caso2
11/05/2014 49fb.com/RVA.BR colorTrack
51. Para infraestrutura
• Foi considerado estático, então é proposto (no
caso 3) uma calibração fixa (versão easy).
DEVEL–Caso2
11/05/2014 51fb.com/RVA.BR
60. Usos
• Table-tops
• Projeções em paredes
DEVEL–Caso3
11/05/2014 60fb.com/RVA.BR
SketchSynth
Sensetable
L.A.S.E.R. Tag
Coca-Cola Case
Climbing
OASIS
Missile Command
61. Caso 4: Uso de hardware no loop de
interação
• Teoria (super reduzida) sobre ARDUINO
• Algoritmos
• Resultados
• Sugestões de uso
DEVEL–Caso4
11/05/2014 61fb.com/RVA.BR
62. O que tem no ARDUINO?
11/05/2014 62fb.com/RVA.BR
66. O que a FIRMATA faz!?
• Transforma o ARDUINO numa interface de
controle, podendo ser modificado por um
host.
• Quais as vantagens?
– O host controla a execução!
– O host tem mais memória.
• Desvantagens?!
– Tem que ficar atrelado ao host!
11/05/2014 66fb.com/RVA.BR
75. • oF é indicado quando é necessário alto
desempenho, controle de hardware,
distribuição, etc.
• Foi visto:
– Estrutura básica
– Color tracking
– Calibração da projeção
– Uso de hardware
11/05/2014 fb.com/RVA.BR 75
76. • No material fornecido:
– Apresentação.
– Vídeos.
– Capítulo (corrigido).
– Códigos usados.
– Códigos de alguns exemplos.
– Compilador usado (VS 2012).
– oF e add-nos utilizados.
11/05/2014 fb.com/RVA.BR 76