2010-09-14 14 views
5

Mentre il GPS funziona per le modifiche a lunga distanza, mi piacerebbe misurare una distanza più breve usando l'accelerometro dell'iPhone.Come misurare la distanza percorsa da un iPhone usando l'accelerometro?

Dire che voglio misurare un'altezza di una scatola utilizzando un'applicazione iPhone. Avvii l'applicazione, premi un pulsante per avviare la misurazione nella parte inferiore di una scatola, sposta l'iPhone dalla parte superiore della scatola, quindi premi un pulsante per interrompere la misurazione. L'applicazione dovrebbe quindi calcolare e visualizzare l'altezza della scatola.

Come utilizzare l'accelerometro per eseguire questo tipo di misurazione?

+0

queste coordinate GPS? o cosa? –

+0

è possibile ottenere ottenere altitudine e quindi tenere traccia della differenza – harshalb

+0

Anche se non esattamente quello che stai cercando, questa domanda chiede qualcosa nello stesso spirito: [Come misurare la distanza coperta da iphone durante la caduta libera?] (Http: // StackOverflow.it/questions/1073608/how-to-measure-the-distance-cover-by-iphone-durante-free-fall) –

risposta

5

Provare a fotografare un oggetto di una dimensione nota alla distanza di interesse.

+0

Mi è piaciuta l'idea di fotografare un oggetto di dimensioni note. Ho provato molto per implementare usando l'accelerometro. Ma il risultato era sempre molto più piccolo del valore reale. Come posso procedere con la tua idea? Richiederà molti concetti di elaborazione delle immagini? – Ashwin

+0

I lol'd. È come il vecchio enigma su come si misura l'altezza di un edificio usando solo un barometro. Le risposte sono tutte cose come "misurare l'altezza del barometro, la lunghezza dell'ombra del barometro e la lunghezza dell'ombra dell'edificio" o "rilasciare il barometro dall'alto dell'edificio e calcolare il tempo necessario per colpire" o "Dì all'architetto che gli darai questo bel barometro se ti diranno quanto è alto l'edificio." In conclusione: non è lo strumento giusto per il lavoro. –

3

A seconda dell'applicazione e della precisione necessaria, è possibile utilizzare i nuovi accelerometri giroscopici a 6 assi nell'iPhone 4 e iPod Touch 4a gen. È possibile ottenere lo spostamento totale integrando il vettore di accelerazione .

Quando si integra l'accelerazione per ottenere lo spostamento, eventuali errori saranno cumulativi, pertanto potrebbe non essere appropriato, ma potrebbe essere opportuno considerarlo.

0

GPS al momento non è abbastanza preciso per misurare una casella. Tieni presente che potrebbe esserci un errore di circa 10 metri a un miglio. È possibile ripristinare l'accuratezza della misura con CLLocation.

+0

(almeno per l'iPhone GPS, il differenziale GPS è un'altra storia) – Daniel

14

È possibile farlo, poiché ho implementato un sistema più complesso su un IMU sparkfun.

Ci sono alcuni componenti per fare ciò che si richiede con precisione.

1) È necessario filtrare il segnale dell'accellerometro utilizzando un filtro passa basso. Questo rimuove qualsiasi rumore che non sia causato dal tuo braccio che si muove lentamente.

2) Integrare i 3 valori di accelerazione separati due volte per passare dall'accelerazione alla velocità, quindi dalla velocità alla distanza.

3) Il metodo sopra riportato deve essere eseguito collegando il telefono sullo stesso piano quando lo si sposta dalla parte inferiore della scatola verso l'alto. Qualsiasi pitch/roll/imbardata interromperà la misura (suggerimento)

4) Dall'alto, per compensare il pitch/roll/imbardata, è quindi possibile includere il gyro incorporato =]. Usalo per mappare il vettore ottenuto dall'accellerometro al punto di partenza. Usando questa metodologia puoi misurare la distanza "attraverso e oggetto" camminandoci attorno. (ricorda che anche questo giroscopio ha bisogno di filtri).

Il risultato finale dipende da molti fattori quali l'efficacia del filtro, l'accuratezza e la frequenza di campionamento dell'accellerometro e del giroscopio e l'incredibile abilità matematica e dell'algebra.

+0

@Demon, hai altri dettagli sulle specifiche dei calcoli? Inoltre, ho a disposizione più valori per l'accelerazione (righe 84-116 di https://github.com/jrowberg/i2cdevlib/blob/b6836bb46e248574816356a6a0a589718b6949fa/Arduino/MPU6050/Examples/MPU6050_DMP6/MPU6050_DMP6.ino). Avresti una raccomandazione di quale si sarebbe meglio usare? Molte grazie! –

Problemi correlati