Ivano brogonzoli why_mca

1,196 views

Published on

My presentation on AR at WhyMCA 2010

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,196
On SlideShare
0
From Embeds
0
Number of Embeds
54
Actions
Shares
0
Downloads
20
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Ivano brogonzoli why_mca

  1. 1. Applicazioni Augmented-Reality ready su piattaforma Android Ivano Brogonzoli
  2. 2. Mi presento... <ul><li>Ivano Brogonzoli </li></ul><ul><li>Mobile Sw Engineer </li></ul><ul><li>Funambol </li></ul><ul><li>http://www.funambol.com </li></ul><ul><li>Open source mobile cloud sync for billions of connected devices!! Sync' Em All!! </li></ul><ul><li>[email_address] </li></ul>
  3. 3. Introduzione Definizione di AR <ul><li>Da http://it.wikipedia.org/wiki/Augmented_reality </li></ul><ul><li>La realtà aumentata (in inglese augmented reality, abbreviato AR) è la sovrapposizione di livelli informativi (elementi virtuali e multimediali, dati geolocalizzati etc) all'esperienza reale di tutti i giorni. Gli elementi che &quot;aumentano&quot; la realtà possono essere aggiunti attraverso un device mobile, come un telefonino di ultima generazione, (es. l'iPhone 3GS o un telefono Android), con l'uso di un pc dotato di webcam, con dispositivi di visione (es. occhiali VR), di ascolto (es. auricolari) e di manipolazione (es. guanti VR) che aggiungono informazioni multimediali alla realtà già percepita &quot;in sè&quot;. Il sovrapporsi di elementii reali e virtuali crea una &quot;Mixed Reality&quot;. </li></ul>
  4. 4. Introduzione Applicazioni AR <ul><li>Device di riferimento: </li></ul><ul><ul><li>iPhone </li></ul></ul><ul><ul><li>Symbian </li></ul></ul><ul><ul><li>Android </li></ul></ul><ul><ul><li>Blackberry </li></ul></ul><ul><li>Applicazioni: </li></ul><ul><ul><li>AR Browser (Layar - Wikitude) </li></ul></ul><ul><ul><li>Social (TagWhat – Google Latitude) </li></ul></ul><ul><ul><li>Giochi - Intrattenimento (SpecTrack – Zombie) </li></ul></ul><ul><ul><li>Advertising </li></ul></ul><ul><li>Frameworks: </li></ul><ul><ul><li>Wikitude (http://www.wikitude.org/) </li></ul></ul><ul><ul><li>FLAR </li></ul></ul><ul><ul><li>Junaio ( http://www.junaio.com/ ) </li></ul></ul>
  5. 5. Introduzione Piattaforma Android <ul><li>Android SDK: </li></ul><ul><ul><li>Piattaforma in espansione con un framework aperto </li></ul></ul><ul><ul><li>Facilità di sviluppo e integrazione con le funzionalità del sistema </li></ul></ul><ul><li>Telecamera </li></ul><ul><li>Google Add-ons </li></ul><ul><ul><li>GPS, Google Maps, Location … </li></ul></ul><ul><li>Sensori </li></ul><ul><ul><li>Accelerometro, bussola, ... </li></ul></ul>
  6. 6. Telecamera Frame preview 1/4 <ul><li>Gestione del flusso di frame su una SurfaceView </li></ul><ul><li>La superficie stessa implementa </li></ul><ul><li>android.view.SurfaceHolder.Callback che permette di controllare il display di riferimento e gli stati della superficie (created-changed-destroyed) </li></ul><ul><li>L'oggetto holder controlla ioltre la corretta apertura e chiusura dell'interfaccia sul sensore della telecamera </li></ul>CameraSurfacePreview SurfaceHolder.Callback SurfaceView
  7. 7. Telecamera Frame preview 2/4
  8. 8. Telecamera Frame preview 3/4
  9. 9. Telecamera Frame preview 4/4
  10. 10. Telecamera View Overlay 1/3 <ul><li>Costruzione di una View e degli oggetti da visualizzare sulla preview della telecamera </li></ul><ul><li>Aggiunta della vista allo z-stack </li></ul>CameraSurfacePreview View 1 View n
  11. 11. Telecamera View Overlay 2/3
  12. 12. Telecamera View Overlay 3/3 DEMO
  13. 13. Telecamera Manipolare i frames <ul><li>Occorre utilizzare l'interfaccia </li></ul><ul><li>android.hardware.Camera.PreviewCallback </li></ul><ul><li>e implementare il metodo onPreviewFrame(byte[] b, Camera c); </li></ul>CameraSurfacePreview SurfaceHolder.Callback SurfaceView PreviewCallback
  14. 14. Telecamera Superfici 3D <ul><li>Supporto OpenGL ES 1.0 </li></ul><ul><li>android.opengl.GLSurfaceView </li></ul><ul><li>Demo at: </li></ul><ul><li>http://www.cyrket.com/p/android/de.offis.magic.core/ </li></ul>
  15. 15. Telecamera: Performance e stabilità <ul><li>Performance e Impatto sulla Batteria </li></ul><ul><ul><li>Risoluzione, frequenza e spazio dei colori </li></ul></ul><ul><ul><li>Uso di metodi hidden (Android 2.1) per il miglioramento delle performance (fps) tramite reflection e la diminuzione delle chiamate gc(). Si tratta di invocare il metodo hidden della classe android.hardware.Camera chiamato: </li></ul></ul><ul><ul><li>setPreviewCallbackWithBuffer(...) </li></ul></ul><ul><ul><li>http://www.users.muohio.edu/brinkmwj/android/ </li></ul></ul>
  16. 16. Google Maps Add-on Location e Mappe <ul><li>Google Add On per la localizzazione (firma e chiave di accesso) </li></ul><ul><ul><li>Activity dedicata: com.google.android.maps.MapActivity </li></ul></ul><ul><ul><li>Coordinate posizionali com.google.android.maps.GeoPoint </li></ul></ul><ul><ul><li>Vista dedicata: </li></ul></ul><ul><ul><li>com.google.android.maps.MapView </li></ul></ul><ul><ul><li>controller associato: </li></ul></ul><ul><ul><li>com.google.android.maps.MapController </li></ul></ul><ul><li>Sono permessi Overlay di oggetti di tipo: </li></ul><ul><ul><li>com.google.android.maps.Overlay </li></ul></ul><ul><li>La piattaforma Android è responsabile di GPS e del lancio di eventi posizionali </li></ul>MapActivity MapView GeoPoint Overlay MapController Google add on Android Location LocationListener LocationManager Location
  17. 17. Sensore GPS: Location <ul><li>Package android.location.LocationListener </li></ul>LocationListener GPSListener
  18. 18. Google Maps Add-on MapView 1/3 <ul><li>Controllo puntuale tramite com.google.android.maps.MapController </li></ul><ul><li>Possibilità di visualizzare diversi contesti (Satellite...) </li></ul><ul><li>Funazionalità di Zoom </li></ul><ul><li>Capacità di gestire Overlay </li></ul><ul><li>L'activity che la crea deve estendere com.google.android.maps.MapActivity </li></ul><ul><ul><li>Accede ai Google Maps Service </li></ul></ul><ul><ul><li>Necessita permessi INTERNET </li></ul></ul><ul><ul><li>firma di deployment o debug nel codice o nel layout della vista </li></ul></ul><ul><ul><li>L'elemento “application” del manifest file deve dichiarare </li></ul></ul><ul><ul><li><uses-library android:name=&quot;com.google.android.maps&quot; /> </li></ul></ul>
  19. 19. Google Maps Add-on MapView 2/3
  20. 20. Google Maps Add-on MapView 3/3
  21. 21. Location ed Eventi posizionali <ul><li>Alert di sistema: </li></ul><ul><ul><li>Da android.location.LocationManager: </li></ul></ul><ul><ul><li>addProximityAlert (double latitude, double longitude, float radius, long expiration, PendingIntent intent) </li></ul></ul><ul><li>Alternativa: Calcolo puntuale della distanza con formule note: </li></ul><ul><ul><li>Haversine; </li></ul></ul><ul><ul><li>Vincenty (più precisa); </li></ul></ul>
  22. 22. Sensori Bussola <ul><li>Azimuth: Scostamento dal nord (Sway) </li></ul><ul><li>Variazione intorno a y (Surge) </li></ul><ul><li>Variazione intorno a z (Heave) </li></ul>Y X 0° -> 360° -45° -> 45° Z -45° -> 45°
  23. 23. Sensori Accelerometro <ul><li>Accelerazione x (Yaw) </li></ul><ul><li>Accelerazione y (Pitch) </li></ul><ul><li>Accelerazione z (Roll) </li></ul>Y X Z
  24. 24. Sensori <ul><li>Elaboriazione dei valori rilevati (android.hardware.SensorEventListener) </li></ul>SensorEventListener OrientationListener
  25. 25. Sensori <ul><li>Attivazione (package android.hardware): </li></ul>
  26. 26. Sensori Performance e stabilità <ul><li>Consumo cospicuo di batteria </li></ul><ul><li>Attivazione solo durante l'effettivo utilizzo </li></ul><ul><li>Limitazione della frequenza di campionamento </li></ul><ul><li>Rumore </li></ul>
  27. 27. Mettiamo tutto insieme DEMO
  28. 28. Links utili <ul><li>Guida Android ufficiale </li></ul><ul><li>http://developer.android.com/guide/index.html </li></ul><ul><li>- GPS Location and Maps </li></ul><ul><li>http://www.dymsoft.com/2009/11/calculate-distance-between-two-geolocations-in-android/ </li></ul><ul><li>Games alfresco </li></ul><ul><li>http://gamesalfresco.com/ </li></ul><ul><li>Il mio blog </li></ul><ul><li>http://superivomania.blogspot.com/ </li></ul>
  29. 29. … Grazie dell'attenzione! Q & A

×