iOS / Android Orientamento del dispositivo (beccheggio, imbardata, rollio). E 'meglio con accelerometro o giroscopio?

StackOverflow https://stackoverflow.com/questions/9304160

Domanda

Sono stato alla ricerca di un po 'ora e ora devo decidere quale strada prendere.

Requisiti miniera: hanno bisogno di sapere di dispositivo di orientamento relativi alla direzione vera (polo nord geografico, non polo magnetico). Per questo devo usare la bussola e ora devo decidere quale altra cosa, accelerometro e giroscopio.

Dal momento che questa è una cosa nuova per me ho passato ultime ore di lettura pile e gli articoli di Wikipedia e ancora sono confuso.

Io sono rivolti sia le piattaforme (iOS e Android) e io li sto sviluppando con Appcelerator Titanium. Con Titanium posso facilmente ottenere valori dell'accelerometro (x, y, z) e trueHeading.

Dal momento che iPhone 3GS non ha giroscopio, ovviamente, non posso usarlo su quel dispositivo. iPhone più recenti e dispositivi Android hanno.

Quindi le domande sono:

  1. E 'XYZ di accelerometro e TrueHeading abbastanza dati dei compas per me per calcolare passo dispositivo, rollio e imbardata? Ma deve essere accurata.

  2. E 'più esatto usare TrueHeading da compas e valori utilizzo del giroscopio, invece di accelerometro?

  3. E 'intelligente di combinare sia accelerometro e giroscopio con TrueHeading?

Se prendo la prima strada non devo scrivere modulo in titanio per il recupero dei dati giroscopio dal momento che mi dà solo accelerometro dati e posso usare questo su iPhone 3GS anche.

Se prendo la seconda strada che devo scrivere due moduli (iOS e Android) a prendermi giroscopio dei dati e perdo il supporto 3G.

Se prendo la terza strada ho di nuovo a scrivere moduli Titanio e perdo il supporto 3G.

È stato utile?

Soluzione

Prima di tutto, se non si dispone di una grande base installata di utenti 3G, ma scrive una nuova applicazione, non si preoccupano di vecchio hardware. IMO non ha senso da un punto di vista economico ma si ridurrà il proprio numero di alternative in architettura di sistema.

Quello che state cercando è chiamato fusione sensoriale. Fare questo richiede di conseguenza un po 'pesante per la matematica come Kalman filtri, ecc La notizia buona è che esiste su iPhone ( Nucleo movimento ) e per quanto ne so l'Andriod così (suoni come è nel fusione sensore implementato su Android? ).

Io non ne so molto di Appcelerator a parte il nome e quindi non può dire nulla su un modo facile da usare. In ogni caso se non implemtented su un livello astratto, presumo Appcelerator vi offre la possibilità di fare chiamate API native. Così si dovrebbe essere in grado di incorporare le API native (dopo armeggiare intorno po 'di tempo ;-).

In generale dipende dalle vostre esigenze. Il più veloce è necessario avere un esatto risultato più mi consiglia di vera e propria fusione sensore compresi tutti i 3 sensori. Se si sta bene con un tempo di risposta più lento, una combinazione di bussola e accelerometro farà.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top