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.

WRVA 2015

1.373 visualizações

Publicada em

Apresentação WRVA

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 & Proven Way to Build Good Habits & 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 { https://urlzs.com/UABbn } ......................................................................................................................... Download Full EPUB Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... Download Full doc Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... Download PDF EBOOK here { https://urlzs.com/UABbn } ......................................................................................................................... Download EPUB Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... Download doc Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... 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 & Proven Way to Build Good Habits & 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
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • Seja a primeira pessoa a gostar disto

WRVA 2015

  1. 1. 07:59cscerqueira.com.br
  2. 2. 07:59cscerqueira.com.br
  3. 3. Utilização de Realidade Aumentada no loop de controle de um drone M.Sc. Eng. Christopher S. Cerqueira cscerqueira.com.br
  4. 4. 07:59cscerqueira.com.br O que vamos aprender hoje fazer???
  5. 5. 07:59cscerqueira.com.br PONTO DE VISTA DA CÂMERA
  6. 6. 07:59cscerqueira.com.br
  7. 7. Interação Colaborativa com Artefatos Inteligentes Interação homem-máquina, metáforas, ambientes contínuos e realidade Cruzada #motivação
  8. 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. 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. 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. 11. [Motivação][Teoria] Estilos de Interfaces (Rekimoto e Nagao (1995)) 07:59cscerqueira.com.br
  12. 12. [Motivação][Teoria] Intersecção entre tipos de artefatos usados no ambiente (Kirner et al., 2012) 07:59cscerqueira.com.br
  13. 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. 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. 15. [MOTIVAÇÃO] Aplicações – Internet das Coisas 07:59cscerqueira.com.br
  16. 16. [MOTIVAÇÃO] Aplicações - Educacionais 07:59cscerqueira.com.br
  17. 17. [MOTIVAÇÃO] Aplicações - Guerra de robos 07:59cscerqueira.com.br
  18. 18. [MOTIVAÇÃO] Tendência - Wearables 07:59cscerqueira.com.br
  19. 19. [MOTIVAÇÃO] Tendência ▪ Explosão de produtos interligados ▪ Com software embarcado ▪ Local Awareness ▪ Vide: raspberry PI 2 07:59cscerqueira.com.br
  20. 20. [MOTIVAÇÃO] Prototipagem / Aprendizado 07:59cscerqueira.com.br
  21. 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. 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
  23. 23. 1. openFrameworks 07:59cscerqueira.com.br
  24. 24. Processing Adobe Flash Unity Cinder openFrameworks 07:59cscerqueira.com.br
  25. 25. [openFrameworks] openframeworks.cc ▪ Vídeo oF1....media_videos7_openFrameworks1.mp4 ▪ Vídeo oF2....media_videos7_openFrameworks2.mp4 07:59cscerqueira.com.br
  26. 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
  27. 27. 07:59cscerqueira.com.br
  28. 28. [openFrameworks] C++ Portável!!!! 07:59cscerqueira.com.br
  29. 29. [openFrameworks] Página Principal – openframeworks.cc 07:59cscerqueira.com.br
  30. 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. 31. [openFrameworks] Addons da comunidade: ofxaddons.com 07:59cscerqueira.com.br
  32. 32. [openFrameworks] OSX, Linux, Windows, iOS, Android, Linux ARM 07:59cscerqueira.com.br
  33. 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. 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
  35. 35. [openFrameworks] SVR2013 - Resultados 07:59cscerqueira.com.br
  36. 36. [openFrameworks] SVR2014 - Resultados 07:59cscerqueira.com.br
  37. 37. [openFrameworks] WRVA2014 - Resultados 07:59cscerqueira.com.br
  38. 38. [openFrameworks] SVR2015 - Resultados 07:59cscerqueira.com.br
  39. 39. Primeiro programa em oF 07:59cscerqueira.com.br
  40. 40. [openFrameworks] Onde encontrar? 07:59cscerqueira.com.br
  41. 41. [openFrameworks] Level Easy: Gerador Automático 07:59cscerqueira.com.br
  42. 42. [openFrameworks] Escolhendo expansões DocoreoF Dacomunidade 07:59cscerqueira.com.br
  43. 43. [openFrameworks] Estrutura do projeto 07:59cscerqueira.com.br
  44. 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. 45. 2. Arduino e Firmata O que é? Onde vivem? Existe? Hoje no Glob..
  46. 46. O que tem no ARDUINO? 07:59cscerqueira.com.br
  47. 47. [ARDUINO] Outras versões 07:59cscerqueira.com.br
  48. 48. [ARDUINO] Shields 07:59cscerqueira.com.br
  49. 49. [ARDUINO] FIRMATA Literatura indica FIRMATA: http://firmata.org/wiki/Download 07:59cscerqueira.com.br
  50. 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. 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. 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
  53. 53. [ARDUINO] “esquemático” 07:59cscerqueira.com.br ▪ #crashcourse fritzing ▪ http://fritzing.org/home/
  54. 54. [ARDUINO] “simulador” ▪ https://123d.circuits.io 07:59cscerqueira.com.br
  55. 55. [ARDUINO] Arduino e openFrameworks 07:59cscerqueira.com.br
  56. 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. 57. [ARDUINO] Código no openFrameworks ▪ Exploração do exemplo: communicationfirmataExample 07:59cscerqueira.com.br
  58. 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. 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);
  60. 60. 07:59cscerqueira.com.br
  61. 61. 3. Controlando o drone (baseado em Arduino) via Interface em openFrameworks Vamos controlar o DRONE NA MÃO #FACANACAVEIRA
  62. 62. [oF+Ard+DC] $$
  63. 63. [oF+Ard+DC] $$ 07:59cscerqueira.com.br
  64. 64. [oF+Ard+DC] $$ 07:59cscerqueira.com.br
  65. 65. [oF+Ard+DC] Controle de Motor DC 07:59cscerqueira.com.br
  66. 66. [oF+Ard+DC] Ponte H – L293D 07:59cscerqueira.com.br
  67. 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. 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
  69. 69. [oF+Ard+DC] Drone 2D 07:59cscerqueira.com.br
  70. 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); }
  71. 71. 4. Realidade Aumentada
  72. 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. 73. [Realidade Aumentada] Ferramentas de Autoria basAR FLARAS 07:59cscerqueira.com.br
  74. 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
  75. 75. [Realidade Aumentada] ARToolKit 07:59cscerqueira.com.br
  76. 76. [Realidade Aumentada] ARToolKitPlus 07:59cscerqueira.com.br
  77. 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. 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. 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. 80. [Realidade Aumentada] Ajustando o projeto - lib 1. Configuration Properties  Linker Input  Additional Dependencies incluir a lib: ARToolKitPlus.lib 07:59cscerqueira.com.br
  81. 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. 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. 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. 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. 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. 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
  87. 87. [Realidade Aumentada] Resultado esperado 07:59cscerqueira.com.br
  88. 88. [Realidade Aumentada] Adicionando conteúdo ▪ Adicionar o modelo via ofxAssimpModelLoader ▪ Reutilizar o modelo do exemplo anterior. 07:59cscerqueira.com.br
  89. 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. 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. 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
  92. 92. [Realidade Aumentada] 07:59cscerqueira.com.br
  93. 93. 5. Capturando informações do marcador via openFrameworks. Entendendo o que é capturado pela câmera
  94. 94. [Marcadores] Informações possíveis (x,y,z) Plano XY x y z 07:59cscerqueira.com.br
  95. 95. 07:59cscerqueira.com.br x y -angle+angle
  96. 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. 97. 6. Movimento autônomo de drone com RA no loop de controle. Fechando a malha
  98. 98. [Controlando Drone] Teoria de Controle https://en.wikipedia.org/wiki/Control_theory 07:59cscerqueira.com.br
  99. 99. [Controlando Drone] Nossa malha 07:59cscerqueira.com.br Posição Real Já chegamos? Atua na direção Posição Real Onde estamos?
  100. 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. 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. 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. 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. 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
  105. 105. O que aprendemos hoje
  106. 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. 107. Link para download dos códigos dos exemplos ▪http://www.4shared.com/folder/Cb1E5bxa/ WRVA2015.html 07:59cscerqueira.com.br
  108. 108. 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
  109. 109. O INPE (Instituto Nacional de Pesquisas Espaciais) 07:59cscerqueira.com.br
  110. 110. RV EM SIMULADORES OPERACIONAIS DE SATÉLITE RV EM SIMULADORES OPERACIONAIS DE SATÉLITE 07:59cscerqueira.com.br
  111. 111. SIMULADOR DE UM SENSOR DE ESTRELAS COM RA SIMULADOR DE UM SENSOR DE ESTRELAS COM MARCADORES
  112. 112. 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
  113. 113. CONSTRUÇÃO DE AMBIENTES CONTÍNUOS BASEADOS EM REALIDADE CRUZADA PARA ANÁLISE DE MISSÃO
  114. 114. 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
  115. 115. 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
  116. 116. 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
  117. 117. 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

×