CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: Q.dino con ben 1 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 9 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 32 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 3 su 3
Discussione:

SensorManager, values[0] e compass

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Baby Droid


    Registrato dal
    Oct 2010
    Messaggi
    12

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    SensorManager, values[0] e compass

    Saaalve a tutti di nuovo.
    Questa volta ho un problema con la bussola e il SensorManager. Ho seguito uno dei tutorial (probabilmente uno dei più letti) per la realtà aumentata, e quello che sto cercando di fare è recuperare il mio azimut (la direzione in cui sta puntando la fotocamera espressa in gradi rispetto al Nord). Questo è il codice preso paro paro dal tutorial:



    Ovviamente il resto è tutto corretto. Questa è la porzione relativa al listener della bussola. Il problema è relativo al valore che il Listener mi ritorna, ovvero il valore dentro vals[0]. Ovunque trovo scritto che il valore al suo interno è già in gradi, mentre i valori che osservo io sono compresi fra -2 e 2 (circa). Pensavo fosse espresso in radianti, ma la cosa non avrebbe comunque senso.
    Come posso fare per avere il risultato in gradi? O meglio, in che unità di misura mi ritorna l'azimut?
    Grazie

  2.  
  3. #2
    Senior Droid


    Registrato dal
    Feb 2010
    Messaggi
    305

    Ringraziamenti
    4
    Ringraziato 17 volte in 17 Posts
    Predefinito

    Quegli angoli sono in gradi, da 0 a 360.

    Prova a tenere il cellulare attaccato al pc con adb logcat aperto su dos mentre esegui il programma modificato così:


  4. #3
    Baby Droid


    Registrato dal
    Oct 2010
    Messaggi
    12

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Si, avevo già controllato tramite Log (i valori li avevo presi da li). Ho scoperto che il problema è legato alla versione.
    SENSOR_ORIENTATION è ormai deprecato, così come TYPE_ORIENTATION. Dalla verionse 2.1 (API Level superiore a 8 mi sembra) bisogna utilizzare il metodo getOrientation() di SensorManager e lavorare con le matrici di rotazione.
    In effetti il valore ritornato dalla matrice di rotazione in values[0] è in radianti.
    Continuo comunque a riscontrare due problemi: getRotationMatrix() mi ritorna sempre "false", e sulle specifiche c'è scritto che questo valore dovrebbe ritornare solo se il cellulare fosse in caduta libera (e non credo di abitare in un aereo in picchiata).
    L'altro problema è che utilizzando il vecchio metodo in realtà riesco a fare la conversione in gradi, ma i valori (come detto prima) variano enormemente. Se punto il cellulare in una direzione fissa, mi aspetterei una variazione di al massimo 1-2 gradi (che non sono pochi), invece questi variano anche di un paio di decine di gradi (tipo da 10 a 28) in continuazione.
    Degli sbalzi così grandi mi rendono impossibile lavorare con questi dati. C'è un modo per settare "l'accuratezza" della bussola o altro?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy