Ciò che si descrive non può essere fatto, a meno che non si ridefinisca il problema un po '. Per aiutarvi a ridefinirlo, illustrerò i principali problemi:
Innanzitutto, suppongo che ciò che intendete per "accelerazione assoluta" sia l'accelerazione rispetto al riferimento geografico. Non può essere fatto solo con l'accelerometro, dato che non ha idea dei riferimenti geografici. Se ti muovi abbastanza lontano per il gps, o usi la bussola, potresti essere in grado di aggirare questo, ma ognuno di questi ha i suoi problemi (anche se almeno il problema è solubile).
Il secondo problema è che la gravità e l'accelerazione sono completamente indistinguibili utilizzando un solo accelerometro (questo è noto come il "principio di equivalenza"). Pertanto, qualsiasi accelerazione misurata sarà sempre la somma vettoriale della gravità e dell'accelerazione, ma ci sono sempre più soluzioni a queste equazioni, e nei casi normali in cui l'accelerazione è inferiore alla gravità, non si può davvero determinare nulla sull'accelerazione . Dato che la gravità è piuttosto costante, ci sono modi per aggirare questo, usando, per esempio, un giroscopio, o forse il tuo utente potrebbe tenere il telefono in un orientamento fisso (ad esempio, osservando segnali esterni come l'orizzonte), e uno di questi gli approcci potrebbero consentire di sottrarre l'influenza della gravità, ma in genere è un problema non banale.
L'ultimo punto da non pensare è che sembra che tu stia pensando in un sistema di coordinate fissato a terra e l'accelerometro del telefono è solo fissato dal telefono. Questo è l'asse z dell'accelerometro, molti non hanno nulla a che fare con l'alto e il basso sulla terra - e la relazione dipenderà dall'orientamento del telefono. In realtà, molte persone preferirebbero un sistema fisso a terra, ma il telefono non lo sa. È possibile utilizzare spunti esterni (GPS, campo magnetico, giroscopio, gravità, orizzonte, ecc.) Per cercare di allinearli, ma dato solo un singolo modulo di lettura arbitrario dell'accelerometro, l'informazione non è proprio lì.
Definizioni:
vettore accelerazione: questo è il x, y, z lettura dall'accelerometro (e ogni lettura dipende dall'orientamento telefoni), talvolta scritto come A = (a x, a y, a z).
accelerazione grandezza: questo è a = sqrt (a x + un y + un z), e questo non dovrebbe dipendere all'orientamento cellulari (se la diversi assi sono calibrati per essere lo stesso). Se il telefono è fermo, questo sarà semplicemente una lettura della gravità. Si noti inoltre che molte delle informazioni nel vettore di accelerazione vengono perse utilizzando questa misura.
accelerazione normalizzato: La direzione di accelerazione, che ha magniture 1, cioè, A/un'accelerazione
in terra coordinate: Credo che questo è ciò che si vuole veramente, non c'è proprio nessun modo semplice per farlo, e davvero anche se tu potessi, non penso che sarebbe così utile come potrebbe sembrare in un primo momento.
Sci:
io pensi di avere un buon tiro a determinare quando qualcuno sta sciando basa sulle misurazioni dall'accelerometro. Cose come urti e svolte dovrebbero essere tutte abbastanza distintive usando l'accelerometro. Per questi vorrei usare il vettore di accelerazione completo. Ad esempio, a turno, la magnitudine dell'accelerazione resterebbe approssimativamente costante e la direzione verrebbe spazzata. Si noti inoltre che caduta libera (cioè, in pratica ogni volta che lo sciatore non ha i propri cieli/piedi/testa/ecc. Sul terreno, se stanno andando verso l'alto quando si lancia un dosso/salto, o cadono dalla seggiovia) , la magnitudine di accelerazione sarà zero in caduta libera. Per la seggiovia, sembra che probabilmente avrà un'inclinazione ritmica distintiva per lo più all'interno di un singolo piano.
Tutte queste cose potrebbero essere comprese. Ti consiglio, se vuoi veramente risolvere questo problema, è quello di registrare i dati dal tuo accelerometro mentre scali, e vedere se è possibile determinare quando si scia in base alle caratteristiche dei dati. (La mia ipotesi è che il tuo ostacolo principale con questo sarà la matematica, perché potrebbe essere un po 'complicato elaborare un algoritmo in grado di distinguere le firme dello sci, quindi sembra che sarebbe una buona idea rivedere il vettore matematica, e cose come prodotti a punti e prodotti trasversali, e anche, sospetto che un po 'su un altro argomento noto come FFT o trasformate di Fourier potrebbe essere utile per mettere in ordine le segnature di tempo e frequenza dello sci vs swinging in seggiovia .)
È inoltre possibile eseguire il piegamento delle misurazioni GPS, che non sarebbero altrettanto affidabili, o fornire una buona risoluzione temporale, ma potrebbe almeno essere utilizzato per ricontrollare l'algoritmo.
Voglio rilevare se un utente che sta sciando sta scivolando giù da una pendenza senza usare il GPS. Pensi sia fattibile? –
In realtà, potrebbe essere. Ci penserò e fare alcuni calcoli. Sembra che tu abbia due cose per te qui: 1) di solito è irregolare, quindi l'accelerometro lo rileverebbe; 2) almeno in caduta libera è l'unica situazione al mondo quando l'accelerazione totale (g + a) è zero, quindi poiché la slitta è un po 'come caduta libera, forse si potrebbe rilevare un'accelerazione inferiore alla gravità, almeno all'inizio. C'è qualche aspetto del tuo problema che escluderebbe l'utilizzo di uno di questi? – tom10
Non penso, ma potrei sbagliarmi. Dobbiamo anche essere in grado di differenziare lo scivolamento e salire la seggiovia ... –