O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
09:16 
1 
fb.com/RVA.BR 
pt.slideshare.net/christophercerqueira 
christophercerqueira@gmail.com 
fb.com/RVA.BR
Using AR/CR, with markers and others, to control and inspect hardware with ARDUINO based interface. 
Utilização de Realida...
Agenda: 
•Conceitos e openFrameworks ~60m 
•Estado da prática no INPE 
•Criando o primeiro programa em openFrameworks ~20m...
Exemplo prático que vai ser montado 
•Vamos controlar o Arduino: 
•Acender e apagar led, via botão físico e botão virtual ...
O que teremos ao final do dia: 
09:16 
fb.com/RVA.BR 
5
CONCEITOS GERAIS 
Algumas definições, como cheguei no openFrameworks, e estado da prática de estudos de interação e visão ...
“The product is no longer the basis of value. The experience is.” 
Venkat Ramaswamy 
The Future of Competition 
7 
12/11/2...
Valor de uma boa experiência 
8 
12/11/2014 
fb.com/RVA.BR
IHC – Interação Homem-Computador 
•Estudo da interação entre pessoas e computadores. 
•Onde são formadas as experiências. ...
Mas quem desenvolve experiência? 
•UX Developer – User Experience 
•A pessoa que caminha entra o design e a tecnologia. 
h...
Interação 
11 
Texto, som, cores, visual, mecânico ou fisico. 
Interface 
Mensagens 
Usuário 
Sistema 
12/11/2014 
fb.com/...
Usabilidade 
09:16 
fb.com/RVA.BR 
12
Exemplo: 
•Usabilidade: 
1.Facilidade de aprendizado 
2.Eficiência 
3.Facilidade de memorização 
4.Erros 
5.Satisfação sub...
3 níveis 
Lógico: Resolvem, solucionam, facilitam. 
Emocional: Satisfazem necessidades e desejos afetivos. 
Visceral: reso...
Espera.... Visceral? 
15 
12/11/2014 
fb.com/RVA.BR
16 
12/11/2014 
fb.com/RVA.BR
CLI – Command Line 
Códigos, estritos 
GUI – Grafical 
Metáforas, exploratória 
NUI – Natural 
Direta, intuitiva 
RV 
RA 
...
Gerações: 
09:16 
fb.com/RVA.BR 
18
Começo 
•1963 
•Ivan Sutherland 
•51 ANOS 
Sutherland 
9:16 
19
Realidades – Realidade Virtual 
interface que permite ao usuário interagir, em tempo real, com um mundo tridimensional ger...
Billinghurst Vision 
12/11/2014 
21 
fb.com/RVA.BR
Realidades – Realidade Aumentada 
uma interface baseada na sobreposição de informações virtuais geradas por computador (en...
Christopher Vision 
Informação virtual 
Interação Natural 
dispositivos tecnológicos 
12/11/2014 
23 
fb.com/RVA.BR
Realidades – Realidade Cruzada 
é um ambiente de realidade misturada ubíqua, que vem da fusão de uma rede de sensores e at...
Milgram Continuum - interfaces 
SOURCE: Milgram et al. (1995) 
Aumento de elementos reais 
Aumento de elementos virtuais 
...
Kirner’s Diagram – elementos 
Source: (KIRNER et al., 2012) 
12/11/2014 
26 
fb.com/RVA.BR 
M$ 
GRU 
Lego 
Cave 
2L
Realidade Cruzada 
Objetos reais 
Sensores e Atuadores 
Realidade Aumentada 
OCR 
NOCR 
NOCR 
Introdução 
12/11/2014 
27 
...
HIT - ROADMAP 
CR 
AI 
HI 
AR 
IoT 
HR 
KMatsuda 
9:16 
28
OPENFRAMEWORKS 
09:16 
fb.com/RVA.BR 
29
ERA TROGLODITA 
•Graduação (2010): 
•ARToolKit 
•PTAMM 
•Bolsista DTI (2011): 
•basAR 
Conectar com ARDUINO em C++ 
Litera...
Processing 
Adobe Flash 
Unity 
Cinder 
openFrameworks 
31 
12/11/2014 
fb.com/RVA.BR
openframeworks.cc 
32 
•Vídeo oF1..Media7_openFrameworks1.mp4 
•Vídeo oF2..Media7_openFrameworks2.mp4 
12/11/2014 
fb.com/...
oF 
•Criado para artistas e designers 
•Desenvolvido por: Zach Liberman, Theo Watson, Artuno Castro e Chris O’Shea 
•Propo...
utilizar oF quando: 
•O projeto renderiza muitos gráficos 3D, e/ou; 
•Utilizar muita visão computacional, e/ou; 
•Controla...
Página Principal – openframeworks.cc 
35 
12/11/2014 
fb.com/RVA.BR
Libs no pacote padrão 
•OpenGL, GLEW, GLUT, libtess2 e cairo para gráficos. 
•rtAudio, PortAudio ou FMOD e Kiss FFT para e...
Addons da comunidade 
09:16 
fb.com/RVA.BR 
37
38
OSX, Linux, Windows, iOS, Android, Linux ARM 
09:17 
fb.com/RVA.BR 
39
ERA TROGLODITA (C++) 
•Graduação (2010): 
•ARToolKit 
•PTAMM 
•Bolsista DTI (2011): 
•basAR 
ERA DO FOGO (C++/oF) 
•Mestra...
•Introdução à utilização de openFrameworks para o desenvolvimento de aplicações de RVA 
http://pt.slideshare.net/christoph...
OPENFRAMEWORKS 
ROUND ONE 
09:17 
fb.com/RVA.BR 
42
Ambiente de desenvolvimento deste tutorial 
oF 0.8.4 
Visual Studio Express 2012 
C++ 11 
Windows 8.1 
09:17 
fb.com/RVA.B...
Descompactando 
•addons – recursos fora do core do oF 
•apps – local onde ocorre o devel 
•docs –  
•examples -  +100 
•...
Exemplos 
09:17 
fb.com/RVA.BR 
45 
•Ex1.: 3D  pointPicker 
•Ex2.: graphics polylineBlobs 
•Ex3.: utilssorting 
•Ex4.: ...
O EXEMPLO VAZIO! 
o exemplo vazio serve para explorar a estrutura de arquivos do oF, a utilização do gerador automático e ...
Onde encontrar? 
09:17 
fb.com/RVA.BR 
47
Level Easy: Gerador Automático 
48
Escolhendo expansões 
49 
Do core oF 
Da comunidade
Estrutura do projeto 
09:17 
fb.com/RVA.BR 
50
Exemplo básico 
09:17 
fb.com/RVA.BR 
51 
// ofApp.cpp 
void ofApp::setup(){ 
mensagem = "Hello WRVA2014!!!"; 
raio = 0; 
...
ARDUINO 
O que é? Onde vivem? 
Existe? Hoje no Glob.. 
Fritzing, Arduino 1.0, Firmata, exemplo openFrameworks 
09:17 
fb.c...
O que tem no ARDUINO? 
12/11/2014 
53 
fb.com/RVA.BR
Outras versões 
12/11/2014 
54 
fb.com/RVA.BR
Shields 
12/11/2014 
55 
fb.com/RVA.BR
FIRMATA 
Literatura indica FIRMATA: 
http://firmata.org/wiki/Download 
12/11/2014 
56 
fb.com/RVA.BR
O que a FIRMATA faz!? 
•Transforma o ARDUINO numa interface de controle, podendo ser modificado por um host. 
•Quais as va...
Obs.: Mudança da nomenclatura dos pinos após Firmata 2.3 (Arduino 1.0) 
09:17 
fb.com/RVA.BR 
58
Instalando a Firmata no Arduino 
•Faça download do Arduino 1.0.6 http://arduino.cc/en/Main/Software 
•Abra o sketch do Fir...
“esquemático” 
12/11/2014 
60 
fb.com/RVA.BR 
•#crashcourse fritzing 
•http://fritzing.org/home/
Arduino e openFrameworks 
09:17 
fb.com/RVA.BR 
61
Métodos para conectar com o ARDUINO 
connect() 
disconnect() 
getAnalog() 
getAnalogPinReporting() 
getDigital() 
ge...
Código no openFrameworks 
•Exploração do exemplo: communicationfirmataExample 
09:17 
fb.com/RVA.BR 
63
Fluxograma básico 
09:17 
fb.com/RVA.BR 
64 
SETUP 
Habilita callback de Arduino Alive 
Arduino Responde Evento Alive 
Con...
Código 
09:17 
fb.com/RVA.BR 
65 
//ofApp.h #pragma once #include "ofMain.h" class ofApp : public ofBaseApp{ public: … ofA...
09:17 
fb.com/RVA.BR 
66 
MatrixCube 
Robot 
Insect 
Weather 
Patchube
Momento histórico: 2014-11-12 
•Primeira aterrisagem num cometa 
•ESA. Missão Rosetta 
16:06 
fb.com/RVA.BR 
67
REALIDADE AUMENTADA 
Marcadores: ofxARToolKitPlus 
“sem marcadores”: ofxOpenCv, ofxCv 
09:17 
fb.com/RVA.BR 
68
Definição atual 
Uma definição mais atualizada é: realidade aumentada é uma interface baseada na sobreposição de informaçõ...
Frameworks 
Marcador 
•ARToolKit (C) – 90´s 
•NYARToolKit (Java, C#, C++, Android) 
•AndAR (Android) 
•FLARToolKit (AS3) 
...
71 
GLASS 
9:17
72 
AREngine 
Tango 
Tango 
9:17
NUI 
Tangíveis 
Móveis 
Especializados 
Institutos 
iFORM 
Sand 
MYO 
META 
Kinect 
9:17 
73
ARTOOLKITPLUS 
09:17 
fb.com/RVA.BR 
74
Marcadores 
ARToolKit 
•HITLab 
•Compara templates. 
•Template marker detection 
•Mais lento 
•(Costumava ser) Inviável em...
ARToolKit 
76
ARToolKitPlus 
77
Voltando ao mundo real 
•openFrameworks + ARToolKitPlus. 
•Add-on ofxARToolKitPlus. (https://github.com/fishkingsin/ofxARt...
ARToolKitPlus original: 
•https://launchpad.net/artoolkitplus 
•released on 2014-10-05 (  ) 
•ARToolKitPlus is a software...
•Utilizar o gerador automático e gerar com os seguintes add-nos: 
•ofxARToolKitPlus 
•ofxOpenCv (necessário para o ofxARTo...
Ajustando o projeto - caminhos 
1.Configuration Properties  Linker GeneralAdditional Library Directories e inclua o cam...
Fluxograma 
09:19 
fb.com/RVA.BR 
82 
SETUP 
Configura câmera e ARTKP 
UPDATE 
Update câmera e ARTKP 
DRAW 
Desenha 2D 
De...
Lets code... 
// ofApp.cpp 
#pragma once 
#include "ofMain.h" 
#include "ofxOpenCv.h" //Cabeçalho do OpenCV 
#include "ofx...
Configurando – testApp::setup() 
//-------------------------------------------------------------- 
void ofApp::setup(){ 
o...
Rastreio - testApp::update() 
//-------------------------------------------------------------- 
void ofApp::update(){ 
vid...
Exibindo - testApp::draw() – p1 
void ofApp::draw(){ 
ofSetColor(ofColor::white); // inicia a cor dos objetos como branca ...
Exibindo - testApp::draw() – p2 
for(int i=0; i<numDetected; i++) { // marcadores encontrados 
artk.applyModelMatrix(i); /...
Alterando o threshold - testApp::keyPressed(int key) 
//-------------------------------------------------------------- 
vo...
Lembrar de copiar a ARToolKitPlus.dll para a pasta destino 
Lembrar de copiar as definições de câmera do ARToolKitPlus 
09...
Resultado esperado 
90
USANDO OPENCV 
09:19 
fb.com/RVA.BR 
91
Teoria: Rastreio de cores 
1.Breve teoria de cores e rastreio de blobs em openCV, 
2.Construção dos artefatos de manipulaç...
Cores 
RGB-A (red, green, blue)-alfa 
HSV (hue (cor), saturation, value) 
12/11/2014 
93 
fb.com/RVA.BR
Blobs 
•Método de busca de características. 
•Blobs compartilham propriedades constantes que podem ser “percebidas” na ima...
Construção dos artefatos : Rastreio Cores 
12/11/2014 
95 
fb.com/RVA.BR
Bonus: Projection Mapping 
12/11/2014 
fb.com/RVA.BR 
96 
Audi case 
PM 
PM
Usos 
•Table-tops 
•Projeções em paredes 
12/11/2014 
97 
fb.com/RVA.BR 
SketchSynth 
Sensetable 
L.A.S.E.R. Tag 
Climbing...
SVR2014 - Resultados 
12/11/2014 
98 
fb.com/RVA.BR
SVR2014 - Resultados 
12/11/2014 
99 
fb.com/RVA.BR
Voltando ao mundo real 
•openFrameworks + openCV. 
•Addon ofxOpenCV – Incluso no openFrameworks 
•Addon ofxCv (https://git...
Exemplos interessantes 
•ofxCvexample-difference-Colummns 
•ofxCvexample-countours-advanced 
09:19 
fb.com/RVA.BR 
101
Fluxograma: Challange: rastrear mão 
09:19 
fb.com/RVA.BR 
102 
SETUP 
Configura câmera 
Configura “padrão” 
UPDATE 
Câmer...
Rastrear mão (apontador 2D) 
•Restrições (para facilitar) 
•Fundo homogêneo 
•Longe das quinas 
•Uma mão só 
•Pseudo-códig...
Lets code babe 
#include "ofMain.h" 
#include "ofxOpenCv.h" //Cabeçalho do OpenCV 
#include "ofxCv.h" 
class ofApp : publi...
Setup 
void ofApp::setup(){ 
width = 320; height = 240; 
vidGrabber.initGrabber(width, height); //abre câmera 
colorImage....
Update 
void ofApp::update(){ 
vidGrabber.update(); // Pega frame da câmera 
if(vidGrabber.isFrameNew()){ // é um frame no...
Ponto mais distante – p1 
ofPoint ofApp::encontraPontoMaisDistante(){ 
int n = contourFinder.size(); //qtidade de blobs ca...
Ponto mais distante – p2 
for(itVec = vertices.begin(); itVec != vertices.end(); itVec++){ 
//encontrar ponto mais distant...
Draw 
void ofApp::draw(){ 
ofSetColor(255); grayImage.draw(0, 0); // desenha camera 
ofTranslate(320, 0); grayDiff.draw(0,...
Resultado desejado: 
09:19 
fb.com/RVA.BR 
110
Só use mais hardware quando realmente precisar. 
09:51 
fb.com/RVA.BR 
111
JUNTANDO TUDO. 
Controlar e monitorar Arduino em RA. 
09:19 
fb.com/RVA.BR 
112
O que nós sabemos (em tese) até agora: 
•Como se localizar no openFrameworks 
•projectGenerator, ofApp.h, ofApp.cpp, métod...
Fluxograma simplificado 
09:19 
fb.com/RVA.BR 
114 
SETUP 
Configura Arduino, Câmera, ARToolkitPlus e Rastreio 
Aguarda Ar...
Funcionando! 
09:19 
fb.com/RVA.BR 
115
WRAP-UP 
09:19 
fb.com/RVA.BR 
116 
O QUE APRENDEMOS HOJE
•Existe um framework easy (noob level) em C++ chamado openFrameworks. 
•openFrameworks pode ser expandido com componentes ...
•ARToolKitPlus é um tipo de marcador para RA, que é mais rápido que o ARToolKit. 
•openCV é uma biblioteca de visão comput...
09:19 
fb.com/RVA.BR 
119
120 
Claudio Kirner1 and Christopher S. Cerqueira12 
1Federal University of Itajubá – Universidade Federal de Itajubá (UNI...
Próximos SlideShares
Carregando em…5
×

[WRVA2014] Utilização de Realidade Aumentada, com marcadores(ARToolKitPlus) e outros (utilizando openCV), para controle e inspeção de hardware, utilizando a interface ARDUINO

1.282 visualizações

Publicada em

Objetivo:Mostrar as possibilidades de uso de realidade aumentada para controle de hardware utilizando o openFrameworks, explicando as etapas de construção da aplicação. Mostrar caminhos simplificados de desenvolvimento com foco no exemplo.

Publicada em: Educação
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download Full EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download Full doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THIS can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer THIS is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story THIS Helped Ignite a Movement,-- Atomic Habits: An Easy &amp; Proven Way to Build Good Habits &amp; Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money THIS the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths THIS Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download Full EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download Full doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THIS can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer THIS is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story THIS Helped Ignite a Movement,-- Atomic Habits: An Easy &amp; Proven Way to Build Good Habits &amp; Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money THIS the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths THIS Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download Full EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download Full doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THIS can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer THIS is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story THIS Helped Ignite a Movement,-- Atomic Habits: An Easy &amp; Proven Way to Build Good Habits &amp; Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money THIS the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths THIS Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • DOWNLOAD THAT BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book that can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer that is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story That Helped Ignite a Movement,-- Atomic Habits: An Easy &amp; Proven Way to Build Good Habits &amp; Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money That the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths that Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • Seja a primeira pessoa a gostar disto

[WRVA2014] Utilização de Realidade Aumentada, com marcadores(ARToolKitPlus) e outros (utilizando openCV), para controle e inspeção de hardware, utilizando a interface ARDUINO

  1. 1. 09:16 1 fb.com/RVA.BR pt.slideshare.net/christophercerqueira christophercerqueira@gmail.com fb.com/RVA.BR
  2. 2. Using AR/CR, with markers and others, to control and inspect hardware with ARDUINO based interface. Utilização de Realidade Aumentada, com marcadores(ARToolKitPlus) e outros (utilizando openCV), para controle e inspeção de hardware, utilizando a interface ARDUINO. 2 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.br 09:16
  3. 3. Agenda: •Conceitos e openFrameworks ~60m •Estado da prática no INPE •Criando o primeiro programa em openFrameworks ~20m •Conectando com o Arduino ~40m •Realidade Aumentada + ex.: Realidade Cruzada ~ 60min •Usando marcadores -ofxARToolKitPlus •Usando openCV - ofxOpenCv •Controlar e monitorar equipamentos usando RA ~60min •Arduino + openCV + marcadores 09:16 fb.com/RVA.BR 3 Três etapas: 1.10h30 – 12h00 2.14h00 – 15h30 3.16h00 – 17h30
  4. 4. Exemplo prático que vai ser montado •Vamos controlar o Arduino: •Acender e apagar led, via botão físico e botão virtual (usando marcador tipo ofxARToolKitPlus) •Movimentar um servo usando rastreio de mão (usando ofxOpenCv) 09:16 fb.com/RVA.BR 4
  5. 5. O que teremos ao final do dia: 09:16 fb.com/RVA.BR 5
  6. 6. CONCEITOS GERAIS Algumas definições, como cheguei no openFrameworks, e estado da prática de estudos de interação e visão computacional na Engenharia e Tecnologia Espacial. 09:16 fb.com/RVA.BR 6
  7. 7. “The product is no longer the basis of value. The experience is.” Venkat Ramaswamy The Future of Competition 7 12/11/2014 fb.com/RVA.BR
  8. 8. Valor de uma boa experiência 8 12/11/2014 fb.com/RVA.BR
  9. 9. IHC – Interação Homem-Computador •Estudo da interação entre pessoas e computadores. •Onde são formadas as experiências. 9 12/11/2014 fb.com/RVA.BR
  10. 10. 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/ 10 12/11/2014 fb.com/RVA.BR
  11. 11. Interação 11 Texto, som, cores, visual, mecânico ou fisico. Interface Mensagens Usuário Sistema 12/11/2014 fb.com/RVA.BR
  12. 12. Usabilidade 09:16 fb.com/RVA.BR 12
  13. 13. Exemplo: •Usabilidade: 1.Facilidade de aprendizado 2.Eficiência 3.Facilidade de memorização 4.Erros 5.Satisfação subjetiva 13 Meta- Mensagens Usuário Sistema 12/11/2014 fb.com/RVA.BR
  14. 14. 3 níveis Lógico: Resolvem, solucionam, facilitam. Emocional: Satisfazem necessidades e desejos afetivos. Visceral: resolvem questões fundamentais, sem consciência. Impulso. 14 12/11/2014 fb.com/RVA.BR
  15. 15. Espera.... Visceral? 15 12/11/2014 fb.com/RVA.BR
  16. 16. 16 12/11/2014 fb.com/RVA.BR
  17. 17. CLI – Command Line Códigos, estritos GUI – Grafical Metáforas, exploratória NUI – Natural Direta, intuitiva RV RA Evolução das interfaces 9:16 17
  18. 18. Gerações: 09:16 fb.com/RVA.BR 18
  19. 19. Começo •1963 •Ivan Sutherland •51 ANOS Sutherland 9:16 19
  20. 20. Realidades – Realidade Virtual interface que permite ao usuário interagir, em tempo real, com um mundo tridimensional gerado por computador, usando seus sentidos através de equipamentos especiais. SOURCE: NASA (2013a) 9:16 20
  21. 21. Billinghurst Vision 12/11/2014 21 fb.com/RVA.BR
  22. 22. Realidades – Realidade Aumentada uma interface baseada 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) 12/11/2014 22 fb.com/RVA.BR
  23. 23. Christopher Vision Informação virtual Interação Natural dispositivos tecnológicos 12/11/2014 23 fb.com/RVA.BR
  24. 24. 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 12/11/2014 24 fb.com/RVA.BR
  25. 25. Milgram Continuum - interfaces SOURCE: Milgram et al. (1995) Aumento de elementos reais Aumento de elementos virtuais 12/11/2014 25 fb.com/RVA.BR
  26. 26. Kirner’s Diagram – elementos Source: (KIRNER et al., 2012) 12/11/2014 26 fb.com/RVA.BR M$ GRU Lego Cave 2L
  27. 27. Realidade Cruzada Objetos reais Sensores e Atuadores Realidade Aumentada OCR NOCR NOCR Introdução 12/11/2014 27 fb.com/RVA.BR
  28. 28. HIT - ROADMAP CR AI HI AR IoT HR KMatsuda 9:16 28
  29. 29. OPENFRAMEWORKS 09:16 fb.com/RVA.BR 29
  30. 30. ERA TROGLODITA •Graduação (2010): •ARToolKit •PTAMM •Bolsista DTI (2011): •basAR Conectar com ARDUINO em C++ Literatura indica FIRMATA: http://firmata.org/wiki/Download 12/11/2014 30 fb.com/RVA.BR https://github.com/bodusb http://cscerqueira.com.br/basar
  31. 31. Processing Adobe Flash Unity Cinder openFrameworks 31 12/11/2014 fb.com/RVA.BR
  32. 32. openframeworks.cc 32 •Vídeo oF1..Media7_openFrameworks1.mp4 •Vídeo oF2..Media7_openFrameworks2.mp4 12/11/2014 fb.com/RVA.BR
  33. 33. 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) 33 12/11/2014 fb.com/RVA.BR
  34. 34. 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. 34 12/11/2014 fb.com/RVA.BR
  35. 35. Página Principal – openframeworks.cc 35 12/11/2014 fb.com/RVA.BR
  36. 36. 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. 36 12/11/2014 fb.com/RVA.BR
  37. 37. Addons da comunidade 09:16 fb.com/RVA.BR 37
  38. 38. 38
  39. 39. OSX, Linux, Windows, iOS, Android, Linux ARM 09:17 fb.com/RVA.BR 39
  40. 40. ERA TROGLODITA (C++) •Graduação (2010): •ARToolKit •PTAMM •Bolsista DTI (2011): •basAR ERA DO FOGO (C++/oF) •Mestrado (2012): •Doutorado (2014): 12/11/2014 40 fb.com/RVA.BR
  41. 41. •Introdução à utilização de openFrameworks para o desenvolvimento de aplicações de RVA http://pt.slideshare.net/christophercerqueira/svr2013-o-frev •Construção de aplicações de Realidade Cruzada Projetiva utilizando openFrameworks e ARDUINO http://pt.slideshare.net/christophercerqueira/ppt-svr2014 12/11/2014 41 fb.com/RVA.BR
  42. 42. OPENFRAMEWORKS ROUND ONE 09:17 fb.com/RVA.BR 42
  43. 43. Ambiente de desenvolvimento deste tutorial oF 0.8.4 Visual Studio Express 2012 C++ 11 Windows 8.1 09:17 fb.com/RVA.BR 43
  44. 44. Descompactando •addons – recursos fora do core do oF •apps – local onde ocorre o devel •docs –  •examples -  +100 •export – dlls •libs – bibliotecas do oF •others – pde para exemplo com Arduino •projectGenerator – gerador automático de projetos •scripts – compilar tudo, e base para criação de projetos 09:17 fb.com/RVA.BR 44
  45. 45. Exemplos 09:17 fb.com/RVA.BR 45 •Ex1.: 3D  pointPicker •Ex2.: graphics polylineBlobs •Ex3.: utilssorting •Ex4.: 3DcameraLensOffset •Ex5.: addonsassimp •(particulas)
  46. 46. O EXEMPLO VAZIO! o exemplo vazio serve para explorar a estrutura de arquivos do oF, a utilização do gerador automático e a organização do código. 46
  47. 47. Onde encontrar? 09:17 fb.com/RVA.BR 47
  48. 48. Level Easy: Gerador Automático 48
  49. 49. Escolhendo expansões 49 Do core oF Da comunidade
  50. 50. Estrutura do projeto 09:17 fb.com/RVA.BR 50
  51. 51. Exemplo básico 09:17 fb.com/RVA.BR 51 // ofApp.cpp void ofApp::setup(){ mensagem = "Hello WRVA2014!!!"; raio = 0; } void ofApp::draw(){ ofEnableAlphaBlending(); ofSetColor(ofColor::blue,128); ofCircle(x_i,y_i,raio); ofSetColor(ofColor::red); ofDrawBitmapString(mensagem,mouseX,mouseY); } // ofApp.cpp void ofApp::mouseDragged(int x, int y, int button){ raio = ofDist(x_i,y_i,x,y); } void ofApp::mousePressed(int x, int y, int button){ x_i = x; y_i = y; } void ofApp::mouseReleased(int x, int y, int button){ raio = ofDist(x_i,y_i,x,y); } // ofApp.h ... string mensagem; int x_i,y_i; float raio; ...
  52. 52. ARDUINO O que é? Onde vivem? Existe? Hoje no Glob.. Fritzing, Arduino 1.0, Firmata, exemplo openFrameworks 09:17 fb.com/RVA.BR 52
  53. 53. O que tem no ARDUINO? 12/11/2014 53 fb.com/RVA.BR
  54. 54. Outras versões 12/11/2014 54 fb.com/RVA.BR
  55. 55. Shields 12/11/2014 55 fb.com/RVA.BR
  56. 56. FIRMATA Literatura indica FIRMATA: http://firmata.org/wiki/Download 12/11/2014 56 fb.com/RVA.BR
  57. 57. 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! 12/11/2014 57 fb.com/RVA.BR
  58. 58. Obs.: Mudança da nomenclatura dos pinos após Firmata 2.3 (Arduino 1.0) 09:17 fb.com/RVA.BR 58
  59. 59. Instalando a Firmata no Arduino •Faça download do Arduino 1.0.6 http://arduino.cc/en/Main/Software •Abra o sketch do Firmata Standard. •Transfira para a board. 09:17 fb.com/RVA.BR 59 http://arduino.cc/en/reference/firmata
  60. 60. “esquemático” 12/11/2014 60 fb.com/RVA.BR •#crashcourse fritzing •http://fritzing.org/home/
  61. 61. Arduino e openFrameworks 09:17 fb.com/RVA.BR 61
  62. 62. Métodos para conectar com o ARDUINO connect() disconnect() getAnalog() getAnalogPinReporting() getDigital() getDigitalPinMode() getPwm() getString() isArduinoReady() isInitialized() sendAnalogPinReporting() sendByte() sendDigital() sendDigitalPinMode() sendPwm() sendReset() sendString() setUseDelay() update() 12/11/2014 62 fb.com/RVA.BR
  63. 63. Código no openFrameworks •Exploração do exemplo: communicationfirmataExample 09:17 fb.com/RVA.BR 63
  64. 64. Fluxograma básico 09:17 fb.com/RVA.BR 64 SETUP Habilita callback de Arduino Alive Arduino Responde Evento Alive Configura Arduino Loop de execução – sem Arduino Enviar comandos pro Arduino Recebeu um evento Digital Recebeu um evento Analógico Loop de execução – Arduino Update
  65. 65. Código 09:17 fb.com/RVA.BR 65 //ofApp.h #pragma once #include "ofMain.h" class ofApp : public ofBaseApp{ public: … ofArduino ard; bool bSetupArduino; private: void setupArduino(const int & version); void digitalPinChanged(const int & pinNum); void analogPinChanged(const int & pinNum); void updateArduino(); }; //ofApp.cpp void ofApp::setup(){ ... ard.connect("COM3", 57600); //conecta com arduino ofAddListener(ard.EInitialized, this, &ofApp::setupArduino); bSetupArduino= false;// flag arduino ok  } void ofApp::setupArduino(const int & version) { ofRemoveListener(ard.EInitialized, this, &ofApp::setupArduino); bSetupArduino = true; // agora pode usar o arduino. ard.sendDigitalPinMode(2, ARD_INPUT); //pino entrada digital ard.sendAnalogPinReporting(0, ARD_ANALOG); // pino entrada analógica ard.sendDigitalPinMode(13, ARD_OUTPUT); // configura pino saída digital ard.sendDigitalPinMode(11, ARD_PWM); // configura pino saída PWM ard.sendServoAttach(9); // diz que o pino tem um servo. ofAddListener(ard.EDigitalPinChanged, this, &ofApp::digitalPinChanged); //callback para eventos de pino digital. ofAddListener(ard.EAnalogPinChanged, this, &ofApp::analogPinChanged); //callback para eventos de pino analógico } void ofApp::updateArduino(){ ard.update(); // verifica se algo mudou no Arduino - obrigatório if (bSetupArduino) { //envia o que for para o Arduino. ard.sendPwm(11, (int)(128 + 128 * sin(ofGetElapsedTimef()))); // pwm... } } //ofApp.cpp void ofApp::digitalPinChanged(const int & pinNum) { // trata o pino digital - ard.getDigital(pinNum) } void ofApp::analogPinChanged(const int & pinNum) { // trata o pino analógico - ard.getAnalog(pinNum) } //outros comandos ard.sendServo(9, 180, false); ard.sendDigital(8, ARD_HIGH);
  66. 66. 09:17 fb.com/RVA.BR 66 MatrixCube Robot Insect Weather Patchube
  67. 67. Momento histórico: 2014-11-12 •Primeira aterrisagem num cometa •ESA. Missão Rosetta 16:06 fb.com/RVA.BR 67
  68. 68. REALIDADE AUMENTADA Marcadores: ofxARToolKitPlus “sem marcadores”: ofxOpenCv, ofxCv 09:17 fb.com/RVA.BR 68
  69. 69. Definição atual Uma definição mais atualizada é: realidade aumentada é uma interface baseada 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. (KIRNER 2011) 69
  70. 70. Frameworks Marcador •ARToolKit (C) – 90´s •NYARToolKit (Java, C#, C++, Android) •AndAR (Android) •FLARToolKit (AS3) •Vuforia Sem marcador •OpenCV – Multiplataforma •HandyAR •MetaIO •PTAMM (C++) •Kinect like (Meta / Tango) 70
  71. 71. 71 GLASS 9:17
  72. 72. 72 AREngine Tango Tango 9:17
  73. 73. NUI Tangíveis Móveis Especializados Institutos iFORM Sand MYO META Kinect 9:17 73
  74. 74. ARTOOLKITPLUS 09:17 fb.com/RVA.BR 74
  75. 75. Marcadores ARToolKit •HITLab •Compara templates. •Template marker detection •Mais lento •(Costumava ser) Inviável em SW embarcado. ARToolKitPlus •Graz University of Technology •Compara códigos •ID-Encoded marker detection •Mais rápido •Bom para SW embarcado. 75
  76. 76. ARToolKit 76
  77. 77. ARToolKitPlus 77
  78. 78. Voltando ao mundo real •openFrameworks + ARToolKitPlus. •Add-on ofxARToolKitPlus. (https://github.com/fishkingsin/ofxARtoolkitPlus) •Descompactá-lo e salvar dentro de <of>/addons •Renomear, retirando o sufixo –master 78
  79. 79. ARToolKitPlus original: •https://launchpad.net/artoolkitplus •released on 2014-10-05 (  ) •ARToolKitPlus is a software library that can be used to calculate camera position and orientation relative to physical markers in real time. This enables the easy development of a wide range of Augmented Reality applications. •advantages over the classical ARToolKit: •easier C++ based API •support for 4096 binary based markers - no need to design new markers yourself •supports RGB565, Gray images •"Robust Planar Pose" algorithm that reduces jitter while tracking •uses modern text-file based camera calibration •Vignetting Compensation •automatic Thresholding •Hull based tracking in multi marker mode 09:19 fb.com/RVA.BR 79
  80. 80. •Utilizar o gerador automático e gerar com os seguintes add-nos: •ofxARToolKitPlus •ofxOpenCv (necessário para o ofxARToolKitPlus) •DICA: Não vai funcionar – o of0.8.4 usa o C++ 11, diferente do compilado na ofxARToolKitPlus •Como resolver: http://touch-base- br.blogspot.com.br/2014/09/openframeworks-083- ofxartoolkitplus.html 80
  81. 81. Ajustando o projeto - caminhos 1.Configuration Properties  Linker GeneralAdditional Library Directories e inclua o caminho para a biblioteca, no caso: ......addonsofxARtoolkitPluslibsARToolKitPluslibwin32 1.Configuration Properties  Linker Input  Additional Dependencies incluir a lib: ARToolKitPlus.lib 81
  82. 82. Fluxograma 09:19 fb.com/RVA.BR 82 SETUP Configura câmera e ARTKP UPDATE Update câmera e ARTKP DRAW Desenha 2D Desenha 3D
  83. 83. Lets code... // ofApp.cpp #pragma once #include "ofMain.h" #include "ofxOpenCv.h" //Cabeçalho do OpenCV #include "ofxARToolkitPlus.h" //Cabeçalho do ARToolKitPlus class ofApp : public ofBaseApp{ ... int width, height; // Tamanho da janela da câmera ofVideoGrabber vidGrabber; // Componente do oF que pega a câmera. ofxARToolkitPlus artk; // Instância do ARToolKitPlus ofxCvColorImage colorImage; //imagem capturada pela câmera ofxCvGrayscaleImage grayImage; //imagem em tons de cinza (mais rápida) }; 83
  84. 84. Configurando – testApp::setup() //-------------------------------------------------------------- void ofApp::setup(){ ofSetWindowShape(1280,480); // Ajusta o tamanho da aplicação width = 640; height = 480; // largura e altura da imagem da câmera vidGrabber.initGrabber(width, height); // reserva buffer da câmera colorImage.allocate(width, height); // reserva imagem colorida grayImage.allocate(width, height); // reserva imagem mono artk.setup(width, height); // inicia o ARToolKitPlus } 84
  85. 85. Rastreio - testApp::update() //-------------------------------------------------------------- void ofApp::update(){ vidGrabber.update(); // Pega frame da câmera bool bNewFrame = vidGrabber.isFrameNew();// é um frame novo ??? if(bNewFrame) { // se um frame novo //pega os pixels do buffer da câmera e armazena colorImage.setFromPixels(vidGrabber.getPixels(), width, height); grayImage = colorImage; //converte a imagem para mono artk.update(grayImage.getPixels()); } } 85
  86. 86. Exibindo - testApp::draw() – p1 void ofApp::draw(){ ofSetColor(ofColor::white); // inicia a cor dos objetos como branca colorImage.draw(0, 0); // exibe a imagem capturada colorida artk.draw(640, 0); // Esta função exibe a posição e etiqueta marcador // ARTK 2D stuff - // See if marker ID '0' was detected int myIndex = artk.getMarkerIndex(0); if(myIndex >= 0) { ofSetColor(ofColor::red); ofDrawBitmapString(ofToString(artk.getTranslation(myIndex)), artk.getDetectedMarkerCenter(myIndex)); } // ARTK 3D artk.applyProjectionMatrix(); // matriz de projeção da camera int numDetected = artk.getNumDetectedMarkers(); //detectar marcadores ofEnableAlphaBlending(); //habilitar a transparência 86
  87. 87. Exibindo - testApp::draw() – p2 for(int i=0; i<numDetected; i++) { // marcadores encontrados artk.applyModelMatrix(i); //matriz de perspectiva do marcador //Local onde colocar o conteúdo 3D do marcador // neste exemplo é uma pilha de retângulos. ofNoFill(); ofEnableSmoothing(); ofSetColor(255, 255, 0, 50); for(int i=0; i<10; i++) { ofRect(-25, -25, 50, 50); ofTranslate(0, 0, i*1); } } } 87
  88. 88. Alterando o threshold - testApp::keyPressed(int key) //-------------------------------------------------------------- void ofApp::keyPressed(int key){ switch(key){ // aumenta o valor do threshold case OF_KEY_UP: artk.setThreshold(++threshold); break; // diminui o valor do threshold case OF_KEY_DOWN: artk.setThreshold(--threshold); break; // chama a configuração da câmera case 's': case 'S': vidGrabber.videoSettings(); break; default: break; };} 88
  89. 89. Lembrar de copiar a ARToolKitPlus.dll para a pasta destino Lembrar de copiar as definições de câmera do ARToolKitPlus 09:19 fb.com/RVA.BR 89
  90. 90. Resultado esperado 90
  91. 91. USANDO OPENCV 09:19 fb.com/RVA.BR 91
  92. 92. Teoria: 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 12/11/2014 92 fb.com/RVA.BR
  93. 93. Cores RGB-A (red, green, blue)-alfa HSV (hue (cor), saturation, value) 12/11/2014 93 fb.com/RVA.BR
  94. 94. Blobs •Método de busca de características. •Blobs compartilham propriedades constantes que podem ser “percebidas” na imagem. 12/11/2014 94 fb.com/RVA.BR
  95. 95. Construção dos artefatos : Rastreio Cores 12/11/2014 95 fb.com/RVA.BR
  96. 96. Bonus: Projection Mapping 12/11/2014 fb.com/RVA.BR 96 Audi case PM PM
  97. 97. Usos •Table-tops •Projeções em paredes 12/11/2014 97 fb.com/RVA.BR SketchSynth Sensetable L.A.S.E.R. Tag Climbing OASIS
  98. 98. SVR2014 - Resultados 12/11/2014 98 fb.com/RVA.BR
  99. 99. SVR2014 - Resultados 12/11/2014 99 fb.com/RVA.BR
  100. 100. Voltando ao mundo real •openFrameworks + openCV. •Addon ofxOpenCV – Incluso no openFrameworks •Addon ofxCv (https://github.com/kylemcdonald/ofxCv) •Descompactá-lo e salvar dentro de <of>/addons •Renomear, retirando o sufixo –master •DICA: nenhuma dica, vai funcionar!!!  100
  101. 101. Exemplos interessantes •ofxCvexample-difference-Colummns •ofxCvexample-countours-advanced 09:19 fb.com/RVA.BR 101
  102. 102. Fluxograma: Challange: rastrear mão 09:19 fb.com/RVA.BR 102 SETUP Configura câmera Configura “padrão” UPDATE Câmera Update Procura “padrão” DRAW
  103. 103. Rastrear mão (apontador 2D) •Restrições (para facilitar) •Fundo homogêneo •Longe das quinas •Uma mão só •Pseudo-código •Fazer diferença entra o fundo e o frame atual para encontrar a mão. •Com a diferença rastreia o blob. •Do blob calcula as quinas •Das quinas pega a mais distante do centroide e que não seja próximo das quinas ( braço). 09:19 fb.com/RVA.BR 103
  104. 104. Lets code babe #include "ofMain.h" #include "ofxOpenCv.h" //Cabeçalho do OpenCV #include "ofxCv.h" class ofApp : public ofBaseApp{ ... int width, height, threshold; ofVideoGrabber vidGrabber; // Componente do oF que pega a câmera. ofxCvColorImage colorImage; // imagem capturada pela câmera ofxCvGrayscaleImage grayBg, grayImage, grayDiff;// bg, cinza, diferença bool bLearnBakground; ofxCv::TrackingColorMode trackingColorMode; ofxCv::ContourFinder contourFinder; ofColor targetColor; ofPoint apontador; ofPoint encontraPontoMaisDistante(); }; 09:19 fb.com/RVA.BR 104
  105. 105. Setup void ofApp::setup(){ width = 320; height = 240; vidGrabber.initGrabber(width, height); //abre câmera colorImage.allocate(width,height); //aloca memória para as imagens grayBg.allocate(width,height); grayImage.allocate(width,height); grayDiff.allocate(width,height); contourFinder.setMinAreaRadius(10); //configura rastreador contourFinder.setMaxAreaRadius(150); contourFinder.setTargetColor(ofColor::white, TRACK_COLOR_RGB); threshold = 50; bLearnBakground = true; } 09:19 fb.com/RVA.BR 105
  106. 106. Update void ofApp::update(){ vidGrabber.update(); // Pega frame da câmera if(vidGrabber.isFrameNew()){ // é um frame novo ??? colorImage.setFromPixels(vidGrabber.getPixels(),width,height); grayImage = colorImage; if (bLearnBakground == true){ grayBg = grayImage;// salva o fundo da tela - TO ROUBANDO MESMO! bLearnBakground = false;} grayDiff.absDiff(grayBg, grayImage); // fazer fundo x atual grayDiff.threshold(threshold); contourFinder.setThreshold(threshold); // procurar blobs no atual contourFinder.findContours(grayDiff); apontador = encontraPontoMaisDistante(); // procurar “dedo” } } 09:19 fb.com/RVA.BR 106
  107. 107. Ponto mais distante – p1 ofPoint ofApp::encontraPontoMaisDistante(){ int n = contourFinder.size(); //qtidade de blobs capturados ofPoint maisDistante ; //nosso ponto mais distante for(int i = 0; i < n; i++) { ofVec2f centroid = toOf(contourFinder.getCentroid(i)); //Centroide; ofPolyline convexHull = toOf(contourFinder.getConvexHull(i)); //quinas; vector<ofPoint> vertices = convexHull.getVertices(); // vetorDeQuinas vector<ofPoint>::iterator itVec; // para percorrer as quinas. maisDistante = (*vertices.begin()); float tamMaisDistante = centroid.distanceSquared(maisDistante); float distanciaAtual = 0; 09:19 fb.com/RVA.BR 107
  108. 108. Ponto mais distante – p2 for(itVec = vertices.begin(); itVec != vertices.end(); itVec++){ //encontrar ponto mais distante do dedo --> eliminar as bordas if( ((*itVec).x > 40) && ((*itVec).x < width - 40) && ((*itVec).y > 40) && ((*itVec).y < height - 40)){ //elimina bordas distanciaAtual = centroid.distanceSquared((*itVec)); if(distanciaAtual > tamMaisDistante){ //maior “simple as possible” maisDistante = (*itVec); tamMaisDistante = distanciaAtual; } } } } return maisDistante; } 09:19 fb.com/RVA.BR 108
  109. 109. Draw void ofApp::draw(){ ofSetColor(255); grayImage.draw(0, 0); // desenha camera ofTranslate(320, 0); grayDiff.draw(0, 0); // desenha threshould ofTranslate(-320,240); contourFinder.draw(); //desenha contorno encontrado ofSetColor(ofColor::hotPink); ofDrawBitmapString("openCV Threshold: " + ofToString(threshold),50,50); ofTranslate(0,-240); ofFill(); ofSetColor(ofColor::green); ofCircle(apontador,5); //desenha bola verde no “dedo” } 09:19 fb.com/RVA.BR 109
  110. 110. Resultado desejado: 09:19 fb.com/RVA.BR 110
  111. 111. Só use mais hardware quando realmente precisar. 09:51 fb.com/RVA.BR 111
  112. 112. JUNTANDO TUDO. Controlar e monitorar Arduino em RA. 09:19 fb.com/RVA.BR 112
  113. 113. O que nós sabemos (em tese) até agora: •Como se localizar no openFrameworks •projectGenerator, ofApp.h, ofApp.cpp, métodos: setup,update,draw •Como transformar o Arduino numa interface de hardware, para sensores e atuadores. •Como, via openFrameworks: enviar comandos digitais, receber dados digitais e analógicos, enviar PWM, controlar um servo. •Utilizar marcadores do tipo ARToolKitPlus, e: descobrir a sua posição 3D e a sua posição 2D (na tela), verificar se ele foi encontrado. •Utilizar openCV para rastreio de cores, e a posteriori rastreio de mão/dedos – •usando uma webcam normal!!! •Suck it up Kinect!  09:19 fb.com/RVA.BR 113
  114. 114. Fluxograma simplificado 09:19 fb.com/RVA.BR 114 SETUP Configura Arduino, Câmera, ARToolkitPlus e Rastreio Aguarda Arduino Arduino alive – configura Arduino UPDATE Update Arduino Update Câmera + posições de Marcadores e apontador. Verifica interação marcador Verifica interação pointer DRAW Verifica interação Arduino
  115. 115. Funcionando! 09:19 fb.com/RVA.BR 115
  116. 116. WRAP-UP 09:19 fb.com/RVA.BR 116 O QUE APRENDEMOS HOJE
  117. 117. •Existe um framework easy (noob level) em C++ chamado openFrameworks. •openFrameworks pode ser expandido com componentes da comunidade, chamados addons. • Com ele é possível controlar o Arduino (em C++). •O Arduino pode se transformar numa interface de dados usando a lib Firmata. •Arduino é barato e fácil de usar. Um possível software para desenhar circuitos é o Fritzing •Realidade Aumentada é só uma interface de acesso aos elementos virtuais. 09:19 fb.com/RVA.BR 117
  118. 118. •ARToolKitPlus é um tipo de marcador para RA, que é mais rápido que o ARToolKit. •openCV é uma biblioteca de visão computacional. •Com openCV podemos rastrear cores, diferenças de padrão, etc. •Visão computacional nem sempre é um resultado por si. Ideal são soluções hibridas. •Adicionando elementos de interação físicos (sensores e atuadores) à Realidade Aumentada, que fazem a troca bidirecional de informação cria-se Realidade Cruzada. 09:19 fb.com/RVA.BR 118
  119. 119. 09:19 fb.com/RVA.BR 119
  120. 120. 120 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.br Dúvidas: christophercerqueira@gmail.com Site: http://cscerqueira.com.br Facebook: http://fb.com/RVA.BR Para maiores dúvidas: INPE – SJC Prédio Satélite Sala 95

×