Ivano brogonzoli why_mca
Upcoming SlideShare
Loading in...5
×
 

Ivano brogonzoli why_mca

on

  • 1,448 views

My presentation on AR at WhyMCA 2010

My presentation on AR at WhyMCA 2010

Statistics

Views

Total Views
1,448
Views on SlideShare
1,395
Embed Views
53

Actions

Likes
1
Downloads
18
Comments
0

3 Embeds 53

http://www.whymca.org 41
http://www.slideshare.net 6
http://conference2010.whymca.org 6

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Ivano brogonzoli why_mca Ivano brogonzoli why_mca Presentation Transcript

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