SlideShare une entreprise Scribd logo
1  sur  118
Télécharger pour lire hors ligne
07:59cscerqueira.com.br
07:59cscerqueira.com.br
Utilização de Realidade
Aumentada no loop de
controle de um drone
M.Sc. Eng. Christopher S. Cerqueira
cscerqueira.com.br
07:59cscerqueira.com.br
O que vamos
aprender hoje
fazer???
07:59cscerqueira.com.br
PONTO DE VISTA DA
CÂMERA
07:59cscerqueira.com.br
Interação Colaborativa com
Artefatos Inteligentes
Interação homem-máquina, metáforas, ambientes contínuos e realidade Cruzada
#motivação
[Motivação][Teoria]
Metáforas (Spolsky, 2001)
Sistema
análogo
Modelo do
programa
representa
Modelo do
Programa
Modelo do
Usuário
Em conformidade
Expectativas de como
o software deve
trabalhar
Software sendo
executado
07:59cscerqueira.com.br
[Motivação][Teoria]
Limitações de interfaces WIMP (Windows, Icon, Menu, Pointer)
Operações explicitas – as interfaces reduzem a carga
cognitiva das operações, só que não necessariamente
reduzem a quantidade de operações.
Desconhecimento do mundo real – as interfaces são
projetadas para o ambiente usuário – computador.
Lacunas entre o mundo real – as interfaces não
conseguem relacionar a modificação de objetos do mundo
real. (Rekimoto e Nagao, 1995)
Solução?!
07:59cscerqueira.com.br
[Motivação][Teoria]
Interfaces tangíveis
“Interfaces tangíveis são interfaces através das quais o
usuário interage com uma informação digital via um
ambiente físico.”
(Ishii, 2008)
07:59cscerqueira.com.br
[Motivação][Teoria]
Estilos de Interfaces (Rekimoto e Nagao (1995))
07:59cscerqueira.com.br
[Motivação][Teoria]
Intersecção entre tipos de artefatos usados no
ambiente (Kirner et al., 2012)
07:59cscerqueira.com.br
[Motivação][Teoria]
Realidade Cruzada = Realidade Aumentada +
Artefatos inteligentes
“Realidade aumentada e uma interface baseada na
combinação de informações geradas
computacionalmente (imagens estáticas ou
dinâmicas, sons espaciais e sensações hápticas)
com o ambiente real do usuário, através de
dispositivos tecnológicos e utilizando interação
natural no mundo real.”
(Kirner 2011)
clássico
laserTag
oasis
lego
pokemon07:59cscerqueira.com.br
Realidade Cruzada = Realidade Aumentada +
Artefatos inteligentes
“Realidade Cruzada é um ambiente de realidade misturada
ubíqua formado 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 de realidade
aumentada, onde a troca de informação é bidirecional entre
os mundos reais e virtuais.”
(Kirner 2011)
(Kirner et al,
2012)
(Curso de Inverno – INPE 2015)
07:59cscerqueira.com.br
[MOTIVAÇÃO]
Aplicações – Internet das Coisas
07:59cscerqueira.com.br
[MOTIVAÇÃO]
Aplicações - Educacionais
07:59cscerqueira.com.br
[MOTIVAÇÃO]
Aplicações - Guerra de robos
07:59cscerqueira.com.br
[MOTIVAÇÃO]
Tendência - Wearables
07:59cscerqueira.com.br
[MOTIVAÇÃO]
Tendência
▪ Explosão de produtos interligados
▪ Com software embarcado
▪ Local Awareness
▪ Vide: raspberry PI 2
07:59cscerqueira.com.br
[MOTIVAÇÃO]
Prototipagem / Aprendizado
07:59cscerqueira.com.br
[MOTIVAÇÃO] Desafio da área espacial:
Docking – Acoplamento autônomo de
espaçonaves.
ISS Dock 01
ISS Dock 02
Dock for dummies
07:59cscerqueira.com.br
[ROTEIRO]
▪ Objetivos do evento proposto: Apresentar a utilização do
openFrameworks, Realidade Aumentada como ferramenta de
engenharia, utilização de Arduino e controle de motor DC.
▪ Conteúdo do evento proposto:
1. openFrameworks
2. Arduino e Firmata
3. Controlando o drone (baseado em Arduino) via Interface em
openFrameworks
4. Realidade Aumentada
5. Capturando informações do marcador via openFrameworks.
6. Movimento autônomo de drone com RA no loop de controle.
07:59cscerqueira.com.br
1. openFrameworks
07:59cscerqueira.com.br
Processing
Adobe Flash
Unity
Cinder
openFrameworks
07:59cscerqueira.com.br
[openFrameworks]
openframeworks.cc
▪ Vídeo oF1....media_videos7_openFrameworks1.mp4
▪ Vídeo oF2....media_videos7_openFrameworks2.mp4
07:59cscerqueira.com.br
[openFrameworks]
oF
▪ Criado para artistase 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)
▪ Usar quando:
▪ O projeto renderiza muitos gráficos 3D, e/ou;
▪ Utilizar muita visão computacional, e/ou;
▪ Controlar equipamentos, como, por exemplo:
▪ o ARDUINO.
07:59cscerqueira.com.br
07:59cscerqueira.com.br
[openFrameworks]
C++ Portável!!!!
07:59cscerqueira.com.br
[openFrameworks]
Página Principal – openframeworks.cc
07:59cscerqueira.com.br
[openFrameworks]
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.
07:59cscerqueira.com.br
[openFrameworks]
Addons da comunidade: ofxaddons.com
07:59cscerqueira.com.br
[openFrameworks]
OSX, Linux,
Windows, iOS,
Android, Linux
ARM
07:59cscerqueira.com.br
ERA TROGLODITA (C++)
▪ Graduação (2010):
▪ ARToolKit
▪ PTAMM
▪ Bolsista DTI (2011):
▪ basAR
ERA DO FOGO (C++/oF)
▪ Mestrado (2012):
▪ Doutorado (2014):
07:59cscerqueira.com.br
• Introdução à utilização de openFrameworks para o
desenvolvimento de aplicações de RVA
Link
• Construção de aplicações de Realidade Cruzada Projetiva
utilizando openFrameworks e ARDUINO
Link
• Utilização de Realidade Aumentada, com
marcadores(ARToolKitPlus) e outros (utilizando openCV), para
controle e inspeção de hardware, utilizando a interface
ARDUINO.
Link
07:59cscerqueira.com.br
• Construção de interfaces on-demand baseadas em Realidade
Aumentada Projetiva para Controle de Hardware (Arduino)
Link
[openFrameworks]
SVR2013 - Resultados
07:59cscerqueira.com.br
[openFrameworks]
SVR2014 - Resultados
07:59cscerqueira.com.br
[openFrameworks]
WRVA2014 - Resultados
07:59cscerqueira.com.br
[openFrameworks]
SVR2015 - Resultados
07:59cscerqueira.com.br
Primeiro programa em oF
07:59cscerqueira.com.br
[openFrameworks]
Onde encontrar?
07:59cscerqueira.com.br
[openFrameworks]
Level Easy: Gerador Automático
07:59cscerqueira.com.br
[openFrameworks]
Escolhendo expansões
DocoreoF
Dacomunidade
07:59cscerqueira.com.br
[openFrameworks]
Estrutura do projeto
07:59cscerqueira.com.br
[openFrameworks]
Exemplo básico
07:59cscerqueira.com.br
// ofApp.cpp
void ofApp::setup(){
mensagem = "Hello WRVA2015!!!";
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;
...
2. Arduino e Firmata
O que é? Onde
vivem?
Existe? Hoje no
Glob..
O que tem no ARDUINO?
07:59cscerqueira.com.br
[ARDUINO]
Outras versões
07:59cscerqueira.com.br
[ARDUINO]
Shields
07:59cscerqueira.com.br
[ARDUINO]
FIRMATA
Literatura indica FIRMATA:
http://firmata.org/wiki/Download
07:59cscerqueira.com.br
[ARDUINO]
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.
▪O host resolve as lógicas de controle
muito mais rápido.
▪Desvantagens?!
▪Tem que ficar atrelado ao host!
07:59cscerqueira.com.br
Obs.: Mudança da nomenclatura
dos pinos após Firmata 2.3
(Arduino 1.0)
Tomar cuidado na hora de
desenvolver!!!!!!!!!!
07:59cscerqueira.com.br
[ARDUINO]
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.
07:59cscerqueira.com.br
http://arduino.cc/en/reference/firmata
[ARDUINO]
“esquemático”
07:59cscerqueira.com.br
▪ #crashcourse fritzing
▪ http://fritzing.org/home/
[ARDUINO]
“simulador”
▪ https://123d.circuits.io
07:59cscerqueira.com.br
[ARDUINO]
Arduino e openFrameworks
07:59cscerqueira.com.br
[ARDUINO]
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()
07:59cscerqueira.com.br
[ARDUINO]
Código no openFrameworks
▪ Exploração do exemplo: communicationfirmataExample
07:59cscerqueira.com.br
[ARDUINO]
Fluxograma básico
07:59cscerqueira.com.br
SETUP
Habilita callback
de Arduino Alive
Arduino
Responde
Evento Alive
Configura
ArduinoLoop de
execução – sem
Arduino
Enviar
comandos pro
Arduino
Recebeu um
evento Digital
Recebeu um
evento
Analógico
Loop de
execução –
Arduino Update
[ARDUINO]
Código
07:59cscerqueira.com.br
//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);
07:59cscerqueira.com.br
3. Controlando o drone
(baseado em Arduino)
via Interface em
openFrameworks
Vamos controlar o DRONE NA MÃO #FACANACAVEIRA
[oF+Ard+DC]
$$
[oF+Ard+DC]
$$
07:59cscerqueira.com.br
[oF+Ard+DC]
$$
07:59cscerqueira.com.br
[oF+Ard+DC]
Controle de Motor DC
07:59cscerqueira.com.br
[oF+Ard+DC]
Ponte H – L293D
07:59cscerqueira.com.br
[oF+Ard+DC]
Drone 2D
07:59cscerqueira.com.br
1 - AEN = HIGH
2 - A1 = HIGH
7 - A2 = LOW
9 - BEN = HIGH
10 - B1 = HIGH
15 - B2 = LOW
1 - AEN = HIGH
2 - A1 = LOW
7 - A2 = HIGH
9 - BEN = HIGH
10 - B1 = LOW
15 - B2 = HIGH
1 - AEN = HIGH
2 - A1 = HIGH
7 - A2 = LOW
9 - BEN = HIGH
10 - B1 = LOW
15 - B2 = HIGH
1 - AEN = HIGH
2 - A1 = LOW
7 - A2 = HIGH
9 - BEN = HIGH
10 - B1 = HIGH
15 - B2 = LOW
Pinos do L293D
[oF+Ard+DC]
Drone 2D
FUNC ARD LM
RODA1 ENABLE D09 1
RODA1 DIR_A D08 2
RODA1 DIR_B D07 7
RODA2 ENABLE D10 9
RODA2 DIR_A D12 10
RODA2 DIR_B D11 15
07:59cscerqueira.com.br
[oF+Ard+DC]
Drone 2D
07:59cscerqueira.com.br
[oF+Ard+DC]
Código
07:59cscerqueira.com.br
void ofApp::keyPressed(int key){
if (bSetupArduino){
ard.sendDigital(13, ARD_HIGH);
switch (key) {
case OF_KEY_RIGHT: this->moveRight(255); break;
case OF_KEY_LEFT: this->moveLeft(255); break;
case OF_KEY_UP: this->moveFront(255); break;
case OF_KEY_DOWN: this->moveBack(255); break;
default: break;
}
}
}
void ofApp::keyReleased(int key){
if (bSetupArduino){
ard.sendDigital(13, ARD_LOW);
this->stop(0);
}
}
void ofApp::setupArduino(const int & version){
...
// WHEEL ONE
ard.sendDigitalPinMode(8, ARD_OUTPUT); // 1A
ard.sendDigitalPinMode(7, ARD_OUTPUT); // 2A
ard.sendDigitalPinMode(9, ARD_PWM); // 1,2 EN
// WHEEL TWO
ard.sendDigitalPinMode(12, ARD_OUTPUT); // 1A
ard.sendDigitalPinMode(11, ARD_OUTPUT); // 2A
ard.sendDigitalPinMode(10, ARD_PWM); // 1,2 EN
// SIGNAL
ard.sendDigitalPinMode(13, ARD_OUTPUT);
}
void ofApp::stop(int value){
ard.sendPwm(9,(int) 0); // stop wheel one
ard.sendPwm(10,(int) 0);// stop wheel two
}
void ofApp::moveBack(int value){
if(value>255 || value<0) return;
ard.sendPwm(9, value); // full wheel one
ard.sendDigital(8, ARD_HIGH);
ard.sendDigital(7, ARD_LOW);
ard.sendPwm(10, value);// full wheel two
ard.sendDigital(11, ARD_HIGH);
ard.sendDigital(12, ARD_LOW);
}
void ofApp::moveRight(int value){
if(value>255 || value<0) return;
ard.sendPwm(9,value); // full wheel one
ard.sendDigital(8, ARD_HIGH);
ard.sendDigital(7, ARD_LOW);
ard.sendPwm(10,value);// full wheel two
ard.sendDigital(11, ARD_LOW);
ard.sendDigital(12, ARD_HIGH);
}
4. Realidade Aumentada
[Realidade Aumentada]
Frameworks
Marcador
▪ARToolKit (C) –
90´s
▪ NYARToolKit (Java, C#, C++,
Android)
▪ AndAR (Android)
▪ FLARToolKit (AS3)
Sem marcador
▪ OpenCV - Multiplataforma
▪ PTAMM (C++)
▪ Vuforia
▪ Project Tango SDK
▪ NGHIA’S AUGMENTED REALITY
07:59cscerqueira.com.br
[Realidade Aumentada]
Ferramentas de Autoria
basAR FLARAS
07:59cscerqueira.com.br
[Realidade Aumentada]
Marcadores
ARToolKit
▪ HITLab
▪ Compara templates.
▪ Template marker
detection
▪ Mais lento
▪ Inviável em SW
embarcado.
ARToolKitPlus
▪ Graz University of
Technology
▪ Compara códigos
▪ ID-Encoded marker
detection
▪ Mol^k vezes mais rápido
▪ Bom para SW
embarcado.
07:59cscerqueira.com.br
[Realidade Aumentada]
ARToolKit
07:59cscerqueira.com.br
[Realidade Aumentada]
ARToolKitPlus
07:59cscerqueira.com.br
[Realidade Aumentada]
Voltando ao mundo real
▪ openFrameworks + ARToolKitPlus.
▪ Add-on ofxARToolKitPlus.
▪ Descompactá-lo e salvar dentro de
<of>/addons
▪ Renomear, retirando o sufixo -master
07:59cscerqueira.com.br
[Realidade Aumentada]
Add-ons
▪ Utilizar o gerador automático e gerar com os seguintes add-
ons:
▪ ofxARToolKitPlus *Necessário compilar antes para o
c++ que vai usar
▪ ofxOpenCv (necessário para o ofxARToolKitPlus)
▪ ofxAssimpModelLoader
http://touch-base-br.blogspot.com.br/2014/09/openframeworks-083-
ofxartoolkitplus.html
07:59cscerqueira.com.br
[Realidade Aumentada]
Ajustando o projeto - caminhos
1. Configuration Properties  Linker GeneralAdditional
Library Directories e inclua o caminho para a biblioteca, no
caso:
......addonsofxARtoolkitPluslibsARToolKitPluslibwin32
07:59cscerqueira.com.br
[Realidade Aumentada]
Ajustando o projeto - lib
1. Configuration Properties  Linker Input 
Additional Dependencies
incluir a lib:
ARToolKitPlus.lib
07:59cscerqueira.com.br
[Realidade Aumentada]
Lets code...
// testApp.cpp
#pragma once
#include "ofMain.h"
#include "ofxOpenCv.h" //Cabeçalho do OpenCV
#include "ofxARToolkitPlus.h" //Cabeçalho do ARToolKitPlus
class testApp : 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
int threshold; // Threshold da relação preto/branco
ofxCvColorImage colorImage; //imagem capturada pela câmera
ofxCvGrayscaleImage grayImage; //imagem em tons de cinza (mais rápida)
ofxCvGrayscaleImage grayThres;//imagem com threshold antes de ir pro artk
};
07:59cscerqueira.com.br
[Realidade Aumentada]
Configurando – testApp::setup()
//--------------------------------------------------------------
void testApp::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
grayThres.allocate(width, height); // reserva imagem ajustada
artk.setup(width, height); // inicia o ARToolKitPlus
threshold = 85; // threshold para a imagem ajustada
artk.setThreshold(threshold); // informa ao ARToolKitPlus que o ajuste
é externo
}
07:59cscerqueira.com.br
[Realidade Aumentada]
Rastreio - testApp::update()
//--------------------------------------------------------------
void testApp::update(){
vidGrabber.grabFrame(); // 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
//Como queremos testar o threshold temos que gerar essa imagem
grayThres = grayImage;
grayThres.threshold(threshold);
//Passa para o ARToolKitPlus a imagem monocromática
artk.update(grayImage.getPixels());
}
}
07:59cscerqueira.com.br
[Realidade Aumentada]
Exibindo - testApp::draw() – p1
//--------------------------------------------------------------
void testApp::draw(){
ofSetColor(ofColor::white); // inicia a cor dos objetos como branca
colorImage.draw(0, 0); // exibe a imagem capturada colorida
grayThres.draw(640, 0); // exibe a imagem adaptada
artk.draw(640, 0); // Esta função exibe a posição e etiqueta o marcador
// ARTK 3D
artk.applyProjectionMatrix();// aplicar a matriz de projeção da camera
int numDetected = artk.getNumDetectedMarkers(); //detectar os marcadores
ofEnableAlphaBlending(); //habilitar a transparência
07:59cscerqueira.com.br
[Realidade Aumentada]
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);
}
}
}
07:59cscerqueira.com.br
[Realidade Aumentada]
Alterando o threshold -
testApp::keyPressed(int key)
//--------------------------------------------------------------
void testApp::keyPressed(int key){
if(key == OF_KEY_UP) {
artk.setThreshold(++threshold); // aumenta o valor do threshold
} else if(key == OF_KEY_DOWN) {
artk.setThreshold(--threshold); // diminui o valor do threshold
} else if(key == 's') {
vidGrabber.videoSettings(); // chama a configuração da câmera
}
}
07:59cscerqueira.com.br
[Realidade Aumentada]
Resultado esperado
07:59cscerqueira.com.br
[Realidade Aumentada]
Adicionando conteúdo
▪ Adicionar o modelo via ofxAssimpModelLoader
▪ Reutilizar o modelo do exemplo anterior.
07:59cscerqueira.com.br
[Realidade Aumentada]
Só adicionar o Assimp
#pragma once
#include "ofMain.h"
#include "ofxOpenCv.h"
#include "ofxARToolkitPlus.h"
#include "ofxAssimpModelLoader.h"
class testApp : public ofBaseApp{
...
ofxCvGrayscaleImage grayThres;
ofxAssimpModelLoader model;
};
07:59cscerqueira.com.br
[Realidade Aumentada]
Setup e Draw...
//--------------------------------------------------------------
void testApp::setup(){
...
if( !model.loadModel("astroBoy_walk.dae", false) ) // Abre o
arquivo
ofSystemAlertDialog("Erro em carregar arquivo");
}
07:59cscerqueira.com.br
[Realidade Aumentada]
//--------------------------------------------------------------
void testApp::draw(){
// ARTK 3D
...
for(int i=0; i<numDetected; i++) { // marcadores encontrados
...
//Local onde colocar o conteúdo 3D do marcador
//pilha de retângulos.
// Modelo 3D
ofSetColor(255); // Configura a cor do objeto
ofPushMatrix(); // Abre o contexto
glEnable(GL_DEPTH_TEST); // habilita profundidade
ofScale(0.1,0.1,0.1); // ajusta escala
ofRotateX(-90); // rotaciona 90 graus
model.drawFaces(); / desenha as faces
glDisable(GL_DEPTH_TEST); // desabilita profundidade
ofPopMatrix(); // fecha o contexto
}
}
07:59cscerqueira.com.br
[Realidade Aumentada]
07:59cscerqueira.com.br
5. Capturando
informações do
marcador via
openFrameworks.
Entendendo o que é capturado pela câmera
[Marcadores]
Informações possíveis
(x,y,z)
Plano XY
x
y
z
07:59cscerqueira.com.br
07:59cscerqueira.com.br
x
y
-angle+angle
[Marcadores]
Como acessar no código!?!?!?
07:59cscerqueira.com.br
ofVec3f vetorTranslacao;
ofVec3f vetorRotacao;
void ofApp::update(){
vidGrabber.update();
if(vidGrabber.isFrameNew()){
colorImage.setFromPixels(vidGrabber.getPixels(),width,height);
grayImage = colorImage;
artk.update(grayImage.getPixels());
// contas
// só quero o marcador 37!!!!
int myIndex = artk.getMarkerIndex(37); // se encontrou retorna o indice
if(myIndex >= 0 ) {
// vetor translação
vetorTranslacao = artk.getDetectedMarkerCenter(myIndex);
// vetor rotação
vetorRotacao = artk.getOrientationQuaternion(myIndex).getEuler();
} else {
vetorTranslacao = ofPoint(0);
vetorRotacao = ofVec3f(0);
}
}
}
http://mtm.ufsc.br/~ebatista/Escritos_Didaticos_arquivos/bienal_2012.pdf
6. Movimento
autônomo de drone
com RA no loop de
controle.
Fechando a malha
[Controlando Drone]
Teoria de Controle
https://en.wikipedia.org/wiki/Control_theory
07:59cscerqueira.com.br
[Controlando Drone]
Nossa malha
07:59cscerqueira.com.br
Posição
Real
Já
chegamos?
Atua na
direção
Posição
Real
Onde
estamos?
[Controlando Drone]
Onde Estamos?
07:59cscerqueira.com.br
x
y
Onde
estamos?
Posição Atual
Frente Virtual
// ATUALIZAR SENSOR
posicaoAtual = artk.getDetectedMarkerCenter(myIndex);
vector<ofPoint> pontos;
artk.getDetectedMarkerOrderedBorderCorners(myIndex,pontos);
if(pontos.size() == 4){
frenteVirtual = (pontos[3] + pontos[0])/2;
} else {
frenteVirtual.zero();
}
0
1
3
2
[Controlando Drone]
Já chegamos??
07:59cscerqueira.com.br 07:59cscerqueira.com.br
x
y
Ponto
Destino
Distância a
percorrer
Posição Atual
Tolerância
Já
chegamos?
Rotacionar
[Controlando Drone]
Já chegamos??
07:59cscerqueira.com.br
Já
chegamos?
07:59cscerqueira.com.br 07:59cscerqueira.com.br
x
y
Distância a
percorrer
Tolerância
if(alinhado){ // ATUA PARA FRENTE!
if( (posicaoDesejada - posicaoAtual).length() > 20 ) { // já chegamos??
moveFront(255); // não, mas tá alinhado então avante
} else {
stop(0); // AEEEEEEEEEE chegamos
return true;
}
}
[Controlando Drone]
Já chegamos??
07:59cscerqueira.com.br 07:59cscerqueira.com.br 07:59cscerqueira.com.br
x
y
Ponto
Destino
Tolerância
Já
chegamos?
Rotacionar
// testa se está na direção correta
if ( (frenteVirtual - posicaoAtual).isAligned((posicaoDesejada - posicaoAtual),20)){
alinhado = true;
} else
{
........ Continua....
Pensando...
07:59cscerqueira.com.br
perp.x = (posicaoDesejada - posicaoAtual).x;
perp.y = -pow((posicaoDesejada - posicaoAtual).x,2)/(posicaoDesejada - posicaoAtual).y;
if( perp.angle((frenteVirtual - posicaoAtual)) > 90){
cout<< endl << "lado 1";
if( (perp.x > 0 && perp.y > 0) || (perp.x < 0 && perp.y < 0)){
moveRight(255);
} else {
moveLeft(255);
}
} else {
cout << endl << "lado 2";
if( (perp.x > 0 && perp.y > 0) || (perp.x < 0 && perp.y < 0)){
moveLeft(255);
} else {
moveRight(255);
}
}
>90°
Mover para a
esquerda
X < 0
Y > 0
O que aprendemos hoje
▪ As coisas são mais fáceis do que imaginam
▪ Existe um framework em C++ chamado openFrameworks
▪ E ele é fera pois se comunica facilmente com Arduino
▪ Usar o Arduino como uma interface com HW é TOP,
▪ tem uma classe pronta, com todos os métodos
▪ O openFrameworks tem pacotes da comunidade que facilitam a
vida! 
▪ Um deles é para RA – ARToolKitPlus
▪ O rastreio de marcadores permite capturar translações e rotações.
▪ Visão computacional é muito útil, para fechar a malha de controle,
rastrear fim de curso, rastrear posições de acoplagem.
07:59cscerqueira.com.br
Link para download dos códigos dos exemplos
▪http://www.4shared.com/folder/Cb1E5bxa/
WRVA2015.html
07:59cscerqueira.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
07:59cscerqueira.com.br
O INPE (Instituto Nacional de
Pesquisas Espaciais)
07:59cscerqueira.com.br
RV EM SIMULADORES OPERACIONAIS DE
SATÉLITE
RV EM SIMULADORES OPERACIONAIS DE SATÉLITE
07:59cscerqueira.com.br
SIMULADOR DE UM SENSOR DE ESTRELAS
COM RA
SIMULADOR DE UM SENSOR DE ESTRELAS COM
MARCADORES
Geração Automática
de Código Embarcável
m-file
s-file
Comunicação com
MATLAB/Simulink
Modelo do
EPS
Modelos /
Simulador
Circuito
Bateria
*FEE (Front End Equipment) – Estimulador/Sensor
FEE
UTILIZAÇÃO DE ARDUINO EM TESTBENCHS PARA
POTENCIALIZAR O USO DE MDE
CONSTRUÇÃO DE AMBIENTES CONTÍNUOS BASEADOS
EM REALIDADE CRUZADA PARA ANÁLISE DE MISSÃO
Outras Iniciativas:
DESENVOLVIMENTO E APLICAÇÃO DE
RECURSOS DE REALIDADE AUMENTADA
EM VISUALIZAÇÃO DE DADOS DE
MISSÕES ESPACIAIS
RECONSTRUÇÃO GRÁFICA TRIDIMENSIONAL DE
EDIFICAÇÕES URBANAS A PARTIR DE IMAGENS AÉREAS
THE ROLE OF COMPUTATIONAL STEERING IN
SPACE ENGINEERING ACTIVITIES ASSISTED BY
MODELLING AND SIMULATION
Academicamente
▪ 7 Pós-Graduações:
▪ Astrofísica
▪ Engenharia e Tecnologia Espaciais
▪ Mecânica Espacial e Controle
▪ Combustão e Propulsão
▪ Ciência e Tecnologia de Materiais e Sensores
▪ Engenharia e Gerenciamento de Sistemas Espaciais
▪ Geofísica Espacial
▪ Computação Aplicada
▪ Meteorologia
▪ Sensoriamento Remoto
▪ Ciência do Sistema Terrestre
http://www.inpe.br/ci/
07:59cscerqueira.com.br
São José dos Campos - SP
▪ Capital econômica do Vale do Paraíba
▪ EMBRAER, GM, Johnson, Phillips,
Petrobras, Monsanto, Avibras, Mectron
(Odebretch).
▪ ~650k players (ops. Habitantes)
▪ ITA, INPE, IEAv, EAE, IP&D, UNIVAP,
UNIFESP
▪ Capital aeroespacial do país.
07:59cscerqueira.com.br
Dúvidas: christophercerqueira@gmail.com
Site: http://cscerqueira.com.br
Facebook: http://fb.com/RVA.BR
Para dúvidas MUITO maiores:
INPE – SJC
Prédio Satélite
Sala 95
07:59cscerqueira.com.br

Contenu connexe

Tendances

Desenvolvimento de Jogos com Corona SDK
Desenvolvimento de Jogos com Corona SDKDesenvolvimento de Jogos com Corona SDK
Desenvolvimento de Jogos com Corona SDKBruno Cicanci
 
Multirão Python - introdução ao py serial com gtk3 e arduino
Multirão Python - introdução ao py serial com gtk3 e arduinoMultirão Python - introdução ao py serial com gtk3 e arduino
Multirão Python - introdução ao py serial com gtk3 e arduinoAntonio Thomacelli
 
TDC2015 - Internet das Coisas - OpenDevice
TDC2015 - Internet das Coisas - OpenDeviceTDC2015 - Internet das Coisas - OpenDevice
TDC2015 - Internet das Coisas - OpenDeviceRicardo Rufino
 
Android: Conheça o Futuro Inevitável
Android: Conheça o Futuro InevitávelAndroid: Conheça o Futuro Inevitável
Android: Conheça o Futuro InevitávelCampus Party Brasil
 
Do zero ao jogo multiplataforma com cocos2d
Do zero ao jogo multiplataforma com cocos2dDo zero ao jogo multiplataforma com cocos2d
Do zero ao jogo multiplataforma com cocos2dVitor Mattos
 
Computação Física com Arduino/Program-ME e a Plataforma Java
Computação Física com Arduino/Program-ME e a Plataforma JavaComputação Física com Arduino/Program-ME e a Plataforma Java
Computação Física com Arduino/Program-ME e a Plataforma JavaDr. Spock
 
ArduinoDay 2015 - OpenDevice
ArduinoDay 2015 -  OpenDeviceArduinoDay 2015 -  OpenDevice
ArduinoDay 2015 - OpenDeviceRicardo Rufino
 
[WRVA2014] Utilização de Realidade Aumentada, com marcadores(ARToolKitPlus) e...
[WRVA2014] Utilização de Realidade Aumentada, com marcadores(ARToolKitPlus) e...[WRVA2014] Utilização de Realidade Aumentada, com marcadores(ARToolKitPlus) e...
[WRVA2014] Utilização de Realidade Aumentada, com marcadores(ARToolKitPlus) e...Christopher Cerqueira
 
Desenvolvimento de Jogos com Cocos2d - Apresentação Coderockr Jam
Desenvolvimento de Jogos com Cocos2d - Apresentação Coderockr JamDesenvolvimento de Jogos com Cocos2d - Apresentação Coderockr Jam
Desenvolvimento de Jogos com Cocos2d - Apresentação Coderockr JamAndré Espeiorin
 
DIY Drones Utilizando Controladora Open Soure
DIY Drones Utilizando Controladora Open SoureDIY Drones Utilizando Controladora Open Soure
DIY Drones Utilizando Controladora Open SoureEstevao Veiga
 
Como montar sua própria placa Arduino e compartilhar seus projetos de hardware
Como montar sua própria placa Arduino e compartilhar seus projetos de hardwareComo montar sua própria placa Arduino e compartilhar seus projetos de hardware
Como montar sua própria placa Arduino e compartilhar seus projetos de hardwareFabio Souza
 
Bootloader: Teoria de operação e implementação via USB para PIC
Bootloader: Teoria de operação e implementação via USB para PICBootloader: Teoria de operação e implementação via USB para PIC
Bootloader: Teoria de operação e implementação via USB para PICDaniel Rodrigues de Sousa
 
Como montar sua própria placa Arduino e compartilhar seus projetos de hardware
Como montar sua própria placa Arduino e compartilhar seus projetos de hardwareComo montar sua própria placa Arduino e compartilhar seus projetos de hardware
Como montar sua própria placa Arduino e compartilhar seus projetos de hardwareFabio Souza
 
JsDayREC - Dando vida a Arduino com JS
JsDayREC - Dando vida a Arduino com JSJsDayREC - Dando vida a Arduino com JS
JsDayREC - Dando vida a Arduino com JSLucas Cavalcanti
 
Desenvolvimento com Kinect
Desenvolvimento com KinectDesenvolvimento com Kinect
Desenvolvimento com KinectMarcos Castro
 
Desenvolvendo aplicações com Kinect
Desenvolvendo aplicações com KinectDesenvolvendo aplicações com Kinect
Desenvolvendo aplicações com KinectErick Mendonça
 

Tendances (20)

Desenvolvimento de Jogos com Corona SDK
Desenvolvimento de Jogos com Corona SDKDesenvolvimento de Jogos com Corona SDK
Desenvolvimento de Jogos com Corona SDK
 
Multirão Python - introdução ao py serial com gtk3 e arduino
Multirão Python - introdução ao py serial com gtk3 e arduinoMultirão Python - introdução ao py serial com gtk3 e arduino
Multirão Python - introdução ao py serial com gtk3 e arduino
 
TDC2015 - Internet das Coisas - OpenDevice
TDC2015 - Internet das Coisas - OpenDeviceTDC2015 - Internet das Coisas - OpenDevice
TDC2015 - Internet das Coisas - OpenDevice
 
Android: Conheça o Futuro Inevitável
Android: Conheça o Futuro InevitávelAndroid: Conheça o Futuro Inevitável
Android: Conheça o Futuro Inevitável
 
Do zero ao jogo multiplataforma com cocos2d
Do zero ao jogo multiplataforma com cocos2dDo zero ao jogo multiplataforma com cocos2d
Do zero ao jogo multiplataforma com cocos2d
 
Computação Física com Arduino/Program-ME e a Plataforma Java
Computação Física com Arduino/Program-ME e a Plataforma JavaComputação Física com Arduino/Program-ME e a Plataforma Java
Computação Física com Arduino/Program-ME e a Plataforma Java
 
ArduinoDay 2015 - OpenDevice
ArduinoDay 2015 -  OpenDeviceArduinoDay 2015 -  OpenDevice
ArduinoDay 2015 - OpenDevice
 
Apresentacao KINECT
Apresentacao KINECTApresentacao KINECT
Apresentacao KINECT
 
[WRVA2014] Utilização de Realidade Aumentada, com marcadores(ARToolKitPlus) e...
[WRVA2014] Utilização de Realidade Aumentada, com marcadores(ARToolKitPlus) e...[WRVA2014] Utilização de Realidade Aumentada, com marcadores(ARToolKitPlus) e...
[WRVA2014] Utilização de Realidade Aumentada, com marcadores(ARToolKitPlus) e...
 
Oficina kinect
Oficina kinectOficina kinect
Oficina kinect
 
Desenvolvimento de Jogos com Cocos2d - Apresentação Coderockr Jam
Desenvolvimento de Jogos com Cocos2d - Apresentação Coderockr JamDesenvolvimento de Jogos com Cocos2d - Apresentação Coderockr Jam
Desenvolvimento de Jogos com Cocos2d - Apresentação Coderockr Jam
 
DIY Drones Utilizando Controladora Open Soure
DIY Drones Utilizando Controladora Open SoureDIY Drones Utilizando Controladora Open Soure
DIY Drones Utilizando Controladora Open Soure
 
Como montar sua própria placa Arduino e compartilhar seus projetos de hardware
Como montar sua própria placa Arduino e compartilhar seus projetos de hardwareComo montar sua própria placa Arduino e compartilhar seus projetos de hardware
Como montar sua própria placa Arduino e compartilhar seus projetos de hardware
 
Bootloader: Teoria de operação e implementação via USB para PIC
Bootloader: Teoria de operação e implementação via USB para PICBootloader: Teoria de operação e implementação via USB para PIC
Bootloader: Teoria de operação e implementação via USB para PIC
 
Como montar sua própria placa Arduino e compartilhar seus projetos de hardware
Como montar sua própria placa Arduino e compartilhar seus projetos de hardwareComo montar sua própria placa Arduino e compartilhar seus projetos de hardware
Como montar sua própria placa Arduino e compartilhar seus projetos de hardware
 
JsDayREC - Dando vida a Arduino com JS
JsDayREC - Dando vida a Arduino com JSJsDayREC - Dando vida a Arduino com JS
JsDayREC - Dando vida a Arduino com JS
 
Relatório final
Relatório finalRelatório final
Relatório final
 
Desenvolvimento com Kinect
Desenvolvimento com KinectDesenvolvimento com Kinect
Desenvolvimento com Kinect
 
Desenvolvendo aplicações com Kinect
Desenvolvendo aplicações com KinectDesenvolvendo aplicações com Kinect
Desenvolvendo aplicações com Kinect
 
Bt4 H2HC6th
Bt4 H2HC6thBt4 H2HC6th
Bt4 H2HC6th
 

En vedette

Drone x6 top selling
Drone x6  top sellingDrone x6  top selling
Drone x6 top sellingTaumar Morais
 
Café com Marketing Drone Marketing
Café com Marketing Drone MarketingCafé com Marketing Drone Marketing
Café com Marketing Drone MarketingMarina Ramos
 
Segurança da Informação e os Drones
Segurança da Informação e os DronesSegurança da Informação e os Drones
Segurança da Informação e os DronesEduardo Barros Santos
 
Construindo Drones com Hardware Livre
Construindo Drones com Hardware LivreConstruindo Drones com Hardware Livre
Construindo Drones com Hardware LivreWesley Anderson
 
Pre3sentacion dhtics
Pre3sentacion dhticsPre3sentacion dhtics
Pre3sentacion dhticsJaime Garista
 
"Drones for common good" posters at Sustainable Brands 2015 event - Barcelona
"Drones for common good" posters at Sustainable Brands 2015 event - Barcelona"Drones for common good" posters at Sustainable Brands 2015 event - Barcelona
"Drones for common good" posters at Sustainable Brands 2015 event - BarcelonaNuria Sanchez Coll
 
Google Shopping - mehr Umsatz mit Product Listing Ads
Google Shopping - mehr Umsatz mit Product Listing AdsGoogle Shopping - mehr Umsatz mit Product Listing Ads
Google Shopping - mehr Umsatz mit Product Listing AdsSmarter Ecommerce GmbH
 
Seguros para Drones
Seguros para DronesSeguros para Drones
Seguros para DronesMicompiCom
 
Projeto MIV (Minha Identidade Visual) Profª Juliana Soares
Projeto MIV (Minha Identidade Visual) Profª Juliana SoaresProjeto MIV (Minha Identidade Visual) Profª Juliana Soares
Projeto MIV (Minha Identidade Visual) Profª Juliana SoaresTiago Sousa
 
Presentacion sobre los drones
Presentacion sobre los dronesPresentacion sobre los drones
Presentacion sobre los dronescarlos10garrido
 
La médiation du patrimoine sous-marin
La médiation du patrimoine sous-marinLa médiation du patrimoine sous-marin
La médiation du patrimoine sous-marincirili_web
 

En vedette (20)

Drone x6 top selling
Drone x6  top sellingDrone x6  top selling
Drone x6 top selling
 
Drones - Ensaio da DHL
Drones - Ensaio da DHLDrones - Ensaio da DHL
Drones - Ensaio da DHL
 
Epicentro - Valter Yogui
Epicentro - Valter YoguiEpicentro - Valter Yogui
Epicentro - Valter Yogui
 
Café com Marketing Drone Marketing
Café com Marketing Drone MarketingCafé com Marketing Drone Marketing
Café com Marketing Drone Marketing
 
Segurança da Informação e os Drones
Segurança da Informação e os DronesSegurança da Informação e os Drones
Segurança da Informação e os Drones
 
Artigo Cientifico
Artigo CientificoArtigo Cientifico
Artigo Cientifico
 
Construindo Drones com Hardware Livre
Construindo Drones com Hardware LivreConstruindo Drones com Hardware Livre
Construindo Drones com Hardware Livre
 
NeueZieleairmarin_100408.pdf
NeueZieleairmarin_100408.pdfNeueZieleairmarin_100408.pdf
NeueZieleairmarin_100408.pdf
 
Voeux 2014
Voeux 2014 Voeux 2014
Voeux 2014
 
Verkehrskonzept Holweide
Verkehrskonzept HolweideVerkehrskonzept Holweide
Verkehrskonzept Holweide
 
Verkehrskonzept Dellbrück
Verkehrskonzept DellbrückVerkehrskonzept Dellbrück
Verkehrskonzept Dellbrück
 
Pre3sentacion dhtics
Pre3sentacion dhticsPre3sentacion dhtics
Pre3sentacion dhtics
 
"Drones for common good" posters at Sustainable Brands 2015 event - Barcelona
"Drones for common good" posters at Sustainable Brands 2015 event - Barcelona"Drones for common good" posters at Sustainable Brands 2015 event - Barcelona
"Drones for common good" posters at Sustainable Brands 2015 event - Barcelona
 
Lily camera
Lily cameraLily camera
Lily camera
 
Google Shopping - mehr Umsatz mit Product Listing Ads
Google Shopping - mehr Umsatz mit Product Listing AdsGoogle Shopping - mehr Umsatz mit Product Listing Ads
Google Shopping - mehr Umsatz mit Product Listing Ads
 
Seguros para Drones
Seguros para DronesSeguros para Drones
Seguros para Drones
 
Projeto MIV (Minha Identidade Visual) Profª Juliana Soares
Projeto MIV (Minha Identidade Visual) Profª Juliana SoaresProjeto MIV (Minha Identidade Visual) Profª Juliana Soares
Projeto MIV (Minha Identidade Visual) Profª Juliana Soares
 
Presentacion sobre los drones
Presentacion sobre los dronesPresentacion sobre los drones
Presentacion sobre los drones
 
Einparkhilfe Präsentation
Einparkhilfe PräsentationEinparkhilfe Präsentation
Einparkhilfe Präsentation
 
La médiation du patrimoine sous-marin
La médiation du patrimoine sous-marinLa médiation du patrimoine sous-marin
La médiation du patrimoine sous-marin
 

Similaire à WRVA 2015

OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)Ricardo Rufino
 
Um Ambiente Grafico para Desenvolvimento de Software de Controle para Robos M...
Um Ambiente Grafico para Desenvolvimento de Software de Controle para Robos M...Um Ambiente Grafico para Desenvolvimento de Software de Controle para Robos M...
Um Ambiente Grafico para Desenvolvimento de Software de Controle para Robos M...Humberto Marchezi
 
Beers & Bytes - O Futuro da virtualização
Beers & Bytes - O Futuro da virtualizaçãoBeers & Bytes - O Futuro da virtualização
Beers & Bytes - O Futuro da virtualizaçãoCarlos Smaniotto
 
Sindpd introducao arduinodomotica
Sindpd introducao arduinodomoticaSindpd introducao arduinodomotica
Sindpd introducao arduinodomoticaDesiree Santos
 
Docker - minicurso utfpr 2017
Docker -  minicurso utfpr 2017Docker -  minicurso utfpr 2017
Docker - minicurso utfpr 2017Fabio Janiszevski
 
Java alem das aplicacoes comerciais convencionais
Java alem das aplicacoes comerciais convencionaisJava alem das aplicacoes comerciais convencionais
Java alem das aplicacoes comerciais convencionaisLeonardo Simberg
 
Tecnologia .NET em Mundos Virtuais - Bruno Pires
Tecnologia .NET em Mundos Virtuais - Bruno PiresTecnologia .NET em Mundos Virtuais - Bruno Pires
Tecnologia .NET em Mundos Virtuais - Bruno PiresComunidade NetPonto
 
Kinect e Natural User Interfaces - TDC2011
Kinect e Natural User Interfaces - TDC2011Kinect e Natural User Interfaces - TDC2011
Kinect e Natural User Interfaces - TDC2011Mauricio Alegretti
 
Arduino, Robótica e Computação nas Nuvens
Arduino, Robótica e Computação nas NuvensArduino, Robótica e Computação nas Nuvens
Arduino, Robótica e Computação nas NuvensMarco Antonio Maciel
 
Palestra: A Melhor Maneira de Aprender, É Fazendo!
Palestra: A Melhor Maneira de Aprender, É Fazendo!Palestra: A Melhor Maneira de Aprender, É Fazendo!
Palestra: A Melhor Maneira de Aprender, É Fazendo!Andre Henrique
 
Testes de escalabilidade usando cloud
Testes de escalabilidade usando cloudTestes de escalabilidade usando cloud
Testes de escalabilidade usando cloudPET Computação
 
Palestra PET.Com - Sistemas Embarcados
Palestra PET.Com - Sistemas EmbarcadosPalestra PET.Com - Sistemas Embarcados
Palestra PET.Com - Sistemas EmbarcadosPET Computação
 

Similaire à WRVA 2015 (20)

Realidade Aumentada
Realidade AumentadaRealidade Aumentada
Realidade Aumentada
 
OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)
 
Arduino
ArduinoArduino
Arduino
 
Minicurso arduino
Minicurso arduinoMinicurso arduino
Minicurso arduino
 
Um Ambiente Grafico para Desenvolvimento de Software de Controle para Robos M...
Um Ambiente Grafico para Desenvolvimento de Software de Controle para Robos M...Um Ambiente Grafico para Desenvolvimento de Software de Controle para Robos M...
Um Ambiente Grafico para Desenvolvimento de Software de Controle para Robos M...
 
OpenKinect, o Kinect para todos
OpenKinect, o Kinect para todosOpenKinect, o Kinect para todos
OpenKinect, o Kinect para todos
 
Beers & Bytes - O Futuro da virtualização
Beers & Bytes - O Futuro da virtualizaçãoBeers & Bytes - O Futuro da virtualização
Beers & Bytes - O Futuro da virtualização
 
Sindpd introducao arduinodomotica
Sindpd introducao arduinodomoticaSindpd introducao arduinodomotica
Sindpd introducao arduinodomotica
 
Cygwin
CygwinCygwin
Cygwin
 
Usando vitual box parte 1
Usando vitual box   parte 1Usando vitual box   parte 1
Usando vitual box parte 1
 
BrazilJS 2012
BrazilJS 2012BrazilJS 2012
BrazilJS 2012
 
Curso Básico Android - Aula 01
Curso Básico Android - Aula 01Curso Básico Android - Aula 01
Curso Básico Android - Aula 01
 
Docker - minicurso utfpr 2017
Docker -  minicurso utfpr 2017Docker -  minicurso utfpr 2017
Docker - minicurso utfpr 2017
 
Java alem das aplicacoes comerciais convencionais
Java alem das aplicacoes comerciais convencionaisJava alem das aplicacoes comerciais convencionais
Java alem das aplicacoes comerciais convencionais
 
Tecnologia .NET em Mundos Virtuais - Bruno Pires
Tecnologia .NET em Mundos Virtuais - Bruno PiresTecnologia .NET em Mundos Virtuais - Bruno Pires
Tecnologia .NET em Mundos Virtuais - Bruno Pires
 
Kinect e Natural User Interfaces - TDC2011
Kinect e Natural User Interfaces - TDC2011Kinect e Natural User Interfaces - TDC2011
Kinect e Natural User Interfaces - TDC2011
 
Arduino, Robótica e Computação nas Nuvens
Arduino, Robótica e Computação nas NuvensArduino, Robótica e Computação nas Nuvens
Arduino, Robótica e Computação nas Nuvens
 
Palestra: A Melhor Maneira de Aprender, É Fazendo!
Palestra: A Melhor Maneira de Aprender, É Fazendo!Palestra: A Melhor Maneira de Aprender, É Fazendo!
Palestra: A Melhor Maneira de Aprender, É Fazendo!
 
Testes de escalabilidade usando cloud
Testes de escalabilidade usando cloudTestes de escalabilidade usando cloud
Testes de escalabilidade usando cloud
 
Palestra PET.Com - Sistemas Embarcados
Palestra PET.Com - Sistemas EmbarcadosPalestra PET.Com - Sistemas Embarcados
Palestra PET.Com - Sistemas Embarcados
 

Plus de Christopher Cerqueira

MICRO SATÉLITES BRASILEIROS, ELES EXISTEM?
MICRO SATÉLITES BRASILEIROS, ELES EXISTEM?MICRO SATÉLITES BRASILEIROS, ELES EXISTEM?
MICRO SATÉLITES BRASILEIROS, ELES EXISTEM?Christopher Cerqueira
 
Jornada Espacial 2018 - Cubesats: o que são e pra que servem
Jornada Espacial 2018 - Cubesats: o que são e pra que servemJornada Espacial 2018 - Cubesats: o que são e pra que servem
Jornada Espacial 2018 - Cubesats: o que são e pra que servemChristopher Cerqueira
 
[Thesis] Tangible Collaboration applied in Space Systems Concurrent Engineeri...
[Thesis] Tangible Collaboration applied in Space Systems Concurrent Engineeri...[Thesis] Tangible Collaboration applied in Space Systems Concurrent Engineeri...
[Thesis] Tangible Collaboration applied in Space Systems Concurrent Engineeri...Christopher Cerqueira
 
Using Finite State Machines From Concept to Realization
Using Finite State Machines From Concept to RealizationUsing Finite State Machines From Concept to Realization
Using Finite State Machines From Concept to RealizationChristopher Cerqueira
 
A Model Based Concurrent Engineering Framework using ISO-19450 Standard
A Model Based Concurrent Engineering Framework using ISO-19450 StandardA Model Based Concurrent Engineering Framework using ISO-19450 Standard
A Model Based Concurrent Engineering Framework using ISO-19450 StandardChristopher Cerqueira
 
Modelos e metodologias de projeto de sistemas
 Modelos e metodologias de projeto de sistemas Modelos e metodologias de projeto de sistemas
Modelos e metodologias de projeto de sistemasChristopher Cerqueira
 

Plus de Christopher Cerqueira (20)

MICRO SATÉLITES BRASILEIROS, ELES EXISTEM?
MICRO SATÉLITES BRASILEIROS, ELES EXISTEM?MICRO SATÉLITES BRASILEIROS, ELES EXISTEM?
MICRO SATÉLITES BRASILEIROS, ELES EXISTEM?
 
Jornada Espacial 2018 - Cubesats: o que são e pra que servem
Jornada Espacial 2018 - Cubesats: o que são e pra que servemJornada Espacial 2018 - Cubesats: o que são e pra que servem
Jornada Espacial 2018 - Cubesats: o que são e pra que servem
 
CI2018_Simuladores
CI2018_Simuladores CI2018_Simuladores
CI2018_Simuladores
 
CI2018_MBSE4.0
CI2018_MBSE4.0CI2018_MBSE4.0
CI2018_MBSE4.0
 
[Thesis] Tangible Collaboration applied in Space Systems Concurrent Engineeri...
[Thesis] Tangible Collaboration applied in Space Systems Concurrent Engineeri...[Thesis] Tangible Collaboration applied in Space Systems Concurrent Engineeri...
[Thesis] Tangible Collaboration applied in Space Systems Concurrent Engineeri...
 
XV Jornada do Espaço
XV Jornada do EspaçoXV Jornada do Espaço
XV Jornada do Espaço
 
Using Finite State Machines From Concept to Realization
Using Finite State Machines From Concept to RealizationUsing Finite State Machines From Concept to Realization
Using Finite State Machines From Concept to Realization
 
So 01 - processos
So   01 - processosSo   01 - processos
So 01 - processos
 
Redes 05 - aplicação
Redes   05 - aplicaçãoRedes   05 - aplicação
Redes 05 - aplicação
 
Redes 04 - transporte
Redes   04 - transporteRedes   04 - transporte
Redes 04 - transporte
 
Redes 03 - rede
Redes   03 - redeRedes   03 - rede
Redes 03 - rede
 
Redes 02 - enlace
Redes   02 - enlaceRedes   02 - enlace
Redes 02 - enlace
 
Redes 01 - topologia
Redes   01 - topologiaRedes   01 - topologia
Redes 01 - topologia
 
Intro heuristica
Intro heuristicaIntro heuristica
Intro heuristica
 
[Ci2017] Simuladores de Satélites
[Ci2017] Simuladores de Satélites[Ci2017] Simuladores de Satélites
[Ci2017] Simuladores de Satélites
 
MBSE e Espaço 4.0
MBSE e Espaço 4.0MBSE e Espaço 4.0
MBSE e Espaço 4.0
 
A Model Based Concurrent Engineering Framework using ISO-19450 Standard
A Model Based Concurrent Engineering Framework using ISO-19450 StandardA Model Based Concurrent Engineering Framework using ISO-19450 Standard
A Model Based Concurrent Engineering Framework using ISO-19450 Standard
 
Introdução à Engenharia Espacial
Introdução à Engenharia EspacialIntrodução à Engenharia Espacial
Introdução à Engenharia Espacial
 
CubeSats e Software Embarcado
CubeSats e Software EmbarcadoCubeSats e Software Embarcado
CubeSats e Software Embarcado
 
Modelos e metodologias de projeto de sistemas
 Modelos e metodologias de projeto de sistemas Modelos e metodologias de projeto de sistemas
Modelos e metodologias de projeto de sistemas
 

Dernier

FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃOFASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃOAulasgravadas3
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfHELENO FAVACHO
 
Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?AnabelaGuerreiro7
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxMauricioOliveira258223
 
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxJOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxTainTorres4
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médiorosenilrucks
 
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfPROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfMarianaMoraesMathias
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Ilda Bicacro
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)ElliotFerreira
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMHELENO FAVACHO
 
Ficha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFicha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFtimaMoreira35
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteVanessaCavalcante37
 
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇJaineCarolaineLima
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamentalAntônia marta Silvestre da Silva
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfCamillaBrito19
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfmaurocesarpaesalmeid
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxLuizHenriquedeAlmeid6
 

Dernier (20)

FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃOFASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptx
 
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxJOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médio
 
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfPROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"
 
Aula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIXAula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIX
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
 
Ficha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFicha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdf
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
 
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdf
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 

WRVA 2015

  • 3. Utilização de Realidade Aumentada no loop de controle de um drone M.Sc. Eng. Christopher S. Cerqueira cscerqueira.com.br
  • 7. Interação Colaborativa com Artefatos Inteligentes Interação homem-máquina, metáforas, ambientes contínuos e realidade Cruzada #motivação
  • 8. [Motivação][Teoria] Metáforas (Spolsky, 2001) Sistema análogo Modelo do programa representa Modelo do Programa Modelo do Usuário Em conformidade Expectativas de como o software deve trabalhar Software sendo executado 07:59cscerqueira.com.br
  • 9. [Motivação][Teoria] Limitações de interfaces WIMP (Windows, Icon, Menu, Pointer) Operações explicitas – as interfaces reduzem a carga cognitiva das operações, só que não necessariamente reduzem a quantidade de operações. Desconhecimento do mundo real – as interfaces são projetadas para o ambiente usuário – computador. Lacunas entre o mundo real – as interfaces não conseguem relacionar a modificação de objetos do mundo real. (Rekimoto e Nagao, 1995) Solução?! 07:59cscerqueira.com.br
  • 10. [Motivação][Teoria] Interfaces tangíveis “Interfaces tangíveis são interfaces através das quais o usuário interage com uma informação digital via um ambiente físico.” (Ishii, 2008) 07:59cscerqueira.com.br
  • 11. [Motivação][Teoria] Estilos de Interfaces (Rekimoto e Nagao (1995)) 07:59cscerqueira.com.br
  • 12. [Motivação][Teoria] Intersecção entre tipos de artefatos usados no ambiente (Kirner et al., 2012) 07:59cscerqueira.com.br
  • 13. [Motivação][Teoria] Realidade Cruzada = Realidade Aumentada + Artefatos inteligentes “Realidade aumentada e uma interface baseada na combinação de informações geradas computacionalmente (imagens estáticas ou dinâmicas, sons espaciais e sensações hápticas) com o ambiente real do usuário, através de dispositivos tecnológicos e utilizando interação natural no mundo real.” (Kirner 2011) clássico laserTag oasis lego pokemon07:59cscerqueira.com.br
  • 14. Realidade Cruzada = Realidade Aumentada + Artefatos inteligentes “Realidade Cruzada é um ambiente de realidade misturada ubíqua formado 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 de realidade aumentada, onde a troca de informação é bidirecional entre os mundos reais e virtuais.” (Kirner 2011) (Kirner et al, 2012) (Curso de Inverno – INPE 2015) 07:59cscerqueira.com.br
  • 15. [MOTIVAÇÃO] Aplicações – Internet das Coisas 07:59cscerqueira.com.br
  • 17. [MOTIVAÇÃO] Aplicações - Guerra de robos 07:59cscerqueira.com.br
  • 19. [MOTIVAÇÃO] Tendência ▪ Explosão de produtos interligados ▪ Com software embarcado ▪ Local Awareness ▪ Vide: raspberry PI 2 07:59cscerqueira.com.br
  • 21. [MOTIVAÇÃO] Desafio da área espacial: Docking – Acoplamento autônomo de espaçonaves. ISS Dock 01 ISS Dock 02 Dock for dummies 07:59cscerqueira.com.br
  • 22. [ROTEIRO] ▪ Objetivos do evento proposto: Apresentar a utilização do openFrameworks, Realidade Aumentada como ferramenta de engenharia, utilização de Arduino e controle de motor DC. ▪ Conteúdo do evento proposto: 1. openFrameworks 2. Arduino e Firmata 3. Controlando o drone (baseado em Arduino) via Interface em openFrameworks 4. Realidade Aumentada 5. Capturando informações do marcador via openFrameworks. 6. Movimento autônomo de drone com RA no loop de controle. 07:59cscerqueira.com.br
  • 25. [openFrameworks] openframeworks.cc ▪ Vídeo oF1....media_videos7_openFrameworks1.mp4 ▪ Vídeo oF2....media_videos7_openFrameworks2.mp4 07:59cscerqueira.com.br
  • 26. [openFrameworks] oF ▪ Criado para artistase 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) ▪ Usar quando: ▪ O projeto renderiza muitos gráficos 3D, e/ou; ▪ Utilizar muita visão computacional, e/ou; ▪ Controlar equipamentos, como, por exemplo: ▪ o ARDUINO. 07:59cscerqueira.com.br
  • 29. [openFrameworks] Página Principal – openframeworks.cc 07:59cscerqueira.com.br
  • 30. [openFrameworks] 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. 07:59cscerqueira.com.br
  • 31. [openFrameworks] Addons da comunidade: ofxaddons.com 07:59cscerqueira.com.br
  • 32. [openFrameworks] OSX, Linux, Windows, iOS, Android, Linux ARM 07:59cscerqueira.com.br
  • 33. ERA TROGLODITA (C++) ▪ Graduação (2010): ▪ ARToolKit ▪ PTAMM ▪ Bolsista DTI (2011): ▪ basAR ERA DO FOGO (C++/oF) ▪ Mestrado (2012): ▪ Doutorado (2014): 07:59cscerqueira.com.br
  • 34. • Introdução à utilização de openFrameworks para o desenvolvimento de aplicações de RVA Link • Construção de aplicações de Realidade Cruzada Projetiva utilizando openFrameworks e ARDUINO Link • Utilização de Realidade Aumentada, com marcadores(ARToolKitPlus) e outros (utilizando openCV), para controle e inspeção de hardware, utilizando a interface ARDUINO. Link 07:59cscerqueira.com.br • Construção de interfaces on-demand baseadas em Realidade Aumentada Projetiva para Controle de Hardware (Arduino) Link
  • 39. Primeiro programa em oF 07:59cscerqueira.com.br
  • 41. [openFrameworks] Level Easy: Gerador Automático 07:59cscerqueira.com.br
  • 44. [openFrameworks] Exemplo básico 07:59cscerqueira.com.br // ofApp.cpp void ofApp::setup(){ mensagem = "Hello WRVA2015!!!"; 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; ...
  • 45. 2. Arduino e Firmata O que é? Onde vivem? Existe? Hoje no Glob..
  • 46. O que tem no ARDUINO? 07:59cscerqueira.com.br
  • 50. [ARDUINO] 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. ▪O host resolve as lógicas de controle muito mais rápido. ▪Desvantagens?! ▪Tem que ficar atrelado ao host! 07:59cscerqueira.com.br
  • 51. Obs.: Mudança da nomenclatura dos pinos após Firmata 2.3 (Arduino 1.0) Tomar cuidado na hora de desenvolver!!!!!!!!!! 07:59cscerqueira.com.br
  • 52. [ARDUINO] 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. 07:59cscerqueira.com.br http://arduino.cc/en/reference/firmata
  • 56. [ARDUINO] 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() 07:59cscerqueira.com.br
  • 57. [ARDUINO] Código no openFrameworks ▪ Exploração do exemplo: communicationfirmataExample 07:59cscerqueira.com.br
  • 58. [ARDUINO] Fluxograma básico 07:59cscerqueira.com.br SETUP Habilita callback de Arduino Alive Arduino Responde Evento Alive Configura ArduinoLoop de execução – sem Arduino Enviar comandos pro Arduino Recebeu um evento Digital Recebeu um evento Analógico Loop de execução – Arduino Update
  • 59. [ARDUINO] Código 07:59cscerqueira.com.br //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);
  • 61. 3. Controlando o drone (baseado em Arduino) via Interface em openFrameworks Vamos controlar o DRONE NA MÃO #FACANACAVEIRA
  • 65. [oF+Ard+DC] Controle de Motor DC 07:59cscerqueira.com.br
  • 66. [oF+Ard+DC] Ponte H – L293D 07:59cscerqueira.com.br
  • 67. [oF+Ard+DC] Drone 2D 07:59cscerqueira.com.br 1 - AEN = HIGH 2 - A1 = HIGH 7 - A2 = LOW 9 - BEN = HIGH 10 - B1 = HIGH 15 - B2 = LOW 1 - AEN = HIGH 2 - A1 = LOW 7 - A2 = HIGH 9 - BEN = HIGH 10 - B1 = LOW 15 - B2 = HIGH 1 - AEN = HIGH 2 - A1 = HIGH 7 - A2 = LOW 9 - BEN = HIGH 10 - B1 = LOW 15 - B2 = HIGH 1 - AEN = HIGH 2 - A1 = LOW 7 - A2 = HIGH 9 - BEN = HIGH 10 - B1 = HIGH 15 - B2 = LOW Pinos do L293D
  • 68. [oF+Ard+DC] Drone 2D FUNC ARD LM RODA1 ENABLE D09 1 RODA1 DIR_A D08 2 RODA1 DIR_B D07 7 RODA2 ENABLE D10 9 RODA2 DIR_A D12 10 RODA2 DIR_B D11 15 07:59cscerqueira.com.br
  • 70. [oF+Ard+DC] Código 07:59cscerqueira.com.br void ofApp::keyPressed(int key){ if (bSetupArduino){ ard.sendDigital(13, ARD_HIGH); switch (key) { case OF_KEY_RIGHT: this->moveRight(255); break; case OF_KEY_LEFT: this->moveLeft(255); break; case OF_KEY_UP: this->moveFront(255); break; case OF_KEY_DOWN: this->moveBack(255); break; default: break; } } } void ofApp::keyReleased(int key){ if (bSetupArduino){ ard.sendDigital(13, ARD_LOW); this->stop(0); } } void ofApp::setupArduino(const int & version){ ... // WHEEL ONE ard.sendDigitalPinMode(8, ARD_OUTPUT); // 1A ard.sendDigitalPinMode(7, ARD_OUTPUT); // 2A ard.sendDigitalPinMode(9, ARD_PWM); // 1,2 EN // WHEEL TWO ard.sendDigitalPinMode(12, ARD_OUTPUT); // 1A ard.sendDigitalPinMode(11, ARD_OUTPUT); // 2A ard.sendDigitalPinMode(10, ARD_PWM); // 1,2 EN // SIGNAL ard.sendDigitalPinMode(13, ARD_OUTPUT); } void ofApp::stop(int value){ ard.sendPwm(9,(int) 0); // stop wheel one ard.sendPwm(10,(int) 0);// stop wheel two } void ofApp::moveBack(int value){ if(value>255 || value<0) return; ard.sendPwm(9, value); // full wheel one ard.sendDigital(8, ARD_HIGH); ard.sendDigital(7, ARD_LOW); ard.sendPwm(10, value);// full wheel two ard.sendDigital(11, ARD_HIGH); ard.sendDigital(12, ARD_LOW); } void ofApp::moveRight(int value){ if(value>255 || value<0) return; ard.sendPwm(9,value); // full wheel one ard.sendDigital(8, ARD_HIGH); ard.sendDigital(7, ARD_LOW); ard.sendPwm(10,value);// full wheel two ard.sendDigital(11, ARD_LOW); ard.sendDigital(12, ARD_HIGH); }
  • 72. [Realidade Aumentada] Frameworks Marcador ▪ARToolKit (C) – 90´s ▪ NYARToolKit (Java, C#, C++, Android) ▪ AndAR (Android) ▪ FLARToolKit (AS3) Sem marcador ▪ OpenCV - Multiplataforma ▪ PTAMM (C++) ▪ Vuforia ▪ Project Tango SDK ▪ NGHIA’S AUGMENTED REALITY 07:59cscerqueira.com.br
  • 73. [Realidade Aumentada] Ferramentas de Autoria basAR FLARAS 07:59cscerqueira.com.br
  • 74. [Realidade Aumentada] Marcadores ARToolKit ▪ HITLab ▪ Compara templates. ▪ Template marker detection ▪ Mais lento ▪ Inviável em SW embarcado. ARToolKitPlus ▪ Graz University of Technology ▪ Compara códigos ▪ ID-Encoded marker detection ▪ Mol^k vezes mais rápido ▪ Bom para SW embarcado. 07:59cscerqueira.com.br
  • 77. [Realidade Aumentada] Voltando ao mundo real ▪ openFrameworks + ARToolKitPlus. ▪ Add-on ofxARToolKitPlus. ▪ Descompactá-lo e salvar dentro de <of>/addons ▪ Renomear, retirando o sufixo -master 07:59cscerqueira.com.br
  • 78. [Realidade Aumentada] Add-ons ▪ Utilizar o gerador automático e gerar com os seguintes add- ons: ▪ ofxARToolKitPlus *Necessário compilar antes para o c++ que vai usar ▪ ofxOpenCv (necessário para o ofxARToolKitPlus) ▪ ofxAssimpModelLoader http://touch-base-br.blogspot.com.br/2014/09/openframeworks-083- ofxartoolkitplus.html 07:59cscerqueira.com.br
  • 79. [Realidade Aumentada] Ajustando o projeto - caminhos 1. Configuration Properties  Linker GeneralAdditional Library Directories e inclua o caminho para a biblioteca, no caso: ......addonsofxARtoolkitPluslibsARToolKitPluslibwin32 07:59cscerqueira.com.br
  • 80. [Realidade Aumentada] Ajustando o projeto - lib 1. Configuration Properties  Linker Input  Additional Dependencies incluir a lib: ARToolKitPlus.lib 07:59cscerqueira.com.br
  • 81. [Realidade Aumentada] Lets code... // testApp.cpp #pragma once #include "ofMain.h" #include "ofxOpenCv.h" //Cabeçalho do OpenCV #include "ofxARToolkitPlus.h" //Cabeçalho do ARToolKitPlus class testApp : 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 int threshold; // Threshold da relação preto/branco ofxCvColorImage colorImage; //imagem capturada pela câmera ofxCvGrayscaleImage grayImage; //imagem em tons de cinza (mais rápida) ofxCvGrayscaleImage grayThres;//imagem com threshold antes de ir pro artk }; 07:59cscerqueira.com.br
  • 82. [Realidade Aumentada] Configurando – testApp::setup() //-------------------------------------------------------------- void testApp::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 grayThres.allocate(width, height); // reserva imagem ajustada artk.setup(width, height); // inicia o ARToolKitPlus threshold = 85; // threshold para a imagem ajustada artk.setThreshold(threshold); // informa ao ARToolKitPlus que o ajuste é externo } 07:59cscerqueira.com.br
  • 83. [Realidade Aumentada] Rastreio - testApp::update() //-------------------------------------------------------------- void testApp::update(){ vidGrabber.grabFrame(); // 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 //Como queremos testar o threshold temos que gerar essa imagem grayThres = grayImage; grayThres.threshold(threshold); //Passa para o ARToolKitPlus a imagem monocromática artk.update(grayImage.getPixels()); } } 07:59cscerqueira.com.br
  • 84. [Realidade Aumentada] Exibindo - testApp::draw() – p1 //-------------------------------------------------------------- void testApp::draw(){ ofSetColor(ofColor::white); // inicia a cor dos objetos como branca colorImage.draw(0, 0); // exibe a imagem capturada colorida grayThres.draw(640, 0); // exibe a imagem adaptada artk.draw(640, 0); // Esta função exibe a posição e etiqueta o marcador // ARTK 3D artk.applyProjectionMatrix();// aplicar a matriz de projeção da camera int numDetected = artk.getNumDetectedMarkers(); //detectar os marcadores ofEnableAlphaBlending(); //habilitar a transparência 07:59cscerqueira.com.br
  • 85. [Realidade Aumentada] 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); } } } 07:59cscerqueira.com.br
  • 86. [Realidade Aumentada] Alterando o threshold - testApp::keyPressed(int key) //-------------------------------------------------------------- void testApp::keyPressed(int key){ if(key == OF_KEY_UP) { artk.setThreshold(++threshold); // aumenta o valor do threshold } else if(key == OF_KEY_DOWN) { artk.setThreshold(--threshold); // diminui o valor do threshold } else if(key == 's') { vidGrabber.videoSettings(); // chama a configuração da câmera } } 07:59cscerqueira.com.br
  • 88. [Realidade Aumentada] Adicionando conteúdo ▪ Adicionar o modelo via ofxAssimpModelLoader ▪ Reutilizar o modelo do exemplo anterior. 07:59cscerqueira.com.br
  • 89. [Realidade Aumentada] Só adicionar o Assimp #pragma once #include "ofMain.h" #include "ofxOpenCv.h" #include "ofxARToolkitPlus.h" #include "ofxAssimpModelLoader.h" class testApp : public ofBaseApp{ ... ofxCvGrayscaleImage grayThres; ofxAssimpModelLoader model; }; 07:59cscerqueira.com.br
  • 90. [Realidade Aumentada] Setup e Draw... //-------------------------------------------------------------- void testApp::setup(){ ... if( !model.loadModel("astroBoy_walk.dae", false) ) // Abre o arquivo ofSystemAlertDialog("Erro em carregar arquivo"); } 07:59cscerqueira.com.br
  • 91. [Realidade Aumentada] //-------------------------------------------------------------- void testApp::draw(){ // ARTK 3D ... for(int i=0; i<numDetected; i++) { // marcadores encontrados ... //Local onde colocar o conteúdo 3D do marcador //pilha de retângulos. // Modelo 3D ofSetColor(255); // Configura a cor do objeto ofPushMatrix(); // Abre o contexto glEnable(GL_DEPTH_TEST); // habilita profundidade ofScale(0.1,0.1,0.1); // ajusta escala ofRotateX(-90); // rotaciona 90 graus model.drawFaces(); / desenha as faces glDisable(GL_DEPTH_TEST); // desabilita profundidade ofPopMatrix(); // fecha o contexto } } 07:59cscerqueira.com.br
  • 93. 5. Capturando informações do marcador via openFrameworks. Entendendo o que é capturado pela câmera
  • 96. [Marcadores] Como acessar no código!?!?!? 07:59cscerqueira.com.br ofVec3f vetorTranslacao; ofVec3f vetorRotacao; void ofApp::update(){ vidGrabber.update(); if(vidGrabber.isFrameNew()){ colorImage.setFromPixels(vidGrabber.getPixels(),width,height); grayImage = colorImage; artk.update(grayImage.getPixels()); // contas // só quero o marcador 37!!!! int myIndex = artk.getMarkerIndex(37); // se encontrou retorna o indice if(myIndex >= 0 ) { // vetor translação vetorTranslacao = artk.getDetectedMarkerCenter(myIndex); // vetor rotação vetorRotacao = artk.getOrientationQuaternion(myIndex).getEuler(); } else { vetorTranslacao = ofPoint(0); vetorRotacao = ofVec3f(0); } } } http://mtm.ufsc.br/~ebatista/Escritos_Didaticos_arquivos/bienal_2012.pdf
  • 97. 6. Movimento autônomo de drone com RA no loop de controle. Fechando a malha
  • 98. [Controlando Drone] Teoria de Controle https://en.wikipedia.org/wiki/Control_theory 07:59cscerqueira.com.br
  • 100. [Controlando Drone] Onde Estamos? 07:59cscerqueira.com.br x y Onde estamos? Posição Atual Frente Virtual // ATUALIZAR SENSOR posicaoAtual = artk.getDetectedMarkerCenter(myIndex); vector<ofPoint> pontos; artk.getDetectedMarkerOrderedBorderCorners(myIndex,pontos); if(pontos.size() == 4){ frenteVirtual = (pontos[3] + pontos[0])/2; } else { frenteVirtual.zero(); } 0 1 3 2
  • 101. [Controlando Drone] Já chegamos?? 07:59cscerqueira.com.br 07:59cscerqueira.com.br x y Ponto Destino Distância a percorrer Posição Atual Tolerância Já chegamos? Rotacionar
  • 102. [Controlando Drone] Já chegamos?? 07:59cscerqueira.com.br Já chegamos? 07:59cscerqueira.com.br 07:59cscerqueira.com.br x y Distância a percorrer Tolerância if(alinhado){ // ATUA PARA FRENTE! if( (posicaoDesejada - posicaoAtual).length() > 20 ) { // já chegamos?? moveFront(255); // não, mas tá alinhado então avante } else { stop(0); // AEEEEEEEEEE chegamos return true; } }
  • 103. [Controlando Drone] Já chegamos?? 07:59cscerqueira.com.br 07:59cscerqueira.com.br 07:59cscerqueira.com.br x y Ponto Destino Tolerância Já chegamos? Rotacionar // testa se está na direção correta if ( (frenteVirtual - posicaoAtual).isAligned((posicaoDesejada - posicaoAtual),20)){ alinhado = true; } else { ........ Continua....
  • 104. Pensando... 07:59cscerqueira.com.br perp.x = (posicaoDesejada - posicaoAtual).x; perp.y = -pow((posicaoDesejada - posicaoAtual).x,2)/(posicaoDesejada - posicaoAtual).y; if( perp.angle((frenteVirtual - posicaoAtual)) > 90){ cout<< endl << "lado 1"; if( (perp.x > 0 && perp.y > 0) || (perp.x < 0 && perp.y < 0)){ moveRight(255); } else { moveLeft(255); } } else { cout << endl << "lado 2"; if( (perp.x > 0 && perp.y > 0) || (perp.x < 0 && perp.y < 0)){ moveLeft(255); } else { moveRight(255); } } >90° Mover para a esquerda X < 0 Y > 0
  • 106. ▪ As coisas são mais fáceis do que imaginam ▪ Existe um framework em C++ chamado openFrameworks ▪ E ele é fera pois se comunica facilmente com Arduino ▪ Usar o Arduino como uma interface com HW é TOP, ▪ tem uma classe pronta, com todos os métodos ▪ O openFrameworks tem pacotes da comunidade que facilitam a vida!  ▪ Um deles é para RA – ARToolKitPlus ▪ O rastreio de marcadores permite capturar translações e rotações. ▪ Visão computacional é muito útil, para fechar a malha de controle, rastrear fim de curso, rastrear posições de acoplagem. 07:59cscerqueira.com.br
  • 107. Link para download dos códigos dos exemplos ▪http://www.4shared.com/folder/Cb1E5bxa/ WRVA2015.html 07:59cscerqueira.com.br
  • 108.
  • 109. 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 07:59cscerqueira.com.br
  • 110. O INPE (Instituto Nacional de Pesquisas Espaciais) 07:59cscerqueira.com.br
  • 111. RV EM SIMULADORES OPERACIONAIS DE SATÉLITE RV EM SIMULADORES OPERACIONAIS DE SATÉLITE 07:59cscerqueira.com.br
  • 112. SIMULADOR DE UM SENSOR DE ESTRELAS COM RA SIMULADOR DE UM SENSOR DE ESTRELAS COM MARCADORES
  • 113. Geração Automática de Código Embarcável m-file s-file Comunicação com MATLAB/Simulink Modelo do EPS Modelos / Simulador Circuito Bateria *FEE (Front End Equipment) – Estimulador/Sensor FEE UTILIZAÇÃO DE ARDUINO EM TESTBENCHS PARA POTENCIALIZAR O USO DE MDE
  • 114. CONSTRUÇÃO DE AMBIENTES CONTÍNUOS BASEADOS EM REALIDADE CRUZADA PARA ANÁLISE DE MISSÃO
  • 115. Outras Iniciativas: DESENVOLVIMENTO E APLICAÇÃO DE RECURSOS DE REALIDADE AUMENTADA EM VISUALIZAÇÃO DE DADOS DE MISSÕES ESPACIAIS RECONSTRUÇÃO GRÁFICA TRIDIMENSIONAL DE EDIFICAÇÕES URBANAS A PARTIR DE IMAGENS AÉREAS THE ROLE OF COMPUTATIONAL STEERING IN SPACE ENGINEERING ACTIVITIES ASSISTED BY MODELLING AND SIMULATION
  • 116. Academicamente ▪ 7 Pós-Graduações: ▪ Astrofísica ▪ Engenharia e Tecnologia Espaciais ▪ Mecânica Espacial e Controle ▪ Combustão e Propulsão ▪ Ciência e Tecnologia de Materiais e Sensores ▪ Engenharia e Gerenciamento de Sistemas Espaciais ▪ Geofísica Espacial ▪ Computação Aplicada ▪ Meteorologia ▪ Sensoriamento Remoto ▪ Ciência do Sistema Terrestre http://www.inpe.br/ci/ 07:59cscerqueira.com.br
  • 117. São José dos Campos - SP ▪ Capital econômica do Vale do Paraíba ▪ EMBRAER, GM, Johnson, Phillips, Petrobras, Monsanto, Avibras, Mectron (Odebretch). ▪ ~650k players (ops. Habitantes) ▪ ITA, INPE, IEAv, EAE, IP&D, UNIVAP, UNIFESP ▪ Capital aeroespacial do país. 07:59cscerqueira.com.br
  • 118. Dúvidas: christophercerqueira@gmail.com Site: http://cscerqueira.com.br Facebook: http://fb.com/RVA.BR Para dúvidas MUITO maiores: INPE – SJC Prédio Satélite Sala 95 07:59cscerqueira.com.br